Merge "Move Linker::getLinkColour() into LinkRenderer"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Mon, 18 Jul 2016 16:16:07 +0000 (16:16 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Mon, 18 Jul 2016 16:16:07 +0000 (16:16 +0000)
945 files changed:
.stylelintrc
Gemfile
Gemfile.lock
HISTORY
RELEASE-NOTES-1.27 [deleted file]
RELEASE-NOTES-1.28
autoload.php
composer.json
docs/extension.schema.json
docs/extension.schema.v1.json [new file with mode: 0644]
docs/hooks.txt
includes/Category.php
includes/DefaultSettings.php
includes/Defines.php
includes/EditPage.php
includes/GlobalFunctions.php
includes/Linker.php
includes/ListToggle.php
includes/MediaWiki.php
includes/MediaWikiServices.php
includes/Message.php
includes/OutputPage.php
includes/PHPVersionCheck.php
includes/PHPVersionError.php [deleted file]
includes/Preferences.php
includes/Revision.php
includes/Sanitizer.php
includes/ServiceWiring.php
includes/Setup.php
includes/Status.php
includes/Title.php
includes/WatchedItemQueryService.php [new file with mode: 0644]
includes/WatchedItemStore.php
includes/WebResponse.php
includes/actions/Action.php
includes/actions/HistoryAction.php
includes/actions/InfoAction.php
includes/actions/RollbackAction.php
includes/api/ApiAMCreateAccount.php
includes/api/ApiAuthManagerHelper.php
includes/api/ApiBase.php
includes/api/ApiCSPReport.php [new file with mode: 0644]
includes/api/ApiChangeAuthenticationData.php
includes/api/ApiClientLogin.php
includes/api/ApiEditPage.php
includes/api/ApiExpandTemplates.php
includes/api/ApiFeedContributions.php
includes/api/ApiHelp.php
includes/api/ApiLinkAccount.php
includes/api/ApiMain.php
includes/api/ApiOpenSearch.php
includes/api/ApiParse.php
includes/api/ApiQuery.php
includes/api/ApiQueryAuthManagerInfo.php
includes/api/ApiQueryPrefixSearch.php
includes/api/ApiQueryRecentChanges.php
includes/api/ApiQueryRevisions.php
includes/api/ApiQuerySearch.php
includes/api/ApiQuerySiteinfo.php
includes/api/ApiQueryUsers.php
includes/api/ApiQueryWatchlist.php
includes/api/ApiQueryWatchlistRaw.php
includes/api/ApiRemoveAuthenticationData.php
includes/api/ApiStashEdit.php
includes/api/ApiUpload.php
includes/api/SearchApi.php [new file with mode: 0644]
includes/api/i18n/azb.json [new file with mode: 0644]
includes/api/i18n/ba.json
includes/api/i18n/be-tarask.json
includes/api/i18n/ca.json
includes/api/i18n/ce.json
includes/api/i18n/cs.json
includes/api/i18n/da.json [new file with mode: 0644]
includes/api/i18n/de.json
includes/api/i18n/diq.json
includes/api/i18n/en.json
includes/api/i18n/es.json
includes/api/i18n/eu.json
includes/api/i18n/fa.json
includes/api/i18n/fr.json
includes/api/i18n/gl.json
includes/api/i18n/he.json
includes/api/i18n/ia.json
includes/api/i18n/id.json
includes/api/i18n/it.json
includes/api/i18n/ja.json
includes/api/i18n/ko.json
includes/api/i18n/ksh.json
includes/api/i18n/ku-latn.json
includes/api/i18n/lb.json
includes/api/i18n/mr.json
includes/api/i18n/nl.json
includes/api/i18n/oc.json
includes/api/i18n/pl.json
includes/api/i18n/ps.json
includes/api/i18n/pt-br.json
includes/api/i18n/pt.json
includes/api/i18n/qqq.json
includes/api/i18n/sah.json [new file with mode: 0644]
includes/api/i18n/sd.json
includes/api/i18n/sv.json
includes/api/i18n/udm.json [new file with mode: 0644]
includes/api/i18n/uk.json
includes/api/i18n/zh-hans.json
includes/auth/AbstractPreAuthenticationProvider.php
includes/auth/AbstractPrimaryAuthenticationProvider.php
includes/auth/AbstractSecondaryAuthenticationProvider.php
includes/auth/AuthManager.php
includes/auth/AuthManagerAuthPlugin.php
includes/auth/AuthPluginPrimaryAuthenticationProvider.php
includes/auth/AuthenticationRequest.php
includes/auth/AuthenticationResponse.php
includes/auth/CheckBlocksSecondaryAuthenticationProvider.php
includes/auth/ConfirmLinkSecondaryAuthenticationProvider.php
includes/auth/CreateFromLoginAuthenticationRequest.php
includes/auth/CreationReasonAuthenticationRequest.php
includes/auth/EmailNotificationSecondaryAuthenticationProvider.php
includes/auth/LegacyHookPreAuthenticationProvider.php
includes/auth/PreAuthenticationProvider.php
includes/auth/PrimaryAuthenticationProvider.php
includes/auth/ResetPasswordSecondaryAuthenticationProvider.php
includes/auth/SecondaryAuthenticationProvider.php
includes/auth/Throttler.php
includes/cache/LinkBatch.php
includes/cache/localisation/LocalisationCache.php
includes/changes/EnhancedChangesList.php
includes/collation/IcuCollation.php
includes/content/AbstractContent.php
includes/content/CodeContentHandler.php
includes/content/ContentHandler.php
includes/content/TextContentHandler.php
includes/content/WikitextContentHandler.php
includes/db/DBConnRef.php
includes/db/Database.php
includes/db/DatabaseOracle.php
includes/db/DatabasePostgres.php
includes/db/IDatabase.php
includes/db/loadbalancer/LBFactory.php
includes/db/loadbalancer/LoadBalancer.php
includes/debug/logger/monolog/KafkaHandler.php
includes/deferred/DeferredUpdates.php
includes/deferred/LinksDeletionUpdate.php
includes/deferred/LinksUpdate.php
includes/diff/ComplexityException.php [new file with mode: 0644]
includes/diff/DairikiDiff.php
includes/diff/DiffEngine.php
includes/diff/DifferenceEngine.php
includes/diff/WordLevelDiff.php
includes/exception/MWExceptionHandler.php
includes/export/DumpStringOutput.php [new file with mode: 0644]
includes/export/WikiExporter.php
includes/filerepo/FileRepo.php
includes/filerepo/file/LocalFile.php
includes/gallery/ImageGalleryBase.php
includes/gallery/SlideshowImageGallery.php [new file with mode: 0644]
includes/htmlform/HTMLForm.php
includes/htmlform/HTMLMultiSelectField.php
includes/htmlform/HTMLRadioField.php
includes/htmlform/HTMLSelectNamespaceWithButton.php
includes/htmlform/HTMLTextFieldWithButton.php
includes/htmlform/OOUIHTMLForm.php
includes/htmlform/VFormHTMLForm.php
includes/installer/Installer.php
includes/installer/InstallerOverrides.php [new file with mode: 0644]
includes/installer/WebInstaller.php
includes/installer/WebInstallerComplete.php
includes/installer/i18n/af.json
includes/installer/i18n/aln.json
includes/installer/i18n/am.json
includes/installer/i18n/an.json
includes/installer/i18n/ang.json
includes/installer/i18n/ar.json
includes/installer/i18n/ary.json
includes/installer/i18n/arz.json
includes/installer/i18n/as.json
includes/installer/i18n/ast.json
includes/installer/i18n/az.json
includes/installer/i18n/ba.json
includes/installer/i18n/bar.json
includes/installer/i18n/bcc.json
includes/installer/i18n/bcl.json
includes/installer/i18n/be-tarask.json
includes/installer/i18n/be.json
includes/installer/i18n/bg.json
includes/installer/i18n/bgn.json
includes/installer/i18n/bjn.json
includes/installer/i18n/bn.json
includes/installer/i18n/bpy.json
includes/installer/i18n/br.json
includes/installer/i18n/bs.json
includes/installer/i18n/ca.json
includes/installer/i18n/ce.json
includes/installer/i18n/ceb.json
includes/installer/i18n/ckb.json
includes/installer/i18n/cps.json
includes/installer/i18n/crh-cyrl.json
includes/installer/i18n/crh-latn.json
includes/installer/i18n/cs.json
includes/installer/i18n/cv.json
includes/installer/i18n/cy.json
includes/installer/i18n/da.json
includes/installer/i18n/de-ch.json
includes/installer/i18n/de-formal.json
includes/installer/i18n/de.json
includes/installer/i18n/diq.json
includes/installer/i18n/dsb.json
includes/installer/i18n/dtp.json
includes/installer/i18n/el.json
includes/installer/i18n/en-gb.json
includes/installer/i18n/en.json
includes/installer/i18n/eo.json
includes/installer/i18n/es-formal.json
includes/installer/i18n/es.json
includes/installer/i18n/et.json
includes/installer/i18n/eu.json
includes/installer/i18n/ext.json
includes/installer/i18n/fa.json
includes/installer/i18n/fi.json
includes/installer/i18n/fo.json
includes/installer/i18n/fr.json
includes/installer/i18n/frc.json
includes/installer/i18n/frp.json
includes/installer/i18n/frr.json
includes/installer/i18n/fy.json
includes/installer/i18n/ga.json
includes/installer/i18n/gag.json
includes/installer/i18n/gan-hans.json
includes/installer/i18n/gan-hant.json
includes/installer/i18n/gd.json
includes/installer/i18n/gl.json
includes/installer/i18n/gom-latn.json
includes/installer/i18n/grc.json
includes/installer/i18n/gsw.json
includes/installer/i18n/gu.json
includes/installer/i18n/hak.json
includes/installer/i18n/he.json
includes/installer/i18n/hi.json
includes/installer/i18n/hif-latn.json
includes/installer/i18n/hil.json
includes/installer/i18n/hr.json
includes/installer/i18n/hrx.json
includes/installer/i18n/hsb.json
includes/installer/i18n/ht.json
includes/installer/i18n/hu-formal.json
includes/installer/i18n/hu.json
includes/installer/i18n/hy.json
includes/installer/i18n/ia.json
includes/installer/i18n/id.json
includes/installer/i18n/ig.json
includes/installer/i18n/inh.json
includes/installer/i18n/io.json
includes/installer/i18n/is.json
includes/installer/i18n/it.json
includes/installer/i18n/ja.json
includes/installer/i18n/jam.json
includes/installer/i18n/jut.json
includes/installer/i18n/jv.json
includes/installer/i18n/ka.json
includes/installer/i18n/kaa.json
includes/installer/i18n/kbd-cyrl.json
includes/installer/i18n/kiu.json
includes/installer/i18n/kk-arab.json
includes/installer/i18n/kk-cyrl.json
includes/installer/i18n/kk-latn.json
includes/installer/i18n/km.json
includes/installer/i18n/kn.json
includes/installer/i18n/ko.json
includes/installer/i18n/krc.json
includes/installer/i18n/ksh.json
includes/installer/i18n/ku-latn.json
includes/installer/i18n/lad.json
includes/installer/i18n/lb.json
includes/installer/i18n/lfn.json
includes/installer/i18n/lg.json
includes/installer/i18n/li.json
includes/installer/i18n/lki.json
includes/installer/i18n/lt.json
includes/installer/i18n/lv.json
includes/installer/i18n/lzh.json
includes/installer/i18n/lzz.json
includes/installer/i18n/mai.json
includes/installer/i18n/mdf.json
includes/installer/i18n/mg.json
includes/installer/i18n/min.json
includes/installer/i18n/mk.json
includes/installer/i18n/ml.json
includes/installer/i18n/mn.json
includes/installer/i18n/mr.json
includes/installer/i18n/ms.json
includes/installer/i18n/mt.json
includes/installer/i18n/nan.json
includes/installer/i18n/nap.json
includes/installer/i18n/nb.json
includes/installer/i18n/nds-nl.json
includes/installer/i18n/nds.json
includes/installer/i18n/ne.json
includes/installer/i18n/nl-informal.json
includes/installer/i18n/nl.json
includes/installer/i18n/nn.json
includes/installer/i18n/oc.json
includes/installer/i18n/pam.json
includes/installer/i18n/pdc.json
includes/installer/i18n/pl.json
includes/installer/i18n/pms.json
includes/installer/i18n/prg.json
includes/installer/i18n/ps.json
includes/installer/i18n/pt-br.json
includes/installer/i18n/pt.json
includes/installer/i18n/qqq.json
includes/installer/i18n/qu.json
includes/installer/i18n/rm.json
includes/installer/i18n/ro.json
includes/installer/i18n/roa-tara.json
includes/installer/i18n/ru.json
includes/installer/i18n/rue.json
includes/installer/i18n/sah.json
includes/installer/i18n/scn.json
includes/installer/i18n/sco.json
includes/installer/i18n/sdc.json
includes/installer/i18n/sh.json
includes/installer/i18n/shi.json
includes/installer/i18n/si.json
includes/installer/i18n/sk.json
includes/installer/i18n/sl.json
includes/installer/i18n/sli.json
includes/installer/i18n/so.json
includes/installer/i18n/sq.json
includes/installer/i18n/sr-ec.json
includes/installer/i18n/sr-el.json
includes/installer/i18n/srn.json
includes/installer/i18n/stq.json
includes/installer/i18n/su.json
includes/installer/i18n/sv.json
includes/installer/i18n/sw.json
includes/installer/i18n/szl.json
includes/installer/i18n/ta.json
includes/installer/i18n/tcy.json
includes/installer/i18n/te.json
includes/installer/i18n/tg-cyrl.json
includes/installer/i18n/tg-latn.json
includes/installer/i18n/th.json
includes/installer/i18n/tk.json
includes/installer/i18n/tl.json
includes/installer/i18n/tr.json
includes/installer/i18n/tt-cyrl.json
includes/installer/i18n/tt-latn.json
includes/installer/i18n/ug-arab.json
includes/installer/i18n/uk.json
includes/installer/i18n/uz.json
includes/installer/i18n/vec.json
includes/installer/i18n/vep.json
includes/installer/i18n/vi.json
includes/installer/i18n/vo.json
includes/installer/i18n/vro.json
includes/installer/i18n/war.json
includes/installer/i18n/wo.json
includes/installer/i18n/wuu.json
includes/installer/i18n/xal.json
includes/installer/i18n/yi.json
includes/installer/i18n/yo.json
includes/installer/i18n/yue.json
includes/installer/i18n/zea.json
includes/installer/i18n/zh-hans.json
includes/installer/i18n/zh-hant.json
includes/installer/i18n/zh-hk.json
includes/installer/i18n/zh-tw.json
includes/jobqueue/jobs/DeleteLinksJob.php
includes/jobqueue/jobs/DoubleRedirectJob.php
includes/jobqueue/jobs/HTMLCacheUpdateJob.php
includes/jobqueue/jobs/RefreshLinksJob.php
includes/libs/MultiHttpClient.php
includes/libs/ReverseArrayIterator.php [new file with mode: 0644]
includes/libs/objectcache/BagOStuff.php
includes/libs/objectcache/EmptyBagOStuff.php
includes/libs/objectcache/MemcachedBagOStuff.php
includes/libs/objectcache/RESTBagOStuff.php [new file with mode: 0644]
includes/libs/objectcache/ReplicatedBagOStuff.php
includes/libs/objectcache/WANObjectCache.php
includes/libs/objectcache/WinCacheBagOStuff.php
includes/logging/DeleteLogFormatter.php
includes/media/FormatMetadata.php
includes/objectcache/SqlBagOStuff.php
includes/page/Article.php
includes/page/ImagePage.php
includes/page/WikiPage.php
includes/parser/CacheTime.php
includes/parser/CoreParserFunctions.php
includes/parser/MWTidy.php
includes/parser/Parser.php
includes/parser/ParserOptions.php
includes/parser/ParserOutput.php
includes/registration/ExtensionProcessor.php
includes/registration/ExtensionRegistry.php
includes/resourceloader/ResourceLoader.php
includes/resourceloader/ResourceLoaderFileModule.php
includes/resourceloader/ResourceLoaderModule.php
includes/resourceloader/ResourceLoaderSiteStylesModule.php [new file with mode: 0644]
includes/resourceloader/ResourceLoaderStartUpModule.php
includes/resourceloader/ResourceLoaderUserCSSPrefsModule.php
includes/resourceloader/ResourceLoaderWikiModule.php
includes/revisiondelete/RevDelArchiveList.php
includes/revisiondelete/RevDelFileList.php
includes/revisiondelete/RevDelList.php
includes/revisiondelete/RevDelRevisionList.php
includes/search/NullIndexField.php [new file with mode: 0644]
includes/search/SearchEngine.php
includes/search/SearchIndexField.php [new file with mode: 0644]
includes/search/SearchIndexFieldDefinition.php [new file with mode: 0644]
includes/session/CookieSessionProvider.php
includes/session/Session.php
includes/session/SessionProvider.php
includes/site/MediaWikiPageNameNormalizer.php
includes/skins/QuickTemplate.php
includes/skins/Skin.php
includes/specialpage/AuthManagerSpecialPage.php
includes/specialpage/ChangesListSpecialPage.php
includes/specialpage/LoginSignupSpecialPage.php
includes/specialpage/SpecialPage.php
includes/specialpage/SpecialPageFactory.php
includes/specials/SpecialBlock.php
includes/specials/SpecialBlockList.php
includes/specials/SpecialBotPasswords.php
includes/specials/SpecialCategories.php
includes/specials/SpecialChangeContentModel.php
includes/specials/SpecialChangeCredentials.php
includes/specials/SpecialContributions.php
includes/specials/SpecialCreateAccount.php
includes/specials/SpecialLinkSearch.php
includes/specials/SpecialListredirects.php
includes/specials/SpecialLog.php
includes/specials/SpecialMergeHistory.php
includes/specials/SpecialMovepage.php
includes/specials/SpecialNewpages.php
includes/specials/SpecialPrefixindex.php
includes/specials/SpecialRandomInCategory.php
includes/specials/SpecialRecentchanges.php
includes/specials/SpecialSearch.php
includes/specials/SpecialTrackingCategories.php
includes/specials/SpecialUnusedtemplates.php
includes/specials/SpecialUpload.php
includes/specials/SpecialUserLogin.php
includes/specials/SpecialVersion.php
includes/specials/pagers/AllMessagesTablePager.php
includes/specials/pagers/CategoryPager.php
includes/specials/pagers/ContribsPager.php
includes/specials/pre-authmanager/SpecialUserlogin.php
includes/templates/SpecialContributionsLine.mustache [new file with mode: 0644]
includes/tidy/Balancer.php [new file with mode: 0644]
includes/tidy/Html5Internal.php [new file with mode: 0644]
includes/tidy/RaggettInternalHHVM.php
includes/tidy/RaggettWrapper.php
includes/tidy/TidyDriverBase.php
includes/title/MediaWikiPageLinkRenderer.php [deleted file]
includes/title/PageLinkRenderer.php [deleted file]
includes/upload/UploadBase.php
includes/user/PasswordReset.php
includes/user/User.php
includes/utils/BatchRowIterator.php
includes/utils/IP.php
includes/utils/MWCryptHKDF.php
includes/widget/SearchInputWidget.php [changed mode: 0755->0644]
languages/Language.php
languages/data/Names.php
languages/data/ZhConversion.php
languages/i18n/ace.json
languages/i18n/ady-cyrl.json
languages/i18n/aeb-arab.json
languages/i18n/af.json
languages/i18n/aln.json
languages/i18n/am.json
languages/i18n/an.json
languages/i18n/anp.json
languages/i18n/ar.json
languages/i18n/arc.json
languages/i18n/arn.json
languages/i18n/arq.json
languages/i18n/ary.json
languages/i18n/arz.json
languages/i18n/as.json
languages/i18n/ase.json
languages/i18n/ast.json
languages/i18n/av.json
languages/i18n/avk.json
languages/i18n/awa.json
languages/i18n/az.json
languages/i18n/azb.json
languages/i18n/ba.json
languages/i18n/ban.json [new file with mode: 0644]
languages/i18n/bar.json
languages/i18n/bcc.json
languages/i18n/bcl.json
languages/i18n/be-tarask.json
languages/i18n/be.json
languages/i18n/bg.json
languages/i18n/bgn.json
languages/i18n/bho.json
languages/i18n/bjn.json
languages/i18n/bn.json
languages/i18n/bo.json
languages/i18n/bpy.json
languages/i18n/br.json
languages/i18n/bs.json
languages/i18n/bto.json
languages/i18n/ca.json
languages/i18n/cdo.json
languages/i18n/ce.json
languages/i18n/ceb.json
languages/i18n/ch.json
languages/i18n/ckb.json
languages/i18n/co.json
languages/i18n/cps.json
languages/i18n/crh-cyrl.json
languages/i18n/crh-latn.json
languages/i18n/cs.json
languages/i18n/csb.json
languages/i18n/cv.json
languages/i18n/cy.json
languages/i18n/da.json
languages/i18n/de-ch.json
languages/i18n/de-formal.json
languages/i18n/de.json
languages/i18n/diq.json
languages/i18n/dsb.json
languages/i18n/dtp.json
languages/i18n/dty.json
languages/i18n/dv.json
languages/i18n/egl.json
languages/i18n/el.json
languages/i18n/en-gb.json
languages/i18n/en.json
languages/i18n/eo.json
languages/i18n/es.json
languages/i18n/et.json
languages/i18n/eu.json
languages/i18n/ext.json
languages/i18n/fa.json
languages/i18n/fi.json
languages/i18n/fo.json
languages/i18n/fr.json
languages/i18n/frc.json
languages/i18n/frp.json
languages/i18n/frr.json
languages/i18n/fur.json
languages/i18n/fy.json
languages/i18n/ga.json
languages/i18n/gag.json
languages/i18n/gan-hans.json
languages/i18n/gan-hant.json
languages/i18n/gd.json
languages/i18n/gl.json
languages/i18n/glk.json
languages/i18n/gom-deva.json
languages/i18n/gom-latn.json
languages/i18n/gor.json
languages/i18n/got.json
languages/i18n/gsw.json
languages/i18n/gu.json
languages/i18n/hak.json
languages/i18n/he.json
languages/i18n/hi.json
languages/i18n/hif-latn.json
languages/i18n/hil.json
languages/i18n/hr.json
languages/i18n/hrx.json
languages/i18n/hsb.json
languages/i18n/ht.json
languages/i18n/hu.json
languages/i18n/hy.json
languages/i18n/ia.json
languages/i18n/id.json
languages/i18n/ie.json
languages/i18n/ig.json
languages/i18n/ilo.json
languages/i18n/inh.json
languages/i18n/io.json
languages/i18n/is.json
languages/i18n/it.json
languages/i18n/ja.json
languages/i18n/jam.json
languages/i18n/jv.json
languages/i18n/ka.json
languages/i18n/kaa.json
languages/i18n/kab.json
languages/i18n/kbd-cyrl.json
languages/i18n/khw.json
languages/i18n/kiu.json
languages/i18n/kk-arab.json
languages/i18n/kk-cyrl.json
languages/i18n/kk-latn.json
languages/i18n/km.json
languages/i18n/kn.json
languages/i18n/ko.json
languages/i18n/koi.json
languages/i18n/krc.json
languages/i18n/kri.json
languages/i18n/krl.json [new file with mode: 0644]
languages/i18n/ksh.json
languages/i18n/ku-latn.json
languages/i18n/la.json
languages/i18n/lad.json
languages/i18n/lb.json
languages/i18n/lez.json
languages/i18n/lfn.json
languages/i18n/lg.json
languages/i18n/li.json
languages/i18n/lij.json
languages/i18n/liv.json
languages/i18n/lki.json
languages/i18n/lmo.json
languages/i18n/lo.json
languages/i18n/loz.json
languages/i18n/lrc.json
languages/i18n/lt.json
languages/i18n/ltg.json
languages/i18n/lus.json
languages/i18n/lv.json
languages/i18n/lzh.json
languages/i18n/lzz.json
languages/i18n/mai.json
languages/i18n/map-bms.json
languages/i18n/mdf.json
languages/i18n/mg.json
languages/i18n/min.json
languages/i18n/mk.json
languages/i18n/ml.json
languages/i18n/mn.json
languages/i18n/mr.json
languages/i18n/ms.json
languages/i18n/mt.json
languages/i18n/my.json
languages/i18n/nah.json
languages/i18n/nan.json
languages/i18n/nap.json
languages/i18n/nb.json
languages/i18n/nds-nl.json
languages/i18n/nds.json
languages/i18n/ne.json
languages/i18n/nl-informal.json
languages/i18n/nl.json
languages/i18n/nn.json
languages/i18n/oc.json
languages/i18n/olo.json
languages/i18n/or.json
languages/i18n/os.json
languages/i18n/pa.json
languages/i18n/pam.json
languages/i18n/pcd.json
languages/i18n/pl.json
languages/i18n/pms.json
languages/i18n/pnb.json
languages/i18n/prg.json
languages/i18n/ps.json
languages/i18n/pt-br.json
languages/i18n/pt.json
languages/i18n/qqq.json
languages/i18n/qu.json
languages/i18n/qug.json
languages/i18n/rm.json
languages/i18n/ro.json
languages/i18n/roa-tara.json
languages/i18n/ru.json
languages/i18n/rue.json
languages/i18n/sa.json
languages/i18n/sah.json
languages/i18n/sat.json
languages/i18n/sc.json
languages/i18n/scn.json
languages/i18n/sco.json
languages/i18n/sd.json
languages/i18n/sdc.json
languages/i18n/sdh.json
languages/i18n/sei.json
languages/i18n/ses.json
languages/i18n/sgs.json
languages/i18n/sh.json
languages/i18n/shn.json
languages/i18n/si.json
languages/i18n/sk.json
languages/i18n/sl.json
languages/i18n/sli.json
languages/i18n/so.json
languages/i18n/sq.json
languages/i18n/sr-ec.json
languages/i18n/sr-el.json
languages/i18n/srn.json
languages/i18n/stq.json
languages/i18n/su.json
languages/i18n/sv.json
languages/i18n/sw.json
languages/i18n/szl.json
languages/i18n/ta.json
languages/i18n/tcy.json
languages/i18n/te.json
languages/i18n/tet.json
languages/i18n/tg-cyrl.json
languages/i18n/tg-latn.json
languages/i18n/th.json
languages/i18n/tk.json
languages/i18n/tl.json
languages/i18n/tly.json
languages/i18n/to.json
languages/i18n/tpi.json
languages/i18n/tr.json
languages/i18n/tru.json
languages/i18n/ts.json
languages/i18n/tt-cyrl.json
languages/i18n/tt-latn.json
languages/i18n/tyv.json
languages/i18n/tzm.json
languages/i18n/ug-arab.json
languages/i18n/uk.json
languages/i18n/ur.json
languages/i18n/uz.json
languages/i18n/vec.json
languages/i18n/vep.json
languages/i18n/vi.json
languages/i18n/vmf.json
languages/i18n/vo.json
languages/i18n/vot.json
languages/i18n/vro.json
languages/i18n/wa.json
languages/i18n/war.json
languages/i18n/wo.json
languages/i18n/wuu.json
languages/i18n/xmf.json
languages/i18n/yi.json
languages/i18n/yo.json
languages/i18n/yue.json
languages/i18n/zea.json
languages/i18n/zh-hans.json
languages/i18n/zh-hant.json
languages/messages/MessagesBan.php [new file with mode: 0644]
languages/messages/MessagesGom_deva.php
languages/messages/MessagesLt.php
languages/messages/MessagesPs.php
maintenance/Maintenance.php
maintenance/backup.inc
maintenance/changePassword.php
maintenance/copyFileBackend.php
maintenance/createAndPromote.php
maintenance/dumpBackup.php
maintenance/dumpTextPass.php
maintenance/dumpUploads.php
maintenance/fileOpPerfTest.php
maintenance/findHooks.php
maintenance/generateLocalAutoload.php
maintenance/importTextFiles.php
maintenance/install.php
maintenance/interwiki.list
maintenance/invalidateUserSessions.php [new file with mode: 0644]
maintenance/jsduck/categories.json
maintenance/jsduck/eg-iframe.html
maintenance/language/zhtable/simp2trad.manual
maintenance/language/zhtable/simp2trad_noconvert.manual
maintenance/language/zhtable/toCN.manual
maintenance/language/zhtable/toHK.manual
maintenance/language/zhtable/toSimp.manual
maintenance/language/zhtable/toTW.manual
maintenance/language/zhtable/toTrad.manual
maintenance/language/zhtable/trad2simp.manual
maintenance/language/zhtable/trad2simp_noconvert.manual
maintenance/language/zhtable/tradphrases.manual
maintenance/language/zhtable/tradphrases_exclude.manual
maintenance/populateRevisionLength.php
maintenance/preprocessorFuzzTest.php
maintenance/rebuildFileCache.php
maintenance/resetUserTokens.php
maintenance/update.php
maintenance/updateExtensionJsonSchema.php [new file with mode: 0644]
mw-config/overrides.php [deleted file]
mw-config/overrides/README [new file with mode: 0644]
package.json
resources/Resources.php
resources/lib/oojs-ui/i18n/id.json
resources/lib/oojs-ui/i18n/inh.json [new file with mode: 0644]
resources/lib/oojs-ui/i18n/jv.json
resources/lib/oojs-ui/i18n/ku-latn.json
resources/lib/oojs-ui/i18n/pnb.json [new file with mode: 0644]
resources/lib/oojs-ui/i18n/sw.json
resources/lib/oojs-ui/oojs-ui-apex.js
resources/lib/oojs-ui/oojs-ui-core-apex.css
resources/lib/oojs-ui/oojs-ui-core-mediawiki.css
resources/lib/oojs-ui/oojs-ui-core.js
resources/lib/oojs-ui/oojs-ui-mediawiki.js
resources/lib/oojs-ui/oojs-ui-toolbars-apex.css
resources/lib/oojs-ui/oojs-ui-toolbars-mediawiki.css
resources/lib/oojs-ui/oojs-ui-toolbars.js
resources/lib/oojs-ui/oojs-ui-widgets-apex.css
resources/lib/oojs-ui/oojs-ui-widgets-mediawiki.css
resources/lib/oojs-ui/oojs-ui-widgets.js
resources/lib/oojs-ui/oojs-ui-windows-apex.css
resources/lib/oojs-ui/oojs-ui-windows-mediawiki.css
resources/lib/oojs-ui/oojs-ui-windows.js
resources/lib/oojs-ui/themes/apex/icons-editing-styling.json
resources/lib/oojs-ui/themes/apex/images/icons/flag-rtl.png
resources/lib/oojs-ui/themes/apex/images/icons/flag-rtl.svg
resources/lib/oojs-ui/themes/apex/images/icons/flagUndo-ltr.png
resources/lib/oojs-ui/themes/apex/images/icons/flagUndo-ltr.svg
resources/lib/oojs-ui/themes/apex/images/icons/flagUndo-rtl.png
resources/lib/oojs-ui/themes/apex/images/icons/flagUndo-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/icons-editing-styling.json
resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-rtl-invert.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-rtl-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-rtl.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr-invert.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl-invert.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/stop-invert.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/stop-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/stop.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/stop.svg
resources/lib/phpjs-sha1/sha1.js [deleted file]
resources/src/jquery/jquery.accessKeyLabel.js
resources/src/jquery/jquery.makeCollapsible.js
resources/src/jquery/jquery.suggestions.js
resources/src/mediawiki.action/mediawiki.action.edit.stash.js
resources/src/mediawiki.action/mediawiki.action.history.css
resources/src/mediawiki.action/mediawiki.action.history.diff.css
resources/src/mediawiki.action/mediawiki.action.history.styles.css [new file with mode: 0644]
resources/src/mediawiki.action/mediawiki.action.view.filepage.css
resources/src/mediawiki.legacy/oldshared.css
resources/src/mediawiki.legacy/shared.css
resources/src/mediawiki.less/mediawiki.ui/mixins.less
resources/src/mediawiki.skinning/content.css
resources/src/mediawiki.skinning/images/external link icons.svg [deleted file]
resources/src/mediawiki.skinning/images/external-link-icons.svg [new file with mode: 0644]
resources/src/mediawiki.skinning/images/magnify-clip-ltr.png
resources/src/mediawiki.skinning/images/magnify-clip-rtl.png
resources/src/mediawiki.skinning/interface.css
resources/src/mediawiki.special/mediawiki.special.blocklist.css [deleted file]
resources/src/mediawiki.special/mediawiki.special.changeslist.css
resources/src/mediawiki.special/mediawiki.special.search.css
resources/src/mediawiki.special/mediawiki.special.search.styles.css [new file with mode: 0644]
resources/src/mediawiki.special/mediawiki.special.upload.css [deleted file]
resources/src/mediawiki.special/mediawiki.special.upload.styles.css [new file with mode: 0644]
resources/src/mediawiki.toolbar/toolbar.less
resources/src/mediawiki.ui/components/inputs.less
resources/src/mediawiki.widgets/mw.widgets.CategorySelector.js
resources/src/mediawiki.widgets/mw.widgets.SearchInputWidget.js
resources/src/mediawiki.widgets/mw.widgets.TitleOptionWidget.js
resources/src/mediawiki.widgets/mw.widgets.TitleWidget.js
resources/src/mediawiki/api.js
resources/src/mediawiki/api/edit.js
resources/src/mediawiki/api/messages.js
resources/src/mediawiki/mediawiki.ForeignStructuredUpload.BookletLayout.js
resources/src/mediawiki/mediawiki.ForeignStructuredUpload.js
resources/src/mediawiki/mediawiki.ForeignUpload.js
resources/src/mediawiki/mediawiki.Title.js
resources/src/mediawiki/mediawiki.Upload.BookletLayout.js
resources/src/mediawiki/mediawiki.checkboxtoggle.js
resources/src/mediawiki/mediawiki.debug.less
resources/src/mediawiki/mediawiki.htmlform.ooui.css
resources/src/mediawiki/mediawiki.jqueryMsg.js
resources/src/mediawiki/mediawiki.js
resources/src/mediawiki/mediawiki.raggett.css
resources/src/mediawiki/mediawiki.searchSuggest.js
resources/src/mediawiki/page/gallery-slideshow.js [new file with mode: 0644]
resources/src/mediawiki/page/gallery.css
resources/src/moment-locale-overrides.js
resources/src/startup.js
tests/TestsAutoLoader.php
tests/browser/features/step_definitions/create_account_steps.rb
tests/browser/features/step_definitions/login_steps.rb
tests/browser/features/support/pages/create_account_page.rb
tests/browser/features/support/pages/login_error_page.rb [deleted file]
tests/browser/features/support/pages/login_page.rb
tests/parser/parserTest.inc
tests/parser/parserTests.txt
tests/parserTests.php
tests/phpunit/MediaWikiTestCase.php
tests/phpunit/data/css/bom.css [new file with mode: 0644]
tests/phpunit/includes/ExportTest.php
tests/phpunit/includes/GlobalFunctions/GlobalTest.php
tests/phpunit/includes/GlobalFunctions/wfBCP47Test.php
tests/phpunit/includes/GlobalFunctions/wfUrlencodeTest.php
tests/phpunit/includes/HttpTest.php
tests/phpunit/includes/LinkerTest.php
tests/phpunit/includes/MWNamespaceTest.php
tests/phpunit/includes/MWTimestampTest.php
tests/phpunit/includes/MediaWikiServicesTest.php
tests/phpunit/includes/MessageTest.php
tests/phpunit/includes/SanitizerTest.php
tests/phpunit/includes/StatusTest.php
tests/phpunit/includes/TestUser.php
tests/phpunit/includes/WatchedItemQueryServiceUnitTest.php [new file with mode: 0644]
tests/phpunit/includes/api/ApiLoginTest.php
tests/phpunit/includes/api/ApiQueryWatchlistIntegrationTest.php
tests/phpunit/includes/api/ApiQueryWatchlistRawIntegrationTest.php [new file with mode: 0644]
tests/phpunit/includes/api/ApiStashEditTest.php [new file with mode: 0644]
tests/phpunit/includes/api/ApiTestCase.php
tests/phpunit/includes/api/ApiTokensTest.php
tests/phpunit/includes/api/ApiUploadTest.php
tests/phpunit/includes/auth/AuthManagerTest.php
tests/phpunit/includes/auth/AuthPluginPrimaryAuthenticationProviderTest.php
tests/phpunit/includes/auth/AuthenticationRequestTest.php
tests/phpunit/includes/auth/ConfirmLinkSecondaryAuthenticationProviderTest.php
tests/phpunit/includes/auth/CreateFromLoginAuthenticationRequestTest.php
tests/phpunit/includes/auth/LegacyHookPreAuthenticationProviderTest.php
tests/phpunit/includes/auth/ResetPasswordSecondaryAuthenticationProviderTest.php
tests/phpunit/includes/content/CssContentTest.php
tests/phpunit/includes/content/TextContentHandlerTest.php
tests/phpunit/includes/db/DatabaseTest.php
tests/phpunit/includes/debug/logger/monolog/KafkaHandlerTest.php
tests/phpunit/includes/filebackend/FileBackendTest.php
tests/phpunit/includes/installer/DatabaseUpdaterTest.php
tests/phpunit/includes/libs/objectcache/WANObjectCacheTest.php
tests/phpunit/includes/linker/LinkRendererFactoryTest.php
tests/phpunit/includes/linker/LinkRendererTest.php
tests/phpunit/includes/objectcache/RESTBagOStuffTest.php [new file with mode: 0644]
tests/phpunit/includes/parser/NewParserTest.php
tests/phpunit/includes/phpunit/ConsecutiveParametersMatcher.php [deleted file]
tests/phpunit/includes/phpunit/LICENSE [deleted file]
tests/phpunit/includes/phpunit/README [deleted file]
tests/phpunit/includes/registration/CoreVersionCheckerTest.php
tests/phpunit/includes/registration/ExtensionProcessorTest.php
tests/phpunit/includes/resourceloader/ResourceLoaderFileModuleTest.php
tests/phpunit/includes/resourceloader/ResourceLoaderStartUpModuleTest.php
tests/phpunit/includes/search/SearchEngineTest.php
tests/phpunit/includes/search/SearchIndexFieldTest.php [new file with mode: 0644]
tests/phpunit/includes/session/CookieSessionProviderTest.php
tests/phpunit/includes/session/PHPSessionHandlerTest.php
tests/phpunit/includes/site/MediaWikiPageNameNormalizerTest.php
tests/phpunit/includes/specials/SpecialSearchTest.php
tests/phpunit/includes/tidy/BalancerTest.php [new file with mode: 0644]
tests/phpunit/includes/tidy/html5lib-tests.json [new file with mode: 0644]
tests/phpunit/includes/title/MediaWikiPageLinkRendererTest.php [deleted file]
tests/phpunit/includes/title/MediaWikiTitleCodecTest.php
tests/phpunit/includes/upload/UploadStashTest.php
tests/phpunit/includes/user/BotPasswordTest.php
tests/phpunit/languages/LanguageTest.php
tests/phpunit/maintenance/DumpTestCase.php
tests/phpunit/mocks/media/MockOggHandler.php
tests/phpunit/phpunit.php
tests/phpunit/structure/ResourcesTest.php
tests/qunit/QUnitTestResources.php
tests/qunit/data/testrunner.js
tests/qunit/suites/resources/mediawiki.api/mediawiki.api.edit.test.js [new file with mode: 0644]
tests/qunit/suites/resources/mediawiki/mediawiki.jqueryMsg.test.js
tests/testHelpers.inc

index 6b94db6..62dbeb6 100644 (file)
@@ -10,7 +10,7 @@
                "declaration-colon-space-after": [ "always" ],
                "declaration-colon-space-before": [ "never" ],
 
-               "font-family-name-quotes": [ "single-unless-keyword" ],
+               "font-family-name-quotes": [ "always-unless-keyword" ],
                "font-weight-notation": [ "named-where-possible" ],
 
                "function-calc-no-unspaced-operator": true,
@@ -20,7 +20,7 @@
                "function-comma-space-before": [ "never" ],
                "function-parentheses-newline-inside": [ "never-multi-line" ],
                "function-parentheses-space-inside": [ "always" ],
-               "function-url-quotes": [ "none" ],
+               "function-url-quotes": [ "never" ],
                "function-whitespace-after": [ "always" ],
        }
 }
diff --git a/Gemfile b/Gemfile
index fa3a025..19d2f52 100644 (file)
--- a/Gemfile
+++ b/Gemfile
@@ -1,5 +1,5 @@
 source 'https://rubygems.org'
 
-gem 'mediawiki_selenium', '~> 1.7'
+gem 'mediawiki_selenium', '~> 1.7', '>= 1.7.1'
 gem 'rake', '~> 11.1', '>= 11.1.1'
 gem 'rubocop', '~> 0.32.1', require: false
index 2bbabd1..2d6e655 100644 (file)
@@ -34,22 +34,22 @@ GEM
       domain_name (~> 0.5)
     i18n (0.7.0)
     json (1.8.3)
-    mediawiki_api (0.5.0)
+    mediawiki_api (0.6.0)
       faraday (~> 0.9, >= 0.9.0)
       faraday-cookie_jar (~> 0.0, >= 0.0.6)
-    mediawiki_selenium (1.7.0)
+    mediawiki_selenium (1.7.1)
       cucumber (~> 1.3, >= 1.3.20)
       headless (~> 2.0, >= 2.1.0)
       json (~> 1.8, >= 1.8.1)
-      mediawiki_api (~> 0.5, >= 0.5.0)
+      mediawiki_api (~> 0.6, >= 0.6.0)
       page-object (~> 1.0)
       rest-client (~> 1.6, >= 1.6.7)
       rspec-core (~> 2.14, >= 2.14.4)
       rspec-expectations (~> 2.14, >= 2.14.4)
       syntax (~> 1.2, >= 1.2.0)
       thor (~> 0.19, >= 0.19.1)
-    mime-types (2.99.1)
-    multi_json (1.11.3)
+    mime-types (2.99.2)
+    multi_json (1.12.1)
     multi_test (0.1.2)
     multipart-post (2.0.0)
     netrc (0.11.0)
@@ -79,11 +79,11 @@ GEM
       ruby-progressbar (~> 1.4)
     ruby-progressbar (1.7.5)
     rubyzip (1.2.0)
-    selenium-webdriver (2.53.0)
+    selenium-webdriver (2.53.1)
       childprocess (~> 0.5)
       rubyzip (~> 1.0)
       websocket (~> 1.0)
-    syntax (1.2.0)
+    syntax (1.2.1)
     thor (0.19.1)
     unf (0.1.4)
       unf_ext
@@ -97,7 +97,7 @@ PLATFORMS
   ruby
 
 DEPENDENCIES
-  mediawiki_selenium (~> 1.7)
+  mediawiki_selenium (~> 1.7, >= 1.7.1)
   rake (~> 11.1, >= 11.1.1)
   rubocop (~> 0.32.1)
 
diff --git a/HISTORY b/HISTORY
index e833154..868b21a 100644 (file)
--- a/HISTORY
+++ b/HISTORY
@@ -1,5 +1,588 @@
 Change notes from older releases. For current info see RELEASE-NOTES-1.28.
 
+= MediaWiki 1.27 =
+
+== MediaWiki 1.27.0 ==
+
+=== PHP version requirement in 1.27 ===
+As of 1.27, MediaWiki now requires PHP 5.5.9 or higher (see Compatibility
+section). Additionally, the following PHP extensions are required:
+* ctype
+* iconv
+* json
+* mbstring (new requirement in 1.27)
+* xml
+The following PHP extensions are strongly recommended:
+* openssl
+
+=== Configuration changes in 1.27 ===
+* $wgAllowMicrodataAttributes and $wgAllowRdfaAttributes were removed,
+  now always enabled. If you use RDFa on your wiki, you now have to explicitly
+  set $wgHtml5Version to 'HTML+RDFa 1.0' or 'XHTML+RDFa 1.0'.
+* $wgUseLinkNamespaceDBFields was removed.
+* Deprecated $wgResourceLoaderMinifierStatementsOnOwnLine and
+  $wgResourceLoaderMinifierMaxLineLength, because there was little value in
+  making the behavior configurable. The default values (`false` for the former,
+  1000 for the latter) are now hard-coded.
+* $wgDebugDumpSqlLength was removed (deprecated in 1.24).
+* $wgDebugDBTransactions was removed (deprecated in 1.20).
+* $wgUseXVO has been removed, as it provides functionality only used by
+  custom Wikimedia patches against Squid 2.x that probably noone uses in
+  production anymore. There is now $wgUseKeyHeader that provides similar
+  functionality but instead of the MediaWiki-specific X-Vary-Options header,
+  uses the draft Key header standard.
+* $wgScriptExtension (and support for '.php5' entry points) was removed. See the
+  deprecation notice in the release notes for version 1.25 for advice on how to
+  preserve support for '.php5' entry points via URL rewriting.
+* Password handling via the User object has been deprecated and partially
+  removed, pending the future introduction of AuthManager. In particular:
+** expirePassword(), getPasswordExpireDate(), resetPasswordExpiration(), and
+   getPasswordExpired() have been removed. They were unused outside of core.
+** The mPassword, mNewpassword, mNewpassTime, and mPasswordExpires fields are
+   now private and will be removed in the future.
+** The getPassword() and getTemporaryPassword() methods now throw
+   BadMethodCallException and will be removed in the future.
+** The ability to pass 'password' and 'newpassword' to createNew() has been
+   removed. The only users of it seem to have been using it to set invalid
+   passwords, and so shouldn't be greatly affected.
+** setPassword(), setInternalPassword(), and setNewpassword() have been
+   deprecated, pending the introduction of AuthManager.
+** User::randomPassword() is deprecated in favor of a new method
+   PasswordFactory::generateRandomPasswordString()
+** User::getPasswordFactory() is deprecated, callers should just create a
+   PasswordFactory themselves.
+** A new constructor, User::newSystemUser(), has been added to simplify the
+   creation of passwordless "system" users for logged actions.
+* $wgMaxSquidPurgeTitles was removed.
+* $wgAjaxWatch was removed. This is now enabled by default.
+* $wgUseInstantCommons now hotlinks Commons images by default instead of
+  downloading originals and thumbnailing them locally. This allows wikis to save
+  on CPU and bandwidth while reducing time to first byte for pages, even without
+  a thumbnail handler. See $wgForeignFileRepos documentation for tweaks.
+* (T27397) WebP is enabled by default as an uploadable filetype.
+* (T48998) $wgArticlePath must now be either a full url, or start with a "/".
+* $wgRateLimitLog was removed; use $wgDebugLogGroups['ratelimit'] instead.
+* Deprecated API formats dbg, txt, and yaml have been removed.
+* CLDRPluralRule* classes have been replaced with
+  wikimedia/cldr-plural-rule-parser.
+* Removed $wgProfilePerHost, $wgUDPProfilerHost, $wgUDPProfilerPort,
+  $wgUDPProfilerFormatString, $wgStatsMethod, $wgAggregateStatsID,
+  $wgStatsFormatString, and $wgProfileCallTree (deprecated since 1.20).
+* For proper operation of LocalIdLookup with shared user tables, ensure that
+  $wgSharedDB and $wgSharedTables are properly set even on the "central" wiki
+  that all others are sharing from and that $wgLocalDatabases is set to the
+  full list of sharing wikis on all those wikis.
+* Massive overhaul to session handling:
+** $wgSessionsInObjectCache is no longer supported and must be true, due to
+   MediaWiki\Session\SessionManager. $wgSessionHandler is similarly no longer
+   used.
+** ObjectCacheSessionHandler is removed, replaced with
+   MediaWiki\Session\PhpSessionHandler.
+** PHP session handling in general ($_SESSION, session_id(), and so on) is
+   deprecated. Use MediaWiki\Session\SessionManager instead. A new config
+   variable, $wgPHPSessionHandling, is available to cause use of $_SESSION to
+   issue a deprecation warning or to cause most PHP session handling to throw
+   exceptions.
+** Deprecated UserSetCookies hook. Session-handling extensions should generally
+   be creating a custom subclass of CookieSessionProvider. Other extensions
+   messing with cookies can no longer count on user data being saved in cookies
+   versus other methods.
+** Deprecated UserLoadFromSession hook, extensions should create a
+   MediaWiki\Session\SessionProvider.
+** The User cannot be loaded from session until after Setup.php completes.
+   Attempts to do so will be ignored and the User will remain unloaded.
+** CSRF tokens may be fetched from the MediaWiki\Session\Session, which uses
+   the MediaWiki\Session\Token class.
+* MediaWiki will now auto-create users as necessary, removing the need for
+  extensions to do so. An 'autocreateaccount' right is added to allow
+  auto-creation when 'createaccount' is not granted to all users.
+* Deprecated AuthPluginAutoCreate hook in favor of LocalUserCreated.
+* Most cookie-handling methods in User are deprecated.
+* $wgAllowAsyncCopyUploads and $CopyUploadAsyncTimeout were removed. This was an
+  experimental feature that has never worked.
+* Login and createaccount tokens now vary by timestamp.
+* LoginForm::getLoginToken() and LoginForm::getCreateaccountToken()
+  return a MediaWiki\Session\Token, and tokens must be checked using that
+  class's methods.
+* $wgEnotifUseJobQ was removed and the job queue is always used.
+* The functionality of the ApiSandbox extension has been merged into core. The
+  extension should no longer be used.
+* $wgPreloadJavaScriptMwUtil was removed (deprecated in 1.26).
+  Extensions, skins, gadgets and scripts that use the mediawiki.util module must
+  express a dependency on it.
+* $wgIncludeLegacyJavaScript, deprecated in MediaWiki 1.26, now defaults false.
+  Extensions, skins, gadgets and scripts that need the mediawiki.legacy.wikibits
+  module should express a dependency on it.
+* Removed configuration option $wgCopyrightIcon (deprecated since 1.18). Use
+  $wgFooterIcons['copyright']['copyright'] instead.
+* If the openssl and mcrypt PHP extensions are both unavailable, secure
+  session storage (used for login) will raise an exception. This exception may
+  be bypassed by setting $wgSessionInsecureSecrets = true.
+* Massive overhaul to authentication:
+** AuthPlugin and AuthPluginUser are deprecated.
+** LoginForm and associated templates are deprecated. Extensions which called
+   static LoginForm methods should be converted into authentication providers.
+** The following hooks are deprecated:
+*** AbortAutoAccount (create a MediaWiki\Auth\PreAuthenticationProvider instead)
+*** AbortLogin (create a MediaWiki\Auth\PreAuthenticationProvider instead)
+*** AbortNewAccount (create a MediaWiki\Auth\PreAuthenticationProvider instead)
+*** AddNewAccount (use LocalUserCreated instead)
+*** AuthPluginSetup (create a MediaWiki\Auth\PrimaryAuthenticationProvider instead)
+*** ChangePasswordForm (use AuthChangeFormFields instead, or security levels)
+*** LoginUserMigrated (create a MediaWiki\Auth\PreAuthenticationProvider instead)
+*** UserCreateForm (create a MediaWiki\Auth\AuthenticationProvider of some type instead)
+*** UserLoginForm (create a MediaWiki\Auth\AuthenticationProvider of some type instead)
+** The following hooks are removed:
+*** AbortChangePassword
+*** LoginPasswordResetMessage
+*** PrefsPasswordAudit
+** The UserLoginComplete hook will no longer be called for all logins, only for
+   those via the web UI. Use UserLoggedIn if you need to do something on all
+   logins.
+** $wgRequirePasswordforEmailChange is removed.
+
+=== New features in 1.27 ===
+* $wgDataCenterUpdateStickTTL was also added. This decides how long a user
+  sticks to the primary DC (via cookies) after they make changes to the site.
+* Added a new hook, 'UserMailerTransformContent', to transform the contents
+  of an email. This is similar to the EmailUser hook but applies to all mail
+  sent via UserMailer.
+* Added a new hook, 'UserMailerTransformMessage', to transform the contents
+  of an emai after MIME encoding.
+* Added a new hook, 'UserMailerSplitTo', to control which users have to be
+  emailed separately (ie. there is a single address in the To: field) so
+  user-specific changes to the email can be applied safely.
+* $wgCdnMaxageLagged was added, which limits the CDN cache TTL
+  when any load balancer uses a DB that is lagged beyond the 'max lag'
+  setting in the relevant section of $wgLBFactoryConf.
+* User::newSystemUser() may be used to simplify the creation of passwordless
+  "system" users for logged actions from scripts and extensions.
+* Extensions can now return detailed error information via the API when
+  preventing user actions using 'getUserPermissionsErrors' and similar hooks
+  by using ApiMessage instances instead of strings for the $result value.
+* $wgAPIMaxLagThreshold was added to limit bot changes when databases lag
+  becomes too high.
+* Skins and extensions can now use FlexBox mixins (.flex-display(@display: flex)
+  and .flex(@grow: 1, @shrink: 1, @width: auto, @order: 1)) in Less to create
+  cross-browser-compatible FlexBox rules. Users will still need to add fallback
+  float rules or the like for compatibility with IE9- separately.
+* Added MWTimestamp::getTimezoneString() which returns the localized timezone
+  string, if available. To localize this string, see the comments of
+  $wgLocaltimezone in includes/DefaultSettings.php.
+* Added CentralIdLookup, a service that allows extensions needing a concept of
+  "central" users to get that without having to know about specific central
+  authentication extensions.
+* $wgMaxUserDBWriteDuration added to limit huge user-generated transactions.
+  Regular web request transactions that takes longer than this are aborted.
+* Added a new hook, 'TitleMoveCompleting', which runs before a page move is
+  committed.
+* $wgCdnReboundPurgeDelay was added to provide secondary delayed purges of URLs
+  from CDN to mitigate DB replication lag and WAN cache purge lag.
+* (T49162) Installer will default to setting CACHE_ACCEL as the main cache type
+  if it is available.
+* It is now possible to patrol file uploads (both for new files and new versions
+  of existing files). Special:NewFiles has gained an option to filter by patrol
+  status. This functionality can be disabled using $wgUseFilePatrol.
+* MediaWiki\Session infrastructure allows for easier use of session mechanisms
+  other than the usual cookies.
+** SessionMetadata and SessionCheckInfo hooks allow for setting and checking
+   custom session metadata.
+* Added MWGrants and associated configuration settings $wgGrantPermissions and
+  $wgGrantPermissionGroups to hold configuration for authentication features
+  such as OAuth that want to allow restricting the user rights a user may make
+  use of.
+** If you're already using the OAuth extension, these new variables are
+   identical to (and will replace) $wgMWOAuthGrantPermissions and
+   $wgMWOAuthGrantPermissionGroups.
+* Added MWRestrictions as a class to check restrictions on a WebRequest, e.g.
+  to assert that the request comes from a particular IP range.
+* Added bot passwords, a rights-restricted login mechanism for API-using bots.
+* Whitelisted the following HTML attributes for all elements in wikitext:
+  aria-describedby, aria-flowto, aria-label, aria-labelledby, aria-owns.
+* Removed "presentation" restriction on the HTML role attribute in wikitext.
+  All values are now allowed for the role attribute.
+* $wgContentHandlers now also supports callbacks to create an instance of the
+  appropriate ContentHandler subclass.
+* Added $wgAuthenticationTokenVersion, which if non-null prevents the
+  user_token database field from being exposed in cookies. Setting this would
+  be a good idea, but will log out all current sessions.
+* $wgEventRelayerConfig was added, for managing PubSub event relay configuration,
+  specifically for reliable CDN url purges.
+* Requests have unique IDs, equal to the UNIQUE_ID environment variable (when
+  MediaWiki is behind Apache+mod_unique_id or something similar) or a randomly-
+  generated 24-character string. This request ID is used to annotate log records
+  and error messages. It is available client-side via mw.config.get( 'wgRequestId' ).
+  The request ID supplants exception IDs. Accordingly, MWExceptionHandler::getLogId()
+  is deprecated.
+* (T33313) Add a preference for watching uploads by default, also applies
+  to API-based upload tools.
+* $wgJpegPixelFormat was added to override chroma subsampling for JPEG image
+  thumbnails created via ImageMagick. Defaults to 'yuv420', providing bandwidth
+  savings versus the previous behavior on many files.
+* MediaWiki\Auth infrastructure (called "AuthManager") allows for more flexible
+  configuration of multiple authentication pieces that was possible with
+  AuthPlugin. For example, it's now easy to plug in second-factor
+  authentication, or add additional checks to the login process, or to support
+  multiple login methods at once, or to support non-password-based login methods.
+** Providers are configured via the global setting $wgAuthManagerConfig.
+** A global, $wgDisableAuthManager, is temporarily available to disable
+   AuthManager until extensions are ready to support it.
+** New hook, AuthChangeFormFields, to adjust the form fields on
+   AuthManager-related special pages.
+** New hook, AuthManagerLoginAuthenticateAudit, for additional logging of
+   AuthManager-related authentication requests.
+** New hook, ChangeAuthenticationDataAudit, for additional logging of
+   AuthManager-related authentication data changes.
+** New hook, SecuritySensitiveOperationStatus, to work with the new mechanism
+   for requiring a recent login before taking security-sensitive operations
+   like changing a password.
+** Two new globals, $wgChangeCredentialsBlacklist and $wgRemoveCredentialsBlacklist
+   can be used to prevent the web UI and the API changing certain authentication data.
+* The file upload dialog (available if you install WikiEditor or VisualEditor)
+  can now be configured using $wgUploadDialog.
+
+=== External library changes in 1.27 ===
+
+==== Upgraded external libraries ====
+* Updated oojs/oojs-ui from v0.12.12 to v0.13.3.
+* Updated composer/semver from v1.0.0 to v1.2.0.
+* Updated liuggio/statsd-php-client to 1.0.18.
+* Updated QUnit from v1.18.0 to v1.22.0.
+
+==== New external libraries ====
+* Added wikimedia/base-convert v1.0.1.
+* Added wikimedia/cldr-plural-rule-parser v1.0.0.
+* Added wikimedia/relpath v1.0.3.
+* Added wikimedia/running-stat v1.1.0.
+* Added wikimedia/php-session-serializer v1.0.3.
+
+==== Removed and replaced external libraries ====
+
+=== Bug fixes in 1.27 ===
+* Special:Upload will now display correct maximum allowed file size when running
+  under HHVM (T116347).
+* (T54077) The APIEditBeforeSave hook will once again give only the content of
+  the section being edited, rather than the whole revision. This reverts the
+  change made in MediaWiki 1.22.
+
+=== Action API changes in 1.27 ===
+* Added list=allrevisions.
+* generator=recentchanges now has the option to generate revids.
+* ApiPageSet::setRedirectMergePolicy() was added. This allows generator
+  modules to define how generator data for a redirect source gets merged
+  into the redirect destination.
+* prop=imageinfo&iiprop=uploadwarning will no longer include the possibility of
+  "was-deleted" warning.
+* Added difftotextpst to query=revisions which preforms a pre-save transform on
+  the text before diffing it.
+* Deprecated formats dbg, txt, and yaml have been removed.
+* (T47988) The protect log event details now use new-style formatting.
+* The following response properties from action=login are deprecated, and may
+  be removed in the future: lgtoken, cookieprefix, sessionid. Clients should
+  handle cookies to properly manage session state.
+* action=login transparently allows login using bot passwords. Clients should
+  merely need to change the username and password used after setting up a bot
+  password.
+* action=upload no longer understands statuskey, asyncdownload or leavemessage.
+* Several changes when $wgDisableAuthManager is false:
+** action=login is deprecated for uses other than bot passwords.
+** list=users can now indicate if a missing username is creatable.
+** action=createaccount is changed in a non-backwards-compatible manner.
+** Added action=query&meta=authmanagerinfo.
+** Added action=clientlogin to be used to log into the main account instead of
+   action=login.
+** Added action=linkaccount.
+** Added action=unlinkaccount.
+** Added action=changeauthenticationdata.
+** Added action=removeauthenticationdata.
+** Added action=resetpassword.
+
+=== Action API internal changes in 1.27 ===
+* ApiQueryORM removed.
+* The following classes have been removed:
+** ApiFormatDbg
+** ApiFormatTxt
+** ApiFormatYaml
+* ApiBase::addTokenProperties() was removed (deprecated since 1.24).
+* ApiBase::getFinalPossibleErrors() was removed (deprecated since 1.24).
+* ApiBase::getFinalResultProperties() was removed (deprecated since 1.24).
+* ApiBase::getRequireAtLeastOneParameterErrorMessages() was removed (deprecated since 1.24).
+* ApiBase::getPossibleErrors() was removed (deprecated since 1.24).
+* ApiBase::getRequireMaxOneParameterErrorMessages() was removed (deprecated since 1.24).
+* ApiBase::getRequireOnlyOneParameterErrorMessages() was removed (deprecated since 1.24).
+* ApiBase::getResultProperties() was removed (deprecated since 1.24).
+* ApiBase::getTitleOrPageIdErrorMessage() was removed (deprecated since 1.24).
+* ApiBase::parseErrors() was removed (deprecated since 1.24).
+* ApiQueryBase::titleToKey(), ApiQueryBase::keyToTitle() and
+  ApiQueryBase::keyPartToTitle() all removed (deprecated since 1.24).
+* ApiQueryBase::checkRowCount() was removed (deprecated since 1.24).
+* ApiQueryBase::getDirectionDescription() was removed (deprecated since 1.25).
+* ApiQuery::getGenerators() was removed (deprecated since 1.21).
+* ApiQuery::getModules() was removed (deprecated since 1.21).
+* ApiQuery::getModuleType() was removed (deprecated since 1.21).
+* ApiQuery::setGeneratorContinue() was removed (deprecated since 1.24).
+* ApiMain::getModules() was removed (deprecated since 1.21).
+* ApiBase::getVersion() was removed (deprecated since 1.21).
+* ApiMain::getShowVersions() was removed (deprecated in 1.21).
+* ApiMain::addModule() was removed (deprecated in 1.21).
+* ApiMain::addFormat() was removed (deprecated in 1.21).
+* ApiMain::getFormats() was removed (deprecated in 1.21).
+* ApiPageSet::finishPageSetGeneration() was removed (deprecated in 1.21).
+* ApiCreateAccount is deprecated, and will be removed soon.
+
+=== Languages updated in 1.27 ===
+
+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.
+
+* (T113688) Change default numerals from Gurmukhi to Arabic for Punjabi locale.
+* (T116020) Aliases of magic words in MessagesXx.php are sorted by usage.
+
+=== Other changes in 1.27 ===
+* Added dependency injection (DI) infrastructure, see docs/injection.txt for details.
+  It is planned to incrementally move MediaWiki code towards using DI, using the
+  service locator (SL) pattern as a stepping stone.
+* ProfilerOutputUdp was removed. Note that there is a ProfilerOutputStats class.
+* WikiPage::doDeleteArticleReal() and WikiPage::doDeleteArticle() now
+  ignore the 2nd and 3rd arguments (formerly $id and $commit).
+* Removed "loaderScripts" option from ResourceLoaderFileModule class.
+* Removed ORM-like wrapper added in 1.20.
+* LinkCache::getGoodLinks and LinkCache::getBadLinks were removed
+  (deprecated in 1.26).
+* WikiPage::doQuickEdit() was removed (deprecated since 1.21).
+* Removed SiteObject and SiteArray classes (deprecated in 1.21).
+* MessageBlobStore::getInstance() was removed (deprecated since 1.25).
+* (T84937) Free external links ("autolinked" urls) will now be terminated
+  by &nbsp; and HTML entity encodings of &nbsp, <, and >.
+* (T36948) The default file revert message's timestamp is now in
+  $wgLocaltimezone, instead of UTC.
+* The default name of the 'suppress' group page has been changed from
+  'Project:Oversight' to 'Project:Suppress'.
+* DatabaseBase::resultObject() is now protected (use outside Database classes
+  not necessary since 1.11).
+* Calling ResourceLoaderFileModule::readStyleFiles() without a
+  ResourceLoaderContext instance is deprecated.
+* ResourceLoader::getLessCompiler() now takes an optional parameter of
+  additional LESS variables to set for the compiler.
+* wfBaseConvert() marked as deprecated, use Wikimedia\base_convert() directly
+  instead.
+* Obsolete maintenance scripts clearCacheStats.php and showCacheStats.php
+  were removed. The underlying data is sent to StatsD (see $wgStatsdServer).
+* Removed msg_resource_links database table and associated code.
+* Removed msg_resource database table and associated code.
+* Skin::getNamespaceNotice() was removed.
+* wfIsConfiguredProxy() was removed (deprecated since 1.24).
+* wfDebugTimer() was removed (deprecated since 1.25).
+* wfIsTrustedProxy() was removed (deprecated since 1.24).
+* wfGetIP() was removed (deprecated since 1.19).
+* MWHookException was removed.
+* OutputPage::appendSubtitle() was removed (deprecated since 1.19).
+* OutputPage::loginToUse() was removed (deprecated since 1.19).
+* Article::loadContent() was removed (deprecated since 1.19).
+* User::editToken() was removed (deprecated since 1.19).
+* Removed --force-normal option of dumpBackup.php, as it no longer served
+  any useful purpose since 1.22.
+* The functions processOption() and processArgs() on the BackupDumper and
+  TextPassDumper classes have been removed.
+* The maintenance/backupTextPass.inc file was deleted. You should include
+  maintenance/dumpTextPass.php instead.
+* WikiPage::getUsedTemplates() was removed (deprecated since 1.19).
+* wfEmptyMsg() was removed (deprecated since 1.18).
+* OutputPage::permissionRequired() was removed (deprecated since 1.18).
+* OutputPage::blockedPage() was removed (deprecated since 1.18).
+* User::getSkin() was removed (deprecated since 1.18).
+* OutputPage::includeJQuery() was removed (deprecated since 1.17).
+* WikiPage::updateRestrictions() was removed (deprecated since 1.19).
+* WikiPage::testPreSaveTransform() was removed (deprecated since 1.19).
+* LogPage::logName() was removed (deprecated since 1.19).
+* LogPage::logHeader() was removed (deprecated since 1.19).
+* wfCheckLimits() was removed (deprecated since 1.24).
+* Linker::makeKnownLinkObj() was removed (deprecated since 1.16).
+* Linker::makeLinkObj() was removed (deprecated since 1.16).
+* wfMsgForContentNoTrans() was removed (deprecated since 1.18).
+* ChangesList::usePatrol was removed (deprecated since 1.22).
+* wfMsgNoTrans() was removed (deprecated since 1.18).
+* Linker::makeImageLink2 was removed (deprecated since 1.20).
+* Title::userIsWatching() was removed (deprecated since 1.20).
+* Removed WaitForSlave maintenance script; use SELECT MASTER_POS_WAIT()
+  database function directly instead.
+* wfMsg() was removed (deprecated since 1.18).
+* wfMsgForContent() was removed (deprecated since 1.18).
+* wfMsgReal() was removed (deprecated since 1.18).
+* wfMsgGetKey() was removed (deprecated since 1.18).
+* wfMsgHtml() was removed (deprecated since 1.18).
+* wfMsgWikiHtml() was removed (deprecated since 1.18).
+* wfMsgExt() was removed (deprecated since 1.18).
+* Language::armourMath() was removed (deprecated since 1.22).
+* LanguageConverter::armourMath() was removed (deprecated since 1.22).
+* FakeConverter::armourMath() was removed (deprecated since 1.22).
+* The unused jquery.validate ResourceLoader module was removed.
+* FileRepo::getRootUrl() was removed (deprecated since 1.20).
+* User::generateToken() was removed (deprecated since 1.20).
+* WikiPage::getRawText() was removed (deprecated since 1.21).
+* ParserOutput::hasCustomDataUpdates() was removed (deprecated since 1.25).
+* ParserOutput::addSecondaryDataUpdate() was removed (deprecated since 1.25).
+* ParserOutput::getSecondaryDataUpdates() was removed (deprecated since 1.25).
+* Gallery images with multiple caption pipes no longer concatenate them all
+  together but instead pick the final one, similar to image syntax.
+* XML-like parser tags (such as <gallery>), when unclosed, will be left unparsed
+  rather than consume everything until the end of the page.
+* New maintenance script resetUserEmail.php allows sysadmins to reset user emails in case
+  a user forgot password/account was stolen.
+* wfCheckEntropy() was removed (deprecated in 1.27).
+* Browser support for Internet Explorer 8 lowered from Grade A to Grade C.
+* ContentHandler::supportsCategories method added. Default is true.
+  CategoryMembershipChangeJob updates are skipped for content that
+  does not support categories.
+* wikidiff difference engine is no longer supported, anyone still using it are encouraged
+  to upgrade to wikidiff2 which is actively maintained and has better package availability.
+* Database logic was removed from WatchedItem and a WatchedItemStore was created:
+** WatchedItem::IGNORE_USER_RIGHTS and WatchedItem::CHECK_USER_RIGHTS were deprecated.
+   User::IGNORE_USER_RIGHTS and User::CHECK_USER_RIGHTS were introduced.
+** WatchedItem::fromUserTitle was deprecated in favour of the constructor.
+** WatchedItem::resetNotificationTimestamp was deprecated.
+** WatchedItem::batchAddWatch was deprecated.
+** WatchedItem::addWatch was deprecated.
+** WatchedItem::removeWatch was deprecated.
+** WatchedItem::isWatched was deprecated.
+** WatchedItem::duplicateEntries was deprecated.
+** EmailNotification::updateWatchlistTimestamp was deprecated.
+** User::getWatchedItem was removed.
+* Unit tests don't work with external PHPUnit anymore, Composer is now the only supported
+  way. Run `composer install` to install it and other dev dependencies to run unit tests.
+* wl_id field added to the watchlist table.
+* Revision::getRawText() was removed (deprecated since 1.21).
+* WikiPage::replaceSection() was removed (deprecated since 1.21).
+* Article::replaceSection() was removed (deprecated since 1.21).
+* Language::getLangObj() was removed (deprecated since 1.24).
+* Language::getLanguageName() was removed (deprecated since 1.20).
+* Language::getLanguageNames() was removed (deprecated since 1.20).
+* Language::getTranslatedLanguageNames() was removed (deprecated since 1.20).
+* Language::specialPage() was removed (deprecated since 1.24).
+* MediaWikiTestCase::assertException() was removed (deprecated since 1.22).
+* OutputPage::getHeadItems() was removed (deprecated since 1.24).
+* OutputPage::getScript() was removed (deprecated since 1.24).
+* OutputPage::out() was removed (deprecated since 1.22).
+* OutputPage::setAllowedModules() was removed (deprecated since 1.24).
+* UserrightsPage::makeGroupNameListForLog() was removed (deprecated since 1.21).
+* MediaWikiSite::newFromGlobalId() was removed (deprecated since 1.21).
+* Title::newFromRedirect() was removed (deprecated since 1.21).
+* Skin::commonPrintStylesheet() was removed (deprecated since 1.22).
+* Skin::getCommonStylePath() was removed (deprecated since 1.24).
+* Skin::newFromKey() was removed (deprecated since 1.24).
+* Skin::getUsableSkins() was removed (deprecated since 1.23).
+* LoadBalancer::pickRandom() was removed (deprecated in 1.21).
+* Article::getUndoText() and WikiPage::getUndoText were removed (deprecated since
+  1.21).
+* DifferenceEngine::setText() was removed (deprecated in 1.21).
+* Title::newFromRedirectArray() was removed (deprecated in 1.21).
+* UserMailer::send() no longer accepts $replyto as the 5th argument and $contentType
+  as the 6th. These must be passed in the options array now.
+* Title::newFromRedirectRecurse() was removed (deprecated in 1.21).
+* Skin::accesskey was removed (deprecated since 1.21).
+* Skin::blockLink was removed (deprecated since 1.21).
+* Skin::buildRollbackLink was removed (deprecated since 1.21).
+* Skin::emailLink was removed (deprecated since 1.21).
+* Skin::formatComment was removed (deprecated since 1.21).
+* Skin::formatHiddenCategories was removed (deprecated since 1.21).
+* Skin::formatLinksInComment was removed (deprecated since 1.21).
+* Skin::formatRevisionSize was removed (deprecated since 1.21).
+* Skin::formatSize was removed (deprecated since 1.21).
+* Skin::formatTemplates was removed (deprecated since 1.21).
+* Skin::generateTOC was removed (deprecated since 1.21).
+* Skin::getInternalLinkAttributes was removed (deprecated since 1.21).
+* Skin::getInternalLinkAttributesObj was removed (deprecated since 1.21).
+* Skin::getInterwikiLinkAttributes was removed (deprecated since 1.21).
+* Skin::getInvalidTitleDescription was removed (deprecated since 1.21).
+* Skin::getLinkColour was removed (deprecated since 1.21).
+* Skin::getRevDeleteLink was removed (deprecated since 1.21).
+* Skin::getRollbackEditCount was removed (deprecated since 1.21).
+* Skin::makeBrokenImageLinkObj was removed (deprecated since 1.21).
+* Skin::makeCommentLink was removed (deprecated since 1.21).
+* Skin::makeExternalImage was removed (deprecated since 1.21).
+* Skin::makeExternalLink was removed (deprecated since 1.21).
+* Skin::makeHeadline was removed (deprecated since 1.21).
+* Skin::makeImageLink was removed (deprecated since 1.21).
+* Skin::makeMediaLinkFile was removed (deprecated since 1.21).
+* Skin::makeMediaLinkObj was removed (deprecated since 1.21).
+* Skin::makeSelfLinkObj was removed (deprecated since 1.21).
+* Skin::makeThumbLink2 was removed (deprecated since 1.21).
+* Skin::makeThumbLinkObj was removed (deprecated since 1.21).
+* Skin::normaliseSpecialPage was removed (deprecated since 1.21).
+* Skin::normalizeSubpageLink was removed (deprecated since 1.21).
+* Skin::processResponsiveImages was removed (deprecated since 1.21).
+* Skin::revComment was removed (deprecated since 1.21).
+* Skin::revDeleteLink was removed (deprecated since 1.21).
+* Skin::revDeleteLinkDisabled was removed (deprecated since 1.21).
+* Skin::revUserLink was removed (deprecated since 1.21).
+* Skin::revUserTools was removed (deprecated since 1.21).
+* Skin::specialLink was removed (deprecated since 1.21).
+* Skin::splitTrail was removed (deprecated since 1.21).
+* Skin::titleAttrib was removed (deprecated since 1.21).
+* Skin::tocIndent was removed (deprecated since 1.21).
+* Skin::tocLine was removed (deprecated since 1.21).
+* Skin::tocLineEnd was removed (deprecated since 1.21).
+* Skin::tocList was removed (deprecated since 1.21).
+* Skin::tocUnindent was removed (deprecated since 1.21).
+* Skin::tooltip was removed (deprecated since 1.21).
+* Skin::tooltipAndAccesskeyAttribs was removed (deprecated since 1.21).
+* Skin::userTalkLink was removed (deprecated since 1.21).
+* Skin::userToolLinksRedContribs was removed (deprecated since 1.21).
+* wikidiff3 is now the default and only PHP diff engine. It provides improved diff
+  performance on complex changes. $wgExternalDiffEngine = 'wikidiff3' therefore
+  makes no difference now. Users are still recommended to use wikidiff2 if possible,
+  though.
+* User::addNewUserLogEntry() was deprecated.
+* User::addNewUserLogEntryAutoCreate() was deprecated.
+* User::isPasswordReminderThrottled() was deprecated.
+* Bot-oriented parameters to Special:UserLogin (wpCookieCheck, wpSkipCookieCheck)
+  were removed.
+* Installer can now be customized without patching MediaWiki code, see
+  mw-config/overrides/README for details.
+
+=== Compatibility ===
+
+MediaWiki 1.27 requires PHP 5.5.9 or later. There is experimental support for
+HHVM 3.6.5 or later.
+
+MySQL 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.0.3 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.27 has several database changes since 1.26, 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 quite long (minutes on a medium sized site,
+many hours on a large site).
+
+If upgrading from before 1.11, and you are using a wiki as a commons
+repository, make sure that it is updated as well. Otherwise, errors may arise
+due to database schema changes.
+
+If upgrading from before 1.7, you may want to run refreshLinks.php to ensure
+new database fields are filled with data.
+
+If you are upgrading from MediaWiki 1.4.x or earlier, you should upgrade to
+1.5 first. The upgrade script maintenance/upgrade1_5.php has been removed
+with MediaWiki 1.21.
+
+Don't forget to always back up your database before upgrading!
+
+See the file UPGRADE for more detailed upgrade instructions.
+
+For notes on 1.26.x and older releases, see HISTORY.
+
+
 = MediaWiki 1.26 =
 
 == MediaWiki 1.26.2 ==
diff --git a/RELEASE-NOTES-1.27 b/RELEASE-NOTES-1.27
deleted file mode 100644 (file)
index e644ae4..0000000
+++ /dev/null
@@ -1,604 +0,0 @@
-== MediaWiki 1.27 ==
-
-THIS IS NOT A RELEASE YET
-
-MediaWiki 1.27 is an alpha-quality branch and is not recommended for use in
-production.
-
-=== PHP version requirement ===
-As of 1.27, MediaWiki now requires PHP 5.5.9 or higher. This corresponds with
-HHVM 3.1. Additionally, the following PHP extensions are required:
-* ctype
-* iconv
-* json
-* mbstring (new requirement in 1.27)
-* xml
-The following PHP extensions are strongly recommended:
-* openssl
-
-=== Configuration changes in 1.27 ===
-* $wgAllowMicrodataAttributes and $wgAllowRdfaAttributes were removed,
-  now always enabled. If you use RDFa on your wiki, you now have to explicitly
-  set $wgHtml5Version to 'HTML+RDFa 1.0' or 'XHTML+RDFa 1.0'.
-* $wgUseLinkNamespaceDBFields was removed.
-* Deprecated $wgResourceLoaderMinifierStatementsOnOwnLine and
-  $wgResourceLoaderMinifierMaxLineLength, because there was little value in
-  making the behavior configurable. The default values (`false` for the former,
-  1000 for the latter) are now hard-coded.
-* $wgDebugDumpSqlLength was removed (deprecated in 1.24).
-* $wgDebugDBTransactions was removed (deprecated in 1.20).
-* $wgUseXVO has been removed, as it provides functionality only used by
-  custom Wikimedia patches against Squid 2.x that probably noone uses in
-  production anymore. There is now $wgUseKeyHeader that provides similar
-  functionality but instead of the MediaWiki-specific X-Vary-Options header,
-  uses the draft Key header standard.
-* $wgScriptExtension (and support for '.php5' entry points) was removed. See the
-  deprecation notice in the release notes for version 1.25 for advice on how to
-  preserve support for '.php5' entry points via URL rewriting.
-* Password handling via the User object has been deprecated and partially
-  removed, pending the future introduction of AuthManager. In particular:
-** expirePassword(), getPasswordExpireDate(), resetPasswordExpiration(), and
-   getPasswordExpired() have been removed. They were unused outside of core.
-** The mPassword, mNewpassword, mNewpassTime, and mPasswordExpires fields are
-   now private and will be removed in the future.
-** The getPassword() and getTemporaryPassword() methods now throw
-   BadMethodCallException and will be removed in the future.
-** The ability to pass 'password' and 'newpassword' to createNew() has been
-   removed. The only users of it seem to have been using it to set invalid
-   passwords, and so shouldn't be greatly affected.
-** setPassword(), setInternalPassword(), and setNewpassword() have been
-   deprecated, pending the introduction of AuthManager.
-** User::randomPassword() is deprecated in favor of a new method
-   PasswordFactory::generateRandomPasswordString()
-** User::getPasswordFactory() is deprecated, callers should just create a
-   PasswordFactory themselves.
-** A new constructor, User::newSystemUser(), has been added to simplify the
-   creation of passwordless "system" users for logged actions.
-* $wgMaxSquidPurgeTitles was removed.
-* $wgAjaxWatch was removed. This is now enabled by default.
-* $wgUseInstantCommons now hotlinks Commons images by default instead of
-  downloading originals and thumbnailing them locally. This allows wikis to save
-  on CPU and bandwidth while reducing time to first byte for pages, even without
-  a thumbnail handler. See $wgForeignFileRepos documentation for tweaks.
-* (T27397) WebP is enabled by default as an uploadable filetype.
-* (T48998) $wgArticlePath must now be either a full url, or start with a "/".
-* $wgRateLimitLog was removed; use $wgDebugLogGroups['ratelimit'] instead.
-* Deprecated API formats dbg, txt, and yaml have been removed.
-* CLDRPluralRule* classes have been replaced with
-  wikimedia/cldr-plural-rule-parser.
-* Removed $wgProfilePerHost, $wgUDPProfilerHost, $wgUDPProfilerPort,
-  $wgUDPProfilerFormatString, $wgStatsMethod, $wgAggregateStatsID,
-  $wgStatsFormatString, and $wgProfileCallTree (deprecated since 1.20).
-* For proper operation of LocalIdLookup with shared user tables, ensure that
-  $wgSharedDB and $wgSharedTables are properly set even on the "central" wiki
-  that all others are sharing from and that $wgLocalDatabases is set to the
-  full list of sharing wikis on all those wikis.
-* Massive overhaul to session handling:
-** $wgSessionsInObjectCache is no longer supported and must be true, due to
-   MediaWiki\Session\SessionManager. $wgSessionHandler is similarly no longer
-   used.
-** ObjectCacheSessionHandler is removed, replaced with
-   MediaWiki\Session\PhpSessionHandler.
-** PHP session handling in general ($_SESSION, session_id(), and so on) is
-   deprecated. Use MediaWiki\Session\SessionManager instead. A new config
-   variable, $wgPHPSessionHandling, is available to cause use of $_SESSION to
-   issue a deprecation warning or to cause most PHP session handling to throw
-   exceptions.
-** Deprecated UserSetCookies hook. Session-handling extensions should generally
-   be creating a custom subclass of CookieSessionProvider. Other extensions
-   messing with cookies can no longer count on user data being saved in cookies
-   versus other methods.
-** Deprecated UserLoadFromSession hook, extensions should create a
-   MediaWiki\Session\SessionProvider.
-** The User cannot be loaded from session until after Setup.php completes.
-   Attempts to do so will be ignored and the User will remain unloaded.
-** CSRF tokens may be fetched from the MediaWiki\Session\Session, which uses
-   the MediaWiki\Session\Token class.
-* MediaWiki will now auto-create users as necessary, removing the need for
-  extensions to do so. An 'autocreateaccount' right is added to allow
-  auto-creation when 'createaccount' is not granted to all users.
-* Deprecated AuthPluginAutoCreate hook in favor of LocalUserCreated.
-* Most cookie-handling methods in User are deprecated.
-* $wgAllowAsyncCopyUploads and $CopyUploadAsyncTimeout were removed. This was an
-  experimental feature that has never worked.
-* Login and createaccount tokens now vary by timestamp.
-* LoginForm::getLoginToken() and LoginForm::getCreateaccountToken()
-  return a MediaWiki\Session\Token, and tokens must be checked using that
-  class's methods.
-* $wgEnotifUseJobQ was removed and the job queue is always used.
-* The functionality of the ApiSandbox extension has been merged into core. The
-  extension should no longer be used.
-* $wgPreloadJavaScriptMwUtil was removed (deprecated in 1.26).
-  Extensions, skins, gadgets and scripts that use the mediawiki.util module must
-  express a dependency on it.
-* $wgIncludeLegacyJavaScript, deprecated in MediaWiki 1.26, now defaults false.
-  Extensions, skins, gadgets and scripts that need the mediawiki.legacy.wikibits
-  module should express a dependency on it.
-* Removed configuration option $wgCopyrightIcon (deprecated since 1.18). Use
-  $wgFooterIcons['copyright']['copyright'] instead.
-* If the openssl and mcrypt PHP extensions are both unavailable, secure
-  session storage (used for login) will raise an exception. This exception may
-  be bypassed by setting $wgSessionInsecureSecrets = true.
-* Massive overhaul to authentication:
-** AuthPlugin and AuthPluginUser are deprecated.
-** LoginForm and associated templates are deprecated. Extensions which called
-   static LoginForm methods should be converted into authentication providers.
-** The following hooks are deprecated:
-*** AbortAutoAccount (create a MediaWiki\Auth\PreAuthenticationProvider instead)
-*** AbortLogin (create a MediaWiki\Auth\PreAuthenticationProvider instead)
-*** AbortNewAccount (create a MediaWiki\Auth\PreAuthenticationProvider instead)
-*** AddNewAccount (use LocalUserCreated instead)
-*** AuthPluginSetup (create a MediaWiki\Auth\PrimaryAuthenticationProvider instead)
-*** ChangePasswordForm (use AuthChangeFormFields instead, or security levels)
-*** LoginUserMigrated (create a MediaWiki\Auth\PreAuthenticationProvider instead)
-*** UserCreateForm (create a MediaWiki\Auth\AuthenticationProvider of some type instead)
-*** UserLoginForm (create a MediaWiki\Auth\AuthenticationProvider of some type instead)
-** The following hooks are removed:
-*** AbortChangePassword
-*** LoginPasswordResetMessage
-*** PrefsPasswordAudit
-** The UserLoginComplete hook will no longer be called for all logins, only for
-   those via the web UI. Use UserLoggedIn if you need to do something on all
-   logins.
-** $wgRequirePasswordforEmailChange is removed.
-
-=== New features in 1.27 ===
-* $wgDataCenterUpdateStickTTL was also added. This decides how long a user
-  sticks to the primary DC (via cookies) after they make changes to the site.
-* Added a new hook, 'UserMailerTransformContent', to transform the contents
-  of an email. This is similar to the EmailUser hook but applies to all mail
-  sent via UserMailer.
-* Added a new hook, 'UserMailerTransformMessage', to transform the contents
-  of an emai after MIME encoding.
-* Added a new hook, 'UserMailerSplitTo', to control which users have to be
-  emailed separately (ie. there is a single address in the To: field) so
-  user-specific changes to the email can be applied safely.
-* $wgCdnMaxageLagged was added, which limits the CDN cache TTL
-  when any load balancer uses a DB that is lagged beyond the 'max lag'
-  setting in the relevant section of $wgLBFactoryConf.
-* User::newSystemUser() may be used to simplify the creation of passwordless
-  "system" users for logged actions from scripts and extensions.
-* Extensions can now return detailed error information via the API when
-  preventing user actions using 'getUserPermissionsErrors' and similar hooks
-  by using ApiMessage instances instead of strings for the $result value.
-* $wgAPIMaxLagThreshold was added to limit bot changes when databases lag
-  becomes too high.
-* Skins and extensions can now use FlexBox mixins (.flex-display(@display: flex)
-  and .flex(@grow: 1, @shrink: 1, @width: auto, @order: 1)) in Less to create
-  cross-browser-compatible FlexBox rules. Users will still need to add fallback
-  float rules or the like for compatibility with IE9- separately.
-* Added MWTimestamp::getTimezoneString() which returns the localized timezone
-  string, if available. To localize this string, see the comments of
-  $wgLocaltimezone in includes/DefaultSettings.php.
-* Added CentralIdLookup, a service that allows extensions needing a concept of
-  "central" users to get that without having to know about specific central
-  authentication extensions.
-* $wgMaxUserDBWriteDuration added to limit huge user-generated transactions.
-  Regular web request transactions that takes longer than this are aborted.
-* Added a new hook, 'TitleMoveCompleting', which runs before a page move is
-  committed.
-* $wgCdnReboundPurgeDelay was added to provide secondary delayed purges of URLs
-  from CDN to mitigate DB replication lag and WAN cache purge lag.
-* (T49162) Installer will default to setting CACHE_ACCEL as the main cache type
-  if it is available.
-* It is now possible to patrol file uploads (both for new files and new versions
-  of existing files). Special:NewFiles has gained an option to filter by patrol
-  status. This functionality can be disabled using $wgUseFilePatrol.
-* MediaWiki\Session infrastructure allows for easier use of session mechanisms
-  other than the usual cookies.
-** SessionMetadata and SessionCheckInfo hooks allow for setting and checking
-   custom session metadata.
-* Added MWGrants and associated configuration settings $wgGrantPermissions and
-  $wgGrantPermissionGroups to hold configuration for authentication features
-  such as OAuth that want to allow restricting the user rights a user may make
-  use of.
-** If you're already using the OAuth extension, these new variables are
-   identical to (and will replace) $wgMWOAuthGrantPermissions and
-   $wgMWOAuthGrantPermissionGroups.
-* Added MWRestrictions as a class to check restrictions on a WebRequest, e.g.
-  to assert that the request comes from a particular IP range.
-* Added bot passwords, a rights-restricted login mechanism for API-using bots.
-* Whitelisted the following HTML attributes for all elements in wikitext:
-  aria-describedby, aria-flowto, aria-label, aria-labelledby, aria-owns.
-* Removed "presentation" restriction on the HTML role attribute in wikitext.
-  All values are now allowed for the role attribute.
-* $wgContentHandlers now also supports callbacks to create an instance of the
-  appropriate ContentHandler subclass.
-* Added $wgAuthenticationTokenVersion, which if non-null prevents the
-  user_token database field from being exposed in cookies. Setting this would
-  be a good idea, but will log out all current sessions.
-* $wgEventRelayerConfig was added, for managing PubSub event relay configuration,
-  specifically for reliable CDN url purges.
-* Requests have unique IDs, equal to the UNIQUE_ID environment variable (when
-  MediaWiki is behind Apache+mod_unique_id or something similar) or a randomly-
-  generated 24-character string. This request ID is used to annotate log records
-  and error messages. It is available client-side via mw.config.get( 'wgRequestId' ).
-  The request ID supplants exception IDs. Accordingly, MWExceptionHandler::getLogId()
-  is deprecated.
-* (T33313) Add a preference for watching uploads by default, also applies
-  to API-based upload tools.
-* $wgJpegPixelFormat was added to override chroma subsampling for JPEG image
-  thumbnails created via ImageMagick. Defaults to 'yuv420', providing bandwidth
-  savings versus the previous behavior on many files.
-* MediaWiki\Auth infrastructure (called "AuthManager") allows for more flexible
-  configuration of multiple authentication pieces that was possible with
-  AuthPlugin. For example, it's now easy to plug in second-factor
-  authentication, or add additional checks to the login process, or to support
-  multiple login methods at once, or to support non-password-based login methods.
-** Providers are configured via the global setting $wgAuthManagerConfig.
-** A global, $wgDisableAuthManager, is temporarily available to disable
-   AuthManager until extensions are ready to support it.
-** New hook, AuthChangeFormFields, to adjust the form fields on
-   AuthManager-related special pages.
-** New hook, AuthManagerLoginAuthenticateAudit, for additional logging of
-   AuthManager-related authentication requests.
-** New hook, ChangeAuthenticationDataAudit, for additional logging of
-   AuthManager-related authentication data changes.
-** New hook, SecuritySensitiveOperationStatus, to work with the new mechanism
-   for requiring a recent login before taking security-sensitive operations
-   like changing a password.
-** Two new globals, $wgChangeCredentialsBlacklist and $wgRemoveCredentialsBlacklist
-   can be used to prevent the web UI and the API changing certain authentication data.
-* The file upload dialog (available if you install WikiEditor or VisualEditor)
-  can now be configured using $wgUploadDialog.
-
-=== External library changes in 1.27 ===
-
-==== Upgraded external libraries ====
-* Updated oojs/oojs-ui from v0.12.12 to v0.13.3.
-* Updated composer/semver from v1.0.0 to v1.2.0.
-* Updated liuggio/statsd-php-client to 1.0.18.
-* Updated QUnit from v1.18.0 to v1.22.0.
-
-==== New external libraries ====
-* Added wikimedia/base-convert v1.0.1.
-* Added wikimedia/cldr-plural-rule-parser v1.0.0.
-* Added wikimedia/relpath v1.0.3.
-* Added wikimedia/running-stat v1.1.0.
-* Added wikimedia/php-session-serializer v1.0.3.
-
-==== Removed and replaced external libraries ====
-
-=== Bug fixes in 1.27 ===
-* Special:Upload will now display correct maximum allowed file size when running
-  under HHVM (T116347).
-
-=== Action API changes in 1.27 ===
-* Added list=allrevisions.
-* generator=recentchanges now has the option to generate revids.
-* ApiPageSet::setRedirectMergePolicy() was added. This allows generator
-  modules to define how generator data for a redirect source gets merged
-  into the redirect destination.
-* prop=imageinfo&iiprop=uploadwarning will no longer include the possibility of
-  "was-deleted" warning.
-* Added difftotextpst to query=revisions which preforms a pre-save transform on
-  the text before diffing it.
-* Deprecated formats dbg, txt, and yaml have been removed.
-* (T47988) The protect log event details now use new-style formatting.
-* The following response properties from action=login are deprecated, and may
-  be removed in the future: lgtoken, cookieprefix, sessionid. Clients should
-  handle cookies to properly manage session state.
-* action=login transparently allows login using bot passwords. Clients should
-  merely need to change the username and password used after setting up a bot
-  password.
-* action=upload no longer understands statuskey, asyncdownload or leavemessage.
-* Several changes when $wgDisableAuthManager is false:
-** action=login is deprecated for uses other than bot passwords.
-** list=users can now indicate if a missing username is creatable.
-** action=createaccount is changed in a non-backwards-compatible manner.
-** Added action=query&meta=authmanagerinfo.
-** Added action=clientlogin to be used to log into the main account instead of
-   action=login.
-** Added action=linkaccount.
-** Added action=unlinkaccount.
-** Added action=changeauthenticationdata.
-** Added action=removeauthenticationdata.
-** Added action=resetpassword.
-
-=== Action API internal changes in 1.27 ===
-* ApiQueryORM removed.
-* The following classes have been removed:
-** ApiFormatDbg
-** ApiFormatTxt
-** ApiFormatYaml
-* ApiBase::addTokenProperties() was removed (deprecated since 1.24).
-* ApiBase::getFinalPossibleErrors() was removed (deprecated since 1.24).
-* ApiBase::getFinalResultProperties() was removed (deprecated since 1.24).
-* ApiBase::getRequireAtLeastOneParameterErrorMessages() was removed (deprecated since 1.24).
-* ApiBase::getPossibleErrors() was removed (deprecated since 1.24).
-* ApiBase::getRequireMaxOneParameterErrorMessages() was removed (deprecated since 1.24).
-* ApiBase::getRequireOnlyOneParameterErrorMessages() was removed (deprecated since 1.24).
-* ApiBase::getResultProperties() was removed (deprecated since 1.24).
-* ApiBase::getTitleOrPageIdErrorMessage() was removed (deprecated since 1.24).
-* ApiBase::parseErrors() was removed (deprecated since 1.24).
-* ApiQueryBase::titleToKey(), ApiQueryBase::keyToTitle() and
-  ApiQueryBase::keyPartToTitle() all removed (deprecated since 1.24).
-* ApiQueryBase::checkRowCount() was removed (deprecated since 1.24).
-* ApiQueryBase::getDirectionDescription() was removed (deprecated since 1.25).
-* ApiQuery::getGenerators() was removed (deprecated since 1.21).
-* ApiQuery::getModules() was removed (deprecated since 1.21).
-* ApiQuery::getModuleType() was removed (deprecated since 1.21).
-* ApiQuery::setGeneratorContinue() was removed (deprecated since 1.24).
-* ApiMain::getModules() was removed (deprecated since 1.21).
-* ApiBase::getVersion() was removed (deprecated since 1.21).
-* ApiMain::getShowVersions() was removed (deprecated in 1.21).
-* ApiMain::addModule() was removed (deprecated in 1.21).
-* ApiMain::addFormat() was removed (deprecated in 1.21).
-* ApiMain::getFormats() was removed (deprecated in 1.21).
-* ApiPageSet::finishPageSetGeneration() was removed (deprecated in 1.21).
-* ApiCreateAccount is deprecated, and will be removed soon.
-
-=== Languages updated in 1.27 ===
-
-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.
-
-* (T113688) Change default numerals from Gurmukhi to Arabic for Punjabi locale.
-* (T116020) Aliases of magic words in MessagesXx.php are sorted by usage.
-
-=== Other changes in 1.27 ===
-* Added dependency injection (DI) infrastructure, see docs/injection.txt for details.
-  It is planned to incrementally move MediaWiki code towards using DI, using the
-  service locator (SL) pattern as a stepping stone.
-* ProfilerOutputUdp was removed. Note that there is a ProfilerOutputStats class.
-* WikiPage::doDeleteArticleReal() and WikiPage::doDeleteArticle() now
-  ignore the 2nd and 3rd arguments (formerly $id and $commit).
-* Removed "loaderScripts" option from ResourceLoaderFileModule class.
-* Removed ORM-like wrapper added in 1.20.
-* LinkCache::getGoodLinks and LinkCache::getBadLinks were removed
-  (deprecated in 1.26).
-* WikiPage::doQuickEdit() was removed (deprecated since 1.21).
-* Removed SiteObject and SiteArray classes (deprecated in 1.21).
-* MessageBlobStore::getInstance() was removed (deprecated since 1.25).
-* (T84937) Free external links ("autolinked" urls) will now be terminated
-  by &nbsp; and HTML entity encodings of &nbsp, <, and >.
-* (T36948) The default file revert message's timestamp is now in
-  $wgLocaltimezone, instead of UTC.
-* The default name of the 'suppress' group page has been changed from
-  'Project:Oversight' to 'Project:Suppress'.
-* DatabaseBase::resultObject() is now protected (use outside Database classes
-  not necessary since 1.11).
-* Calling ResourceLoaderFileModule::readStyleFiles() without a
-  ResourceLoaderContext instance is deprecated.
-* ResourceLoader::getLessCompiler() now takes an optional parameter of
-  additional LESS variables to set for the compiler.
-* wfBaseConvert() marked as deprecated, use Wikimedia\base_convert() directly
-  instead.
-* Obsolete maintenance scripts clearCacheStats.php and showCacheStats.php
-  were removed. The underlying data is sent to StatsD (see $wgStatsdServer).
-* Removed msg_resource_links database table and associated code.
-* Removed msg_resource database table and associated code.
-* Skin::getNamespaceNotice() was removed.
-* wfIsConfiguredProxy() was removed (deprecated since 1.24).
-* wfDebugTimer() was removed (deprecated since 1.25).
-* wfIsTrustedProxy() was removed (deprecated since 1.24).
-* wfGetIP() was removed (deprecated since 1.19).
-* MWHookException was removed.
-* OutputPage::appendSubtitle() was removed (deprecated since 1.19).
-* OutputPage::loginToUse() was removed (deprecated since 1.19).
-* Article::loadContent() was removed (deprecated since 1.19).
-* User::editToken() was removed (deprecated since 1.19).
-* Removed --force-normal option of dumpBackup.php, as it no longer served
-  any useful purpose since 1.22.
-* The functions processOption() and processArgs() on the BackupDumper and
-  TextPassDumper classes have been removed.
-* The maintenance/backupTextPass.inc file was deleted. You should include
-  maintenance/dumpTextPass.php instead.
-* WikiPage::getUsedTemplates() was removed (deprecated since 1.19).
-* wfEmptyMsg() was removed (deprecated since 1.18).
-* OutputPage::permissionRequired() was removed (deprecated since 1.18).
-* OutputPage::blockedPage() was removed (deprecated since 1.18).
-* User::getSkin() was removed (deprecated since 1.18).
-* OutputPage::includeJQuery() was removed (deprecated since 1.17).
-* WikiPage::updateRestrictions() was removed (deprecated since 1.19).
-* WikiPage::testPreSaveTransform() was removed (deprecated since 1.19).
-* LogPage::logName() was removed (deprecated since 1.19).
-* LogPage::logHeader() was removed (deprecated since 1.19).
-* wfCheckLimits() was removed (deprecated since 1.24).
-* Linker::makeKnownLinkObj() was removed (deprecated since 1.16).
-* Linker::makeLinkObj() was removed (deprecated since 1.16).
-* wfMsgForContentNoTrans() was removed (deprecated since 1.18).
-* ChangesList::usePatrol was removed (deprecated since 1.22).
-* wfMsgNoTrans() was removed (deprecated since 1.18).
-* Linker::makeImageLink2 was removed (deprecated since 1.20).
-* Title::userIsWatching() was removed (deprecated since 1.20).
-* Removed WaitForSlave maintenance script; use SELECT MASTER_POS_WAIT()
-  database function directly instead.
-* wfMsg() was removed (deprecated since 1.18).
-* wfMsgForContent() was removed (deprecated since 1.18).
-* wfMsgReal() was removed (deprecated since 1.18).
-* wfMsgGetKey() was removed (deprecated since 1.18).
-* wfMsgHtml() was removed (deprecated since 1.18).
-* wfMsgWikiHtml() was removed (deprecated since 1.18).
-* wfMsgExt() was removed (deprecated since 1.18).
-* Language::armourMath() was removed (deprecated since 1.22).
-* LanguageConverter::armourMath() was removed (deprecated since 1.22).
-* FakeConverter::armourMath() was removed (deprecated since 1.22).
-* The unused jquery.validate ResourceLoader module was removed.
-* FileRepo::getRootUrl() was removed (deprecated since 1.20).
-* User::generateToken() was removed (deprecated since 1.20).
-* WikiPage::getRawText() was removed (deprecated since 1.21).
-* ParserOutput::hasCustomDataUpdates() was removed (deprecated since 1.25).
-* ParserOutput::addSecondaryDataUpdate() was removed (deprecated since 1.25).
-* ParserOutput::getSecondaryDataUpdates() was removed (deprecated since 1.25).
-* Gallery images with multiple caption pipes no longer concatenate them all
-  together but instead pick the final one, similar to image syntax.
-* XML-like parser tags (such as <gallery>), when unclosed, will be left unparsed
-  rather than consume everything until the end of the page.
-* New maintenance script resetUserEmail.php allows sysadmins to reset user emails in case
-  a user forgot password/account was stolen.
-* wfCheckEntropy() was removed (deprecated in 1.27).
-* Browser support for Internet Explorer 8 lowered from Grade A to Grade C.
-* ContentHandler::supportsCategories method added. Default is true.
-  CategoryMembershipChangeJob updates are skipped for content that
-  does not support categories.
-* wikidiff difference engine is no longer supported, anyone still using it are encouraged
-  to upgrade to wikidiff2 which is actively maintained and has better package availability.
-* Database logic was removed from WatchedItem and a WatchedItemStore was created:
-** WatchedItem::IGNORE_USER_RIGHTS and WatchedItem::CHECK_USER_RIGHTS were deprecated.
-   User::IGNORE_USER_RIGHTS and User::CHECK_USER_RIGHTS were introduced.
-** WatchedItem::fromUserTitle was deprecated in favour of the constructor.
-** WatchedItem::resetNotificationTimestamp was deprecated.
-** WatchedItem::batchAddWatch was deprecated.
-** WatchedItem::addWatch was deprecated.
-** WatchedItem::removeWatch was deprecated.
-** WatchedItem::isWatched was deprecated.
-** WatchedItem::duplicateEntries was deprecated.
-** EmailNotification::updateWatchlistTimestamp was deprecated.
-** User::getWatchedItem was removed.
-* Unit tests don't work with external PHPUnit anymore, Composer is now the only supported
-  way. Run `composer install` to install it and other dev dependencies to run unit tests.
-* wl_id field added to the watchlist table.
-* Revision::getRawText() was removed (deprecated since 1.21).
-* WikiPage::replaceSection() was removed (deprecated since 1.21).
-* Article::replaceSection() was removed (deprecated since 1.21).
-* Language::getLangObj() was removed (deprecated since 1.24).
-* Language::getLanguageName() was removed (deprecated since 1.20).
-* Language::getLanguageNames() was removed (deprecated since 1.20).
-* Language::getTranslatedLanguageNames() was removed (deprecated since 1.20).
-* Language::specialPage() was removed (deprecated since 1.24).
-* MediaWikiTestCase::assertException() was removed (deprecated since 1.22).
-* OutputPage::getHeadItems() was removed (deprecated since 1.24).
-* OutputPage::getScript() was removed (deprecated since 1.24).
-* OutputPage::out() was removed (deprecated since 1.22).
-* OutputPage::setAllowedModules() was removed (deprecated since 1.24).
-* UserrightsPage::makeGroupNameListForLog() was removed (deprecated since 1.21).
-* MediaWikiSite::newFromGlobalId() was removed (deprecated since 1.21).
-* Title::newFromRedirect() was removed (deprecated since 1.21).
-* Skin::commonPrintStylesheet() was removed (deprecated since 1.22).
-* Skin::getCommonStylePath() was removed (deprecated since 1.24).
-* Skin::newFromKey() was removed (deprecated since 1.24).
-* Skin::getUsableSkins() was removed (deprecated since 1.23).
-* LoadBalancer::pickRandom() was removed (deprecated in 1.21).
-* Article::getUndoText() and WikiPage::getUndoText were removed (deprecated since
-  1.21).
-* DifferenceEngine::setText() was removed (deprecated in 1.21).
-* Title::newFromRedirectArray() was removed (deprecated in 1.21).
-* UserMailer::send() no longer accepts $replyto as the 5th argument and $contentType
-  as the 6th. These must be passed in the options array now.
-* Title::newFromRedirectRecurse() was removed (deprecated in 1.21).
-* Skin::accesskey was removed (deprecated since 1.21).
-* Skin::blockLink was removed (deprecated since 1.21).
-* Skin::buildRollbackLink was removed (deprecated since 1.21).
-* Skin::emailLink was removed (deprecated since 1.21).
-* Skin::formatComment was removed (deprecated since 1.21).
-* Skin::formatHiddenCategories was removed (deprecated since 1.21).
-* Skin::formatLinksInComment was removed (deprecated since 1.21).
-* Skin::formatRevisionSize was removed (deprecated since 1.21).
-* Skin::formatSize was removed (deprecated since 1.21).
-* Skin::formatTemplates was removed (deprecated since 1.21).
-* Skin::generateTOC was removed (deprecated since 1.21).
-* Skin::getInternalLinkAttributes was removed (deprecated since 1.21).
-* Skin::getInternalLinkAttributesObj was removed (deprecated since 1.21).
-* Skin::getInterwikiLinkAttributes was removed (deprecated since 1.21).
-* Skin::getInvalidTitleDescription was removed (deprecated since 1.21).
-* Skin::getLinkColour was removed (deprecated since 1.21).
-* Skin::getRevDeleteLink was removed (deprecated since 1.21).
-* Skin::getRollbackEditCount was removed (deprecated since 1.21).
-* Skin::makeBrokenImageLinkObj was removed (deprecated since 1.21).
-* Skin::makeCommentLink was removed (deprecated since 1.21).
-* Skin::makeExternalImage was removed (deprecated since 1.21).
-* Skin::makeExternalLink was removed (deprecated since 1.21).
-* Skin::makeHeadline was removed (deprecated since 1.21).
-* Skin::makeImageLink was removed (deprecated since 1.21).
-* Skin::makeMediaLinkFile was removed (deprecated since 1.21).
-* Skin::makeMediaLinkObj was removed (deprecated since 1.21).
-* Skin::makeSelfLinkObj was removed (deprecated since 1.21).
-* Skin::makeThumbLink2 was removed (deprecated since 1.21).
-* Skin::makeThumbLinkObj was removed (deprecated since 1.21).
-* Skin::normaliseSpecialPage was removed (deprecated since 1.21).
-* Skin::normalizeSubpageLink was removed (deprecated since 1.21).
-* Skin::processResponsiveImages was removed (deprecated since 1.21).
-* Skin::revComment was removed (deprecated since 1.21).
-* Skin::revDeleteLink was removed (deprecated since 1.21).
-* Skin::revDeleteLinkDisabled was removed (deprecated since 1.21).
-* Skin::revUserLink was removed (deprecated since 1.21).
-* Skin::revUserTools was removed (deprecated since 1.21).
-* Skin::specialLink was removed (deprecated since 1.21).
-* Skin::splitTrail was removed (deprecated since 1.21).
-* Skin::titleAttrib was removed (deprecated since 1.21).
-* Skin::tocIndent was removed (deprecated since 1.21).
-* Skin::tocLine was removed (deprecated since 1.21).
-* Skin::tocLineEnd was removed (deprecated since 1.21).
-* Skin::tocList was removed (deprecated since 1.21).
-* Skin::tocUnindent was removed (deprecated since 1.21).
-* Skin::tooltip was removed (deprecated since 1.21).
-* Skin::tooltipAndAccesskeyAttribs was removed (deprecated since 1.21).
-* Skin::userTalkLink was removed (deprecated since 1.21).
-* Skin::userToolLinksRedContribs was removed (deprecated since 1.21).
-* wikidiff3 is now the default and only PHP diff engine. It provides improved diff
-  performance on complex changes. $wgExternalDiffEngine = 'wikidiff3' therefore
-  makes no difference now. Users are still recommended to use wikidiff2 if possible,
-  though.
-* User::addNewUserLogEntry() was deprecated.
-* User::addNewUserLogEntryAutoCreate() was deprecated.
-* User::isPasswordReminderThrottled() was deprecated.
-* Bot-oriented parameters to Special:UserLogin (wpCookieCheck, wpSkipCookieCheck)
-  were removed.
-
-== Compatibility ==
-
-MediaWiki 1.27 requires PHP 5.5.9 or later. There is experimental support for
-HHVM 3.6.5 or later.
-
-MySQL 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.0.3 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.27 has several database changes since 1.26, 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 quite long (minutes on a medium sized site,
-many hours on a large site).
-
-If upgrading from before 1.11, and you are using a wiki as a commons
-repository, make sure that it is updated as well. Otherwise, errors may arise
-due to database schema changes.
-
-If upgrading from before 1.7, you may want to run refreshLinks.php to ensure
-new database fields are filled with data.
-
-If you are upgrading from MediaWiki 1.4.x or earlier, you should upgrade to
-1.5 first. The upgrade script maintenance/upgrade1_5.php has been removed
-with MediaWiki 1.21.
-
-Don't forget to always back up your database before upgrading!
-
-See the file UPGRADE for more detailed upgrade instructions.
-
-For notes on 1.26.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/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 518ace4..42b65ba 100644 (file)
@@ -9,11 +9,23 @@ production.
 * The load.php entry point now enforces the existing policy of not allowing
   access to session data, which includes the session user and the session
   user's language. If such access is attempted, an exception will be thrown.
+* The number of internal PBKDF2 iterations used to derive the session secret
+  is configurable via $wgSessionPbkdf2Iterations.
+* Upload dialog's file upload log comment can now be configured separately for
+  local and foreign uploads.
+* $wgForeignUploadTargets now defaults to `[ 'local' ]`, where `'local'`
+  signifies local uploads. A value of `[]` (empty array) now means that
+  no upload targets are allowed, effectively disabling the upload dialog.
 
 === New features in 1.28 ===
 * User::isBot() method for checking if an account is a bot role account.
+* Added a new 'slideshow' mode for galleries.
 * Added a new hook, 'UserIsBot', to aid in determining if a user is a bot.
-* (T88044) Implemented one-click rollback handling via AJAX.
+* Added a new hook, 'ApiMakeParserOptions', to allow extensions to better
+  interact with API parsing.
+* Added a new hook, 'UploadVerifyUpload', which can be used to reject a file
+  upload. Unlike 'UploadVerifyFile' it provides information about upload comment
+  and the file description page, but does not run for uploads to stash.
 
 === External library changes in 1.28 ===
 
@@ -22,18 +34,15 @@ production.
 
 ==== New external libraries ====
 
-
 ==== Removed and replaced external libraries ====
 
-
 === Bug fixes in 1.28 ===
 
-
 === Action API changes in 1.28 ===
 
-
 === Action API internal changes in 1.28 ===
-
+* Added a new hook, 'ApiMakeParserOptions', to allow extensions to better
+  interact with ApiParse and ApiExpandTemplates.
 
 === Languages updated in 1.28 ===
 
@@ -41,8 +50,17 @@ 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.
 
-=== Other changes in 1.28 ===
+* (T137411) ban (Balinese), thanks to translators Adi Mayndra, Andru,
+  BASAbali, M. Adiputra, Naval Scene, Nemo bis, NoiX180, and 아라.
+* (T135867) shn (Shan), thanks to translators Khun Sar, Piangpha,
+  Saiddzone Saimawnkham, Saosukham, and Sengwan.
 
+=== Other changes in 1.28 ===
+* (T128697) Improved handling of large diffs.
+* [BREAKING CHANGE] $wgExtendedLoginCookies has been removed.  You can
+  use or update a custom session provider if needed.
+* Deprecated APIEditBeforeSave hook in favor of EditFilterMergedContent.
+* The 'UploadVerification' hook is deprecated. Use 'UploadVerifyFile' instead.
 
 == Compatibility ==
 
index b7e3419..d82d699 100644 (file)
@@ -21,6 +21,7 @@ $wgAutoloadLocalClasses = [
        'ApiAuthManagerHelper' => __DIR__ . '/includes/api/ApiAuthManagerHelper.php',
        'ApiBase' => __DIR__ . '/includes/api/ApiBase.php',
        'ApiBlock' => __DIR__ . '/includes/api/ApiBlock.php',
+       'ApiCSPReport' => __DIR__ . '/includes/api/ApiCSPReport.php',
        'ApiChangeAuthenticationData' => __DIR__ . '/includes/api/ApiChangeAuthenticationData.php',
        'ApiCheckToken' => __DIR__ . '/includes/api/ApiCheckToken.php',
        'ApiClearHasMsg' => __DIR__ . '/includes/api/ApiClearHasMsg.php',
@@ -388,6 +389,7 @@ $wgAutoloadLocalClasses = [
        'DumpPipeOutput' => __DIR__ . '/includes/export/DumpPipeOutput.php',
        'DumpRenderer' => __DIR__ . '/maintenance/renderDump.php',
        'DumpRev' => __DIR__ . '/maintenance/storage/dumpRev.php',
+       'DumpStringOutput' => __DIR__ . '/includes/export/DumpStringOutput.php',
        'DuplicateJob' => __DIR__ . '/includes/jobqueue/jobs/DuplicateJob.php',
        'EditAction' => __DIR__ . '/includes/actions/EditAction.php',
        'EditCLI' => __DIR__ . '/maintenance/edit.php',
@@ -603,10 +605,11 @@ $wgAutoloadLocalClasses = [
        'InitSiteStats' => __DIR__ . '/maintenance/initSiteStats.php',
        'InstallDocFormatter' => __DIR__ . '/includes/installer/InstallDocFormatter.php',
        'Installer' => __DIR__ . '/includes/installer/Installer.php',
-       'InstallerOverrides' => __DIR__ . '/mw-config/overrides.php',
+       'InstallerOverrides' => __DIR__ . '/includes/installer/InstallerOverrides.php',
        'InstallerSessionProvider' => __DIR__ . '/includes/installer/InstallerSessionProvider.php',
        'Interwiki' => __DIR__ . '/includes/interwiki/Interwiki.php',
        'InvalidPassword' => __DIR__ . '/includes/password/InvalidPassword.php',
+       'InvalidateUserSesssions' => __DIR__ . '/maintenance/invalidateUserSessions.php',
        'IteratorDecorator' => __DIR__ . '/includes/utils/iterators/IteratorDecorator.php',
        'IuConverter' => __DIR__ . '/languages/classes/LanguageIu.php',
        'JSCompilerContext' => __DIR__ . '/includes/libs/jsminplus.php',
@@ -791,7 +794,6 @@ $wgAutoloadLocalClasses = [
        'MediaTransformOutput' => __DIR__ . '/includes/media/MediaTransformOutput.php',
        'MediaWiki' => __DIR__ . '/includes/MediaWiki.php',
        'MediaWikiI18N' => __DIR__ . '/includes/skins/MediaWikiI18N.php',
-       'MediaWikiPageLinkRenderer' => __DIR__ . '/includes/title/MediaWikiPageLinkRenderer.php',
        'MediaWikiSite' => __DIR__ . '/includes/site/MediaWikiSite.php',
        'MediaWikiTitleCodec' => __DIR__ . '/includes/title/MediaWikiTitleCodec.php',
        'MediaWikiVersionFetcher' => __DIR__ . '/includes/MediaWikiVersionFetcher.php',
@@ -830,6 +832,7 @@ $wgAutoloadLocalClasses = [
        'MediaWiki\\Auth\\Throttler' => __DIR__ . '/includes/auth/Throttler.php',
        'MediaWiki\\Auth\\UserDataAuthenticationRequest' => __DIR__ . '/includes/auth/UserDataAuthenticationRequest.php',
        'MediaWiki\\Auth\\UsernameAuthenticationRequest' => __DIR__ . '/includes/auth/UsernameAuthenticationRequest.php',
+       'MediaWiki\\Diff\\ComplexityException' => __DIR__ . '/includes/diff/ComplexityException.php',
        'MediaWiki\\Diff\\WordAccumulator' => __DIR__ . '/includes/diff/WordAccumulator.php',
        'MediaWiki\\Interwiki\\ClassicInterwikiLookup' => __DIR__ . '/includes/interwiki/ClassicInterwikiLookup.php',
        'MediaWiki\\Interwiki\\InterwikiLookup' => __DIR__ . '/includes/interwiki/InterwikiLookup.php',
@@ -877,7 +880,14 @@ $wgAutoloadLocalClasses = [
        'MediaWiki\\Session\\Token' => __DIR__ . '/includes/session/Token.php',
        'MediaWiki\\Session\\UserInfo' => __DIR__ . '/includes/session/UserInfo.php',
        'MediaWiki\\Site\\MediaWikiPageNameNormalizer' => __DIR__ . '/includes/site/MediaWikiPageNameNormalizer.php',
+       'MediaWiki\\Tidy\\BalanceActiveFormattingElements' => __DIR__ . '/includes/tidy/Balancer.php',
+       'MediaWiki\\Tidy\\BalanceElement' => __DIR__ . '/includes/tidy/Balancer.php',
+       'MediaWiki\\Tidy\\BalanceMarker' => __DIR__ . '/includes/tidy/Balancer.php',
+       'MediaWiki\\Tidy\\BalanceSets' => __DIR__ . '/includes/tidy/Balancer.php',
+       'MediaWiki\\Tidy\\BalanceStack' => __DIR__ . '/includes/tidy/Balancer.php',
+       'MediaWiki\\Tidy\\Balancer' => __DIR__ . '/includes/tidy/Balancer.php',
        'MediaWiki\\Tidy\\Html5Depurate' => __DIR__ . '/includes/tidy/Html5Depurate.php',
+       'MediaWiki\\Tidy\\Html5Internal' => __DIR__ . '/includes/tidy/Html5Internal.php',
        'MediaWiki\\Tidy\\RaggettBase' => __DIR__ . '/includes/tidy/RaggettBase.php',
        'MediaWiki\\Tidy\\RaggettExternal' => __DIR__ . '/includes/tidy/RaggettExternal.php',
        'MediaWiki\\Tidy\\RaggettInternalHHVM' => __DIR__ . '/includes/tidy/RaggettInternalHHVM.php',
@@ -935,7 +945,6 @@ $wgAutoloadLocalClasses = [
        'MutableConfig' => __DIR__ . '/includes/config/MutableConfig.php',
        'MutableContext' => __DIR__ . '/includes/context/MutableContext.php',
        'MwSql' => __DIR__ . '/maintenance/sql.php',
-       'MyLocalSettingsGenerator' => __DIR__ . '/mw-config/overrides.php',
        'MySQLField' => __DIR__ . '/includes/db/DatabaseMysqlBase.php',
        'MySQLMasterPos' => __DIR__ . '/includes/db/DatabaseMysqlBase.php',
        'MySqlLockManager' => __DIR__ . '/includes/filebackend/lockmanager/DBLockManager.php',
@@ -955,6 +964,7 @@ $wgAutoloadLocalClasses = [
        'NukePage' => __DIR__ . '/maintenance/nukePage.php',
        'NullFileJournal' => __DIR__ . '/includes/filebackend/filejournal/FileJournal.php',
        'NullFileOp' => __DIR__ . '/includes/filebackend/FileOp.php',
+       'NullIndexField' => __DIR__ . '/includes/search/NullIndexField.php',
        'NullJob' => __DIR__ . '/includes/jobqueue/jobs/NullJob.php',
        'NullLockManager' => __DIR__ . '/includes/filebackend/lockmanager/LockManager.php',
        'NullRepo' => __DIR__ . '/includes/filerepo/NullRepo.php',
@@ -1004,7 +1014,6 @@ $wgAutoloadLocalClasses = [
        'PageArchive' => __DIR__ . '/includes/specials/SpecialUndelete.php',
        'PageExists' => __DIR__ . '/maintenance/pageExists.php',
        'PageLangLogFormatter' => __DIR__ . '/includes/logging/PageLangLogFormatter.php',
-       'PageLinkRenderer' => __DIR__ . '/includes/title/PageLinkRenderer.php',
        'PageProps' => __DIR__ . '/includes/PageProps.php',
        'PageQueryPage' => __DIR__ . '/includes/specialpage/PageQueryPage.php',
        'Pager' => __DIR__ . '/includes/pager/Pager.php',
@@ -1092,6 +1101,7 @@ $wgAutoloadLocalClasses = [
        'RCDatabaseLogEntry' => __DIR__ . '/includes/logging/LogEntry.php',
        'RCFeedEngine' => __DIR__ . '/includes/rcfeed/RCFeedEngine.php',
        'RCFeedFormatter' => __DIR__ . '/includes/rcfeed/RCFeedFormatter.php',
+       'RESTBagOStuff' => __DIR__ . '/includes/libs/objectcache/RESTBagOStuff.php',
        'RSSFeed' => __DIR__ . '/includes/Feed.php',
        'RandomPage' => __DIR__ . '/includes/specials/SpecialRandompage.php',
        'RangeDifference' => __DIR__ . '/includes/diff/DiffEngine.php',
@@ -1148,6 +1158,7 @@ $wgAutoloadLocalClasses = [
        'ResourceLoaderOOUIImageModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderOOUIImageModule.php',
        'ResourceLoaderRawFileModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderRawFileModule.php',
        'ResourceLoaderSiteModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderSiteModule.php',
+       'ResourceLoaderSiteStylesModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderSiteStylesModule.php',
        'ResourceLoaderSkinModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderSkinModule.php',
        'ResourceLoaderSpecialCharacterDataModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderSpecialCharacterDataModule.php',
        'ResourceLoaderStartUpModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderStartUpModule.php',
@@ -1173,6 +1184,7 @@ $wgAutoloadLocalClasses = [
        'RevDelLogList' => __DIR__ . '/includes/revisiondelete/RevDelLogList.php',
        'RevDelRevisionItem' => __DIR__ . '/includes/revisiondelete/RevDelRevisionItem.php',
        'RevDelRevisionList' => __DIR__ . '/includes/revisiondelete/RevDelRevisionList.php',
+       'ReverseArrayIterator' => __DIR__ . '/includes/libs/ReverseArrayIterator.php',
        'ReverseChronologicalPager' => __DIR__ . '/includes/pager/ReverseChronologicalPager.php',
        'RevertAction' => __DIR__ . '/includes/actions/RevertAction.php',
        'Revision' => __DIR__ . '/includes/Revision.php',
@@ -1198,6 +1210,7 @@ $wgAutoloadLocalClasses = [
        'SavepointPostgres' => __DIR__ . '/includes/db/DatabasePostgres.php',
        'ScopedCallback' => __DIR__ . '/includes/libs/ScopedCallback.php',
        'ScopedLock' => __DIR__ . '/includes/filebackend/lockmanager/ScopedLock.php',
+       'SearchApi' => __DIR__ . '/includes/api/SearchApi.php',
        'SearchDatabase' => __DIR__ . '/includes/search/SearchDatabase.php',
        'SearchDump' => __DIR__ . '/maintenance/dumpIterator.php',
        'SearchEngine' => __DIR__ . '/includes/search/SearchEngine.php',
@@ -1206,6 +1219,8 @@ $wgAutoloadLocalClasses = [
        'SearchEngineFactory' => __DIR__ . '/includes/search/SearchEngineFactory.php',
        'SearchExactMatchRescorer' => __DIR__ . '/includes/search/SearchExactMatchRescorer.php',
        'SearchHighlighter' => __DIR__ . '/includes/search/SearchHighlighter.php',
+       'SearchIndexField' => __DIR__ . '/includes/search/SearchIndexField.php',
+       'SearchIndexFieldDefinition' => __DIR__ . '/includes/search/SearchIndexFieldDefinition.php',
        'SearchMssql' => __DIR__ . '/includes/search/SearchMssql.php',
        'SearchMySQL' => __DIR__ . '/includes/search/SearchMySQL.php',
        'SearchNearMatchResultSet' => __DIR__ . '/includes/search/SearchNearMatchResultSet.php',
@@ -1245,6 +1260,7 @@ $wgAutoloadLocalClasses = [
        'SkinFallback' => __DIR__ . '/includes/skins/SkinFallback.php',
        'SkinFallbackTemplate' => __DIR__ . '/includes/skins/SkinFallbackTemplate.php',
        'SkinTemplate' => __DIR__ . '/includes/skins/SkinTemplate.php',
+       'SlideshowImageGallery' => __DIR__ . '/includes/gallery/SlideshowImageGallery.php',
        'SpecialActiveUsers' => __DIR__ . '/includes/specials/SpecialActiveusers.php',
        'SpecialAllMessages' => __DIR__ . '/includes/specials/SpecialAllMessages.php',
        'SpecialAllMyUploads' => __DIR__ . '/includes/specials/SpecialMyRedirectPages.php',
@@ -1485,6 +1501,7 @@ $wgAutoloadLocalClasses = [
        'WantedTemplatesPage' => __DIR__ . '/includes/specials/SpecialWantedtemplates.php',
        'WatchAction' => __DIR__ . '/includes/actions/WatchAction.php',
        'WatchedItem' => __DIR__ . '/includes/WatchedItem.php',
+       'WatchedItemQueryService' => __DIR__ . '/includes/WatchedItemQueryService.php',
        'WatchedItemStore' => __DIR__ . '/includes/WatchedItemStore.php',
        'WatchlistCleanup' => __DIR__ . '/maintenance/cleanupWatchlist.php',
        'WebInstaller' => __DIR__ . '/includes/installer/WebInstaller.php',
index 5cc4a64..d5bf93c 100644 (file)
@@ -16,7 +16,7 @@
                "wiki": "https://www.mediawiki.org/"
        },
        "require": {
-               "composer/semver": "1.4.0",
+               "composer/semver": "1.4.1",
                "cssjanus/cssjanus": "1.1.2",
                "ext-ctype": "*",
                "ext-iconv": "*",
                "ext-xml": "*",
                "liuggio/statsd-php-client": "1.0.18",
                "mediawiki/at-ease": "1.1.0",
-               "oojs/oojs-ui": "0.17.3",
+               "oojs/oojs-ui": "0.17.6",
                "oyejorge/less.php": "1.7.0.10",
                "php": ">=5.5.9",
                "psr/log": "1.0.0",
                "wikimedia/assert": "0.2.2",
                "wikimedia/base-convert": "1.0.1",
-               "wikimedia/cdb": "1.4.0",
+               "wikimedia/cdb": "1.4.1",
                "wikimedia/cldr-plural-rule-parser": "1.0.0",
                "wikimedia/composer-merge-plugin": "1.3.1",
                "wikimedia/html-formatter": "1.0.1",
                "wikimedia/relpath": "1.0.3",
                "wikimedia/running-stat": "1.1.0",
                "wikimedia/utfnormal": "1.0.3",
-               "wikimedia/wrappedstring": "2.0.0",
+               "wikimedia/wrappedstring": "2.1.1",
                "zordius/lightncandy": "0.23"
        },
        "require-dev": {
                "jakub-onderka/php-parallel-lint": "0.9.2",
                "justinrainbow/json-schema": "~1.3",
-               "mediawiki/mediawiki-codesniffer": "0.7.1",
+               "mediawiki/mediawiki-codesniffer": "0.7.2",
                "monolog/monolog": "~1.18.2",
                "nikic/php-parser": "1.4.1",
                "nmred/kafka-php": "0.1.5",
index 1d2b2f0..14a9731 100644 (file)
                                                                },
                                                                "group": {
                                                                        "type": "string",
-                                                                       "description": "Group which this module should be loaded together with"
+                                                                       "description": "Group with which this module should be loaded"
                                                                },
                                                                "position": {
                                                                        "type": "string",
                                                                }
                                                        }
                                                },
+                                               {
+                                                       "description": "A ResourceLoaderWikiModule definition",
+                                                       "additionalProperties": false,
+                                                       "properties": {
+                                                               "class": {
+                                                                       "enum": ["ResourceLoaderWikiModule"]
+                                                               },
+                                                               "group": {
+                                                                       "type": "string",
+                                                                       "description": "Group with which this module should be loaded"
+                                                               },
+                                                               "position": {
+                                                                       "type": "string",
+                                                                       "description": "Position on the page to load this module at",
+                                                                       "enum": [
+                                                                               "bottom",
+                                                                               "top"
+                                                                       ]
+                                                               },
+                                                               "targets": {
+                                                                       "type": ["string", "array"],
+                                                                       "description": "ResourceLoader target the module can run on",
+                                                                       "items": {
+                                                                               "type": "string"
+                                                                       }
+                                                               },
+                                                               "scripts": {
+                                                                       "type": "array",
+                                                                       "description": "A list of on-wiki pages containing JavaScript that should be loaded",
+                                                                       "items": {
+                                                                               "type": "string"
+                                                                       }
+                                                               },
+                                                               "styles": {
+                                                                       "type": "array",
+                                                                       "description": "A list of on-wiki pages containing CSS that should be loaded",
+                                                                       "items": {
+                                                                               "type": "string"
+                                                                       }
+                                                               }
+                                                       }
+                                               },
                                                {
                                                        "description": "A ResourceLoaderImageModule definition",
                                                        "additionalProperties": false,
                        "type": "object",
                        "description": "ResourceLoader LESS variables"
                },
-               "ResourceLoaderLESSImportPaths": {
-                       "type": "object",
-                       "description": "ResourceLoader import paths"
-               },
                "ConfigRegistry": {
                        "type": "object",
                        "description": "Registry of factory functions to create Config objects"
                        "type": "object",
                        "description": "Central ID lookup providers"
                },
+               "ChangeCredentialsBlacklist": {
+                       "type": "object",
+                       "description": "AuthenticationRequest classes which can only be used internally for credentials change"
+               },
+               "RemoveCredentialsBlacklist": {
+                       "type": "object",
+                       "description": "AuthenticationRequest classes which can only be used internally for credentials removal"
+               },
                "namespaces": {
                        "type": "array",
                        "description": "Method to add extra namespaces",
                                }
                        }
                },
+               "GrantPermissions": {
+                       "type": "object",
+                       "description": "Map of permissions granted to authorized consumers to their bundles, called 'grants'",
+                       "patternProperties": {
+                               "^[a-z]+$": {
+                                       "type": "object",
+                                       "patternProperties": {
+                                               "^[a-z]+$": {
+                                                       "type": "boolean"
+                                               }
+                                       }
+                               }
+                       }
+               },
+               "GrantPermissionGroups": {
+                       "type": "object",
+                       "description": "Map of grants to their UI grouping",
+                       "patternProperties": {
+                               "^[a-z]+$": {
+                                       "type": "string"
+                               }
+                       }
+               },
                "ImplicitGroups": {
                        "type": "array",
                        "description": "Implicit groups"
                        ],
                        "description": "A function to be called right after MediaWiki processes this file"
                },
+               "config_prefix": {
+                       "type": "string",
+                       "default": "wg",
+                       "description": "Prefix to put in front of configuration settings when exporting them to $GLOBALS"
+               },
                "config": {
                        "type": "object",
                        "description": "Configuration options for this extension",
-                       "properties": {
-                               "_prefix": {
-                                       "type": "string",
-                                       "default": "wg",
-                                       "description": "Prefix to put in front of configuration settings when exporting them to $GLOBALS"
-                               }
-                       },
                        "patternProperties": {
                                "^[a-zA-Z_\u007f-\u00ff][a-zA-Z0-9_\u007f-\u00ff]*$": {
                                        "properties": {
-                                               "_merge_strategy": {
+                                               "value": {
+                                                       "required": true
+                                               },
+                                               "merge_strategy": {
                                                        "type": "string",
                                                        "enum": [
                                                                "array_merge_recursive",
                                                                "array_merge"
                                                        ],
                                                        "default": "array_merge"
+                                               },
+                                               "description": {
+                                                       "type": ["string", "array"],
+                                                       "description": "A description of the config setting, mostly for documentation/developers"
                                                }
                                        }
                                }
diff --git a/docs/extension.schema.v1.json b/docs/extension.schema.v1.json
new file mode 100644 (file)
index 0000000..893facf
--- /dev/null
@@ -0,0 +1,886 @@
+{
+       "$schema": "http://json-schema.org/schema#",
+       "description": "MediaWiki extension.json schema",
+       "type": "object",
+       "properties": {
+               "manifest_version": {
+                       "type": "integer",
+                       "description": "Version of the extension.json schema the extension.json file is in.",
+                       "required": true
+               },
+               "name": {
+                       "type": "string",
+                       "description": "The extension's canonical name.",
+                       "required": true
+               },
+               "namemsg": {
+                       "type": "string",
+                       "description": "i18n message key of the extension's name."
+               },
+               "type": {
+                       "type": "string",
+                       "description": "The extension's type, as an index to $wgExtensionCredits.",
+                       "default": "other"
+               },
+               "author": {
+                       "type": [
+                               "string",
+                               "array"
+                       ],
+                       "description": "Extension's authors.",
+                       "items": {
+                               "type": "string"
+                       }
+               },
+               "version": {
+                       "type": "string",
+                       "description": "The version of this release of the extension."
+               },
+               "url": {
+                       "type": "string",
+                       "description": "URL to the homepage for the extension.",
+                       "format": "uri"
+               },
+               "description": {
+                       "type": "string",
+                       "description": "Raw description of the extension."
+               },
+               "descriptionmsg": {
+                       "type": "string",
+                       "description": "Message key for a i18n message describing the extension."
+               },
+               "license-name": {
+                       "type": "string",
+                       "description": "Short identifier for the license under which the extension is released.",
+                       "enum": [
+                               "AFL-1.1",
+                               "AFL-1.2",
+                               "AFL-2.0",
+                               "AFL-2.1",
+                               "AFL-3.0",
+                               "APL-1.0",
+                               "Aladdin",
+                               "ANTLR-PD",
+                               "Apache-1.0",
+                               "Apache-1.1",
+                               "Apache-2.0",
+                               "APSL-1.0",
+                               "APSL-1.1",
+                               "APSL-1.2",
+                               "APSL-2.0",
+                               "Artistic-1.0",
+                               "Artistic-1.0-cl8",
+                               "Artistic-1.0-Perl",
+                               "Artistic-2.0",
+                               "AAL",
+                               "BitTorrent-1.0",
+                               "BitTorrent-1.1",
+                               "BSL-1.0",
+                               "BSD-2-Clause",
+                               "BSD-2-Clause-FreeBSD",
+                               "BSD-2-Clause-NetBSD",
+                               "BSD-3-Clause",
+                               "BSD-3-Clause-Clear",
+                               "BSD-4-Clause",
+                               "BSD-4-Clause-UC",
+                               "CECILL-1.0",
+                               "CECILL-1.1",
+                               "CECILL-2.0",
+                               "CECILL-B",
+                               "CECILL-C",
+                               "ClArtistic",
+                               "CNRI-Python",
+                               "CNRI-Python-GPL-Compatible",
+                               "CPOL-1.02",
+                               "CDDL-1.0",
+                               "CDDL-1.1",
+                               "CPAL-1.0",
+                               "CPL-1.0",
+                               "CATOSL-1.1",
+                               "Condor-1.1",
+                               "CC-BY-1.0",
+                               "CC-BY-2.0",
+                               "CC-BY-2.5",
+                               "CC-BY-3.0",
+                               "CC-BY-ND-1.0",
+                               "CC-BY-ND-2.0",
+                               "CC-BY-ND-2.5",
+                               "CC-BY-ND-3.0",
+                               "CC-BY-NC-1.0",
+                               "CC-BY-NC-2.0",
+                               "CC-BY-NC-2.5",
+                               "CC-BY-NC-3.0",
+                               "CC-BY-NC-ND-1.0",
+                               "CC-BY-NC-ND-2.0",
+                               "CC-BY-NC-ND-2.5",
+                               "CC-BY-NC-ND-3.0",
+                               "CC-BY-NC-SA-1.0",
+                               "CC-BY-NC-SA-2.0",
+                               "CC-BY-NC-SA-2.5",
+                               "CC-BY-NC-SA-3.0",
+                               "CC-BY-SA-1.0",
+                               "CC-BY-SA-2.0",
+                               "CC-BY-SA-2.5",
+                               "CC-BY-SA-3.0",
+                               "CC0-1.0",
+                               "CUA-OPL-1.0",
+                               "D-FSL-1.0",
+                               "WTFPL",
+                               "EPL-1.0",
+                               "eCos-2.0",
+                               "ECL-1.0",
+                               "ECL-2.0",
+                               "EFL-1.0",
+                               "EFL-2.0",
+                               "Entessa",
+                               "ErlPL-1.1",
+                               "EUDatagrid",
+                               "EUPL-1.0",
+                               "EUPL-1.1",
+                               "Fair",
+                               "Frameworx-1.0",
+                               "FTL",
+                               "AGPL-1.0",
+                               "AGPL-3.0",
+                               "GFDL-1.1",
+                               "GFDL-1.2",
+                               "GFDL-1.3",
+                               "GPL-1.0",
+                               "GPL-1.0+",
+                               "GPL-2.0",
+                               "GPL-2.0+",
+                               "GPL-2.0-with-autoconf-exception",
+                               "GPL-2.0-with-bison-exception",
+                               "GPL-2.0-with-classpath-exception",
+                               "GPL-2.0-with-font-exception",
+                               "GPL-2.0-with-GCC-exception",
+                               "GPL-3.0",
+                               "GPL-3.0+",
+                               "GPL-3.0-with-autoconf-exception",
+                               "GPL-3.0-with-GCC-exception",
+                               "LGPL-2.1",
+                               "LGPL-2.1+",
+                               "LGPL-3.0",
+                               "LGPL-3.0+",
+                               "LGPL-2.0",
+                               "LGPL-2.0+",
+                               "gSOAP-1.3b",
+                               "HPND",
+                               "IBM-pibs",
+                               "IPL-1.0",
+                               "Imlib2",
+                               "IJG",
+                               "Intel",
+                               "IPA",
+                               "ISC",
+                               "JSON",
+                               "LPPL-1.3a",
+                               "LPPL-1.0",
+                               "LPPL-1.1",
+                               "LPPL-1.2",
+                               "LPPL-1.3c",
+                               "Libpng",
+                               "LPL-1.02",
+                               "LPL-1.0",
+                               "MS-PL",
+                               "MS-RL",
+                               "MirOS",
+                               "MIT",
+                               "Motosoto",
+                               "MPL-1.0",
+                               "MPL-1.1",
+                               "MPL-2.0",
+                               "MPL-2.0-no-copyleft-exception",
+                               "Multics",
+                               "NASA-1.3",
+                               "Naumen",
+                               "NBPL-1.0",
+                               "NGPL",
+                               "NOSL",
+                               "NPL-1.0",
+                               "NPL-1.1",
+                               "Nokia",
+                               "NPOSL-3.0",
+                               "NTP",
+                               "OCLC-2.0",
+                               "ODbL-1.0",
+                               "PDDL-1.0",
+                               "OGTSL",
+                               "OLDAP-2.2.2",
+                               "OLDAP-1.1",
+                               "OLDAP-1.2",
+                               "OLDAP-1.3",
+                               "OLDAP-1.4",
+                               "OLDAP-2.0",
+                               "OLDAP-2.0.1",
+                               "OLDAP-2.1",
+                               "OLDAP-2.2",
+                               "OLDAP-2.2.1",
+                               "OLDAP-2.3",
+                               "OLDAP-2.4",
+                               "OLDAP-2.5",
+                               "OLDAP-2.6",
+                               "OLDAP-2.7",
+                               "OPL-1.0",
+                               "OSL-1.0",
+                               "OSL-2.0",
+                               "OSL-2.1",
+                               "OSL-3.0",
+                               "OLDAP-2.8",
+                               "OpenSSL",
+                               "PHP-3.0",
+                               "PHP-3.01",
+                               "PostgreSQL",
+                               "Python-2.0",
+                               "QPL-1.0",
+                               "RPSL-1.0",
+                               "RPL-1.1",
+                               "RPL-1.5",
+                               "RHeCos-1.1",
+                               "RSCPL",
+                               "Ruby",
+                               "SAX-PD",
+                               "SGI-B-1.0",
+                               "SGI-B-1.1",
+                               "SGI-B-2.0",
+                               "OFL-1.0",
+                               "OFL-1.1",
+                               "SimPL-2.0",
+                               "Sleepycat",
+                               "SMLNJ",
+                               "SugarCRM-1.1.3",
+                               "SISSL",
+                               "SISSL-1.2",
+                               "SPL-1.0",
+                               "Watcom-1.0",
+                               "NCSA",
+                               "VSL-1.0",
+                               "W3C",
+                               "WXwindows",
+                               "Xnet",
+                               "X11",
+                               "XFree86-1.1",
+                               "YPL-1.0",
+                               "YPL-1.1",
+                               "Zimbra-1.3",
+                               "Zlib",
+                               "ZPL-1.1",
+                               "ZPL-2.0",
+                               "ZPL-2.1",
+                               "Unlicense"
+                       ]
+               },
+               "requires": {
+                       "type": "object",
+                       "description": "Indicates what versions of MediaWiki core are required. This syntax may be extended in the future, for example to check dependencies between other extensions.",
+                       "properties": {
+                               "MediaWiki": {
+                                       "type": "string",
+                                       "description": "Version constraint string against MediaWiki core."
+                               }
+                       }
+               },
+               "ResourceFileModulePaths": {
+                       "type": "object",
+                       "description": "Default paths to use for all ResourceLoader file modules",
+                       "additionalProperties": false,
+                       "properties": {
+                               "localBasePath": {
+                                       "type": "string",
+                                       "description": "Base path to prepend to all local paths, relative to current directory"
+                               },
+                               "remoteExtPath": {
+                                       "type": "string",
+                                       "description": "Base path to prepend to all remote paths, relative to $wgExtensionAssetsPath"
+                               },
+                               "remoteSkinPath": {
+                                       "type": "string",
+                                       "description": "Base path to prepend to all remote paths, relative to $wgStylePath"
+                               }
+                       }
+               },
+               "ResourceModules": {
+                       "type": "object",
+                       "description": "ResourceLoader modules to register",
+                       "patternProperties": {
+                               "^[a-zA-Z0-9-\\.]+$": {
+                                       "type": "object",
+                                       "anyOf": [
+                                               {
+                                                       "description": "A ResourceLoaderFileModule definition",
+                                                       "additionalProperties": false,
+                                                       "properties": {
+                                                               "localBasePath": {
+                                                                       "type": "string",
+                                                                       "description": "Base path to prepend to all local paths in $options. Defaults to $IP"
+                                                               },
+                                                               "remoteBasePath": {
+                                                                       "type": "string",
+                                                                       "description": "Base path to prepend to all remote paths in $options. Defaults to $wgScriptPath"
+                                                               },
+                                                               "remoteExtPath": {
+                                                                       "type": "string",
+                                                                       "description": "Equivalent of remoteBasePath, but relative to $wgExtensionAssetsPath"
+                                                               },
+                                                               "skipFunction": {
+                                                                       "type": "string",
+                                                                       "description": "Path to a file containing a JavaScript \"skip function\", if desired."
+                                                               },
+                                                               "scripts": {
+                                                                       "type": ["string", "array"],
+                                                                       "description": "Scripts to always include (array of file paths)",
+                                                                       "items": {
+                                                                               "type": "string"
+                                                                       }
+                                                               },
+                                                               "languageScripts": {
+                                                                       "type": "object",
+                                                                       "description": "Scripts to include in specific language contexts (mapping of language code to file path(s))",
+                                                                       "patternProperties": {
+                                                                               "^[a-zA-Z0-9-]{2,}$": {
+                                                                                       "type": [
+                                                                                               "string",
+                                                                                               "array"
+                                                                                       ],
+                                                                                       "items": {
+                                                                                               "type": "string"
+                                                                                       }
+                                                                               }
+                                                                       }
+                                                               },
+                                                               "skinScripts": {
+                                                                       "type": "object",
+                                                                       "description": "Scripts to include in specific skin contexts (mapping of skin name to script(s)",
+                                                                       "patternProperties": {
+                                                                               ".+": {
+                                                                                       "type": [
+                                                                                               "string",
+                                                                                               "array"
+                                                                                       ],
+                                                                                       "items": {
+                                                                                               "type": "string"
+                                                                                       }
+                                                                               }
+                                                                       }
+                                                               },
+                                                               "debugScripts": {
+                                                                       "type": ["string", "array"],
+                                                                       "description": "Scripts to include in debug contexts",
+                                                                       "items": {
+                                                                               "type": "string"
+                                                                       }
+                                                               },
+                                                               "loaderScripts": {
+                                                                       "type": ["string", "array"],
+                                                                       "description": "Scripts to include in the startup module",
+                                                                       "items": {
+                                                                               "type": "string"
+                                                                       }
+                                                               },
+                                                               "dependencies": {
+                                                                       "type": ["string", "array"],
+                                                                       "description": "Modules which must be loaded before this module",
+                                                                       "items": {
+                                                                               "type": "string"
+                                                                       }
+                                                               },
+                                                               "styles": {
+                                                                       "type": ["string", "array", "object"],
+                                                                       "description": "Styles to always load",
+                                                                       "items": {
+                                                                               "type": "string"
+                                                                       }
+                                                               },
+                                                               "skinStyles": {
+                                                                       "type": "object",
+                                                                       "description": "Styles to include in specific skin contexts (mapping of skin name to style(s))",
+                                                                       "patternProperties": {
+                                                                               ".+": {
+                                                                                       "type": [
+                                                                                               "string",
+                                                                                               "array"
+                                                                                       ],
+                                                                                       "items": {
+                                                                                               "type": "string"
+                                                                                       }
+                                                                               }
+                                                                       }
+                                                               },
+                                                               "messages": {
+                                                                       "type": ["string", "array"],
+                                                                       "description": "Messages to always load",
+                                                                       "items": {
+                                                                               "type": "string"
+                                                                       }
+                                                               },
+                                                               "group": {
+                                                                       "type": "string",
+                                                                       "description": "Group which this module should be loaded together with"
+                                                               },
+                                                               "position": {
+                                                                       "type": "string",
+                                                                       "description": "Position on the page to load this module at",
+                                                                       "enum": [
+                                                                               "bottom",
+                                                                               "top"
+                                                                       ]
+                                                               },
+                                                               "templates": {
+                                                                       "type": ["object", "array"],
+                                                                       "description": "Templates to be loaded for client-side usage"
+                                                               },
+                                                               "targets": {
+                                                                       "type": ["string", "array"],
+                                                                       "description": "ResourceLoader target the module can run on",
+                                                                       "items": {
+                                                                               "type": "string"
+                                                                       }
+                                                               }
+                                                       }
+                                               },
+                                               {
+                                                       "description": "A ResourceLoaderWikiModule definition",
+                                                       "additionalProperties": false,
+                                                       "properties": {
+                                                               "class": {
+                                                                       "enum": ["ResourceLoaderWikiModule"]
+                                                               },
+                                                               "group": {
+                                                                       "type": "string",
+                                                                       "description": "Group which this module should be loaded together with"
+                                                               },
+                                                               "position": {
+                                                                       "type": "string",
+                                                                       "description": "Position on the page to load this module at",
+                                                                       "enum": [
+                                                                               "bottom",
+                                                                               "top"
+                                                                       ]
+                                                               },
+                                                               "targets": {
+                                                                       "type": ["string", "array"],
+                                                                       "description": "ResourceLoader target the module can run on",
+                                                                       "items": {
+                                                                               "type": "string"
+                                                                       }
+                                                               },
+                                                               "scripts": {
+                                                                       "type": "array",
+                                                                       "items": {
+                                                                               "type": "string"
+                                                                       }
+                                                               },
+                                                               "styles": {
+                                                                       "type": "array",
+                                                                       "items": {
+                                                                               "type": "string"
+                                                                       }
+                                                               }
+                                                       }
+                                               },
+                                               {
+                                                       "description": "A ResourceLoaderImageModule definition",
+                                                       "additionalProperties": false,
+                                                       "properties": {
+                                                               "class": {
+                                                                       "enum": ["ResourceLoaderImageModule"]
+                                                               },
+                                                               "data": {
+                                                                       "type": "string"
+                                                               },
+                                                               "prefix": {
+                                                                       "type": "string"
+                                                               },
+                                                               "selector": {
+                                                                       "type": "string"
+                                                               },
+                                                               "selectorWithoutVariant": {
+                                                                       "type": "string"
+                                                               },
+                                                               "selectorWithVariant": {
+                                                                       "type": "string"
+                                                               },
+                                                               "variants": {
+                                                                       "type": "object"
+                                                               },
+                                                               "images": {
+                                                                       "type": "object"
+                                                               },
+                                                               "position": {
+                                                                       "enum": [
+                                                                               "top",
+                                                                               "bottom"
+                                                                       ]
+                                                               }
+                                                       }
+                                               },
+                                               {
+                                                       "description": "An arbitrary ResourceLoaderModule definition",
+                                                       "properties": {
+                                                               "class": {
+                                                                       "type": "string",
+                                                                       "pattern": "^((?!ResourceLoader(File|Image)Module).)*$"
+                                                               }
+                                                       },
+                                                       "required": ["class"]
+                                               }
+                                       ]
+                               }
+                       }
+               },
+               "ResourceModuleSkinStyles": {
+                       "type": "object",
+                       "description": "ResourceLoader modules for custom skin styles"
+               },
+               "ResourceLoaderSources": {
+                       "type": "object",
+                       "description": "ResourceLoader sources to register"
+               },
+               "ResourceLoaderLESSVars": {
+                       "type": "object",
+                       "description": "ResourceLoader LESS variables"
+               },
+               "ConfigRegistry": {
+                       "type": "object",
+                       "description": "Registry of factory functions to create Config objects"
+               },
+               "SessionProviders": {
+                       "type": "object",
+                       "description": "Session providers"
+               },
+               "AuthManagerAutoConfig": {
+                       "type": "object",
+                       "description": "AuthManager auto-configuration",
+                       "additionalProperties": false,
+                       "properties": {
+                               "preauth": {
+                                       "type": "object",
+                                       "description": "Pre-authentication providers"
+                               },
+                               "primaryauth": {
+                                       "type": "object",
+                                       "description": "Primary authentication providers"
+                               },
+                               "secondaryauth": {
+                                       "type": "object",
+                                       "description": "Secondary authentication providers"
+                               }
+                       }
+               },
+               "CentralIdLookupProviders": {
+                       "type": "object",
+                       "description": "Central ID lookup providers"
+               },
+               "namespaces": {
+                       "type": "array",
+                       "description": "Method to add extra namespaces",
+                       "items": {
+                               "type": "object",
+                               "properties": {
+                                       "id": {
+                                               "type": "integer"
+                                       },
+                                       "constant": {
+                                               "type": "string"
+                                       },
+                                       "name": {
+                                               "type": "string"
+                                       },
+                                       "gender": {
+                                               "type": "object",
+                                               "properties": {
+                                                       "male": {
+                                                               "type": "string"
+                                                       },
+                                                       "female": {
+                                                               "type": "string"
+                                                       }
+                                               }
+                                       },
+                                       "subpages": {
+                                               "type": "boolean",
+                                               "default": false
+                                       },
+                                       "content": {
+                                               "type": "boolean",
+                                               "default": false
+                                       },
+                                       "defaultcontentmodel": {
+                                               "type": "string"
+                                       },
+                                       "protection": {
+                                               "type": ["string", "array"],
+                                               "description": "Userright(s) required to edit in this namespace"
+                                       },
+                                       "capitallinkoverride": {
+                                               "type": "boolean",
+                                               "description": "Set $wgCapitalLinks on a per-namespace basis"
+                                       }
+                               },
+                               "required": ["id", "constant", "name"]
+                       }
+               },
+               "TrackingCategories": {
+                       "type": "array",
+                       "description": "Tracking category message keys",
+                       "items": {
+                               "type": "string"
+                       }
+               },
+               "DefaultUserOptions": {
+                       "type": "object",
+                       "description": "Default values of user options"
+               },
+               "HiddenPrefs": {
+                       "type": "array",
+                       "description": "Preferences users cannot set",
+                       "items": {
+                               "type": "string"
+                       }
+               },
+               "GroupPermissions": {
+                       "type": "object",
+                       "description": "Default permissions to give to user groups",
+                       "patternProperties": {
+                               "^[a-z]+$": {
+                                       "type": "object",
+                                       "patternProperties": {
+                                               "^[a-z]+$": {
+                                                       "type": "boolean"
+                                               }
+                                       }
+                               }
+                       }
+               },
+               "RevokePermissions": {
+                       "type": "object",
+                       "description": "Default permissions to revoke from user groups",
+                       "patternProperties": {
+                               "^[a-z]+$": {
+                                       "type": "object",
+                                       "patternProperties": {
+                                               "^[a-z]+$": {
+                                                       "type": "boolean"
+                                               }
+                                       }
+                               }
+                       }
+               },
+               "GrantPermissions": {
+                       "type": "object",
+                       "description": "Map of permissions granted to authorized consumers to their bundles, called 'grants'",
+                       "patternProperties": {
+                               "^[a-z]+$": {
+                                       "type": "object",
+                                       "patternProperties": {
+                                               "^[a-z]+$": {
+                                                       "type": "boolean"
+                                               }
+                                       }
+                               }
+                       }
+               },
+               "GrantPermissionGroups": {
+                       "type": "object",
+                       "description": "Map of grants to their UI grouping",
+                       "patternProperties": {
+                               "^[a-z]+$": {
+                                       "type": "string"
+                               }
+                       }
+               },
+               "ImplicitGroups": {
+                       "type": "array",
+                       "description": "Implicit groups"
+               },
+               "GroupsAddToSelf": {
+                       "type": "object",
+                       "description": "Groups a user can add to themselves"
+               },
+               "GroupsRemoveFromSelf": {
+                       "type": "object",
+                       "description": "Groups a user can remove from themselves"
+               },
+               "AddGroups": {
+                       "type": "object",
+                       "description": "Groups a user can add to users"
+               },
+               "RemoveGroups": {
+                       "type": "object",
+                       "description": "Groups a user can remove from users"
+               },
+               "AvailableRights": {
+                       "type": "array",
+                       "description": "User rights added by the extension",
+                       "items": {
+                               "type": "string"
+                       }
+               },
+               "ContentHandlers": {
+                       "type": "object",
+                       "description": "Mapping of model ID to class name",
+                       "patternProperties": {
+                               "^[A-Za-z]+$": {
+                                       "type": "string"
+                               }
+                       }
+               },
+               "RateLimits": {
+                       "type": "object",
+                       "description": "Rate limits"
+               },
+               "RecentChangesFlags": {
+                       "type": "object",
+                       "description": "Flags (letter symbols) shown on RecentChanges pages"
+               },
+               "MediaHandlers": {
+                       "type": "object",
+                       "description": "Plugins for media file type handling. Each entry in the array maps a MIME type to a PHP class name."
+               },
+               "ExtensionFunctions": {
+                       "type": [
+                               "array",
+                               "string"
+                       ],
+                       "description": "Function to call after setup has finished",
+                       "items": {
+                               "type": "string"
+                       }
+               },
+               "ExtensionMessagesFiles": {
+                       "type": "object",
+                       "description": "File paths containing PHP internationalization data"
+               },
+               "MessagesDirs": {
+                       "type": "object",
+                       "description": "Directory paths containing JSON internationalization data"
+               },
+               "ExtensionEntryPointListFiles": {
+                       "type": "object"
+               },
+               "SpecialPages": {
+                       "type": "object",
+                       "description": "SpecialPages implemented in this extension (mapping of page name to class name)"
+               },
+               "AutoloadClasses": {
+                       "type": "object"
+               },
+               "Hooks": {
+                       "type": [ "string", "object" ],
+                       "description": "Hooks this extension uses (mapping of hook name to callback)"
+               },
+               "JobClasses": {
+                       "type": "object",
+                       "description": "Job types this extension implements (mapping of job type to class name)"
+               },
+               "LogTypes": {
+                       "type": "array",
+                       "description": "List of new log types this extension uses"
+               },
+               "LogRestrictions": {
+                       "type": "object"
+               },
+               "FilterLogTypes": {
+                       "type": "object"
+               },
+               "ActionFilteredLogs": {
+                       "type": "object",
+                       "description": "List of log types which can be filtered by log actions",
+                       "patternProperties": {
+                               "^[a-z-]+$": {
+                                       "type": "object",
+                                       "patternProperties": {
+                                               "^[a-z-]+$": {
+                                                       "type": "array",
+                                                       "items": {
+                                                               "type": "string"
+                                                       }
+                                               }
+                                       }
+                               }
+                       }
+               },
+               "LogNames": {
+                       "type": "object"
+               },
+               "LogHeaders": {
+                       "type": "object"
+               },
+               "LogActions": {
+                       "type": "object"
+               },
+               "LogActionsHandlers": {
+                       "type": "object"
+               },
+               "Actions": {
+                       "type": "object"
+               },
+               "APIModules": {
+                       "type": "object"
+               },
+               "APIFormatModules": {
+                       "type": "object"
+               },
+               "APIMetaModules": {
+                       "type": "object"
+               },
+               "APIPropModules": {
+                       "type": "object"
+               },
+               "APIListModules": {
+                       "type": "object"
+               },
+               "ValidSkinNames": {
+                       "type": "object"
+               },
+               "FeedClasses": {
+                       "type": "object",
+                       "description": "Available feeds objects"
+               },
+               "SkinOOUIThemes": {
+                       "type": "object"
+               },
+               "callback": {
+                       "type": [
+                               "array",
+                               "string"
+                       ],
+                       "description": "A function to be called right after MediaWiki processes this file"
+               },
+               "config": {
+                       "type": "object",
+                       "description": "Configuration options for this extension",
+                       "properties": {
+                               "_prefix": {
+                                       "type": "string",
+                                       "default": "wg",
+                                       "description": "Prefix to put in front of configuration settings when exporting them to $GLOBALS"
+                               }
+                       },
+                       "patternProperties": {
+                               "^[a-zA-Z_\u007f-\u00ff][a-zA-Z0-9_\u007f-\u00ff]*$": {
+                                       "properties": {
+                                               "_merge_strategy": {
+                                                       "type": "string",
+                                                       "enum": [
+                                                               "array_merge_recursive",
+                                                               "array_plus_2d",
+                                                               "array_plus",
+                                                               "array_merge"
+                                                       ],
+                                                       "default": "array_merge"
+                                               }
+                                       }
+                               }
+                       }
+               },
+               "ParserTestFiles": {
+                       "type": "array",
+                       "description": "Parser test suite files to be run by parserTests.php when no specific filename is passed to it"
+               },
+               "load_composer_autoloader": {
+                       "type": "boolean",
+                       "description": "Load the composer autoloader for this extension, if one is present"
+               }
+       }
+}
index c91354d..2b3116d 100644 (file)
@@ -371,12 +371,17 @@ $user: Current user
 &$message: API usage message to die with, as a message key or array
   as accepted by ApiBase::dieUsageMsg.
 
-'APIEditBeforeSave': Before saving a page with api.php?action=edit, after
+'APIEditBeforeSave': DEPRECATED! Use EditFilterMergedContent instead.
+Before saving a page with api.php?action=edit, after
 processing request parameters. Return false to let the request fail, returning
 an error message or an <edit result="Failure"> tag if $resultArr was filled.
 Unlike for example 'EditFilterMergedContent' this also being run on undo.
+Since MediaWiki 1.25, 'EditFilterMergedContent' can also return error details
+for the API and it's recommended to use it instead of this hook.
 $editPage: the EditPage object
-$text: the new text of the article (has yet to be saved)
+$text: the text passed to the API. Note that this includes only the single
+  section for section edit, and is not necessarily the final text in case of
+  automatically resolved edit conflicts.
 &$resultArr: data in this array will be added to the API result
 
 'ApiFeedContributions::feedItem': Called to convert the result of ContribsPager
@@ -439,6 +444,15 @@ an exception is thrown during API action execution.
 $apiMain: Calling ApiMain instance.
 $e: Exception object.
 
+'ApiMakeParserOptions': Called from ApiParse and ApiExpandTemplates to allow
+extensions to adjust the ParserOptions before parsing.
+$options: ParserOptions object
+$title: Title to be parsed
+$params: Parameter array for the API module
+$module: API module (which is also a ContextSource)
+&$reset: Set to a ScopedCallback used to reset any hooks after the parse is done.
+&$suppressCache: Set true if cache should be suppressed.
+
 'ApiOpenSearchSuggest': Called when constructing the OpenSearch results. Hooks
 can alter or append to the array.
 &$results: array with integer keys to associative arrays. Keys in associative
@@ -669,6 +683,10 @@ $oldPageID: the page ID of the revision when archived (may be null)
 revisions of an article.
 $title: Title object of the article
 $ids: Ids to set the visibility for
+$visibilityChangeMap: Map of revision id to oldBits and newBits.  This array can be
+  examined to determine exactly what visibility bits have changed for each
+  revision.  This array is of the form
+  [id => ['oldBits' => $oldBits, 'newBits' => $newBits], ... ]
 
 'ArticleRollbackComplete': After an article rollback is completed.
 $wikiPage: the WikiPage that was edited
@@ -885,6 +903,7 @@ $image: File
 'BlockIpComplete': After an IP address or user is blocked.
 $block: the Block object that was saved
 $user: the user who did the block (not the one being blocked)
+$priorBlock: the Block object for the prior block or null if there was none
 
 'BookInformation': Before information output on Special:Booksources.
 $isbn: ISBN to show information for
@@ -915,6 +934,7 @@ $wikiPage: WikiPage that was added
 'CategoryAfterPageRemoved': After a page is removed from a category.
 $category: Category that page was removed from
 $wikiPage: WikiPage that was removed
+$id: the page ID (original ID in case of page deletions)
 
 'CategoryPageView': Before viewing a categorypage in CategoryPage::view.
 &$catpage: CategoryPage instance
@@ -1346,6 +1366,7 @@ $changesList: EnhancedChangesList object
 &$data: An array with all the components that will be joined in order to create the line
 $block: An array of RecentChange objects in that block
 $rc: The RecentChange object for this line
+&$classes: An array of classes to change
 
 'EnhancedChangesListModifyBlockLineData': to alter data used to build
 a non-grouped recent change line in EnhancedChangesList.
@@ -1837,7 +1858,7 @@ $file: the File object or false if broken link
 &$attribs: the attributes to be applied
 &$ret: the value to return if your hook returns false
 
-'LinkRendererBegin':
+'HtmlPageLinkRendererBegin':
 Used when generating internal and interwiki links in
 LinkRenderer, before processing starts.  Return false to skip default
 processing and return $ret.
@@ -1853,7 +1874,7 @@ $target: the LinkTarget that the link is pointing to
   in associative array form, with keys and values unescaped.
 &$ret: the value to return if your hook returns false.
 
-'LinkRendererEnd':
+'HtmlPageLinkRendererEnd':
 Used when generating internal and interwiki links in LinkRenderer,
 just before the function returns a value.  If you return true, an <a> element
 with HTML attributes $attribs and contents $html will be returned.  If you
@@ -2398,6 +2419,8 @@ that tests continue to run properly.
 $page: the WikiPage of the candidate edit
 $content: the Content object of the candidate edit
 $output: the ParserOutput result of the candidate edit
+$summary: the change summary of the candidate edit
+$user: the User considering the edit
 
 'PasswordPoliciesForUser': Alter the effective password policy for a user.
 $user: User object whose policy you are modifying
@@ -2529,7 +2552,7 @@ $context: (IContextSource) The RequestContext the skin is being created for.
 flagged to lack same-origin security. Return false to indicate the lack. Note
 if the "somehow" involves HTTP headers, you'll probably need to make sure
 the header is varied on.
-WebRequest $request: The request.
+$request: The WebRequest object.
 
 'ResetPasswordExpiration': Allow extensions to set a default password expiration
 $user: The user having their password expiration reset
@@ -2859,6 +2882,12 @@ $id: User id number, only provided for backwards-compatibility
 $user: User object representing user contributions are being fetched for
 $sp: SpecialPage instance, providing context
 
+'SpecialContributions::formatRow::flags': Called before rendering a
+Special:Contributions row.
+$context: IContextSource object
+$row: Revision information from the database
+&$flags: List of flags on this row
+
 'SpecialContributions::getForm::filters': Called with a list of filters to render
 on Special:Contributions.
 $sp: SpecialContributions object, for context
@@ -2989,9 +3018,9 @@ $t: title object searched for
 canceled and a normal search will be performed. Returning true without setting
 $url does a standard redirect to $title. Setting $url redirects to the
 specified URL.
-$term - The string the user searched for
-$title - The title the 'go' feature has decided to forward the user to
-&$url - Initially null, hook subscribers can set this to specify the final url to redirect to
+$term: The string the user searched for
+$title: The title the 'go' feature has decided to forward the user to
+&$url: Initially null, hook subscribers can set this to specify the final url to redirect to
 
 'SpecialSearchNogomatch': Called when user clicked the "Go" button but the
 target doesn't exist.
@@ -3261,8 +3290,8 @@ added to the descriptor
 &$radio: Boolean, if source type should be shown as radio button
 $selectedSourceType: The selected source type
 
-'UploadVerification': Additional chances to reject an uploaded file. Consider
-using UploadVerifyFile instead.
+'UploadVerification': DEPRECATED! Use UploadVerifyFile instead.
+Additional chances to reject an uploaded file.
 $saveName: (string) destination file name
 $tempName: (string) filesystem path to the temporary file for checks
 &$error: (string) output: message key for message to show if upload canceled by
@@ -3274,9 +3303,23 @@ in most cases over UploadVerification.
 $upload: (object) an instance of UploadBase, with all info about the upload
 $mime: (string) The uploaded file's MIME type, as detected by MediaWiki.
   Handlers will typically only apply for specific MIME types.
-&$error: (object) output: true if the file is valid. Otherwise, an indexed array
-  representing the problem with the file, where the first element is the message
-  key and the remaining elements are used as parameters to the message.
+&$error: (object) output: true if the file is valid. Otherwise, set this to the reason
+  in the form of array( messagename, param1, param2, ... ) or a MessageSpecifier
+  instance (you might want to use ApiMessage to provide machine-readable details
+  for the API).
+
+'UploadVerifyUpload': Upload verification, based on both file properties like
+MIME type (same as UploadVerifyFile) and the information entered by the user
+(upload comment, file page contents etc.).
+$upload: (object) An instance of UploadBase, with all info about the upload
+$user: (object) An instance of User, the user uploading this file
+$props: (array) File properties, as returned by FSFile::getPropsFromPath()
+$comment: (string) Upload log comment (also used as edit summary)
+$pageText: (string) File description page text (only used for new uploads)
+&$error: output: If the file upload should be prevented, set this to the reason
+  in the form of array( messagename, param1, param2, ... ) or a MessageSpecifier
+  instance (you might want to use ApiMessage to provide machine-readable details
+  for the API).
 
 'UserIsBot': when determining whether a user is a bot account
 $user: the user
@@ -3379,6 +3422,7 @@ $title: Title of the page in question
 &$user: User object
 $ip: User's IP address
 &$blocked: Whether the user is blocked, to be modified by the hook
+&$block: The Block object, to be modified by the hook
 
 'UserIsEveryoneAllowed': Check if all users are allowed some user right; return
 false if a UserGetRights hook might remove the named right.
index 6209a1a..28b566a 100644 (file)
@@ -95,7 +95,11 @@ class Category {
                # and should not be kept, and 2) we *probably* don't have to scan many
                # rows to obtain the correct figure, so let's risk a one-time recount.
                if ( $this->mPages < 0 || $this->mSubcats < 0 || $this->mFiles < 0 ) {
-                       $this->refreshCounts();
+                       $this->mPages = max( $this->mPages, 0 );
+                       $this->mSubcats = max( $this->mSubcats, 0 );
+                       $this->mFiles = max( $this->mFiles, 0 );
+
+                       DeferredUpdates::addCallableUpdate( [ $this, 'refreshCounts' ] );
                }
 
                return true;
index cef0215..f3c5073 100644 (file)
@@ -284,10 +284,10 @@ $wgLogo = false;
  *
  * @par Example:
  * @code
- * $wgLogoHD = array(
+ * $wgLogoHD = [
  *     "1.5x" => "path/to/1.5x_version.png",
  *     "2x" => "path/to/2x_version.png"
- * );
+ * ];
  * @endcode
  *
  * @since 1.25
@@ -529,11 +529,12 @@ $wgUseInstantCommons = false;
  * Array of foreign file repo names (set in $wgForeignFileRepos above) that
  * are allowable upload targets. These wikis must have some method of
  * authentication (i.e. CentralAuth), and be CORS-enabled for this wiki.
+ * The string 'local' signifies the default local file repository.
  *
  * Example:
- * $wgForeignUploadTargets = array( 'shared' );
+ * $wgForeignUploadTargets = [ 'shared' ];
  */
-$wgForeignUploadTargets = [];
+$wgForeignUploadTargets = [ 'local' ];
 
 /**
  * Configuration for file uploads using the embeddable upload dialog
@@ -567,10 +568,14 @@ $wgUploadDialog = [
                // * upload-form-label-not-own-work-local-generic-foreign
                'foreign' => 'generic-foreign',
        ],
-       // Upload comment to use. Available replacements:
+       // Upload comments to use for 'local' and 'foreign' uploads. This can also be set to a single
+       // string value, in which case it is used for both kinds of uploads. Available replacements:
        // * $HOST - domain name from which a cross-wiki upload originates
        // * $PAGENAME - wiki page name from which an upload originates
-       'comment' => '',
+       'comment' => [
+               'local' => '',
+               'foreign' => '',
+       ],
        // Format of the file page wikitext to be generated from the fields input by the user.
        'format' => [
                // Wrapper for the whole page. Available replacements:
@@ -750,10 +755,10 @@ $wgCopyUploadTimeout = false;
  *
  * @par Example:
  * @code
- * $wgMaxUploadSize = array(
+ * $wgMaxUploadSize = [
  *     '*' => 250 * 1024,
  *     'url' => 500 * 1024,
- * );
+ * ];
  * @endcode
  * Sets the maximum for all uploads to 250 kB except for upload-by-url, which
  * will have a maximum of 500 kB.
@@ -1158,9 +1163,9 @@ $wgMaxAnimatedGifArea = 1.25e7;
  * @par Example:
  * @code
  *  // PNG is lossless, but inefficient for photos
- *  $wgTiffThumbnailType = array( 'png', 'image/png' );
+ *  $wgTiffThumbnailType = [ 'png', 'image/png' ];
  *  // JPEG is good for photos, but has no transparency support. Bad for diagrams.
- *  $wgTiffThumbnailType = array( 'jpg', 'image/jpeg' );
+ *  $wgTiffThumbnailType = [ 'jpg', 'image/jpeg' ];
  * @endcode
  */
 $wgTiffThumbnailType = false;
@@ -1316,7 +1321,7 @@ $wgTrivialMimeDetection = false;
 
 /**
  * Additional XML types we can allow via MIME-detection.
- * array = ( 'rootElement' => 'associatedMimeType' )
+ * array = [ 'rootElement' => 'associatedMimeType' ]
  */
 $wgXMLMimeTypes = [
        'http://www.w3.org/2000/svg:svg' => 'image/svg+xml',
@@ -1373,7 +1378,7 @@ $wgThumbnailBuckets = null;
  * needs in order to be used as the reference for a given thumbnail. For example, with the
  * following buckets:
  *
- * $wgThumbnailBuckets = array ( 128, 256, 512 );
+ * $wgThumbnailBuckets = [ 128, 256, 512 ];
  *
  * and a distance of 50:
  *
@@ -1439,7 +1444,7 @@ $wgGalleryOptions = [
        'imagesPerRow' => 0, // Default number of images per-row in the gallery. 0 -> Adapt to screensize
        'imageWidth' => 120, // Width of the cells containing images in galleries (in "px")
        'imageHeight' => 120, // Height of the cells containing images in galleries (in "px")
-       'captionLength' => 25, // Length of caption to truncate (in characters)
+       'captionLength' => 25, // Length to truncate filename to in caption when using "showfilename"
        'showBytes' => true, // Show the filesize in bytes in categories
        'mode' => 'traditional',
 ];
@@ -1619,14 +1624,14 @@ $wgPasswordExpireGrace = 3600 * 24 * 7; // 7 days
  * Default to false or fill an array :
  *
  * @code
- * $wgSMTP = array(
+ * $wgSMTP = [
  *     'host'     => 'SMTP domain',
  *     'IDHost'   => 'domain for MessageID',
  *     'port'     => '25',
  *     'auth'     => [true|false],
  *     'username' => [SMTP username],
  *     'password' => [SMTP password],
- * );
+ * ];
  * @endcode
  */
 $wgSMTP = false;
@@ -2063,7 +2068,7 @@ $wgCompressRevisions = false;
  *
  * Short names of ExternalStore classes may be specified in an array here:
  * @code
- * $wgExternalStores = array("http","file","custom")...
+ * $wgExternalStores = [ "http","file","custom" ]...
  * @endcode
  *
  * CAUTION: Access to database might lead to code execution
@@ -2076,9 +2081,9 @@ $wgExternalStores = [];
  * @par Example:
  * Create a cluster named 'cluster1' containing three servers:
  * @code
- * $wgExternalServers = array(
- *     'cluster1' => array( 'srv28', 'srv29', 'srv30' )
- * );
+ * $wgExternalServers = [
+ *     'cluster1' => [ 'srv28', 'srv29', 'srv30' ]
+ * ];
  * @endcode
  *
  * Used by LBFactorySimple, may be ignored if $wgLBFactoryConf is set to
@@ -2095,7 +2100,7 @@ $wgExternalServers = [];
  *
  * @par Example:
  * @code
- * $wgDefaultExternalStore = array( 'DB://cluster1', 'DB://cluster2' );
+ * $wgDefaultExternalStore = [ 'DB://cluster1', 'DB://cluster2' ];
  * @endcode
  *
  * @var array
@@ -2386,6 +2391,13 @@ $wgSessionHandler = null;
  */
 $wgPHPSessionHandling = 'enable';
 
+/**
+ * Number of internal PBKDF2 iterations to use when deriving session secrets.
+ *
+ * @since 1.28
+ */
+$wgSessionPbkdf2Iterations = 10001;
+
 /**
  * If enabled, will send MemCached debugging information to $wgDebugLogFile
  */
@@ -2539,12 +2551,6 @@ $wgSidebarCacheExpiry = 86400;
  */
 $wgUseGzip = false;
 
-/**
- * Whether MediaWiki should send an ETag header. Seems to cause
- * broken behavior with Squid 2.6, see bug 7098.
- */
-$wgUseETag = false;
-
 /**
  * Clock skew or the one-second resolution of time() can occasionally cause cache
  * problems when the user requests two pages within a short period of time. This
@@ -2732,16 +2738,16 @@ $wgSquidPurgeUseHostHeader = true;
  * @par Example configuration to send purges for upload.wikimedia.org to one
  * multicast group and all other purges to another:
  * @code
- * $wgHTCPRouting = array(
- *         '|^https?://upload\.wikimedia\.org|' => array(
+ * $wgHTCPRouting = [
+ *         '|^https?://upload\.wikimedia\.org|' => [
  *                 'host' => '239.128.0.113',
  *                 'port' => 4827,
- *         ),
- *         '' => array(
+ *         ],
+ *         '' => [
  *                 'host' => '239.128.0.112',
  *                 'port' => 4827,
- *         ),
- * );
+ *         ],
+ * ];
  * @endcode
  *
  * You can also pass an array of hosts to send purges too. This is useful when
@@ -2750,16 +2756,16 @@ $wgSquidPurgeUseHostHeader = true;
  *
  * @par Example of sending purges to multiple hosts:
  * @code
- * $wgHTCPRouting = array(
- *     '' => array(
+ * $wgHTCPRouting = [
+ *     '' => [
  *         // Purges to text caches using multicast
- *         array( 'host' => '239.128.0.114', 'port' => '4827' ),
+ *         [ 'host' => '239.128.0.114', 'port' => '4827' ],
  *         // Purges to a hardcoded list of caches
- *         array( 'host' => '10.88.66.1', 'port' => '4827' ),
- *         array( 'host' => '10.88.66.2', 'port' => '4827' ),
- *         array( 'host' => '10.88.66.3', 'port' => '4827' ),
- *     ),
- * );
+ *         [ 'host' => '10.88.66.1', 'port' => '4827' ],
+ *         [ 'host' => '10.88.66.2', 'port' => '4827' ],
+ *         [ 'host' => '10.88.66.3', 'port' => '4827' ],
+ *     ],
+ * ];
  * @endcode
  *
  * @since 1.22
@@ -3082,7 +3088,7 @@ $wgLoginLanguageSelector = false;
  * To allow language-specific main page and community
  * portal:
  * @code
- *     $wgForceUIMsgAsContentMsg = array( 'mainpage', 'portal-url' );
+ *     $wgForceUIMsgAsContentMsg = [ 'mainpage', 'portal-url' ];
  * @endcode
  */
 $wgForceUIMsgAsContentMsg = [];
@@ -3452,13 +3458,13 @@ $wgMangleFlashPolicy = true;
  *
  * @par Example:
  * @code
- *   $wgResourceModules['ext.myExtension'] = array(
+ *   $wgResourceModules['ext.myExtension'] = [
  *      'scripts' => 'myExtension.js',
  *      'styles' => 'myExtension.css',
- *      'dependencies' => array( 'jquery.cookie', 'jquery.tabIndex' ),
+ *      'dependencies' => [ 'jquery.cookie', 'jquery.tabIndex' ],
  *      'localBasePath' => __DIR__,
  *      'remoteExtPath' => 'MyExtension',
- *   );
+ *   ];
  * @endcode
  */
 $wgResourceModules = [];
@@ -3473,27 +3479,27 @@ $wgResourceModules = [];
  *
  * @par Example:
  * @code
- *   $wgResourceModules['bar'] = array(
+ *   $wgResourceModules['bar'] = [
  *     'scripts' => 'resources/bar/bar.js',
  *     'styles' => 'resources/bar/main.css',
- *   );
+ *   ];
  *
- *   $wgResourceModuleSkinStyles['foo'] = array(
+ *   $wgResourceModuleSkinStyles['foo'] = [
  *     'bar' => 'skins/Foo/bar.css',
- *   );
+ *   ];
  * @endcode
  *
  * This is mostly equivalent to:
  *
  * @par Equivalent:
  * @code
- *   $wgResourceModules['bar'] = array(
+ *   $wgResourceModules['bar'] = [
  *     'scripts' => 'resources/bar/bar.js',
  *     'styles' => 'resources/bar/main.css',
- *     'skinStyles' => array(
+ *     'skinStyles' => [
  *       'foo' => skins/Foo/bar.css',
- *     ),
- *   );
+ *     ],
+ *   ];
  * @endcode
  *
  * If the module already defines its own entry in `skinStyles` for a given skin, then
@@ -3504,34 +3510,34 @@ $wgResourceModules = [];
  *
  * @par Example:
  * @code
- *   $wgResourceModules['bar'] = array(
+ *   $wgResourceModules['bar'] = [
  *     'scripts' => 'resources/bar/bar.js',
  *     'styles' => 'resources/bar/basic.css',
- *     'skinStyles' => array(
- *       'default' => 'resources/bar/additional.css',
- *     ),
- *   );
+ *     'skinStyles' => [
+ *      'default' => 'resources/bar/additional.css',
+ *     ],
+ *   ];
  *   // Note the '+' character:
- *   $wgResourceModuleSkinStyles['foo'] = array(
+ *   $wgResourceModuleSkinStyles['foo'] = [
  *     '+bar' => 'skins/Foo/bar.css',
- *   );
+ *   ];
  * @endcode
  *
  * This is mostly equivalent to:
  *
  * @par Equivalent:
  * @code
- *   $wgResourceModules['bar'] = array(
+ *   $wgResourceModules['bar'] = [
  *     'scripts' => 'resources/bar/bar.js',
  *     'styles' => 'resources/bar/basic.css',
- *     'skinStyles' => array(
+ *     'skinStyles' => [
  *       'default' => 'resources/bar/additional.css',
- *       'foo' => array(
+ *       'foo' => [
  *         'resources/bar/additional.css',
  *         'skins/Foo/bar.css',
- *       ),
- *     ),
- *   );
+ *       ],
+ *     ],
+ *   ];
  * @endcode
  *
  * In other words, as a module author, use the `styles` list for stylesheets that may not be
@@ -3543,12 +3549,12 @@ $wgResourceModules = [];
  *
  * @par Example:
  * @code
- *   $wgResourceModuleSkinStyles['foo'] = array(
+ *   $wgResourceModuleSkinStyles['foo'] = [
  *     'bar' => 'bar.css',
  *     'quux' => 'quux.css',
  *     'remoteSkinPath' => 'Foo',
  *     'localBasePath' => __DIR__,
- *   );
+ *   ];
  * @endcode
  */
 $wgResourceModuleSkinStyles = [];
@@ -3705,11 +3711,11 @@ $wgResourceLoaderValidateStaticJS = false;
  *
  * @par Example:
  * @code
- *   $wgResourceLoaderLESSVars = array(
+ *   $wgResourceLoaderLESSVars = [
  *     'baseFontSize'  => '1em',
  *     'smallFontSize' => '0.75em',
  *     'WikimediaBlue' => '#006699',
- *   );
+ *   ];
  * @endcode
  * @since 1.22
  */
@@ -3807,12 +3813,12 @@ $wgMetaNamespaceTalk = false;
  *
  * @par Example:
  * @code
- * $wgExtraNamespaces = array(
+ * $wgExtraNamespaces = [
  *    100 => "Hilfe",
  *    101 => "Hilfe_Diskussion",
  *    102 => "Aide",
  *    103 => "Discussion_Aide"
- * );
+ * ];
  * @endcode
  *
  * @todo Add a note about maintenance/namespaceDupes.php
@@ -3839,10 +3845,10 @@ $wgExtraGenderNamespaces = [];
  *
  * @par Example:
  * @code
- *    $wgNamespaceAliases = array(
+ *    $wgNamespaceAliases = [
  *        'Wikipedian' => NS_USER,
  *        'Help' => 100,
- *    );
+ *    ];
  * @endcode
  */
 $wgNamespaceAliases = [];
@@ -4169,7 +4175,7 @@ $wgAllowExternalImages = false;
  * @par Examples:
  * @code
  * $wgAllowExternalImagesFrom = 'http://127.0.0.1/';
- * $wgAllowExternalImagesFrom = array( 'http://127.0.0.1/', 'http://example.com' );
+ * $wgAllowExternalImagesFrom = [ 'http://127.0.0.1/', 'http://example.com' ];
  * @endcode
  */
 $wgAllowExternalImagesFrom = '';
@@ -4210,6 +4216,8 @@ $wgAllowImageTag = false;
  *    - RaggettInternalHHVM: Use the limited-functionality HHVM extension
  *    - RaggettInternalPHP: Use the PECL extension
  *    - RaggettExternal: Shell out to an external binary (tidyBin)
+ *    - Html5Depurate: Use external Depurate service
+ *    - Html5Internal: Use the built-in HTML5 balancer
  *
  *  - tidyConfigFile: Path to configuration file for any of the Raggett drivers
  *  - debugComment: True to add a comment to the output with warning messages
@@ -4291,8 +4299,7 @@ $wgNoFollowNsExceptions = [];
  * (or any subdomains) will not be set to rel="nofollow" regardless of the
  * value of $wgNoFollowLinks.  For instance:
  *
- * $wgNoFollowDomainExceptions = array( 'en.wikipedia.org', 'wiktionary.org',
- * 'mediawiki.org' );
+ * $wgNoFollowDomainExceptions = [ 'en.wikipedia.org', 'wiktionary.org', 'mediawiki.org' ];
  *
  * This would add rel="nofollow" to links to de.wikipedia.org, but not
  * en.wikipedia.org, wiktionary.org, en.wiktionary.org, us.en.wikipedia.org,
@@ -4458,7 +4465,7 @@ $wgPasswordPolicy = [
  * @since 1.27
  * @deprecated since 1.27, for use during development only
  */
-$wgDisableAuthManager = true;
+$wgDisableAuthManager = false;
 
 /**
  * Configure AuthManager
@@ -4679,14 +4686,14 @@ $wgPasswordDefault = 'pbkdf2';
  *
  * An advanced example:
  * @code
- * $wgPasswordConfig['bcrypt-peppered'] = array(
+ * $wgPasswordConfig['bcrypt-peppered'] = [
  *     'class' => 'EncryptedPassword',
  *     'underlying' => 'bcrypt',
- *     'secrets' => array(),
+ *     'secrets' => [],
  *     'cipher' => MCRYPT_RIJNDAEL_256,
  *     'mode' => MCRYPT_MODE_CBC,
  *     'cost' => 5,
- * );
+ * ];
  * @endcode
  *
  * @since 1.24
@@ -4975,7 +4982,7 @@ $wgWhitelistRead = false;
  * @par Example:
  * To whitelist [[Main Page]]:
  * @code
- * $wgWhitelistReadRegexp = array( "/Main Page/" );
+ * $wgWhitelistReadRegexp = [ "/Main Page/" ];
  * @endcode
  *
  * @note Unless ^ and/or $ is specified, a regular expression might match
@@ -4985,7 +4992,7 @@ $wgWhitelistRead = false;
  * @par Example:
  * To allow reading any page starting with 'User' regardless of the case:
  * @code
- * $wgWhitelistReadRegexp = array( "@^UsEr.*@i" );
+ * $wgWhitelistReadRegexp = [ "@^UsEr.*@i" ];
  * @endcode
  * Will allow both [[User is banned]] and [[User:JohnDoe]]
  *
@@ -5020,7 +5027,7 @@ $wgHideIdentifiableRedirects = true;
  * combined with the permissions of all groups that a given user is listed
  * in in the user_groups table.
  *
- * Note: Don't set $wgGroupPermissions = array(); unless you know what you're
+ * Note: Don't set $wgGroupPermissions = []; unless you know what you're
  * doing! This will wipe all permissions, and may mean that your users are
  * unable to perform certain essential tasks or access new functionality
  * when new permissions are introduced and default grants established.
@@ -5186,13 +5193,13 @@ $wgImplicitGroups = [ '*', 'user', 'autoconfirmed' ];
  * @par Example:
  * To allow sysops to add themselves to the "bot" group:
  * @code
- *    $wgGroupsAddToSelf = array( 'sysop' => array( 'bot' ) );
+ *    $wgGroupsAddToSelf = [ 'sysop' => [ 'bot' ] ];
  * @endcode
  *
  * @par Example:
  * Implicit groups may be used for the source group, for instance:
  * @code
- *    $wgGroupsRemoveFromSelf = array( '*' => true );
+ *    $wgGroupsRemoveFromSelf = [ '*' => true ];
  * @endcode
  * This allows users in the '*' group (i.e. any user) to remove themselves from
  * any group that they happen to be in.
@@ -5310,18 +5317,18 @@ $wgAutoConfirmCount = 0;
  * @todo Redocument $wgAutopromote
  *
  * The format is
- *   array( '&' or '|' or '^' or '!', cond1, cond2, ... )
+ *   [ '&' or '|' or '^' or '!', cond1, cond2, ... ]
  * where cond1, cond2, ... are themselves conditions; *OR*
  *   APCOND_EMAILCONFIRMED, *OR*
- *   array( APCOND_EMAILCONFIRMED ), *OR*
- *   array( APCOND_EDITCOUNT, number of edits ), *OR*
- *   array( APCOND_AGE, seconds since registration ), *OR*
- *   array( APCOND_INGROUPS, group1, group2, ... ), *OR*
- *   array( APCOND_ISIP, ip ), *OR*
- *   array( APCOND_IPINRANGE, range ), *OR*
- *   array( APCOND_AGE_FROM_EDIT, seconds since first edit ), *OR*
- *   array( APCOND_BLOCKED ), *OR*
- *   array( APCOND_ISBOT ), *OR*
+ *   [ APCOND_EMAILCONFIRMED ], *OR*
+ *   [ APCOND_EDITCOUNT, number of edits ], *OR*
+ *   [ APCOND_AGE, seconds since registration ], *OR*
+ *   [ APCOND_INGROUPS, group1, group2, ... ], *OR*
+ *   [ APCOND_ISIP, ip ], *OR*
+ *   [ APCOND_IPINRANGE, range ], *OR*
+ *   [ APCOND_AGE_FROM_EDIT, seconds since first edit ], *OR*
+ *   [ APCOND_BLOCKED ], *OR*
+ *   [ APCOND_ISBOT ], *OR*
  *   similar constructs defined by extensions.
  *
  * If $wgEmailAuthentication is off, APCOND_EMAILCONFIRMED will be true for any
@@ -5342,7 +5349,7 @@ $wgAutopromote = [
  *
  * The format is:
  * @code
- *    array( event => criteria, ... )
+ *    [ event => criteria, ... ]
  * @endcode
  * Where event is either:
  *    - 'onEdit' (when user edits)
@@ -5373,15 +5380,15 @@ $wgAutopromoteOnceLogInRC = true;
  * @endcode
  * Bureaucrats can only remove bots and sysops:
  * @code
- * $wgRemoveGroups['bureaucrat'] = array( 'bot', 'sysop' );
+ * $wgRemoveGroups['bureaucrat'] = [ 'bot', 'sysop' ];
  * @endcode
  * Sysops can make bots:
  * @code
- * $wgAddGroups['sysop'] = array( 'bot' );
+ * $wgAddGroups['sysop'] = [ 'bot' ];
  * @endcode
  * Sysops can disable other sysops in an emergency, and disable bots:
  * @code
- * $wgRemoveGroups['sysop'] = array( 'sysop', 'bot' );
+ * $wgRemoveGroups['sysop'] = [ 'sysop', 'bot' ];
  * @endcode
  */
 $wgAddGroups = [];
@@ -5452,15 +5459,15 @@ $wgEnableDnsBlacklist = false;
  *
  * @par Example:
  * @code
- * $wgDnsBlacklistUrls = array(
+ * $wgDnsBlacklistUrls = [
  *   // String containing URL
  *   'http.dnsbl.sorbs.net.',
  *   // Array with URL and key, for services that require a key
- *   array( 'dnsbl.httpbl.net.', 'mykey' ),
+ *   [ 'dnsbl.httpbl.net.', 'mykey' ],
  *   // Array with just the URL. While this works, it is recommended that you
  *   // just use a string as shown above
- *   array( 'opm.tornevall.org.' )
- * );
+ *   [ 'opm.tornevall.org.' ]
+ * ];
  * @endcode
  *
  * @note You should end the domain name with a . to avoid searching your
@@ -5492,21 +5499,21 @@ $wgApplyIpBlocksToXff = false;
  * @par Example:
  * To set a generic maximum of 4 hits in 60 seconds:
  * @code
- *     $wgRateLimits = array( 4, 60 );
+ *     $wgRateLimits = [ 4, 60 ];
  * @endcode
  *
  * @par Example:
  * You could also limit per action and then type of users.
  * @code
- *     $wgRateLimits = array(
- *         'edit' => array(
- *             'anon' => array( x, y ), // any and all anonymous edits (aggregate)
- *             'user' => array( x, y ), // each logged-in user
- *             'newbie' => array( x, y ), // each new autoconfirmed accounts; overrides 'user'
- *             'ip' => array( x, y ), // each anon and recent account
- *             'subnet' => array( x, y ), // ... within a /24 subnet in IPv4 or /64 in IPv6
- *         )
- *     )
+ *     $wgRateLimits = [
+ *         'edit' => [
+ *             'anon' => [ x, y ], // any and all anonymous edits (aggregate)
+ *             'user' => [ x, y ], // each logged-in user
+ *             'newbie' => [ x, y ], // each new autoconfirmed accounts; overrides 'user'
+ *             'ip' => [ x, y ], // each anon and recent account
+ *             'subnet' => [ x, y ], // ... within a /24 subnet in IPv4 or /64 in IPv6
+ *         ]
+ *     ]
  * @endcode
  *
  * @warning Requires that $wgMainCacheType is set to something persistent
@@ -5631,7 +5638,6 @@ $wgGrantPermissions = [];
 
 $wgGrantPermissions['basic']['autoconfirmed'] = true;
 $wgGrantPermissions['basic']['autopatrol'] = true;
-$wgGrantPermissions['basic']['autoreview'] = true;
 $wgGrantPermissions['basic']['editsemiprotected'] = true;
 $wgGrantPermissions['basic']['ipblock-exempt'] = true;
 $wgGrantPermissions['basic']['nominornewtalk'] = true;
@@ -5639,7 +5645,6 @@ $wgGrantPermissions['basic']['patrolmarks'] = true;
 $wgGrantPermissions['basic']['purge'] = true;
 $wgGrantPermissions['basic']['read'] = true;
 $wgGrantPermissions['basic']['skipcaptcha'] = true;
-$wgGrantPermissions['basic']['torunblocked'] = true;
 $wgGrantPermissions['basic']['writeapi'] = true;
 
 $wgGrantPermissions['highvolume']['bot'] = true;
@@ -5807,14 +5812,6 @@ $wgProxyList = [];
  */
 $wgCookieExpiration = 180 * 86400;
 
-/**
- * The identifiers of the login cookies that can have their lifetimes
- * extended independently of all other login cookies.
- *
- * @var string[]
- */
-$wgExtendedLoginCookies = [ 'UserID', 'Token' ];
-
 /**
  * Default login cookie lifetime, in seconds. Setting
  * $wgExtendLoginCookieExpiration to null will use $wgCookieExpiration to
@@ -5971,6 +5968,12 @@ $wgTrxProfilerLimits = [
                'writes' => 0,
                'readQueryTime' => 5
        ],
+       // Deferred updates that run after HTTP response is sent
+       'PostSend' => [
+               'readQueryTime' => 5,
+               'writeQueryTime' => 1,
+               'maxAffected' => 500
+       ],
        // Background job runner
        'JobRunner' => [
                'readQueryTime' => 30,
@@ -6007,11 +6010,11 @@ $wgTrxProfilerLimits = [
  *
  * @par Advanced example:
  * @code
- * $wgDebugLogGroups['memcached'] = array(
+ * $wgDebugLogGroups['memcached'] = [
  *     'destination' => '/var/log/mediawiki/memcached.log',
  *     'sample' => 1000,  // log 1 message out of every 1,000.
  *     'level' => \Psr\Log\LogLevel::WARNING
- * );
+ * ];
  * @endcode
  */
 $wgDebugLogGroups = [];
@@ -6030,7 +6033,7 @@ $wgDebugLogGroups = [];
  *
  * @par To completely disable logging:
  * @code
- * $wgMWLoggerDefaultSpi = array( 'class' => '\\MediaWiki\\Logger\\NullSpi' );
+ * $wgMWLoggerDefaultSpi = [ 'class' => '\\MediaWiki\\Logger\\NullSpi' ];
  * @endcode
  *
  * @since 1.25
@@ -6340,10 +6343,10 @@ $wgSitemapNamespaces = false;
  * This should be a map of namespace IDs to priority
  * @par Example:
  * @code
- *  $wgSitemapNamespacesPriorities = array(
+ *  $wgSitemapNamespacesPriorities = [
  *      NS_USER => '0.9',
  *      NS_HELP => '0.0',
- *  );
+ *  ];
  * @endcode
  */
 $wgSitemapNamespacesPriorities = false;
@@ -6550,18 +6553,18 @@ $wgRCLinkDays = [ 1, 3, 7, 14, 30 ];
  *  The JSON-specific options are:
  *   * 'channel' -- if set, the 'channel' parameter is also set in JSON values.
  *
- * @example $wgRCFeeds['example'] = array(
+ * @example $wgRCFeeds['example'] = [
  *             'formatter' => 'JSONRCFeedFormatter',
  *             'uri' => "udp://localhost:1336",
  *             'add_interwiki_prefix' => false,
  *             'omit_bots' => true,
- *     );
- * @example $wgRCFeeds['exampleirc'] = array(
+ *     ];
+ * @example $wgRCFeeds['exampleirc'] = [
  *             'formatter' => 'IRCColourfulRCFeedFormatter',
  *             'uri' => "udp://localhost:1338",
  *             'add_interwiki_prefix' => false,
  *             'omit_bots' => true,
- *     );
+ *     ];
  * @since 1.22
  */
 $wgRCFeeds = [];
@@ -6723,7 +6726,7 @@ $wgUnwatchedPageThreshold = false;
  *
  * To register a new one:
  * @code
- * $wgRecentChangesFlags['flag'] => array(
+ * $wgRecentChangesFlags['flag'] => [
  *   // message for the letter displayed next to rows on changes lists
  *   'letter' => 'letter-msg',
  *   // message for the tooltip of the letter
@@ -6736,7 +6739,7 @@ $wgUnwatchedPageThreshold = false;
  *   // will set the top-level flag if any line contains the flag, 'all' will
  *   // only be set if all lines contain the flag.
  *   'grouping' => 'any',
- * );
+ * ];
  * @endcode
  *
  * @since 1.22
@@ -6842,11 +6845,11 @@ $wgShowCreditsIfMax = true;
  * subprojects on the interwiki map of the target wiki, or a mix of the two,
  * e.g.
  * @code
- *     $wgImportSources = array(
- *         'wikipedia' => array( 'cs', 'en', 'fr', 'zh' ),
+ *     $wgImportSources = [
+ *         'wikipedia' => [ 'cs', 'en', 'fr', 'zh' ],
  *         'wikispecies',
- *         'wikia' => array( 'animanga', 'brickipedia', 'desserts' ),
- *     );
+ *         'wikia' => [ 'animanga', 'brickipedia', 'desserts' ],
+ *     ];
  * @endcode
  *
  * If you have a very complex import sources setup, you can lazy-load it using
@@ -6974,11 +6977,11 @@ $wgExtensionMessagesFiles = [];
  *
  * @par Complex example:
  * @code
- *    $wgMessagesDirs['Example'] = array(
+ *    $wgMessagesDirs['Example'] = [
  *        __DIR__ . '/lib/ve/i18n',
  *        __DIR__ . '/lib/oojs-ui/i18n',
  *        __DIR__ . '/i18n',
- *    )
+ *    ]
  * @endcode
  * @since 1.23
  */
@@ -7048,18 +7051,18 @@ $wgAutoloadAttemptLowercase = true;
  * All but 'name', 'path' and 'author' can be omitted.
  *
  * @code
- * $wgExtensionCredits[$type][] = array(
+ * $wgExtensionCredits[$type][] = [
  *     'path' => __FILE__,
  *     'name' => 'Example extension',
  *     'namemsg' => 'exampleextension-name',
- *     'author' => array(
+ *     'author' => [
  *         'Foo Barstein',
- *     ),
+ *     ],
  *     'version' => '1.9.0',
  *     'url' => 'http://example.org/example-extension/',
  *     'descriptionmsg' => 'exampleextension-desc',
  *     'license-name' => 'GPL-2.0+',
- * );
+ * ];
  * @endcode
  *
  * The extensions are listed on Special:Version. This page also looks for a file
@@ -7118,11 +7121,11 @@ $wgAuth = null;
  * @endcode
  * - A function with some data:
  * @code
- *     $wgHooks['event_name'][] = array( $function, $data );
+ *     $wgHooks['event_name'][] = [ $function, $data ];
  * @endcode
  * - A an object method:
  * @code
- *     $wgHooks['event_name'][] = array( $object, 'method' );
+ *     $wgHooks['event_name'][] = [ $object, 'method' ];
  * @endcode
  * - A closure:
  * @code
@@ -7247,7 +7250,7 @@ $wgSpecialPageCacheUpdates = [
  * Hooks that are used for outputting exceptions.  Format is:
  *   $wgExceptionHooks[] = $funcname
  * or:
- *   $wgExceptionHooks[] = array( $class, $funcname )
+ *   $wgExceptionHooks[] = [ $class, $funcname ]
  * Hooks should return strings or false
  */
 $wgExceptionHooks = [];
@@ -7363,10 +7366,7 @@ $wgLogRestrictions = [
  *
  * @par Example:
  * @code
- *   $wgFilterLogTypes = array(
- *      'move' => true,
- *      'import' => false,
- *   );
+ *   $wgFilterLogTypes = [ 'move' => true, 'import' => false ];
  * @endcode
  *
  * Will display show/hide links for the move and import logs. Move logs will be
@@ -7650,7 +7650,7 @@ $wgDefaultRobotPolicy = 'index,follow';
  *
  * @par Example:
  * @code
- *   $wgNamespaceRobotPolicies = array( NS_TALK => 'noindex' );
+ *   $wgNamespaceRobotPolicies = [ NS_TALK => 'noindex' ];
  * @endcode
  */
 $wgNamespaceRobotPolicies = [];
@@ -7662,23 +7662,23 @@ $wgNamespaceRobotPolicies = [];
  *
  * @par Example:
  * @code
- * $wgArticleRobotPolicies = array(
+ * $wgArticleRobotPolicies = [
  *         'Main Page' => 'noindex,follow',
  *         'User:Bob' => 'index,follow',
- * );
+ * ];
  * @endcode
  *
  * @par Example that DOES NOT WORK because the names are not canonical text
  * forms:
  * @code
- *   $wgArticleRobotPolicies = array(
+ *   $wgArticleRobotPolicies = [
  *     # Underscore, not space!
  *     'Main_Page' => 'noindex,follow',
  *     # "Project", not the actual project name!
  *     'Project:X' => 'index,follow',
  *     # Needs to be "Abc", not "abc" (unless $wgCapitalLinks is false for that namespace)!
  *     'abc' => 'noindex,nofollow'
- *   );
+ *   ];
  * @endcode
  */
 $wgArticleRobotPolicies = [];
@@ -7690,7 +7690,7 @@ $wgArticleRobotPolicies = [];
  *
  * @par Example:
  * @code
- *   $wgExemptFromUserRobotsControl = array( NS_MAIN, NS_TALK, NS_PROJECT );
+ *   $wgExemptFromUserRobotsControl = [ NS_MAIN, NS_TALK, NS_PROJECT ];
  * @endcode
  */
 $wgExemptFromUserRobotsControl = null;
@@ -7759,14 +7759,14 @@ $wgDebugAPI = false;
  *
  * @code
  *  $wgAPIModules['foo'] = 'ApiFoo';
- *  $wgAPIModules['bar'] = array(
+ *  $wgAPIModules['bar'] = [
  *    'class' => 'ApiBar',
  *    'factory' => function( $main, $name ) { ... }
- *  );
- *  $wgAPIModules['xyzzy'] = array(
+ *  ];
+ *  $wgAPIModules['xyzzy'] = [
  *    'class' => 'ApiXyzzy',
- *    'factory' => array( 'XyzzyFactory', 'newApiModule' )
- *  );
+ *    'factory' => [ 'XyzzyFactory', 'newApiModule' ]
+ *  ];
  * @endcode
  *
  * Extension modules may override the core modules.
@@ -7896,12 +7896,12 @@ $wgAjaxEditStash = true;
  *
  * @par Example:
  * @code
- * $wgCrossSiteAJAXdomains = array(
+ * $wgCrossSiteAJAXdomains = [
  *     'www.mediawiki.org',
  *     '*.wikipedia.org',
  *     '*.wikimedia.org',
  *     '*.wiktionary.org',
- * );
+ * ];
  * @endcode
  */
 $wgCrossSiteAJAXdomains = [];
@@ -8061,10 +8061,9 @@ $wgUpdateRowsPerQuery = 100;
 
 /**
  * Name of the external diff engine to use. Supported values:
- * * false: default PHP implementation
- * * 'wikidiff2': Wikimedia's fast difference engine implemented as a PHP/HHVM module
- * * 'wikidiff' and 'wikidiff3' are treated as false for backwards compatibility
- * * any other string is treated as a path to external diff executable
+ * * string: path to an external diff executable
+ * * false: wikidiff2 PHP/HHVM module if installed, otherwise the default PHP implementation
+ * * 'wikidiff', 'wikidiff2', and 'wikidiff3' are treated as false for backwards compatibility
  */
 $wgExternalDiffEngine = false;
 
@@ -8118,13 +8117,13 @@ $wgRedirectOnLogin = null;
  *
  * @par Example:
  * @code
- *   $wgPoolCounterConf = array( 'ArticleView' => array(
+ *   $wgPoolCounterConf = [ 'ArticleView' => [
  *     'class' => 'PoolCounter_Client',
  *     'timeout' => 15, // wait timeout in seconds
  *     'workers' => 5, // maximum number of active threads in each pool
  *     'maxqueue' => 50, // maximum number of total threads in each pool
  *     ... any extension-specific options...
- *   );
+ *   ];
  * @endcode
  */
 $wgPoolCounterConf = null;
@@ -8271,11 +8270,11 @@ $wgPageLanguageUseDB = false;
  *
  * Example config for Parsoid:
  *
- *   $wgVirtualRestConfig['modules']['parsoid'] = array(
+ *   $wgVirtualRestConfig['modules']['parsoid'] = [
  *     'url' => 'http://localhost:8000',
  *     'prefix' => 'enwiki',
  *     'domain' => 'en.wikipedia.org',
- *   );
+ *   ];
  *
  * @var array
  * @since 1.25
index d2b3443..fe5083e 100644 (file)
@@ -183,6 +183,7 @@ define( 'EDIT_SUPPRESS_RC', 8 );
 define( 'EDIT_FORCE_BOT', 16 );
 define( 'EDIT_DEFER_UPDATES', 32 ); // Unused since 1.27
 define( 'EDIT_AUTOSUMMARY', 64 );
+define( 'EDIT_INTERNAL', 128 );
 /**@}*/
 
 /**@{
index 8acd036..9c7ccdf 100644 (file)
@@ -335,6 +335,9 @@ class EditPage {
        /** @var string */
        public $edittime = '';
 
+       /** @var integer */
+       private $editRevId = null;
+
        /** @var string */
        public $section = '';
 
@@ -839,6 +842,7 @@ class EditPage {
                        $this->sectiontitle = preg_replace( '/^\s*=+\s*(.*?)\s*=+\s*$/', '$1', $this->sectiontitle );
 
                        $this->edittime = $request->getVal( 'wpEdittime' );
+                       $this->editRevId = $request->getIntOrNull( 'editRevId' );
                        $this->starttime = $request->getVal( 'wpStarttime' );
 
                        $undidRev = $request->getInt( 'wpUndidRevision' );
@@ -935,6 +939,7 @@ class EditPage {
                        $this->summary = '';
                        $this->sectiontitle = '';
                        $this->edittime = '';
+                       $this->editRevId = null;
                        $this->starttime = wfTimestampNow();
                        $this->edit = false;
                        $this->preview = false;
@@ -1020,6 +1025,7 @@ class EditPage {
        function initialiseForm() {
                global $wgUser;
                $this->edittime = $this->page->getTimestamp();
+               $this->editRevId = $this->page->getLatest();
 
                $content = $this->getContentObject( false ); # TODO: track content object?!
                if ( $content === false ) {
@@ -1862,10 +1868,14 @@ class EditPage {
 
                        $this->page->clear(); # Force reload of dates, etc.
                        $timestamp = $this->page->getTimestamp();
+                       $latest = $this->page->getLatest();
 
                        wfDebug( "timestamp: {$timestamp}, edittime: {$this->edittime}\n" );
 
-                       if ( $timestamp != $this->edittime ) {
+                       // Check editRevId if set, which handles same-second timestamp collisions
+                       if ( $timestamp != $this->edittime
+                               || ( $this->editRevId !== null && $this->editRevId != $latest )
+                       ) {
                                $this->isConflict = true;
                                if ( $this->section == 'new' ) {
                                        if ( $this->page->getUserText() == $wgUser->getName() &&
@@ -1905,14 +1915,24 @@ class EditPage {
                        if ( $this->isConflict ) {
                                wfDebug( __METHOD__
                                        . ": conflict! getting section '{$this->section}' for time '{$this->edittime}'"
-                                       . " (article time '{$timestamp}')\n" );
-
-                               $content = $this->page->replaceSectionContent(
-                                       $this->section,
-                                       $textbox_content,
-                                       $sectionTitle,
-                                       $this->edittime
-                               );
+                                       . " (id '{$this->editRevId}') (article time '{$timestamp}')\n" );
+                               // @TODO: replaceSectionAtRev() with base ID (not prior current) for ?oldid=X case
+                               // ...or disable section editing for non-current revisions (not exposed anyway).
+                               if ( $this->editRevId !== null ) {
+                                       $content = $this->page->replaceSectionAtRev(
+                                               $this->section,
+                                               $textbox_content,
+                                               $sectionTitle,
+                                               $this->editRevId
+                                       );
+                               } else {
+                                       $content = $this->page->replaceSectionContent(
+                                               $this->section,
+                                               $textbox_content,
+                                               $sectionTitle,
+                                               $this->edittime
+                                       );
+                               }
                        } else {
                                wfDebug( __METHOD__ . ": getting section '{$this->section}'\n" );
                                $content = $this->page->replaceSectionContent(
@@ -2172,8 +2192,9 @@ class EditPage {
        function getBaseRevision() {
                if ( !$this->mBaseRevision ) {
                        $db = wfGetDB( DB_MASTER );
-                       $this->mBaseRevision = Revision::loadFromTimestamp(
-                               $db, $this->mTitle, $this->edittime );
+                       $this->mBaseRevision = $this->editRevId
+                               ? Revision::newFromId( $this->editRevId, Revision::READ_LATEST )
+                               : Revision::loadFromTimestamp( $db, $this->mTitle, $this->edittime );
                }
                return $this->mBaseRevision;
        }
@@ -2242,10 +2263,6 @@ class EditPage {
                        $wgOut->addModules( 'mediawiki.action.edit.editWarning' );
                }
 
-               if ( $wgAjaxEditStash ) {
-                       $wgOut->addModules( 'mediawiki.action.edit.stash' );
-               }
-
                # Enabled article-related sidebar, toplinks, etc.
                $wgOut->setArticleRelated( true );
 
@@ -2273,7 +2290,10 @@ class EditPage {
                $wgOut->setPageTitle( wfMessage( $msg, $displayTitle ) );
                # Transmit the name of the message to JavaScript for live preview
                # Keep Resources.php/mediawiki.action.edit.preview in sync with the possible keys
-               $wgOut->addJsConfigVars( 'wgEditMessage', $msg );
+               $wgOut->addJsConfigVars( [
+                       'wgEditMessage' => $msg,
+                       'wgAjaxEditStash' => $wgAjaxEditStash,
+               ] );
        }
 
        /**
@@ -2690,6 +2710,18 @@ class EditPage {
                        }
                }
 
+               // Set a hidden field so JS knows what edit form mode we are in
+               if ( $this->isConflict ) {
+                       $mode = 'conflict';
+               } elseif ( $this->preview ) {
+                       $mode = 'preview';
+               } elseif ( $this->diff ) {
+                       $mode = 'diff';
+               } else {
+                       $mode = 'text';
+               }
+               $wgOut->addHTML( Html::hidden( 'mode', $mode, [ 'id' => 'mw-edit-mode' ] ) );
+
                // Marker for detecting truncated form data.  This must be the last
                // parameter sent in order to be of use, so do not move me.
                $wgOut->addHTML( Html::hidden( 'wpUltimateParam', true ) );
@@ -2745,7 +2777,7 @@ class EditPage {
 
                if ( $this->isConflict ) {
                        $wgOut->wrapWikiMsg( "<div class='mw-explainconflict'>\n$1\n</div>", 'explainconflict' );
-                       $this->edittime = $this->page->getTimestamp();
+                       $this->editRevId = $this->page->getLatest();
                } else {
                        if ( $this->section != '' && !$this->isSectionEditSupported() ) {
                                // We use $this->section to much before this and getVal('wgSection') directly in other places
@@ -3052,6 +3084,7 @@ class EditPage {
 <input type='hidden' value="{$section}" name="wpSection"/>
 <input type='hidden' value="{$this->starttime}" name="wpStarttime" />
 <input type='hidden' value="{$this->edittime}" name="wpEdittime" />
+<input type='hidden' value="{$this->editRevId}" name="editRevId" />
 <input type='hidden' value="{$this->scrolltop}" name="wpScrolltop" id="wpScrolltop" />
 
 HTML
@@ -3260,10 +3293,15 @@ HTML
                }
 
                $textboxContent = $this->toEditContent( $this->textbox1 );
-
-               $newContent = $this->page->replaceSectionContent(
-                                                       $this->section, $textboxContent,
-                                                       $this->summary, $this->edittime );
+               if ( $this->editRevId !== null ) {
+                       $newContent = $this->page->replaceSectionAtRev(
+                               $this->section, $textboxContent, $this->summary, $this->editRevId
+                       );
+               } else {
+                       $newContent = $this->page->replaceSectionContent(
+                               $this->section, $textboxContent, $this->summary, $this->edittime
+                       );
+               }
 
                if ( $newContent ) {
                        ContentHandler::runLegacyHooks( 'EditPageGetDiffText', [ $this, &$newContent ] );
@@ -3475,6 +3513,14 @@ HTML
                if ( Hooks::run( 'EditPageBeforeConflictDiff', [ &$this, &$wgOut ] ) ) {
                        $stats = $wgOut->getContext()->getStats();
                        $stats->increment( 'edit.failures.conflict' );
+                       if ( $this->mTitle->isTalkPage() ) {
+                               $stats->increment( 'edit.failures.conflict.byType.talk' );
+                       } else {
+                               $stats->increment( 'edit.failures.conflict.byType.subject' );
+                       }
+                       if ( $this->mTitle->getNamespace() === NS_PROJECT ) {
+                               $stats->increment( 'edit.failures.conflict.byNamespace.project' );
+                       }
 
                        $wgOut->wrapWikiMsg( '<h2>$1</h2>', "yourdiff" );
 
@@ -3501,6 +3547,8 @@ HTML
                $cancelParams = [];
                if ( !$this->isConflict && $this->oldid > 0 ) {
                        $cancelParams['oldid'] = $this->oldid;
+               } elseif ( $this->getContextTitle()->isRedirect() ) {
+                       $cancelParams['redirect'] = 'no';
                }
                $attrs = [ 'id' => 'mw-editform-cancel' ];
 
@@ -3600,8 +3648,8 @@ HTML
         * @return string
         */
        function getPreviewText() {
-               global $wgOut, $wgUser, $wgRawHtml, $wgLang;
-               global $wgAllowUserCss, $wgAllowUserJs, $wgAjaxEditStash;
+               global $wgOut, $wgRawHtml, $wgLang;
+               global $wgAllowUserCss, $wgAllowUserJs;
 
                $stats = $wgOut->getContext()->getStats();
 
@@ -3654,10 +3702,6 @@ HTML
                                $note = wfMessage( 'previewnote' )->plain() . ' ' . $continueEditing;
                        }
 
-                       $parserOptions = $this->page->makeParserOptions( $this->mArticle->getContext() );
-                       $parserOptions->setIsPreview( true );
-                       $parserOptions->setIsSectionPreview( !is_null( $this->section ) && $this->section !== '' );
-
                        # don't parse non-wikitext pages, show message about preview
                        if ( $this->mTitle->isCssJsSubpage() || $this->mTitle->isCssOrJsPage() ) {
                                if ( $this->mTitle->isCssJsSubpage() ) {
@@ -3701,27 +3745,9 @@ HTML
                        ContentHandler::runLegacyHooks( 'EditPageGetPreviewText', $hook_args );
                        Hooks::run( 'EditPageGetPreviewContent', $hook_args );
 
-                       $parserOptions->enableLimitReport();
-
-                       # For CSS/JS pages, we should have called the ShowRawCssJs hook here.
-                       # But it's now deprecated, so never mind
-
-                       $pstContent = $content->preSaveTransform( $this->mTitle, $wgUser, $parserOptions );
-                       $scopedCallback = $parserOptions->setupFakeRevision(
-                               $this->mTitle, $pstContent, $wgUser );
-                       $parserOutput = $pstContent->getParserOutput( $this->mTitle, null, $parserOptions );
-
-                       # Try to stash the edit for the final submission step
-                       # @todo: different date format preferences cause cache misses
-                       if ( $wgAjaxEditStash ) {
-                               ApiStashEdit::stashEditFromPreview(
-                                       $this->getArticle(), $content, $pstContent,
-                                       $parserOutput, $parserOptions, $parserOptions, wfTimestampNow()
-                               );
-                       }
-
-                       $parserOutput->setEditSectionTokens( false ); // no section edit links
-                       $previewHTML = $parserOutput->getText();
+                       $parserResult = $this->doPreviewParse( $content );
+                       $parserOutput = $parserResult['parserOutput'];
+                       $previewHTML = $parserResult['html'];
                        $this->mParserOutput = $parserOutput;
                        $wgOut->addParserOutputMetadata( $parserOutput );
 
@@ -3729,7 +3755,6 @@ HTML
                                $note .= "\n\n" . implode( "\n\n", $parserOutput->getWarnings() );
                        }
 
-                       ScopedCallback::consume( $scopedCallback );
                } catch ( MWContentSerializationException $ex ) {
                        $m = wfMessage(
                                'content-failed-to-parse',
@@ -3760,6 +3785,41 @@ HTML
                return $previewhead . $previewHTML . $this->previewTextAfterContent;
        }
 
+       /**
+        * Get parser options for a preview
+        * @return ParserOptions
+        */
+       protected function getPreviewParserOptions() {
+               $parserOptions = $this->page->makeParserOptions( $this->mArticle->getContext() );
+               $parserOptions->setIsPreview( true );
+               $parserOptions->setIsSectionPreview( !is_null( $this->section ) && $this->section !== '' );
+               $parserOptions->enableLimitReport();
+               return $parserOptions;
+       }
+
+       /**
+        * Parse the page for a preview. Subclasses may override this class, in order
+        * to parse with different options, or to otherwise modify the preview HTML.
+        *
+        * @param Content @content The page content
+        * @return Associative array with keys:
+        *   - parserOutput: The ParserOutput object
+        *   - html: The HTML to be displayed
+        */
+       protected function doPreviewParse( Content $content ) {
+               global $wgUser;
+               $parserOptions = $this->getPreviewParserOptions();
+               $pstContent = $content->preSaveTransform( $this->mTitle, $wgUser, $parserOptions );
+               $scopedCallback = $parserOptions->setupFakeRevision(
+                       $this->mTitle, $pstContent, $wgUser );
+               $parserOutput = $pstContent->getParserOutput( $this->mTitle, null, $parserOptions );
+               ScopedCallback::consume( $scopedCallback );
+               $parserOutput->setEditSectionTokens( false ); // no section edit links
+               return [
+                       'parserOutput' => $parserOutput,
+                       'html' => $parserOutput->getText() ];
+       }
+
        /**
         * @return array
         */
index d5c6553..66e2440 100644 (file)
@@ -2499,14 +2499,6 @@ function wfShellExec( $cmd, &$retval = null, $environ = [],
        $eintr = defined( 'SOCKET_EINTR' ) ? SOCKET_EINTR : 4;
        $eintrMessage = "stream_select(): unable to select [$eintr]";
 
-       // Build a table mapping resource IDs to pipe FDs to work around a
-       // PHP 5.3 issue in which stream_select() does not preserve array keys
-       // <https://bugs.php.net/bug.php?id=53427>.
-       $fds = [];
-       foreach ( $pipes as $fd => $pipe ) {
-               $fds[(int)$pipe] = $fd;
-       }
-
        $running = true;
        $timeout = null;
        $numReadyPipes = 0;
@@ -2539,9 +2531,8 @@ function wfShellExec( $cmd, &$retval = null, $environ = [],
                                break;
                        }
                }
-               foreach ( $readyPipes as $pipe ) {
+               foreach ( $readyPipes as $fd => $pipe ) {
                        $block = fread( $pipe, 65536 );
-                       $fd = $fds[(int)$pipe];
                        if ( $block === '' ) {
                                // End of file
                                fclose( $pipes[$fd] );
index 424c18d..1979e44 100644 (file)
@@ -1749,8 +1749,6 @@ class Linker {
         *
         * If the option noBrackets is set the rollback link wont be enclosed in "[]".
         *
-        * See the "mediawiki.page.rollback" module for the client-side handling of this link.
-        *
         * @since 1.16.3. $context added in 1.20. $options added in 1.21
         *
         * @param Revision $rev
@@ -1779,8 +1777,6 @@ class Linker {
                        $inner = $context->msg( 'brackets' )->rawParams( $inner )->escaped();
                }
 
-               $context->getOutput()->addModules( 'mediawiki.page.rollback' );
-
                return '<span class="mw-rollback-link">' . $inner . '</span>';
        }
 
@@ -1875,6 +1871,7 @@ class Linker {
                $query = [
                        'action' => 'rollback',
                        'from' => $rev->getUserText(),
+                       'token' => $context->getUser()->getEditToken( 'rollback' ),
                ];
                $attrs = [
                        'data-mw' => 'interface',
index 4733dfb..2c87b8b 100644 (file)
@@ -41,6 +41,7 @@ class ListToggle {
 
        private function checkboxLink( $checkboxType ) {
                return Html::element(
+                       // CSS classes: mw-checkbox-all, mw-checkbox-none, mw-checkbox-invert
                        'a', [ 'href' => '#', 'class' => 'mw-checkbox-' . $checkboxType ],
                        $this->output->msg( 'checkbox-' . $checkboxType )->text()
                );
index 55f9e9e..21857b9 100644 (file)
@@ -680,6 +680,8 @@ class MediaWiki {
                // isLoggedIn() will do all sorts of weird stuff.
                if (
                        $request->getProtocol() == 'http' &&
+                       // switch to HTTPS only when supported by the server
+                       preg_match( '#^https://#', wfExpandUrl( $request->getRequestURL(), PROTO_HTTPS ) ) &&
                        (
                                $request->getSession()->shouldForceHTTPS() ||
                                // Check the cookie manually, for paranoia
@@ -762,9 +764,13 @@ class MediaWiki {
                // Assure deferred updates are not in the main transaction
                wfGetLBFactory()->commitMasterChanges( __METHOD__ );
 
-               // Ignore things like master queries/connections on GET requests
-               // as long as they are in deferred updates (which catch errors).
-               Profiler::instance()->getTransactionProfiler()->resetExpectations();
+               // Loosen DB query expectations since the HTTP client is unblocked
+               $trxProfiler = Profiler::instance()->getTransactionProfiler();
+               $trxProfiler->resetExpectations();
+               $trxProfiler->setExpectations(
+                       $this->config->get( 'TrxProfilerLimits' )['PostSend'],
+                       __METHOD__
+               );
 
                // Do any deferred jobs
                DeferredUpdates::doUpdates( 'enqueue' );
index 6613db1..ff292cf 100644 (file)
@@ -23,6 +23,7 @@ use SearchEngineFactory;
 use SiteLookup;
 use SiteStore;
 use WatchedItemStore;
+use WatchedItemQueryService;
 use SkinFactory;
 use TitleFormatter;
 use TitleParser;
@@ -502,6 +503,14 @@ class MediaWikiServices extends ServiceContainer {
                return $this->getService( 'WatchedItemStore' );
        }
 
+       /**
+        * @since 1.28
+        * @return WatchedItemQueryService
+        */
+       public function getWatchedItemQueryService() {
+               return $this->getService( 'WatchedItemQueryService' );
+       }
+
        /**
         * @since 1.28
         * @return GenderCache
index c204aee..2c979de 100644 (file)
@@ -384,22 +384,30 @@ class Message implements MessageSpecifier, Serializable {
 
        /**
         * Transform a MessageSpecifier or a primitive value used interchangeably with
-        * specifiers (a message key string, or a key + params array) into a proper Message
+        * specifiers (a message key string, or a key + params array) into a proper Message.
+        *
+        * Also accepts a MessageSpecifier inside an array: that's not considered a valid format
+        * but is an easy error to make due to how StatusValue stores messages internally.
+        * Further array elements are ignored in that case.
+        *
         * @param string|array|MessageSpecifier $value
         * @return Message
         * @throws InvalidArgumentException
         * @since 1.27
         */
        public static function newFromSpecifier( $value ) {
-               if ( $value instanceof RawMessage ) {
-                       $message = new RawMessage( $value->getKey(), $value->getParams() );
+               $params = [];
+               if ( is_array( $value ) ) {
+                       $params = $value;
+                       $value = array_shift( $params );
+               }
+
+               if ( $value instanceof Message ) { // Message, RawMessage, ApiMessage, etc
+                       $message = clone( $value );
                } elseif ( $value instanceof MessageSpecifier ) {
                        $message = new Message( $value );
-               } elseif ( is_array( $value ) ) {
-                       $key = array_shift( $value );
-                       $message = new Message( $key, $value );
                } elseif ( is_string( $value ) ) {
-                       $message = new Message( $value );
+                       $message = new Message( $value, $params );
                } else {
                        throw new InvalidArgumentException( __METHOD__ . ': invalid argument type '
                                . gettype( $value ) );
@@ -794,10 +802,13 @@ class Message implements MessageSpecifier, Serializable {
                $string = $this->fetchMessage();
 
                if ( $string === false ) {
-                       if ( $this->format === 'plain' || $this->format === 'text' ) {
-                               return '<' . $this->key . '>';
-                       }
-                       return '&lt;' . htmlspecialchars( $this->key ) . '&gt;';
+                       // Err on the side of safety, ensure that the output
+                       // is always html safe in the event the message key is
+                       // missing, since in that case its highly likely the
+                       // message key is user-controlled.
+                       // '⧼' is used instead of '<' to side-step any
+                       // double-escaping issues.
+                       return '⧼' . htmlspecialchars( $this->key ) . '⧽';
                }
 
                # Replace $* with a list of parameters for &uselang=qqx.
index 6f62ae6..f2373d9 100644 (file)
@@ -23,6 +23,7 @@
 use MediaWiki\Logger\LoggerFactory;
 use MediaWiki\Session\SessionManager;
 use WrappedString\WrappedString;
+use WrappedString\WrappedStringList;
 
 /**
  * This class should be covered by a general architecture document which does
@@ -104,22 +105,11 @@ class OutputPage extends ContextSource {
        protected $mStatusCode;
 
        /**
-        * @var string Variable mLastModified and mEtag are used for sending cache control.
+        * @var string Used for sending cache control.
         *   The whole caching system should probably be moved into its own class.
         */
        protected $mLastModified = '';
 
-       /**
-        * Contains an HTTP Entity Tags (see RFC 2616 section 3.13) which is used
-        * as a unique identifier for the content. It is later used by the client
-        * to compare its cached version with the server version. Client sends
-        * headers If-Match and If-None-Match containing its locally cached ETAG value.
-        *
-        * To get more information, you will have to look at HTTP/1.1 protocol which
-        * is properly described in RFC 2616 : http://tools.ietf.org/html/rfc2616
-        */
-       private $mETag = false;
-
        /** @var array */
        protected $mCategoryLinks = [];
 
@@ -694,12 +684,10 @@ class OutputPage extends ContextSource {
        }
 
        /**
-        * Set the value of the ETag HTTP header, only used if $wgUseETag is true
-        *
-        * @param string $tag Value of "ETag" header
+        * @deprecated since 1.28 Obsolete - wgUseETag experiment was removed.
+        * @param string $tag
         */
-       function setETag( $tag ) {
-               $this->mETag = $tag;
+       public function setETag( $tag ) {
        }
 
        /**
@@ -1277,15 +1265,10 @@ class OutputPage extends ContextSource {
 
                # Fetch existence plus the hiddencat property
                $dbr = wfGetDB( DB_SLAVE );
-               $fields = [ 'page_id', 'page_namespace', 'page_title', 'page_len',
-                       'page_is_redirect', 'page_latest', 'pp_value' ];
-
-               if ( $this->getConfig()->get( 'ContentHandlerUseDB' ) ) {
-                       $fields[] = 'page_content_model';
-               }
-               if ( $this->getConfig()->get( 'PageLanguageUseDB' ) ) {
-                       $fields[] = 'page_lang';
-               }
+               $fields = array_merge(
+                       LinkCache::getSelectFields(),
+                       [ 'page_namespace', 'page_title', 'pp_value' ]
+               );
 
                $res = $dbr->select( [ 'page', 'page_props' ],
                        $fields,
@@ -2161,9 +2144,6 @@ class OutputPage extends ContextSource {
        public function sendCacheControl() {
                $response = $this->getRequest()->response();
                $config = $this->getConfig();
-               if ( $config->get( 'UseETag' ) && $this->mETag ) {
-                       $response->header( "ETag: $this->mETag" );
-               }
 
                $this->addVaryHeader( 'Cookie' );
                $this->addAcceptLanguage();
@@ -2654,7 +2634,8 @@ class OutputPage extends ContextSource {
                $userdir = $this->getLanguage()->getDir();
                $sitedir = $wgContLang->getDir();
 
-               $ret = Html::htmlHeader( $sk->getHtmlElementAttributes() );
+               $pieces = [];
+               $pieces[] = Html::htmlHeader( $sk->getHtmlElementAttributes() );
 
                if ( $this->getHTMLTitle() == '' ) {
                        $this->setHTMLTitle( $this->msg( 'pagetitle', $this->getPageTitle() )->inContentLanguage() );
@@ -2662,8 +2643,7 @@ class OutputPage extends ContextSource {
 
                $openHead = Html::openElement( 'head' );
                if ( $openHead ) {
-                       # Don't bother with the newline if $head == ''
-                       $ret .= "$openHead\n";
+                       $pieces[] = $openHead;
                }
 
                if ( !Html::isXmlMimeType( $this->getConfig()->get( 'MimeType' ) ) ) {
@@ -2675,25 +2655,25 @@ class OutputPage extends ContextSource {
                        // Our XML declaration is output by Html::htmlHeader.
                        // http://www.whatwg.org/html/semantics.html#attr-meta-http-equiv-content-type
                        // http://www.whatwg.org/html/semantics.html#charset
-                       $ret .= Html::element( 'meta', [ 'charset' => 'UTF-8' ] ) . "\n";
+                       $pieces[] = Html::element( 'meta', [ 'charset' => 'UTF-8' ] );
                }
 
-               $ret .= Html::element( 'title', null, $this->getHTMLTitle() ) . "\n";
-               $ret .= $this->getInlineHeadScripts() . "\n";
-               $ret .= $this->buildCssLinks() . "\n";
-               $ret .= $this->getExternalHeadScripts() . "\n";
+               $pieces[] = Html::element( 'title', null, $this->getHTMLTitle() );
+               $pieces[] = $this->getInlineHeadScripts();
+               $pieces[] = $this->buildCssLinks();
+               $pieces[] = $this->getExternalHeadScripts();
 
                foreach ( $this->getHeadLinksArray() as $item ) {
-                       $ret .= $item . "\n";
+                       $pieces[] = $item;
                }
 
                foreach ( $this->mHeadItems as $item ) {
-                       $ret .= $item . "\n";
+                       $pieces[] = $item;
                }
 
                $closeHead = Html::closeElement( 'head' );
                if ( $closeHead ) {
-                       $ret .= "$closeHead\n";
+                       $pieces[] = $closeHead;
                }
 
                $bodyClasses = [];
@@ -2708,6 +2688,11 @@ class OutputPage extends ContextSource {
                        $bodyClasses[] = 'capitalize-all-nouns';
                }
 
+               // Parser feature migration class
+               // The idea is that this will eventually be removed, after the wikitext
+               // which requires it is cleaned up.
+               $bodyClasses[] = 'mw-hide-empty-elt';
+
                $bodyClasses[] = $sk->getPageClasses( $this->getTitle() );
                $bodyClasses[] = 'skin-' . Sanitizer::escapeClass( $sk->getSkinName() );
                $bodyClasses[] =
@@ -2722,9 +2707,9 @@ class OutputPage extends ContextSource {
                $sk->addToBodyAttributes( $this, $bodyAttrs );
                Hooks::run( 'OutputPageBodyAttributes', [ $this, $sk, &$bodyAttrs ] );
 
-               $ret .= Html::openElement( 'body', $bodyAttrs ) . "\n";
+               $pieces[] = Html::openElement( 'body', $bodyAttrs );
 
-               return $ret;
+               return WrappedStringList::join( "\n", $pieces );
        }
 
        /**
@@ -2805,6 +2790,17 @@ class OutputPage extends ContextSource {
                                continue;
                        }
 
+                       if ( $only === ResourceLoaderModule::TYPE_STYLES ) {
+                               if ( $module->getType() !== ResourceLoaderModule::LOAD_STYLES ) {
+                                       $logger = $resourceLoader->getLogger();
+                                       $logger->debug( 'Unexpected general module "{module}" in styles queue.', [
+                                               'module' => $name,
+                                       ] );
+                               } else {
+                                       $links['states'][$name] = 'ready';
+                               }
+                       }
+
                        $sortedModules[$module->getSource()][$module->getGroup()][$name] = $module;
                }
 
@@ -2925,7 +2921,7 @@ class OutputPage extends ContextSource {
        /**
         * Build html output from an array of links from makeResourceLoaderLink.
         * @param array $links
-        * @return string HTML
+        * @return string|WrappedStringList HTML
         */
        protected static function getHtmlFromLoaderLinks( array $links ) {
                $html = [];
@@ -2941,7 +2937,7 @@ class OutputPage extends ContextSource {
                // Filter out empty values
                $html = array_filter( $html, 'strlen' );
 
-               if ( count( $states ) ) {
+               if ( $states ) {
                        array_unshift( $html, ResourceLoader::makeInlineScript(
                                ResourceLoader::makeLoaderStateScript( $states )
                        ) );
@@ -2961,25 +2957,23 @@ class OutputPage extends ContextSource {
        }
 
        /**
-        * <script src="..."> tags for "<head>". This is the startup module
+        * <script src="..."> tags for "<head>".This is the startup module
         * and other modules marked with position 'top'.
         *
-        * @return string HTML fragment
+        * @return string|WrappedStringList HTML
         */
        function getExternalHeadScripts() {
-               $links = [];
-
                // Startup - this provides the client with the module
                // manifest and loads jquery and mediawiki base modules
+               $links = [];
                $links[] = $this->makeResourceLoaderLink( 'startup', ResourceLoaderModule::TYPE_SCRIPTS );
-
                return self::getHtmlFromLoaderLinks( $links );
        }
 
        /**
-        * <script>...</script> tags to put in "<head>".
+        * Inline "<script>" tags to put in "<head>".
         *
-        * @return string HTML fragment
+        * @return string|WrappedStringList HTML
         */
        function getInlineHeadScripts() {
                $links = [];
@@ -3039,7 +3033,7 @@ class OutputPage extends ContextSource {
         *
         * @param bool $unused Previously used to let this method change its output based
         *  on whether it was called by getExternalHeadScripts() or getBottomScripts().
-        * @return string
+        * @return string|WrappedStringList HTML
         */
        function getScriptsForBottomQueue( $unused = null ) {
                // Scripts "only" requests marked for bottom inclusion
@@ -3638,10 +3632,9 @@ class OutputPage extends ContextSource {
        }
 
        /**
-        * Build a set of "<link>" elements for the stylesheets specified in the $this->styles array.
-        * These will be applied to various media & IE conditionals.
+        * Build a set of "<link>" elements for stylesheets specified in the $this->styles array.
         *
-        * @return string
+        * @return string|WrappedStringList HTML
         */
        public function buildCssLinks() {
                global $wgContLang;
@@ -3664,7 +3657,7 @@ class OutputPage extends ContextSource {
                $moduleStyles = $this->getModuleStyles();
 
                // Per-site custom styles
-               $moduleStyles[] = 'site';
+               $moduleStyles[] = 'site.styles';
                $moduleStyles[] = 'noscript';
 
                // Per-user custom styles
@@ -3699,7 +3692,7 @@ class OutputPage extends ContextSource {
                        if ( !$module ) {
                                continue;
                        }
-                       if ( $name === 'site' ) {
+                       if ( $name === 'site.styles' ) {
                                // HACK: The site module shouldn't be fragmented with a cache group and
                                // http request. But in order to ensure its styles are separated and after the
                                // ResourceLoaderDynamicStyles marker, pretend it is in a group called 'site'.
@@ -3743,7 +3736,9 @@ class OutputPage extends ContextSource {
                }
 
                // Add stuff in $otherTags (previewed user CSS if applicable)
-               return self::getHtmlFromLoaderLinks( $links ) . implode( '', $otherTags );
+               $links[] = implode( '', $otherTags );
+
+               return self::getHtmlFromLoaderLinks( $links );
        }
 
        /**
index ab8aada..018c6f8 100644 (file)
@@ -45,6 +45,29 @@ function wfEntryPointCheck( $entryPoint ) {
                // @codingStandardsIgnoreEnd
                wfMissingVendorError( $entryPoint, $mwVersion );
        }
+
+       // List of functions and their associated PHP extension to check for
+       // @codingStandardsIgnoreStart Generic.Arrays.DisallowLongArraySyntax
+       $extensions = array(
+               'mb_substr'   => 'mbstring',
+               'utf8_encode' => 'xml',
+               'ctype_digit' => 'ctype',
+               'json_decode' => 'json',
+               'iconv'       => 'iconv',
+       );
+       // List of extensions we're missing
+       $missingExtensions = array();
+       // @codingStandardsIgnoreEnd
+
+       foreach ( $extensions as $function => $extension ) {
+               if ( !function_exists( $function ) ) {
+                       $missingExtensions[] = $extension;
+               }
+       }
+
+       if ( $missingExtensions ) {
+               wfMissingExtensions( $entryPoint, $mwVersion, $missingExtensions );
+       }
 }
 
 /**
@@ -107,7 +130,7 @@ function wfGenericError( $type, $mwVersion, $title, $shortText, $longText, $long
                                padding: 2em;
                                text-align: center;
                        }
-                       p, img, h1, h2 {
+                       p, img, h1, h2, ul  {
                                text-align: left;
                                margin: 0.5em 0 1em;
                        }
@@ -201,3 +224,38 @@ HTML;
 
        wfGenericError( $type, $mwVersion, 'External dependencies', $shortText, $longText, $longHtml );
 }
+
+/**
+ * Display an error for a PHP extension not existing.
+ *
+ * @param string $type See wfGenericError
+ * @param string $mwVersion See wfGenericError
+ * @param array $missingExts The extensions we're missing
+ */
+function wfMissingExtensions( $type, $mwVersion, $missingExts ) {
+       $shortText = "Installing some PHP extensions is required.";
+
+       $missingExtText = '';
+       $missingExtHtml = '';
+       $baseUrl = 'https://secure.php.net';
+       foreach ( $missingExts as $ext ) {
+               $missingExtText .= " * $ext <$baseUrl/$ext>\n";
+               $missingExtHtml .= "<li><b>$ext</b> "
+                       . "(<a href=\"$baseUrl/$ext\">more information</a>)</li>";
+       }
+
+       $cliText = "Error: Missing one or more required components of PHP.\n"
+               . "You are missing a required extension to PHP that MediaWiki needs.\n"
+               . "Please install:\n" . $missingExtText;
+
+       $longHtml = <<<HTML
+               You are missing a required extension to PHP that MediaWiki
+               requires to run. Please install:
+               <ul>
+               $missingExtHtml
+               </ul>
+HTML;
+
+       wfGenericError( $type, $mwVersion, 'Required components', $shortText,
+               $cliText, $longHtml );
+}
diff --git a/includes/PHPVersionError.php b/includes/PHPVersionError.php
deleted file mode 100644 (file)
index 9fbcf89..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-/**
- * Backwards compatibility. The PHP version error function is now
- * included in PHPVersionCheck.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
- *
- * @deprecated 1.25
- * @file
- */
-// @codingStandardsIgnoreStart MediaWiki.Usage.DirUsage.FunctionFound
-require_once dirname( __FILE__ ) . '/PHPVersionCheck.php';
-// @codingStandardsIgnoreEnd
index 9a55ae3..3083a8d 100644 (file)
@@ -296,7 +296,7 @@ class Preferences {
 
                $allowPasswordChange = $wgDisableAuthManager ? $wgAuth->allowPasswordChange()
                        : AuthManager::singleton()->allowsAuthenticationDataChange(
-                               new PasswordAuthenticationRequest(), false );
+                               new PasswordAuthenticationRequest(), false )->isGood();
                if ( $canEditPrivateInfo && $allowPasswordChange ) {
                        $link = Linker::link( SpecialPage::getTitleFor( 'ChangePassword' ),
                                $context->msg( 'prefs-resetpass' )->escaped(), [],
index 0e45b25..eda8989 100644 (file)
@@ -720,11 +720,28 @@ class Revision implements IDBAccessObject {
        /**
         * Set the revision ID
         *
+        * This should only be used for proposed revisions that turn out to be null edits
+        *
         * @since 1.19
         * @param int $id
         */
        public function setId( $id ) {
-               $this->mId = $id;
+               $this->mId = (int)$id;
+       }
+
+       /**
+        * Set the user ID/name
+        *
+        * This should only be used for proposed revisions that turn out to be null edits
+        *
+        * @since 1.28
+        * @param integer $id User ID
+        * @param string $name User name
+        */
+       public function setUserIdAndName( $id, $name ) {
+               $this->mUser = (int)$id;
+               $this->mUserText = $name;
+               $this->mOrigUserText = $name;
        }
 
        /**
index d321e9f..8f1fc99 100644 (file)
@@ -381,14 +381,17 @@ class Sanitizer {
                                'kbd', 'samp', 'data', 'time', 'mark'
                        ];
                        $htmlsingle = [
-                               'br', 'wbr', 'hr', 'li', 'dt', 'dd'
-                       ];
-                       $htmlsingleonly = [ # Elements that cannot have close tags
-                               'br', 'wbr', 'hr'
+                               'br', 'wbr', 'hr', 'li', 'dt', 'dd', 'meta', 'link'
                        ];
 
-                       $htmlsingle[] = $htmlsingleonly[] = 'meta';
-                       $htmlsingle[] = $htmlsingleonly[] = 'link';
+                       # Elements that cannot have close tags. This is (not coincidentally)
+                       # also the list of tags for which the HTML 5 parsing algorithm
+                       # requires you to "acknowledge the token's self-closing flag", i.e.
+                       # a self-closing tag like <br/> is not an HTML 5 parse error only
+                       # for this list.
+                       $htmlsingleonly = [
+                               'br', 'wbr', 'hr', 'meta', 'link'
+                       ];
 
                        $htmlnest = [ # Tags that can be nested--??
                                'table', 'tr', 'td', 'th', 'div', 'blockquote', 'ol', 'ul',
@@ -450,10 +453,14 @@ class Sanitizer {
         * @param array|bool $args Arguments for the processing callback
         * @param array $extratags For any extra tags to include
         * @param array $removetags For any tags (default or extra) to exclude
+        * @param callable $warnCallback (Deprecated) Callback allowing the
+        *   addition of a tracking category when bad input is encountered.
+        *   DO NOT ADD NEW PARAMETERS AFTER $warnCallback, since it will be
+        *   removed shortly.
         * @return string
         */
        public static function removeHTMLtags( $text, $processCallback = null,
-               $args = [], $extratags = [], $removetags = []
+               $args = [], $extratags = [], $removetags = [], $warnCallback = null
        ) {
                extract( self::getRecognizedTagData( $extratags, $removetags ) );
 
@@ -540,6 +547,14 @@ class Sanitizer {
                                                        $badtag = true;
                                                #  Is it a self closed htmlpair ? (bug 5487)
                                                } elseif ( $brace == '/>' && isset( $htmlpairs[$t] ) ) {
+                                                       // Eventually we'll just remove the self-closing
+                                                       // slash, in order to be consistent with HTML5
+                                                       // semantics.
+                                                       // $brace = '>';
+                                                       // For now, let's just warn authors to clean up.
+                                                       if ( is_callable( $warnCallback ) ) {
+                                                               call_user_func_array( $warnCallback, [ 'deprecated-self-close-category' ] );
+                                                       }
                                                        $badtag = true;
                                                } elseif ( isset( $htmlsingleonly[$t] ) ) {
                                                        # Hack to force empty tag for unclosable elements
@@ -604,12 +619,29 @@ class Sanitizer {
                                                        call_user_func_array( $processCallback, [ &$params, $args ] );
                                                }
 
+                                               if ( $brace == '/>' && !( isset( $htmlsingle[$t] ) || isset( $htmlsingleonly[$t] ) ) ) {
+                                                       // Eventually we'll just remove the self-closing
+                                                       // slash, in order to be consistent with HTML5
+                                                       // semantics.
+                                                       // $brace = '>';
+                                                       // For now, let's just warn authors to clean up.
+                                                       if ( is_callable( $warnCallback ) ) {
+                                                               call_user_func_array( $warnCallback, [ 'deprecated-self-close-category' ] );
+                                                       }
+                                               }
                                                if ( !Sanitizer::validateTag( $params, $t ) ) {
                                                        $badtag = true;
                                                }
 
                                                $newparams = Sanitizer::fixTagAttributes( $params, $t );
                                                if ( !$badtag ) {
+                                                       if ( $brace === '/>' && !isset( $htmlsingleonly[$t] ) ) {
+                                                               # Interpret self-closing tags as empty tags even when
+                                                               # HTML 5 would interpret them as start tags. Such input
+                                                               # is commonly seen on Wikimedia wikis with this intention.
+                                                               $brace = "></$t>";
+                                                       }
+
                                                        $rest = str_replace( '>', '&gt;', $rest );
                                                        $text .= "<$slash$t$newparams$brace$rest";
                                                        continue;
@@ -1028,12 +1060,14 @@ class Sanitizer {
         * - Double attributes are discarded
         * - Unsafe style attributes are discarded
         * - Prepends space if there are attributes.
+        * - (Optionally) Sorts attributes by name.
         *
         * @param string $text
         * @param string $element
+        * @param bool $sorted Whether to sort the attributes (default: false)
         * @return string
         */
-       static function fixTagAttributes( $text, $element ) {
+       static function fixTagAttributes( $text, $element, $sorted = false ) {
                if ( trim( $text ) == '' ) {
                        return '';
                }
@@ -1041,6 +1075,10 @@ class Sanitizer {
                $decoded = Sanitizer::decodeTagAttributes( $text );
                $stripped = Sanitizer::validateTagAttributes( $decoded, $element );
 
+               if ( $sorted ) {
+                       ksort( $stripped );
+               }
+
                return Sanitizer::safeEncodeTagAttributes( $stripped );
        }
 
index 3edfbc0..d4f16ee 100644 (file)
@@ -154,6 +154,10 @@ return [
                return $store;
        },
 
+       'WatchedItemQueryService' => function( MediaWikiServices $services ) {
+               return new WatchedItemQueryService( $services->getDBLoadBalancer() );
+       },
+
        'LinkCache' => function( MediaWikiServices $services ) {
                return new LinkCache(
                        $services->getTitleFormatter()
index 2c78061..cb1bd71 100644 (file)
@@ -45,6 +45,8 @@ if ( !isset( $wgVersion ) ) {
        die( 1 );
 }
 
+mb_internal_encoding( 'UTF-8' );
+
 // Set various default paths sensibly...
 $ps_default = Profiler::instance()->scopedProfileIn( $fname . '-defaults' );
 
@@ -688,7 +690,9 @@ wfDebugLog( 'caches',
        ', WAN: ' . $wgMainWANCache .
        ', stash: ' . $wgMainStash .
        ', message: ' . get_class( $messageMemc ) .
-       ', parser: ' . get_class( $parserMemc ) );
+       ', parser: ' . get_class( $parserMemc ) .
+       ', session: ' . get_class( ObjectCache::getInstance( $wgSessionCacheType ) )
+);
 
 Profiler::instance()->scopedProfileOut( $ps_memcached );
 
index d01f269..45d8bed 100644 (file)
@@ -251,12 +251,22 @@ class Status {
        }
 
        /**
-        * Get the error list as a Message object
+        * Get a bullet list of the errors as a Message object.
         *
-        * @param string|string[] $shortContext A short enclosing context message name (or an array of
-        * message names), to be used when there is a single error.
-        * @param string|string[] $longContext A long enclosing context message name (or an array of
-        * message names), for a list.
+        * $shortContext and $longContext can be used to wrap the error list in some text.
+        * $shortContext will be preferred when there is a single error; $longContext will be
+        * preferred when there are multiple ones. In either case, $1 will be replaced with
+        * the list of errors.
+        *
+        * $shortContext is assumed to use $1 as an inline parameter: if there is a single item,
+        * it will not be made into a list; if there are multiple items, newlines will be inserted
+        * around the list.
+        * $longContext is assumed to use $1 as a standalone parameter; it will always receive a list.
+        *
+        * If both parameters are missing, and there is only one error, no bullet will be added.
+        *
+        * @param string|string[] $shortContext A message name or an array of message names.
+        * @param string|string[] $longContext A message name or an array of message names.
         * @param string|Language $lang Language to use for processing messages
         * @return Message
         */
@@ -287,10 +297,6 @@ class Status {
                        $msgs = $this->getErrorMessageArray( $rawErrors, $lang );
                        $msgCount = count( $msgs );
 
-                       if ( $shortContext ) {
-                               $msgCount++;
-                       }
-
                        $s = new RawMessage( '* $' . implode( "\n* \$", range( 1, $msgCount ) ) );
                        $s->params( $msgs )->parse();
 
index 4555f16..3dd37d7 100644 (file)
@@ -4371,7 +4371,6 @@ class Title implements LinkTarget {
                $conds = $this->pageCond();
                $dbw->onTransactionIdle( function () use ( $dbw, $conds, $method, $purgeTime ) {
                        $dbTimestamp = $dbw->timestamp( $purgeTime ?: time() );
-
                        $dbw->update(
                                'page',
                                [ 'page_touched' => $dbTimestamp ],
@@ -4554,10 +4553,10 @@ class Title implements LinkTarget {
         * @return bool
         */
        public function canUseNoindex() {
-               global $wgContentNamespaces, $wgExemptFromUserRobotsControl;
+               global $wgExemptFromUserRobotsControl;
 
                $bannedNamespaces = is_null( $wgExemptFromUserRobotsControl )
-                       ? $wgContentNamespaces
+                       ? MWNamespace::getContentNamespaces()
                        : $wgExemptFromUserRobotsControl;
 
                return !in_array( $this->mNamespace, $bannedNamespaces );
diff --git a/includes/WatchedItemQueryService.php b/includes/WatchedItemQueryService.php
new file mode 100644 (file)
index 0000000..3dcd30f
--- /dev/null
@@ -0,0 +1,634 @@
+<?php
+
+use MediaWiki\Linker\LinkTarget;
+use Wikimedia\Assert\Assert;
+
+/**
+ * Class performing complex database queries related to WatchedItems.
+ *
+ * @since 1.28
+ *
+ * @file
+ * @ingroup Watchlist
+ *
+ * @license GNU GPL v2+
+ */
+class WatchedItemQueryService {
+
+       const DIR_OLDER = 'older';
+       const DIR_NEWER = 'newer';
+
+       const INCLUDE_FLAGS = 'flags';
+       const INCLUDE_USER = 'user';
+       const INCLUDE_USER_ID = 'userid';
+       const INCLUDE_COMMENT = 'comment';
+       const INCLUDE_PATROL_INFO = 'patrol';
+       const INCLUDE_SIZES = 'sizes';
+       const INCLUDE_LOG_INFO = 'loginfo';
+
+       // FILTER_* constants are part of public API (are used in ApiQueryWatchlist and
+       // ApiQueryWatchlistRaw classes) and should not be changed.
+       // Changing values of those constants will result in a breaking change in the API
+       const FILTER_MINOR = 'minor';
+       const FILTER_NOT_MINOR = '!minor';
+       const FILTER_BOT = 'bot';
+       const FILTER_NOT_BOT = '!bot';
+       const FILTER_ANON = 'anon';
+       const FILTER_NOT_ANON = '!anon';
+       const FILTER_PATROLLED = 'patrolled';
+       const FILTER_NOT_PATROLLED = '!patrolled';
+       const FILTER_UNREAD = 'unread';
+       const FILTER_NOT_UNREAD = '!unread';
+       const FILTER_CHANGED = 'changed';
+       const FILTER_NOT_CHANGED = '!changed';
+
+       const SORT_ASC = 'ASC';
+       const SORT_DESC = 'DESC';
+
+       /**
+        * @var LoadBalancer
+        */
+       private $loadBalancer;
+
+       public function __construct( LoadBalancer $loadBalancer ) {
+               $this->loadBalancer = $loadBalancer;
+       }
+
+       /**
+        * @return DatabaseBase
+        * @throws MWException
+        */
+       private function getConnection() {
+               return $this->loadBalancer->getConnection( DB_SLAVE, [ 'watchlist' ] );
+       }
+
+       /**
+        * @param DatabaseBase $connection
+        * @throws MWException
+        */
+       private function reuseConnection( DatabaseBase $connection ) {
+               $this->loadBalancer->reuseConnection( $connection );
+       }
+
+       /**
+        * @param User $user
+        * @param array $options Allowed keys:
+        *        'includeFields'       => string[] RecentChange fields to be included in the result,
+        *                                 self::INCLUDE_* constants should be used
+        *        'filters'             => string[] optional filters to narrow down resulted items
+        *        'namespaceIds'        => int[] optional namespace IDs to filter by
+        *                                 (defaults to all namespaces)
+        *        'allRevisions'        => bool return multiple revisions of the same page if true,
+        *                                 only the most recent if false (default)
+        *        'rcTypes'             => int[] which types of RecentChanges to include
+        *                                 (defaults to all types), allowed values: RC_EDIT, RC_NEW,
+        *                                 RC_LOG, RC_EXTERNAL, RC_CATEGORIZE
+        *        'onlyByUser'          => string only list changes by a specified user
+        *        'notByUser'           => string do not incluide changes by a specified user
+        *        'dir'                 => string in which direction to enumerate, accepted values:
+        *                                 - DIR_OLDER list newest first
+        *                                 - DIR_NEWER list oldest first
+        *        'start'               => string (format accepted by wfTimestamp) requires 'dir' option,
+        *                                 timestamp to start enumerating from
+        *        'end'                 => string (format accepted by wfTimestamp) requires 'dir' option,
+        *                                 timestamp to end enumerating
+        *        'startFrom'           => [ string $rcTimestamp, int $rcId ] requires 'dir' option,
+        *                                 return items starting from the RecentChange specified by this,
+        *                                 $rcTimestamp should be in the format accepted by wfTimestamp
+        *        'watchlistOwner'      => User user whose watchlist items should be listed if different
+        *                                 than the one specified with $user param,
+        *                                 requires 'watchlistOwnerToken' option
+        *        'watchlistOwnerToken' => string a watchlist token used to access another user's
+        *                                 watchlist, used with 'watchlistOwnerToken' option
+        *        'limit'               => int maximum numbers of items to return
+        *        'usedInGenerator'     => bool include only RecentChange id field required by the
+        *                                 generator ('rc_cur_id' or 'rc_this_oldid') if true, or all
+        *                                 id fields ('rc_cur_id', 'rc_this_oldid', 'rc_last_oldid')
+        *                                 if false (default)
+        * @return array of pairs ( WatchedItem $watchedItem, string[] $recentChangeInfo ),
+        *         where $recentChangeInfo contains the following keys:
+        *         - 'rc_id',
+        *         - 'rc_namespace',
+        *         - 'rc_title',
+        *         - 'rc_timestamp',
+        *         - 'rc_type',
+        *         - 'rc_deleted',
+        *         Additional keys could be added by specifying the 'includeFields' option
+        */
+       public function getWatchedItemsWithRecentChangeInfo( User $user, array $options = [] ) {
+               $options += [
+                       'includeFields' => [],
+                       'namespaceIds' => [],
+                       'filters' => [],
+                       'allRevisions' => false,
+                       'usedInGenerator' => false
+               ];
+
+               Assert::parameter(
+                       !isset( $options['rcTypes'] )
+                               || !array_diff( $options['rcTypes'], [ RC_EDIT, RC_NEW, RC_LOG, RC_EXTERNAL, RC_CATEGORIZE ] ),
+                       '$options[\'rcTypes\']',
+                       'must be an array containing only: RC_EDIT, RC_NEW, RC_LOG, RC_EXTERNAL and/or RC_CATEGORIZE'
+               );
+               Assert::parameter(
+                       !isset( $options['dir'] ) || in_array( $options['dir'], [ self::DIR_OLDER, self::DIR_NEWER ] ),
+                       '$options[\'dir\']',
+                       'must be DIR_OLDER or DIR_NEWER'
+               );
+               Assert::parameter(
+                       !isset( $options['start'] ) && !isset( $options['end'] ) && !isset( $options['startFrom'] )
+                               || isset( $options['dir'] ),
+                       '$options[\'dir\']',
+                       'must be provided when providing any of options: start, end, startFrom'
+               );
+               Assert::parameter(
+                       !isset( $options['startFrom'] )
+                               || ( is_array( $options['startFrom'] ) && count( $options['startFrom'] ) === 2 ),
+                       '$options[\'startFrom\']',
+                       'must be a two-element array'
+               );
+               if ( array_key_exists( 'watchlistOwner', $options ) ) {
+                       Assert::parameterType(
+                               User::class,
+                               $options['watchlistOwner'],
+                               '$options[\'watchlistOwner\']'
+                       );
+                       Assert::parameter(
+                               isset( $options['watchlistOwnerToken'] ),
+                               '$options[\'watchlistOwnerToken\']',
+                               'must be provided when providing watchlistOwner option'
+                       );
+               }
+
+               $tables = [ 'recentchanges', 'watchlist' ];
+               if ( !$options['allRevisions'] ) {
+                       $tables[] = 'page';
+               }
+
+               $db = $this->getConnection();
+
+               $fields = $this->getWatchedItemsWithRCInfoQueryFields( $options );
+               $conds = $this->getWatchedItemsWithRCInfoQueryConds( $db, $user, $options );
+               $dbOptions = $this->getWatchedItemsWithRCInfoQueryDbOptions( $options );
+               $joinConds = $this->getWatchedItemsWithRCInfoQueryJoinConds( $options );
+
+               $res = $db->select(
+                       $tables,
+                       $fields,
+                       $conds,
+                       __METHOD__,
+                       $dbOptions,
+                       $joinConds
+               );
+
+               $this->reuseConnection( $db );
+
+               $items = [];
+               foreach ( $res as $row ) {
+                       $items[] = [
+                               new WatchedItem(
+                                       $user,
+                                       new TitleValue( (int)$row->rc_namespace, $row->rc_title ),
+                                       $row->wl_notificationtimestamp
+                               ),
+                               $this->getRecentChangeFieldsFromRow( $row )
+                       ];
+               }
+
+               return $items;
+       }
+
+       /**
+        * For simple listing of user's watchlist items, see WatchedItemStore::getWatchedItemsForUser
+        *
+        * @param User $user
+        * @param array $options Allowed keys:
+        *        'sort'         => string optional sorting by namespace ID and title
+        *                          one of the self::SORT_* constants
+        *        'namespaceIds' => int[] optional namespace IDs to filter by (defaults to all namespaces)
+        *        'limit'        => int maximum number of items to return
+        *        'filter'       => string optional filter, one of the self::FILTER_* contants
+        *        'from'         => LinkTarget requires 'sort' key, only return items starting from
+        *                          those related to the link target
+        *        'until'        => LinkTarget requires 'sort' key, only return items until
+        *                          those related to the link target
+        *        'startFrom'    => LinkTarget requires 'sort' key, only return items starting from
+        *                          those related to the link target, allows to skip some link targets
+        *                          specified using the form option
+        * @return WatchedItem[]
+        */
+       public function getWatchedItemsForUser( User $user, array $options = [] ) {
+               if ( $user->isAnon() ) {
+                       // TODO: should this just return an empty array or rather complain loud at this point
+                       // as e.g. ApiBase::getWatchlistUser does?
+                       return [];
+               }
+
+               $options += [ 'namespaceIds' => [] ];
+
+               Assert::parameter(
+                       !isset( $options['sort'] ) || in_array( $options['sort'], [ self::SORT_ASC, self::SORT_DESC ] ),
+                       '$options[\'sort\']',
+                       'must be SORT_ASC or SORT_DESC'
+               );
+               Assert::parameter(
+                       !isset( $options['filter'] ) || in_array(
+                               $options['filter'], [ self::FILTER_CHANGED, self::FILTER_NOT_CHANGED ]
+                       ),
+                       '$options[\'filter\']',
+                       'must be FILTER_CHANGED or FILTER_NOT_CHANGED'
+               );
+               Assert::parameter(
+                       !isset( $options['from'] ) && !isset( $options['until'] ) && !isset( $options['startFrom'] )
+                       || isset( $options['sort'] ),
+                       '$options[\'sort\']',
+                       'must be provided if any of "from", "until", "startFrom" options is provided'
+               );
+
+               $db = $this->getConnection();
+
+               $conds = $this->getWatchedItemsForUserQueryConds( $db, $user, $options );
+               $dbOptions = $this->getWatchedItemsForUserQueryDbOptions( $options );
+
+               $res = $db->select(
+                       'watchlist',
+                       [ 'wl_namespace', 'wl_title', 'wl_notificationtimestamp' ],
+                       $conds,
+                       __METHOD__,
+                       $dbOptions
+               );
+
+               $this->reuseConnection( $db );
+
+               $watchedItems = [];
+               foreach ( $res as $row ) {
+                       // todo these could all be cached at some point?
+                       $watchedItems[] = new WatchedItem(
+                               $user,
+                               new TitleValue( (int)$row->wl_namespace, $row->wl_title ),
+                               $row->wl_notificationtimestamp
+                       );
+               }
+
+               return $watchedItems;
+       }
+
+       private function getRecentChangeFieldsFromRow( stdClass $row ) {
+               // This can be simplified to single array_filter call filtering by key value,
+               // once we stop supporting PHP 5.5
+               $allFields = get_object_vars( $row );
+               $rcKeys = array_filter(
+                       array_keys( $allFields ),
+                       function( $key ) {
+                               return substr( $key, 0, 3 ) === 'rc_';
+                       }
+               );
+               return array_intersect_key( $allFields, array_flip( $rcKeys ) );
+       }
+
+       private function getWatchedItemsWithRCInfoQueryFields( array $options ) {
+               $fields = [
+                       'rc_id',
+                       'rc_namespace',
+                       'rc_title',
+                       'rc_timestamp',
+                       'rc_type',
+                       'rc_deleted',
+                       'wl_notificationtimestamp'
+               ];
+
+               $rcIdFields = [
+                       'rc_cur_id',
+                       'rc_this_oldid',
+                       'rc_last_oldid',
+               ];
+               if ( $options['usedInGenerator'] ) {
+                       if ( $options['allRevisions'] ) {
+                               $rcIdFields = [ 'rc_this_oldid' ];
+                       } else {
+                               $rcIdFields = [ 'rc_cur_id' ];
+                       }
+               }
+               $fields = array_merge( $fields, $rcIdFields );
+
+               if ( in_array( self::INCLUDE_FLAGS, $options['includeFields'] ) ) {
+                       $fields = array_merge( $fields, [ 'rc_type', 'rc_minor', 'rc_bot' ] );
+               }
+               if ( in_array( self::INCLUDE_USER, $options['includeFields'] ) ) {
+                       $fields[] = 'rc_user_text';
+               }
+               if ( in_array( self::INCLUDE_USER_ID, $options['includeFields'] ) ) {
+                       $fields[] = 'rc_user';
+               }
+               if ( in_array( self::INCLUDE_COMMENT, $options['includeFields'] ) ) {
+                       $fields[] = 'rc_comment';
+               }
+               if ( in_array( self::INCLUDE_PATROL_INFO, $options['includeFields'] ) ) {
+                       $fields = array_merge( $fields, [ 'rc_patrolled', 'rc_log_type' ] );
+               }
+               if ( in_array( self::INCLUDE_SIZES, $options['includeFields'] ) ) {
+                       $fields = array_merge( $fields, [ 'rc_old_len', 'rc_new_len' ] );
+               }
+               if ( in_array( self::INCLUDE_LOG_INFO, $options['includeFields'] ) ) {
+                       $fields = array_merge( $fields, [ 'rc_logid', 'rc_log_type', 'rc_log_action', 'rc_params' ] );
+               }
+
+               return $fields;
+       }
+
+       private function getWatchedItemsWithRCInfoQueryConds(
+               DatabaseBase $db,
+               User $user,
+               array $options
+       ) {
+               $watchlistOwnerId = $this->getWatchlistOwnerId( $user, $options );
+               $conds = [ 'wl_user' => $watchlistOwnerId ];
+
+               if ( !$options['allRevisions'] ) {
+                       $conds[] = $db->makeList(
+                               [ 'rc_this_oldid=page_latest', 'rc_type=' . RC_LOG ],
+                               LIST_OR
+                       );
+               }
+
+               if ( $options['namespaceIds'] ) {
+                       $conds['wl_namespace'] = array_map( 'intval', $options['namespaceIds'] );
+               }
+
+               if ( array_key_exists( 'rcTypes', $options ) ) {
+                       $conds['rc_type'] = array_map( 'intval',  $options['rcTypes'] );
+               }
+
+               $conds = array_merge(
+                       $conds,
+                       $this->getWatchedItemsWithRCInfoQueryFilterConds( $user, $options )
+               );
+
+               $conds = array_merge( $conds, $this->getStartEndConds( $db, $options ) );
+
+               if ( !isset( $options['start'] ) && !isset( $options['end'] ) ) {
+                       if ( $db->getType() === 'mysql' ) {
+                               // This is an index optimization for mysql
+                               $conds[] = "rc_timestamp > ''";
+                       }
+               }
+
+               $conds = array_merge( $conds, $this->getUserRelatedConds( $db, $user, $options ) );
+
+               $deletedPageLogCond = $this->getExtraDeletedPageLogEntryRelatedCond( $db, $user );
+               if ( $deletedPageLogCond ) {
+                       $conds[] = $deletedPageLogCond;
+               }
+
+               if ( array_key_exists( 'startFrom', $options ) ) {
+                       $conds[] = $this->getStartFromConds( $db, $options );
+               }
+
+               return $conds;
+       }
+
+       private function getWatchlistOwnerId( User $user, array $options ) {
+               if ( array_key_exists( 'watchlistOwner', $options ) ) {
+                       /** @var User $watchlistOwner */
+                       $watchlistOwner = $options['watchlistOwner'];
+                       $ownersToken = $watchlistOwner->getOption( 'watchlisttoken' );
+                       $token = $options['watchlistOwnerToken'];
+                       if ( $ownersToken == '' || !hash_equals( $ownersToken, $token ) ) {
+                               throw new UsageException(
+                                       'Incorrect watchlist token provided -- please set a correct token in Special:Preferences',
+                                       'bad_wltoken'
+                               );
+                       }
+                       return $watchlistOwner->getId();
+               }
+               return $user->getId();
+       }
+
+       private function getWatchedItemsWithRCInfoQueryFilterConds( User $user, array $options ) {
+               $conds = [];
+
+               if ( in_array( self::FILTER_MINOR, $options['filters'] ) ) {
+                       $conds[] = 'rc_minor != 0';
+               } elseif ( in_array( self::FILTER_NOT_MINOR, $options['filters'] ) ) {
+                       $conds[] = 'rc_minor = 0';
+               }
+
+               if ( in_array( self::FILTER_BOT, $options['filters'] ) ) {
+                       $conds[] = 'rc_bot != 0';
+               } elseif ( in_array( self::FILTER_NOT_BOT, $options['filters'] ) ) {
+                       $conds[] = 'rc_bot = 0';
+               }
+
+               if ( in_array( self::FILTER_ANON, $options['filters'] ) ) {
+                       $conds[] = 'rc_user = 0';
+               } elseif ( in_array( self::FILTER_NOT_ANON, $options['filters'] ) ) {
+                       $conds[] = 'rc_user != 0';
+               }
+
+               if ( $user->useRCPatrol() || $user->useNPPatrol() ) {
+                       // TODO: not sure if this should simply ignore patrolled filters if user does not have the patrol
+                       // right, or maybe rather fail loud at this point, same as e.g. ApiQueryWatchlist does?
+                       if ( in_array( self::FILTER_PATROLLED, $options['filters'] ) ) {
+                               $conds[] = 'rc_patrolled != 0';
+                       } elseif ( in_array( self::FILTER_NOT_PATROLLED, $options['filters'] ) ) {
+                               $conds[] = 'rc_patrolled = 0';
+                       }
+               }
+
+               if ( in_array( self::FILTER_UNREAD, $options['filters'] ) ) {
+                       $conds[] = 'rc_timestamp >= wl_notificationtimestamp';
+               } elseif ( in_array( self::FILTER_NOT_UNREAD, $options['filters'] ) ) {
+                       // TODO: should this be changed to use Database::makeList?
+                       $conds[] = 'wl_notificationtimestamp IS NULL OR rc_timestamp < wl_notificationtimestamp';
+               }
+
+               return $conds;
+       }
+
+       private function getStartEndConds( DatabaseBase $db, array $options ) {
+               if ( !isset( $options['start'] ) && ! isset( $options['end'] ) ) {
+                       return [];
+               }
+
+               $conds = [];
+
+               if ( isset( $options['start'] ) ) {
+                       $after = $options['dir'] === self::DIR_OLDER ? '<=' : '>=';
+                       $conds[] = 'rc_timestamp ' . $after . ' ' . $db->addQuotes( $options['start'] );
+               }
+               if ( isset( $options['end'] ) ) {
+                       $before = $options['dir'] === self::DIR_OLDER ? '>=' : '<=';
+                       $conds[] = 'rc_timestamp ' . $before . ' ' . $db->addQuotes( $options['end'] );
+               }
+
+               return $conds;
+       }
+
+       private function getUserRelatedConds( DatabaseBase $db, User $user, array $options ) {
+               if ( !array_key_exists( 'onlyByUser', $options ) && !array_key_exists( 'notByUser', $options ) ) {
+                       return [];
+               }
+
+               $conds = [];
+
+               if ( array_key_exists( 'onlyByUser', $options ) ) {
+                       $conds['rc_user_text'] = $options['onlyByUser'];
+               } elseif ( array_key_exists( 'notByUser', $options ) ) {
+                       $conds[] = 'rc_user_text != ' . $db->addQuotes( $options['notByUser'] );
+               }
+
+               // Avoid brute force searches (bug 17342)
+               $bitmask = 0;
+               if ( !$user->isAllowed( 'deletedhistory' ) ) {
+                       $bitmask = Revision::DELETED_USER;
+               } elseif ( !$user->isAllowedAny( 'suppressrevision', 'viewsuppressed' ) ) {
+                       $bitmask = Revision::DELETED_USER | Revision::DELETED_RESTRICTED;
+               }
+               if ( $bitmask ) {
+                       $conds[] = $db->bitAnd( 'rc_deleted', $bitmask ) . " != $bitmask";
+               }
+
+               return $conds;
+       }
+
+       private function getExtraDeletedPageLogEntryRelatedCond( DatabaseBase $db, User $user ) {
+               // LogPage::DELETED_ACTION hides the affected page, too. So hide those
+               // entirely from the watchlist, or someone could guess the title.
+               $bitmask = 0;
+               if ( !$user->isAllowed( 'deletedhistory' ) ) {
+                       $bitmask = LogPage::DELETED_ACTION;
+               } elseif ( !$user->isAllowedAny( 'suppressrevision', 'viewsuppressed' ) ) {
+                       $bitmask = LogPage::DELETED_ACTION | LogPage::DELETED_RESTRICTED;
+               }
+               if ( $bitmask ) {
+                       return $db->makeList( [
+                               'rc_type != ' . RC_LOG,
+                               $db->bitAnd( 'rc_deleted', $bitmask ) . " != $bitmask",
+                       ], LIST_OR );
+               }
+               return '';
+       }
+
+       private function getStartFromConds( DatabaseBase $db, array $options ) {
+               $op = $options['dir'] === self::DIR_OLDER ? '<' : '>';
+               list( $rcTimestamp, $rcId ) = $options['startFrom'];
+               $rcTimestamp = $db->addQuotes( $db->timestamp( $rcTimestamp ) );
+               $rcId = (int)$rcId;
+               return $db->makeList(
+                       [
+                               "rc_timestamp $op $rcTimestamp",
+                               $db->makeList(
+                                       [
+                                               "rc_timestamp = $rcTimestamp",
+                                               "rc_id $op= $rcId"
+                                       ],
+                                       LIST_AND
+                               )
+                       ],
+                       LIST_OR
+               );
+       }
+
+       private function getWatchedItemsForUserQueryConds( DatabaseBase $db, User $user, array $options ) {
+               $conds = [ 'wl_user' => $user->getId() ];
+               if ( $options['namespaceIds'] ) {
+                       $conds['wl_namespace'] = array_map( 'intval', $options['namespaceIds'] );
+               }
+               if ( isset( $options['filter'] ) ) {
+                       $filter = $options['filter'];
+                       if ( $filter ===  self::FILTER_CHANGED ) {
+                               $conds[] = 'wl_notificationtimestamp IS NOT NULL';
+                       } else {
+                               $conds[] = 'wl_notificationtimestamp IS NULL';
+                       }
+               }
+
+               if ( isset( $options['from'] ) ) {
+                       $op = $options['sort'] === self::SORT_ASC ? '>' : '<';
+                       $conds[] = $this->getFromUntilTargetConds( $db, $options['from'], $op );
+               }
+               if ( isset( $options['until'] ) ) {
+                       $op = $options['sort'] === self::SORT_ASC ? '<' : '>';
+                       $conds[] = $this->getFromUntilTargetConds( $db, $options['until'], $op );
+               }
+               if ( isset( $options['startFrom'] ) ) {
+                       $op = $options['sort'] === self::SORT_ASC ? '>' : '<';
+                       $conds[] = $this->getFromUntilTargetConds( $db, $options['startFrom'], $op );
+               }
+
+               return $conds;
+       }
+
+       /**
+        * Creates a query condition part for getting only items before or after the given link target
+        * (while ordering using $sort mode)
+        *
+        * @param DatabaseBase $db
+        * @param LinkTarget $target
+        * @param string $op comparison operator to use in the conditions
+        * @return string
+        */
+       private function getFromUntilTargetConds( DatabaseBase $db, LinkTarget $target, $op ) {
+               return $db->makeList(
+                       [
+                               "wl_namespace $op " . $target->getNamespace(),
+                               $db->makeList(
+                                       [
+                                               'wl_namespace = ' . $target->getNamespace(),
+                                               "wl_title $op= " . $db->addQuotes( $target->getDBkey() )
+                                       ],
+                                       LIST_AND
+                               )
+                       ],
+                       LIST_OR
+               );
+       }
+
+       private function getWatchedItemsWithRCInfoQueryDbOptions( array $options ) {
+               $dbOptions = [];
+
+               if ( array_key_exists( 'dir', $options ) ) {
+                       $sort = $options['dir'] === self::DIR_OLDER ? ' DESC' : '';
+                       $dbOptions['ORDER BY'] = [ 'rc_timestamp' . $sort, 'rc_id' . $sort ];
+               }
+
+               if ( array_key_exists( 'limit', $options ) ) {
+                       $dbOptions['LIMIT'] = (int)$options['limit'];
+               }
+
+               return $dbOptions;
+       }
+
+       private function getWatchedItemsForUserQueryDbOptions( array $options ) {
+               $dbOptions = [];
+               if ( array_key_exists( 'sort', $options ) ) {
+                       $dbOptions['ORDER BY'] = [
+                               "wl_namespace {$options['sort']}",
+                               "wl_title {$options['sort']}"
+                       ];
+                       if ( count( $options['namespaceIds'] ) === 1 ) {
+                               $dbOptions['ORDER BY'] = "wl_title {$options['sort']}";
+                       }
+               }
+               if ( array_key_exists( 'limit', $options ) ) {
+                       $dbOptions['LIMIT'] = (int)$options['limit'];
+               }
+               return $dbOptions;
+       }
+
+       private function getWatchedItemsWithRCInfoQueryJoinConds( array $options ) {
+               $joinConds = [
+                       'watchlist' => [ 'INNER JOIN',
+                               [
+                                       'wl_namespace=rc_namespace',
+                                       'wl_title=rc_title'
+                               ]
+                       ]
+               ];
+               if ( !$options['allRevisions'] ) {
+                       $joinConds['page'] = [ 'LEFT JOIN', 'rc_cur_id=page_id' ];
+               }
+               return $joinConds;
+       }
+
+}
index 6486955..515fbfc 100644 (file)
@@ -1,7 +1,6 @@
 <?php
 
 use Liuggio\StatsdClient\Factory\StatsdDataFactoryInterface;
-use MediaWiki\MediaWikiServices;
 use MediaWiki\Linker\LinkTarget;
 use Wikimedia\Assert\Assert;
 
@@ -81,14 +80,12 @@ class WatchedItemStore implements StatsdAwareInterface {
         * @return ScopedCallback to reset the overridden value
         * @throws MWException
         */
-       public function overrideDeferredUpdatesAddCallableUpdateCallback( $callback ) {
+       public function overrideDeferredUpdatesAddCallableUpdateCallback( callable $callback ) {
                if ( !defined( 'MW_PHPUNIT_TEST' ) ) {
                        throw new MWException(
                                'Cannot override DeferredUpdates::addCallableUpdate callback in operation.'
                        );
                }
-               Assert::parameterType( 'callable', $callback, '$callback' );
-
                $previousValue = $this->deferredUpdatesAddCallableUpdateCallback;
                $this->deferredUpdatesAddCallableUpdateCallback = $callback;
                return new ScopedCallback( function() use ( $previousValue ) {
@@ -106,14 +103,12 @@ class WatchedItemStore implements StatsdAwareInterface {
         * @return ScopedCallback to reset the overridden value
         * @throws MWException
         */
-       public function overrideRevisionGetTimestampFromIdCallback( $callback ) {
+       public function overrideRevisionGetTimestampFromIdCallback( callable $callback ) {
                if ( !defined( 'MW_PHPUNIT_TEST' ) ) {
                        throw new MWException(
                                'Cannot override Revision::getTimestampFromId callback in operation.'
                        );
                }
-               Assert::parameterType( 'callable', $callback, '$callback' );
-
                $previousValue = $this->revisionGetTimestampFromIdCallback;
                $this->revisionGetTimestampFromIdCallback = $callback;
                return new ScopedCallback( function() use ( $previousValue ) {
index 458c207..90b76e3 100644 (file)
@@ -89,26 +89,12 @@ class WebResponse {
         *     path: string, cookie path ($wgCookiePath)
         *     secure: bool, secure attribute ($wgCookieSecure)
         *     httpOnly: bool, httpOnly attribute ($wgCookieHttpOnly)
-        *     raw: bool, if true uses PHP's setrawcookie() instead of setcookie()
-        *   For backwards compatibility, if $options is not an array then it and
-        *   the following two parameters will be interpreted as values for
-        *   'prefix', 'domain', and 'secure'
         * @since 1.22 Replaced $prefix, $domain, and $forceSecure with $options
         */
        public function setCookie( $name, $value, $expire = 0, $options = [] ) {
                global $wgCookiePath, $wgCookiePrefix, $wgCookieDomain;
                global $wgCookieSecure, $wgCookieExpiration, $wgCookieHttpOnly;
 
-               if ( !is_array( $options ) ) {
-                       // Backwards compatibility
-                       $options = [ 'prefix' => $options ];
-                       if ( func_num_args() >= 5 ) {
-                               $options['domain'] = func_get_arg( 4 );
-                       }
-                       if ( func_num_args() >= 6 ) {
-                               $options['secure'] = func_get_arg( 5 );
-                       }
-               }
                $options = array_filter( $options, function ( $a ) {
                        return $a !== null;
                } ) + [
@@ -268,16 +254,6 @@ class FauxResponse extends WebResponse {
                global $wgCookiePath, $wgCookiePrefix, $wgCookieDomain;
                global $wgCookieSecure, $wgCookieExpiration, $wgCookieHttpOnly;
 
-               if ( !is_array( $options ) ) {
-                       // Backwards compatibility
-                       $options = [ 'prefix' => $options ];
-                       if ( func_num_args() >= 5 ) {
-                               $options['domain'] = func_get_arg( 4 );
-                       }
-                       if ( func_num_args() >= 6 ) {
-                               $options['secure'] = func_get_arg( 5 );
-                       }
-               }
                $options = array_filter( $options, function ( $a ) {
                        return $a !== null;
                } ) + [
index 84bf16e..f06f828 100644 (file)
@@ -88,7 +88,7 @@ abstract class Action {
         * @since 1.17
         * @param string $action
         * @param Page $page
-        * @param IContextSource $context
+        * @param IContextSource|null $context
         * @return Action|bool|null False if the action is disabled, null
         *     if it is not recognised
         */
@@ -264,7 +264,7 @@ abstract class Action {
         * Only public since 1.21
         *
         * @param Page $page
-        * @param IContextSource $context
+        * @param IContextSource|null $context
         */
        public function __construct( Page $page, IContextSource $context = null ) {
                if ( $context === null ) {
index 5ec10e6..0df372e 100644 (file)
@@ -116,6 +116,10 @@ class HistoryAction extends FormlessAction {
                // Setup page variables.
                $out->setFeedAppendQuery( 'action=history' );
                $out->addModules( 'mediawiki.action.history' );
+               $out->addModuleStyles( [
+                       'mediawiki.action.history.styles',
+                       'mediawiki.special.changeslist',
+               ] );
                if ( $config->get( 'UseMediaWikiUIEverywhere' ) ) {
                        $out = $this->getOutput();
                        $out->addModuleStyles( [
index b5f7ff2..7be2aa7 100644 (file)
@@ -478,16 +478,18 @@ class InfoAction extends FormlessAction {
                if ( $firstRev ) {
                        $firstRevUser = $firstRev->getUserText( Revision::FOR_THIS_USER );
                        if ( $firstRevUser !== '' ) {
-                               $batch->add( NS_USER, $firstRevUser );
-                               $batch->add( NS_USER_TALK, $firstRevUser );
+                               $firstRevUserTitle = Title::makeTitle( NS_USER, $firstRevUser );
+                               $batch->addObj( $firstRevUserTitle );
+                               $batch->addObj( $firstRevUserTitle->getTalkPage() );
                        }
                }
 
                if ( $lastRev ) {
                        $lastRevUser = $lastRev->getUserText( Revision::FOR_THIS_USER );
                        if ( $lastRevUser !== '' ) {
-                               $batch->add( NS_USER, $lastRevUser );
-                               $batch->add( NS_USER_TALK, $lastRevUser );
+                               $lastRevUserTitle = Title::makeTitle( NS_USER, $lastRevUser );
+                               $batch->addObj( $lastRevUserTitle );
+                               $batch->addObj( $lastRevUserTitle->getTalkPage() );
                        }
                }
 
index e32582e..3e760fd 100644 (file)
@@ -25,7 +25,7 @@
  *
  * @ingroup Actions
  */
-class RollbackAction extends FormAction {
+class RollbackAction extends FormlessAction {
 
        public function getName() {
                return 'rollback';
@@ -35,37 +35,20 @@ class RollbackAction extends FormAction {
                return 'rollback';
        }
 
-       protected function preText() {
-               return $this->msg( 'confirm-rollback-top' )->parse();
-       }
-
-       protected function alterForm( HTMLForm $form ) {
-               $form->setSubmitTextMsg( 'confirm-rollback-button' );
-               $form->setTokenSalt( 'rollback' );
-
-               // Copy parameters from GET to confirmation form
-               $from = $this->getRequest()->getVal( 'from' );
-               if ( $from === null ) {
-                       throw new BadRequestError( 'rollbackfailed', 'rollback-missingparam' );
-               }
-               foreach ( [ 'from', 'bot', 'hidediff', 'summary' ] as $param ) {
-                       $val = $this->getRequest()->getVal( $param );
-                       if ( $val !== null ) {
-                               $form->addHiddenField( $param, $val );
-                       }
-               }
-       }
+       /**
+        * Temporarily unused message keys due to T88044/T136375:
+        * - confirm-rollback-top
+        * - confirm-rollback-button
+        * - rollbackfailed
+        * - rollback-missingparam
+        */
 
        /**
-        * This must return true so that HTMLForm::show() will not display the form again after
-        * submission. For rollback, display either the form or the result (success/error)
-        * not both.
-        *
-        * @return bool
         * @throws ErrorPageError
         */
-       public function onSubmit( $data ) {
-               $this->useTransactionalTimeLimit();
+       public function onView() {
+               // TODO: use $this->useTransactionalTimeLimit(); when POST only
+               wfTransactionalTimeLimit();
 
                $request = $this->getRequest();
                $user = $this->getUser();
@@ -86,8 +69,7 @@ class RollbackAction extends FormAction {
                $errors = $this->page->doRollback(
                        $from,
                        $request->getText( 'summary' ),
-                       // Provided by HTMLForm
-                       $request->getVal( 'wpEditToken' ),
+                       $request->getVal( 'token' ),
                        $request->getBool( 'bot' ),
                        $data,
                        $this->getUser()
@@ -115,7 +97,7 @@ class RollbackAction extends FormAction {
                                }
                        }
 
-                       return true;
+                       return;
                }
 
                # NOTE: Permission errors already handled by Action::checkExecute.
@@ -160,12 +142,7 @@ class RollbackAction extends FormAction {
                        );
                        $de->showDiff( '', '' );
                }
-               return true;
-       }
-
-       public function onSuccess() {
-               // Required by parent class, but redundant because onSubmit already shows
-               // the success message when needed.
+               return;
        }
 
        protected function getDescription() {
index 806b8d2..52a7951 100644 (file)
@@ -21,7 +21,6 @@
  */
 
 use MediaWiki\Auth\AuthManager;
-use MediaWiki\Auth\AuthenticationRequest;
 use MediaWiki\Auth\AuthenticationResponse;
 
 /**
@@ -109,9 +108,12 @@ class ApiAMCreateAccount extends ApiBase {
        }
 
        public function getAllowedParams() {
-               return ApiAuthManagerHelper::getStandardParams( AuthManager::ACTION_CREATE,
+               $ret = ApiAuthManagerHelper::getStandardParams( AuthManager::ACTION_CREATE,
                        'requests', 'messageformat', 'mergerequestfields', 'preservestate', 'returnurl', 'continue'
                );
+               $ret['preservestate'][ApiBase::PARAM_HELP_MSG_APPEND][] =
+                       'apihelp-createaccount-param-preservestate';
+               return $ret;
        }
 
        public function dynamicParameterDocumentation() {
index 2997405..e30f22b 100644 (file)
@@ -244,7 +244,7 @@ class ApiAuthManagerHelper {
                        $describe = $req->describeCredentials();
                        $reqInfo = [
                                'id' => $req->getUniqueId(),
-                               'metadata' => $req->getMetadata(),
+                               'metadata' => $req->getMetadata() + [ ApiResult::META_TYPE => 'assoc' ],
                        ];
                        switch ( $req->required ) {
                                case AuthenticationRequest::OPTIONAL:
@@ -283,7 +283,6 @@ class ApiAuthManagerHelper {
        private function formatFields( array $fields ) {
                static $copy = [
                        'type' => true,
-                       'image' => true,
                        'value' => true,
                ];
 
index 639f6be..3e57e89 100644 (file)
@@ -2093,7 +2093,7 @@ abstract class ApiBase extends ContextSource {
 
        /**
         * Output the error message related to a certain array
-        * @param array|string $error Element of a getUserPermissionsErrors()-style array
+        * @param array|string|MessageSpecifier $error Element of a getUserPermissionsErrors()-style array
         * @throws UsageException always
         */
        public function dieUsageMsg( $error ) {
@@ -2110,7 +2110,7 @@ abstract class ApiBase extends ContextSource {
        /**
         * Will only set a warning instead of failing if the global $wgDebugAPI
         * is set to true. Otherwise behaves exactly as dieUsageMsg().
-        * @param array|string $error Element of a getUserPermissionsErrors()-style array
+        * @param array|string|MessageSpecifier $error Element of a getUserPermissionsErrors()-style array
         * @throws UsageException
         * @since 1.21
         */
@@ -2143,32 +2143,38 @@ abstract class ApiBase extends ContextSource {
 
        /**
         * Return the error message related to a certain array
-        * @param array $error Element of a getUserPermissionsErrors()-style array
+        * @param array|string|MessageSpecifier $error Element of a getUserPermissionsErrors()-style array
         * @return array('code' => code, 'info' => info)
         */
        public function parseMsg( $error ) {
-               $error = (array)$error; // It seems strings sometimes make their way in here
-               $key = array_shift( $error );
-
-               // Check whether the error array was nested
-               // array( array( <code>, <params> ), array( <another_code>, <params> ) )
-               if ( is_array( $key ) ) {
-                       $error = $key;
-                       $key = array_shift( $error );
+               // Check whether someone passed the whole array, instead of one element as
+               // documented. This breaks if it's actually an array of fallback keys, but
+               // that's long-standing misbehavior introduced in r87627 to incorrectly
+               // fix T30797.
+               if ( is_array( $error ) ) {
+                       $first = reset( $error );
+                       if ( is_array( $first ) ) {
+                               wfDebug( __METHOD__ . ' was passed an array of arrays. ' . wfGetAllCallers( 5 ) );
+                               $error = $first;
+                       }
                }
 
-               if ( $key instanceof IApiMessage ) {
+               $msg = Message::newFromSpecifier( $error );
+
+               if ( $msg instanceof IApiMessage ) {
                        return [
-                               'code' => $key->getApiCode(),
-                               'info' => $key->inLanguage( 'en' )->useDatabase( false )->text(),
-                               'data' => $key->getApiData()
+                               'code' => $msg->getApiCode(),
+                               'info' => $msg->inLanguage( 'en' )->useDatabase( false )->text(),
+                               'data' => $msg->getApiData()
                        ];
                }
 
+               $key = $msg->getKey();
                if ( isset( self::$messageMap[$key] ) ) {
+                       $params = $msg->getParams();
                        return [
-                               'code' => wfMsgReplaceArgs( self::$messageMap[$key]['code'], $error ),
-                               'info' => wfMsgReplaceArgs( self::$messageMap[$key]['info'], $error )
+                               'code' => wfMsgReplaceArgs( self::$messageMap[$key]['code'], $params ),
+                               'info' => wfMsgReplaceArgs( self::$messageMap[$key]['info'], $params )
                        ];
                }
 
diff --git a/includes/api/ApiCSPReport.php b/includes/api/ApiCSPReport.php
new file mode 100644 (file)
index 0000000..5271996
--- /dev/null
@@ -0,0 +1,224 @@
+<?php
+/**
+ * Copyright © 2015 Brian Wolff
+ *
+ * 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
+ */
+
+use MediaWiki\Logger\LoggerFactory;
+
+/**
+ * Api module to receive and log CSP violation reports
+ *
+ * @ingroup API
+ */
+class ApiCSPReport extends ApiBase {
+
+       private $log;
+
+       /**
+        * These reports should be small. Ignore super big reports out of paranoia
+        */
+       const MAX_POST_SIZE = 8192;
+
+       /**
+        * Logs a content-security-policy violation report from web browser.
+        */
+       public function execute() {
+               $reportOnly = $this->getParameter( 'reportonly' );
+               $logname = $reportOnly ? 'csp-report-only' : 'csp';
+               $this->log = LoggerFactory::getInstance( $logname );
+               $userAgent = $this->getRequest()->getHeader( 'user-agent' );
+
+               $this->verifyPostBodyOk();
+               $report = $this->getReport();
+               $flags = $this->getFlags( $report );
+
+               $warningText = $this->generateLogLine( $flags, $report );
+               $this->logReport( $flags, $warningText, [
+                       // XXX Is it ok to put untrusted data into log??
+                       'csp-report' => $report,
+                       'method' => __METHOD__,
+                       'user' => $this->getUser()->getName(),
+                       'user-agent' => $userAgent,
+                       'source' => $this->getParameter( 'source' ),
+               ] );
+               $this->getResult()->addValue( null, $this->getModuleName(), 'success' );
+       }
+
+       /**
+        * Log CSP report, with a different severity depending on $flags
+        * @param $flags Array Flags for this report
+        * @param $logLine String text of log entry
+        * @param $context Array logging context
+        */
+       private function logReport( $flags, $logLine, $context ) {
+               if ( in_array( 'false-positive', $flags ) ) {
+                       // These reports probably don't matter much
+                       $this->log->debug( $logLine, $context );
+               } else {
+                       // Normal report.
+                       $this->log->warning( $logLine, $context );
+               }
+       }
+
+       /**
+        * Get extra notes about the report.
+        *
+        * @param $report Array The CSP report
+        * @return Array
+        */
+       private function getFlags( $report ) {
+               $reportOnly = $this->getParameter( 'reportonly' );
+               $userAgent = $this->getRequest()->getHeader( 'user-agent' );
+               $source = $this->getParameter( 'source' );
+
+               $flags = [];
+               if ( $source !== 'internal' ) {
+                       $flags[] = 'source=' . $source;
+               }
+               if ( $reportOnly ) {
+                       $flags[] = 'report-only';
+               }
+               return $flags;
+       }
+
+       /**
+        * Output an api error if post body is obviously not OK.
+        */
+       private function verifyPostBodyOk() {
+               $req = $this->getRequest();
+               $contentType = $req->getHeader( 'content-type' );
+               if ( $contentType !== 'application/json'
+                       && $contentType !=='application/csp-report'
+               ) {
+                       $this->error( 'wrongformat', __METHOD__ );
+               }
+               if ( $req->getHeader( 'content-length' ) > self::MAX_POST_SIZE ) {
+                       $this->error( 'toobig', __METHOD__ );
+               }
+       }
+
+       /**
+        * Get the report from post body and turn into associative array.
+        *
+        * @return Array
+        */
+       private function getReport() {
+               $postBody = $this->getRequest()->getRawInput();
+               if ( strlen( $postBody ) > self::MAX_POST_SIZE ) {
+                       // paranoia, already checked content-length earlier.
+                       $this->error( 'toobig', __METHOD__ );
+               }
+               $status = FormatJson::parse( $postBody, FormatJson::FORCE_ASSOC );
+               if ( !$status->isGood() ) {
+                       list( $code, ) = $this->getErrorFromStatus( $status );
+                       $this->error( $code, __METHOD__ );
+               }
+
+               $report = $status->getValue();
+
+               if ( !isset( $report['csp-report'] ) ) {
+                       $this->error( 'missingkey', __METHOD__ );
+               }
+               return $report['csp-report'];
+       }
+
+       /**
+        * Get text of log line.
+        *
+        * @param $flags Array of additional markers for this report
+        * @param $report Array the csp report
+        * @return String Text to put in log
+        */
+       private function generateLogLine( $flags, $report ) {
+               $flagText = '';
+               if ( $flags ) {
+                       $flagText = '[' . implode( $flags, ', ' ) . ']';
+               }
+
+               $blockedFile = isset( $report['blocked-uri'] ) ? $report['blocked-uri'] : 'n/a';
+               $page = isset( $report['document-uri'] ) ? $report['document-uri'] : 'n/a';
+               $line = isset( $report['line-number'] ) ? ':' . $report['line-number'] : '';
+               $warningText = $flagText .
+                       ' Received CSP report: <' . $blockedFile .
+                       '> blocked from being loaded on <' . $page . '>' . $line;
+               return $warningText;
+       }
+
+       /**
+        * Stop processing the request, and output/log an error
+        *
+        * @param $code String error code
+        * @param $method String method that made error
+        * @throws UsageException Always
+        */
+       private function error( $code, $method ) {
+               $this->log->info( 'Error reading CSP report: ' . $code, [
+                       'method' => $method,
+                       'user-agent' => $this->getRequest()->getHeader( 'user-agent' )
+               ] );
+               // 500 so it shows up in browser's developer console.
+               $this->dieUsage( "Error processing CSP report: $code", 'cspreport-' . $code, 500 );
+       }
+
+       public function getAllowedParams() {
+               return [
+                       'reportonly' => [
+                               ApiBase::PARAM_TYPE => 'boolean',
+                               ApiBase::PARAM_DFLT => false
+                       ],
+                       'source' => [
+                               ApiBase::PARAM_TYPE => 'string',
+                               ApiBase::PARAM_DFLT => 'internal',
+                               ApiBase::PARAM_REQUIRED => false
+                       ]
+               ];
+       }
+
+       public function mustBePosted() {
+               return true;
+       }
+
+       public function isWriteMode() {
+               return false;
+       }
+
+       /**
+        * Mark as internal. This isn't meant to be used by normal api users
+        */
+       public function isInternal() {
+               return true;
+       }
+
+       /**
+        * Even if you don't have read rights, we still want your report.
+        */
+       public function isReadMode() {
+               return false;
+       }
+
+       /**
+        * Doesn't touch db, so max lag should be rather irrelavent.
+        *
+        * Also, this makes sure that reports aren't lost during lag events.
+        */
+       public function shouldCheckMaxLag() {
+               return false;
+       }
+}
index 54547ef..aea2819 100644 (file)
@@ -56,6 +56,7 @@ class ApiChangeAuthenticationData extends ApiBase {
 
                // Make the change
                $status = $manager->allowsAuthenticationDataChange( $req, true );
+               Hooks::run( 'ChangeAuthenticationDataAudit', [ $req, $status ] );
                if ( !$status->isGood() ) {
                        $this->dieStatus( $status );
                }
index 711234a..8e5a3c7 100644 (file)
@@ -21,8 +21,8 @@
  */
 
 use MediaWiki\Auth\AuthManager;
-use MediaWiki\Auth\AuthenticationRequest;
 use MediaWiki\Auth\AuthenticationResponse;
+use MediaWiki\Auth\CreateFromLoginAuthenticationRequest;
 
 /**
  * Log in to the wiki with AuthManager
@@ -90,6 +90,13 @@ class ApiClientLogin extends ApiBase {
                        $res = $manager->beginAuthentication( $reqs, $params['returnurl'] );
                }
 
+               // Remove CreateFromLoginAuthenticationRequest from $res->neededRequests.
+               // It's there so a RESTART treated as UI will work right, but showing
+               // it to the API client is just confusing.
+               $res->neededRequests = ApiAuthManagerHelper::blacklistAuthenticationRequests(
+                       $res->neededRequests, [ CreateFromLoginAuthenticationRequest::class ]
+               );
+
                $this->getResult()->addValue( null, 'clientlogin',
                        $helper->formatAuthenticationResponse( $res ) );
        }
index 08aba94..00daba9 100644 (file)
@@ -398,39 +398,11 @@ class ApiEditPage extends ApiBase {
                $ep->importFormData( $req );
                $content = $ep->textbox1;
 
-               // The following is needed to give the hook the full content of the
-               // new revision rather than just the current section. (Bug 52077)
-               if ( !is_null( $params['section'] ) &&
-                       $contentHandler->supportsSections() && $titleObj->exists()
-               ) {
-                       // If sectiontitle is set, use it, otherwise use the summary as the section title (for
-                       // backwards compatibility with old forms/bots).
-                       if ( $ep->sectiontitle !== '' ) {
-                               $sectionTitle = $ep->sectiontitle;
-                       } else {
-                               $sectionTitle = $ep->summary;
-                       }
-
-                       $contentObj = $contentHandler->unserializeContent( $content, $contentFormat );
-
-                       $fullContentObj = $articleObject->replaceSectionContent(
-                               $params['section'],
-                               $contentObj,
-                               $sectionTitle
-                       );
-                       if ( $fullContentObj ) {
-                               $content = $fullContentObj->serialize( $contentFormat );
-                       } else {
-                               // This most likely means we have an edit conflict which means that the edit
-                               // wont succeed anyway.
-                               $this->dieUsageMsg( 'editconflict' );
-                       }
-               }
-
                // Run hooks
                // Handle APIEditBeforeSave parameters
                $r = [];
-               if ( !Hooks::run( 'APIEditBeforeSave', [ $ep, $content, &$r ] ) ) {
+               // Deprecated in favour of EditFilterMergedContent
+               if ( !Hooks::run( 'APIEditBeforeSave', [ $ep, $content, &$r ], '1.28' ) ) {
                        if ( count( $r ) ) {
                                $r['result'] = 'Failure';
                                $apiResult->addValue( null, $this->getModuleName(), $r );
index 286fe88..48e7698 100644 (file)
@@ -77,6 +77,11 @@ class ApiExpandTemplates extends ApiBase {
                        $options->setRemoveComments( false );
                }
 
+               $reset = null;
+               $suppressCache = false;
+               Hooks::run( 'ApiMakeParserOptions',
+                       [ $options, $title_obj, $params, $this, &$reset, &$suppressCache ] );
+
                $retval = [];
 
                if ( isset( $prop['parsetree'] ) || $params['generatexml'] ) {
index e28b068..c7dc303 100644 (file)
@@ -79,6 +79,7 @@ class ApiFeedContributions extends ApiBase {
                        'deletedOnly' => $params['deletedonly'],
                        'topOnly' => $params['toponly'],
                        'newOnly' => $params['newonly'],
+                       'hideMinor' => $params['hideminor'],
                        'showSizeDiff' => $params['showsizediff'],
                ] );
 
@@ -208,6 +209,7 @@ class ApiFeedContributions extends ApiBase {
                        'deletedonly' => false,
                        'toponly' => false,
                        'newonly' => false,
+                       'hideminor' => false,
                        'showsizediff' => [
                                ApiBase::PARAM_DFLT => false,
                        ],
index 0f0fbdc..a3bb6a2 100644 (file)
@@ -100,8 +100,10 @@ class ApiHelp extends ApiBase {
                }
 
                $out = $context->getOutput();
-               $out->addModuleStyles( 'mediawiki.hlist' );
-               $out->addModuleStyles( 'mediawiki.apihelp' );
+               $out->addModuleStyles( [
+                       'mediawiki.hlist',
+                       'mediawiki.apihelp',
+               ] );
                if ( !empty( $options['toc'] ) ) {
                        $out->addModules( 'mediawiki.toc' );
                }
index 14347d8..1017607 100644 (file)
@@ -21,7 +21,6 @@
  */
 
 use MediaWiki\Auth\AuthManager;
-use MediaWiki\Auth\AuthenticationRequest;
 use MediaWiki\Auth\AuthenticationResponse;
 
 /**
index ce9587f..592df53 100644 (file)
@@ -71,6 +71,7 @@ class ApiMain extends ApiBase {
                'compare' => 'ApiComparePages',
                'tokens' => 'ApiTokens',
                'checktoken' => 'ApiCheckToken',
+               'cspreport' => 'ApiCSPReport',
 
                // Write modules
                'purge' => 'ApiPurge',
@@ -137,7 +138,9 @@ class ApiMain extends ApiBase {
         */
        private $mPrinter;
 
-       private $mModuleMgr, $mResult, $mErrorFormatter, $mContinuationManager;
+       private $mModuleMgr, $mResult, $mErrorFormatter;
+       /** @var ApiContinuationManager|null */
+       private $mContinuationManager;
        private $mAction;
        private $mEnableWrite;
        private $mInternalMode, $mSquidMaxage;
@@ -171,22 +174,53 @@ class ApiMain extends ApiBase {
 
                if ( isset( $request ) ) {
                        $this->getContext()->setRequest( $request );
+               } else {
+                       $request = $this->getRequest();
                }
 
-               $this->mInternalMode = ( $this->getRequest() instanceof FauxRequest );
+               $this->mInternalMode = ( $request instanceof FauxRequest );
 
                // Special handling for the main module: $parent === $this
                parent::__construct( $this, $this->mInternalMode ? 'main_int' : 'main' );
 
+               $config = $this->getConfig();
+
                if ( !$this->mInternalMode ) {
-                       // Impose module restrictions.
-                       // If the current user cannot read,
-                       // Remove all modules other than login
-                       global $wgUser;
+                       // Log if a request with a non-whitelisted Origin header is seen
+                       // with session cookies.
+                       $originHeader = $request->getHeader( 'Origin' );
+                       if ( $originHeader === false ) {
+                               $origins = [];
+                       } else {
+                               $originHeader = trim( $originHeader );
+                               $origins = preg_split( '/\s+/', $originHeader );
+                       }
+                       $sessionCookies = array_intersect(
+                               array_keys( $_COOKIE ),
+                               MediaWiki\Session\SessionManager::singleton()->getVaryCookies()
+                       );
+                       if ( $origins && $sessionCookies && (
+                               count( $origins ) !== 1 || !self::matchOrigin(
+                                       $origins[0],
+                                       $config->get( 'CrossSiteAJAXdomains' ),
+                                       $config->get( 'CrossSiteAJAXdomainExceptions' )
+                               )
+                       ) ) {
+                               MediaWiki\Logger\LoggerFactory::getInstance( 'cors' )->warning(
+                                       'Non-whitelisted CORS request with session cookies', [
+                                               'origin' => $originHeader,
+                                               'cookies' => $sessionCookies,
+                                               'ip' => $request->getIP(),
+                                               'userAgent' => $this->getUserAgent(),
+                                               'wiki' => wfWikiID(),
+                                       ]
+                               );
+                       }
 
+                       // If we're in a mode that breaks the same-origin policy, strip
+                       // user credentials for security.
                        if ( $this->lacksSameOriginSecurity() ) {
-                               // If we're in a mode that breaks the same-origin policy, strip
-                               // user credentials for security.
+                               global $wgUser;
                                wfDebug( "API: stripping user credentials when the same-origin policy is not applied\n" );
                                $wgUser = new User();
                                $this->getContext()->setUser( $wgUser );
@@ -211,7 +245,6 @@ class ApiMain extends ApiBase {
                        }
                }
 
-               $config = $this->getConfig();
                $this->mModuleMgr = new ApiModuleManager( $this );
                $this->mModuleMgr->addModules( self::$Modules, 'action' );
                $this->mModuleMgr->addModules( $config->get( 'APIModules' ), 'action' );
@@ -265,6 +298,12 @@ class ApiMain extends ApiBase {
                        return true;
                }
 
+               // Anonymous CORS
+               if ( $request->getVal( 'origin' ) === '*' ) {
+                       $this->lacksSameOriginSecurity = true;
+                       return true;
+               }
+
                // Header to be used from XMLHTTPRequest when the request might
                // otherwise be used for XSS.
                if ( $request->getHeader( 'Treat-as-Untrusted' ) !== false ) {
@@ -611,31 +650,49 @@ class ApiMain extends ApiBase {
                $request = $this->getRequest();
                $response = $request->response();
 
-               // Origin: header is a space-separated list of origins, check all of them
-               $originHeader = $request->getHeader( 'Origin' );
-               if ( $originHeader === false ) {
-                       $origins = [];
+               $matchOrigin = false;
+               $allowTiming = false;
+               $varyOrigin = true;
+
+               if ( $originParam === '*' ) {
+                       // Request for anonymous CORS
+                       $matchOrigin = true;
+                       $allowOrigin = '*';
+                       $allowCredentials = 'false';
+                       $varyOrigin = false; // No need to vary
                } else {
-                       $originHeader = trim( $originHeader );
-                       $origins = preg_split( '/\s+/', $originHeader );
-               }
+                       // Non-anonymous CORS, check we allow the domain
 
-               if ( !in_array( $originParam, $origins ) ) {
-                       // origin parameter set but incorrect
-                       // Send a 403 response
-                       $response->statusHeader( 403 );
-                       $response->header( 'Cache-Control: no-cache' );
-                       echo "'origin' parameter does not match Origin header\n";
+                       // Origin: header is a space-separated list of origins, check all of them
+                       $originHeader = $request->getHeader( 'Origin' );
+                       if ( $originHeader === false ) {
+                               $origins = [];
+                       } else {
+                               $originHeader = trim( $originHeader );
+                               $origins = preg_split( '/\s+/', $originHeader );
+                       }
 
-                       return false;
-               }
+                       if ( !in_array( $originParam, $origins ) ) {
+                               // origin parameter set but incorrect
+                               // Send a 403 response
+                               $response->statusHeader( 403 );
+                               $response->header( 'Cache-Control: no-cache' );
+                               echo "'origin' parameter does not match Origin header\n";
 
-               $config = $this->getConfig();
-               $matchOrigin = count( $origins ) === 1 && self::matchOrigin(
-                       $originParam,
-                       $config->get( 'CrossSiteAJAXdomains' ),
-                       $config->get( 'CrossSiteAJAXdomainExceptions' )
-               );
+                               return false;
+                       }
+
+                       $config = $this->getConfig();
+                       $matchOrigin = count( $origins ) === 1 && self::matchOrigin(
+                               $originParam,
+                               $config->get( 'CrossSiteAJAXdomains' ),
+                               $config->get( 'CrossSiteAJAXdomainExceptions' )
+                       );
+
+                       $allowOrigin = $originHeader;
+                       $allowCredentials = 'true';
+                       $allowTiming = $originHeader;
+               }
 
                if ( $matchOrigin ) {
                        $requestedMethod = $request->getHeader( 'Access-Control-Request-Method' );
@@ -659,10 +716,12 @@ class ApiMain extends ApiBase {
                                $response->header( 'Access-Control-Allow-Methods: POST, GET' );
                        }
 
-                       $response->header( "Access-Control-Allow-Origin: $originHeader" );
-                       $response->header( 'Access-Control-Allow-Credentials: true' );
+                       $response->header( "Access-Control-Allow-Origin: $allowOrigin" );
+                       $response->header( "Access-Control-Allow-Credentials: $allowCredentials" );
                        // http://www.w3.org/TR/resource-timing/#timing-allow-origin
-                       $response->header( "Timing-Allow-Origin: $originHeader" );
+                       if ( $allowTiming !== false ) {
+                               $response->header( "Timing-Allow-Origin: $allowTiming" );
+                       }
 
                        if ( !$preflight ) {
                                $response->header(
@@ -671,7 +730,10 @@ class ApiMain extends ApiBase {
                        }
                }
 
-               $this->getOutput()->addVaryHeader( 'Origin' );
+               if ( $varyOrigin ) {
+                       $this->getOutput()->addVaryHeader( 'Origin' );
+               }
+
                return true;
        }
 
@@ -1901,6 +1963,14 @@ class UsageException extends MWException {
                parent::__construct( $message, $code );
                $this->mCodestr = $codestr;
                $this->mExtraData = $extradata;
+
+               // This should never happen, so throw an exception about it that will
+               // hopefully get logged with a backtrace (T138585)
+               if ( !is_string( $codestr ) || $codestr === '' ) {
+                       throw new InvalidArgumentException( 'Invalid $codestr, was ' .
+                               ( $codestr === '' ? 'empty string' : gettype( $codestr ) )
+                       );
+               }
        }
 
        /**
index 058e0a3..066aaa3 100644 (file)
@@ -30,10 +30,14 @@ use MediaWiki\MediaWikiServices;
  * @ingroup API
  */
 class ApiOpenSearch extends ApiBase {
+       use SearchApi;
 
        private $format = null;
        private $fm = null;
 
+       /** @var array list of api allowed params */
+       private $allowedParams = null;
+
        /**
         * Get the output format
         *
@@ -80,24 +84,13 @@ class ApiOpenSearch extends ApiBase {
        public function execute() {
                $params = $this->extractRequestParams();
                $search = $params['search'];
-               $limit = $params['limit'];
-               $namespaces = $params['namespace'];
                $suggest = $params['suggest'];
-
-               if ( $params['redirects'] === null ) {
-                       // Backwards compatibility, don't resolve for JSON.
-                       $resolveRedir = $this->getFormat() !== 'json';
-               } else {
-                       $resolveRedir = $params['redirects'] === 'resolve';
-               }
-
                $results = [];
-
                if ( !$suggest || $this->getConfig()->get( 'EnableOpenSearchSuggest' ) ) {
                        // Open search results may be stored for a very long time
                        $this->getMain()->setCacheMaxAge( $this->getConfig()->get( 'SearchSuggestCacheExpiry' ) );
                        $this->getMain()->setCacheMode( 'public' );
-                       $this->search( $search, $limit, $namespaces, $resolveRedir, $results );
+                       $results = $this->search( $search, $params );
 
                        // Allow hooks to populate extracts and images
                        Hooks::run( 'ApiOpenSearchSuggest', [ &$results ] );
@@ -117,21 +110,17 @@ class ApiOpenSearch extends ApiBase {
 
        /**
         * Perform the search
-        *
-        * @param string $search Text to search
-        * @param int $limit Maximum items to return
-        * @param array $namespaces Namespaces to search
-        * @param bool $resolveRedir Whether to resolve redirects
-        * @param array &$results Put results here. Keys have to be integers.
+        * @param string $search the search query
+        * @param array $params api request params
+        * @return array search results. Keys are integers.
         */
-       protected function search( $search, $limit, $namespaces, $resolveRedir, &$results ) {
-               $searchEngine = MediaWikiServices::getInstance()->newSearchEngine();
-               $searchEngine->setLimitOffset( $limit );
-               $searchEngine->setNamespaces( $namespaces );
+       private function search( $search, array $params ) {
+               $searchEngine = $this->buildSearchEngine( $params );
                $titles = $searchEngine->extractTitles( $searchEngine->completionSearchWithVariants( $search ) );
+               $results = [];
 
                if ( !$titles ) {
-                       return;
+                       return $results;
                }
 
                // Special pages need unique integer ids in the return list, so we just
@@ -139,6 +128,13 @@ class ApiOpenSearch extends ApiBase {
                // always positive articleIds that non-special pages get.
                $nextSpecialPageId = -1;
 
+               if ( $params['redirects'] === null ) {
+                       // Backwards compatibility, don't resolve for JSON.
+                       $resolveRedir = $this->getFormat() !== 'json';
+               } else {
+                       $resolveRedir = $params['redirects'] === 'resolve';
+               }
+
                if ( $resolveRedir ) {
                        // Query for redirects
                        $redirects = [];
@@ -206,6 +202,8 @@ class ApiOpenSearch extends ApiBase {
                                ];
                        }
                }
+
+               return $results;
        }
 
        /**
@@ -271,7 +269,10 @@ class ApiOpenSearch extends ApiBase {
        }
 
        public function getAllowedParams() {
-               return [
+               if ( $this->allowedParams !== null ) {
+                       return $this->allowedParams;
+               }
+               $this->allowedParams = [
                        'search' => null,
                        'limit' => [
                                ApiBase::PARAM_DFLT => $this->getConfig()->get( 'OpenSearchDefaultLimit' ),
@@ -295,6 +296,20 @@ class ApiOpenSearch extends ApiBase {
                        ],
                        'warningsaserror' => false,
                ];
+
+               $profileParam = $this->buildProfileApiParam( SearchEngine::COMPLETION_PROFILE_TYPE,
+                       'apihelp-query+prefixsearch-param-profile' );
+               if ( $profileParam ) {
+                       $this->allowedParams['profile'] = $profileParam;
+               }
+               return $this->allowedParams;
+       }
+
+       public function getSearchProfileParams() {
+               if ( isset( $this->getAllowedParams()['profile'] ) ) {
+                       return [ SearchEngine::COMPLETION_PROFILE_TYPE => 'profile' ];
+               }
+               return [];
        }
 
        protected function getExamplesMessages() {
index fe418e3..3e66cad 100644 (file)
@@ -109,13 +109,13 @@ class ApiParse extends ApiBase {
                                $titleObj = $rev->getTitle();
                                $wgTitle = $titleObj;
                                $pageObj = WikiPage::factory( $titleObj );
-                               $popts = $this->makeParserOptions( $pageObj, $params );
+                               list( $popts, $reset, $suppressCache ) = $this->makeParserOptions( $pageObj, $params );
 
                                // If for some reason the "oldid" is actually the current revision, it may be cached
                                // Deliberately comparing $pageObj->getLatest() with $rev->getId(), rather than
                                // checking $rev->isCurrent(), because $pageObj is what actually ends up being used,
                                // and if its ->getLatest() is outdated, $rev->isCurrent() won't tell us that.
-                               if ( $rev->getId() == $pageObj->getLatest() ) {
+                               if ( !$suppressCache && $rev->getId() == $pageObj->getLatest() ) {
                                        // May get from/save to parser cache
                                        $p_result = $this->getParsedContent( $pageObj, $popts,
                                                $pageid, isset( $prop['wikitext'] ) );
@@ -167,12 +167,12 @@ class ApiParse extends ApiBase {
                                        $oldid = $pageObj->getLatest();
                                }
 
-                               $popts = $this->makeParserOptions( $pageObj, $params );
+                               list( $popts, $reset, $suppressCache ) = $this->makeParserOptions( $pageObj, $params );
 
                                // Don't pollute the parser cache when setting options that aren't
                                // in ParserOptions::optionsHash()
                                /// @todo: This should be handled closer to the actual cache instead of here, see T110269
-                               $suppressCache =
+                               $suppressCache = $suppressCache ||
                                        $params['disablepp'] ||
                                        $params['disablelimitreport'] ||
                                        $params['preview'] ||
@@ -202,7 +202,7 @@ class ApiParse extends ApiBase {
                                $pageObj = $article->getPage();
                        }
 
-                       $popts = $this->makeParserOptions( $pageObj, $params );
+                       list( $popts, $reset ) = $this->makeParserOptions( $pageObj, $params );
                        $textProvided = !is_null( $text );
 
                        if ( !$textProvided ) {
@@ -346,22 +346,27 @@ class ApiParse extends ApiBase {
                }
 
                if ( isset( $prop['headitems'] ) || isset( $prop['headhtml'] ) ) {
-                       $context = $this->getContext();
+                       $context = new DerivativeContext( $this->getContext() );
                        $context->setTitle( $titleObj );
-                       $context->getOutput()->addParserOutputMetadata( $p_result );
+                       $context->setWikiPage( $pageObj );
+
+                       // We need an OutputPage tied to $context, not to the
+                       // RequestContext at the root of the stack.
+                       $output = new OutputPage( $context );
+                       $output->addParserOutputMetadata( $p_result );
 
                        if ( isset( $prop['headitems'] ) ) {
                                $headItems = $this->formatHeadItems( $p_result->getHeadItems() );
 
-                               $css = $this->formatCss( $context->getOutput()->buildCssLinksArray() );
+                               $css = $this->formatCss( $output->buildCssLinksArray() );
 
-                               $scripts = [ $context->getOutput()->getHeadScripts() ];
+                               $scripts = [ $output->getHeadScripts() ];
 
                                $result_array['headitems'] = array_merge( $headItems, $css, $scripts );
                        }
 
                        if ( isset( $prop['headhtml'] ) ) {
-                               $result_array['headhtml'] = $context->getOutput()->headElement( $context->getSkin() );
+                               $result_array['headhtml'] = $output->headElement( $context->getSkin() );
                                $result_array[ApiResult::META_BC_SUBELEMENTS][] = 'headhtml';
                        }
                }
@@ -470,10 +475,9 @@ class ApiParse extends ApiBase {
         * @param WikiPage $pageObj
         * @param array $params
         *
-        * @return ParserOptions
+        * @return array [ ParserOptions, ScopedCallback, bool $suppressCache ]
         */
        protected function makeParserOptions( WikiPage $pageObj, array $params ) {
-
                $popts = $pageObj->makeParserOptions( $this->getContext() );
                $popts->enableLimitReport( !$params['disablepp'] && !$params['disablelimitreport'] );
                $popts->setIsPreview( $params['preview'] || $params['sectionpreview'] );
@@ -483,7 +487,12 @@ class ApiParse extends ApiBase {
                        $popts->setTidy( false );
                }
 
-               return $popts;
+               $reset = null;
+               $suppressCache = false;
+               Hooks::run( 'ApiMakeParserOptions',
+                       [ $popts, $pageObj->getTitle(), $params, $this, &$reset, &$suppressCache ] );
+
+               return [ $popts, $reset, $suppressCache ];
        }
 
        /**
index 3ca4c08..5eb86ab 100644 (file)
@@ -443,16 +443,13 @@ class ApiQuery extends ApiBase {
                }
 
                $exporter = new WikiExporter( $this->getDB() );
-               // WikiExporter writes to stdout, so catch its
-               // output with an ob
-               ob_start();
+               $sink = new DumpStringOutput;
+               $exporter->setOutputSink( $sink );
                $exporter->openStream();
                foreach ( $exportTitles as $title ) {
                        $exporter->pageByTitle( $title );
                }
                $exporter->closeStream();
-               $exportxml = ob_get_contents();
-               ob_end_clean();
 
                // Don't check the size of exported stuff
                // It's not continuable, so it would cause more
@@ -460,10 +457,10 @@ class ApiQuery extends ApiBase {
                if ( $this->mParams['exportnowrap'] ) {
                        $result->reset();
                        // Raw formatter will handle this
-                       $result->addValue( null, 'text', $exportxml, ApiResult::NO_SIZE_CHECK );
+                       $result->addValue( null, 'text', $sink, ApiResult::NO_SIZE_CHECK );
                        $result->addValue( null, 'mime', 'text/xml', ApiResult::NO_SIZE_CHECK );
                } else {
-                       $result->addValue( 'query', 'export', $exportxml, ApiResult::NO_SIZE_CHECK );
+                       $result->addValue( 'query', 'export', $sink, ApiResult::NO_SIZE_CHECK );
                        $result->addValue( 'query', ApiResult::META_BC_SUBELEMENTS, [ 'export' ] );
                }
        }
@@ -554,23 +551,34 @@ class ApiQuery extends ApiBase {
        }
 
        public function isReadMode() {
-               // We need to make an exception for ApiQueryTokens so login tokens can
-               // be fetched on private wikis. Restrict that exception as much as
-               // possible: no other modules allowed, and no pageset parameters
-               // either. We do allow the 'rawcontinue' and 'indexpageids' parameters
-               // since frameworks might add these unconditionally and they can't
-               // expose anything here.
+               // We need to make an exception for certain meta modules that should be
+               // accessible even without the 'read' right. Restrict the exception as
+               // much as possible: no other modules allowed, and no pageset
+               // parameters either. We do allow the 'rawcontinue' and 'indexpageids'
+               // parameters since frameworks might add these unconditionally and they
+               // can't expose anything here.
+               $this->mParams = $this->extractRequestParams();
                $params = array_filter(
                        array_diff_key(
-                               $this->extractRequestParams() + $this->getPageSet()->extractRequestParams(),
+                               $this->mParams + $this->getPageSet()->extractRequestParams(),
                                [ 'rawcontinue' => 1, 'indexpageids' => 1 ]
                        )
                );
-               if ( $params === [ 'meta' => [ 'tokens' ] ] ) {
-                       return false;
+               if ( array_keys( $params ) !== [ 'meta' ] ) {
+                       return true;
+               }
+
+               // Ask each module if it requires read mode. Any true => this returns
+               // true.
+               $modules = [];
+               $this->instantiateModules( $modules, 'meta' );
+               foreach ( $modules as $module ) {
+                       if ( $module->isReadMode() ) {
+                               return true;
+                       }
                }
 
-               return true;
+               return false;
        }
 
        protected function getExamplesMessages() {
index b591f9c..1d250e9 100644 (file)
@@ -43,7 +43,6 @@ class ApiQueryAuthManagerInfo extends ApiQueryBase {
                        'canauthenticatenow' => $manager->canAuthenticateNow(),
                        'cancreateaccounts' => $manager->canCreateAccounts(),
                        'canlinkaccounts' => $manager->canLinkAccounts(),
-                       'haspreservedstate' => $helper->getPreservedRequest() !== null,
                ];
 
                if ( $params['securitysensitiveoperation'] !== null ) {
@@ -53,10 +52,27 @@ class ApiQueryAuthManagerInfo extends ApiQueryBase {
                }
 
                if ( $params['requestsfor'] ) {
-                       $reqs = $manager->getAuthenticationRequests( $params['requestsfor'], $this->getUser() );
+                       $action = $params['requestsfor'];
+
+                       $preservedReq = $helper->getPreservedRequest();
+                       if ( $preservedReq ) {
+                               $ret += [
+                                       'haspreservedstate' => $preservedReq->hasStateForAction( $action ),
+                                       'hasprimarypreservedstate' => $preservedReq->hasPrimaryStateForAction( $action ),
+                                       'preservedusername' => (string)$preservedReq->username,
+                               ];
+                       } else {
+                               $ret += [
+                                       'haspreservedstate' => false,
+                                       'hasprimarypreservedstate' => false,
+                                       'preservedusername' => '',
+                               ];
+                       }
+
+                       $reqs = $manager->getAuthenticationRequests( $action, $this->getUser() );
 
                        // Filter out blacklisted requests, depending on the action
-                       switch ( $params['requestsfor'] ) {
+                       switch ( $action ) {
                                case AuthManager::ACTION_CHANGE:
                                        $reqs = ApiAuthManagerHelper::blacklistAuthenticationRequests(
                                                $reqs, $this->getConfig()->get( 'ChangeCredentialsBlacklist' )
@@ -75,8 +91,8 @@ class ApiQueryAuthManagerInfo extends ApiQueryBase {
                $this->getResult()->addValue( [ 'query' ], $this->getModuleName(), $ret );
        }
 
-       public function getCacheMode( $params ) {
-               return 'public';
+       public function isReadMode() {
+               return false;
        }
 
        public function getAllowedParams() {
@@ -95,7 +111,7 @@ class ApiQueryAuthManagerInfo extends ApiQueryBase {
                                        AuthManager::ACTION_UNLINK,
                                ],
                        ],
-               ] + ApiAuthManagerHelper::getStandardParams( '', 'mergerequestfields' );
+               ] + ApiAuthManagerHelper::getStandardParams( '', 'mergerequestfields', 'messageformat' );
        }
 
        protected function getExamplesMessages() {
index 5c50273..39b0212 100644 (file)
@@ -1,5 +1,4 @@
 <?php
-use MediaWiki\MediaWikiServices;
 
 /**
  * This program is free software; you can redistribute it and/or modify
@@ -25,6 +24,11 @@ use MediaWiki\MediaWikiServices;
  * @ingroup API
  */
 class ApiQueryPrefixSearch extends ApiQueryGeneratorBase {
+       use SearchApi;
+
+       /** @var array list of api allowed params */
+       private $allowedParams;
+
        public function __construct( $query, $moduleName ) {
                parent::__construct( $query, $moduleName, 'ps' );
        }
@@ -44,12 +48,9 @@ class ApiQueryPrefixSearch extends ApiQueryGeneratorBase {
                $params = $this->extractRequestParams();
                $search = $params['search'];
                $limit = $params['limit'];
-               $namespaces = $params['namespace'];
                $offset = $params['offset'];
 
-               $searchEngine = MediaWikiServices::getInstance()->newSearchEngine();
-               $searchEngine->setLimitOffset( $limit + 1, $offset );
-               $searchEngine->setNamespaces( $namespaces );
+               $searchEngine = $this->buildSearchEngine( $params );
                $titles = $searchEngine->extractTitles( $searchEngine->completionSearchWithVariants( $search ) );
 
                if ( $resultPageSet ) {
@@ -60,7 +61,7 @@ class ApiQueryPrefixSearch extends ApiQueryGeneratorBase {
                                return $current;
                        } );
                        if ( count( $titles ) > $limit ) {
-                               $this->setContinueEnumParameter( 'offset', $offset + $params['limit'] );
+                               $this->setContinueEnumParameter( 'offset', $offset + $limit );
                                array_pop( $titles );
                        }
                        $resultPageSet->populateFromTitles( $titles );
@@ -72,7 +73,7 @@ class ApiQueryPrefixSearch extends ApiQueryGeneratorBase {
                        $count = 0;
                        foreach ( $titles as $title ) {
                                if ( ++$count > $limit ) {
-                                       $this->setContinueEnumParameter( 'offset', $offset + $params['limit'] );
+                                       $this->setContinueEnumParameter( 'offset', $offset + $limit );
                                        break;
                                }
                                $vals = [
@@ -101,29 +102,45 @@ class ApiQueryPrefixSearch extends ApiQueryGeneratorBase {
        }
 
        public function getAllowedParams() {
-                       return [
-                               'search' => [
-                                       ApiBase::PARAM_TYPE => 'string',
-                                       ApiBase::PARAM_REQUIRED => true,
-                               ],
-                               'namespace' => [
-                                       ApiBase::PARAM_DFLT => NS_MAIN,
-                                       ApiBase::PARAM_TYPE => 'namespace',
-                                       ApiBase::PARAM_ISMULTI => true,
-                               ],
-                               'limit' => [
-                                       ApiBase::PARAM_DFLT => 10,
-                                       ApiBase::PARAM_TYPE => 'limit',
-                                       ApiBase::PARAM_MIN => 1,
-                                       // Non-standard value for compatibility with action=opensearch
-                                       ApiBase::PARAM_MAX => 100,
-                                       ApiBase::PARAM_MAX2 => 200,
-                               ],
-                               'offset' => [
-                                       ApiBase::PARAM_DFLT => 0,
-                                       ApiBase::PARAM_TYPE => 'integer',
-                               ],
-                       ];
+               if ( $this->allowedParams !== null ) {
+                       return $this->allowedParams;
+               }
+               $this->allowedParams = [
+                       'search' => [
+                               ApiBase::PARAM_TYPE => 'string',
+                               ApiBase::PARAM_REQUIRED => true,
+                       ],
+                       'namespace' => [
+                               ApiBase::PARAM_DFLT => NS_MAIN,
+                               ApiBase::PARAM_TYPE => 'namespace',
+                               ApiBase::PARAM_ISMULTI => true,
+                       ],
+                       'limit' => [
+                               ApiBase::PARAM_DFLT => 10,
+                               ApiBase::PARAM_TYPE => 'limit',
+                               ApiBase::PARAM_MIN => 1,
+                               // Non-standard value for compatibility with action=opensearch
+                               ApiBase::PARAM_MAX => 100,
+                               ApiBase::PARAM_MAX2 => 200,
+                       ],
+                       'offset' => [
+                               ApiBase::PARAM_DFLT => 0,
+                               ApiBase::PARAM_TYPE => 'integer',
+                       ],
+               ];
+               $profileParam = $this->buildProfileApiParam( SearchEngine::COMPLETION_PROFILE_TYPE,
+                       'apihelp-query+prefixsearch-param-profile' );
+               if ( $profileParam ) {
+                       $this->allowedParams['profile'] = $profileParam;
+               }
+               return $this->allowedParams;
+       }
+
+       public function getSearchProfileParams() {
+               if ( isset( $this->getAllowedParams()['profile'] ) ) {
+                       return [ SearchEngine::COMPLETION_PROFILE_TYPE => 'profile' ];
+               }
+               return [];
        }
 
        protected function getExamplesMessages() {
index f0fd2f4..63c95d3 100644 (file)
@@ -150,7 +150,6 @@ class ApiQueryRecentChanges extends ApiQueryGeneratorBase {
                 *              AND rc_timestamp < $end AND rc_namespace = $namespace
                 */
                $this->addTables( 'recentchanges' );
-               $index = [ 'recentchanges' => 'rc_timestamp' ]; // May change
                $this->addTimestampWhereRange( 'rc_timestamp', $params['dir'], $params['start'], $params['end'] );
 
                if ( !is_null( $params['continue'] ) ) {
@@ -246,7 +245,6 @@ class ApiQueryRecentChanges extends ApiQueryGeneratorBase {
 
                if ( !is_null( $params['user'] ) ) {
                        $this->addWhereFld( 'rc_user_text', $params['user'] );
-                       $index['recentchanges'] = 'rc_user_text';
                }
 
                if ( !is_null( $params['excludeuser'] ) ) {
@@ -362,7 +360,6 @@ class ApiQueryRecentChanges extends ApiQueryGeneratorBase {
 
                $this->token = $params['token'];
                $this->addOption( 'LIMIT', $params['limit'] + 1 );
-               $this->addOption( 'USE INDEX', $index );
 
                $count = 0;
                /* Perform the actual query. */
index 64022ff..b816f43 100644 (file)
@@ -80,8 +80,7 @@ class ApiQueryRevisions extends ApiQueryRevisionsBase {
                        return false;
                }
 
-               return $wgUser->getEditToken(
-                       [ $title->getPrefixedText(), $rev->getUserText() ] );
+               return $wgUser->getEditToken( 'rollback' );
        }
 
        protected function run( ApiPageSet $resultPageSet = null ) {
index f57d3a3..4377831 100644 (file)
@@ -32,6 +32,10 @@ use MediaWiki\MediaWikiServices;
  * @ingroup API
  */
 class ApiQuerySearch extends ApiQueryGeneratorBase {
+       use SearchApi;
+
+       /** @var array list of api allowed params */
+       private $allowedParams;
 
        /**
         * When $wgSearchType is null, $wgSearchAlternatives[0] is null. Null isn't
@@ -61,8 +65,11 @@ class ApiQuerySearch extends ApiQueryGeneratorBase {
                global $wgContLang;
                $params = $this->extractRequestParams();
 
+               if ( isset( $params['backend'] ) && $params['backend'] == self::BACKEND_NULL_PARAM ) {
+                       unset( $params['backend'] );
+               }
+
                // Extract parameters
-               $limit = $params['limit'];
                $query = $params['search'];
                $what = $params['what'];
                $interwiki = $params['interwiki'];
@@ -80,11 +87,7 @@ class ApiQuerySearch extends ApiQueryGeneratorBase {
                }
 
                // Create search engine instance and set options
-               $type = isset( $params['backend'] ) && $params['backend'] != self::BACKEND_NULL_PARAM ?
-                       $params['backend'] : null;
-               $search = MediaWikiServices::getInstance()->getSearchEngineFactory()->create( $type );
-               $search->setLimitOffset( $limit + 1, $params['offset'] );
-               $search->setNamespaces( $params['namespace'] );
+               $search = $this->buildSearchEngine( $params );
                $search->setFeatureData( 'rewrite', (bool)$params['enablerewrites'] );
 
                $query = $search->transformSearchTerm( $query );
@@ -152,6 +155,7 @@ class ApiQuerySearch extends ApiQueryGeneratorBase {
                $titles = [];
                $count = 0;
                $result = $matches->next();
+               $limit = $params['limit'];
 
                while ( $result ) {
                        if ( ++$count > $limit ) {
@@ -227,16 +231,15 @@ class ApiQuerySearch extends ApiQueryGeneratorBase {
                $hasInterwikiResults = false;
                $totalhits = null;
                if ( $interwiki && $resultPageSet === null && $matches->hasInterwikiResults() ) {
-                       foreach ( $matches->getInterwikiResults() as $matches ) {
-                               $matches = $matches->getInterwikiResults();
+                       foreach ( $matches->getInterwikiResults() as $interwikiMatches ) {
                                $hasInterwikiResults = true;
 
                                // Include number of results if requested
                                if ( $resultPageSet === null && isset( $searchInfo['totalhits'] ) ) {
-                                       $totalhits += $matches->getTotalHits();
+                                       $totalhits += $interwikiMatches->getTotalHits();
                                }
 
-                               $result = $matches->next();
+                               $result = $interwikiMatches->next();
                                while ( $result ) {
                                        $title = $result->getTitle();
 
@@ -263,7 +266,7 @@ class ApiQuerySearch extends ApiQueryGeneratorBase {
                                                $titles[] = $title;
                                        }
 
-                                       $result = $matches->next();
+                                       $result = $interwikiMatches->next();
                                }
                        }
                        if ( $totalhits !== null ) {
@@ -301,7 +304,11 @@ class ApiQuerySearch extends ApiQueryGeneratorBase {
        }
 
        public function getAllowedParams() {
-               $params = [
+               if ( $this->allowedParams !== null ) {
+                       return $this->allowedParams;
+               }
+
+               $this->allowedParams = [
                        'search' => [
                                ApiBase::PARAM_TYPE => 'string',
                                ApiBase::PARAM_REQUIRED => true
@@ -368,13 +375,31 @@ class ApiQuerySearch extends ApiQueryGeneratorBase {
                        if ( $alternatives[0] === null ) {
                                $alternatives[0] = self::BACKEND_NULL_PARAM;
                        }
-                       $params['backend'] = [
+                       $this->allowedParams['backend'] = [
                                ApiBase::PARAM_DFLT => $searchConfig->getSearchType(),
                                ApiBase::PARAM_TYPE => $alternatives,
                        ];
+                       // @todo: support profile selection when multiple
+                       // backends are available. The solution could be to
+                       // merge all possible profiles and let ApiBase
+                       // subclasses do the check. Making ApiHelp and ApiSandbox
+                       // comprehensive might be more difficult.
+               } else {
+                       $profileParam = $this->buildProfileApiParam( SearchEngine::FT_QUERY_INDEP_PROFILE_TYPE,
+                               'apihelp-query+search-param-qiprofile' );
+                       if ( $profileParam ) {
+                               $this->allowedParams['qiprofile'] = $profileParam;
+                       }
                }
 
-               return $params;
+               return $this->allowedParams;
+       }
+
+       public function getSearchProfileParams() {
+               if ( isset( $this->getAllowedParams()['qiprofile'] ) ) {
+                       return [ SearchEngine::FT_QUERY_INDEP_PROFILE_TYPE => 'qiprofile' ];
+               }
+               return [];
        }
 
        protected function getExamplesMessages() {
index 0774651..97042af 100644 (file)
@@ -181,6 +181,10 @@ class ApiQuerySiteinfo extends ApiQueryBase {
                $data['legaltitlechars'] = Title::legalChars();
                $data['invalidusernamechars'] = $config->get( 'InvalidUsernameCharacters' );
 
+               $data['allunicodefixes'] = (bool)$config->get( 'AllUnicodeFixes' );
+               $data['fixarabicunicode'] = (bool)$config->get( 'FixArabicUnicode' );
+               $data['fixmalayalamunicode'] = (bool)$config->get( 'FixMalayalamUnicode' );
+
                global $IP;
                $git = SpecialVersion::getGitHeadSha1( $IP );
                if ( $git ) {
@@ -221,6 +225,8 @@ class ApiQuerySiteinfo extends ApiQueryBase {
                }
                $data['writeapi'] = (bool)$config->get( 'EnableWriteAPI' );
 
+               $data['maxarticlesize'] = $config->get( 'MaxArticleSize' ) * 1024;
+
                $tz = $config->get( 'Localtimezone' );
                $offset = $config->get( 'LocalTZoffset' );
                if ( is_null( $tz ) ) {
@@ -245,7 +251,7 @@ class ApiQuerySiteinfo extends ApiQueryBase {
 
                $data['uploadsenabled'] = UploadBase::isEnabled();
                $data['maxuploadsize'] = UploadBase::getMaxUploadSize();
-               $data['minuploadchunksize'] = (int)$this->getConfig()->get( 'MinUploadChunkSize' );
+               $data['minuploadchunksize'] = (int)$config->get( 'MinUploadChunkSize' );
 
                $data['thumblimits'] = $config->get( 'ThumbLimits' );
                ApiResult::setArrayType( $data['thumblimits'], 'BCassoc' );
@@ -264,10 +270,12 @@ class ApiQuerySiteinfo extends ApiQueryBase {
                        $data['favicon'] = wfExpandUrl( $favicon, PROTO_RELATIVE );
                }
 
-               $data['centralidlookupprovider'] = $this->getConfig()->get( 'CentralIdLookupProvider' );
-               $providerIds = array_keys( $this->getConfig()->get( 'CentralIdLookupProviders' ) );
+               $data['centralidlookupprovider'] = $config->get( 'CentralIdLookupProvider' );
+               $providerIds = array_keys( $config->get( 'CentralIdLookupProviders' ) );
                $data['allcentralidlookupproviders'] = $providerIds;
 
+               $data['interwikimagic'] = (bool)$config->get( 'InterwikiMagic' );
+
                Hooks::run( 'APIQuerySiteInfoGeneralInfo', [ $this, &$data ] );
 
                return $this->getResult()->addValue( 'query', $property, $data );
index 68ec38d..5afb66f 100644 (file)
@@ -262,8 +262,11 @@ class ApiQueryUsers extends ApiQueryBase {
                                } else {
                                        $data[$u]['missing'] = true;
                                        if ( isset( $this->prop['cancreate'] ) && !$this->getConfig()->get( 'DisableAuthManager' ) ) {
-                                               $data[$u]['cancreate'] = MediaWiki\Auth\AuthManager::singleton()->canCreateAccount( $u )
-                                                       ->isGood();
+                                               $status = MediaWiki\Auth\AuthManager::singleton()->canCreateAccount( $u );
+                                               $data[$u]['cancreate'] = $status->isGood();
+                                               if ( !$status->isGood() ) {
+                                                       $data[$u]['cancreateerror'] = $this->getErrorFormatter()->arrayFromStatus( $status );
+                                               }
                                        }
                                }
                        } else {
index db2cf86..e2599d1 100644 (file)
@@ -24,6 +24,8 @@
  * @file
  */
 
+use MediaWiki\MediaWikiServices;
+
 /**
  * This query action allows clients to retrieve a list of recently modified pages
  * that are part of the logged-in user's watchlist.
@@ -85,96 +87,59 @@ class ApiQueryWatchlist extends ApiQueryGeneratorBase {
                        }
                }
 
-               $this->addFields( [
-                       'rc_id',
-                       'rc_namespace',
-                       'rc_title',
-                       'rc_timestamp',
-                       'rc_type',
-                       'rc_deleted',
-               ] );
+               $options = [
+                       'dir' => $params['dir'] === 'older'
+                               ? WatchedItemQueryService::DIR_OLDER
+                               : WatchedItemQueryService::DIR_NEWER,
+               ];
 
                if ( is_null( $resultPageSet ) ) {
-                       $this->addFields( [
-                               'rc_cur_id',
-                               'rc_this_oldid',
-                               'rc_last_oldid',
-                       ] );
-
-                       $this->addFieldsIf( [ 'rc_type', 'rc_minor', 'rc_bot' ], $this->fld_flags );
-                       $this->addFieldsIf( 'rc_user', $this->fld_user || $this->fld_userid );
-                       $this->addFieldsIf( 'rc_user_text', $this->fld_user );
-                       $this->addFieldsIf( 'rc_comment', $this->fld_comment || $this->fld_parsedcomment );
-                       $this->addFieldsIf( [ 'rc_patrolled', 'rc_log_type' ], $this->fld_patrol );
-                       $this->addFieldsIf( [ 'rc_old_len', 'rc_new_len' ], $this->fld_sizes );
-                       $this->addFieldsIf( 'wl_notificationtimestamp', $this->fld_notificationtimestamp );
-                       $this->addFieldsIf(
-                               [ 'rc_logid', 'rc_log_type', 'rc_log_action', 'rc_params' ],
-                               $this->fld_loginfo
-                       );
-               } elseif ( $params['allrev'] ) {
-                       $this->addFields( 'rc_this_oldid' );
+                       $options['includeFields'] = $this->getFieldsToInclude();
                } else {
-                       $this->addFields( 'rc_cur_id' );
+                       $options['usedInGenerator'] = true;
                }
 
-               $this->addTables( [
-                       'recentchanges',
-                       'watchlist',
-               ] );
-
-               $userId = $wlowner->getId();
-               $this->addJoinConds( [ 'watchlist' => [ 'INNER JOIN',
-                       [
-                               'wl_user' => $userId,
-                               'wl_namespace=rc_namespace',
-                               'wl_title=rc_title'
-                       ]
-               ] ] );
-
-               $db = $this->getDB();
-
-               $this->addTimestampWhereRange( 'rc_timestamp', $params['dir'],
-                       $params['start'], $params['end'] );
-               // Include in ORDER BY for uniqueness
-               $this->addWhereRange( 'rc_id', $params['dir'], null, null );
+               if ( $params['start'] ) {
+                       $options['start'] = $params['start'];
+               }
+               if ( $params['end'] ) {
+                       $options['end'] = $params['end'];
+               }
 
                if ( !is_null( $params['continue'] ) ) {
                        $cont = explode( '|', $params['continue'] );
                        $this->dieContinueUsageIf( count( $cont ) != 2 );
-                       $op = ( $params['dir'] === 'newer' ? '>' : '<' );
-                       $continueTimestamp = $db->addQuotes( $db->timestamp( $cont[0] ) );
+                       $continueTimestamp = $cont[0];
                        $continueId = (int)$cont[1];
                        $this->dieContinueUsageIf( $continueId != $cont[1] );
-                       $this->addWhere( "rc_timestamp $op $continueTimestamp OR " .
-                               "(rc_timestamp = $continueTimestamp AND " .
-                               "rc_id $op= $continueId)"
-                       );
+                       $options['startFrom'] = [ $continueTimestamp, $continueId ];
                }
 
-               $this->addWhereFld( 'wl_namespace', $params['namespace'] );
+               if ( $wlowner !== $user ) {
+                       $options['watchlistOwner'] = $wlowner;
+                       $options['watchlistOwnerToken'] = $params['token'];
+               }
 
-               if ( !$params['allrev'] ) {
-                       $this->addTables( 'page' );
-                       $this->addJoinConds( [ 'page' => [ 'LEFT JOIN', 'rc_cur_id=page_id' ] ] );
-                       $this->addWhere( 'rc_this_oldid=page_latest OR rc_type=' . RC_LOG );
+               if ( !is_null( $params['namespace'] ) ) {
+                       $options['namespaceIds'] = $params['namespace'];
+               }
+
+               if ( $params['allrev'] ) {
+                       $options['allRevisions'] = true;
                }
 
                if ( !is_null( $params['show'] ) ) {
                        $show = array_flip( $params['show'] );
 
                        /* Check for conflicting parameters. */
-                       if ( ( isset( $show['minor'] ) && isset( $show['!minor'] ) )
-                               || ( isset( $show['bot'] ) && isset( $show['!bot'] ) )
-                               || ( isset( $show['anon'] ) && isset( $show['!anon'] ) )
-                               || ( isset( $show['patrolled'] ) && isset( $show['!patrolled'] ) )
-                               || ( isset( $show['unread'] ) && isset( $show['!unread'] ) )
-                       ) {
+                       if ( $this->showParamsConflicting( $show ) ) {
                                $this->dieUsageMsg( 'show' );
                        }
 
                        // Check permissions.
-                       if ( isset( $show['patrolled'] ) || isset( $show['!patrolled'] ) ) {
+                       if ( isset( $show[WatchedItemQueryService::FILTER_PATROLLED] )
+                               || isset( $show[WatchedItemQueryService::FILTER_NOT_PATROLLED] )
+                       ) {
                                if ( !$user->useRCPatrol() && !$user->useNPPatrol() ) {
                                        $this->dieUsage(
                                                'You need the patrol right to request the patrolled flag',
@@ -183,25 +148,12 @@ class ApiQueryWatchlist extends ApiQueryGeneratorBase {
                                }
                        }
 
-                       /* Add additional conditions to query depending upon parameters. */
-                       $this->addWhereIf( 'rc_minor = 0', isset( $show['!minor'] ) );
-                       $this->addWhereIf( 'rc_minor != 0', isset( $show['minor'] ) );
-                       $this->addWhereIf( 'rc_bot = 0', isset( $show['!bot'] ) );
-                       $this->addWhereIf( 'rc_bot != 0', isset( $show['bot'] ) );
-                       $this->addWhereIf( 'rc_user = 0', isset( $show['anon'] ) );
-                       $this->addWhereIf( 'rc_user != 0', isset( $show['!anon'] ) );
-                       $this->addWhereIf( 'rc_patrolled = 0', isset( $show['!patrolled'] ) );
-                       $this->addWhereIf( 'rc_patrolled != 0', isset( $show['patrolled'] ) );
-                       $this->addWhereIf( 'rc_timestamp >= wl_notificationtimestamp', isset( $show['unread'] ) );
-                       $this->addWhereIf(
-                               'wl_notificationtimestamp IS NULL OR rc_timestamp < wl_notificationtimestamp',
-                               isset( $show['!unread'] )
-                       );
+                       $options['filters'] = array_keys( $show );
                }
 
                if ( !is_null( $params['type'] ) ) {
                        try {
-                               $this->addWhereFld( 'rc_type', RecentChange::parseToRCType( $params['type'] ) );
+                               $options['rcTypes'] = RecentChange::parseToRCType( $params['type'] );
                        } catch ( Exception $e ) {
                                ApiBase::dieDebug( __METHOD__, $e->getMessage() );
                        }
@@ -211,74 +163,46 @@ class ApiQueryWatchlist extends ApiQueryGeneratorBase {
                        $this->dieUsage( 'user and excludeuser cannot be used together', 'user-excludeuser' );
                }
                if ( !is_null( $params['user'] ) ) {
-                       $this->addWhereFld( 'rc_user_text', $params['user'] );
+                       $options['onlyByUser'] = $params['user'];
                }
                if ( !is_null( $params['excludeuser'] ) ) {
-                       $this->addWhere( 'rc_user_text != ' . $db->addQuotes( $params['excludeuser'] ) );
+                       $options['notByUser'] = $params['excludeuser'];
                }
 
-               // This is an index optimization for mysql, as done in the Special:Watchlist page
-               $this->addWhereIf(
-                       "rc_timestamp > ''",
-                       !isset( $params['start'] ) && !isset( $params['end'] ) && $db->getType() == 'mysql'
-               );
-
-               // Paranoia: avoid brute force searches (bug 17342)
-               if ( !is_null( $params['user'] ) || !is_null( $params['excludeuser'] ) ) {
-                       if ( !$user->isAllowed( 'deletedhistory' ) ) {
-                               $bitmask = Revision::DELETED_USER;
-                       } elseif ( !$user->isAllowedAny( 'suppressrevision', 'viewsuppressed' ) ) {
-                               $bitmask = Revision::DELETED_USER | Revision::DELETED_RESTRICTED;
-                       } else {
-                               $bitmask = 0;
-                       }
-                       if ( $bitmask ) {
-                               $this->addWhere( $this->getDB()->bitAnd( 'rc_deleted', $bitmask ) . " != $bitmask" );
-                       }
-               }
-
-               // LogPage::DELETED_ACTION hides the affected page, too. So hide those
-               // entirely from the watchlist, or someone could guess the title.
-               if ( !$user->isAllowed( 'deletedhistory' ) ) {
-                       $bitmask = LogPage::DELETED_ACTION;
-               } elseif ( !$user->isAllowedAny( 'suppressrevision', 'viewsuppressed' ) ) {
-                       $bitmask = LogPage::DELETED_ACTION | LogPage::DELETED_RESTRICTED;
-               } else {
-                       $bitmask = 0;
-               }
-               if ( $bitmask ) {
-                       $this->addWhere( $this->getDB()->makeList( [
-                               'rc_type != ' . RC_LOG,
-                               $this->getDB()->bitAnd( 'rc_deleted', $bitmask ) . " != $bitmask",
-                       ], LIST_OR ) );
-               }
-
-               $this->addOption( 'LIMIT', $params['limit'] + 1 );
+               $options['limit'] = $params['limit'] + 1;
 
                $ids = [];
                $count = 0;
-               $res = $this->select( __METHOD__ );
+               $watchedItemQuery = MediaWikiServices::getInstance()->getWatchedItemQueryService();
+               $items = $watchedItemQuery->getWatchedItemsWithRecentChangeInfo( $wlowner, $options );
 
-               foreach ( $res as $row ) {
+               foreach ( $items as list ( $watchedItem, $recentChangeInfo ) ) {
+                       /** @var WatchedItem $watchedItem */
                        if ( ++$count > $params['limit'] ) {
                                // We've reached the one extra which shows that there are
                                // additional pages to be had. Stop here...
-                               $this->setContinueEnumParameter( 'continue', "$row->rc_timestamp|$row->rc_id" );
+                               $this->setContinueEnumParameter(
+                                       'continue',
+                                       $recentChangeInfo['rc_timestamp'] . '|' . $recentChangeInfo['rc_id']
+                               );
                                break;
                        }
 
                        if ( is_null( $resultPageSet ) ) {
-                               $vals = $this->extractRowInfo( $row );
+                               $vals = $this->extractOutputData( $watchedItem, $recentChangeInfo );
                                $fit = $this->getResult()->addValue( [ 'query', $this->getModuleName() ], null, $vals );
                                if ( !$fit ) {
-                                       $this->setContinueEnumParameter( 'continue', "$row->rc_timestamp|$row->rc_id" );
+                                       $this->setContinueEnumParameter(
+                                               'continue',
+                                               $recentChangeInfo['rc_timestamp'] . '|' . $recentChangeInfo['rc_id']
+                                       );
                                        break;
                                }
                        } else {
                                if ( $params['allrev'] ) {
-                                       $ids[] = intval( $row->rc_this_oldid );
+                                       $ids[] = intval( $recentChangeInfo['rc_this_oldid'] );
                                } else {
-                                       $ids[] = intval( $row->rc_cur_id );
+                                       $ids[] = intval( $recentChangeInfo['rc_cur_id'] );
                                }
                        }
                }
@@ -295,56 +219,106 @@ class ApiQueryWatchlist extends ApiQueryGeneratorBase {
                }
        }
 
-       private function extractRowInfo( $row ) {
+       private function getFieldsToInclude() {
+               $includeFields = [];
+               if ( $this->fld_flags ) {
+                       $includeFields[] = WatchedItemQueryService::INCLUDE_FLAGS;
+               }
+               if ( $this->fld_user || $this->fld_userid ) {
+                       $includeFields[] = WatchedItemQueryService::INCLUDE_USER_ID;
+               }
+               if ( $this->fld_user ) {
+                       $includeFields[] = WatchedItemQueryService::INCLUDE_USER;
+               }
+               if ( $this->fld_comment || $this->fld_parsedcomment ) {
+                       $includeFields[] = WatchedItemQueryService::INCLUDE_COMMENT;
+               }
+               if ( $this->fld_patrol ) {
+                       $includeFields[] = WatchedItemQueryService::INCLUDE_PATROL_INFO;
+               }
+               if ( $this->fld_sizes ) {
+                       $includeFields[] = WatchedItemQueryService::INCLUDE_SIZES;
+               }
+               if ( $this->fld_loginfo ) {
+                       $includeFields[] = WatchedItemQueryService::INCLUDE_LOG_INFO;
+               }
+               return $includeFields;
+       }
+
+       private function showParamsConflicting( array $show ) {
+               return ( isset( $show[WatchedItemQueryService::FILTER_MINOR] )
+                       && isset( $show[WatchedItemQueryService::FILTER_NOT_MINOR] ) )
+               || ( isset( $show[WatchedItemQueryService::FILTER_BOT] )
+                       && isset( $show[WatchedItemQueryService::FILTER_NOT_BOT] ) )
+               || ( isset( $show[WatchedItemQueryService::FILTER_ANON] )
+                       && isset( $show[WatchedItemQueryService::FILTER_NOT_ANON] ) )
+               || ( isset( $show[WatchedItemQueryService::FILTER_PATROLLED] )
+                       && isset( $show[WatchedItemQueryService::FILTER_NOT_PATROLLED] ) )
+               || ( isset( $show[WatchedItemQueryService::FILTER_UNREAD] )
+                       && isset( $show[WatchedItemQueryService::FILTER_NOT_UNREAD] ) );
+       }
+
+       private function extractOutputData( WatchedItem $watchedItem, array $recentChangeInfo ) {
                /* Determine the title of the page that has been changed. */
-               $title = Title::makeTitle( $row->rc_namespace, $row->rc_title );
+               $title = Title::makeTitle(
+                       $watchedItem->getLinkTarget()->getNamespace(),
+                       $watchedItem->getLinkTarget()->getDBkey()
+               );
                $user = $this->getUser();
 
                /* Our output data. */
                $vals = [];
-               $type = intval( $row->rc_type );
+               $type = intval( $recentChangeInfo['rc_type'] );
                $vals['type'] = RecentChange::parseFromRCType( $type );
                $anyHidden = false;
 
                /* Create a new entry in the result for the title. */
                if ( $this->fld_title || $this->fld_ids ) {
                        // These should already have been filtered out of the query, but just in case.
-                       if ( $type === RC_LOG && ( $row->rc_deleted & LogPage::DELETED_ACTION ) ) {
+                       if ( $type === RC_LOG && ( $recentChangeInfo['rc_deleted'] & LogPage::DELETED_ACTION ) ) {
                                $vals['actionhidden'] = true;
                                $anyHidden = true;
                        }
                        if ( $type !== RC_LOG ||
-                               LogEventsList::userCanBitfield( $row->rc_deleted, LogPage::DELETED_ACTION, $user )
+                               LogEventsList::userCanBitfield(
+                                       $recentChangeInfo['rc_deleted'],
+                                       LogPage::DELETED_ACTION,
+                                       $user
+                               )
                        ) {
                                if ( $this->fld_title ) {
                                        ApiQueryBase::addTitleInfo( $vals, $title );
                                }
                                if ( $this->fld_ids ) {
-                                       $vals['pageid'] = intval( $row->rc_cur_id );
-                                       $vals['revid'] = intval( $row->rc_this_oldid );
-                                       $vals['old_revid'] = intval( $row->rc_last_oldid );
+                                       $vals['pageid'] = intval( $recentChangeInfo['rc_cur_id'] );
+                                       $vals['revid'] = intval( $recentChangeInfo['rc_this_oldid'] );
+                                       $vals['old_revid'] = intval( $recentChangeInfo['rc_last_oldid'] );
                                }
                        }
                }
 
                /* Add user data and 'anon' flag, if user is anonymous. */
                if ( $this->fld_user || $this->fld_userid ) {
-                       if ( $row->rc_deleted & Revision::DELETED_USER ) {
+                       if ( $recentChangeInfo['rc_deleted'] & Revision::DELETED_USER ) {
                                $vals['userhidden'] = true;
                                $anyHidden = true;
                        }
-                       if ( Revision::userCanBitfield( $row->rc_deleted, Revision::DELETED_USER, $user ) ) {
+                       if ( Revision::userCanBitfield(
+                               $recentChangeInfo['rc_deleted'],
+                               Revision::DELETED_USER,
+                               $user
+                       ) ) {
                                if ( $this->fld_userid ) {
-                                       $vals['userid'] = (int)$row->rc_user;
+                                       $vals['userid'] = (int)$recentChangeInfo['rc_user'];
                                        // for backwards compatibility
-                                       $vals['user'] = (int)$row->rc_user;
+                                       $vals['user'] = (int)$recentChangeInfo['rc_user'];
                                }
 
                                if ( $this->fld_user ) {
-                                       $vals['user'] = $row->rc_user_text;
+                                       $vals['user'] = $recentChangeInfo['rc_user_text'];
                                }
 
-                               if ( !$row->rc_user ) {
+                               if ( !$recentChangeInfo['rc_user'] ) {
                                        $vals['anon'] = true;
                                }
                        }
@@ -352,65 +326,73 @@ class ApiQueryWatchlist extends ApiQueryGeneratorBase {
 
                /* Add flags, such as new, minor, bot. */
                if ( $this->fld_flags ) {
-                       $vals['bot'] = (bool)$row->rc_bot;
-                       $vals['new'] = $row->rc_type == RC_NEW;
-                       $vals['minor'] = (bool)$row->rc_minor;
+                       $vals['bot'] = (bool)$recentChangeInfo['rc_bot'];
+                       $vals['new'] = $recentChangeInfo['rc_type'] == RC_NEW;
+                       $vals['minor'] = (bool)$recentChangeInfo['rc_minor'];
                }
 
                /* Add sizes of each revision. (Only available on 1.10+) */
                if ( $this->fld_sizes ) {
-                       $vals['oldlen'] = intval( $row->rc_old_len );
-                       $vals['newlen'] = intval( $row->rc_new_len );
+                       $vals['oldlen'] = intval( $recentChangeInfo['rc_old_len'] );
+                       $vals['newlen'] = intval( $recentChangeInfo['rc_new_len'] );
                }
 
                /* Add the timestamp. */
                if ( $this->fld_timestamp ) {
-                       $vals['timestamp'] = wfTimestamp( TS_ISO_8601, $row->rc_timestamp );
+                       $vals['timestamp'] = wfTimestamp( TS_ISO_8601, $recentChangeInfo['rc_timestamp'] );
                }
 
                if ( $this->fld_notificationtimestamp ) {
-                       $vals['notificationtimestamp'] = ( $row->wl_notificationtimestamp == null )
+                       $vals['notificationtimestamp'] = ( $watchedItem->getNotificationTimestamp() == null )
                                ? ''
-                               : wfTimestamp( TS_ISO_8601, $row->wl_notificationtimestamp );
+                               : wfTimestamp( TS_ISO_8601, $watchedItem->getNotificationTimestamp() );
                }
 
                /* Add edit summary / log summary. */
                if ( $this->fld_comment || $this->fld_parsedcomment ) {
-                       if ( $row->rc_deleted & Revision::DELETED_COMMENT ) {
+                       if ( $recentChangeInfo['rc_deleted'] & Revision::DELETED_COMMENT ) {
                                $vals['commenthidden'] = true;
                                $anyHidden = true;
                        }
-                       if ( Revision::userCanBitfield( $row->rc_deleted, Revision::DELETED_COMMENT, $user ) ) {
-                               if ( $this->fld_comment && isset( $row->rc_comment ) ) {
-                                       $vals['comment'] = $row->rc_comment;
+                       if ( Revision::userCanBitfield(
+                               $recentChangeInfo['rc_deleted'],
+                               Revision::DELETED_COMMENT,
+                               $user
+                       ) ) {
+                               if ( $this->fld_comment && isset( $recentChangeInfo['rc_comment'] ) ) {
+                                       $vals['comment'] = $recentChangeInfo['rc_comment'];
                                }
 
-                               if ( $this->fld_parsedcomment && isset( $row->rc_comment ) ) {
-                                       $vals['parsedcomment'] = Linker::formatComment( $row->rc_comment, $title );
+                               if ( $this->fld_parsedcomment && isset( $recentChangeInfo['rc_comment'] ) ) {
+                                       $vals['parsedcomment'] = Linker::formatComment( $recentChangeInfo['rc_comment'], $title );
                                }
                        }
                }
 
                /* Add the patrolled flag */
                if ( $this->fld_patrol ) {
-                       $vals['patrolled'] = $row->rc_patrolled == 1;
-                       $vals['unpatrolled'] = ChangesList::isUnpatrolled( $row, $user );
+                       $vals['patrolled'] = $recentChangeInfo['rc_patrolled'] == 1;
+                       $vals['unpatrolled'] = ChangesList::isUnpatrolled( (object)$recentChangeInfo, $user );
                }
 
-               if ( $this->fld_loginfo && $row->rc_type == RC_LOG ) {
-                       if ( $row->rc_deleted & LogPage::DELETED_ACTION ) {
+               if ( $this->fld_loginfo && $recentChangeInfo['rc_type'] == RC_LOG ) {
+                       if ( $recentChangeInfo['rc_deleted'] & LogPage::DELETED_ACTION ) {
                                $vals['actionhidden'] = true;
                                $anyHidden = true;
                        }
-                       if ( LogEventsList::userCanBitfield( $row->rc_deleted, LogPage::DELETED_ACTION, $user ) ) {
-                               $vals['logid'] = intval( $row->rc_logid );
-                               $vals['logtype'] = $row->rc_log_type;
-                               $vals['logaction'] = $row->rc_log_action;
-                               $vals['logparams'] = LogFormatter::newFromRow( $row )->formatParametersForApi();
+                       if ( LogEventsList::userCanBitfield(
+                               $recentChangeInfo['rc_deleted'],
+                               LogPage::DELETED_ACTION,
+                               $user
+                       ) ) {
+                               $vals['logid'] = intval( $recentChangeInfo['rc_logid'] );
+                               $vals['logtype'] = $recentChangeInfo['rc_log_type'];
+                               $vals['logaction'] = $recentChangeInfo['rc_log_action'];
+                               $vals['logparams'] = LogFormatter::newFromRow( $recentChangeInfo )->formatParametersForApi();
                        }
                }
 
-               if ( $anyHidden && ( $row->rc_deleted & Revision::DELETED_RESTRICTED ) ) {
+               if ( $anyHidden && ( $recentChangeInfo['rc_deleted'] & Revision::DELETED_RESTRICTED ) ) {
                        $vals['suppressed'] = true;
                }
 
@@ -473,16 +455,16 @@ class ApiQueryWatchlist extends ApiQueryGeneratorBase {
                        'show' => [
                                ApiBase::PARAM_ISMULTI => true,
                                ApiBase::PARAM_TYPE => [
-                                       'minor',
-                                       '!minor',
-                                       'bot',
-                                       '!bot',
-                                       'anon',
-                                       '!anon',
-                                       'patrolled',
-                                       '!patrolled',
-                                       'unread',
-                                       '!unread',
+                                       WatchedItemQueryService::FILTER_MINOR,
+                                       WatchedItemQueryService::FILTER_NOT_MINOR,
+                                       WatchedItemQueryService::FILTER_BOT,
+                                       WatchedItemQueryService::FILTER_NOT_BOT,
+                                       WatchedItemQueryService::FILTER_ANON,
+                                       WatchedItemQueryService::FILTER_NOT_ANON,
+                                       WatchedItemQueryService::FILTER_PATROLLED,
+                                       WatchedItemQueryService::FILTER_NOT_PATROLLED,
+                                       WatchedItemQueryService::FILTER_UNREAD,
+                                       WatchedItemQueryService::FILTER_NOT_UNREAD,
                                ]
                        ],
                        'type' => [
index 742f8f5..806861e 100644 (file)
@@ -24,6 +24,8 @@
  * @file
  */
 
+use MediaWiki\MediaWikiServices;
+
 /**
  * This query action allows clients to retrieve a list of pages
  * on the logged-in user's watchlist.
@@ -49,95 +51,78 @@ class ApiQueryWatchlistRaw extends ApiQueryGeneratorBase {
         * @return void
         */
        private function run( $resultPageSet = null ) {
-               $this->selectNamedDB( 'watchlist', DB_SLAVE, 'watchlist' );
-
                $params = $this->extractRequestParams();
 
                $user = $this->getWatchlistUser( $params );
 
                $prop = array_flip( (array)$params['prop'] );
                $show = array_flip( (array)$params['show'] );
-               if ( isset( $show['changed'] ) && isset( $show['!changed'] ) ) {
+               if ( isset( $show[WatchedItemQueryService::FILTER_CHANGED] )
+                       && isset( $show[WatchedItemQueryService::FILTER_NOT_CHANGED] )
+               ) {
                        $this->dieUsageMsg( 'show' );
                }
 
-               $this->addTables( 'watchlist' );
-               $this->addFields( [ 'wl_namespace', 'wl_title' ] );
-               $this->addFieldsIf( 'wl_notificationtimestamp', isset( $prop['changed'] ) );
-               $this->addWhereFld( 'wl_user', $user->getId() );
-               $this->addWhereFld( 'wl_namespace', $params['namespace'] );
-               $this->addWhereIf( 'wl_notificationtimestamp IS NOT NULL', isset( $show['changed'] ) );
-               $this->addWhereIf( 'wl_notificationtimestamp IS NULL', isset( $show['!changed'] ) );
+               $options = [];
+               if ( $params['namespace'] ) {
+                       $options['namespaceIds'] = $params['namespace'];
+               }
+               if ( isset( $show[WatchedItemQueryService::FILTER_CHANGED] ) ) {
+                       $options['filter'] = WatchedItemQueryService::FILTER_CHANGED;
+               }
+               if ( isset( $show[WatchedItemQueryService::FILTER_NOT_CHANGED] ) ) {
+                       $options['filter'] = WatchedItemQueryService::FILTER_NOT_CHANGED;
+               }
 
                if ( isset( $params['continue'] ) ) {
                        $cont = explode( '|', $params['continue'] );
                        $this->dieContinueUsageIf( count( $cont ) != 2 );
                        $ns = intval( $cont[0] );
                        $this->dieContinueUsageIf( strval( $ns ) !== $cont[0] );
-                       $title = $this->getDB()->addQuotes( $cont[1] );
-                       $op = $params['dir'] == 'ascending' ? '>' : '<';
-                       $this->addWhere(
-                               "wl_namespace $op $ns OR " .
-                               "(wl_namespace = $ns AND " .
-                               "wl_title $op= $title)"
-                       );
+                       $title = $cont[1];
+                       $options['startFrom'] = new TitleValue( $ns, $title );
                }
 
                if ( isset( $params['fromtitle'] ) ) {
                        list( $ns, $title ) = $this->prefixedTitlePartToKey( $params['fromtitle'] );
-                       $title = $this->getDB()->addQuotes( $title );
-                       $op = $params['dir'] == 'ascending' ? '>' : '<';
-                       $this->addWhere(
-                               "wl_namespace $op $ns OR " .
-                               "(wl_namespace = $ns AND " .
-                               "wl_title $op= $title)"
-                       );
+                       $options['from'] = new TitleValue( $ns, $title );
                }
 
                if ( isset( $params['totitle'] ) ) {
                        list( $ns, $title ) = $this->prefixedTitlePartToKey( $params['totitle'] );
-                       $title = $this->getDB()->addQuotes( $title );
-                       $op = $params['dir'] == 'ascending' ? '<' : '>'; // Reversed from above!
-                       $this->addWhere(
-                               "wl_namespace $op $ns OR " .
-                               "(wl_namespace = $ns AND " .
-                               "wl_title $op= $title)"
-                       );
+                       $options['until'] = new TitleValue( $ns, $title );
                }
 
-               $sort = ( $params['dir'] == 'descending' ? ' DESC' : '' );
-               // Don't ORDER BY wl_namespace if it's constant in the WHERE clause
-               if ( count( $params['namespace'] ) == 1 ) {
-                       $this->addOption( 'ORDER BY', 'wl_title' . $sort );
-               } else {
-                       $this->addOption( 'ORDER BY', [
-                               'wl_namespace' . $sort,
-                               'wl_title' . $sort
-                       ] );
+               $options['sort'] = WatchedItemStore::SORT_ASC;
+               if ( $params['dir'] === 'descending' ) {
+                       $options['sort'] = WatchedItemStore::SORT_DESC;
                }
-               $this->addOption( 'LIMIT', $params['limit'] + 1 );
-               $res = $this->select( __METHOD__ );
+               $options['limit'] = $params['limit'] + 1;
 
                $titles = [];
                $count = 0;
-               foreach ( $res as $row ) {
+               $items = MediaWikiServices::getInstance()->getWatchedItemQueryService()
+                       ->getWatchedItemsForUser( $user, $options );
+               foreach ( $items as $item ) {
+                       $ns = $item->getLinkTarget()->getNamespace();
+                       $dbKey = $item->getLinkTarget()->getDBkey();
                        if ( ++$count > $params['limit'] ) {
                                // We've reached the one extra which shows that there are
                                // additional pages to be had. Stop here...
-                               $this->setContinueEnumParameter( 'continue', $row->wl_namespace . '|' . $row->wl_title );
+                               $this->setContinueEnumParameter( 'continue', $ns . '|' . $dbKey );
                                break;
                        }
-                       $t = Title::makeTitle( $row->wl_namespace, $row->wl_title );
+                       $t = Title::makeTitle( $ns, $dbKey );
 
                        if ( is_null( $resultPageSet ) ) {
                                $vals = [];
                                ApiQueryBase::addTitleInfo( $vals, $t );
-                               if ( isset( $prop['changed'] ) && !is_null( $row->wl_notificationtimestamp ) ) {
-                                       $vals['changed'] = wfTimestamp( TS_ISO_8601, $row->wl_notificationtimestamp );
+                               if ( isset( $prop['changed'] ) && !is_null( $item->getNotificationTimestamp() ) ) {
+                                       $vals['changed'] = wfTimestamp( TS_ISO_8601, $item->getNotificationTimestamp() );
                                }
                                $fit = $this->getResult()->addValue( $this->getModuleName(), null, $vals );
                                if ( !$fit ) {
-                                       $this->setContinueEnumParameter( 'continue', $row->wl_namespace . '|' . $row->wl_title );
+                                       $this->setContinueEnumParameter( 'continue', $ns . '|' . $dbKey );
                                        break;
                                }
                        } else {
@@ -177,8 +162,8 @@ class ApiQueryWatchlistRaw extends ApiQueryGeneratorBase {
                        'show' => [
                                ApiBase::PARAM_ISMULTI => true,
                                ApiBase::PARAM_TYPE => [
-                                       'changed',
-                                       '!changed',
+                                       WatchedItemQueryService::FILTER_CHANGED,
+                                       WatchedItemQueryService::FILTER_NOT_CHANGED
                                ]
                        ],
                        'owner' => [
@@ -193,7 +178,6 @@ class ApiQueryWatchlistRaw extends ApiQueryGeneratorBase {
                                        'ascending',
                                        'descending'
                                ],
-                               ApiBase::PARAM_HELP_MSG => 'api-help-param-direction',
                        ],
                        'fromtitle' => [
                                ApiBase::PARAM_TYPE => 'string'
index 30e40fb..d72c8a4 100644 (file)
@@ -73,6 +73,7 @@ class ApiRemoveAuthenticationData extends ApiBase {
 
                // Perform the removal
                $status = $manager->allowsAuthenticationDataChange( $req, true );
+               Hooks::run( 'ChangeAuthenticationDataAudit', [ $req, $status ] );
                if ( !$status->isGood() ) {
                        $this->dieStatus( $status );
                }
index e739e51..446a98c 100644 (file)
@@ -41,6 +41,7 @@ class ApiStashEdit extends ApiBase {
        const ERROR_UNCACHEABLE = 'uncacheable';
 
        const PRESUME_FRESH_TTL_SEC = 30;
+       const MAX_CACHE_TTL = 300; // 5 minutes
 
        public function execute() {
                $user = $this->getUser();
@@ -121,7 +122,7 @@ class ApiStashEdit extends ApiBase {
                if ( $user->pingLimiter( 'stashedit' ) ) {
                        $status = 'ratelimited';
                } elseif ( $dbw->lock( $key, __METHOD__, 1 ) ) {
-                       $status = self::parseAndStash( $page, $content, $user );
+                       $status = self::parseAndStash( $page, $content, $user, $params['summary'] );
                        $dbw->unlock( $key, __METHOD__ );
                } else {
                        $status = 'busy';
@@ -134,25 +135,28 @@ class ApiStashEdit extends ApiBase {
 
        /**
         * @param WikiPage $page
-        * @param Content $content
+        * @param Content $content Edit content
         * @param User $user
+        * @param string $summary Edit summary
         * @return integer ApiStashEdit::ERROR_* constant
         * @since 1.25
         */
-       public static function parseAndStash( WikiPage $page, Content $content, User $user ) {
+       public static function parseAndStash( WikiPage $page, Content $content, User $user, $summary ) {
                $cache = ObjectCache::getLocalClusterInstance();
                $logger = LoggerFactory::getInstance( 'StashEdit' );
 
                $format = $content->getDefaultFormat();
                $editInfo = $page->prepareContentForEdit( $content, null, $user, $format, false );
+               $title = $page->getTitle();
 
                if ( $editInfo && $editInfo->output ) {
-                       $key = self::getStashKey( $page->getTitle(), $content, $user );
+                       $key = self::getStashKey( $title, $content, $user );
 
                        // Let extensions add ParserOutput metadata or warm other caches
-                       Hooks::run( 'ParserOutputStashForEdit', [ $page, $content, $editInfo->output ] );
+                       Hooks::run( 'ParserOutputStashForEdit',
+                               [ $page, $content, $editInfo->output, $summary, $user ] );
 
-                       list( $stashInfo, $ttl ) = self::buildStashValue(
+                       list( $stashInfo, $ttl, $code ) = self::buildStashValue(
                                $editInfo->pstContent,
                                $editInfo->output,
                                $editInfo->timestamp,
@@ -162,14 +166,14 @@ class ApiStashEdit extends ApiBase {
                        if ( $stashInfo ) {
                                $ok = $cache->set( $key, $stashInfo, $ttl );
                                if ( $ok ) {
-                                       $logger->debug( "Cached parser output for key '$key'." );
+                                       $logger->debug( "Cached parser output for key '$key' ('$title')." );
                                        return self::ERROR_NONE;
                                } else {
-                                       $logger->error( "Failed to cache parser output for key '$key'." );
+                                       $logger->error( "Failed to cache parser output for key '$key' ('$title')." );
                                        return self::ERROR_CACHE;
                                }
                        } else {
-                               $logger->info( "Uncacheable parser output for key '$key'." );
+                               $logger->info( "Uncacheable parser output for key '$key' ('$title') [$code]." );
                                return self::ERROR_UNCACHEABLE;
                        }
                }
@@ -177,76 +181,6 @@ class ApiStashEdit extends ApiBase {
                return self::ERROR_PARSE;
        }
 
-       /**
-        * Attempt to cache PST content and corresponding parser output in passing
-        *
-        * This method can be called when the output was already generated for other
-        * reasons. Parsing should not be done just to call this method, however.
-        * $pstOpts must be that of the user doing the edit preview. If $pOpts does
-        * not match the options of WikiPage::makeParserOptions( 'canonical' ), this
-        * will do nothing. Provided the values are cacheable, they will be stored
-        * in memcached so that final edit submission might make use of them.
-        *
-        * @param Page|Article|WikiPage $page Page title
-        * @param Content $content Proposed page content
-        * @param Content $pstContent The result of preSaveTransform() on $content
-        * @param ParserOutput $pOut The result of getParserOutput() on $pstContent
-        * @param ParserOptions $pstOpts Options for $pstContent (MUST be for prospective author)
-        * @param ParserOptions $pOpts Options for $pOut
-        * @param string $timestamp TS_MW timestamp of parser output generation
-        * @return bool Success
-        */
-       public static function stashEditFromPreview(
-               Page $page, Content $content, Content $pstContent, ParserOutput $pOut,
-               ParserOptions $pstOpts, ParserOptions $pOpts, $timestamp
-       ) {
-               $cache = ObjectCache::getLocalClusterInstance();
-               $logger = LoggerFactory::getInstance( 'StashEdit' );
-
-               // getIsPreview() controls parser function behavior that references things
-               // like user/revision that don't exists yet. The user/text should already
-               // be set correctly by callers, just double check the preview flag.
-               if ( !$pOpts->getIsPreview() ) {
-                       return false; // sanity
-               } elseif ( $pOpts->getIsSectionPreview() ) {
-                       return false; // short-circuit (need the full content)
-               }
-
-               // PST parser options are for the user (handles signatures, etc...)
-               $user = $pstOpts->getUser();
-               // Get a key based on the source text, format, and user preferences
-               $key = self::getStashKey( $page->getTitle(), $content, $user );
-
-               // Parser output options must match cannonical options.
-               // Treat some options as matching that are different but don't matter.
-               $canonicalPOpts = $page->makeParserOptions( 'canonical' );
-               $canonicalPOpts->setIsPreview( true ); // force match
-               $canonicalPOpts->setTimestamp( $pOpts->getTimestamp() ); // force match
-               if ( !$pOpts->matches( $canonicalPOpts ) ) {
-                       $logger->info( "Uncacheable preview output for key '$key' (options)." );
-                       return false;
-               }
-
-               // Set the time the output was generated
-               $pOut->setCacheTime( wfTimestampNow() );
-
-               // Build a value to cache with a proper TTL
-               list( $stashInfo, $ttl ) = self::buildStashValue( $pstContent, $pOut, $timestamp, $user );
-               if ( !$stashInfo ) {
-                       $logger->info( "Uncacheable parser output for key '$key' (rev/TTL)." );
-                       return false;
-               }
-
-               $ok = $cache->set( $key, $stashInfo, $ttl );
-               if ( !$ok ) {
-                       $logger->error( "Failed to cache preview parser output for key '$key'." );
-               } else {
-                       $logger->debug( "Cached preview output for key '$key'." );
-               }
-
-               return $ok;
-       }
-
        /**
         * Check that a prepared edit is in cache and still up-to-date
         *
@@ -294,86 +228,42 @@ class ApiStashEdit extends ApiBase {
 
                if ( !is_object( $editInfo ) || !$editInfo->output ) {
                        $stats->increment( 'editstash.cache_misses.no_stash' );
-                       $logger->debug( "No cache value for key '$key'." );
+                       $logger->debug( "Empty cache for key '$key' ('$title'); user '{$user->getName()}'." );
                        return false;
                }
 
                $age = time() - wfTimestamp( TS_UNIX, $editInfo->output->getCacheTime() );
                if ( $age <= self::PRESUME_FRESH_TTL_SEC ) {
+                       // Assume nothing changed in this time
                        $stats->increment( 'editstash.cache_hits.presumed_fresh' );
                        $logger->debug( "Timestamp-based cache hit for key '$key' (age: $age sec)." );
-                       return $editInfo; // assume nothing changed
                } elseif ( isset( $editInfo->edits ) && $editInfo->edits === $user->getEditCount() ) {
                        // Logged-in user made no local upload/template edits in the meantime
                        $stats->increment( 'editstash.cache_hits.presumed_fresh' );
                        $logger->debug( "Edit count based cache hit for key '$key' (age: $age sec)." );
-                       return $editInfo;
                } elseif ( $user->isAnon()
                        && self::lastEditTime( $user ) < $editInfo->output->getCacheTime()
                ) {
                        // Logged-out user made no local upload/template edits in the meantime
                        $stats->increment( 'editstash.cache_hits.presumed_fresh' );
                        $logger->debug( "Edit check based cache hit for key '$key' (age: $age sec)." );
-                       return $editInfo;
-               }
-
-               $dbr = wfGetDB( DB_SLAVE );
-
-               $templates = []; // conditions to find changes/creations
-               $templateUses = 0; // expected existing templates
-               foreach ( $editInfo->output->getTemplateIds() as $ns => $stuff ) {
-                       foreach ( $stuff as $dbkey => $revId ) {
-                               $templates[(string)$ns][$dbkey] = (int)$revId;
-                               ++$templateUses;
-                       }
-               }
-               // Check that no templates used in the output changed...
-               if ( count( $templates ) ) {
-                       $res = $dbr->select(
-                               'page',
-                               [ 'ns' => 'page_namespace', 'dbk' => 'page_title', 'page_latest' ],
-                               $dbr->makeWhereFrom2d( $templates, 'page_namespace', 'page_title' ),
-                               __METHOD__
-                       );
-                       $changed = false;
-                       foreach ( $res as $row ) {
-                               $changed = $changed || ( $row->page_latest != $templates[$row->ns][$row->dbk] );
-                       }
-
-                       if ( $changed || $res->numRows() != $templateUses ) {
-                               $stats->increment( 'editstash.cache_misses.proven_stale' );
-                               $logger->info( "Stale cache for key '$key'; template changed. (age: $age sec)" );
-                               return false;
-                       }
-               }
-
-               $files = []; // conditions to find changes/creations
-               foreach ( $editInfo->output->getFileSearchOptions() as $name => $options ) {
-                       $files[$name] = (string)$options['sha1'];
+               } else {
+                       // User may have changed included content
+                       $editInfo = false;
                }
-               // Check that no files used in the output changed...
-               if ( count( $files ) ) {
-                       $res = $dbr->select(
-                               'image',
-                               [ 'name' => 'img_name', 'img_sha1' ],
-                               [ 'img_name' => array_keys( $files ) ],
-                               __METHOD__
-                       );
-                       $changed = false;
-                       foreach ( $res as $row ) {
-                               $changed = $changed || ( $row->img_sha1 != $files[$row->name] );
-                       }
 
-                       if ( $changed || $res->numRows() != count( $files ) ) {
-                               $stats->increment( 'editstash.cache_misses.proven_stale' );
-                               $logger->info( "Stale cache for key '$key'; file changed. (age: $age sec)" );
-                               return false;
-                       }
+               if ( !$editInfo ) {
+                       $stats->increment( 'editstash.cache_misses.proven_stale' );
+                       $logger->info( "Stale cache for key '$key'; old key with outside edits. (age: $age sec)" );
+               } elseif ( $editInfo->output->getFlag( 'vary-revision' ) ) {
+                       // This can be used for the initial parse, e.g. for filters or doEditContent(),
+                       // but a second parse will be triggered in doEditUpdates(). This is not optimal.
+                       $logger->info( "Cache for key '$key' ('$title') has vary_revision." );
+               } elseif ( $editInfo->output->getFlag( 'vary-revision-id' ) ) {
+                       // Similar to the above if we didn't guess the ID correctly.
+                       $logger->info( "Cache for key '$key' ('$title') has vary_revision_id." );
                }
 
-               $stats->increment( 'editstash.cache_hits.proven_fresh' );
-               $logger->debug( "Verified cache hit for key '$key' (age: $age sec)." );
-
                return $editInfo;
        }
 
@@ -406,11 +296,13 @@ class ApiStashEdit extends ApiBase {
         */
        private static function getStashKey( Title $title, Content $content, User $user ) {
                $hash = sha1( implode( ':', [
+                       // Account for the edit model/text
                        $content->getModel(),
                        $content->getDefaultFormat(),
                        sha1( $content->serialize( $content->getDefaultFormat() ) ),
-                       $user->getId() ?: md5( $user->getName() ), // account for user parser options
-                       $user->getId() ? $user->getDBTouched() : '-' // handle preference change races
+                       // Account for user name related variables like signatures
+                       $user->getId(),
+                       md5( $user->getName() )
                ] ) );
 
                return wfMemcKey( 'prepared-edit', md5( $title->getPrefixedDBkey() ), $hash );
@@ -425,7 +317,7 @@ class ApiStashEdit extends ApiBase {
         * @param ParserOutput $parserOutput
         * @param string $timestamp TS_MW
         * @param User $user
-        * @return array (stash info array, TTL in seconds) or (null, 0)
+        * @return array (stash info array, TTL in seconds, info code) or (null, 0, info code)
         */
        private static function buildStashValue(
                Content $pstContent, ParserOutput $parserOutput, $timestamp, User $user
@@ -433,20 +325,20 @@ class ApiStashEdit extends ApiBase {
                // If an item is renewed, mind the cache TTL determined by config and parser functions.
                // Put an upper limit on the TTL for sanity to avoid extreme template/file staleness.
                $since = time() - wfTimestamp( TS_UNIX, $parserOutput->getTimestamp() );
-               $ttl = min( $parserOutput->getCacheExpiry() - $since, 5 * 60 );
-
-               if ( $ttl > 0 && !$parserOutput->getFlag( 'vary-revision' ) ) {
-                       // Only store what is actually needed
-                       $stashInfo = (object)[
-                               'pstContent' => $pstContent,
-                               'output'     => $parserOutput,
-                               'timestamp'  => $timestamp,
-                               'edits'      => $user->getEditCount()
-                       ];
-                       return [ $stashInfo, $ttl ];
+               $ttl = min( $parserOutput->getCacheExpiry() - $since, self::MAX_CACHE_TTL );
+               if ( $ttl <= 0 ) {
+                       return [ null, 0, 'no_ttl' ];
                }
 
-               return [ null, 0 ];
+               // Only store what is actually needed
+               $stashInfo = (object)[
+                       'pstContent' => $pstContent,
+                       'output'     => $parserOutput,
+                       'timestamp'  => $timestamp,
+                       'edits'      => $user->getEditCount()
+               ];
+
+               return [ $stashInfo, $ttl, 'ok' ];
        }
 
        public function getAllowedParams() {
@@ -465,6 +357,9 @@ class ApiStashEdit extends ApiBase {
                                ApiBase::PARAM_TYPE => 'text',
                                ApiBase::PARAM_REQUIRED => true
                        ],
+                       'summary' => [
+                               ApiBase::PARAM_TYPE => 'string',
+                       ],
                        'contentmodel' => [
                                ApiBase::PARAM_TYPE => ContentHandler::getContentModels(),
                                ApiBase::PARAM_REQUIRED => true
index 0a79aa4..95659e5 100644 (file)
@@ -347,12 +347,13 @@ class ApiUpload extends ApiBase {
         * Throw an error that the user can recover from by providing a better
         * value for $parameter
         *
-        * @param array $error Error array suitable for passing to dieUsageMsg()
+        * @param array|string|MessageSpecifier $error Error suitable for passing to dieUsageMsg()
         * @param string $parameter Parameter that needs revising
         * @param array $data Optional extra data to pass to the user
+        * @param string $code Error code to use if the error is unknown
         * @throws UsageException
         */
-       private function dieRecoverableError( $error, $parameter, $data = [] ) {
+       private function dieRecoverableError( $error, $parameter, $data = [], $code = 'unknownerror' ) {
                try {
                        $data['filekey'] = $this->performStash();
                        $data['sessionkey'] = $data['filekey'];
@@ -365,6 +366,9 @@ class ApiUpload extends ApiBase {
                if ( isset( $parsed['data'] ) ) {
                        $data = array_merge( $data, $parsed['data'] );
                }
+               if ( $parsed['code'] === 'unknownerror' ) {
+                       $parsed['code'] = $code;
+               }
 
                $this->dieUsage( $parsed['info'], $parsed['code'], 0, $data );
        }
@@ -563,12 +567,28 @@ class ApiUpload extends ApiBase {
                                $this->dieUsage( $msg, 'filetype-banned', 0, $extradata );
                                break;
                        case UploadBase::VERIFICATION_ERROR:
-                               $params = $verification['details'];
-                               $key = array_shift( $params );
-                               $msg = $this->msg( $key, $params )->inLanguage( 'en' )->useDatabase( false )->text();
-                               ApiResult::setIndexedTagName( $verification['details'], 'detail' );
-                               $this->dieUsage( "This file did not pass file verification: $msg", 'verification-error',
-                                       0, [ 'details' => $verification['details'] ] );
+                               $parsed = $this->parseMsg( $verification['details'] );
+                               $info = "This file did not pass file verification: {$parsed['info']}";
+                               if ( $verification['details'][0] instanceof IApiMessage ) {
+                                       $code = $parsed['code'];
+                               } else {
+                                       // For backwards-compatibility, all of the errors from UploadBase::verifyFile() are
+                                       // reported as 'verification-error', and the real error code is reported in 'details'.
+                                       $code = 'verification-error';
+                               }
+                               if ( $verification['details'][0] instanceof IApiMessage ) {
+                                       $msg = $verification['details'][0];
+                                       $details = array_merge( [ $msg->getKey() ], $msg->getParams() );
+                               } else {
+                                       $details = $verification['details'];
+                               }
+                               ApiResult::setIndexedTagName( $details, 'detail' );
+                               $data = [ 'details' => $details ];
+                               if ( isset( $parsed['data'] ) ) {
+                                       $data = array_merge( $data, $parsed['data'] );
+                               }
+
+                               $this->dieUsage( $info, $code, 0, $data );
                                break;
                        case UploadBase::HOOK_ABORTED:
                                if ( is_array( $verification['error'] ) ) {
@@ -754,9 +774,14 @@ class ApiUpload extends ApiBase {
                                $this->mParams['text'], $watch, $this->getUser(), $this->mParams['tags'] );
 
                        if ( !$status->isGood() ) {
-                               $error = $status->getErrorsArray();
-                               ApiResult::setIndexedTagName( $error, 'error' );
-                               $this->dieUsage( 'An internal error occurred', 'internal-error', 0, $error );
+                               // Is there really no better way to do this?
+                               $errors = $status->getErrorsByType( 'error' );
+                               $msg = array_merge( [ $errors[0]['message'] ], $errors[0]['params'] );
+                               $data = $status->getErrorsArray();
+                               ApiResult::setIndexedTagName( $data, 'error' );
+                               // For backwards-compatibility, we use the 'internal-error' fallback key and merge $data
+                               // into the root of the response (rather than something sane like [ 'details' => $data ]).
+                               $this->dieRecoverableError( $msg, null, $data, 'internal-error' );
                        }
                        $result['result'] = 'Success';
                }
diff --git a/includes/api/SearchApi.php b/includes/api/SearchApi.php
new file mode 100644 (file)
index 0000000..139793d
--- /dev/null
@@ -0,0 +1,116 @@
+<?php
+use MediaWiki\MediaWikiServices;
+
+/**
+ * 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
+ * @since 1.28
+ */
+
+/**
+ * Traits for API components that use a SearchEngine.
+ * @ingroup API
+ */
+trait SearchApi {
+       /**
+        * Build the profile api param definitions.
+        *
+        * @param string $profileType type of profile to customize
+        * @param string $helpMsg i18n message
+        * @param string|null $backendType SearchEngine backend type or null for default engine
+        * @return array|null the api param definition or null if profiles are
+        * not supported by the searchEngine implementation.
+        */
+       public function buildProfileApiParam( $profileType, $helpMsg, $backendType = null ) {
+               $searchEngine = null;
+               if ( $backendType !== null ) {
+                       $searchEngine = MediaWikiServices::getInstance()
+                               ->getSearchEngineFactory()->create( $backendType );
+               } else {
+                       $searchEngine = MediaWikiServices::getInstance()->newSearchEngine();
+               }
+
+               $profiles = $searchEngine->getProfiles( $profileType );
+               if ( $profiles ) {
+                       $types = [];
+                       $helpMessages = [];
+                       $defaultProfile = null;
+                       foreach ( $profiles as $profile ) {
+                               $types[] = $profile['name'];
+                               if ( isset ( $profile['desc-message'] ) ) {
+                                       $helpMessages[$profile['name']] = $profile['desc-message'];
+                               }
+                               if ( !empty( $profile['default'] ) ) {
+                                       $defaultProfile = $profile['name'];
+                               }
+                       }
+                       return [
+                               ApiBase::PARAM_TYPE => $types,
+                               ApiBase::PARAM_HELP_MSG => $helpMsg,
+                               ApiBase::PARAM_HELP_MSG_PER_VALUE => $helpMessages,
+                               ApiBase::PARAM_DFLT => $defaultProfile,
+                       ];
+               }
+               return null;
+       }
+
+       /**
+        * Build the search engine to use.
+        * If $params is provided then the following searchEngine options
+        * will be set:
+        *  - limit: mandatory
+        *  - offset: optional, if set limit will be incremented by
+        *    one ( to support the continue parameter )
+        *  - namespace: mandatory
+        *  - search engine profiles defined by SearchApi::getSearchProfileParams()
+        * @param string[]|null API request params (must be sanitized by
+        * ApiBase::extractRequestParams() before)
+        * @return SearchEngine the search engine
+        */
+       public function buildSearchEngine( array $params = null ) {
+               if ( $params != null ) {
+                       $type = isset( $params['backend'] ) ? $params['backend'] : null;
+                       $searchEngine = MediaWikiServices::getInstance()->getSearchEngineFactory()->create( $type );
+                       $limit = $params['limit'];
+                       $searchEngine->setNamespaces( $params['namespace'] );
+                       $offset = null;
+                       if ( isset( $params['offset'] ) ) {
+                               // If the API supports offset then it probably
+                               // wants to fetch limit+1 so it can check if
+                               // more results are available to properly set
+                               // the continue param
+                               $offset = $params['offset'];
+                               $limit += 1;
+                       }
+                       $searchEngine->setLimitOffset( $limit, $offset );
+                       foreach ( $this->getSearchProfileParams() as $type => $param ) {
+                               if ( isset( $params[$param] ) ) {
+                                       $searchEngine->setFeatureData( $type, $params[$param] );
+                               }
+                       }
+               } else {
+                       $searchEngine = MediaWikiServices::getInstance()->newSearchEngine();
+               }
+               return $searchEngine;
+       }
+
+       /**
+        * @return string[] the list of supported search profile types. Key is
+        * the profile type and its associated value is the request param.
+        */
+       abstract public function getSearchProfileParams();
+}
diff --git a/includes/api/i18n/azb.json b/includes/api/i18n/azb.json
new file mode 100644 (file)
index 0000000..ca09cf6
--- /dev/null
@@ -0,0 +1,15 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Ilğım"
+               ]
+       },
+       "apihelp-main-param-action": "هانسی ایش گؤرولسون.",
+       "apihelp-main-param-requestid": "بۇرادا یازیلان هر میقدار جاوابا آرتیلاجاقدیر. ایستک‌لری فرقلندیرمه‌یه ایشلنه بیلر.",
+       "apihelp-block-param-nocreate": "حساب آچماغین قاباغینی آل.",
+       "apihelp-checktoken-param-token": "تِست اۆچون توکن.",
+       "apihelp-compare-param-fromtitle": "مۆقاییسه اۆچون ایلک باشلیق.",
+       "apihelp-delete-description": "بیر صفحه‌نی سیل.",
+       "apihelp-delete-param-unwatch": "صفحه‌نی ایزله‌دیکلر لیستیندن سیل.",
+       "apihelp-edit-description": "صفحه‌لری یارادیب دَییشدیر."
+}
index 512ab83..7dcc4fd 100644 (file)
        "apihelp-query+allfileusages-param-dir": "Һанау йүнәлеше.",
        "apihelp-query+allfileusages-example-unique": "Атамаларҙың уҙенсәлекле файлдары исемлеге.",
        "apihelp-query+allfileusages-example-unique-generator": "Төшөп ҡалғандарҙы айырып, барлыҡ исем-һылтанмаларҙы алырға.",
+       "apihelp-query+allfileusages-example-generator": "Һылтанмалы биттәр бар.",
        "apihelp-query+allimages-description": "Бер-бер артлы бөтә образдарҙы һанап сығырға.",
        "apihelp-query+allimages-param-sort": "Сортировкалау үҙенсәлектәре.",
        "apihelp-query+allimages-param-dir": "Һанау йүнәлеше.",
        "apihelp-query+allredirects-param-prefix": "Был мәғәнәнән башланған бар атамаларҙы категориялар буйынса эҙләргә.",
        "apihelp-query+allredirects-param-prop": "Ҡайһы мәғлүмәтте күрһәтергә:",
        "apihelp-query+allredirects-param-namespace": "Һанау өсөн исемдәр арауығы.",
+       "apihelp-query+allredirects-param-limit": "Нисә битте тергеҙергә?",
        "apihelp-query+allredirects-param-dir": "Һанау йүнәлеше.",
        "apihelp-query+allredirects-example-generator": "Һылтанмалы биттәр бар.",
        "apihelp-query+allrevisions-param-start": "Иҫәп күсереү башланған ваҡыт билдәһе",
        "apihelp-query+allrevisions-param-end": "Иҫәп күсереү башланған ваҡыт билдәһе",
        "apihelp-query+allrevisions-param-user": "Бары тик был ҡулланыусының үҙгәртеүҙәр исемлеге.",
        "apihelp-query+allrevisions-param-excludeuser": "Бары тик был ҡулланыусының үҙгәртеүҙәр исемлеге.",
+       "apihelp-query+alltransclusions-param-to": "Һанауҙы туҡтатыу һылтанмаһы атамаһы.",
+       "apihelp-query+alltransclusions-param-prop": "Ҡайһы мәғлүмәтте күрһәтергә:",
+       "apihelp-query+alltransclusions-param-namespace": "Һанау өсөн исемдәр арауығы.",
+       "apihelp-query+alltransclusions-param-limit": "Нисә битте тергеҙергә?",
+       "apihelp-query+alltransclusions-param-dir": "Һанау йүнәлеше.",
        "apihelp-query+alltransclusions-example-generator": "Һылтанмалы биттәр бар.",
        "apihelp-query+allusers-param-from": "Иҫәп күсереү башланған ваҡыт билдәһе",
        "apihelp-query+allusers-param-to": "Иҫәп күсереү башланған ваҡыт билдәһе",
        "apihelp-query+allusers-param-prefix": "Был мәғәнәнән башланған бар атамаларҙы категориялар буйынса эҙләргә.",
+       "apihelp-query+allusers-param-dir": "Сортлау йүнәлештәре.",
        "apihelp-query+allusers-param-prop": "Ҡайһы мәғлүмәтте күрһәтергә:",
        "apihelp-query+backlinks-param-title": "Мөхәриррләү өсөн биттең исеме.<var>$1биттәрҙән</var> бергә файҙаланыу  мөмкин түгел.",
        "apihelp-query+backlinks-param-pageid": "Бит идентифакторын мөхәррирләү өсөн биттәр.  <var>$1title</var> менән бергә ҡулланыла алмайҙар",
index 3b5201a..c7bfb23 100644 (file)
@@ -15,7 +15,7 @@
        "apihelp-main-param-requestid": "Любое значэньне, пададзенае тут, будзе ўключанае ў адказ. Можа быць выкарыстанае для адрозьненьня запытаў.",
        "apihelp-main-param-servedby": "Уключае ў вынік назву сэрвэра, які апрацаваў запыт.",
        "apihelp-main-param-curtimestamp": "Уключае ў вынік пазнаку актуальнага часу.",
-       "apihelp-main-param-origin": "Пры звароце да API з дапамогай міждамэннага AJAX-запыту (CORS), выстаўце парамэтру значэньне зыходнага дамэну. Ён мусіць быць уключаны ў кожны папярэдні запыт і такім чынам мусіць быць часткай URI-запыту (ня цела POST). Ён мусіць супадаць з адной з крыніц у загалоўку <code>Origin</code>, павінна быць зададзена нешта кшталту <kbd>https://en.wikipedia.org</kbd> або <kbd>https://meta.wikimedia.org</kbd>. Калі парамэтар не супадае з загалоўкам <code>Origin</code>, будзе вернуты адказ з кодам памылкі 403. Калі парамэтар супадае з загалоўкам <code>Origin</code> і крыніца знаходзіцца ў белым сьпісе, будзе выстаўлены загаловак <code>Access-Control-Allow-Origin</code>.",
+       "apihelp-main-param-origin": "Пры звароце да API з дапамогай міждамэннага AJAX-запыту (CORS), выстаўце парамэтру значэньне зыходнага дамэну. Ён мусіць быць уключаны ў кожны папярэдні запыт і такім чынам мусіць быць часткай URI-запыту (ня цела POST).\n\nДля аўтэнтыфікаваных запытаў ён мусіць супадаць з адной з крыніц у загалоўку <code>Origin</code>, павінна быць зададзена нешта кшталту <kbd>https://en.wikipedia.org</kbd> або <kbd>https://meta.wikimedia.org</kbd>. Калі парамэтар не супадае з загалоўкам <code>Origin</code>, будзе вернуты адказ з кодам памылкі 403. Калі парамэтар супадае з загалоўкам <code>Origin</code> і крыніца знаходзіцца ў белым сьпісе, будуць выстаўленыя загалоўкі <code>Access-Control-Allow-Origin</code> і <code>Access-Control-Allow-Credentials</code>.\n\nДля неаўтэнтыфікаваных запытаў выстаўце значэньне <kbd>*</kbd>. Гэта прывядзе да выстаўленьня загалоўку <code>Access-Control-Allow-Origin</code>, але <code>Access-Control-Allow-Credentials</code> будзе мець значэньне <code>false</code> і ўсе зьвесткі пра карыстальніка будуць абмежаваныя.",
        "apihelp-main-param-uselang": "Мова для выкарыстаньня ў перакладах паведамленьняў. <kbd>[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]</kbd> з <kbd>siprop=languages</kbd> вяртае сьпіс кодаў мовы, або трэба вызначыць <kbd>user</kbd>, каб ужываць налады мовы цяперашняга карыстальніка, або вызначыць <kbd>content</kbd>, каб ужываць мову зьместу гэтай вікі.",
        "apihelp-block-description": "Блякаваньне ўдзельніка.",
        "apihelp-block-param-user": "Імя ўдзельніка, IP-адрас або IP-дыяпазон, якія вы хочаце заблякаваць.",
index 837e3f9..987231f 100644 (file)
@@ -9,7 +9,9 @@
                        "Fitoschido"
                ]
        },
+       "apihelp-main-param-action": "Quina acció realitzar.",
        "apihelp-main-param-format": "El format de la sortida.",
+       "apihelp-main-param-curtimestamp": "Inclou la marca horària actual en el resultat.",
        "apihelp-block-description": "Bloca un usuari.",
        "apihelp-block-param-reason": "Raó del blocatge.",
        "apihelp-block-param-nocreate": "Evita la creació de comptes.",
index 45d0576..fa7c460 100644 (file)
@@ -15,6 +15,7 @@
        "apihelp-emailuser-param-subject": "Хьедаран корта.",
        "apihelp-emailuser-param-text": "Кехатан чулацам",
        "apihelp-expandtemplates-param-title": "АгӀонан корта.",
+       "apihelp-feedrecentchanges-param-hideminor": "Къайладаха жима нисдарш.",
        "apihelp-feedrecentchanges-param-tagfilter": "Тегийн луьттург.",
        "apihelp-login-example-login": "ЧугӀо",
        "apihelp-logout-description": "ЧугӀой сессийн хаамаш дӀацӀанбе.",
index fbddc8d..8437abb 100644 (file)
@@ -9,7 +9,8 @@
                        "Utar",
                        "Macofe",
                        "Danny B.",
-                       "LordMsz"
+                       "LordMsz",
+                       "Dvorapa"
                ]
        },
        "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page|Dokumentace]]\n* [[mw:API:FAQ|FAQ]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api E-mailová konference]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce Oznámení k API]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Chyby a požadavky]\n</div>\n<strong>Stav:</strong> Všechny funkce uvedené na této stránce by měly fungovat, ale API se stále aktivně vyvíjí a může se kdykoli změnit. Upozornění na změny získáte přihlášením se k [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ e-mailové konferenci mediawiki-api-announce].\n\n<strong>Chybné požadavky:</strong> Pokud jsou do API zaslány chybné požadavky, bude vrácena HTTP hlavička s klíčem „MediaWiki-API-Error“ a hodnota této hlavičky a chybový kód budou nastaveny na stejnou hodnotu. Více informací najdete [[mw:API:Errors_and_warnings|v dokumentaci]].\n\n<strong>Testování:</strong> Pro jednoduché testování požadavků na API zkuste [[Special:ApiSandbox]].",
@@ -74,7 +75,7 @@
        "apihelp-edit-param-text": "Obsah stránky.",
        "apihelp-edit-param-minor": "Malá editace.",
        "apihelp-edit-param-notminor": "Nemalá editace.",
-       "apihelp-edit-param-bot": "Označit tuto editaci jako editaci bota.",
+       "apihelp-edit-param-bot": "Označit tuto editaci jako editaci robota.",
        "apihelp-edit-param-createonly": "Needitovat stránku, pokud již existuje.",
        "apihelp-edit-param-nocreate": "Pokud stránka neexistuje, vrátit chybu.",
        "apihelp-edit-param-watch": "Přidat stránku na seznam sledovaných.",
        "apihelp-feedcontributions-param-deletedonly": "Zobrazit pouze smazané příspěvky.",
        "apihelp-feedcontributions-param-toponly": "Zobrazit pouze ty editace, které jsou aktuální revize.",
        "apihelp-feedcontributions-param-newonly": "Zobrazit pouze ty editace, které vytvořily stránku.",
+       "apihelp-feedcontributions-param-hideminor": "Skrýt malé editace.",
        "apihelp-feedcontributions-param-showsizediff": "Zobrazit rozdíl velikosti mezi revizemi.",
        "apihelp-feedrecentchanges-param-namespace": "Jmenný prostor, na který mají být výsledky omezeny.",
        "apihelp-feedrecentchanges-param-from": "Zobrazit změny od",
        "apihelp-query+usercontribs-example-user": "Zobrazit příspěvky uživatele <kbd>Příklad</kbd>",
        "apihelp-query+watchlistraw-description": "Získat všechny stránky, které jsou aktuálním uživatelem sledovány.",
        "apihelp-query+watchlistraw-example-simple": "Seznam sledovaných stránek uživatele.",
+       "apihelp-stashedit-param-summary": "Změnit shrnutí.",
        "apihelp-unblock-param-user": "Uživatel, IP adresa nebo záběr IP adres k odblokování. Nelze použít dohromady s <var>$1id</var>.",
        "apihelp-watch-example-watch": "Sledovat stránku <kbd>Main Page</kbd>.",
        "apihelp-watch-example-generator": "Zobrazit prvních několik stránek z hlavního jmenného prostoru.",
diff --git a/includes/api/i18n/da.json b/includes/api/i18n/da.json
new file mode 100644 (file)
index 0000000..bbb981b
--- /dev/null
@@ -0,0 +1,8 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Sarrus"
+               ]
+       },
+       "apihelp-feedrecentchanges-param-hideminor": "Skjul mindre ændringer."
+}
index 938a61a..dba5479 100644 (file)
@@ -29,7 +29,7 @@
        "apihelp-main-param-requestid": "Der angegebene Wert wird mit in die Antwort aufgenommen und kann zur Unterscheidung von Anfragen verwendet werden.",
        "apihelp-main-param-servedby": "Namen des bearbeitenden Hosts mit zurückgeben.",
        "apihelp-main-param-curtimestamp": "Aktuellen Zeitstempel mit zurückgeben.",
-       "apihelp-main-param-origin": "Beim Zugriff auf die API mittels Cross-Domain-AJAX-Anfrage (CORS) ist dieser Parameter auf die veranlassende Domain zu setzen. Er muss in jedem Pre-Flight-Request angegeben werden und deshalb ein Teil der Anfrage-URI sein (nicht des POST-Bodys). Er muss genau einer der Angaben im <code>Origin</code>-Header entsprechen, d.&nbsp;h. er muss auf etwas wie <kbd>https://de.wikipedia.org</kbd> oder <kbd>https://meta.wikimedia.org</kbd> gesetzt werden. Falls dieser Parameter nicht mit dem <code>Origin</code>-Header übereinstimmt, wird eine 403-Antwort zurückgegeben. Falls dieser Parameter dem <code>Origin</code>-Header entspricht und die Domain auf der Whitelist ist, wird ein <code>Access-Control-Allow-Origin</code>-Header gesetzt.",
+       "apihelp-main-param-origin": "Beim Zugriff auf die API mit einer Kreuz-Domain-AJAX-Anfrage (CORS) muss dies als entstehende Domäne festgelegt werden. Dies muss in jeder Vorfluganfrage mit eingeschlossen werden und deshalb ein Teil der Anfragen-URI sein (nicht des POST-Körpers).\n\nFür authentifizierte Anfragen muss dies exakt einem der Ursprünge im Header <code>Origin</code> entsprechen, so dass es auf etwas wie <kbd>https://de.wikipedia.org</kbd> oder <kbd>https://meta.wikimedia.org</kbd> festgelegt werden muss. Falls dieser Parameter nicht mit dem Header <code>Origin</code> übereinstimmt, wird eine 403-Antwort zurückgegeben. Falls dieser Parameter mit dem Header <code>Origin</code> übereinstimmt und der Ursprung weißgelistet ist, werden die Header <code>Access-Control-Allow-Origin</code> und <code>Access-Control-Allow-Credentials</code> festgelegt.\n\nGib für nicht authentifizierte Anfragen den Wert <kbd>*</kbd> an. Dies verursacht, dass der Header <code>Access-Control-Allow-Origin</code> festgelegt wird, aber <code>Access-Control-Allow-Credentials</code> wird <code>false</code> sein und alle benutzerspezifischen Daten werden beschränkt.",
        "apihelp-main-param-uselang": "Zu verwendende Sprache für Nachrichtenübersetzungen. <kbd>[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]</kbd> mit <kbd>siprop=languages</kbd> gibt eine Liste der Sprachcodes zurück. Gib <kbd>user</kbd> zum Verwenden der aktuellen Benutzerspracheinstellung oder <kbd>content</kbd> an, um die Inhaltssprache des Wikis zu verwenden.",
        "apihelp-block-description": "Einen Benutzer sperren.",
        "apihelp-block-param-user": "Benutzername, IP-Adresse oder IP-Bereich, der gesperrt werden soll.",
@@ -61,6 +61,7 @@
        "apihelp-compare-param-torev": "Zweite zu vergleichende Version.",
        "apihelp-compare-example-1": "Unterschied zwischen Version 1 und 2 abrufen",
        "apihelp-createaccount-description": "Erstellen eines neuen Benutzerkontos.",
+       "apihelp-createaccount-param-preservestate": "Falls <kbd>[[Special:ApiHelp/query+authmanagerinfo|action=query&meta=authmanagerinfo]]</kbd> für <samp>hasprimarypreservedstate</samp> wahr ausgegeben hat, sollten Anfragen, die als <samp>primary-required</samp> markiert wurden, ausgelassen werden. Falls ein nicht-leerer Wert für <samp>preservedusername</samp> zurückgegeben wurde, muss dieser Benutzername für den Parameter <var>username</var> verwendet werden.",
        "apihelp-createaccount-param-name": "Benutzername.",
        "apihelp-createaccount-param-password": "Passwort (wird ignoriert, wenn <var>$1mailpassword</var> angegeben ist).",
        "apihelp-createaccount-param-domain": "Domain für die externe Authentifizierung (optional).",
        "apihelp-feedcontributions-param-deletedonly": "Nur gelöschte Beiträge anzeigen.",
        "apihelp-feedcontributions-param-toponly": "Nur aktuelle Versionen anzeigen.",
        "apihelp-feedcontributions-param-newonly": "Nur Seitenerstellungen anzeigen.",
+       "apihelp-feedcontributions-param-hideminor": "Blendet Kleinigkeiten aus.",
        "apihelp-feedcontributions-param-showsizediff": "Zeigt den Größenunterschied zwischen Versionen an.",
        "apihelp-feedcontributions-example-simple": "Beiträge für die Benutzer <kbd>Beispiel<kbd> zurückgeben",
        "apihelp-feedrecentchanges-description": "Gibt einen Letzte-Änderungen-Feed zurück.",
        "apihelp-query+pageswithprop-param-limit": "Die maximale Anzahl zurückzugebender Seiten.",
        "apihelp-query+prefixsearch-param-search": "Such-Zeichenfolge.",
        "apihelp-query+prefixsearch-param-offset": "Anzahl der zu überspringenden Ergebnisse.",
+       "apihelp-query+prefixsearch-param-profile": "Zu verwendendes Suchprofil.",
        "apihelp-query+protectedtitles-param-prop": "Zurückzugebende Eigenschaften:",
        "apihelp-query+querypage-param-limit": "Anzahl der zurückzugebenden Ergebnisse.",
        "apihelp-query+recentchanges-description": "Listet die letzten Änderungen auf.",
        "apihelp-query+revisions+base-paramvalue-prop-sha1": "SHA-1-Prüfsumme (Basis 16) der Version.",
        "apihelp-query+revisions+base-paramvalue-prop-contentmodel": "Inhaltsmodell-Kennung der Version.",
        "apihelp-query+revisions+base-paramvalue-prop-content": "Text der Version.",
+       "apihelp-query+revisions+base-paramvalue-prop-tags": "Markierungen für die Version.",
        "apihelp-query+search-param-what": "Welcher Suchtyp ausgeführt werden soll.",
        "apihelp-query+search-param-info": "Welche Metadaten zurückgegeben werden sollen.",
        "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-param-limit": "Wie viele Seiten insgesamt zurückgegeben werden sollen.",
        "apihelp-query+search-example-simple": "Nach <kbd>meaning</kbd> suchen.",
        "apihelp-query+siteinfo-example-simple": "Websiteinformationen abrufen",
        "apihelp-query+tags-description": "Änderungs-Tags auflisten.",
        "apihelp-query+tags-param-prop": "Zurückzugebende Eigenschaften:",
+       "apihelp-query+tags-paramvalue-prop-name": "Ergänzt den Namen der Markierung.",
+       "apihelp-query+tags-paramvalue-prop-displayname": "Ergänzt die Systemnachricht für die Markierung.",
+       "apihelp-query+tags-paramvalue-prop-description": "Ergänzt die Beschreibung der Markierung.",
        "apihelp-query+tags-example-simple": "Verfügbare Tags auflisten",
        "apihelp-query+templates-param-dir": "Die Auflistungsrichtung.",
        "apihelp-query+transcludedin-param-prop": "Zurückzugebende Eigenschaften:",
+       "apihelp-query+transcludedin-paramvalue-prop-pageid": "Seitenkennung jeder Seite.",
        "apihelp-query+usercontribs-description": "Alle Bearbeitungen von einem Benutzer abrufen.",
        "apihelp-query+usercontribs-param-limit": "Die maximale Anzahl der zurückzugebenden Beiträge.",
        "apihelp-query+usercontribs-param-start": "Der zurückzugebende Start-Zeitstempel.",
index c737355..7892efa 100644 (file)
@@ -2,11 +2,20 @@
        "@metadata": {
                "authors": [
                        "Gorizon",
-                       "Mirzali"
+                       "Mirzali",
+                       "Kumkumuk"
                ]
        },
+       "apihelp-block-description": "Enê karberi bloqe ke",
+       "apihelp-block-param-reason": "Sebeba Bloqey",
+       "apihelp-block-param-nocreate": "Hesab viraştişi bloqe ke.",
+       "apihelp-checktoken-param-token": "Jetona test ke",
+       "apihelp-createaccount-description": "Yew Hesabê karberi yo newe vıraze",
        "apihelp-createaccount-param-name": "Nameyê karberi.",
+       "apihelp-createaccount-param-email": "E-postay karberi (keyfi)",
+       "apihelp-createaccount-param-realname": "Namey karberi yo raştay (keyfi)",
        "apihelp-delete-description": "Pele bestere.",
+       "apihelp-delete-example-simple": "<kbd>Main Page</kbd> besternê.",
        "apihelp-disabled-description": "Eno modul aktiv niyo.",
        "apihelp-edit-description": "Vıraze û pelan bıvurne.",
        "apihelp-edit-param-text": "Zerreki pele",
        "apihelp-emailuser-param-ccme": "Yew kopyaya nê posteyi mı rê bırışe.",
        "apihelp-expandtemplates-param-title": "Sernameyê pele.",
        "apihelp-expandtemplates-param-text": "Wikimetıni açarnê.",
+       "apihelp-expandtemplates-paramvalue-prop-wikitext": "Herabıyaye wikimetin",
+       "apihelp-feedcontributions-param-feedformat": "Formata warikerdışi",
+       "apihelp-feedcontributions-param-hideminor": "Vuryayışanê werdiyan bınımne",
+       "apihelp-feedcontributions-param-showsizediff": "Goreyê ebati ferqê versiyoni bıasne.",
        "apihelp-feedrecentchanges-param-hideminor": "Vurnayışanê qıckekan bınımne.",
        "apihelp-feedrecentchanges-param-hidebots": "Vurnayışanê botan bınımne.",
        "apihelp-feedrecentchanges-param-hideanons": "Vurnayışanê karberanê anoniman bınımne.",
        "apihelp-feedrecentchanges-param-hideliu": "Vurnayışanê karberanê qeydınan bınımne.",
+       "apihelp-feedrecentchanges-param-tagfilter": "Filtrey etiketi",
+       "apihelp-feedrecentchanges-example-simple": "Vurnayışê peyênan bıvin",
+       "apihelp-feedrecentchanges-example-30days": "Peyni vurnayışanê 30 raco bımosne",
+       "apihelp-filerevert-param-comment": "Mışewre bar ke",
        "apihelp-login-param-name": "Nameyê karberi.",
        "apihelp-login-param-password": "Parola.",
        "apihelp-login-param-domain": "Domain (optional).",
        "apihelp-login-example-login": "Dekew.",
-       "apihelp-move-description": "Yew pele bere."
+       "apihelp-mergehistory-description": "Verorê pela yew ke",
+       "apihelp-move-description": "Yew pele bere.",
+       "apihelp-move-param-noredirect": "Hetenayış mevıraz",
+       "apihelp-options-example-reset": "Terciha pêron reset ke",
+       "apihelp-options-example-change": "Tercihanê <kbd>skin</kbd> u <kbd>hideminor</kbd> bıvurnê",
+       "apihelp-parse-example-page": "Peler analiz ke",
+       "apihelp-parse-example-text": "Wikimetini analiz ke",
+       "apihelp-parse-example-summary": "Xulasay analiz ke",
+       "apihelp-query+alllinks-paramvalue-prop-title": "Sernamey rê link dek",
+       "apihelp-query+blocks-example-simple": "Listey bloqeyan"
 }
index 4e9309e..a8f0278 100644 (file)
@@ -16,7 +16,7 @@
        "apihelp-main-param-requestid": "Any value given here will be included in the response. May be used to distinguish requests.",
        "apihelp-main-param-servedby": "Include the hostname that served the request in the results.",
        "apihelp-main-param-curtimestamp": "Include the current timestamp in the result.",
-       "apihelp-main-param-origin": "When accessing the API using a cross-domain AJAX request (CORS), set this to the originating domain. This must be included in any pre-flight request, and therefore must be part of the request URI (not the POST body). This must match one of the origins in the <code>Origin</code> header exactly, so it has to be set to something like <kbd>https://en.wikipedia.org</kbd> or <kbd>https://meta.wikimedia.org</kbd>. If this parameter does not match the <code>Origin</code> header, a 403 response will be returned. If this parameter matches the <code>Origin</code> header and the origin is whitelisted, an <code>Access-Control-Allow-Origin</code> header will be set.",
+       "apihelp-main-param-origin": "When accessing the API using a cross-domain AJAX request (CORS), set this to the originating domain. This must be included in any pre-flight request, and therefore must be part of the request URI (not the POST body).\n\nFor authenticated requests, this must match one of the origins in the <code>Origin</code> header exactly, so it has to be set to something like <kbd>https://en.wikipedia.org</kbd> or <kbd>https://meta.wikimedia.org</kbd>. If this parameter does not match the <code>Origin</code> header, a 403 response will be returned. If this parameter matches the <code>Origin</code> header and the origin is whitelisted, the <code>Access-Control-Allow-Origin</code> and <code>Access-Control-Allow-Credentials</code> headers will be set.\n\nFor non-authenticated requests, specify the value <kbd>*</kbd>. This will cause the <code>Access-Control-Allow-Origin</code> header to be set, but <code>Access-Control-Allow-Credentials</code> will be <code>false</code> and all user-specific data will be restricted.",
        "apihelp-main-param-uselang": "Language to use for message translations. <kbd>[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]</kbd> with <kbd>siprop=languages</kbd> returns a list of language codes, or specify <kbd>user</kbd> to use the current user's language preference, or specify <kbd>content</kbd> to use this wiki's content language.",
 
        "apihelp-block-description": "Block a user.",
@@ -60,6 +60,7 @@
        "apihelp-compare-example-1": "Create a diff between revision 1 and 2.",
 
        "apihelp-createaccount-description": "Create a new user account.",
+       "apihelp-createaccount-param-preservestate": "If <kbd>[[Special:ApiHelp/query+authmanagerinfo|action=query&meta=authmanagerinfo]]</kbd> returned true for <samp>hasprimarypreservedstate</samp>, requests marked as <samp>primary-required</samp> should be omitted. If it returned a non-empty value for <samp>preservedusername</samp>, that username must be used for the <var>username</var> parameter.",
        "apihelp-createaccount-example-create": "Start the process of creating user <kbd>Example</kbd> with password <kbd>ExamplePassword</kbd>.",
        "apihelp-createaccount-param-name": "Username.",
        "apihelp-createaccount-param-password": "Password (ignored if <var>$1mailpassword</var> is set).",
@@ -72,7 +73,9 @@
        "apihelp-createaccount-param-language": "Language code to set as default for the user (optional, defaults to content language).",
        "apihelp-createaccount-example-pass": "Create user <kbd>testuser</kbd> with password <kbd>test123</kbd>.",
        "apihelp-createaccount-example-mail": "Create user <kbd>testmailuser</kbd> and email a randomly-generated password.",
-
+       "apihelp-cspreport-description": "Used by browsers to report violations of the Content Security Policy. This module should never be used, except when used automatically by a CSP compliant web browser.",
+       "apihelp-cspreport-param-reportonly": "Mark as being a report from a monitoring policy, not an enforced policy",
+       "apihelp-cspreport-param-source": "What generated the CSP header that triggered this report",
        "apihelp-delete-description": "Delete a page.",
        "apihelp-delete-param-title": "Title of the page to delete. Cannot be used together with <var>$1pageid</var>.",
        "apihelp-delete-param-pageid": "Page ID of the page to delete. Cannot be used together with <var>$1title</var>.",
        "apihelp-feedcontributions-param-deletedonly": "Show only deleted contributions.",
        "apihelp-feedcontributions-param-toponly": "Only show edits that are latest revisions.",
        "apihelp-feedcontributions-param-newonly": "Only show edits that are page creations.",
+       "apihelp-feedcontributions-param-hideminor": "Hide minor edits.",
        "apihelp-feedcontributions-param-showsizediff": "Show the size difference between revisions.",
        "apihelp-feedcontributions-example-simple": "Return contributions for user <kbd>Example</kbd>.",
 
        "apihelp-query+prefixsearch-param-limit": "Maximum number of results to return.",
        "apihelp-query+prefixsearch-param-offset": "Number of results to skip.",
        "apihelp-query+prefixsearch-example-simple": "Search for page titles beginning with <kbd>meaning</kbd>.",
+       "apihelp-query+prefixsearch-param-profile": "Search profile to use.",
 
        "apihelp-query+protectedtitles-description": "List all titles protected from creation.",
        "apihelp-query+protectedtitles-param-namespace": "Only list titles in these namespaces.",
        "apihelp-query+search-param-what": "Which type of search to perform.",
        "apihelp-query+search-param-info": "Which metadata to return.",
        "apihelp-query+search-param-prop": "Which properties to return:",
+       "apihelp-query+search-param-qiprofile": "Query independent profile to use (affects ranking algorithm).",
        "apihelp-query+search-paramvalue-prop-size": "Adds the size of the page in bytes.",
        "apihelp-query+search-paramvalue-prop-wordcount": "Adds the word count of the page.",
        "apihelp-query+search-paramvalue-prop-timestamp": "Adds the timestamp of when the page was last edited.",
        "apihelp-query+watchlistraw-param-show": "Only list items that meet these criteria.",
        "apihelp-query+watchlistraw-param-owner": "Used along with $1token to access a different user's watchlist.",
        "apihelp-query+watchlistraw-param-token": "A security token (available in the user's [[Special:Preferences#mw-prefsection-watchlist|preferences]]) to allow access to another user's watchlist.",
+       "apihelp-query+watchlistraw-param-dir": "The direction in which to list.",
        "apihelp-query+watchlistraw-param-fromtitle": "Title (with namespace prefix) to begin enumerating from.",
        "apihelp-query+watchlistraw-param-totitle": "Title (with namespace prefix) to stop enumerating at.",
        "apihelp-query+watchlistraw-example-simple": "List pages on the current user's watchlist.",
        "apihelp-stashedit-param-contentmodel": "Content model of the new content.",
        "apihelp-stashedit-param-contentformat": "Content serialization format used for the input text.",
        "apihelp-stashedit-param-baserevid": "Revision ID of the base revision.",
+       "apihelp-stashedit-param-summary": "Change summary.",
 
        "apihelp-tag-description": "Add or remove change tags from individual revisions or log entries.",
        "apihelp-tag-param-rcid": "One or more recent changes IDs from which to add or remove the tag.",
index 657fe3e..f733c47 100644 (file)
@@ -20,7 +20,9 @@
                        "Lemondoge",
                        "Mgpena",
                        "Rubentl134",
-                       "2axterix2"
+                       "2axterix2",
+                       "Dgstranz",
+                       "Copper12"
                ]
        },
        "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page|Documentación]]\n* [[mw:API:FAQ|Preguntas frecuentes]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Lista de correos]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce API de anuncios]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Errores y peticiones]\n</div>\n<strong>Estado:</strong> Todas las características que se muestran en esta página debería funcionar, pero la API aún está en desarrollo activo y puede cambiar en cualquier momento. Suscríbete a [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ la lista de correo de mediawiki-api-announce] para estar al día de las actualizaciones.\n\n<strong>Solicitudes erróneas:</strong> Cuando se envían solicitudes erróneas a la API, se envía un encabezado HTTP con la clave \"MediaWiki-API-Error\" y ambos valores, del encabezado y el código de error, se establecerán en el mismo valor. Para más información, véase [[mw:API:Errors_and_warnings|API: Errores y advertencias]].\n\n<strong>Pruebas:</strong> para facilitar las pruebas de solicitudes a la API, consulta [[Special:ApiSandbox]].",
@@ -33,7 +35,7 @@
        "apihelp-main-param-requestid": "Cualquier valor dado aquí se incluirá en la respuesta. Se puede utilizar para distinguir solicitudes.",
        "apihelp-main-param-servedby": "Incluir el nombre del host que ha servido la solicitud en los resultados.",
        "apihelp-main-param-curtimestamp": "Incluir la marca de tiempo actual en el resultado.",
-       "apihelp-main-param-origin": "Cuando se accede a la API usando una petición AJAX de distinto dominio (CORS), establece este valor al dominio de origen. Debe ser incluido en cualquier petición pre-vuelo, y por lo tanto debe ser parte de la URI de la petición (no del cuerpo POST). Debe coincidir exactamente con uno de los orígenes de la cabecera <code>Origin</code>, por lo que debería ser algo como <kbd>https://en.wikipedia.org</kbd> o <kbd>https://meta.wikimedia.org</kbd>. Si este parámetro no coincide con la cabecera <code>Origin</code>, se devolverá una respuesta 403.\nSi este parámetro coincide con la cabecera <code>Origin</code> y el origen está en lista blanca, se creará una cabecera <code>Access-Control-Allow-Origin</code>.",
+       "apihelp-main-param-origin": "Cuando se accede a la API usando una petición AJAX de distinto dominio (CORS), se establece este valor al dominio de origen. Debe ser incluido en cualquier petición pre-vuelo, y por lo tanto debe ser parte de la URI de la petición (no del cuerpo POST). Debe coincidir exactamente con uno de los orígenes de la cabecera <code>Origin</code>, por lo que debería ser algo como <kbd>https://en.wikipedia.org</kbd> o <kbd>https://meta.wikimedia.org</kbd>. Si este parámetro no coincide con la cabecera <code>Origin</code>, se devolverá una respuesta 403.\nSi este parámetro coincide con la cabecera <code>Origin</code> y el origen está en lista blanca, se creará una cabecera <code>Access-Control-Allow-Origin</code>.",
        "apihelp-main-param-uselang": "El idioma que se usará para las traducciones de mensajes. <kbd>[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]</kbd> con <kbd>siprop=languages</kbd> devuelve una lista de códigos de idiomas, o especifica <kbd>user</kbd> para usar la preferencia de idioma del usuario actual, o especifica <kbd>content</kbd> para usar el idioma de contenido de este wiki.",
        "apihelp-block-description": "Bloquear a un usuario.",
        "apihelp-block-param-user": "El nombre de usuario, dirección IP o intervalo de IP que quieres bloquear.",
@@ -49,6 +51,8 @@
        "apihelp-block-param-watchuser": "Vigilar las páginas de usuario y de discusión del usuario o de la dirección IP.",
        "apihelp-block-example-ip-simple": "Bloquear la dirección IP <kbd>192.0.2.5</kbd> durante 3 días por el motivo <kbd>First strike</kbd>.",
        "apihelp-block-example-user-complex": "Bloquear al usuario <kbd>Vandal</kbd> indefinidamente con el motivo <kbd>Vandalism</kbd> y evitar que se cree nuevas cuentas o envíe correos.",
+       "apihelp-changeauthenticationdata-description": "Cambiar los datos de autentificación para el usuario actual.",
+       "apihelp-changeauthenticationdata-example-password": "Intento para cambiar la contraseña del usuario actual a <kbd>ExamplePassword</kbd>.",
        "apihelp-checktoken-description": "Comprueba la validez de una ficha desde <kbd>[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]</kbd>.",
        "apihelp-checktoken-param-type": "Tipo de ficha a probar.",
        "apihelp-checktoken-param-token": "Ficha a probar.",
@@ -56,6 +60,8 @@
        "apihelp-checktoken-example-simple": "Probar la validez de una ficha <kbd>csrf</kbd>.",
        "apihelp-clearhasmsg-description": "Limpia la marca <code>hasmsg</code> del usuario actual.",
        "apihelp-clearhasmsg-example-1": "Limpiar la marca <code>hasmsg</code> del usuario actual.",
+       "apihelp-clientlogin-description": "Entrar en wiki usando el flujo interactivo.",
+       "apihelp-clientlogin-example-login": "Comenzar el proceso para iniciar sesión en el wiki como usuario <kbd>Example</kbd> con la contraseña <kbd>ExamplePassword</kbd>.",
        "apihelp-compare-description": "Obtener la diferencia entre 2 páginas.\n\nSe debe pasar un número de revisión, un título de página o una ID tanto desde \"de\" hasta \"a\".",
        "apihelp-compare-param-fromtitle": "Primer título para comparar",
        "apihelp-compare-param-fromid": "ID de la primera página a comparar.",
@@ -76,6 +82,9 @@
        "apihelp-createaccount-param-language": "Código de idioma a establecer como predeterminado para el usuario (opcional, predeterminado al contenido del idioma).",
        "apihelp-createaccount-example-pass": "Crear usuario <kbd>testuser</kbd> con la contraseña <kbd>test123</kbd>.",
        "apihelp-createaccount-example-mail": "Crear usuario <kbd>testmailuser</kbd> y enviar una contraseña generada aleatoriamente.",
+       "apihelp-cspreport-description": "Utilizado por los navegadores para reportar violaciones de la política de seguridad de contenidos. Este módulo no debe usarse nunca, excepto cuando se usa automáticamente por un navegador web CSP compatible.",
+       "apihelp-cspreport-param-reportonly": "Marcar un informe de una política de vigilancia y no a una política forzada",
+       "apihelp-cspreport-param-source": "Qué generó la cabecera CSP que provocó este informe",
        "apihelp-delete-description": "Borrar una página.",
        "apihelp-delete-param-title": "Título de la página a eliminar. No se puede utilizar junto a <var>$1pageid</var>.",
        "apihelp-delete-param-pageid": "ID de la página a eliminar. No se puede utilizar junto a <var>$1title</var>.",
@@ -84,6 +93,7 @@
        "apihelp-delete-param-watch": "Añadir esta página a la lista de seguimiento del usuario actual.",
        "apihelp-delete-param-watchlist": "Incondicionalmente agregar o remover la página de la lista de seguimiento del usuario actual, usar las preferencias o no cambiar el seguimiento.",
        "apihelp-delete-param-unwatch": "Quitar la página de la lista de seguimiento del usuario actual.",
+       "apihelp-delete-param-oldimage": "El nombre de la imagen antigua es proporcionado conforme a lo dispuesto por [[Special:ApiHelp/query+imageinfo|action=query&prop=imageinfo&iiprop=archivename]].",
        "apihelp-delete-example-simple": "Borrar <kbd>Main Page</kbd>.",
        "apihelp-delete-example-reason": "Eliminar <kbd>Main Page</kbd> con el motivo <kbd>Preparing for move</kbd>.",
        "apihelp-disabled-description": "Se desactivó este módulo.",
        "apihelp-edit-param-minor": "Edición menor.",
        "apihelp-edit-param-notminor": "Edición no menor.",
        "apihelp-edit-param-bot": "Marcar esta edición como de bot.",
+       "apihelp-edit-param-basetimestamp": "Marca de tiempo de la revisión base, usada para detectar conflictos de edición. Se puede obtener mediante [[Special:ApiHelp/query+revisions|action=query&prop=revisions&rvprop=timestamp]]",
+       "apihelp-edit-param-starttimestamp": "Marca de tiempo de cuando empezó el proceso de edición, usada para detectar conflictos de edición. Se puede obtener un valor apropiado usando <var>[[Special:ApiHelp/main|curtimestamp]]</var> cuando comiences el proceso de edición (por ejemplo, al cargar el contenido de la página por editar).",
        "apihelp-edit-param-recreate": "Reemplazar los errores acerca de la página de haber sido eliminados en el ínterin.",
        "apihelp-edit-param-createonly": "No editar la página si ya existe.",
        "apihelp-edit-param-nocreate": "Producir un error si la página no existe.",
        "apihelp-edit-param-watch": "Añadir la página a la lista de seguimiento del usuario actual.",
        "apihelp-edit-param-unwatch": "Quitar la página de la lista de seguimiento del usuario actual.",
+       "apihelp-edit-param-watchlist": "Incondicionalmente añadir o eliminar la página de lista del usuario actual, utilice referencias o no cambiar el reloj.",
+       "apihelp-edit-param-md5": "El hash MD5 del parámetro $1text, o los parámetros concatenados $1prependtext y $1appendtext. Si se establece, la edición no se hará a menos que el hash sea correcto.",
        "apihelp-edit-param-prependtext": "Añadir este texto al principio de la página. Reemplaza $1text.",
        "apihelp-edit-param-appendtext": "Añadir este texto al principio de la página. Reemplaza $1text.\n\nUtiliza $1section=new para añadir una nueva sección, en lugar de este parámetro.",
        "apihelp-edit-param-undo": "Deshacer esta revisión. Reemplaza $1text, $1prependtext y $1appendtext.",
        "apihelp-expandtemplates-param-title": "Título de la página.",
        "apihelp-expandtemplates-param-text": "Sintaxis wiki que se convertirá.",
        "apihelp-expandtemplates-param-revid": "Revisión de ID, para <nowiki>{{REVISIONID}}</nowiki> y variables similares.",
+       "apihelp-expandtemplates-param-prop": "Qué elementos de información se utilizan para llegar.\n\nTenga en cuenta que si no se seleccionan los valores, el resultado contendrá el wikitexto, pero la salida será en un formato obsoleto.",
        "apihelp-expandtemplates-paramvalue-prop-wikitext": "El wikitexto expandido.",
        "apihelp-expandtemplates-paramvalue-prop-categories": "Cualesquiera categorías presentes en la entrada que no están representadas en salida de wikitexto.",
        "apihelp-expandtemplates-paramvalue-prop-properties": "Propiedades de página definidas por palabras mágicas en el wikitexto.",
+       "apihelp-expandtemplates-paramvalue-prop-volatile": "Si la salida es volátil y no debe ser reutilizada en otro lugar dentro de la página.",
        "apihelp-expandtemplates-paramvalue-prop-ttl": "El tiempo máximo tras el cual deberían invalidarse los resultados en caché.",
        "apihelp-expandtemplates-paramvalue-prop-jsconfigvars": "Da las variables de configuración JavaScript específicas para la página.",
        "apihelp-expandtemplates-paramvalue-prop-encodedjsconfigvars": "Da las variables de configuración JavaScript específicas para la página como una cadena JSON.",
+       "apihelp-expandtemplates-paramvalue-prop-parsetree": "El árbol XML analiza el árbol de la entrada.",
+       "apihelp-expandtemplates-param-includecomments": "Incluir o no los comentarios HTML en la salida.",
        "apihelp-expandtemplates-param-generatexml": "Generar un árbol de análisis XML (remplazado por $1prop=parsetree).",
        "apihelp-expandtemplates-example-simple": "Expandir el wikitexto <kbd><nowiki>{{Project:Sandbox}}</nowiki></kbd>.",
        "apihelp-feedcontributions-description": "Devuelve el canal de contribuciones de un usuario.",
        "apihelp-feedcontributions-param-deletedonly": "Mostrar solo las contribuciones borradas.",
        "apihelp-feedcontributions-param-toponly": "Mostrar solo ediciones que son últimas revisiones.",
        "apihelp-feedcontributions-param-newonly": "Mostrar solo ediciones que son creaciones de páginas.",
+       "apihelp-feedcontributions-param-hideminor": "Ocultar ediciones menores.",
        "apihelp-feedcontributions-param-showsizediff": "Mostrar la diferencia de tamaño entre revisiones.",
        "apihelp-feedcontributions-example-simple": "Devolver las contribuciones del usuario <kbd>Example</kbd>.",
        "apihelp-feedrecentchanges-description": "Devuelve un canal de cambios recientes.",
        "apihelp-feedrecentchanges-param-tagfilter": "Filtrar por etiquetas.",
        "apihelp-feedrecentchanges-param-target": "Mostrar solo los cambios en las páginas enlazadas en esta.",
        "apihelp-feedrecentchanges-param-showlinkedto": "Mostrar los cambios en páginas enlazadas con la página seleccionada.",
+       "apihelp-feedrecentchanges-param-categories": "Mostrar sólo cambios en las páginas en todas estas categorías.",
+       "apihelp-feedrecentchanges-param-categories_any": "Mostrar sólo cambios en las páginas en cualquiera de las categorías en lugar.",
        "apihelp-feedrecentchanges-example-simple": "Mostrar los cambios recientes.",
        "apihelp-feedrecentchanges-example-30days": "Mostrar los cambios recientes limitados a 30 días.",
        "apihelp-feedwatchlist-description": "Devuelve el canal de una lista de seguimiento.",
        "apihelp-help-param-submodules": "Incluir ayuda para submódulos del módulo con nombre.",
        "apihelp-help-param-recursivesubmodules": "Incluir ayuda para submódulos recursivamente.",
        "apihelp-help-param-helpformat": "Formato de salida de la ayuda.",
+       "apihelp-help-param-wrap": "Envolver el producto en una estructura de respuesta de la API estándar.",
        "apihelp-help-param-toc": "Incluir una tabla de contenidos en la salida HTML.",
        "apihelp-help-example-main": "Ayuda del módulo principal",
        "apihelp-help-example-submodules": "Ayuda para <kbd>action=query</kbd> y todos sus submódulos.",
        "apihelp-imagerotate-param-rotation": "Grados que rotar una imagen en sentido horario.",
        "apihelp-imagerotate-example-simple": "Rotar <kbd>File:Example.png</kbd> <kbd>90</kbd> grados.",
        "apihelp-imagerotate-example-generator": "Rotar todas las imágenes en <kbd>Category:Flip</kbd> <kbd>180</kbd> grados.",
+       "apihelp-import-description": "Importar una página desde otra wiki, o desde un archivo XML.\n\nTenga en cuenta que el HTTP POST debe hacerse como una carga de archivos (es decir, el uso de multipart/form-data) al enviar un archivo para el parámetro <var>xml</var>.",
        "apihelp-import-param-summary": "Resumen de importación de entrada del registro.",
        "apihelp-import-param-xml": "Se cargó el archivo XML.",
        "apihelp-import-param-interwikisource": "Para importaciones interwiki: wiki desde la que importar.",
        "apihelp-import-param-namespace": "Importar a este espacio de nombres. No puede usarse simultáneamente con <var>$1rootpage</var>.",
        "apihelp-import-param-rootpage": "Importar como subpágina de esta página. No puede usarse simultáneamente con <var>$1namespace</var>.",
        "apihelp-import-example-import": "Importar [[meta:Help:ParserFunctions]] al espacio de nombres 100 con todo el historial.",
-       "apihelp-login-description": "Iniciar sesión y obtener cookies de autenticación.\n\nSi inicias sesión sin problemas, las cookies necesarias se incluirán en los encabezados de respuesta HTTP. Si se produce algún error al iniciar sesión y este persiste, se puede regular para evitar los ataques masivos automatizados para adivinar contraseñas.",
+       "apihelp-linkaccount-description": "Vincular una cuenta de un proveedor de terceros para el usuario actual.",
+       "apihelp-linkaccount-example-link": "Iniciar el proceso de vincular a una cuenta de <kbd>Ejemplo</kbd>.",
+       "apihelp-login-description": "Iniciar sesión y obtener las cookies de autenticación.\n\nEsta acción solo se debe utilizar en combinación con [[Special:BotPasswords]]; para la cuenta de inicio de sesión no se utiliza y puede fallar sin previo aviso. Para iniciar la sesión de forma segura a la cuenta principal, utilice <kbd>[[Special:ApiHelp/clientlogin|action=clientlogin]]</kbd>.",
+       "apihelp-login-description-nobotpasswords": "Iniciar sesión y obtener las cookies de autenticación.\n\nEsta acción esta obsoleta y puede fallar sin previo aviso. Para conectarse de forma segura, utilice <kbd>[[Special:ApiHelp/clientlogin|action=clientlogin]]</kbd>.",
+       "apihelp-login-description-nonauthmanager": "Iniciar sesión y obtener cookies de autenticación.\n\nSi inicias sesión sin problemas, las cookies necesarias se incluirán en los encabezados de respuesta HTTP. Si se produce algún error al iniciar sesión y este persiste, se puede regular para evitar los ataques masivos automatizados de adivinar contraseñas.",
        "apihelp-login-param-name": "Nombre de usuario.",
        "apihelp-login-param-password": "Contraseña.",
        "apihelp-login-param-domain": "Dominio (opcional).",
        "apihelp-managetags-param-operation": "Qué operación realizar:\n;create: Crear una nueva etiqueta de cambio de uso manual.\n;delete: Eliminar una etiqueta de cambio de la base de datos, eliminando la etiqueta de todas las revisiones, cambios en entradas recientes y registros en los que se ha utilizado.\n;activate: Activar una etiqueta de cambio, permitiendo a los usuarios aplicarla manualmente.\n;deactivate: Desactivar una etiqueta de cambio, evitando que los usuarios la apliquen manualmente.",
        "apihelp-managetags-param-tag": "Etiqueta para crear, eliminar, activar o desactivar. Para crear una etiqueta, esta debe no existir. Para eliminarla, debe existir. Para activarla, debe existir y no estar en uso por ninguna extensión. Para desactivarla, debe estar activada y definida manualmente.",
        "apihelp-managetags-param-reason": "Un motivo opcional para crear, eliminar, activar o desactivar la etiqueta.",
+       "apihelp-managetags-param-ignorewarnings": "Ya sea para ignorar las advertencias que se emiten durante la operación.",
        "apihelp-managetags-example-create": "Crear una etiqueta llamada <kbd>spam</kbd> con el motivo <kbd>For use in edit patrolling</kbd>",
        "apihelp-managetags-example-delete": "Eliminar la etiqueta <kbd>vandlaism</kbd> con el motivo <kbd>Misspelt</kbd>",
        "apihelp-managetags-example-activate": "Activar una etiqueta llamada <kbd>spam</kbd> con el motivo <kbd>For use in edit patrolling</kbd>",
        "apihelp-managetags-example-deactivate": "Desactivar una etiqueta llamada <kbd>spam</kbd> con el motivo <kbd>No longer required</kbd>",
        "apihelp-mergehistory-description": "Fusionar historiales de páginas.",
+       "apihelp-mergehistory-param-from": "El título de la página desde la que se combinará la historia. No se puede utilizar junto con <var>$1fromid</var>.",
+       "apihelp-mergehistory-param-fromid": "Page ID de la página desde la que se combinara el historial. No se puede utilizar junto con <var>$1from</var>.",
+       "apihelp-mergehistory-param-to": "El título de la página desde la que se combinara el historial. No se puede utilizar junto con <var>$1toid</var>.",
+       "apihelp-mergehistory-param-toid": "Page ID de la página desde la que se combinara el historial. No se puede utilizar junto con <var>$1to</var>.",
+       "apihelp-mergehistory-param-timestamp": "La marca de tiempo de las revisiones se moverá del historial de la página de origen al historial de la página de destino. Si se omite, todo el historial de la página de la página de origen se fusionará en la página de destino.",
        "apihelp-mergehistory-param-reason": "Motivo para la fusión del historial.",
+       "apihelp-mergehistory-example-merge": "Combinar todo el historial de <kbd>Oldpage</kbd> en <kbd>Newpage</kbd>.",
+       "apihelp-mergehistory-example-merge-timestamp": "Combinar las revisiones de <kbd>Oldpage</kbd> hasta el <kbd>2015-12-31T04:37:41Z</kbd> en <kbd>Newpage</kbd>.",
        "apihelp-move-description": "Trasladar una página.",
        "apihelp-move-param-from": "Título de la página a renombrar. No se puede utilizar con <var>$1fromid</var>.",
        "apihelp-move-param-fromid": "ID de la página a renombrar. No se puede utilizar con <var>$1from</var>.",
        "apihelp-move-param-noredirect": "No crear una redirección.",
        "apihelp-move-param-watch": "Añadir la página y su redirección a la lista de seguimiento del usuario actual.",
        "apihelp-move-param-unwatch": "Eliminar la página y la redirección de la lista de seguimiento del usuario.",
+       "apihelp-move-param-watchlist": "Incondicionalmente puede añadir o eliminar la página de lista del usuario actual, utilizar referencias o no cambiar el reloj.",
        "apihelp-move-param-ignorewarnings": "Ignorar cualquier aviso.",
        "apihelp-move-example-move": "Trasladar <kbd>Badtitle</kbd> a <kbd>Goodtitle</kbd> sin dejar una redirección.",
        "apihelp-opensearch-description": "Buscar en el wiki mediante el protocolo OpenSearch.",
        "apihelp-paraminfo-param-modules": "Lista de los nombres de los módulos (valores de los parámetros <var>action</var> y <var>format</var> o <kbd>main</kbd>). Se pueden especificar los submódulos con un <kbd>+</kbd>.",
        "apihelp-paraminfo-param-helpformat": "Formato de las cadenas de ayuda.",
        "apihelp-paraminfo-param-querymodules": "Lista de los nombres de los módulos de consulta (valor de los parámetros <var>prop</var>, <var>meta</var> or <var>list</var>). Utiliza <kbd>$1modules=query+foo</kbd> en vez de <kbd>$1querymodules=foo</kbd>.",
+       "apihelp-paraminfo-param-mainmodule": "Obtener también información sobre el módulo principal (primer nivel). Utilizar <kbd>$1modules=main</kbd> en su lugar.",
+       "apihelp-paraminfo-param-pagesetmodule": "Obtener también información sobre el módulo PageSet (Proporcionar títulos= y amigos).",
        "apihelp-paraminfo-param-formatmodules": "Lista de los nombres del formato de los módulos (valor del parámetro <var>format</var>). Utiliza <var>$1modules</var> en su lugar.",
        "apihelp-paraminfo-example-1": "Mostrar información para <kbd>[[Special:ApiHelp/parse|action=parse]]</kbd>, <kbd>[[Special:ApiHelp/jsonfm|format=jsonfm]]</kbd>, <kbd>[[Special:ApiHelp/query+allpages|action=query&list=allpages]]</kbd> y <kbd>[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]</kbd>.",
        "apihelp-parse-param-title": "Título de la página a la que pertenece el texto. Si se omite se debe especificar <var>$1contentmodel</var> y se debe utilizar el [[API]] como título.",
        "apihelp-parse-paramvalue-prop-properties": "Da varias propiedades definidas en el wikitexto analizado.",
        "apihelp-parse-paramvalue-prop-limitreportdata": "Da el informe del límite de forma estructurada. No da datos si <var>$1disablelimitreport</var> está establecido.",
        "apihelp-parse-paramvalue-prop-limitreporthtml": "Da la versión HTML del informe del límite. No da datos si <var>$1disablelimitreport</var> está establecido.",
+       "apihelp-parse-paramvalue-prop-parsetree": "El árbol de análisis sintáctico XML del contenido de la revisión (requiere modelo de contenido <code>$1</code>)",
+       "apihelp-parse-param-pst": "Guardar previamente los cambios antes de transformar la entrada antes de analizarla. Sólo es válido cuando se utiliza con el texto.",
+       "apihelp-parse-param-onlypst": "Guardar previamente los cambios antes de transformar (PST) en la entrada. Devuelve el mismo wikitexto, después de que un PST se ha aplicado. Sólo es válido cuando se utiliza con <var>$1text</var>.",
        "apihelp-parse-param-effectivelanglinks": "Incluye enlaces de idiomas proporcionados por las extensiones (para utilizar con <kbd>$1prop=langlinks</kbd>).",
+       "apihelp-parse-param-disablelimitreport": "Omitir el informe de límite (\"NewPP limit report\") desde la salida del analizador.",
        "apihelp-parse-param-disablepp": "Usa <var>$1disablelimitreport</var> en su lugar.",
+       "apihelp-parse-param-disableeditsection": "Omitir los enlaces de edición de sección de la salida del analizador.",
+       "apihelp-parse-param-disabletidy": "No ejecute la limpieza HTML (por ejemplo ordenada) en la salida del analizador.",
+       "apihelp-parse-param-generatexml": "Generar árbol de análisis sintáctico XML (requiere modelo de contenido <code>$1</code>; sustituido por <kbd>$2prop=parsetree</kbd>).",
        "apihelp-parse-param-preview": "Analizar en modo de vista previa.",
        "apihelp-parse-param-sectionpreview": "Analizar sección en modo de vista previa (también activa el modo de vista previa).",
        "apihelp-parse-param-disabletoc": "Omitir la tabla de contenidos en la salida.",
+       "apihelp-parse-param-contentformat": "Formato de serialización de contenido utilizado para la introducción de texto. Sólo es válido cuando se utiliza con $1text.",
        "apihelp-parse-example-page": "Analizar una página.",
        "apihelp-parse-example-text": "Analizar wikitexto.",
        "apihelp-parse-example-texttitle": "Analizar wikitexto, especificando el título de la página.",
        "apihelp-protect-param-pageid": "ID de la página a (des)proteger. No se puede utilizar con $1title.",
        "apihelp-protect-param-protections": "Lista de los niveles de protección, con formato <kbd>action=level</kbd> (por ejemplo: <kbd>edit=sysop</kbd>).\n\n<strong>Nota:</strong> Cualquier acción no mencionada tendrá las restricciones eliminadas.",
        "apihelp-protect-param-reason": "Motivo de la (des)protección.",
+       "apihelp-protect-param-tags": "Cambiar las etiquetas para aplicar a la entrada en el registro de protección.",
        "apihelp-protect-param-cascade": "Activar la protección en cascada (o sea, proteger plantillas e imágenes transcluidas usadas en esta página). Se ignorará si ninguno de los niveles de protección dados son compatibles con la función de cascada.",
        "apihelp-protect-example-protect": "Proteger una página",
        "apihelp-protect-example-unprotect": "Desproteger una página estableciendo la restricción a <kbd>all</kbd>.",
        "apihelp-protect-example-unprotect2": "Desproteger una página anulando las restricciones.",
+       "apihelp-purge-description": "Purgar la caché de los títulos proporcionados.\n\nSe requiere una solicitud POST si el usuario no ha iniciado sesión.",
        "apihelp-purge-param-forcelinkupdate": "Actualizar las tablas de enlaces.",
        "apihelp-purge-param-forcerecursivelinkupdate": "Actualizar la tabla de enlaces y todas las tablas de enlaces de cualquier página que use esta página como una plantilla.",
        "apihelp-purge-example-simple": "Purgar la <kbd>Main Page</kbd> y la página <kbd>API</kbd>.",
        "apihelp-query+allfileusages-example-unique-generator": "Recupera los títulos de todos los archivos y marca los faltantes.",
        "apihelp-query+allfileusages-example-generator": "Recupera las páginas que contienen los archivos.",
        "apihelp-query+allimages-description": "Enumerar todas las imágenes secuencialmente.",
+       "apihelp-query+allimages-param-sort": "Propiedad por la que realizar la ordenación.",
+       "apihelp-query+allimages-param-dir": "La dirección en la que se listará.",
        "apihelp-query+allimages-param-from": "El título de la imagen para comenzar la enumeración. Solo puede utilizarse con $1sort=name.",
        "apihelp-query+allimages-param-to": "El título de la imagen para detener la enumeración. Solo puede utilizarse con $1sort=name.",
        "apihelp-query+allimages-param-start": "El sello de tiempo para comenzar la enumeración. Solo puede utilizarse con $1sort=timestamp.",
        "apihelp-query+alllinks-paramvalue-prop-title": "Añade el título del enlace.",
        "apihelp-query+alllinks-param-namespace": "El espacio de nombres que enumerar.",
        "apihelp-query+alllinks-param-limit": "Cuántos elementos en total se devolverán.",
+       "apihelp-query+alllinks-param-dir": "La dirección en la que se listará.",
+       "apihelp-query+alllinks-example-unique": "Lista de títulos vinculados únicamente.",
        "apihelp-query+alllinks-example-unique-generator": "Obtiene todos los títulos enlazados, marcando los que falten.",
+       "apihelp-query+alllinks-example-generator": "Obtiene páginas que contienen los enlaces.",
+       "apihelp-query+allmessages-description": "Devolver los mensajes de este sitio.",
        "apihelp-query+allmessages-param-prop": "Qué propiedades se obtendrán.",
+       "apihelp-query+allmessages-param-nocontent": "Si se establece, no incluya el contenido de los mensajes en la salida.",
+       "apihelp-query+allmessages-param-args": "Los argumentos que se sustituyen en el mensaje.",
        "apihelp-query+allmessages-param-filter": "Devolver solo mensajes con nombres que contengan esta cadena.",
        "apihelp-query+allmessages-param-customised": "Devolver solo mensajes en este estado de personalización.",
        "apihelp-query+allmessages-param-lang": "Devolver mensajes en este idioma.",
        "apihelp-query+allpages-param-maxsize": "Limitar a páginas con este número máximo de bytes.",
        "apihelp-query+allpages-param-prtype": "Limitar a páginas protegidas.",
        "apihelp-query+allpages-param-limit": "Cuántas páginas en total se devolverán.",
+       "apihelp-query+allpages-param-dir": "La dirección en la que se listará.",
+       "apihelp-query+allpages-param-filterlanglinks": "Filtrar en función de si una página tiene langlinks. Tenga en cuenta que esto no puede considerar langlinks agregados por extensiones.",
        "apihelp-query+allpages-example-B": "Mostrar una lista de páginas que empiecen con la letra <kbd>B</kbd>.",
        "apihelp-query+allpages-example-generator": "Mostrar información acerca de 4 páginas que empiecen por la letra <kbd>T</kbd>.",
        "apihelp-query+allpages-example-generator-revisions": "Mostrar el contenido de las 2 primeras páginas que no redirijan y empiecen por <kbd>Re</kbd>.",
+       "apihelp-query+allredirects-description": "Obtener la lista de todas las redirecciones a un espacio de nombres.",
+       "apihelp-query+allredirects-param-from": "El título de la redirección para iniciar la enumeración.",
+       "apihelp-query+allredirects-param-to": "El título de la redirección para detener la enumeración.",
        "apihelp-query+allredirects-param-prefix": "Buscar todas las páginas de destino que empiecen con este valor.",
        "apihelp-query+allredirects-param-prop": "Qué piezas de información incluir:",
        "apihelp-query+allredirects-paramvalue-prop-title": "Añade el título de la redirección.",
+       "apihelp-query+allredirects-param-namespace": "El espacio de nombres a enumerar.",
        "apihelp-query+allredirects-param-limit": "Cuántos elementos se devolverán.",
+       "apihelp-query+allredirects-param-dir": "La dirección en la que se listará.",
+       "apihelp-query+allredirects-example-unique": "La lista de páginas de destino.",
+       "apihelp-query+allredirects-example-unique-generator": "Obtiene todas las páginas de destino, marcando los que faltan.",
+       "apihelp-query+allredirects-example-generator": "Obtiene páginas que contienen las redirecciones.",
        "apihelp-query+allrevisions-description": "Listar todas las revisiones.",
+       "apihelp-query+allrevisions-param-start": "La marca de tiempo para iniciar la enumeración.",
+       "apihelp-query+allrevisions-param-end": "La marca de tiempo para detener la enumeración.",
        "apihelp-query+allrevisions-param-user": "Listar solo las revisiones de este usuario.",
        "apihelp-query+allrevisions-param-excludeuser": "No listar las revisiones de este usuario.",
        "apihelp-query+allrevisions-param-namespace": "Listar solo las páginas en este espacio de nombres.",
        "apihelp-query+allrevisions-example-user": "Listar las últimas 50 contribuciones del usuario <kbd>Example</kbd>.",
        "apihelp-query+allrevisions-example-ns-main": "Listar las primeras 50 revisiones en el espacio de nombres principal.",
+       "apihelp-query+mystashedfiles-description": "Obtener una lista de archivos en la corriente de carga de usuarios.",
+       "apihelp-query+mystashedfiles-param-prop": "Propiedades a buscar para los archivos.",
+       "apihelp-query+mystashedfiles-paramvalue-prop-size": "Buscar el tamaño del archivo y las dimensiones de la imagen.",
        "apihelp-query+mystashedfiles-param-limit": "Cuántos archivos obtener.",
+       "apihelp-query+alltransclusions-param-from": "El título de la transclusión por la que empezar la enumeración.",
+       "apihelp-query+alltransclusions-param-to": "El título de la transclusión por la que terminar la enumeración.",
        "apihelp-query+alltransclusions-param-prefix": "Buscar todos los títulos transcluidos que comiencen con este valor.",
        "apihelp-query+alltransclusions-param-prop": "Qué piezas de información incluir:",
+       "apihelp-query+alltransclusions-paramvalue-prop-title": "Añade el título de la transclusión.",
+       "apihelp-query+alltransclusions-param-limit": "Número de elementos que se desea obtener.",
        "apihelp-query+alltransclusions-example-unique": "Listar títulos transcluidos de forma única.",
        "apihelp-query+alltransclusions-example-unique-generator": "Obtiene todos los títulos transcluidos, marcando los que faltan.",
        "apihelp-query+allusers-description": "Enumerar todos los usuarios registrados.",
        "apihelp-query+categorymembers-paramvalue-prop-ids": "Añade el identificador de página.",
        "apihelp-query+categorymembers-paramvalue-prop-title": "Agrega el título y el identificador del espacio de nombres de la página.",
        "apihelp-query+categorymembers-paramvalue-prop-type": "Añade el tipo en el que se categorizó la página (<samp>page</samp>, <samp>subcat</samp> or <samp>file</samp>).",
+       "apihelp-query+categorymembers-param-sort": "Propiedad por la que realizar la ordenación.",
+       "apihelp-query+categorymembers-param-dir": "Dirección en la que desea ordenar.",
        "apihelp-query+categorymembers-param-startsortkey": "Utilizar $1starthexsortkey en su lugar.",
        "apihelp-query+categorymembers-param-endsortkey": "Utilizar $1endhexsortkey en su lugar.",
        "apihelp-query+categorymembers-example-simple": "Obtener las primeras 10 páginas en <kbd>Category:Physics</kbd>.",
        "apihelp-query+watchlist-paramvalue-type-log": "Entradas del registro.",
        "apihelp-query+watchlistraw-param-prop": "Qué propiedades adicionales se obtendrán:",
        "apihelp-query+watchlistraw-param-show": "Sólo listar los elementos que cumplen estos criterios.",
+       "apihelp-query+watchlistraw-param-dir": "La dirección en la que se listará.",
        "apihelp-query+watchlistraw-param-fromtitle": "Título (con el prefijo de espacio de nombres) desde el que se empezará a enumerar.",
        "apihelp-query+watchlistraw-param-totitle": "Título (con el prefijo de espacio de nombres) desde el que se dejará de enumerar.",
        "apihelp-query+watchlistraw-example-simple": "Listar las páginas de la lista de seguimiento del usuario actual.",
        "apihelp-stashedit-param-contentmodel": "Modelo del contenido nuevo.",
        "apihelp-stashedit-param-contentformat": "Formato de serialización de contenido utilizado para el texto de entrada.",
        "apihelp-stashedit-param-baserevid": "Identificador de la revisión de base.",
+       "apihelp-stashedit-param-summary": "Resumen de cambios.",
        "apihelp-tag-param-logid": "Uno o más identificadores de entradas del registro a los que agregar o eliminar la etiqueta.",
        "apihelp-tag-param-reason": "Motivo del cambio.",
        "apihelp-tag-example-rev": "Añadir la etiqueta <kbd>vandalism</kbd> al identificador de revisión 123 sin especificar un motivo",
index 079eeb2..5f09064 100644 (file)
@@ -29,6 +29,8 @@
        "apihelp-expandtemplates-paramvalue-prop-wikitext": "Wikitestu zabaldua.",
        "apihelp-feedcontributions-param-year": "Urtetik aurrera (eta lehenagotik)",
        "apihelp-feedcontributions-param-month": "Hilabetetik aurrera (eta lehenagotik)",
+       "apihelp-feedcontributions-param-newonly": "Orrialde sorkuntza direnak soilik erakutsi",
+       "apihelp-feedcontributions-param-hideminor": "Aldaketa txikiak ezkutatu",
        "apihelp-feedrecentchanges-param-hideminor": "Ezkutatu aldaketa txikiak.",
        "apihelp-feedrecentchanges-param-hidebots": "Ezkutatu botek egindako aldaketak.",
        "apihelp-feedrecentchanges-param-hideanons": "Ezkutatu erabiltzaile anonimoek egindako aldaketak.",
index a429583..2ae81d4 100644 (file)
                        "Macofe",
                        "Huji",
                        "Ladsgroup",
-                       "Freshman404"
+                       "Freshman404",
+                       "Alifakoor"
                ]
        },
        "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page|مستندات]]\n* [[mw:API:FAQ|پرسش‌های متداول]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api فهرست پست الکترونیکی]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce اعلانات رابط برنامه‌نویسی کاربردی]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R ایرادها و درخواست‌ها]\n</div>\n\n<strong>وضعیت:</strong> تمام ویژگی‌هایی که در این صفحه نمایش یافته‌اند باید کار بکنند، ولی رابط برنامه‌نویسی کاربردی کماکان در حال توسعه است، و ممکن است در هر زمان تغییر بکند. به عضویت [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ فهرست پست الکترونیکی mediawiki-api-announce] در بیایید تا از تغییرات باخبر شوید.\n\n<strong>درخواست‌های معیوب:</strong> وقتی درخواست‌های معیوب به رابط برنامه‌نویسی کاربردی فرستاده شوند، یک سرایند اچ‌تی‌تی‌پی با کلید «MediaWiki-API-Erorr» فرستاده می‌شود و بعد هم مقدار سرایند و هم کد خطای بازگردانده شده  هر دو به یک مقدار نسبت داده می‌شوند. برای اطلاعات بیشتر [[mw:API:Errors_and_warnings|API: Errors and warnings]] را ببینید.\n\n<strong>آزمایش:</strong> برای انجام درخواست‌های API آزمایشی [[Special:ApiSandbox]] را ببینید.",
        "apihelp-main-param-action": "کدام عملیات را انجام دهد.",
        "apihelp-main-param-format": "فرمت خروجی.",
+       "apihelp-main-param-smaxage": "تنظيم  <code>s-maxage</code> سرآیند کنترل حافضهٔ نهان HTTP بر اين تعداد ثانيه.",
+       "apihelp-main-param-maxage": "تنظيم  <code>s-maxage</code> سرآیند کنترل حافضهٔ نهان HTTP بر اين تعداد ثانيه.\nخطاها هيچگاه در حافظهٔ نهان قرار نمی‌گيرند.",
+       "apihelp-main-param-requestid": "هر مقداری که در اینجا وارد شود در پاسخ گنجانده می‌شود. ممکن است برای تمايز بين درخواست‌ها بکار رود.",
+       "apihelp-main-param-servedby": "نام ميزبانی که درخواست را سرويس داده در نتايج گنجانده شود.",
        "apihelp-main-param-curtimestamp": "برچسب زمان کنونی را در نتیجه قرار دهید.",
        "apihelp-block-description": "بستن کاربر",
        "apihelp-block-param-user": "نام کاربری، آدرس آی پی یا محدوده آی پی موردنظر شما برای بستن.",
        "apihelp-block-param-reblock": "اگر کاربر پیش از این مسدود شده‌است، مسدود موجود را بازنویسی کن.",
        "apihelp-block-param-watchuser": "صفحه‌های کاربر و بحث کاربر نشانی آی‌پی یا کاربر را پی‌گیری کنید.",
        "apihelp-block-example-ip-simple": "آی‌پی <kbd>۱۹۲٫۰٫۲٫۵</kbd> را برای سه روز همراه دلیل <kbd>برخورد اول</kbd> ببندید",
+       "apihelp-block-example-user-complex": "بستن کاربر<kbd>خرابکار</kbd> به شکل نامحدود به علت <kbd>خرابکاری</kbd>، همچنين جلوگيری از ايجاد حساب جديد و ارسال ايميل.",
+       "apihelp-changeauthenticationdata-description": "تغيير اطلاعات احراز هويت برای کاربر فعلی",
+       "apihelp-changeauthenticationdata-example-password": "تلاش برای تغيير گذرواژه فعلی کاربر به <kbd>نمونهٔ گذرواژه</kbd>.",
+       "apihelp-checktoken-param-type": "نوع توکنی که دارد آزمایش می‌شود.",
        "apihelp-checktoken-param-token": "توکن برای تست",
        "apihelp-checktoken-param-maxtokenage": "حداکثر عمر توکن به ثانیه.",
        "apihelp-checktoken-example-simple": "تست اعتبار یک توکن <kbd>csrf</kbd>",
        "apihelp-clearhasmsg-description": "پرچم <code>hasmsg</code> را برای کاربر جاری پاک کن.",
        "apihelp-clearhasmsg-example-1": "پاک‌کردن پرچم <code>hasmsg</code> برای کاربر جاری",
+       "apihelp-clientlogin-example-login": "شروع فرآیند ورود به ويکی به عنوان کاربر <kbd>نمونه</kbd> با گذرواژهٔ <kbd>نمونهٔ گذرواژه</kbd>",
        "apihelp-compare-description": "تفاوت بین ۲ صفحه را بیابید.\n\nشما باید یک شماره بازبینی، یک عنوان صفحه، یا یک شناسه صفحه برای هر دو «از» و «به» مشخص کنید.",
        "apihelp-compare-param-fromtitle": "عنوان اول برای مقایسه.",
        "apihelp-compare-param-fromid": "شناسه صفحه اول برای مقایسه.",
        "apihelp-query+allpages-param-minsize": "محدودکردن به صفحه‌هایی که همراه دست کم این تعداد بایت است.",
        "apihelp-query+allpages-param-limit": "میزان کل صفحه‌ها برای بازگرداندن.",
        "apihelp-query+allredirects-param-limit": "تعداد آیتم‌ها برای بازگرداندن.",
+       "apihelp-query+allrevisions-description": "فهرست همه نسخه‌ها",
+       "apihelp-query+mystashedfiles-param-limit": "تعداد پرونده‌هایی که باید بگیرد.",
+       "apihelp-query+allusers-param-dir": "جهتی که باید مرتب شود.",
+       "apihelp-query+allusers-paramvalue-prop-rights": "فهرست دسترسی‌هایی که کاربر دارد.",
+       "apihelp-query+allusers-paramvalue-prop-editcount": "شمار ويرایش کاربر را می‌افزايد",
+       "apihelp-query+allusers-paramvalue-prop-registration": "زمان ثبت نام کاربر را در صورت وجود می‌افزايد (ممکن است خالی باشد)",
+       "apihelp-query+allusers-param-limit": "تعداد کل نام‌های کاربری برای بازگرداندن.",
+       "apihelp-query+allusers-param-witheditsonly": "فقط کاربرانی را که ويرایش داشته اند ليست کن",
+       "apihelp-query+allusers-param-activeusers": "فقط کاربرانی را ليست کن که در $1 روز گذشته فعاليت داشته‌اند",
+       "apihelp-query+authmanagerinfo-description": "بازیابی اطلاعات در مورد وضعيت فعلی احراز هويت",
        "apihelp-query+backlinks-example-simple": "نمایش پیوندها به <kbd>Main page</kbd>.",
        "apihelp-query+blocks-example-simple": "فهرست بسته‌شده‌ها",
        "apihelp-query+categories-param-show": "کدام نوع رده‌ها نمایش داده‌شود.",
        "apihelp-query+categories-param-limit": "چه میزان رده بازگردانده شود.",
        "apihelp-query+categories-param-categories": "فقط این رده‌ها فهرست شود. کاربردی برای بررسی وجود یک صفحهٔ مشخص در یک ردهٔ مشخص.",
        "apihelp-query+categorymembers-description": "فهرست‌کردن همهٔ صفحه‌ها در یک ردهٔ مشخص‌شده.",
+       "apihelp-query+categorymembers-paramvalue-prop-ids": "افزودن شناسه صفحه",
        "apihelp-query+categorymembers-param-sort": "خصوصیت برای مرتب‌سازی",
        "apihelp-query+categorymembers-param-dir": "جهت مرتب شدن",
        "apihelp-query+categorymembers-param-startsortkey": "جایش از $1starthexsortkey استفاده کنید.",
+       "apihelp-query+deletedrevs-param-from": "شروع فهرست کردن مواردی که این عنوان را دارند.",
+       "apihelp-query+deletedrevs-param-to": "خاتمه فهرست کردن مواردی که این عنوان را دارند.",
+       "apihelp-query+deletedrevs-param-namespace": "فقط صفحات ین فضای نام را فهرست کن.",
+       "apihelp-query+deletedrevs-param-limit": "حداکثر تعداد بازنگری‌هايي که فهرست شوند.",
+       "apihelp-query+fileusage-paramvalue-prop-title": "عنوان هر صفحه.",
+       "apihelp-query+fileusage-param-limit": "تعدادی که باید بازگردانده شود.",
+       "apihelp-query+imageinfo-paramvalue-prop-dimensions": "نام مستعار برای size",
+       "apihelp-query+imageinfo-paramvalue-prop-sha1": "افزودن  SHA-1 hash برای پرونده",
+       "apihelp-query+imageinfo-paramvalue-prop-mime": "افزودن نوع MIME برای پرونده",
+       "apihelp-query+imageinfo-param-end": "زمان توقف فهرست کردن.",
        "apihelp-query+imageinfo-param-urlheight": "مشابه $1urlwidth.",
+       "apihelp-query+images-param-limit": "تعداد پرونده‌هایی که باید بازگرداند.",
        "apihelp-query+info-description": "دریافت اطلاعات سادهٔ صفحه.",
        "apihelp-query+iwbacklinks-param-prefix": "پیشوند میان‌ویکی.",
        "apihelp-query+iwbacklinks-param-title": "پیوند میان‌ویکی برای جستجو. باید همراه <var>$1blprefix</var> استفاده شود.",
        "apihelp-query+iwbacklinks-param-limit": "تعداد صفحه‌ها برای بازگرداندن.",
+       "apihelp-query+iwbacklinks-param-prop": "خصوصیتی که باید گرفته شود.",
+       "apihelp-query+iwlinks-paramvalue-prop-url": "افزودن نشانی اینترنتی کامل.",
+       "apihelp-query+langbacklinks-param-prop": "خصوصیتی که باید گرفته شود:",
+       "apihelp-query+langlinks-paramvalue-prop-url": "افزودن نشانی اینترنتی کامل.",
+       "apihelp-query+links-param-limit": "تعداد پیوندهایی که باید بازگرداند.",
+       "apihelp-query+linkshere-param-prop": "خصوصیتی که باید گرفته شود:",
+       "apihelp-query+linkshere-paramvalue-prop-pageid": "شناسه صفحه هر صفحه.",
+       "apihelp-query+linkshere-paramvalue-prop-title": "عنوان هر صفحه.",
+       "apihelp-query+linkshere-paramvalue-prop-redirect": "اگر صفحه تغییر مسیر بود برچسب بزن.",
+       "apihelp-query+linkshere-param-namespace": "فقط صفحات این فضای نام را فهرست کن.",
        "apihelp-query+linkshere-param-limit": "تعداد برای بازگرداندن.",
        "apihelp-query+logevents-description": "دریافت رویدادها از سیاهه‌ها.",
+       "apihelp-query+logevents-param-prop": "خصوصیتی که باید گرفته شود.",
+       "apihelp-query+logevents-paramvalue-prop-ids": "افزودن شناسه سیاهه رویداد.",
+       "apihelp-query+pageswithprop-paramvalue-prop-ids": "افزودن شناسه صفحه",
+       "apihelp-query+pageswithprop-param-dir": "جهت مرتب شدن",
        "apihelp-query+prefixsearch-param-search": "جستجوی رشته",
        "apihelp-query+prefixsearch-param-namespace": "فضاهای نامی برای جستجو",
        "apihelp-query+prefixsearch-param-limit": "حداکثر تعداد نتایج برای بازگرداندن.",
        "apihelp-query+random-example-generator": "بازگرداندن اطلاعات صفحه دربارهٔ دو صفحهٔ تصادفی از فضای نام اصلی",
        "apihelp-query+recentchanges-param-start": "برچسب زمانی برای آغاز شمارش از.",
        "apihelp-query+recentchanges-param-end": "برچسب زمانی برای پایان شمارش.",
+       "apihelp-query+recentchanges-paramvalue-prop-flags": "افزودن برچسب برای ویرایش.",
+       "apihelp-query+recentchanges-paramvalue-prop-timestamp": "افزودن زمان ویرایش.",
+       "apihelp-query+redirects-paramvalue-prop-title": "عنوان هر تغییرمسیر.",
        "apihelp-query+redirects-param-limit": "تعداد تغییرمسیرها برای بازگرداندن.",
+       "apihelp-query+revisions+base-paramvalue-prop-content": "متن نسخه ویرایش.",
+       "apihelp-query+revisions+base-paramvalue-prop-tags": "برچسب برای نسخه‌های ویرایش.",
+       "apihelp-query+siteinfo-param-prop": "اطلاعاتی که باید گرفته‌شود:",
+       "apihelp-query+siteinfo-paramvalue-prop-statistics": "بازرگرداندن آمار سایت.",
+       "apihelp-query+siteinfo-example-simple": "دریافت اطلاعات سایت.",
+       "apihelp-query+tags-description": "فهرست تغییرات برچسب‌ها.",
+       "apihelp-query+tags-param-limit": "حداکثر تعداد برچسب‌ها برای فهرست شدن.",
+       "apihelp-query+tags-param-prop": "خصوصیتی که باید گرفته شود:",
+       "apihelp-query+tags-paramvalue-prop-name": "افزودن نام برچسب.",
+       "apihelp-query+transcludedin-paramvalue-prop-title": "عنوان هر صفحه.",
+       "apihelp-query+watchlist-paramvalue-type-log": "مدخل‌های سیاهه.",
+       "apihelp-stashedit-param-text": "محتوای صفحه.",
+       "apihelp-stashedit-param-contentmodel": "مدل محتوایی محتوای جدید",
+       "apihelp-stashedit-param-summary": "خلاصه تغییرات.",
+       "apihelp-tag-param-reason": "دلیل تغییر.",
+       "apihelp-unblock-description": "بازکردن کاربر.",
+       "apihelp-undelete-param-reason": "دلیل احیا.",
+       "apihelp-upload-param-filename": "نام پرونده مقصد.",
        "apihelp-upload-param-ignorewarnings": "چشم‌پوشی از همهٔ هشدارها.",
+       "apihelp-upload-param-file": "محتوی پرونده.",
+       "apihelp-upload-param-url": "نشانی اینترنتی برای دریافت فایل.",
        "apihelp-userrights-param-user": "نام کاربری.",
+       "apihelp-userrights-param-userid": "شناسه کاربر.",
+       "apihelp-userrights-param-reason": "دلیل تغییر.",
+       "apihelp-none-description": "بیرون‌ریزی هیچ.",
+       "api-format-title": "نتیجه ای‌پی‌آی مدیاویکی",
+       "api-help-main-header": "پودمان اصلی",
+       "api-help-source": "منبع: $1",
        "api-help-param-deprecated": "توصیه.",
+       "api-help-param-limit": "بيش از $1 مجاز نيست",
+       "api-help-param-limit2": "بيش از $1 (برای ربات‌ها $2) مجاز نيست",
+       "api-help-param-default": "پیش‌فرض: $1",
        "api-credits-header": "اعتبار"
 }
index 4d23b6f..46bb3e6 100644 (file)
@@ -24,7 +24,8 @@
                        "Elfix",
                        "Lbayle",
                        "Verdy p",
-                       "Yasten"
+                       "Yasten",
+                       "Trial"
                ]
        },
        "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page|Documentation]]\n* [[mw: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 en-tête HTTP sera renvoyé avec la clé « MediaWiki-API-Error ». La valeur de cet en-tête et le code d’erreur renvoyé prendront la même valeur. Pour plus d’information, voyez [[mw: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]].",
@@ -37,7 +38,7 @@
        "apihelp-main-param-requestid": "Toute valeur fournie ici sera incluse dans la réponse. Peut être utilisé pour distinguer des demandes.",
        "apihelp-main-param-servedby": "Inclure le nom d’hôte qui a renvoyé la requête dans les résultats.",
        "apihelp-main-param-curtimestamp": "Inclure l’horodatage actuel dans le résultat.",
-       "apihelp-main-param-origin": "En accédant à l’API en utilisant une requête AJAX inter-domaines (CORS), mettre le domaine d’origine dans ce paramètre. Il doit être inclus dans toute requête de pre-flight, et doit donc faire partie de l’URI de la requête (pas du corps du POST). Il doit correspondre exactement à une des origines dans l’entête <code>Origin</code> header, donc il doit être fixé avec quelque chose comme <kbd>https://en.wikipedia.org</kbd> ou <kbd>https://meta.wikimedia.org</kbd>. Si ce paramètre ne correspond pas à l’entête <code>Origin</code>, une réponse 403 sera renvoyée. Si ce paramètre correspond à l’entête <code>Origin</code> et que l’origine est en liste blanche, un entête <code>Access-Control-Allow-Origin</code> sera positionné.",
+       "apihelp-main-param-origin": "En accédant à l’API en utilisant une requête AJAX inter-domaines (CORS), mettre le domaine d’origine dans ce paramètre. Il doit être inclus dans toute requête de pre-flight, et doit donc faire partie de l’URI de la requête (pas du corps du POST).\n\nPour les requêtes authentifiées, il doit correspondre exactement à une des origines dans l’entête <code>Origin</code> header, donc il doit être fixé avec quelque chose comme <kbd>https://en.wikipedia.org</kbd> ou <kbd>https://meta.wikimedia.org</kbd>. Si ce paramètre ne correspond pas à l’entête <code>Origin</code>, une réponse 403 sera renvoyée. Si ce paramètre correspond à l’entête <code>Origin</code> et que l’origine est en liste blanche, des entêtes <code>Access-Control-Allow-Origin</code> et <code>Access-Control-Allow-Credentials</code> seront positionnés.\n\nPour les requêtes non authentifiées, spécifiez la valeur <kbd>*</kbd>. Cela positionnera l’entête <code>Access-Control-Allow-Origin</code>, mais <code>Access-Control-Allow-Credentials</code> vaudra <code>false</code> et toutes les données spécifiques à l’utilisateur seront filtrées.",
        "apihelp-main-param-uselang": "Langue à utiliser pour les traductions de message. <kbd>[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]</kbd> avec <kbd>siprop=languages</kbd> renvoie une liste de codes de langue, ou en spécifiant <kbd>user</kbd> pour utiliser la préférence de langue de l’utilisateur actuel, ou en spécifiant <kbd>content</kbd> pour utiliser le langage du contenu de ce wiki.",
        "apihelp-block-description": "Bloquer un utilisateur.",
        "apihelp-block-param-user": "Nom d’utilisateur, adresse IP ou plage d’adresses IP que vous voulez bloquer.",
@@ -74,6 +75,7 @@
        "apihelp-compare-param-torev": "Seconde révision à comparer.",
        "apihelp-compare-example-1": "Créer une différence entre les révisions 1 et 2",
        "apihelp-createaccount-description": "Créer un nouveau compte utilisateur.",
+       "apihelp-createaccount-param-preservestate": "Si <kbd>[[Special:ApiHelp/query+authmanagerinfo|action=query&meta=authmanagerinfo]]</kbd> a retourné true pour <samp>hasprimarypreservedstate</samp>, les demandes marquées comme <samp>primary-required</samp> doivent être omises. Si elle a retourné une valeur non vide pour <samp>preservedusername</samp>, ce nom d'utilisateur doit être utilisé pour le paramètre <var>username</var>.",
        "apihelp-createaccount-example-create": "Commencer le processus de création d’un utilisateur <kbd>Exemple</kbd> avec le mot de passe <kbd>ExempleMotDePasse</kbd>.",
        "apihelp-createaccount-param-name": "Nom d’utilisateur.",
        "apihelp-createaccount-param-password": "Mot de passe (ignoré si <var>$1mailpassword</var> est défini).",
@@ -86,6 +88,9 @@
        "apihelp-createaccount-param-language": "Code de langue à mettre par défaut pour l’utilisateur (facultatif, par défaut langue du contenu).",
        "apihelp-createaccount-example-pass": "Créer l’utilisateur <kbd>testuser</kbd> avec le mot de passe <kbd>test123</kbd>.",
        "apihelp-createaccount-example-mail": "Créer l’utilisateur <kbd>testmailuser</kbd> et envoyer par courriel un mot de passe généré aléatoirement.",
+       "apihelp-cspreport-description": "Utilisé par les navigateurs pour signaler les violations de la politique de confidentialité du contenu. Ce module ne devrait jamais être utilisé, sauf quand il est utilisé automatiquement par un navigateur web compatible avec CSP.",
+       "apihelp-cspreport-param-reportonly": "Marquer comme étant un rapport d’une politique de surveillance, et non une politique exigée",
+       "apihelp-cspreport-param-source": "Ce qui a généré l’entête CSP qui a déclenché ce rapport",
        "apihelp-delete-description": "Supprimer une page.",
        "apihelp-delete-param-title": "Titre de la page que vous voulez supprimer. Impossible de l’utiliser avec <var>$1pageid</var>.",
        "apihelp-delete-param-pageid": "ID de la page que vous voulez supprimer. Impossible à utiliser avec <var>$1title</var>.",
        "apihelp-feedcontributions-param-deletedonly": "Afficher uniquement les contributions supprimées.",
        "apihelp-feedcontributions-param-toponly": "Afficher uniquement les modifications qui sont les dernières révisions.",
        "apihelp-feedcontributions-param-newonly": "Afficher uniquement les modifications qui sont des créations de page.",
+       "apihelp-feedcontributions-param-hideminor": "Masquer les modifications mineures.",
        "apihelp-feedcontributions-param-showsizediff": "Afficher la différence de taille entre les révisions.",
        "apihelp-feedcontributions-example-simple": "Renvoyer les contributions de l'utilisateur <kbd>Exemple</kbd>.",
        "apihelp-feedrecentchanges-description": "Renvoie un fil de modifications récentes.",
        "apihelp-query+prefixsearch-param-limit": "Nombre maximal de résultats à renvoyer.",
        "apihelp-query+prefixsearch-param-offset": "Nombre de résultats à sauter.",
        "apihelp-query+prefixsearch-example-simple": "Rechercher les titres de page commençant par <kbd>meaning</kbd>.",
+       "apihelp-query+prefixsearch-param-profile": "Rechercher le profil à utiliser.",
        "apihelp-query+protectedtitles-description": "Lister tous les titres protégés en création.",
        "apihelp-query+protectedtitles-param-namespace": "Lister uniquement les titres dans ces espaces de nom.",
        "apihelp-query+protectedtitles-param-level": "Lister uniquement les titres avec ces niveaux de protection.",
        "apihelp-query+search-param-what": "Quel type de recherche effectuer.",
        "apihelp-query+search-param-info": "Quelles métadonnées renvoyer.",
        "apihelp-query+search-param-prop": "Quelles propriétés renvoyer :",
+       "apihelp-query+search-param-qiprofile": "Profil indépendant des requêtes à utiliser (affecte algorithme de classement).",
        "apihelp-query+search-paramvalue-prop-size": "Ajoute la taille de la page en octets.",
        "apihelp-query+search-paramvalue-prop-wordcount": "Ajoute le nombre de mots de la page.",
        "apihelp-query+search-paramvalue-prop-timestamp": "Ajoute l’horodatage de la dernière modification de la page.",
        "apihelp-query+watchlistraw-param-show": "Lister uniquement les éléments correspondant à ces critères.",
        "apihelp-query+watchlistraw-param-owner": "Utilisé avec $1token pour accéder à la liste de suivi d’un autre utilisateur.",
        "apihelp-query+watchlistraw-param-token": "Un jeton de sécurité (disponible dans les [[Special:Preferences#mw-prefsection-watchlist|préférences]] de l’utilisateur) pour permettre l’accès à la liste de suivi d’un autre utilisateur.",
+       "apihelp-query+watchlistraw-param-dir": "Le sens dans lequel lister.",
        "apihelp-query+watchlistraw-param-fromtitle": "Démarrer l'énumération avec ce Titre (inclure le préfixe d'espace de noms) :",
        "apihelp-query+watchlistraw-param-totitle": "Terminer l'énumération avec ce Titre (inclure le préfixe d'espace de noms) :",
        "apihelp-query+watchlistraw-example-simple": "Lister les pages dans la liste de suivi de l’utilisateur actuel",
        "apihelp-stashedit-param-contentmodel": "Modèle de contenu du nouveau contenu.",
        "apihelp-stashedit-param-contentformat": "Format de sérialisation de contenu utilisé pour le texte saisi.",
        "apihelp-stashedit-param-baserevid": "ID de révision de la révision de base.",
+       "apihelp-stashedit-param-summary": "Résumé du changement",
        "apihelp-tag-description": "Ajouter ou enlever des balises de modification aux révisions ou ou aux entrées de journal individuelles.",
        "apihelp-tag-param-rcid": "Un ou plus IDs de modification récente à partir desquels ajouter ou supprimer la balise.",
        "apihelp-tag-param-revid": "Un ou plus IDs de révision à partir desquels ajouter ou supprimer la balise.",
        "api-help-permissions-granted-to": "{{PLURAL:$1|Accordé à}} : $2",
        "api-help-right-apihighlimits": "Utiliser des valeurs plus hautes dans les requêtes de l’API (requêtes lentes : $1 ; requêtes rapides : $2). Les limites pour les requêtes lentes s’appliquent aussi aux paramètres multivalués.",
        "api-help-open-in-apisandbox": "<small>[ouvrir dans le bac à sable]</small>",
-       "api-help-authmanager-general-usage": "La procédure générale pour utiliser ce module est la suivante :\n# Récupérer les champs disponibles avec <kbd>[[Special:ApiHelp/query+authmanagerinfo|action=query&meta=authmanagerinfo]]</kbd> avec <kbd>amirequestsfor=$4</kbd>, et un jeton <kbd>$5</kbd> avec <kbd>[[Special:ApiHelp/query+tokens|action=query&meta=tokens]].\n# Présenter les champs à l’utilisateur, et les lui faire soumettre.\n# Faire un envoi à ce module, en fournissant <var>$1returnurl</var> et les champs appropriés.\n# Vérifier le <samp>status</samp> dans la réponse.\n#* Si vous avez reçu <samp>PASS</samp> ou <samp>FAIL</samp>, c’est terminé. L’opération a soit réussi, soit échoué.\n#* Si vous avez reçu <samp>UI</samp>, affichez les nouveaux champs à l’utilisateur et faites-les-lui soumettre. Puis envoyez-les à ce module avec <var>$1continue</var> et l’ensemble des champs appropriés, et recommencez l’étape 4.\n#* Si vous avez reçu <samp>REDIRECT</samp>, envoyez l’utilisateur vers la cible <samp>redirecttarget</samp> et attendez le retour vers <var>$1returnurl</var>. Puis envoyez à ce module avec <var>$1continue</var> et tous les champs passés à l’URL de retour, puis répétez l’étape 4.\n#* Si vous avez reçu <samp>RESTART</samp>, cela veut dire que l’authentification a fonctionné, mais nous n’avons pas de compte utilisateur lié. Vous pouvez traiter cela comme un <samp>UI</samp> ou un <samp>FAIL</samp>.",
+       "api-help-authmanager-general-usage": "La procédure générale pour utiliser ce module est la suivante :\n# Récupérer les champs disponibles avec <kbd>[[Special:ApiHelp/query+authmanagerinfo|action=query&meta=authmanagerinfo]]</kbd> avec <kbd>amirequestsfor=$4</kbd>, et un jeton <kbd>$5</kbd> avec <kbd>[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]</kbd>.\n# Présenter les champs à l’utilisateur, et les lui faire soumettre.\n# Faire un envoi à ce module, en fournissant <var>$1returnurl</var> et les champs appropriés.\n# Vérifier le <samp>status</samp> dans la réponse.\n#* Si vous avez reçu <samp>PASS</samp> ou <samp>FAIL</samp>, c’est terminé. L’opération a soit réussi, soit échoué.\n#* Si vous avez reçu <samp>UI</samp>, affichez les nouveaux champs à l’utilisateur et faites-les-lui soumettre. Puis envoyez-les à ce module avec <var>$1continue</var> et l’ensemble des champs appropriés, et recommencez l’étape 4.\n#* Si vous avez reçu <samp>REDIRECT</samp>, envoyez l’utilisateur vers la cible <samp>redirecttarget</samp> et attendez le retour vers <var>$1returnurl</var>. Puis envoyez à ce module avec <var>$1continue</var> et tous les champs passés à l’URL de retour, puis répétez l’étape 4.\n#* Si vous avez reçu <samp>RESTART</samp>, cela veut dire que l’authentification a fonctionné, mais nous n’avons pas de compte utilisateur lié. Vous pouvez traiter cela comme un <samp>UI</samp> ou un <samp>FAIL</samp>.",
        "api-help-authmanagerhelper-requests": "Utiliser uniquement ces requêtes d’authentification, avec l’<samp>id</samp> renvoyé par <kbd>[[Special:ApiHelp/query+authmanagerinfo|action=query&meta=authmanagerinfo]]</kbd> avec <kbd>amirequestsfor=$1</kbd> ou depuis une réponse précédente de ce module.",
        "api-help-authmanagerhelper-request": "Utiliser cette requête d’authentification, avec l’<samp>id</samp> renvoyé par <kbd>[[Special:ApiHelp/query+authmanagerinfo|action=query&meta=authmanagerinfo]]</kbd> avec <kbd>amirequestsfor=$1</kbd>.",
        "api-help-authmanagerhelper-messageformat": "Format à utiliser pour retourner les messages.",
index 087d2e4..2e0cbc9 100644 (file)
@@ -50,6 +50,7 @@
        "apihelp-clearhasmsg-example-1": "Limpar a bandeira <code>hasmsg</code> para o usuario actual",
        "apihelp-clientlogin-description": "Conectarse á wiki usando o fluxo interactivo.",
        "apihelp-clientlogin-example-login": "Comezar o proceso de conexión á wiki como o usuario <kbd>Exemplo</kbd> con contrasinal <kbd>ExemploContrasinal</kbd>.",
+       "apihelp-clientlogin-example-login2": "Continuar a conexión despois dunha resposta de <samp>UI</samp> para unha autenticación de dous factores, proporcionando un <var>OATHToken</var> con valor <kbd>987654</kbd>.",
        "apihelp-compare-description": "Obter as diferencias entre dúas páxinas.\n\nDebe indicar un número de revisión, un título de páxina, ou un ID de páxina tanto para \"from\" como para \"to\".",
        "apihelp-compare-param-fromtitle": "Primeiro título para comparar.",
        "apihelp-compare-param-fromid": "Identificador da primeira páxina a comparar.",
@@ -71,6 +72,8 @@
        "apihelp-createaccount-param-language": "Código de lingua para usar como defecto polo usuario (de xeito opcional, usarase a lingua por defecto)",
        "apihelp-createaccount-example-pass": "Crear usuario <kbd>testuser</kbd> con contrasinal <kbd>test123</kbd>.",
        "apihelp-createaccount-example-mail": "Crear usuario <kbd>testmailuser</kbd>\"testmailuser\" e enviar por correo electrónico un contrasinal xenerado de forma aleatoria.",
+       "apihelp-cspreport-description": "Usado polos navegadores para informar de violacións da política de confidencialidade de contido. Este módulo non debe se usado nunca, excepto cando é usado automaticamente por un navegador web compatible con CSP.",
+       "apihelp-cspreport-param-source": "Que xerou a cabeceira CSP que lanzou este informe",
        "apihelp-delete-description": "Borrar a páxina.",
        "apihelp-delete-param-title": "Título da páxina a eliminar. Non pode usarse xunto con <var>$1pageid</var>.",
        "apihelp-delete-param-pageid": "Identificador da páxina a eliminar. Non pode usarse xunto con <var>$1title</var>.",
        "apihelp-feedcontributions-param-deletedonly": "Mostrar só as contribuciones eliminadas.",
        "apihelp-feedcontributions-param-toponly": "Mostrar só as edicións que que son as ultimas revisións.",
        "apihelp-feedcontributions-param-newonly": "Mostrar só as edicións que crearon páxinas.",
+       "apihelp-feedcontributions-param-hideminor": "Ocultar edicións menores.",
        "apihelp-feedcontributions-param-showsizediff": "Mostrar diferenza de tamaño entre edicións.",
        "apihelp-feedcontributions-example-simple": "Mostrar as contribucións do usuario <kbd>Example</kbd>.",
        "apihelp-feedrecentchanges-description": "Devolve un ficheiro de cambios recentes.",
        "apihelp-linkaccount-description": "Vincular unha conta dun provedor externo ó usuario actual.",
        "apihelp-linkaccount-example-link": "Comezar o proceso de vincular a unha conta de <kbd>Exemplo</kbd>.",
        "apihelp-login-description": "No caso dunha conexión correcta, as cookies necesarias incluiranse nas cabeceiras HTTP de resposta. No caso dunha conexión fallida, os intentos posteriores poden ser reducidos para limitar ataques automaticos de roubo de contrasinais.",
+       "apihelp-login-description-nobotpasswords": "Conectarse e obter as cookies de autenticación. \n\nEsta acción está obsoleta e pode fallar sen avisar. Para conectarse sen problema use <kbd>[[Special:ApiHelp/clientlogin|action=clientlogin]]</kbd>.",
+       "apihelp-login-description-nonauthmanager": "Conectarse e obter as cookies de autenticación. \n\nNo caso dunha conexión correcta, as cookies necesarias incluiranse nas cabeceiras HTTP de resposta. No caso dunha conexión fallida, os intentos posteriores poden ser reducidos para limitar ataques automaticos de roubo de contrasinais.",
        "apihelp-login-param-name": "Nome de usuario.",
        "apihelp-login-param-password": "Contrasinal",
        "apihelp-login-param-domain": "Dominio (opcional).",
        "apihelp-query+prefixsearch-param-limit": "Número máximo de resultados a visualizar.",
        "apihelp-query+prefixsearch-param-offset": "Número de resultados a saltar.",
        "apihelp-query+prefixsearch-example-simple": "Buscar títulos de páxina que comecen con <kbd>meaning</kbd>.",
+       "apihelp-query+prefixsearch-param-profile": "Buscar o perfil a usar.",
        "apihelp-query+protectedtitles-description": "Listar todos os títulos protexidos en creación.",
        "apihelp-query+protectedtitles-param-namespace": "Só listar títulos nestes espazos de nomes.",
        "apihelp-query+protectedtitles-param-level": "Só listar títulos con estos niveis de protección.",
        "apihelp-query+search-param-what": "Que tipo de busca lanzar.",
        "apihelp-query+search-param-info": "Que metadatos devolver.",
        "apihelp-query+search-param-prop": "Que propiedades devolver:",
+       "apihelp-query+search-param-qiprofile": "Perfil independente das consultas a usar (afecta ó algoritmo de clasificación).",
        "apihelp-query+search-paramvalue-prop-size": "Engade o tamaño da páxina en bytes.",
        "apihelp-query+search-paramvalue-prop-wordcount": "Engade o número de palabras da páxina.",
        "apihelp-query+search-paramvalue-prop-timestamp": "Engade o selo de tempo da última vez que foi editada a páxina.",
        "apihelp-query+watchlistraw-param-show": "Só listar os elementos que cumplen estos criterios.",
        "apihelp-query+watchlistraw-param-owner": "Usado con $1token para acceder á lista de páxinas de vixiancia doutro usuario.",
        "apihelp-query+watchlistraw-param-token": "Identificador de seguridade (dispoñible nas [[Special:Preferences#mw-prefsection-watchlist|preferencias]] de usuario) para permitir o acceso a outros á súa páxina de vixiancia.",
+       "apihelp-query+watchlistraw-param-dir": "Dirección na cal listar.",
        "apihelp-query+watchlistraw-param-fromtitle": "Título (co prefixo de espazo de nomes) dende o que comezar a enumerar.",
        "apihelp-query+watchlistraw-param-totitle": "Título (co prefixo de espazo de nomes) no que rematar de enumerar.",
        "apihelp-query+watchlistraw-example-simple": "Listar páxinas na lista de vixiancia do usuario actual.",
        "apihelp-removeauthenticationdata-description": "Elimina os datos de autenticación do usuario actual.",
        "apihelp-removeauthenticationdata-example-simple": "Intenta eliminar os datos de usuario actual para <kbd>FooAuthenticationRequest</kbd>.",
        "apihelp-resetpassword-description": "Envía un correo de inicialización de contrasinal a un usuario.",
+       "apihelp-resetpassword-description-noroutes": "Non están dispoñibles as rutas de reinicio de contrasinal \n\nActive as rutas en <var>[[mw:Manual:$wgPasswordResetRoutes|$wgPasswordResetRoutes]]</var> para usar este módulo.",
        "apihelp-resetpassword-param-user": "Usuario sendo reinicializado.",
        "apihelp-resetpassword-param-email": "Está reinicializándose o enderezo de correo electrónico do usuario.",
        "apihelp-resetpassword-param-capture": "Devolve os contrasinais temporais que se enviaron. Require o dereito de usuario <code>passwordreset</code> .",
        "apihelp-stashedit-param-contentmodel": "Modelo de contido para o novo contido.",
        "apihelp-stashedit-param-contentformat": "Formato de serialización de contido utilizado para o texto de entrada.",
        "apihelp-stashedit-param-baserevid": "Identificador da revisión da revisión de base.",
+       "apihelp-stashedit-param-summary": "Resumo do cambio.",
        "apihelp-tag-description": "Engadir ou eliminar etiquetas de cambio de revisións individuais ou entradas de rexistro.",
        "apihelp-tag-param-rcid": "Identificadores de un ou máis cambios recentes nos que engadir ou eliminar a etiqueta.",
        "apihelp-tag-param-revid": "Identificadores de unha ou máis revisións nas que engadir ou eliminar a etiqueta.",
        "api-help-permissions-granted-to": "{{PLURAL:$1|Concedida a|Concedidas a}}: $2",
        "api-help-right-apihighlimits": "Usar os valores superiores das consultas da API (consultas lentas: $1; consultas rápidas: $2). Os límites para as consultas lentas tamén se aplican ós parámetros multivaluados.",
        "api-help-open-in-apisandbox": "<small>[abrir en zona de probas]</small>",
+       "api-help-authmanagerhelper-requests": "Só usar estas peticións de autenticación, co <samp>id</samp> devolto por <kbd>[[Special:ApiHelp/query+authmanagerinfo|action=query&meta=authmanagerinfo]]</kbd> con <kbd>amirequestsfor=$1</kbd> ou dunha resposta previa deste módulo.",
+       "api-help-authmanagerhelper-request": "Usar esta petición de autenticación, co <samp>id</samp> devolto por <kbd>[[Special:ApiHelp/query+authmanagerinfo|action=query&meta=authmanagerinfo]]</kbd> con <kbd>amirequestsfor=$1</kbd>.",
        "api-help-authmanagerhelper-messageformat": "Formato a usar para devolver as mensaxes.",
        "api-help-authmanagerhelper-mergerequestfields": "Fusionar os campos de información para todas as peticións de autenticación nunha táboa.",
        "api-help-authmanagerhelper-preservestate": "Conservar o estado dun intento previo de conexión fallida, se é posible.",
+       "api-help-authmanagerhelper-continue": "Esta petición é unha continucación despois dun resposta precedente <samp>UI</samp> ou <samp>REDIRECT</samp>. Esta ou <var>$1returnurl</var> é requirida.",
        "api-credits-header": "Créditos",
        "api-credits": "Desenvolvedores da API:\n* Roan Kattouw (desenvolvedor principal, set. 2007-2009)\n* Victor Vasiliev\n* Bryan Tong Minh\n* Sam Reed\n* Yuri Astrakhan (creador e desenvolvedor principal, set. 2006-sep. 2007)\n* Brad Jorsch (desenvolvedor principal, 2013-actualidade)\n\nEnvía comentarios, suxerencias e preguntas a mediawiki-api@lists.wikimedia.org\nou informa dun erro en https://phabricator.wikimedia.org/."
 }
index 080e0dd..0d44d96 100644 (file)
@@ -24,7 +24,7 @@
        "apihelp-main-param-requestid": "כל ערך שיינתן כאן ייכלל בתשובה. אפשר להשתמש בזה כדי להבדיל בין בקשות.",
        "apihelp-main-param-servedby": "לכלול את שם המארח ששירת את הבקשה בתוצאות.",
        "apihelp-main-param-curtimestamp": "הכללת חותם־הזמן הנוכחי בתוצאה.",
-       "apihelp-main-param-origin": "בעת גישה ל־API עם בקשת AJAX חוצה מתחמים (CORS), יש להציב כאן את המתחם שהבקשה יוצאת ממנו. זה היה להיות כלול בכל בקשה מקדימה, ולכן הוא חייב להיות חלק מה־URI של הבקשה (לא גוף ה־POST). זה חייב להיות תואם במדויק לאחד המקורות בכותרת <code>Origin</code>, כך שזה צריך להיות מוגדר למשהו כמו <kbd>https://en.wikipedia.org</kbd> או <kbd>https://meta.wikimedia.org</kbd>. אם הפרמטר הזה אינו תואם לכותרת <code>Origin</code>, תוחזר תשובת 403. אם הפרמטר הזה תורם לכותרת <code>Origin</code> והמקור נמצא ברשימה הלבנה, תוגדר כותרת <code>Access-Control-Allow-Origin</code>.",
+       "apihelp-main-param-origin": "בעת גישה ל־API עם בקשת AJAX חוצה מתחמים (CORS), יש להציב כאן את המתחם שהבקשה יוצאת ממנו. זה היה להיות כלול בכל בקשה מקדימה, ולכן הוא חייב להיות חלק מה־URI של הבקשה (לא גוף ה־POST).\n\nעבור בקשות מאומתות, זה חייב להיות תואם במדויק לאחד המקורות בכותרת <code>Origin</code>, כך שזה צריך להיות מוגדר למשהו כמו <kbd>https://en.wikipedia.org</kbd> או <kbd>https://meta.wikimedia.org</kbd>. אם הפרמטר הזה אינו תואם לכותרת <code>Origin</code>, תוחזר תשובת 403. אם הפרמטר הזה תורם לכותרת <code>Origin</code> והמקור נמצא ברשימה הלבנה, תוגדרנה הכותרות <code>Access-Control-Allow-Origin</code> ו־<code>Access-Control-Allow-Credentials</code>.\n\nעבור בקשות בלתי־מאומתות, יש לציין את הערך <kbd>*</kbd>. זה יגרום לכותרת להיות <code>Access-Control-Allow-Origin</code>, אבל <code>Access-Control-Allow-Credentials</code> תהיה <code>false</code> וכל הנתונים הייחודיים למשתמש יהיו מוגבלים.",
        "apihelp-main-param-uselang": "באיזו שפה להשתמש לתרגומי הודעות. הקריאה <kbd>[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]</kbd> עם <kbd>siprop=languages</kbd> מחזירה רשימת קודים. ציון <kbd>user</kbd> כדי להשתמש בהעדפת השפה של המשתמש הנוכחי, וציון <kbd>content</kbd> להשתמש בקוד השפה של הוויקי הזה.",
        "apihelp-block-description": "חסימת משתמש.",
        "apihelp-block-param-user": "שם משתמש, כתובת IP, או טווח IP שהנך רוצה לחסום.",
@@ -61,6 +61,7 @@
        "apihelp-compare-param-torev": "גרסה שנייה להשוואה.",
        "apihelp-compare-example-1": "יצירת תיעוד שינוי בין גרסה 1 ל־2.",
        "apihelp-createaccount-description": "יצירת חשבון משתמש חדש.",
+       "apihelp-createaccount-param-preservestate": "אם <kbd>[[Special:ApiHelp/query+authmanagerinfo|action=query&meta=authmanagerinfo]]</kbd> החזיר true עבור <samp>hasprimarypreservedstate</samp>, בקשות שמסומנות בתור <samp>primary-required</samp> אמורות להיות מושמטות. אם מוחזר ערך לא ריק ל־<samp>preservedusername</samp>, שם המשתמש הזה ישמש לפרמטר <var>username</var>.",
        "apihelp-createaccount-example-create": "תחילת תהליך יצירת המשתמש <kbd>Example</kbd> עם הססמה <kbd>ExamplePassword</kbd>.",
        "apihelp-createaccount-param-name": "שם משתמש.",
        "apihelp-createaccount-param-password": "ססמה (לא ישפיע אם הוגדר <var>$1mailpassword</var>).",
@@ -73,6 +74,9 @@
        "apihelp-createaccount-param-language": "קוד השפה שיוגדר כבררת המחדל למשתמש (רשות, בררת המחדל היא שפת התוכן).",
        "apihelp-createaccount-example-pass": "יצירת המשתמש <kbd>testuser</kbd> עם הססמה <kbd>test123</kbd>.",
        "apihelp-createaccount-example-mail": "יצירת המשתמש <kbd>testmailuser</kbd> ושליחת ססמה שיוצרה אקראית בדוא״ל.",
+       "apihelp-cspreport-description": "משמש דפדפנים לדיווח הפרות של מדיניות אבטחת תוכן. המודול הזה לעולם לא ישמש אלא אם הוא משמש עם דפדפן תומך CSP.",
+       "apihelp-cspreport-param-reportonly": "לסמן בתור דיווח ממדיניות מנטרת, לא מדיניות כפויה",
+       "apihelp-cspreport-param-source": "מה ייצר את כותרת ה־CSP שייצרה את הדו״ח הזה",
        "apihelp-delete-description": "מחיקת דף.",
        "apihelp-delete-param-title": "כותרת העמוד למחיקה. לא ניתן להשתמש בשילוב עם <var>$1pageid</var>.",
        "apihelp-delete-param-pageid": "מס׳ הזיהוי של העמוד למחיקה. לא ניתן להשתמש בשילוב עם <var>$1title</var>.",
        "apihelp-expandtemplates-param-includecomments": "האם לכלול הערות HTML בפלט.",
        "apihelp-expandtemplates-param-generatexml": "יצירת עץ פענוח XML (מוחלף ב־$1prop=parsetree).",
        "apihelp-expandtemplates-example-simple": "להרחיב את קוד הוויקי <kbd><nowiki>{{Project:Sandbox}}</nowiki></kbd>.",
-       "apihelp-feedcontributions-description": "×\94×\97×\96רת הזנת תרומות משתמש.",
+       "apihelp-feedcontributions-description": "×\9c×\94×\97×\96×\99ר הזנת תרומות משתמש.",
        "apihelp-feedcontributions-param-feedformat": "תסדיר ההזנה.",
        "apihelp-feedcontributions-param-user": "לקבל תרומות של אילו משמשים.",
        "apihelp-feedcontributions-param-namespace": "לפי איזה מרחב שם לסנן את התרומות.",
        "apihelp-feedcontributions-param-deletedonly": "הצגת תרומות שנמחקו בלבד.",
        "apihelp-feedcontributions-param-toponly": "הצגת עריכות שהן הגרסה העדכנית ביותר בלבד.",
        "apihelp-feedcontributions-param-newonly": "להציג רק עריכות שהן יצירות דפים.",
+       "apihelp-feedcontributions-param-hideminor": "להסתיר עריכות משניות.",
        "apihelp-feedcontributions-param-showsizediff": "להציג את ההבדל בגודל בין גרסאות.",
        "apihelp-feedcontributions-example-simple": "החזרת תרומות עבור המשתמש <kbd>Example</kbd>.",
        "apihelp-feedrecentchanges-description": "להחזיר הזנת שינויים אחרונים.",
        "apihelp-query+allimages-param-start": "מאיזה חותם־זמן להתחיל למנות. יכול לשמש רק עם $1sort=timestamp.",
        "apihelp-query+allimages-param-end": "באיזה חותם זמן להפסיק לרשום. אפשר להשתמש בזה רק עם $1sort=timestamp.",
        "apihelp-query+allimages-param-prefix": "חיפוש כל שמות התמונות שמתחילים בערך הזה. יכול לשמש רק עם $1sort=name.",
-       "apihelp-query+allimages-param-minsize": "×\9c×\94×\92×\91×\99×\9c ×\9cת×\9e×\95× ×\95ת ×¢×\9d ×\9eספר ×\9b×\96×\94 ×©×\9c ×\91תים לפחות.",
-       "apihelp-query+allimages-param-maxsize": "×\9c×\94×\92×\91×\99×\9c ×\9cת×\9e×\95× ×\95ת ×¢×\9d ×\9eספר ×\9b×\96×\94 ×\9c×\9b×\9c ×\94×\99×\95תר ×©×\9c ×\91תים.",
+       "apihelp-query+allimages-param-minsize": "×\9c×\94×\92×\91×\99×\9c ×\9cת×\9e×\95× ×\95ת ×¢×\9d ×\9eספר ×\9b×\96×\94 ×©×\9c ×\91×\99×\99×\98ים לפחות.",
+       "apihelp-query+allimages-param-maxsize": "×\9c×\94×\92×\91×\99×\9c ×\9cת×\9e×\95× ×\95ת ×¢×\9d ×\9eספר ×\9b×\96×\94 ×\9c×\9b×\9c ×\94×\99×\95תר ×©×\9c ×\91×\99×\99×\98ים.",
        "apihelp-query+allimages-param-sha1": "גיבוב SHA1 של תמונה. דריסת $1sha1base36.",
        "apihelp-query+allimages-param-sha1base36": "גיבוב SHA1 של התמונה בבסיס 36 (הבסיס בו נעשה שימוש במדיה־ויקי).",
        "apihelp-query+allimages-param-user": "להחזיר רק קבצים שהועלו על־ידי המשתמש הזה. יכול לשמש רק עם $1sort=timestamp. לא יכול לשמש יחד עם $1filterbots.",
        "apihelp-query+allpages-param-prefix": "חיפוש כל שמות הדפים שמתחילים בערך הזה.",
        "apihelp-query+allpages-param-namespace": "איזה מרחב שם למנות.",
        "apihelp-query+allpages-param-filterredir": "אילו דפים לרשום.",
-       "apihelp-query+allpages-param-minsize": "×\9c×\94×\92×\91×\99×\9c ×\9c×\93פ×\99×\9d ×¢×\9d ×\9eספר ×\9b×\96×\94 ×\9cפ×\97×\95ת ×©×\9c ×\91תים.",
-       "apihelp-query+allpages-param-maxsize": "×\9c×\94×\92×\91×\99×\9c ×\9c×\93פ×\99×\9d ×©×\99ש ×\91×\94×\9d ×\9c×\9b×\9c ×\94×\99×\95תר ×\9eספר ×\9b×\96×\94 ×©×\9c ×\91תים.",
+       "apihelp-query+allpages-param-minsize": "×\9c×\94×\92×\91×\99×\9c ×\9c×\93פ×\99×\9d ×¢×\9d ×\9eספר ×\9b×\96×\94 ×\9cפ×\97×\95ת ×©×\9c ×\91×\99×\99×\98ים.",
+       "apihelp-query+allpages-param-maxsize": "×\9c×\94×\92×\91×\99×\9c ×\9c×\93פ×\99×\9d ×©×\99ש ×\91×\94×\9d ×\9c×\9b×\9c ×\94×\99×\95תר ×\9eספר ×\9b×\96×\94 ×©×\9c ×\91×\99×\99×\98ים.",
        "apihelp-query+allpages-param-prtype": "להגביל רק לדפים מוגנים.",
        "apihelp-query+allpages-param-prlevel": "לסנו הגנות לפי רמת ההגנה (חייב לשמש עם $1prtype= parameter).",
        "apihelp-query+allpages-param-prfiltercascade": "לסנן הגנות לפי דירוגיות (לא תקף כאשר $1prtype אינו מוגדר).",
        "apihelp-query+deletedrevs-param-excludeuser": "לא לרשום גרסאות מאת המשתמש הזה.",
        "apihelp-query+deletedrevs-param-namespace": "לרשום רק דפים במרחב השם הזה.",
        "apihelp-query+deletedrevs-param-limit": "המספר המרבי של הגרסאות שיירשם.",
-       "apihelp-query+deletedrevs-param-prop": "×\90×\99×\9c×\95 ×\9e×\90פ×\99×\99× ×\99×\9d ×\9cק×\91×\9c:\n;revid:×\94×\95ספת ×\9e×\96×\94×\94 ×\94×\92רס×\94 ×©×\9c ×\94×\92רס×\94 ×\94×\9e×\97×\95ק×\94.\n;parentid:×\94×\95ספת ×\9e×\96×\94×\94 ×\94×\92רס×\94 ×©×\9c ×\94×\92רס×\94 ×\94ק×\95×\93×\9eת ×©×\9c ×\94×\93×£.\n;user:×\94×\95ספת ×\94×\9eשת×\9eש ×©×¢×©×\94 ×\90ת ×\94×\92רס×\94.\n;userid:×\94×\95ספת ×\9e×\96×\94×\94 ×\94×\9eשת×\9eש ×©×¢×©×\94 ×\90ת ×\94×\92רס×\94.\n;comment:×\94×\95ספת ×\94×\94ער×\94 ×¢×\9c ×\94×\92רס×\94.\n;parsedcomment:×\94×\95ספת ×\94×\94ער×\94 ×\94×\9eפ×\95×¢× ×\97ת ×¢×\9c ×\94×\92רס×\94.\n;minor:×\9eת×\99×\99×\92 ×\90×\9d ×\94×\92רס×\94 ×\9eשנ×\99ת.\n;len:×\9e×\95ס×\99×£ ×\90ת ×\94×\90×\95ר×\9a (×\91×\91תים) של הגרסה.\n;sha1:הוספת ה־SHA-1 (בסיס 16) של הגרסה.\n;content:הוספת התוכן של הגרסה.\n;token:<span class=\"apihelp-deprecated\">מיושן.</span> נותן אסימון עריכה.\n;tags:תגים עבור הגרסה.",
+       "apihelp-query+deletedrevs-param-prop": "×\90×\99×\9c×\95 ×\9e×\90פ×\99×\99× ×\99×\9d ×\9cק×\91×\9c:\n;revid:×\94×\95ספת ×\9e×\96×\94×\94 ×\94×\92רס×\94 ×©×\9c ×\94×\92רס×\94 ×\94×\9e×\97×\95ק×\94.\n;parentid:×\94×\95ספת ×\9e×\96×\94×\94 ×\94×\92רס×\94 ×©×\9c ×\94×\92רס×\94 ×\94ק×\95×\93×\9eת ×©×\9c ×\94×\93×£.\n;user:×\94×\95ספת ×\94×\9eשת×\9eש ×©×¢×©×\94 ×\90ת ×\94×\92רס×\94.\n;userid:×\94×\95ספת ×\9e×\96×\94×\94 ×\94×\9eשת×\9eש ×©×¢×©×\94 ×\90ת ×\94×\92רס×\94.\n;comment:×\94×\95ספת ×\94×\94ער×\94 ×¢×\9c ×\94×\92רס×\94.\n;parsedcomment:×\94×\95ספת ×\94×\94ער×\94 ×\94×\9eפ×\95×¢× ×\97ת ×¢×\9c ×\94×\92רס×\94.\n;minor:×\9eת×\99×\99×\92 ×\90×\9d ×\94×\92רס×\94 ×\9eשנ×\99ת.\n;len:×\9e×\95ס×\99×£ ×\90ת ×\94×\90×\95ר×\9a (×\91×\91×\99×\99×\98ים) של הגרסה.\n;sha1:הוספת ה־SHA-1 (בסיס 16) של הגרסה.\n;content:הוספת התוכן של הגרסה.\n;token:<span class=\"apihelp-deprecated\">מיושן.</span> נותן אסימון עריכה.\n;tags:תגים עבור הגרסה.",
        "apihelp-query+deletedrevs-example-mode1": "רשימת כל הגרסאות המחוקות של הדפים <kbd>Main Page</kbd> ו־<kbd>Talk:Main Page</kbd>, עם תוכן (mode 1).",
        "apihelp-query+deletedrevs-example-mode2": "רשימת 50 העריכות המחוקות האחרונות של <kbd>Bob</kbd>‏ (mode 2).",
        "apihelp-query+deletedrevs-example-mode3-main": "רשימת 50 הגרסאות המחוקות הראשונות במרחב הראשי (mode 3).",
        "apihelp-query+filearchive-paramvalue-prop-sha1": "הוספת גיבוב SHA-1 עבור התמונה.",
        "apihelp-query+filearchive-paramvalue-prop-timestamp": "הוספת חותם־זמן לגרסה המועלית.",
        "apihelp-query+filearchive-paramvalue-prop-user": "הוספת המשתמש שהעלה על גרסת התמונה.",
-       "apihelp-query+filearchive-paramvalue-prop-size": "×\94×\95ספת ×\94×\92×\95×\93×\9c ×©×\9c ×\94ת×\9e×\95× ×\94 ×\91×\91תים והגובה, הרוחב ומניין הדפים (אם מתאים).",
+       "apihelp-query+filearchive-paramvalue-prop-size": "×\94×\95ספת ×\94×\92×\95×\93×\9c ×©×\9c ×\94ת×\9e×\95× ×\94 ×\91×\91×\99×\99×\98ים והגובה, הרוחב ומניין הדפים (אם מתאים).",
        "apihelp-query+filearchive-paramvalue-prop-dimensions": "כינוי ל־size.",
        "apihelp-query+filearchive-paramvalue-prop-description": "הוספת תיאור לגרסת התמונה.",
        "apihelp-query+filearchive-paramvalue-prop-parseddescription": "פענוח התיאור של הגרסה.",
        "apihelp-query+imageinfo-paramvalue-prop-parsedcomment": "פענוח ההערה על גרסה.",
        "apihelp-query+imageinfo-paramvalue-prop-canonicaltitle": "הוספת הכותרת הקנונית של הקובץ.",
        "apihelp-query+imageinfo-paramvalue-prop-url": "מתן URL לקובץ ולדף התיאור.",
-       "apihelp-query+imageinfo-paramvalue-prop-size": "×\94×\95ספת ×\94×\92×\95×\93×\9c ×©×\9c ×\94ק×\95×\91×¥ ×\91×\91תים והגובה, הרוחב ומניין הדפים (אם זה מתאים).",
+       "apihelp-query+imageinfo-paramvalue-prop-size": "×\94×\95ספת ×\94×\92×\95×\93×\9c ×©×\9c ×\94ק×\95×\91×¥ ×\91×\91×\99×\99×\98ים והגובה, הרוחב ומניין הדפים (אם זה מתאים).",
        "apihelp-query+imageinfo-paramvalue-prop-dimensions": "כינוי ל־size.",
        "apihelp-query+imageinfo-paramvalue-prop-sha1": "הוספת גיבוב SHA-1 עבור הקובץ.",
        "apihelp-query+imageinfo-paramvalue-prop-mime": "הוספת סוג ה־MIME של הקובץ.",
        "apihelp-query+prefixsearch-param-limit": "מספר התוצאות המרבי להחזרה.",
        "apihelp-query+prefixsearch-param-offset": "מספר תוצאות לדילוג.",
        "apihelp-query+prefixsearch-example-simple": "חיפוש שםות דפים שמתחילים ב־<kbd>meaning</kbd>.",
+       "apihelp-query+prefixsearch-param-profile": "באיזה פרופיל חיפוש להשתמש.",
        "apihelp-query+protectedtitles-description": "לרשום את כל הכותרות שמוגנות מפני יצירה.",
        "apihelp-query+protectedtitles-param-namespace": "לרשום רק כותרות במרחבי השם האלה.",
        "apihelp-query+protectedtitles-param-level": "לרשום רק שמות עם רמת ההגנה הזאת.",
        "apihelp-query+recentchanges-paramvalue-prop-timestamp": "הוספת חותם־זמן של העריכה.",
        "apihelp-query+recentchanges-paramvalue-prop-title": "הוספת שם הדף של העריכה.",
        "apihelp-query+recentchanges-paramvalue-prop-ids": "הוספת מזהה הדף, מזהה שינויים אחרונים, והמזהה הגרסה החדשה והישנה.",
-       "apihelp-query+recentchanges-paramvalue-prop-sizes": "×\94×\95ספת ×\90×\95ר×\9a ×\94×\93×£ ×\94×\97×\93ש ×\95×\94×\99ש×\9f ×\91×\91תים.",
+       "apihelp-query+recentchanges-paramvalue-prop-sizes": "×\94×\95ספת ×\90×\95ר×\9a ×\94×\93×£ ×\94×\97×\93ש ×\95×\94×\99ש×\9f ×\91×\91×\99×\99×\98ים.",
        "apihelp-query+recentchanges-paramvalue-prop-redirect": "מתייג שהדף הוא הפניה.",
        "apihelp-query+recentchanges-paramvalue-prop-patrolled": "מתייג עריכה בת־בדיקה בתור בדוקה או בלתי־בדוקה.",
        "apihelp-query+recentchanges-paramvalue-prop-loginfo": "הוספת מידע יומן (זהה יומן, סוג יומן וכו') לעיולי יומן.",
        "apihelp-query+revisions+base-paramvalue-prop-timestamp": "חותם־הזמן של הגרסה.",
        "apihelp-query+revisions+base-paramvalue-prop-user": "המתמש שעשה את הגרסה",
        "apihelp-query+revisions+base-paramvalue-prop-userid": "מזהה המשתמש של יוצר הגרסה.",
-       "apihelp-query+revisions+base-paramvalue-prop-size": "×\90×\95ר×\9a (×\91×\91תים) של הגרסה.",
+       "apihelp-query+revisions+base-paramvalue-prop-size": "×\90×\95ר×\9a (×\91×\91×\99×\99×\98ים) של הגרסה.",
        "apihelp-query+revisions+base-paramvalue-prop-sha1": "SHA-1 (בבסיס 16) של הגרסה.",
        "apihelp-query+revisions+base-paramvalue-prop-contentmodel": "מזהה מודל התוכן של הגרסה.",
        "apihelp-query+revisions+base-paramvalue-prop-comment": "הערה מאת המשתמש על הגרסה.",
        "apihelp-query+search-param-what": "איזה סוג חיפוש לבצע.",
        "apihelp-query+search-param-info": "אילו מטא־נתונים להחזיר.",
        "apihelp-query+search-param-prop": "אילו מאפיינים להחזיר:",
-       "apihelp-query+search-paramvalue-prop-size": "הוספת גודל הדף בבתים.",
+       "apihelp-query+search-param-qiprofile": "באיזה פרופיל בלתי־תלוי בשאילתה להשתמש (משפיע על אלגוריתם הדירוג).",
+       "apihelp-query+search-paramvalue-prop-size": "הוספת גודל הדף בבייטים.",
        "apihelp-query+search-paramvalue-prop-wordcount": "הוספת מניין המילים של הדף.",
        "apihelp-query+search-paramvalue-prop-timestamp": "הוספת חותם־הזמן של העריכה האחרונה של הדף.",
        "apihelp-query+search-paramvalue-prop-snippet": "הוספת קטע קצר מפוענח מהדף.",
        "apihelp-query+watchlistraw-param-show": "לרשום רק פריטים שעונים על אמות המידה האלו.",
        "apihelp-query+watchlistraw-param-owner": "משמש יחד עם $1token לגישה לרשימת מעקב של משתמש אחר.",
        "apihelp-query+watchlistraw-param-token": "אסימון אבטחה (זמין ב־[[Special:Preferences#mw-prefsection-watchlist|העדפות]]) שמאפשר לגשת לרשימת מעקב של משתמש אחר.",
+       "apihelp-query+watchlistraw-param-dir": "באיזה כיוון לרשום.",
        "apihelp-query+watchlistraw-param-fromtitle": "מאיזו כותרת (עם תחילית מרחב שם) להתחיל למנות.",
        "apihelp-query+watchlistraw-param-totitle": "באיזו כותרת (עם תחילית מרחב שם) להפסיק למנות.",
        "apihelp-query+watchlistraw-example-simple": "לרשום דפים ברשימת המעקב של המשתמש הנוכחי.",
        "apihelp-stashedit-param-contentmodel": "מודל התוכן של התוכן החדש.",
        "apihelp-stashedit-param-contentformat": "תסדיר הסדרת תוכן עבור טקסט הקלט.",
        "apihelp-stashedit-param-baserevid": "מזהה גסה של גרסת הבסיס.",
+       "apihelp-stashedit-param-summary": "לשנות תקציר.",
        "apihelp-tag-description": "הוספת או הסרה של תגים מגרסאות בודדות או עיולי יומן בודדים.",
        "apihelp-tag-param-rcid": "מזהה שינוי אחרון אחד או יותר שתג יתווסף אליו או יוסר ממנו.",
        "apihelp-tag-param-revid": "מזהה גרסה אחד או יותר שתג יתווסף אליה או יוסר ממנה.",
        "apihelp-upload-param-sessionkey": "אותו דבר כמו $1filekey, מושאר לצור תאימות אחורה.",
        "apihelp-upload-param-stash": "אם זה מוגדר, השרת יסליק זמנית את הקובץ במקום להוסיף אותו למאגר.",
        "apihelp-upload-param-filesize": "גודל הקובץ של כל ההעלאה.",
-       "apihelp-upload-param-offset": "×\94×\99ס×\98 ×\94×\97ת×\99×\9b×\94 ×\91×\91תים.",
+       "apihelp-upload-param-offset": "×\94×\99ס×\98 ×\94×\97ת×\99×\9b×\94 ×\91×\91×\99×\99×\98ים.",
        "apihelp-upload-param-chunk": "תוכן החתיכה.",
        "apihelp-upload-param-async": "להפוך פעולות קבצים גדולות לאסינכרוניות כשאפשר.",
        "apihelp-upload-param-checkstatus": "לאחזר רק מצב העלאה עבור מפתח הקובץ שניתן.",
index 7a7675d..0f8a9ad 100644 (file)
@@ -4,6 +4,7 @@
                        "McDutchie"
                ]
        },
+       "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page|Documentation]]\n* [[mw:API:FAQ|FAQ]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Listas de diffusion]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce Annuncios sur le API]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Bugs & demandas]\n</div>\n<strong>Stato:</strong> Tote le functiones monstrate in iste pagina deberea functionar, sed le API es ancora in disveloppamento active e pote cambiar a omne momento. Subscribe te al [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ lista de diffusion mediawiki-api-announce] pro esser informate de actualisationes.\n\n<strong>Requestas erronee:</strong> Quando requestas erronee se invia al API, un capite HTTP essera inviate con le clave \"MediaWiki-API-Error\". Le valor de iste capite e le codice de error reinviate essera identic. Pro plus information vide [[mw:API:Errors_and_warnings|API: Errores e avisos]].\n\n<strong>Tests:</strong> Pro facilitar le test de requestas API, vide [[Special:ApiSandbox]].",
        "apihelp-main-param-action": "Qual action exequer.",
        "apihelp-main-param-format": "Le formato del resultato.",
        "apihelp-main-param-maxlag": "Le latentia maximal pote esser usate quando MediaWiki es installate in un cluster de base de datos replicate. Pro evitar actiones que causa additional latentia de replication de sito, iste parametro pote facer le cliente attender usque le latentia de replication es minus que le valor specificate. In caso de latentia excessive, le codice de error <samp>maxlag</samp> es retornate con un message como <samp>Attende $host: $lag secundas de latentia</samp>.<br />Vide [[mw:Manual:Maxlag_parameter|Manual: Maxlag parameter]] pro plus information.",
        "apihelp-main-param-requestid": "Omne valor fornite hic essera includite in le responsa. Pote esser usate pro distinguer requestas.",
        "apihelp-main-param-servedby": "Includer in le resultato le nomine del host que ha servite le requesta.",
        "apihelp-main-param-curtimestamp": "Includer le data e hora actual in le resultato.",
-       "apihelp-main-param-origin": "Quando acceder al API usante un requesta AJAX inter-dominios (CORS), mitte isto al dominio de origine. Isto debe esser includite in omne requesta pre-flight, e dunque debe facer parte del URI del requesta (e non del corpore POST). Isto debe corresponder exactemente a un del origines in le capite Origin:, dunque illo debe esser mittite a qualcusa como http://ia.wikipedia.org o https://meta.wikimedia.org. Si iste parametro non corresponde al capite Origin:, un responsa 403 essera retornate. Si iste parametro corresponde al capite Origin: e le origine es in le lista blanc, un capite Access-Control-Allow-Origin essera inserite.",
-       "apihelp-main-param-uselang": "Lingua a usar pro traductiones de messages. Un lista de codices pote esser obtenite ab [[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]] con siprop=languages, o specifica \"user\" pro usar le preferentia de lingua del usator actual, o specifica \"content\" pro usar le lingua de contento de iste wiki.",
+       "apihelp-main-param-origin": "Quando se accede al API usante un requesta AJAX inter-dominios (CORS), mitte le dominio de origine in iste parametro. Illo debe esser includite in omne requesta pre-flight, e dunque debe facer parte del URI del requesta (e non del corpore POST). Illo debe corresponder exactemente a un del origines in le capite <code>Origin</code>, dunque debe esser mittite a qualcosa como <kbd>http://ia.wikipedia.org</kbd> o <kbd>https://meta.wikimedia.org</kbd>. Si iste parametro non corresponde al capite <code>Origin</code>, un responsa 403 essera retornate. Si iste parametro corresponde al capite <code>Origin</code> e le origine es in le lista blanc, un capite <code>Access-Control-Allow-Origin</code> essera inserite.",
+       "apihelp-main-param-uselang": "Lingua a usar pro traductiones de messages <kbd>[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]</kbd> con <kbd>siprop=languages</kbd> retorna un lista de codices de lingua, o specifica <kbd>user</kbd> pro usar le preferentia de lingua del usator actual, o specifica <kbd>content</kbd> pro usar le lingua de contento de iste wiki.",
        "apihelp-block-description": "Blocar un usator.",
        "apihelp-block-param-user": "Nomine de usator, adresse IP o intervallo IP que tu vole blocar.",
-       "apihelp-block-param-expiry": "Tempore de expiration. Pote esser relative (p.ex. \"5 months\" o \"2 weeks\") o absolute (p.ex. \"2014-09-18T12:34:56Z\"). Si es mittite a \"infinite\", \"indefinite\" o \"never\", le blocada nunquam expirara.",
+       "apihelp-block-param-expiry": "Tempore de expiration. Pote esser relative (p.ex. <kbd>5 months</kbd> o <kbd>2 weeks<.kbd>) o absolute (p.ex. <kbd>2014-09-18T12:34:56Z</kbd>). Si es mittite a <kbd>infinite</kbd>, <kbd>indefinite</kbd> o <kbd>never</kbd>, le blocada nunquam expirara.",
        "apihelp-block-param-reason": "Motivo del blocada.",
        "apihelp-block-param-anononly": "Blocar solmente usatores anonyme (i.e. disactivar modificationes anonyme pro iste adresse IP).",
        "apihelp-block-param-nocreate": "Impedir le creation de contos.",
        "apihelp-block-param-autoblock": "Blocar automaticamente le adresse IP usate le plus recentemente, e omne IPs successive desde le quales ille/-a tenta facer modificationes.",
-       "apihelp-block-param-noemail": "Impedir que le usator invia e-mail per le wiki. (Require le derecto \"blockemail\").",
+       "apihelp-block-param-noemail": "Impedir que le usator invia e-mail per le wiki. (Require le derecto <code>blockemail</code>).",
+       "apihelp-block-param-hidename": "Celar le nomine de usator in le registro de blocadas. (Require le derecto <code>hideuser</code>.)",
+       "apihelp-block-param-allowusertalk": "Permitter que le usator modifica su proprie pagina de discussion (depende de <var>[[mw:Manual:$wgBlockAllowsUTEdit|$wgBlockAllowsUTEdit]]</var>).",
+       "apihelp-block-param-reblock": "Si le usator es jam blocate, superscriber le blocada existente.",
+       "apihelp-block-param-watchuser": "Observar le paginas de usator e discussion del usator o del adresse IP.",
+       "apihelp-block-example-ip-simple": "Blocar le adresse IP <kbd>192.0.2.5</kbd> pro tres dies con le motivo <kbd>Prime advertimento</kbd>.",
+       "apihelp-block-example-user-complex": "Blocar le usator <kbd>Vandalo</kbd> pro tempore indeterminate con le motivo <kbd>Vandalismo</kbd>, e impedir le creation de nove contos e le invio de e-mail.",
+       "apihelp-changeauthenticationdata-description": "Cambiar le datos de authentication pro le usator actual.",
+       "apihelp-changeauthenticationdata-example-password": "Tentar de cambiar le contrasigno del usator actual a <kbd>ExemploDeContrasigno</kbd>.",
+       "apihelp-checktoken-description": "Verificar le validitate de un indicio ab <kbd>[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]</kbd>.",
        "apihelp-checktoken-param-type": "Typo de indicio a testar.",
        "apihelp-checktoken-param-token": "Indicio a testar.",
+       "apihelp-checktoken-param-maxtokenage": "Etate maxime permittite pro le indicio, in secundas.",
+       "apihelp-checktoken-example-simple": "Testar le validitate de un indicio <kbd>csrf</kbd>.",
+       "apihelp-clearhasmsg-description": "Cancella le signal <code>hasmsg</code> pro le usator actual.",
+       "apihelp-clearhasmsg-example-1": "Cancellar le signal <code>hasmsg</code> pro le usator actual.",
+       "apihelp-clientlogin-description": "Aperir session in le wiki usante le fluxo interactive.",
+       "apihelp-clientlogin-example-login": "Comenciar le processo de aperir session in le wiki como le usator <kbd>Exemplo</kbd> con le contrasigno <kbd>ExemploDeContrasigno</kbd>.",
+       "apihelp-clientlogin-example-login2": "Continuar a aperir session post un responsa <samp>UI</samp> pro authentication bifactorial, forniente un <var>OATHToken</var> de <kbd>987654</kbd>.",
+       "apihelp-compare-description": "Obtener le differentia inter duo paginas.\n\nEs necessari indicar un numero de version, un titulo de pagina o un ID de pagina, e pro \"from\" e pro \"to\".",
+       "apihelp-compare-param-fromtitle": "Prime titulo a comparar.",
+       "apihelp-compare-param-fromid": "Prime ID de pagina comparar.",
+       "apihelp-compare-param-fromrev": "Prime version a comparar.",
+       "apihelp-compare-param-totitle": "Secunde titulo a comparar.",
+       "apihelp-compare-param-toid": "Secunde ID de pagina a comparar.",
+       "apihelp-compare-param-torev": "Secunde version a comparar.",
+       "apihelp-compare-example-1": "Crear un diff inter version 1 e 2.",
+       "apihelp-createaccount-description": "Crear un nove conto de usator.",
        "apihelp-createaccount-param-name": "Nomine de usator.",
+       "apihelp-query+prefixsearch-param-profile": "Le profilo de recerca a usar.",
        "apihelp-query+revisions-example-first5-not-localhost": "Obtener le prime 5 versiones del \"Pagina principal\" que non ha essite facite per le usator anonyme \"127.0.0.1\"",
        "api-credits": "Programmatores del API:\n* Roan Kattouw (programmator dirigente Sept. 2007–2009)\n* Victor Vasiliev\n* Bryan Tong Minh\n* Sam Reed\n* Yuri Astrakhan (creator, programmator dirigente Sept. 2006–Sept. 2007)\n* Brad Jorsch (programmator dirigente 2013–presente)\n\nInvia tu commentos, suggestiones e questiones a mediawiki-api@lists.wikimedia.org\no insere un reportage de bug a https://phabricator.wikimedia.org/."
 }
index dae55de..d93dc23 100644 (file)
@@ -7,9 +7,92 @@
                        "Kenrick95"
                ]
        },
+       "apihelp-main-param-action": "Tindakan manakah yang akan dilakukan.",
+       "apihelp-main-param-format": "Format keluaran.",
        "apihelp-block-description": "Blokir pengguna.",
        "apihelp-block-param-user": "Nama pengguna, alamat IP, atau rentang alamat IP untuk diblokir.",
+       "apihelp-block-param-expiry": "Waktu kedaluwarsa. Dapat berupa waktu relatif (seperti <kbd>5 bulan</kbd> atau <kbd>2 minggu</kbd>) atau waktu absolut (seperti <kbd>2014-09-18T12:34:56Z</kbd>). Jika diatur ke <kbd>selamanya</kbd>, <kbd>tak terbatas</kbd>, atau <kbd>tidak pernah</kbd>, pemblokiran itu tidak akan berakhir.",
+       "apihelp-block-param-reason": "Alasan pemblokiran.",
+       "apihelp-block-param-anononly": "Blokir hanya pengguna anonim (seperti menonaktifkan suntingan anonim untuk alamat IP ini).",
+       "apihelp-block-param-nocreate": "Cegah pembuatan akun.",
+       "apihelp-block-param-autoblock": "Blokir alamat IP terakhir yang digunakan pengguna ini, dan semua alamat IP berikutnya yang mereka coba gunakan untuk menyunting.",
+       "apihelp-block-param-noemail": "Cegah pengguna mengirimkan surel melalui wiki. (Membutuhkan hak <code>blockemail</code>).",
+       "apihelp-block-param-reblock": "Jika pengguna tersebut sudah diblokir, atur ulang setelah pemblokirannya.",
+       "apihelp-block-example-ip-simple": "Blokir alamat IP <kbd>192.0.2.5</kbd> selama tiga hari dengan alasan <kbd>Serangan pertama</kbd>.",
+       "apihelp-compare-param-fromtitle": "Judul pertama untuk dibandingkan.",
+       "apihelp-compare-param-fromid": "ID halaman pertama untuk dibandingkan.",
+       "apihelp-compare-param-fromrev": "Revisi pertama untuk dibandingkan.",
+       "apihelp-compare-param-toid": "ID halaman kedua untuk dibandingkan.",
+       "apihelp-compare-param-torev": "Revisi kedua untuk dibandingkan.",
+       "apihelp-compare-example-1": "Buat perbedaan antara revisi 1 dan 2.",
+       "apihelp-createaccount-description": "Buat akun pengguna baru.",
+       "apihelp-createaccount-example-create": "Mulai proses pembuatan pengguna <kbd>Contoh</kbd> dengan kata sandi <kbd>ContohKataSandi</kbd>.",
        "apihelp-createaccount-param-name": "Nama pengguna",
+       "apihelp-createaccount-param-password": "Kata sandi (diabaikan jika <var>$1mailpassword</var> diatur).",
+       "apihelp-createaccount-param-domain": "Domain untuk otentikasi eksternal (opsional).",
+       "apihelp-createaccount-param-token": "Token pembuatan akun yang diperoleh pada permintaan pertama.",
+       "apihelp-createaccount-param-email": "Alamat surel pengguna (opsional).",
+       "apihelp-createaccount-param-realname": "Nama asli pengguna (opsional).",
+       "apihelp-createaccount-param-mailpassword": "Jika diberikan nilai, kata sandi acak akan dikirimkan melalui surel kepada pengguna.",
+       "apihelp-createaccount-param-reason": "Alasan tambahan untuk membuat akun yang akan dicatat dalam log.",
+       "apihelp-createaccount-param-language": "Kode bahasa untuk diatur sebagai baku kepada pengguna (opsional, nilai bakunya adalah bahasa isi).",
+       "apihelp-createaccount-example-pass": "Buat pengguna <kbd>testuser</kbd> dengan kata sandi <kbd>test123</kbd>.",
+       "apihelp-createaccount-example-mail": "Buat pengguna <kbd>testmailuser</kbd> dan kirim surel berisi kata sandi acak.",
+       "apihelp-delete-description": "Hapus halaman",
+       "apihelp-delete-param-title": "Judul halaman untuk dihapus. Tidak dapat digunakan bersama dengan <var>$1pageid</var>.",
+       "apihelp-delete-param-pageid": "ID halaman dari halaman yang akan dihapus. Tidak dapat digunakan bersama dengan <var>$1title</var>.",
+       "apihelp-delete-param-reason": "Alasan penghapusan. Jika tidak diberikan, alasan yang dihasilkan secara otomatis akan digunakan.",
+       "apihelp-delete-param-tags": "Ganti tag untuk diterapkan ke entri di log penghapusan.",
+       "apihelp-delete-param-watch": "Tambahkan halaman ke daftar pantauan pengguna saat ini.",
+       "apihelp-delete-param-watchlist": "Buat atau hapus halaman tanpa syarat dari daftar pantauan pengguna saat ini, gunakan preferensi atau jangan ganti pantauan.",
+       "apihelp-delete-param-unwatch": "Hapus halaman dari daftar pantauan pengguna saat ini.",
+       "apihelp-delete-param-oldimage": "Nama gambar lama untuk dihapus seperti yang disebutkan oleh [[Special:ApiHelp/query+imageinfo|action=query&prop=imageinfo&iiprop=archivename]].",
+       "apihelp-delete-example-simple": "Hapus <kbd>Halaman Utama</kbd>.",
+       "apihelp-delete-example-reason": "Hapus <kbd>Halaman Utama</kbd> dengan alasan <kbd>Persiapan untuk dialihkan</kbd>.",
+       "apihelp-disabled-description": "Modul ini telah dimatikan.",
+       "apihelp-edit-description": "Buat dan sunting halaman.",
+       "apihelp-edit-param-title": "Judul halaman untuk dibuat. Tidak dapat digunakan bersama dengan <var>$1pageid</var>.",
+       "apihelp-edit-param-pageid": "ID halaman dari halaman yang akan disunting. Tidak dapat digunakan bersama dengan <var>$1title</var>.",
+       "apihelp-edit-param-section": "Nomor bagian. <kbd>0</kbd> untuk bagian atas, <kbd>baru</kbd> untuk bagian baru.",
+       "apihelp-edit-param-sectiontitle": "Judul untuk bagian baru.",
+       "apihelp-edit-param-text": "Isi halaman.",
+       "apihelp-edit-param-summary": "Ringkasan suntingan. Juga tajuk bagian ketika $1section=new dan $1sectiontitle tidak diatur.",
+       "apihelp-edit-param-tags": "Ganti tag untuk menerapkan ke revisi.",
+       "apihelp-edit-param-minor": "Suntingan kecil.",
+       "apihelp-edit-param-notminor": "Bukan suntingan kecil.",
+       "apihelp-edit-param-bot": "Tandai suntingan ini sebagai bot.",
+       "apihelp-edit-param-basetimestamp": "Stempel waktu dari revisi asal, digunakan untuk mendeteksi konflik penyuntingan. Dapat ditemukan di [[Special:ApiHelp/query+revisions|action=query&prop=revisions&rvprop=timestamp]].",
+       "apihelp-edit-param-starttimestamp": "Stempel waktu ketika proses penyuntingan dimulai, digunakan untuk mendeteksi konflik penyuntingan. Nilai yang cocok dapat ditemukan dengan menggunakan <var>[[Special:ApiHelp/main|curtimestamp]]</var> ketika memulai proses penyuntingan (seperti ketika memuat isi konten yang akan disunting).",
+       "apihelp-edit-param-recreate": "Batalkan galat yang terjadi tentang halaman yang sudah dihapus pada saat itu.",
+       "apihelp-edit-param-createonly": "Jangan sunting halaman itu jika sudah ada.",
+       "apihelp-edit-param-nocreate": "Berikan galat jika halaman belum ada.",
+       "apihelp-edit-param-watch": "Tambahkan halaman ke daftar pantauan pengguna saat ini.",
+       "apihelp-edit-param-unwatch": "Hapus halaman dari daftar pantauan pengguna saat ini.",
+       "apihelp-edit-param-watchlist": "Buat atau hapus halaman tanpa syarat dari daftar pantauan pengguna saat ini, gunakan preferensi atau jangan ganti pantauan.",
+       "apihelp-edit-param-md5": "Hash MD5 dari parameter $1text, atau parameter $1prependtext dan $1appendtext digabungkan. Jika diatur, suntingan itu tidak akan dilakukan kecuali hash tidak benar.",
+       "apihelp-edit-param-prependtext": "Tambahkan teks berikut ke bagian awal halaman. Abaikan $1text.",
+       "apihelp-edit-param-appendtext": "Tambahkan teks berikut ke bagian akhir halaman. Abaikan $1text.\n\nGunakan $1section=new untuk menambahkan sebuah bagian baru, daripada parameter ini.",
+       "apihelp-edit-param-undo": "Batalkan revisi ini. Abaikan $1text, $1prependtext dan $1appendtext.",
+       "apihelp-edit-param-undoafter": "Batalkan semua revisi dari $1undo ke revisi ini. Jika tidak diatur, batalkan satu revisi saja.",
+       "apihelp-edit-param-redirect": "Selesaikan pengalihan secara otomatis.",
+       "apihelp-edit-param-contentformat": "Format serialisasi isi digunakan untuk teks masukan.",
+       "apihelp-edit-param-contentmodel": "Model konten dari konten baru.",
+       "apihelp-edit-param-token": "Token harus selalu dikirim sebagai parameter terakhir, atau setidaknya sesudah parameter $1text.",
+       "apihelp-edit-example-edit": "Sunting halaman.",
+       "apihelp-edit-example-prepend": "Tambahkan <kbd>_&#95;NOTOC_&#95;</kbd> ke halaman.",
+       "apihelp-edit-example-undo": "Batalkan revisi 13579 melalui 13585 dengan ringkasan otomatis.",
+       "apihelp-emailuser-description": "Kirim surel ke pengguna ini.",
+       "apihelp-emailuser-param-target": "Pengguna yang akan dikirimi surel.",
+       "apihelp-emailuser-param-subject": "Tajuk subjek.",
+       "apihelp-emailuser-param-text": "Badan pesan.",
+       "apihelp-emailuser-param-ccme": "Kirimkan salinan pesan ini kepada saya.",
+       "apihelp-expandtemplates-description": "Tambahkan semua templat dalam teks wiki.",
+       "apihelp-expandtemplates-param-title": "Judul halaman.",
+       "apihelp-expandtemplates-param-text": "Teks wiki yang akan diubah.",
+       "apihelp-expandtemplates-param-revid": "ID revisi, untuk <nowiki>{{REVISIONID}}</nowiki> dan variabel serupa.",
+       "apihelp-expandtemplates-param-prop": "Bagian informasi manakah yang ingin didapatkan.\n\nPerhatikan bahwa jika tidak ada nilai yang dipilih, hasilnya akan mengandung teks wiki, namun keluaran akan berupa format usang.",
        "apihelp-login-example-login": "Masuk log.",
+       "apihelp-query+prefixsearch-param-profile": "Cari profil untuk digunakan.",
+       "apihelp-query+search-param-qiprofile": "Meminta profil independen untuk digunakan (berefek pada algoritma peringkat).",
        "apihelp-revisiondelete-param-ids": "Penanda untuk perubahan yang akan dihapus"
 }
index 28ddcf9..6a2f836 100644 (file)
@@ -13,7 +13,9 @@
                        "Nemo bis",
                        "JackLantern",
                        "Urielejh",
-                       "Matteocng"
+                       "Matteocng",
+                       "Einreiher",
+                       "Mpiva"
                ]
        },
        "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page|Documentazione]] (in inglese)\n* [[mw:API:FAQ|FAQ]] (in inglese)\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Mailing list]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce Annunci sull'API]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Bug & richieste]\n</div>\n<strong>Stato:</strong> tutte le funzioni e caratteristiche mostrate su questa pagina dovrebbero funzionare, ma le API sono ancora in fase attiva di sviluppo, e potrebbero cambiare in qualsiasi momento. Iscriviti alla [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ la mailing list sugli annunci delle API MediaWiki] per essere informato sugli aggiornamenti.\n\n<strong>Istruzioni sbagliate:</strong> quando vengono impartite alle API delle istruzioni sbagliate, un'intestazione HTTP verrà inviata col messaggio \"MediaWiki-API-Error\" e, sia il valore dell'intestazione, sia il codice d'errore, verranno impostati con lo stesso valore. Per maggiori informazioni leggi [[mw:API:Errors_and_warnings|API:Errori ed avvertimenti]] (in inglese).\n\n<strong>Test:</strong> per testare facilmente le richieste API, vedi [[Special:ApiSandbox]].",
@@ -44,6 +46,7 @@
        "apihelp-checktoken-example-simple": "Verifica la validità di un token <kbd>csrf</kbd>.",
        "apihelp-clearhasmsg-description": "Cancella il flag <code>hasmsg</code> per l'utente corrente.",
        "apihelp-clearhasmsg-example-1": "Cancella il flag <code>hasmsg</code> per l'utente corrente.",
+       "apihelp-clientlogin-description": "Accedi al wiki utilizzando il flusso interattivo.",
        "apihelp-clientlogin-example-login": "Avvia il processo di accesso alla wiki come utente <kbd>Example</kbd> con password <kbd>ExamplePassword</kbd>.",
        "apihelp-clientlogin-example-login2": "Continua l'accesso dopo una risposta dell'<samp>UI</samp> per l'autenticazione a due fattori, fornendo un <var>OATHToken</var> di <kbd>987654</kbd>.",
        "apihelp-compare-description": "Ottieni le differenze tra 2 pagine.\n\nUn numero di revisione, il titolo di una pagina, o un ID di pagina deve essere indicato sia per il \"da\" che per lo \"a\".",
@@ -55,6 +58,7 @@
        "apihelp-compare-param-torev": "Seconda revisione da confrontare.",
        "apihelp-compare-example-1": "Crea un diff tra revisione 1 e revisione 2.",
        "apihelp-createaccount-description": "Crea un nuovo account utente.",
+       "apihelp-createaccount-param-preservestate": "Se <kbd>[[Special:ApiHelp/query+authmanagerinfo|action=query&meta=authmanagerinfo]]</kbd> ha restituito true per <samp>hasprimarypreservedstate</samp>, le richieste contrassegnate come <samp>primary-required</samp> dovrebbero essere omesse. Se invece ha restituito un valore non vuoto per <samp>preservedusername</samp>, quel nome utente deve essere utilizzato per il parametro <var>username</var>.",
        "apihelp-createaccount-example-create": "Avvia il processo di creazione utente <kbd>Example</kbd> con password <kbd>ExamplePassword</kbd>.",
        "apihelp-createaccount-param-name": "Nome utente.",
        "apihelp-createaccount-param-password": "Password (verrà ignorata se è impostato <var>$1mailpassword</var>).",
        "apihelp-feedcontributions-param-deletedonly": "Mostra solo i contribuiti cancellati.",
        "apihelp-feedcontributions-param-toponly": "Mostra solo i contributi che sono le ultime versioni per la pagina.",
        "apihelp-feedcontributions-param-newonly": "Visualizza solo le modifiche che sono creazioni di pagina.",
+       "apihelp-feedcontributions-param-hideminor": "Nascondi le modifiche minori.",
        "apihelp-feedcontributions-param-showsizediff": "Mostra la differenza di dimensioni tra le versioni.",
        "apihelp-feedcontributions-example-simple": "Restituisce contributi per l'utente <kbd>Example</kbd>.",
        "apihelp-feedrecentchanges-param-feedformat": "Il formato del feed.",
        "apihelp-feedrecentchanges-param-namespace": "Namespace a cui limitare i risultati.",
        "apihelp-feedrecentchanges-param-associated": "Includi namespace associato (discussione o principale)",
+       "apihelp-feedrecentchanges-param-days": "Intervallo di giorni per i quali limitare i risultati.",
        "apihelp-feedrecentchanges-param-limit": "Numero massimo di risultati da restituire.",
        "apihelp-feedrecentchanges-param-from": "Mostra i cambiamenti da allora.",
        "apihelp-feedrecentchanges-param-hideminor": "Nascondi le modifiche minori.",
        "apihelp-feedrecentchanges-param-hideliu": "Nascondi le modifiche apportate dagli utenti registrati.",
        "apihelp-feedrecentchanges-param-hidepatrolled": "Nascondi modifiche verificate.",
        "apihelp-feedrecentchanges-param-hidemyself": "Nasconde le modifiche effettuate dall'utente attuale.",
+       "apihelp-feedrecentchanges-param-hidecategorization": "Nascondi le variazioni di appartenenza alle categorie.",
        "apihelp-feedrecentchanges-param-tagfilter": "Filtra per etichetta.",
        "apihelp-feedrecentchanges-param-target": "Mostra solo le modifiche alle pagine collegate da questa pagina.",
        "apihelp-feedrecentchanges-param-showlinkedto": "Mostra solo le modifiche alle pagine collegate a quella specificata.",
+       "apihelp-feedrecentchanges-param-categories": "Mostra solo le variazioni sulle pagine di tutte queste categorie.",
+       "apihelp-feedrecentchanges-param-categories_any": "Mostra invece solo le variazioni sulle pagine in una qualunque categoria.",
        "apihelp-feedrecentchanges-example-simple": "Mostra le ultime modifiche.",
        "apihelp-feedrecentchanges-example-30days": "Mostra le modifiche degli ultimi 30 giorni.",
        "apihelp-feedwatchlist-param-feedformat": "Il formato del feed.",
+       "apihelp-feedwatchlist-param-hours": "Elenca le pagine modificate entro queste ultime ore.",
        "apihelp-feedwatchlist-param-linktosections": "Collega direttamente alla sezione modificata, se possibile.",
+       "apihelp-feedwatchlist-example-all6hrs": "Mostra tutte le modifiche alle pagine osservate nelle ultime 6 ore.",
        "apihelp-filerevert-description": "Ripristina un file ad una versione precedente.",
        "apihelp-filerevert-param-filename": "Nome del file di destinazione, senza il prefisso 'File:'.",
        "apihelp-filerevert-param-comment": "Commento sul caricamento.",
        "apihelp-filerevert-param-archivename": "Nome dell'archivio della versione da ripristinare.",
        "apihelp-filerevert-example-revert": "Ripristina <kbd>Wiki.png</kbd> alla versione del <kbd>2011-03-05T15:27:40Z</kbd>.",
+       "apihelp-help-description": "Mostra la guida per i moduli specificati.",
        "apihelp-help-param-toc": "Includi un indice nell'output HTML.",
        "apihelp-help-example-main": "Aiuto per il modulo principale.",
        "apihelp-help-example-submodules": "Aiuto per <kbd>action=query</kbd> e tutti i suoi sotto-moduli.",
        "apihelp-import-param-rootpage": "Importa come sottopagina di questa pagina. Non può essere usato insieme a <var>$1namespace</var>.",
        "apihelp-import-example-import": "Importa [[meta:Help:ParserFunctions]] nel namespace 100 con cronologia completa.",
        "apihelp-linkaccount-description": "Collegamento di un'utenza di un provider di terze parti all'utente corrente.",
+       "apihelp-linkaccount-example-link": "Avvia il processo di collegamento ad un'utenza da <kbd>Example</kbd>.",
        "apihelp-login-description": "Accedi e ottieni i cookie di autenticazione.\n\nQuesta azione deve essere usata esclusivamente in combinazione con [[Special:BotPasswords]]; utilizzarla per l'accesso all'account principale è deprecato e può fallire senza preavviso. Per accedere in modo sicuro all'utenza principale, usa <kbd>[[Special:ApiHelp/clientlogin|action=clientlogin]]</kbd>.",
        "apihelp-login-description-nobotpasswords": "Accedi e ottieni i cookies di autenticazione.\n\nQuesta azione è deprecata e può fallire senza preavviso. Per accedere in modo sicuro, usa [[Special:ApiHelp/clientlogin|action=clientlogin]].",
        "apihelp-login-description-nonauthmanager": "Accedi e ottieni i cookie di autenticazione.\n\nIn caso di accesso riuscito, i cookies necessari saranno inclusi nella intestazioni di risposta HTTP. In caso di accesso fallito, ulteriori tentativi potrebbero essere limitati, in modo da contenere gli attacchi automatizzati per indovinare le password.",
        "apihelp-query+authmanagerinfo-description": "Recupera informazioni circa l'attuale stato di autenticazione.",
        "apihelp-query+authmanagerinfo-param-securitysensitiveoperation": "Verifica se lo stato di autenticazione dell'utente attuale è sufficiente per la specifica operazione sensibile alla sicurezza.",
        "apihelp-query+authmanagerinfo-param-requestsfor": "Recupera informazioni circa le richieste di autenticazione necessarie per la specifica azione di autenticazione.",
+       "apihelp-query+filerepoinfo-example-login": "Recupera le richieste che possono essere utilizzate quando si inizia l'accesso.",
+       "apihelp-query+filerepoinfo-example-login-merged": "Recupera le richieste che possono essere utilizzate quando si inizia l'accesso, con i campi del modulo uniti.",
        "apihelp-query+filerepoinfo-example-securitysensitiveoperation": "Verificare se l'autenticazione è sufficiente per l'azione <kbd>foo</kbd>.",
        "apihelp-query+backlinks-description": "Trova tutte le pagine che puntano a quella specificata.",
        "apihelp-query+backlinks-param-namespace": "Il namespace da elencare.",
        "apihelp-query+prefixsearch-param-search": "Stringa di ricerca.",
        "apihelp-query+prefixsearch-param-limit": "Numero massimo di risultati da restituire.",
        "apihelp-query+prefixsearch-param-offset": "Numero di risultati da saltare",
+       "apihelp-query+prefixsearch-param-profile": "Profilo di ricerca da utilizzare.",
        "apihelp-query+protectedtitles-description": "Elenca tutti i titoli protetti dalla creazione.",
        "apihelp-query+protectedtitles-param-namespace": "Elenca solo i titoli in questi namespace.",
        "apihelp-query+protectedtitles-param-level": "Elenca solo i titoli con questi livelli di protezione.",
        "apihelp-query+userinfo-example-simple": "Ottieni informazioni sull'utente attuale.",
        "apihelp-query+users-description": "Ottieni informazioni su un elenco di utenti.",
        "apihelp-query+users-param-prop": "Quali pezzi di informazioni includere:",
+       "apihelp-query+users-paramvalue-prop-cancreate": "Indica se può essere creata un'utenza per nomi utente validi ma non registrati.",
        "apihelp-query+users-param-users": "Un elenco di utenti di cui ottenere informazioni.",
        "apihelp-query+watchlist-description": "Ottieni le ultime modifiche alle pagine tra gli osservati speciali dell'utente attuale.",
        "apihelp-query+watchlist-param-start": "Il timestamp da cui iniziare l'elenco.",
        "apihelp-query+watchlistraw-param-limit": "Numero totale di risultati da restituire per ogni richiesta.",
        "apihelp-query+watchlistraw-param-prop": "Quali proprietà aggiuntive ottenere:",
        "apihelp-query+watchlistraw-paramvalue-prop-changed": "Aggiunge data e ora dell'ultima notifica all'utente riguardo la modifica.",
+       "apihelp-query+watchlistraw-param-dir": "La direzione in cui elencare.",
        "apihelp-query+watchlistraw-param-fromtitle": "Il titolo (con prefisso namespace) da cui iniziare l'elenco.",
        "apihelp-query+watchlistraw-param-totitle": "Il titolo (con prefisso namespace) al quale interrompere l'elenco.",
        "apihelp-query+watchlistraw-example-simple": "Elenca le pagine fra gli osservati speciali dell'utente attuale.",
        "apihelp-removeauthenticationdata-description": "Rimuove i dati di autenticazione per l'utente corrente.",
        "apihelp-removeauthenticationdata-example-simple": "Tentativo di rimuovere gli attuali dati utente per <kbd>FooAuthenticationRequest</kbd>.",
        "apihelp-resetpassword-description": "Invia una mail per reimpostare la password di un utente.",
+       "apihelp-resetpassword-description-noroutes": "Non sono disponibili rotte per la reimpostazione della password.\n\nAbilita le rotte in <var>[[mw:Manual:$wgPasswordResetRoutes|$wgPasswordResetRoutes]]</var> per usare questo modulo.",
        "apihelp-resetpassword-param-user": "Utente in corso di ripristino.",
        "apihelp-resetpassword-param-email": "Indirizzo di posta elettronica dell'utente in corso di ripristino.",
        "apihelp-resetpassword-param-capture": "Restituisce le password temporanee che erano state inviate. Richiede il diritto utente <code>passwordreset</code>.",
        "apihelp-resetpassword-example-user": "Invia una mail per reimpostare la password all'utente <kbd>Example</kbd>.",
+       "apihelp-resetpassword-example-email": "Invia una mail per reimpostare la password a tutti gli utenti con indirizzo di posta elettronica <kbd>user@example.com</kbd>.",
        "apihelp-revisiondelete-description": "Cancella e ripristina le versioni.",
        "apihelp-revisiondelete-param-type": "Tipo di cancellazione della versione effettuata.",
        "apihelp-revisiondelete-param-hide": "Cosa nascondere per ogni versione.",
        "apihelp-stashedit-param-sectiontitle": "Il titolo per una nuova sezione.",
        "apihelp-stashedit-param-text": "Contenuto della pagina.",
        "apihelp-stashedit-param-contentmodel": "Modello di contenuto dei nuovi contenuti.",
+       "apihelp-stashedit-param-summary": "Oggetto della modifica.",
        "apihelp-tag-param-reason": "Motivo per la modifica.",
        "apihelp-tokens-param-type": "Tipi di token da richiedere.",
        "apihelp-tokens-example-edit": "Recupera un token di modifica (il predefinito).",
        "api-help-permissions": "{{PLURAL:$1|Permesso|Permessi}}:",
        "api-help-open-in-apisandbox": "<small>[apri in una sandbox]</small>",
        "api-help-authmanager-general-usage": "La procedura generale per usare questo modulo é:\n# Ottenere i campi disponibili da <kbd>[[Special:ApiHelp/query+authmanagerinfo|action=query&meta=authmanagerinfo]]</kbd> con <kbd>amirequestsfor=$4</kbd>, e un token <kbd>$5</kbd> da <kbd>[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]</kbd>.\n# Mostra i campi all'utente e ottieni i dati che invia.\n# Esegui un post a questo modulo, fornendo <var>$1returnurl</var> e ogni campo rilevante.\n# Controlla <samp>status</samp> nella response.\n#* Se hai ricevuto <samp>PASS</samp> o <samp>FAIL</samp>, hai finito. L'operazione nel primo caso è andata a buon fine, nel secondo no.\n#* Se hai ricevuto <samp>UI</samp>, mostra i nuovi campi all'utente e ottieni i dati che invia. Esegui un post a questo modulo con <var>$1continue</var> e i campi rilevanti settati, quindi ripeti il punto 4.\n#* Se hai ricevuto <samp>REDIRECT</samp>, dirigi l'utente a <samp>redirecttarget</samp> e aspetta che ritorni a <var>$1returnurl</var>. A quel punto esegui un post a questo modulo con <var>$1continue</var> e ogni campo passato all'URL di ritorno, e ripeti il punto 4.\n#* Se hai ricevuto <samp>RESTART</samp>, vuol dire che l'autenticazione ha funzionato ma non abbiamo un account collegato. Potresti considerare questo caso come <samp>UI</samp> o come <samp>FAIL</samp>.",
+       "api-help-authmanagerhelper-messageformat": "Formato da utilizzare per per la restituzione dei messaggi.",
        "api-help-authmanagerhelper-preservestate": "Conserva lo stato da un precedente tentativo di accesso non riuscito, se possibile.",
        "api-help-authmanagerhelper-returnurl": "URL di ritorno per i flussi di autenticazione di terze parti, deve essere assoluto. E' necessario fornirlo, oppure va fornito <var>$1continue</var>.\n\nAlla ricezione di una risposta <samp>REDIRECT</samp>, in genere si apre un browser o una vista web all'URL specificato <samp>redirecttarget</samp> per un flusso di autenticazione di terze parti. Quando questo è completato, la terza parte invierà il browser o la vista web a questo URL. Dovresti estrarre qualsiasi parametro POST o della richiesta dall'URL e passarli come un request <var>$1continue</var> a questo modulo API.",
+       "api-help-authmanagerhelper-continue": "Questa richiesta è una continuazione dopo una precedente risposta <samp>UI</samp> o <samp>REDIRECT</samp>. È necessario fornirlo, oppure fornire <var>$1returnurl</var>.",
        "api-help-authmanagerhelper-additional-params": "Questo modulo accetta parametri aggiuntivi a seconda delle richieste di autenticazione disponibili. Utilizza <kbd>[[Special:ApiHelp/query+authmanagerinfo|action=query&meta=authmanagerinfo]]</kbd> con <kbd>amirequestsfor=$1</kbd> (o una precedente risposta da questo modulo, se applicabile) per determinare le richieste disponibili e i campi usati da queste.",
        "api-credits-header": "Crediti"
 }
index d6596b1..2712c13 100644 (file)
        "apihelp-feedcontributions-param-deletedonly": "削除された投稿記録のみ表示します。",
        "apihelp-feedcontributions-param-toponly": "最新版の編集のみ表示します。",
        "apihelp-feedcontributions-param-newonly": "ページ作成を伴う編集のみを表示します。",
+       "apihelp-feedcontributions-param-hideminor": "細部の編集を非表示",
        "apihelp-feedcontributions-param-showsizediff": "版間のサイズの増減を表示する。",
        "apihelp-feedcontributions-example-simple": "利用者 <kbd>Example</kbd> の投稿記録を取得する。",
        "apihelp-feedrecentchanges-description": "最近の更新フィードを返します。",
        "apihelp-query+deletedrevisions-param-excludeuser": "この利用者による版を一覧表示しない。",
        "apihelp-query+deletedrevisions-example-titles": "ページ <kbd>Main Page</kbd> および <kbd>Talk:Main Page</kbd> の削除された版とその内容を一覧表示する。",
        "apihelp-query+deletedrevisions-example-revids": "削除された版 <kbd>123456</kbd> に関する情報を一覧表示する。",
+       "apihelp-query+deletedrevs-paraminfo-modes": "{{PLURAL:$1|モード}}: $2",
        "apihelp-query+deletedrevs-param-start": "列挙の始点となるタイムスタンプ。",
        "apihelp-query+deletedrevs-param-end": "列挙の終点となるタイムスタンプ。",
        "apihelp-query+deletedrevs-param-from": "列挙の始点となるページ名。",
        "apihelp-query+watchlistraw-description": "現在の利用者のウォッチリストにあるすべてのページを取得します。",
        "apihelp-query+watchlistraw-param-namespace": "この名前空間に含まれるページのみを一覧表示します。",
        "apihelp-query+watchlistraw-param-prop": "追加で取得するプロパティ:",
+       "apihelp-query+watchlistraw-param-dir": "一覧表示する方向。",
        "apihelp-query+watchlistraw-example-generator": "現在の利用者のウォッチリスト上のページに関する情報を取得する。",
        "apihelp-revisiondelete-description": "版の削除および復元を行います。",
        "apihelp-revisiondelete-param-reason": "削除または復元の理由。",
index ccfc005..d5f70d8 100644 (file)
                        "Revi",
                        "Yearning",
                        "Priviet",
-                       "Ykhwong"
+                       "Ykhwong",
+                       "Jonghaya"
                ]
        },
-       "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page|ì\84¤ëª\85문ì\84\9c]]\n* [[mw:API:FAQ|FAQ]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api ë©\94ì\9d¼ë§\81 ë¦¬ì\8a¤í\8a¸]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce API ì\95\8c림 ì\82¬í\95­]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R ë²\84ê·¸ ë°\8f ì\9a\94ì²­]\n</div>\n<strong>ì\83\81í\83\9c:</strong> ì\9d´ í\8e\98ì\9d´ì§\80ì\97\90 ë³´ì\97¬ì§\80ë\8a\94 ëª¨ë\93  ê¸°ë\8a¥ì\9d\80 ì \95ì\83\81ì \81ì\9c¼ë¡\9c ì\9e\91ë\8f\99í\95\98ì§\80ë§\8c, APIë\8a\94 ì\97¬ì \84í\9e\88 í\99\9cë°\9cí\95\98ê²\8c ê°\9cë°\9cë\90\98ê³  ì\9e\88ì\9c¼ë©°, ì\96¸ì \9cë\93 ì§\80 ë³\80ê²½ë\90  ì\88\98 ì\9e\88ì\8aµë\8b\88ë\8b¤. ì\97\85ë\8d°ì\9d´í\8a¸ ê³µì§\80를 ë°\9bì\95\84보려면 [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ mediawiki-api-announce ë©\94ì\9d¼ë§\81 ë¦¬ì\8a¤í\8a¸]를 êµ¬ë\8f\85í\95\98ì\8b­ì\8b\9cì\98¤.\n\n<strong>ì\9e\98못ë\90\9c ì\9a\94ì²­:</strong> APIì\97\90 ì\9e\98못ë\90\9c ì\9a\94ì²­ì\9d´ ì \84ì\86¡ë\90\98ë©´ HTTP í\97¤ë\8d\94ì\97\90ì\84\9c \"MediaWiki-API-Error\" í\82¤ë¥¼ ë³´ë\82´ê³ , í\97¤ë\8d\94 ê°\92ê³¼ ì\98¤ë¥\98 ì½\94ë\93\9cê°\80 ê°\99ê²\8c ì\84¤ì \95ë\90©ë\8b\88ë\8b¤. ì\9e\90ì\84¸í\95\9c ì \95ë³´ì\97\90 ë\8c\80í\95´ì\84\9cë\8a\94 [[mw:API:Errors_and_warnings|API:ì\98¤ë¥\98ì\99\80 ê²½ê³ ]]를 ì°¸ì¡°í\95\98ì\8b­ì\8b\9cì\98¤.\n\n<strong>í\85\8cì\8a¤í\8a¸í\95\98기:</strong> API ì\9a\94ì²­ì\9d\84 í\85\8cì\8a¤í\8a¸ì\9d\98 í\8e¸ì\9d\98를 ì\9c\84í\95´, [[Special:ApiSandbox]]를 ë³´ì\84¸ì\9a\94.",
+       "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page|ì\84¤ëª\85문ì\84\9c]]\n* [[mw:API:FAQ|FAQ]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api ë©\94ì\9d¼ë§\81 ë¦¬ì\8a¤í\8a¸]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce API ì\95\8c림 ì\82¬í\95­]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R ë²\84ê·¸ ë°\8f ì\9a\94ì²­]\n</div>\n<strong>ì\83\81í\83\9c:</strong> ì\9d´ í\8e\98ì\9d´ì§\80ì\97\90 ë³´ì\9d´ë\8a\94 ëª¨ë\93  ê¸°ë\8a¥ì\9d\80 ì \95ì\83\81ì \81ì\9c¼ë¡\9c ì\9e\91ë\8f\99í\95\98ì§\80ë§\8c, APIë\8a\94 ì\97¬ì \84í\9e\88 í\99\9cë°\9cí\95\98ê²\8c ê°\9cë°\9cë\90\98ê³  ì\9e\88ì\9c¼ë©°, ì\96¸ì \9cë\93 ì§\80 ë³\80ê²½ë\90  ì\88\98 ì\9e\88ì\8aµë\8b\88ë\8b¤. ì\97\85ë\8d°ì\9d´í\8a¸ ê³µì§\80를 ë°\9bì\95\84보려면 [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ mediawiki-api-announce ë©\94ì\9d¼ë§\81 ë¦¬ì\8a¤í\8a¸]를 êµ¬ë\8f\85í\95\98ì\8b­ì\8b\9cì\98¤.\n\n<strong>ì\9e\98못ë\90\9c ì\9a\94ì²­:</strong> APIì\97\90 ì\9e\98못ë\90\9c ì\9a\94ì²­ì\9d´ ì \84ì\86¡ë\90\98ë©´ \"MediaWiki-API-Error\" í\82¤ê°\80 í\8f¬í\95¨ë\90\9c HTTP í\97¤ë\8d\94ê°\80 ì \84ì\86¡ë\90\98ë©° ë°\98í\99\98ë\90\98ë\8a\94 í\97¤ë\8d\94ì\99\80 ì\98¤ë¥\98 ì½\94ë\93\9cì\9d\98 ê°\92ì\9d\80 ë\8f\99ì\9d¼í\95\9c ê°\92ì\9c¼ë¡\9c ì\84¤ì \95ë\90©ë\8b\88ë\8b¤. ì\9e\90ì\84¸í\95\9c ì \95ë³´ì\97\90 ë\8c\80í\95´ì\84\9cë\8a\94 [[mw:API:Errors_and_warnings|API:ì\98¤ë¥\98ì\99\80 ê²½ê³ ]]를 ì°¸ì¡°í\95\98ì\8b­ì\8b\9cì\98¤.\n\n<strong>í\85\8cì\8a¤í\8a¸í\95\98기:</strong> API ì\9a\94ì²­ í\85\8cì\8a¤í\8a¸ë¥¼ ì\9a©ì\9d´í\95\98ê²\8c í\95\98려면, [[Special:ApiSandbox]]를 ë³´ì\8b­ì\8b\9cì\98¤.",
        "apihelp-main-param-action": "수행할 동작",
        "apihelp-main-param-format": "출력값의 형식.",
        "apihelp-main-param-maxlag": "최대 랙은 미디어위키가 데이터베이스 복제된 클러스터에 설치되었을 때 사용될 수 있습니다. 특정한 행동이 사이트 복제 랙을 유발할 때, 이 변수는 클라이언트가 복제 랙이 설정된 숫자 아래로 내려갈 때까지 기다리도록 지시합니다. 과도한 랙의 경우, <samp>maxlag</samp> 오류 코드와 <samp>Waiting for $host: $lag seconds lagged</samp> 메시지가 제공됩니다.<br />[[mw:Manual:Maxlag_parameter|매뉴얼: Maxlag 변수]] 에서 더 많은 정보를 얻을 수 있습니다.",
-       "apihelp-main-param-smaxage": "<code>s-maxage</code> HTTP ìº\90ì\8b\9c ì»¨í\8a¸ë¡¤ í\97¤ë\8d\94를 ì\84¤ì \95í\95©ë\8b\88ë\8b¤. ì\97\90ë\9f¬는 캐시되지 않습니다.",
-       "apihelp-main-param-maxage": "<code>max-age</code> HTTP ìº\90ì\8b\9c ì»¨í\8a¸ë¡¤ í\97¤ë\8d\94를 ì\84¤ì \95í\95©ë\8b\88ë\8b¤. ì\97\90ë\9f¬는 캐시되지 않습니다.",
+       "apihelp-main-param-smaxage": "<code>s-maxage</code> HTTP ìº\90ì\8b\9c ì»¨í\8a¸ë¡¤ í\97¤ë\8d\94를 ì\84¤ì \95í\95©ë\8b\88ë\8b¤. ì\98¤ë¥\98는 캐시되지 않습니다.",
+       "apihelp-main-param-maxage": "<code>max-age</code> HTTP ìº\90ì\8b\9c ì»¨í\8a¸ë¡¤ í\97¤ë\8d\94를 ì\84¤ì \95í\95©ë\8b\88ë\8b¤. ì\98¤ë¥\98는 캐시되지 않습니다.",
        "apihelp-main-param-assert": "<kbd>user</kbd> 플래그가 설정되어 있다면 로그인 여부를 체크하며, <kbd>bot</kbd>  플래그가 설정되어 있다면 봇 사용자 권한이 설정되어 있는지 확인합니다.",
        "apihelp-main-param-requestid": "주어진 요청 값은 응답에 포함됩니다. 요청을 구분하기 위해 사용될 수 있습니다.",
        "apihelp-main-param-servedby": "결과에 요청을 처리한 호스트네임을 포함합니다.",
        "apihelp-block-param-allowusertalk": "자신의 토론 문서를 편집할 수 있도록 허용합니다. (<var>[[mw:Manual:$wgBlockAllowsUTEdit|$wgBlockAllowsUTEdit]]</var> 값에 따라 다름)",
        "apihelp-block-param-reblock": "사용자가 이미 차단된 경우, 기존 차단 설정을 바꿉니다.",
        "apihelp-block-param-watchuser": "해당 사용자 또는 IP 주소의 사용자 문서 및 토론 문서를 주시합니다.",
-       "apihelp-block-example-ip-simple": "IP <kbd>192.0.2.5</kbd>에 대해 <kbd>First strike</kbd>라는 이유로 3일간 차단하기",
+       "apihelp-block-example-ip-simple": "IP <kbd>192.0.2.5</kbd>에 대해 <kbd>First strike</kbd>라는 이유로 3일 간 차단하기",
        "apihelp-block-example-user-complex": "사용자 <kbd>Vandal</kbd>을 <kbd>Vandalism</kbd>이라는 이유로 무기한 차단하며 계정 생성 및 이메일 발송을 막기",
+       "apihelp-changeauthenticationdata-description": "현재 사용자의 인증 데이터를 변경합니다.",
+       "apihelp-changeauthenticationdata-example-password": "현재 사용자의 비밀번호를 <kbd>ExamplePassword</kbd>로 변경하는 것을 시도합니다.",
+       "apihelp-checktoken-description": "<kbd>[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]</kbd>의 토큰의 유효성을 확인합니다.",
        "apihelp-checktoken-param-type": "테스트되는 토큰의 종류.",
        "apihelp-checktoken-param-token": "테스트할 토큰",
        "apihelp-checktoken-param-maxtokenage": "초로 계산된 토큰의 최대 나이.",
        "apihelp-checktoken-example-simple": "<kbd>csrf</kbd> 토큰의 유효성을 테스트합니다.",
        "apihelp-clearhasmsg-description": "현재 사용자의 <code>hasmsg</code> 플래그를 비웁니다.",
        "apihelp-clearhasmsg-example-1": "현재 계정의 <code>hasmsg</code> 플래그를 삭제합니다.",
+       "apihelp-clientlogin-description": "상호작용 플로우를 이용하여 위키에 로그인합니다.",
+       "apihelp-clientlogin-example-login": "사용자 <kbd>Example</kbd>, 비밀번호 <kbd>ExamplePassword</kbd>로 위키 로그인 과정을 시작합니다.",
        "apihelp-compare-description": "두 문서 간의 차이를 가져옵니다.\n\n대상이 되는 두 문서의 판 번호나 문서 제목 또는 문서 ID를 지정해야 합니다.",
        "apihelp-compare-param-fromtitle": "비교할 첫 이름.",
        "apihelp-compare-param-fromid": "비교할 첫 문서 ID.",
@@ -54,6 +60,7 @@
        "apihelp-compare-param-torev": "비교할 두 번째 판.",
        "apihelp-compare-example-1": "판 1과 2의 차이를 생성합니다.",
        "apihelp-createaccount-description": "새 사용자 계정을 만듭니다.",
+       "apihelp-createaccount-example-create": "비밀번호 <kbd>ExamplePassword</kbd>로 된 사용자 <kbd>Example</kbd>의 생성 과정을 시작합니다.",
        "apihelp-createaccount-param-name": "사용자 이름",
        "apihelp-createaccount-param-password": "비밀번호입니다. (<var>$1mailpassword</var>가 설정되어 있으면 무시됩니다)",
        "apihelp-createaccount-param-domain": "외부 인증의 도메인 (선택적)",
        "apihelp-createaccount-param-realname": "사용자 실명 (선택).",
        "apihelp-createaccount-param-mailpassword": "아무 값이든 존재한다면, 랜덤 비밀번호가 이메일로 전송됩니다.",
        "apihelp-createaccount-param-reason": "선택적인, 기록에 남을 계정을 만드는 이유",
+       "apihelp-createaccount-param-language": "사용자에게 기본으로 설정할 언어 코드. (선택 사항, 기본값으로는 본문의 언어입니다)",
        "apihelp-createaccount-example-pass": "사용자 <kbd>testuser</kbd>를 만들고 비밀번호를 <kbd>test123</kbd>으로 설정합니다.",
        "apihelp-createaccount-example-mail": "사용자 <kbd>testmailuser</kbd>를 만들고 자동 생성된 비밀번호를 이메일로 보냅니다.",
        "apihelp-delete-description": "문서 삭제",
+       "apihelp-delete-param-title": "삭제할 문서의 제목. <var>$1pageid</var>과 함께 사용할 수 없습니다.",
        "apihelp-delete-param-pageid": "삭제할 문서의 ID. <var>$1title</var>과 함께 사용할 수 없습니다.",
        "apihelp-delete-param-reason": "삭제의 이유. 설정하지 않으면 자동 생성되는 이유를 사용합니다.",
        "apihelp-delete-param-watch": "문서를 현재 사용자의 주시문서 목록에 추가합니다.",
        "apihelp-delete-example-simple": "<kbd>Main Page</kbd>를 삭제합니다.",
        "apihelp-disabled-description": "이 모듈은 해제되었습니다.",
        "apihelp-edit-description": "문서를 만들고 편집합니다.",
+       "apihelp-edit-param-section": "문단 번호입니다. <kbd>0</kbd>은 최상위 문단, <kbd>new</kbd>는 새 문단입니다.",
        "apihelp-edit-param-sectiontitle": "새 문단을 위한 제목.",
        "apihelp-edit-param-text": "문서 내용.",
        "apihelp-edit-param-summary": "편집 요약. 또한 $1section=new 및 $1sectiontitle이 설정되어 있지 않을 때 문단 제목.",
+       "apihelp-edit-param-tags": "이 판에 적용할 태그를 변경합니다.",
        "apihelp-edit-param-minor": "사소한 편집.",
        "apihelp-edit-param-notminor": "사소하지 않은 편집.",
        "apihelp-edit-param-bot": "이 편집을 봇으로 표시.",
+       "apihelp-edit-param-createonly": "이 페이지가 이미 존재하면 편집하지 않습니다.",
        "apihelp-edit-param-nocreate": "페이지가 존재하지 않으면 오류를 출력합니다.",
        "apihelp-edit-param-watch": "문서를 현재 사용자의 주시문서 목록에 추가합니다.",
        "apihelp-edit-param-unwatch": "문서를 현재 사용자의 주시문서 목록에서 제거합니다.",
        "apihelp-expandtemplates-param-text": "변환할 위키텍스트.",
        "apihelp-expandtemplates-paramvalue-prop-wikitext": "확장된 위키텍스트.",
        "apihelp-expandtemplates-paramvalue-prop-parsetree": "입력값의 XML 파서 트리.",
+       "apihelp-expandtemplates-param-includecomments": "출력에 HTML 주석을 포함할 것인지의 여부.",
+       "apihelp-expandtemplates-param-generatexml": "XML 구문 분석 트리를 생성합니다. ($1prop=parsetree로 대체함)",
+       "apihelp-expandtemplates-example-simple": "위키텍스트 <kbd><nowiki>{{Project:Sandbox}}</nowiki></kbd>를 확장합니다.",
        "apihelp-feedcontributions-description": "사용자 기여 피드를 반환합니다.",
        "apihelp-feedcontributions-param-feedformat": "피드 포맷.",
        "apihelp-feedcontributions-param-user": "기여를 읽을 사용자 이름.",
        "apihelp-feedcontributions-param-namespace": "기여를 분류할 이름공간",
        "apihelp-feedcontributions-param-deletedonly": "삭제된 기여만 봅니다.",
        "apihelp-feedcontributions-param-toponly": "최신 판인 편집만 봅니다.",
+       "apihelp-feedcontributions-param-newonly": "새 글인 편집만 봅니다.",
+       "apihelp-feedcontributions-param-hideminor": "사소한 편집을 숨깁니다.",
+       "apihelp-feedcontributions-param-showsizediff": "판 사이의 크기 차이를 보여줍니다.",
+       "apihelp-feedrecentchanges-description": "최근 바뀜 피드를 반환합니다.",
        "apihelp-feedrecentchanges-param-feedformat": "피드 포맷.",
+       "apihelp-feedrecentchanges-param-namespace": "결과를 제한할 이름공간.",
        "apihelp-feedrecentchanges-param-invert": "선택한 항목을 제외한 모든 이름공간.",
+       "apihelp-feedrecentchanges-param-associated": "관련 (토론 또는 일반) 이름공간을 포함합니다.",
+       "apihelp-feedrecentchanges-param-limit": "반환할 결과의 최대 수.",
+       "apihelp-feedrecentchanges-param-from": "이후의 변경 사항을 보여줍니다.",
        "apihelp-feedrecentchanges-param-hideminor": "사소한 편집을 숨깁니다.",
        "apihelp-feedrecentchanges-param-hidebots": "봇의 편집을 숨깁니다.",
        "apihelp-feedrecentchanges-param-hideanons": "익명 사용자의 편집을 숨깁니다.",
        "apihelp-feedrecentchanges-param-hideliu": "등록된 사용자의 편집을 숨깁니다.",
        "apihelp-feedrecentchanges-param-hidepatrolled": "검토된 편집을 숨깁니다.",
+       "apihelp-feedrecentchanges-param-hidemyself": "현재 사용자가 변경한 사항을 숨깁니다.",
        "apihelp-feedrecentchanges-param-tagfilter": "태그로 분류",
        "apihelp-feedrecentchanges-example-simple": "최근 바뀜을 봅니다.",
        "apihelp-feedrecentchanges-example-30days": "30일간의 최근 바뀜을 봅니다.",
+       "apihelp-feedwatchlist-description": "주시문서 목록 피드를 반환합니다.",
+       "apihelp-feedwatchlist-param-feedformat": "피드 포맷.",
+       "apihelp-feedwatchlist-example-default": "주시문서 목록 피드를 보여줍니다.",
        "apihelp-filerevert-description": "파일을 이전 판으로 되돌립니다.",
        "apihelp-filerevert-example-revert": "<kbd>Wiki.png</kbd>를 <kbd>2011-03-05T15:27:40Z</kbd> 판으로 되돌립니다.",
+       "apihelp-help-description": "지정된 모듈의 도움말을 보여줍니다.",
        "apihelp-help-param-helpformat": "도움말 출력 포맷.",
+       "apihelp-help-example-recursive": "모든 도움말을 한 페이지로 모읍니다.",
+       "apihelp-imagerotate-description": "하나 이상의 그림을 회전합니다.",
+       "apihelp-imagerotate-param-rotation": "시계 방향으로 회전할 그림의 각도.",
        "apihelp-import-param-xml": "업로드한 XML 파일.",
        "apihelp-login-param-name": "계정 이름.",
        "apihelp-login-param-password": "비밀번호.",
        "apihelp-login-param-domain": "도메인 (선택).",
+       "apihelp-login-param-token": "처음 요청에서 로그인 토큰을 취득했습니다.",
+       "apihelp-login-example-gettoken": "로그인 토큰을 검색합니다.",
        "apihelp-login-example-login": "로그인.",
+       "apihelp-logout-description": "로그아웃하고 세션 데이터를 지웁니다.",
+       "apihelp-logout-example-logout": "현재 사용자를 로그아웃합니다.",
+       "apihelp-mergehistory-description": "문서 역사를 합칩니다.",
        "apihelp-mergehistory-param-reason": "문서 병합 이유.",
        "apihelp-move-description": "문서 이동하기.",
        "apihelp-move-param-reason": "제목을 변경하는 이유",
        "apihelp-opensearch-description": "OpenSearch 프로토콜을 이용하여 위키 검색하기",
        "apihelp-opensearch-param-search": "문자열 검색",
        "apihelp-opensearch-param-limit": "반환할 결과의 최대 수",
+       "apihelp-opensearch-param-namespace": "검색할 이름공간.",
        "apihelp-opensearch-param-format": "출력 포맷.",
        "apihelp-options-param-reset": "사이트 기본으로 설정 초기화",
        "apihelp-options-example-reset": "모든 설정 초기화",
+       "apihelp-paraminfo-description": "API 모듈의 정보를 가져옵니다.",
        "apihelp-paraminfo-param-helpformat": "도움말 문자열 포맷.",
+       "apihelp-parse-param-summary": "구문 분석할 요약입니다.",
+       "apihelp-parse-paramvalue-prop-text": "위키텍스트의 구문 분석된 텍스트를 제공합니다.",
+       "apihelp-parse-paramvalue-prop-langlinks": "구문 분석된 위키텍스트의 언어 링크를 제공합니다.",
+       "apihelp-parse-paramvalue-prop-categories": "구문 분석된 위키텍스트의 분류를 제공합니다.",
+       "apihelp-parse-paramvalue-prop-categorieshtml": "분류의 HTML 버전을 제공합니다.",
+       "apihelp-parse-paramvalue-prop-links": "구문 분석된 위키텍스트의 내부 링크를 제공합니다.",
+       "apihelp-parse-paramvalue-prop-templates": "구문 분석된 위키텍스트의 틀을 제공합니다.",
+       "apihelp-parse-paramvalue-prop-images": "구문 분석된 위키텍스트의 그림을 제공합니다.",
+       "apihelp-parse-paramvalue-prop-externallinks": "구문 분석된 위키텍스트의 외부 링크를 제공합니다.",
+       "apihelp-parse-paramvalue-prop-sections": "구문 분석된 위키텍스트의 문단을 제공합니다.",
+       "apihelp-parse-paramvalue-prop-revid": "구문 분석된 페이지의 판 ID를 추가합니다.",
+       "apihelp-parse-paramvalue-prop-displaytitle": "구문 분석된 위키텍스트의 제목을 추가합니다.",
+       "apihelp-parse-paramvalue-prop-headitems": "문서의 <code>&lt;head&gt;</code> 안에 넣을 항목을 제공합니다.",
+       "apihelp-parse-paramvalue-prop-headhtml": "문서의 구문 분석된 <code>&lt;head&gt;</code>를 제공합니다.",
+       "apihelp-parse-paramvalue-prop-iwlinks": "구문 분석된 위키텍스트의 인터위키 링크를 제공합니다.",
+       "apihelp-parse-paramvalue-prop-wikitext": "구문 분석된 위키텍스트 원문을 제공합니다.",
+       "apihelp-parse-paramvalue-prop-properties": "구문 분석된 위키텍스트에 정의된 다양한 속성을 제공합니다.",
+       "apihelp-parse-param-disablelimitreport": "파서 출력에서 제한 보고서(\"NewPP limit report\")를 제외합니다.",
+       "apihelp-parse-param-disablepp": "<var>$1disablelimitreport</var>를 대신 사용합니다.",
+       "apihelp-parse-param-disableeditsection": "파서 출력에서 문단 편집 링크를 제외합니다.",
+       "apihelp-parse-param-disabletidy": "파서 출력에서 HTML 정리(예: tidy)를 수행하지 않습니다.",
+       "apihelp-parse-param-preview": "미리 보기 모드에서 구문 분석을 합니다.",
+       "apihelp-parse-param-sectionpreview": "문단 미리 보기 모드에서 구문 분석을 합니다. (미리 보기 모드도 활성화함)",
+       "apihelp-parse-param-disabletoc": "출력에서 목차를 제외합니다.",
+       "apihelp-parse-example-page": "페이지의 구문을 분석합니다.",
+       "apihelp-parse-example-text": "위키텍스트의 구문을 분석합니다.",
+       "apihelp-parse-example-summary": "요약을 구문 분석합니다.",
+       "apihelp-protect-description": "문서의 보호 수준을 변경합니다.",
        "apihelp-protect-param-reason": "보호 또는 보호 해제의 이유.",
        "apihelp-protect-example-protect": "문서 보호",
+       "apihelp-purge-param-forcelinkupdate": "링크 테이블을 업데이트합니다.",
+       "apihelp-query+allcategories-description": "모든 분류를 열거합니다.",
+       "apihelp-query+allcategories-param-prefix": "이 값으로 시작하는 모든 분류 제목을 검색합니다.",
+       "apihelp-query+allcategories-param-dir": "정렬 방향.",
+       "apihelp-query+allcategories-param-limit": "반환할 분류의 갯수입니다.",
+       "apihelp-query+allcategories-param-prop": "얻고자 하는 속성:",
+       "apihelp-query+allcategories-paramvalue-prop-size": "페이지 수를 분류에 추가합니다.",
+       "apihelp-query+alldeletedrevisions-paraminfo-nonuseronly": "<var>$3user</var>와 함께 사용할 수 없습니다.",
+       "apihelp-query+alldeletedrevisions-param-prefix": "이 값으로 시작하는 모든 문서 제목을 검색합니다.",
+       "apihelp-query+alldeletedrevisions-param-tag": "이 태그로 태그된 판만을 나열합니다.",
+       "apihelp-query+alldeletedrevisions-param-user": "이 사용자에 대한 판만 나열합니다.",
+       "apihelp-query+alldeletedrevisions-param-excludeuser": "이 사용자에 대한 판을 나열하지 않습니다.",
+       "apihelp-query+alldeletedrevisions-param-namespace": "이 이름공간의 문서만 나열합니다.",
+       "apihelp-query+allfileusages-paramvalue-prop-title": "파일의 제목을 추가합니다.",
+       "apihelp-query+allfileusages-param-limit": "반환할 총 항목 수입니다.",
+       "apihelp-query+allfileusages-example-unique": "고유한 파일 제목을 나열합니다.",
+       "apihelp-query+allfileusages-example-unique-generator": "모든 파일 제목을 가져오되, 존재하지 않는 항목을 표시합니다.",
+       "apihelp-query+allfileusages-example-generator": "파일을 포함하는 문서를 가져옵니다.",
+       "apihelp-query+allimages-description": "모든 그림을 순차적으로 열거합니다.",
+       "apihelp-query+alllinks-paramvalue-prop-title": "링크의 제목을 추가합니다.",
+       "apihelp-query+alllinks-param-namespace": "열거할 이름공간.",
+       "apihelp-query+alllinks-param-limit": "반환할 총 항목 수입니다.",
+       "apihelp-query+allmessages-description": "이 사이트에서 반환할 메시지.",
        "apihelp-query+allmessages-example-ipb": "<kbd>ipb-</kbd>로 시작하는 메시지를 보입니다.",
+       "apihelp-query+allpages-param-namespace": "열거할 이름공간.",
+       "apihelp-query+allredirects-paramvalue-prop-title": "넘겨주기의 제목을 추가합니다.",
+       "apihelp-query+allredirects-param-namespace": "열거할 이름공간.",
+       "apihelp-query+allredirects-param-limit": "반환할 총 항목 수입니다.",
        "apihelp-query+allrevisions-description": "모든 판 표시.",
+       "apihelp-query+mystashedfiles-param-limit": "가져올 파일의 갯수.",
+       "apihelp-query+alltransclusions-param-prop": "포함할 정보:",
+       "apihelp-query+alltransclusions-param-namespace": "열거할 이름공간.",
+       "apihelp-query+alltransclusions-param-limit": "반환할 총 항목 수입니다.",
+       "apihelp-query+allusers-description": "등록된 모든 사용자를 열거합니다.",
+       "apihelp-query+allusers-param-dir": "정렬 방향.",
+       "apihelp-query+allusers-param-prop": "포함할 정보:",
+       "apihelp-query+allusers-paramvalue-prop-editcount": "사용자의 편집 수를 추가합니다.",
+       "apihelp-query+allusers-param-witheditsonly": "편집을 한 사용자만 나열합니다.",
+       "apihelp-query+allusers-example-Y": "<kbd>Y</kbd>로 시작하는 사용자를 나열합니다.",
+       "apihelp-query+authmanagerinfo-description": "현재의 인증 상태에 대한 정보를 검색합니다.",
+       "apihelp-query+backlinks-param-namespace": "열거할 이름공간.",
+       "apihelp-query+blocks-description": "차단된 모든 사용자와 IP 주소를 나열합니다.",
+       "apihelp-query+blocks-param-start": "나열을 시작할 타임스탬프",
+       "apihelp-query+blocks-param-end": "나열을 끝낼 타임스탬프",
+       "apihelp-query+blocks-param-ids": "나열할 차단 ID 목록 (선택 사항).",
+       "apihelp-query+blocks-param-users": "검색할 사용자 목록 (선택 사항).",
+       "apihelp-query+blocks-param-prop": "얻고자 하는 속성:",
+       "apihelp-query+blocks-paramvalue-prop-id": "블록의 ID를 추가합니다.",
+       "apihelp-query+blocks-paramvalue-prop-user": "차단된 사용자의 사용자 이름을 추가합니다.",
+       "apihelp-query+blocks-paramvalue-prop-userid": "차단된 사용자의 사용자 ID를 추가합니다.",
+       "apihelp-query+blocks-paramvalue-prop-by": "차단을 수행하는 사용자의 사용자 이름을 추가합니다.",
+       "apihelp-query+blocks-paramvalue-prop-byid": "차단을 수행하는 사용자의 사용자 ID를 추가합니다.",
+       "apihelp-query+blocks-paramvalue-prop-timestamp": "차단된 시점의 타임스탬프를 추가합니다.",
+       "apihelp-query+blocks-paramvalue-prop-expiry": "차단 만료 시점의 타임스탬프를 추가합니다.",
+       "apihelp-query+blocks-paramvalue-prop-reason": "차단 이유를 추가합니다.",
+       "apihelp-query+blocks-paramvalue-prop-range": "차단에 영향을 받는 IP 주소 대역을 추가합니다.",
+       "apihelp-query+categories-param-limit": "반환할 분류의 갯수입니다.",
+       "apihelp-query+categorymembers-paramvalue-prop-ids": "페이지 ID를 추가합니다.",
+       "apihelp-query+categorymembers-paramvalue-prop-title": "문서의 제목과 이름공간 ID를 추가합니다.",
+       "apihelp-query+categorymembers-paramvalue-prop-timestamp": "문서가 포함된 시기의 타임스탬프를 추가합니다.",
+       "apihelp-query+categorymembers-param-limit": "반환할 문서의 최대 수입니다.",
+       "apihelp-query+categorymembers-param-startsortkey": "$1starthexsortkey를 대신 사용해 주십시오.",
+       "apihelp-query+categorymembers-param-endsortkey": "$1endhexsortkey를 대신 사용해 주십시오.",
+       "apihelp-query+deletedrevs-paraminfo-modes": "{{PLURAL:$1|모드|모드}}: $2",
+       "apihelp-query+deletedrevs-param-start": "나열을 시작할 타임스탬프",
+       "apihelp-query+deletedrevs-param-end": "나열을 끝낼 타임스탬프",
+       "apihelp-query+deletedrevs-param-limit": "나열할 판의 최대 양.",
+       "apihelp-query+disabled-description": "이 쿼리 모듈은 비활성화되었습니다.",
+       "apihelp-query+duplicatefiles-description": "해시 값 기반으로 주어진 파일들 중 중복된 모든 파일을 나열합니다.",
+       "apihelp-query+duplicatefiles-param-limit": "반환할 중복 파일의 수.",
+       "apihelp-query+embeddedin-param-namespace": "열거할 이름공간.",
+       "apihelp-query+extlinks-param-limit": "반환할 링크의 수.",
+       "apihelp-query+exturlusage-param-prop": "포함할 정보:",
+       "apihelp-query+exturlusage-paramvalue-prop-ids": "문서의 ID를 추가합니다.",
+       "apihelp-query+exturlusage-paramvalue-prop-title": "문서의 제목과 이름공간 ID를 추가합니다.",
+       "apihelp-query+exturlusage-paramvalue-prop-url": "문서에 사용된 URL을 추가합니다.",
+       "apihelp-query+exturlusage-param-namespace": "열거할 문서 이름공간.",
+       "apihelp-query+exturlusage-param-limit": "반환할 문서 수.",
+       "apihelp-query+filearchive-description": "삭제된 모든 파일을 순서대로 열거합니다.",
+       "apihelp-query+filearchive-paramvalue-prop-sha1": "그림에 대한 SHA-1 해시를 추가합니다.",
+       "apihelp-query+filearchive-paramvalue-prop-user": "그림 판을 올린 사용자를 추가합니다.",
+       "apihelp-query+filearchive-paramvalue-prop-description": "그림 판의 설명을 추가합니다.",
+       "apihelp-query+filearchive-paramvalue-prop-mime": "그림의 MIME를 추가합니다.",
+       "apihelp-query+filearchive-paramvalue-prop-mediatype": "그림의 미디어 유형을 추가합니다.",
+       "apihelp-query+filearchive-paramvalue-prop-metadata": "그림의 버전에 대한 Exif 메타데이터를 나열합니다.",
+       "apihelp-query+filearchive-example-simple": "삭제된 모든 파일의 목록을 표시합니다.",
+       "apihelp-query+filerepoinfo-description": "위키에 구성된 그림 저장소에 대한 메타 정보를 반환합니다.",
+       "apihelp-query+filerepoinfo-example-simple": "파일 저장소의 정보를 가져옵니다.",
+       "apihelp-query+fileusage-param-prop": "얻고자 하는 속성:",
+       "apihelp-query+fileusage-paramvalue-prop-pageid": "각 문서의 페이지 ID.",
+       "apihelp-query+fileusage-paramvalue-prop-title": "각 문서의 제목.",
+       "apihelp-query+fileusage-paramvalue-prop-redirect": "문서가 넘겨주기이면 표시합니다.",
+       "apihelp-query+fileusage-param-namespace": "이 이름공간의 문서만 포함합니다.",
+       "apihelp-query+fileusage-param-limit": "반환할 항목 수.",
+       "apihelp-query+fileusage-param-show": "이 기준을 충족하는 항목만 표시합니다:\n;redirect:넘겨주기만 표시합니다.\n;!redirect:넘겨주기가 아닌 항목만 표시합니다.",
+       "apihelp-query+imageinfo-paramvalue-prop-timestamp": "업로드된 판에 대한 타임스탬프를 추가합니다.",
+       "apihelp-query+imageinfo-paramvalue-prop-sha1": "파일에 대한 SHA-1 해시를 추가합니다.",
+       "apihelp-query+imageinfo-paramvalue-prop-mediatype": "파일의 미디어 유형을 추가합니다.",
+       "apihelp-query+imageinfo-param-urlheight": "$1urlwidth와 유사합니다.",
+       "apihelp-query+imageinfo-example-simple": "[[:File:Albert Einstein Head.jpg]]의 현재 판에 대한 정보를 가져옵니다.",
+       "apihelp-query+imageinfo-example-dated": "2008년 및 그 이후의 [[:File:Test.jpg]]의 판에 대한 정보를 가져옵니다.",
+       "apihelp-query+images-param-limit": "반환할 파일 수.",
+       "apihelp-query+imageusage-param-namespace": "열거할 이름공간.",
+       "apihelp-query+imageusage-example-generator": "[[:File:Albert Einstein Head.jpg]]를 이용하여 페이지의 정보를 가져옵니다.",
+       "apihelp-query+info-description": "기본 페이지 정보를 가져옵니다.",
+       "apihelp-query+info-param-prop": "얻고자 하는 추가 속성:",
+       "apihelp-query+info-paramvalue-prop-protection": "각 문서의 보호 수준을 나열합니다.",
+       "apihelp-query+info-paramvalue-prop-readable": "사용자가 이 문서를 읽을 수 있는지의 여부.",
+       "apihelp-query+iwbacklinks-param-prefix": "인터위키의 접두사.",
+       "apihelp-query+iwbacklinks-param-title": "검색할 인터위키 링크. <var>$1blprefix</var>와 함께 사용해야 합니다.",
+       "apihelp-query+iwbacklinks-param-limit": "반활한 총 문서 수.",
+       "apihelp-query+iwbacklinks-param-prop": "얻고자 하는 속성:",
+       "apihelp-query+iwbacklinks-paramvalue-prop-iwprefix": "인터위키의 접두사를 추가합니다.",
+       "apihelp-query+iwbacklinks-paramvalue-prop-iwtitle": "인터위키의 제목을 추가합니다.",
+       "apihelp-query+iwlinks-paramvalue-prop-url": "전체 URL을 추가합니다.",
+       "apihelp-query+langbacklinks-param-lang": "언어 링크의 언어.",
+       "apihelp-query+langbacklinks-paramvalue-prop-lllang": "언어 링크의 언어 코드를 추가합니다.",
+       "apihelp-query+langbacklinks-paramvalue-prop-lltitle": "언어 링크의 제목을 추가합니다.",
+       "apihelp-query+langlinks-paramvalue-prop-url": "전체 URL을 추가합니다.",
+       "apihelp-query+langlinks-param-lang": "이 언어 코드의 언어 링크만 반환합니다.",
+       "apihelp-query+linkshere-paramvalue-prop-pageid": "각 문서의 페이지 ID.",
+       "apihelp-query+linkshere-paramvalue-prop-title": "각 문서의 제목.",
+       "apihelp-query+linkshere-param-namespace": "이 이름공간의 문서만 포함합니다.",
+       "apihelp-query+linkshere-param-limit": "반환할 항목 수.",
+       "apihelp-query+linkshere-param-show": "이 기준을 충족하는 항목만 표시합니다:\n;redirect:넘겨주기만 표시합니다.\n;!redirect:넘겨주기가 아닌 항목만 표시합니다.",
+       "apihelp-query+logevents-paramvalue-prop-ids": "로그 이벤트의 ID를 추가합니다.",
+       "apihelp-query+logevents-paramvalue-prop-type": "로그 이벤트의 유형을 추가합니다.",
+       "apihelp-query+pagepropnames-param-limit": "반환할 이름의 최대 수.",
+       "apihelp-query+pageswithprop-param-prop": "포함할 정보:",
+       "apihelp-query+pageswithprop-paramvalue-prop-ids": "페이지 ID를 추가합니다.",
+       "apihelp-query+pageswithprop-paramvalue-prop-title": "문서의 제목과 이름공간 ID를 추가합니다.",
        "apihelp-query+pageswithprop-param-limit": "나타낼 문서의 최대 수입니다.",
        "apihelp-query+pageswithprop-param-dir": "정렬 순서",
        "apihelp-query+prefixsearch-param-search": "문자열 검색",
+       "apihelp-query+prefixsearch-param-namespace": "검색할 이름공간.",
+       "apihelp-query+prefixsearch-param-limit": "반환할 결과의 최대 수",
+       "apihelp-query+prefixsearch-param-profile": "검색 프로파일 사용",
+       "apihelp-query+protectedtitles-paramvalue-prop-level": "보호 수준을 추가합니다.",
+       "apihelp-query+recentchanges-param-prop": "추가 정보를 포함합니다:",
+       "apihelp-query+recentchanges-paramvalue-prop-user": "편집에 임할 사용자를 추가하고 IP인 경우 태그합니다.",
+       "apihelp-query+recentchanges-paramvalue-prop-userid": "편집에 임할 사용자를 추가합니다.",
+       "apihelp-query+recentchanges-paramvalue-prop-flags": "편집에 대한 플래그를 추가합니다.",
+       "apihelp-query+revisions+base-paramvalue-prop-size": "판의 길이. (바이트)",
+       "apihelp-query+revisions+base-paramvalue-prop-sha1": "판의 SHA-1 (base 16).",
+       "apihelp-query+revisions+base-paramvalue-prop-contentmodel": "판의 콘텐츠 모델 ID.",
+       "apihelp-query+revisions+base-paramvalue-prop-content": "판의 텍스트.",
+       "apihelp-query+revisions+base-paramvalue-prop-tags": "판의 태그.",
+       "apihelp-query+search-param-qiprofile": "쿼리 독립적인 프로파일 사용(순위 알고리즘에 영향있음)",
+       "apihelp-query+search-paramvalue-prop-size": "바이트 단위로 문서의 크기를 추가합니다.",
+       "apihelp-query+search-paramvalue-prop-wordcount": "문서의 낱말 수를 추가합니다.",
+       "apihelp-query+search-paramvalue-prop-timestamp": "문서가 마지막으로 편집된 시기의 타임스탬프를 추가합니다.",
+       "apihelp-query+search-example-simple": "<kbd>meaning</kbd>을 검색합니다.",
+       "apihelp-query+search-example-text": "<kbd>meaning</kbd>의 텍스트를 검색합니다.",
+       "apihelp-query+siteinfo-param-prop": "가져올 정보:",
+       "apihelp-query+siteinfo-paramvalue-prop-general": "전반적인 시스템 정보.",
+       "apihelp-query+siteinfo-paramvalue-prop-statistics": "사이트 통계를 반환합니다.",
+       "apihelp-query+siteinfo-paramvalue-prop-interwikimap": "인터위키 맵을 반환합니다. (<var>$1inlanguagecode</var>를 사용하여 필터링 및 지역화 선택 가능)",
+       "apihelp-query+siteinfo-paramvalue-prop-usergroups": "사용자 그룹 및 관련 권한을 반환합니다.",
+       "apihelp-query+siteinfo-paramvalue-prop-libraries": "위키에 설치된 라이브러리를 반환합니다.",
+       "apihelp-query+siteinfo-paramvalue-prop-extensions": "위키에 설치된 확장 기능을 반환합니다.",
+       "apihelp-query+siteinfo-paramvalue-prop-fileextensions": "업로드가 허용된 파일 확장자(파일 종류)의 목록을 반환합니다.",
+       "apihelp-query+siteinfo-paramvalue-prop-rightsinfo": "이용 가능한 경우 위키 권한 (라이선스) 정보를 반환합니다.",
+       "apihelp-query+siteinfo-paramvalue-prop-restrictions": "이용 가능한 제한 (보호) 종류의 정보를 반환합니다.",
+       "apihelp-query+siteinfo-paramvalue-prop-languages": "미디어위키가 지원하는 언어 목록을 반환합니다. (<var>$1inlanguagecode</var>를 사용하여 지역화 선택 가능)",
+       "apihelp-query+siteinfo-paramvalue-prop-skins": "사용 중인 모든 스킨의 목록을 반환합니다. (<var>$1inlanguagecode</var>를 사용하여 지역화 선택이 가능하며, 이를 사용하지 않으면 본문의 언어를 사용함)",
+       "apihelp-query+siteinfo-paramvalue-prop-extensiontags": "파서 확장 태그의 목록을 반환합니다.",
+       "apihelp-query+siteinfo-paramvalue-prop-functionhooks": "파서 함수 훅의 목록을 반환합니다.",
+       "apihelp-query+siteinfo-paramvalue-prop-variables": "변수 ID의 목록을 반환합니다.",
+       "apihelp-query+siteinfo-paramvalue-prop-protocols": "외부 링크에 허용된 프로토콜의 목록을 반환합니다.",
+       "apihelp-query+siteinfo-paramvalue-prop-defaultoptions": "사용자 환경 설정의 기본값을 반환합니다.",
+       "apihelp-query+siteinfo-paramvalue-prop-uploaddialog": "업로드 대화 상자 구성을 반환합니다.",
+       "apihelp-query+siteinfo-param-numberingroup": "사용자 그룹의 사용자 수를 나열합니다.",
+       "apihelp-query+siteinfo-example-simple": "사이트 정보를 가져옵니다.",
+       "apihelp-query+siteinfo-example-interwiki": "로컬 인터위키 접두사 목록을 가져옵니다.",
+       "apihelp-query+tags-param-limit": "나열할 태그의 최대 수.",
+       "apihelp-query+tags-paramvalue-prop-name": "태그의 이름을 추가합니다.",
+       "apihelp-query+tags-paramvalue-prop-description": "태그의 설명을 추가합니다.",
+       "apihelp-query+tags-paramvalue-prop-hitcount": "판의 수와 이 판을 가진 로그 엔트리를 추가합니다.",
+       "apihelp-query+templates-param-limit": "반환할 틀 수.",
+       "apihelp-query+tokens-param-type": "요청할 토큰의 종류.",
+       "apihelp-query+transcludedin-paramvalue-prop-pageid": "각 문서의 페이지 ID.",
+       "apihelp-query+transcludedin-paramvalue-prop-title": "각 문서의 제목.",
+       "apihelp-query+transcludedin-paramvalue-prop-redirect": "문서가 넘겨주기이면 표시합니다.",
+       "apihelp-query+transcludedin-param-namespace": "이 이름공간의 문서만 포함합니다.",
+       "apihelp-query+transcludedin-param-limit": "반환할 항목 수.",
+       "apihelp-query+transcludedin-param-show": "이 기준을 충족하는 항목만 표시합니다:\n;redirect:넘겨주기만 표시합니다.\n;!redirect:넘겨주기가 아닌 항목만 표시합니다.",
+       "apihelp-query+usercontribs-description": "한 사용자의 모든 편집을 가져옵니다.",
+       "apihelp-query+usercontribs-param-limit": "반환할 기여의 최대 수.",
+       "apihelp-query+usercontribs-paramvalue-prop-ids": "페이지 ID와 판 ID를 추가합니다.",
+       "apihelp-query+usercontribs-paramvalue-prop-title": "문서의 제목과 이름공간 ID를 추가합니다.",
+       "apihelp-query+usercontribs-paramvalue-prop-timestamp": "편집의 타임스탬프를 추가합니다.",
+       "apihelp-query+usercontribs-paramvalue-prop-size": "편집의 새로운 크기를 추가합니다.",
+       "apihelp-query+usercontribs-paramvalue-prop-flags": "편집의 플래그를 추가합니다.",
+       "apihelp-query+usercontribs-paramvalue-prop-patrolled": "점검한 편집을 태그합니다.",
+       "apihelp-query+usercontribs-paramvalue-prop-tags": "편집의 태그를 나열합니다.",
+       "apihelp-query+usercontribs-param-tag": "이 태그로 태그된 판만을 나열합니다.",
+       "apihelp-query+usercontribs-param-toponly": "최신 판인 변경 사항만 나열합니다.",
+       "apihelp-query+usercontribs-example-user": "사용자 <kbd>Example</kbd>의 기여를 표시합니다.",
+       "apihelp-query+usercontribs-example-ipprefix": "<kbd>192.0.2.</kbd>로 시작하는 모든 IP 주소의 기여를 표시합니다.",
+       "apihelp-query+userinfo-description": "현재 사용자의 정보를 가져옵니다.",
+       "apihelp-query+userinfo-param-prop": "포함할 정보:",
+       "apihelp-query+userinfo-paramvalue-prop-blockinfo": "현재 사용자가 차단되면 누구에 의해 무슨 이유로 차단되었는지 태그합니다.",
+       "apihelp-query+userinfo-paramvalue-prop-hasmsg": "현재 사용자가 대기 중인 메시지가 있다면 <samp>messages</samp> 태그를 추가합니다.",
+       "apihelp-query+userinfo-paramvalue-prop-groups": "현재 사용자가 소속된 모든 그룹을 나열합니다.",
+       "apihelp-query+userinfo-paramvalue-prop-implicitgroups": "현재 사용자가 자동으로 소속된 모든 그룹을 나열합니다.",
+       "apihelp-query+userinfo-paramvalue-prop-rights": "현재 사용자가 가진 모든 권한을 나열합니다.",
+       "apihelp-query+userinfo-paramvalue-prop-changeablegroups": "현재 사용자가 추가 및 제거할 수 있는 그룹을 나열합니다.",
+       "apihelp-query+userinfo-paramvalue-prop-options": "현재 사용자가 설정한 모든 설정을 나열합니다.",
+       "apihelp-query+userinfo-paramvalue-prop-editcount": "현재 사용자의 편집 수를 추가합니다.",
+       "apihelp-query+userinfo-paramvalue-prop-realname": "사용자의 실명을 추가합니다.",
+       "apihelp-query+userinfo-paramvalue-prop-email": "사용자의 이메일 주소와 이메일 인증 날짜를 추가합니다.",
+       "apihelp-query+userinfo-paramvalue-prop-registrationdate": "사용자의 등록 날짜를 추가합니다.",
+       "apihelp-query+userinfo-example-simple": "현재 사용자의 정보를 가져옵니다.",
+       "apihelp-query+userinfo-example-data": "현재 사용자의 추가 정보를 가져옵니다.",
+       "apihelp-query+users-description": "사용자 목록에 대한 정보를 가져옵니다.",
+       "apihelp-query+users-param-prop": "포함할 정보:",
+       "apihelp-query+users-paramvalue-prop-editcount": "사용자의 편집 수를 추가합니다.",
+       "apihelp-query+users-paramvalue-prop-registration": "사용자의 등록 타임스탬프를 추가합니다.",
+       "apihelp-query+users-param-token": "<kbd>[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]</kbd>을 대신 사용하십시오.",
+       "apihelp-query+users-example-simple": "사용자 <kbd>Example</kbd>의 정보를 반환합니다.",
+       "apihelp-query+watchlist-description": "현재 사용자의 주시목록의 문서의 최근 바뀜을 가져옵니다.",
+       "apihelp-query+watchlist-param-user": "이 사용자의 변경 사항만 나열합니다.",
+       "apihelp-query+watchlist-param-excludeuser": "이 사용자의 변경 사항을 나열하지 않습니다.",
+       "apihelp-query+watchlist-paramvalue-prop-ids": "판 ID와 페이지 ID를 추가합니다.",
+       "apihelp-query+watchlist-paramvalue-prop-title": "문서의 제목을 추가합니다.",
+       "apihelp-query+watchlist-paramvalue-prop-flags": "편집에 대한 플래그를 추가합니다.",
+       "apihelp-query+watchlist-paramvalue-prop-loginfo": "적절한 곳에 로그 정보를 추가합니다.",
+       "apihelp-removeauthenticationdata-description": "현재 사용자의 인증 데이터를 제거합니다.",
+       "apihelp-revisiondelete-description": "판을 삭제하거나 되살립니다.",
+       "apihelp-revisiondelete-param-reason": "삭제 또는 복구 이유.",
        "apihelp-rollback-param-tags": "되돌리기를 적용하기 위해 태그합니다.",
+       "apihelp-stashedit-param-sectiontitle": "새 문단을 위한 제목.",
+       "apihelp-stashedit-param-text": "문서 내용.",
+       "apihelp-stashedit-param-contentmodel": "새 콘텐츠의 콘텐츠 모델.",
+       "apihelp-tag-param-reason": "변경 이유.",
+       "apihelp-tokens-param-type": "요청할 토큰의 종류.",
        "apihelp-unblock-description": "사용자를 차단 해제합니다.",
+       "apihelp-unblock-param-reason": "차단 해제 이유.",
+       "apihelp-userrights-param-user": "사용자 이름.",
+       "apihelp-userrights-param-userid": "사용자 ID.",
        "apihelp-rawfm-description": "출력 데이터, 디버깅 요소를 포함, (HTML에 포함된)JSON형식.",
+       "apihelp-xml-param-includexmlnamespace": "지정하면 XML 이름공간을 추가합니다.",
+       "api-format-title": "미디어위키 API 결과",
        "api-help-title": "미디어위키 API 도움말",
        "api-help-lead": "이 페이지는 자동으로 생성된 미디어위키 API 도움말 문서입니다.\n\n설명 문서 및 예시: https://www.mediawiki.org/wiki/API",
        "api-help-main-header": "메인 모듈",
        "api-help-flag-deprecated": "이 모듈은 사용되지 않습니다.",
+       "api-help-flag-internal": "<strong>이 모듈은 내부용이거나 불안정합니다.</strong> 동작은 예고 없이 변경될 수 있습니다.",
        "api-help-flag-readrights": "이 모듈은 read 권한을 요구합니다.",
        "api-help-flag-writerights": "이 모듈은 write 권한을 요구합니다.",
        "api-help-flag-mustbeposted": "이 모듈은 POST 요청만을 허용합니다.",
+       "api-help-flag-generator": "이 모듈은 생성기로 사용할 수 있습니다.",
        "api-help-source": "출처: $1",
+       "api-help-source-unknown": "소스: <span class=\"apihelp-unknown\">알 수 없음</span>",
        "api-help-license": "라이선스: [[$1|$2]]",
        "api-help-license-noname": "라이선스: [[$1|링크 참조]]",
        "api-help-license-unknown": "라이선스: <span class=\"apihelp-unknown\">알 수 없음</span>",
        "api-help-param-deprecated": "사용 중지됨.",
        "api-help-param-required": "이 변수는 필수 입력 사항입니다.",
        "api-help-datatypes-header": "데이터 유형",
-       "api-help-datatypes": "API 요청 내 몇몇 매개변수형에 대해 더 자세히 설명해보겠습니다:\n;boolean\n:Boolean 매개변수들은 HTML 체크박스처럼 동작합니다: 만약 매개변수가 지정되었다면, 값에 상관없이 참의 값으로 여겨집니다. 거짓값은 매개변수 전체를 생략하세요.\n;timestamp\n:타임스탬프들은 여러 형식으로 표현될 수 있으나 ISO 8601 날짜와 시간이 추천됩니다. 모든 시간은 UTC이어야 하며, 포함된 시간대는 모두 무시됩니다.\n:* ISO 8601 날짜와 시간, <kbd><var>2001</var>-<var>01</var>-<var>15</var>T<var>14</var>:<var>56</var>:<var>00</var>Z</kbd> (구두점과 <kbd>Z</kbd>는 선택입니다.)\n:* ISO 8601 날짜와 시간과 (무시되는) 소수 초, <kbd><var>2001</var>-<var>01</var>-<var>15</var>T<var>14</var>:<var>56</var>:<var>00</var>.<var>00001</var>Z</kbd> (대시, 콜론과 <kbd>Z</kbd> 는 선택입니다.)\n:* 미디어위키 형식, <kbd><var>2001</var><var>01</var><var>15</var><var>14</var><var>56</var><var>00</var></kbd>\n:* 일반적인 수 형식 <kbd><var>2001</var>-<var>01</var>-<var>15</var> <var>14</var>:<var>56</var>:<var>00</var></kbd> (<kbd>GMT</kbd>, <kbd>+<var>##</var></kbd>, 또는 <kbd>-<var>##</var></kbd>와 같은 선택적 시간대는 무시됩니다)\n:*RFC 2822 형식 (시간대는 생략될 수 있음), <kbd><var>Mon</var>, <var>15</var> <var>Jan</var> <var>2001</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:* RFC 850 형식 (시간대는 생략될 수 있음), <kbd><var>Monday</var>, <var>15</var>-<var>Jan</var>-<var>2001</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:* C ctime 형식, <kbd><var>Mon</var> <var>Jan</var> <var>15</var> <var>14</var>:<var>56</var>:<var>00</var> <var>2001</var></kbd>\n:* 1부터 13자리까지의 숫자로 표현된 1970-01-01T00:00:00Z 부터 흐른 시간(초) (<kbd>0</kbd>을 제외)\n:* 문자열 <kbd>now</kbd>",
+       "api-help-datatypes": "API 요청 내 몇몇 매개변수형에 대해 더 자세히 설명해보겠습니다:\n;boolean\n:Boolean 매개변수들은 HTML 체크박스처럼 동작합니다: 만약 매개변수가 지정되었다면, 값에 상관없이 참의 값으로 여겨집니다. 거짓값은 매개변수 전체를 생략하세요.\n;timestamp\n:타임스탬프들은 여러 형식으로 표현될 수 있으나 ISO 8601 날짜와 시간이 추천됩니다. 모든 시간은 UTC이어야 하며, 포함된 시간대는 모두 무시됩니다.\n:* ISO 8601 날짜와 시간, <kbd><var>2001</var>-<var>01</var>-<var>15</var>T<var>14</var>:<var>56</var>:<var>00</var>Z</kbd> (구두점과 <kbd>Z</kbd>는 선택입니다.)\n:* ISO 8601 날짜와 시간과 (무시되는) 소수 초, <kbd><var>2001</var>-<var>01</var>-<var>15</var>T<var>14</var>:<var>56</var>:<var>00</var>.<var>00001</var>Z</kbd> (대시, 콜론과 <kbd>Z</kbd>는 선택입니다.)\n:* 미디어위키 형식, <kbd><var>2001</var><var>01</var><var>15</var><var>14</var><var>56</var><var>00</var></kbd>\n:* 일반적인 수 형식 <kbd><var>2001</var>-<var>01</var>-<var>15</var> <var>14</var>:<var>56</var>:<var>00</var></kbd> (<kbd>GMT</kbd>, <kbd>+<var>##</var></kbd>, 또는 <kbd>-<var>##</var></kbd>와 같은 선택적 시간대는 무시됩니다)\n:*RFC 2822 형식 (시간대는 생략될 수 있음), <kbd><var>Mon</var>, <var>15</var> <var>Jan</var> <var>2001</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:* RFC 850 형식 (시간대는 생략될 수 있음), <kbd><var>Monday</var>, <var>15</var>-<var>Jan</var>-<var>2001</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:* C ctime 형식, <kbd><var>Mon</var> <var>Jan</var> <var>15</var> <var>14</var>:<var>56</var>:<var>00</var> <var>2001</var></kbd>\n:* 1부터 13자리까지의 숫자로 표현된 1970-01-01T00:00:00Z 부터 흐른 시간(초) (<kbd>0</kbd>을 제외)\n:* 문자열 <kbd>now</kbd>",
+       "api-help-param-type-limit": "유형: 정수 또는 <kbd>max</kbd>",
        "api-help-param-type-integer": "유형: {{PLURAL:$1|1=정수|2=정수 목록}}",
        "api-help-param-type-boolean": "유형: 부울 ([[Special:ApiHelp/main#main/datatypes|자세한 정보]])",
        "api-help-param-list": "{{PLURAL:$1|1=하나의 값|2=값 (\"{{!}}\"로 구분)}}: $2",
+       "api-help-param-list-can-be-empty": "{{PLURAL:$1|0=비어 있어야 함|비어 있을 수 있거나 $2}}",
+       "api-help-param-limit": "$1 초과는 허용되지 않습니다.",
+       "api-help-param-limit2": "$1 초과는 허용되지 않습니다. (봇의 경우 $2)",
+       "api-help-param-integer-min": "{{PLURAL:$1|1=값|2=값들}}은 $2 이상이어야 합니다.",
+       "api-help-param-integer-max": "{{PLURAL:$1|1=값|2=값들}}은 $3 이하여야 합니다.",
+       "api-help-param-integer-minmax": "{{PLURAL:$1|1=값|2=값들}}은 $2와 $3 사이여야 합니다.",
+       "api-help-param-multi-max": "값들의 최대 수는 {{PLURAL:$1|$1}}입니다. (봇의 경우 {{PLURAL:$2|$2}})",
        "api-help-param-default": "기본값: $1",
        "api-help-param-default-empty": "기본값: <span class=\"apihelp-empty\">(비어 있음)</span>",
+       "api-help-param-token-webui": "호환성을 위해, 웹 UI에 사용된 토큰도 허용합니다.",
+       "api-help-param-continue": "더 많은 결과를 이용할 수 있을 때, 계속하려면 이것을 사용하십시오.",
        "api-help-param-no-description": "<span class=\"apihelp-empty\">(설명 없음)</span>",
        "api-help-examples": "{{PLURAL:$1|예시}}:",
        "api-help-permissions": "{{PLURAL:$1|권한}}:",
        "api-help-permissions-granted-to": "{{PLURAL:$1|다음 그룹에 부여됨}}: $2",
+       "api-help-open-in-apisandbox": "<small>[연습장에서 열기]</small>",
+       "api-help-authmanagerhelper-messageformat": "반환 메시지에 사용할 형식.",
        "api-credits": "API 개발자:\n* Roan Kattouw (선임 개발자, 2007년 9월–2009년)\n* Victor Vasiliev\n* Bryan Tong Minh\n* Sam Reed\n* Yuri Astrakhan (초기 개발자, 선임 개발자 2006년 9월~2007년 9월)\n* Brad Jorsch (선임 개발자 2013년–현재)\n\n당신의 의견이나 제안, 질문은 mediawiki-api@lists.wikimedia.org 로 보내주시거나,\nhttps://phabricator.wikimedia.org/ 에 버그 신고를 해 주시기 바랍니다.."
 }
index 26da426..2376c7b 100644 (file)
        "apihelp-feedcontributions-param-deletedonly": "zeijsch blohß de fottjeschmeße Beijdrähsch.",
        "apihelp-feedcontributions-param-toponly": "Zeich blohß de Änderonge, di och de neußte sin.",
        "apihelp-feedcontributions-param-newonly": "Zeich blohß de Änderonge, woh Sigge neu aanjelaat woode sin.",
+       "apihelp-feedcontributions-param-hideminor": "Donn kein Minni-Ännderonge ennblände.",
        "apihelp-feedcontributions-param-showsizediff": "Zeijsch de Ongerscheijd en de Jrühße zwesche de Väsjohne.",
        "apihelp-feedcontributions-example-simple": "Zeijsch de Änderonge vum Metmaacher <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Example</kbd>.",
        "apihelp-feedrecentchanges-description": "Donn ene Kannahl för de neuste Änderonge ußjävve.",
        "apihelp-import-param-namespace": "En heh dat Appachtemang emmpotehre. Kam_mer nit mem Parramehter „<var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1rootpage</var>“ zersamme bruche.",
        "apihelp-import-param-rootpage": "Als Ongersigg vun heh dä Sigg empottehre. Km_mer nit zosamme met däm Parramehter „<varlang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1namespace</var>“ bruche.",
        "apihelp-import-example-import": "Donn di Sigg „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">[[meta:Help:ParserFunctions]]</code>“ en et Appachtemang <code>100</code>empottehre, met alle älldere Väsjohne ennjeschloßße.",
+       "apihelp-linkaccount-example-link": "Fang dä Vörjang vum Verlengk obb ene Zohjang aan vun <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Example</kbd> aan.",
        "apihelp-login-param-name": "Metmaacher_Nahme.",
        "apihelp-login-param-password": "Paßwoot.",
        "apihelp-login-param-domain": "De Domaijn (kann fott bliehve)",
        "apihelp-query+watchlistraw-param-limit": "Wi vell Äjehbneße ennsjesammp pro Oprohv ußjejovve wähde sulle.",
        "apihelp-query+watchlistraw-param-prop": "Wat för en zohsäzlejje Eijeschaffte holle:",
        "apihelp-query+watchlistraw-example-simple": "Donn alle Sigge uß dem aktälle Metmaacher sing Oppaßleß opleßte.",
+       "apihelp-removeauthenticationdata-example-simple": "Versöhk dem aktoäle Metmaacher sing Dahte för <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">FooAuthenticationRequest</kbd> fott ze nämme.",
+       "apihelp-resetpassword-example-email": "Schegg en <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"„de eläktrohnesche Poß“\">e-mail</i> mem Passwod neu säze aan alle Matmaacher met dä Addräß <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">user@example.com</kbd>.",
        "apihelp-revisiondelete-description": "Versione fottschmieße un widder zeröck holle.",
        "apihelp-revisiondelete-param-hide": "Wat för jehde Väsjohn ze veschteijsche.",
        "apihelp-revisiondelete-param-show": "Wat för jehde Väsjohn zerökzeholle.",
        "apihelp-stashedit-param-sectiontitle": "De Övverschreff för ene neuje Afschnett",
        "apihelp-stashedit-param-text": "Dä Sigg ehre Ennhalld.",
        "apihelp-stashedit-param-contentmodel": "Et Enhalltsmodäll för dä neue Ennhalld.",
+       "apihelp-stashedit-param-summary": "Zosammefaßong änndere",
        "apihelp-tag-description": "Donn Makkehronge vun einzel Väsjohne udder Enndraähsch em Logbohch fott nämme udder se verjävve.",
        "apihelp-tag-param-rcid": "Ein udder mih Kännonge uß de neuste Ännderonge, woh di Makkehrong derbei jedonn udder fott jenumme wähde sull.",
        "apihelp-tag-param-revid": "Ein Kännong udder mih, woh di Makkehrong derbei jedonn udder fott jenumme wähde sull.",
index 12ec506..be09192 100644 (file)
@@ -21,6 +21,9 @@
        "apihelp-emailuser-param-target": "Bikarhênerê ku e-name jê rê bê şandin.",
        "apihelp-expandtemplates-param-title": "Sernavê rûpelê.",
        "apihelp-feedcontributions-param-deletedonly": "Tenê beşdariyên jêbirî nîşan bide.",
+       "apihelp-feedcontributions-param-hideminor": "Guherandinên biçûk veşêre.",
+       "apihelp-feedrecentchanges-param-hideminor": "Guherandinên biçûk veşêre.",
+       "apihelp-feedrecentchanges-param-hidebots": "Guherandinên botan veşêre.",
        "apihelp-feedrecentchanges-example-simple": "Guherandinên dawî nîşan bide.",
        "apihelp-feedrecentchanges-example-30days": "Guherandinên dawî yên 30 rojan nîşan bide",
        "apihelp-filerevert-param-comment": "Şîroveyê bar bike.",
@@ -35,5 +38,7 @@
        "apihelp-parse-example-summary": "Kurteyekê analîz bike",
        "apihelp-protect-description": "Asta parastinê ya rûpelekê biguherîne.",
        "apihelp-protect-example-protect": "Rûpelekê biparêze.",
-       "apihelp-tag-param-reason": "Sedemê bo guherandinê."
+       "apihelp-query+alllinks-paramvalue-prop-title": "Sernavê girêdanê lê zêde dike.",
+       "apihelp-tag-param-reason": "Sedemê bo guherandinê.",
+       "api-help-parameters": "{{PLURAL:$1|Parametre}}:"
 }
index 76fd47d..041203e 100644 (file)
@@ -41,6 +41,7 @@
        "apihelp-feedcontributions-param-month": "Vum Mount (a virdrun).",
        "apihelp-feedcontributions-param-deletedonly": "Nëmme geläscht Kontributioune weisen.",
        "apihelp-feedcontributions-param-toponly": "Nëmmen Ännerunge weisen déi déi lescht Versioun sinn.",
+       "apihelp-feedcontributions-param-hideminor": "Kleng Ännerunge verstoppen.",
        "apihelp-feedrecentchanges-param-days": "Deeg, op déi d'Resultater limitéiert gi sollen",
        "apihelp-feedrecentchanges-param-hideminor": "Kleng Ännerunge verstoppen.",
        "apihelp-feedrecentchanges-param-hidebots": "Ännerunge vu Botte verstoppen.",
        "apihelp-stashedit-param-title": "Titel vun der Säit déi geännert gëtt.",
        "apihelp-stashedit-param-sectiontitle": "Den Titel fir en neien Abschnitt.",
        "apihelp-stashedit-param-text": "Inhalt vun der Säit",
+       "apihelp-stashedit-param-summary": "Resumé änneren",
        "apihelp-tag-param-reason": "Grond fir d'Ännerung.",
        "apihelp-unblock-description": "D'Spär vun engem Benotzer ophiewen.",
        "apihelp-unblock-param-reason": "Grond fir d'Spär opzehiewen",
index 432d9c0..d88e0ec 100644 (file)
@@ -98,5 +98,6 @@
        "apihelp-query+watchlist-paramvalue-type-log": "नोंद प्रविष्ट्या",
        "apihelp-query+watchlist-paramvalue-type-categorize": "वर्ग सदस्यता बदलते.",
        "apihelp-stashedit-param-title": "पानाच्या मथळ्याचे संपादन होत आहे.",
-       "apihelp-stashedit-param-sectiontitle": "नविन विभागाचा मथळा"
+       "apihelp-stashedit-param-sectiontitle": "नविन विभागाचा मथळा",
+       "apihelp-stashedit-param-summary": "सारांश बदला."
 }
index 865ebd9..4b99320 100644 (file)
@@ -29,6 +29,7 @@
        "apihelp-block-description": "Gebruiker blokkeren.",
        "apihelp-block-param-user": "Gebruikersnaam, IP-adres of IP-range om te blokkeren.",
        "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-reblock": "De huidige blokkade aanpassen als de gebruiker al geblokkeerd is.",
index ad54d42..32e227d 100644 (file)
@@ -51,7 +51,7 @@
        "apihelp-login-param-password": "Senhal.",
        "apihelp-login-param-domain": "Domeni (facultatiu).",
        "apihelp-login-example-login": "Se connectar.",
-       "apihelp-managetags-description": "Efectuar de prètzfaches de gestion relatius a la modificacion de las balisas.",
+       "apihelp-managetags-description": "Efectuar de prètzfaits de gestion relatius a la modificacion de las balisas.",
        "apihelp-move-description": "Desplaçar una pagina.",
        "apihelp-opensearch-param-search": "Cadena de recèrca.",
        "apihelp-parse-example-page": "Analisar una pagina.",
index 2acc27b..96fe70e 100644 (file)
@@ -90,6 +90,7 @@
        "apihelp-feedcontributions-param-deletedonly": "Pokazuj tylko usunięty wkład.",
        "apihelp-feedcontributions-param-toponly": "Pokazuj tylko edycje będące ostatnią zmianą strony.",
        "apihelp-feedcontributions-param-newonly": "Pokazuj tylko edycje tworzące stronę.",
+       "apihelp-feedcontributions-param-hideminor": "Ukryj drobne zmiany.",
        "apihelp-feedcontributions-param-showsizediff": "Pokaż różnicę rozmiaru między wersjami.",
        "apihelp-feedrecentchanges-param-feedformat": "Format danych wyjściowych.",
        "apihelp-feedrecentchanges-param-namespace": "Przestrzeń nazw, do której ograniczone są wyniki.",
index 9f77e10..c2545fc 100644 (file)
@@ -12,7 +12,7 @@
        "apihelp-block-param-nocreate": "د گڼون جوړولو مخ نيول.",
        "apihelp-createaccount-param-name": "کارن-نوم.",
        "apihelp-delete-description": "يو مخ ړنگول.",
-       "apihelp-delete-example-simple": "<kbd>Main Page</kbd> ړنگول.",
+       "apihelp-delete-example-simple": "<kbd>لومړی مخ</kbd> ړنگول.",
        "apihelp-edit-description": "مخونه جوړول او سمول.",
        "apihelp-edit-param-sectiontitle": "د يوې نوې برخې سرليک.",
        "apihelp-edit-param-text": "مخ مېنځپانگه.",
@@ -45,6 +45,7 @@
        "apihelp-query+watchlist-paramvalue-prop-title": "د يو مخ سرليک ورگډوي.",
        "apihelp-query+watchlist-paramvalue-type-new": "مخ جوړونې.",
        "apihelp-stashedit-param-sectiontitle": "د يوې نوې برخې سرليک.",
+       "apihelp-stashedit-param-summary": "د بدلون لنډيز.",
        "apihelp-tag-param-reason": "د بدلون سبب.",
        "apihelp-unblock-param-reason": "د بنديز ليرې کولو سبب.",
        "apihelp-undelete-param-reason": "د بيازېرملو سبب.",
index a72b088..38af0cb 100644 (file)
@@ -7,7 +7,9 @@
                        "Rhcastilhos",
                        "Macofe",
                        "Almondega",
-                       "Raphaelras"
+                       "Raphaelras",
+                       "Caçador de Palavras",
+                       "LucyDiniz"
                ]
        },
        "apihelp-main-param-action": "Qual ação executar.",
        "apihelp-stashedit-param-text": "Conteúdo da página",
        "apihelp-stashedit-param-contentmodel": "Modelo de conteúdo do novo conteúdo.",
        "apihelp-stashedit-param-contentformat": "Formato de serialização de conteúdo usado para o texto de entrada.",
+       "apihelp-stashedit-param-summary": "Mudar sumário.",
        "apihelp-tag-param-reason": "Motivo para a mudança.",
        "apihelp-unblock-description": "Desbloquear usuário",
        "apihelp-unblock-param-id": "ID do bloco para desbloquear (obtido através de <kbd>list=blocks</kbd>). Não pode ser usado em conjunto com <var>$1user</var>.",
index b70ebe9..1b90a0d 100644 (file)
@@ -35,6 +35,7 @@
        "apihelp-expandtemplates-param-title": "Título da página.",
        "apihelp-feedcontributions-param-feedformat": "O formato do feed.",
        "apihelp-feedcontributions-param-deletedonly": "Mostrar apenas contribuições eliminadas.",
+       "apihelp-feedcontributions-param-hideminor": "Ocultar edições menores.",
        "apihelp-feedcontributions-param-showsizediff": "Mostrar diferença de tamanho entre edições.",
        "apihelp-feedrecentchanges-param-feedformat": "O formato do feed.",
        "apihelp-feedrecentchanges-param-limit": "Número máximo de resultados a apresentar.",
index 6137457..6c47aa4 100644 (file)
@@ -62,6 +62,7 @@
        "apihelp-compare-param-torev": "{{doc-apihelp-param|compare|torev}}",
        "apihelp-compare-example-1": "{{doc-apihelp-example|compare}}",
        "apihelp-createaccount-description": "{{doc-apihelp-description|createaccount}}",
+       "apihelp-createaccount-param-preservestate": "{{doc-apihelp-param|createaccount|preservestate|info=This message is displayed in addition to {{msg-mw|api-help-authmanagerhelper-preservestate}}.}}",
        "apihelp-createaccount-example-create": "{{doc-apihelp-example|createaccount}}",
        "apihelp-createaccount-param-name": "{{doc-apihelp-param|createaccount|name}}\n{{Identical|Username}}",
        "apihelp-createaccount-param-password": "{{doc-apihelp-param|createaccount|password}}",
@@ -74,6 +75,9 @@
        "apihelp-createaccount-param-language": "{{doc-apihelp-param|createaccount|language}}",
        "apihelp-createaccount-example-pass": "{{doc-apihelp-example|createaccount}}",
        "apihelp-createaccount-example-mail": "{{doc-apihelp-example|createaccount}}",
+       "apihelp-cspreport-description": "{{doc-apihelp-description|cspreport}}",
+       "apihelp-cspreport-param-reportonly": "{{doc-apihelp-param|cspreport|reportonly}}",
+       "apihelp-cspreport-param-source": "{{doc-apihelp-param|cspreport|source}}",
        "apihelp-delete-description": "{{doc-apihelp-description|delete}}",
        "apihelp-delete-param-title": "{{doc-apihelp-param|delete|title}}",
        "apihelp-delete-param-pageid": "{{doc-apihelp-param|delete|pageid}}",
        "apihelp-feedcontributions-param-deletedonly": "{{doc-apihelp-param|feedcontributions|deletedonly}}",
        "apihelp-feedcontributions-param-toponly": "{{doc-apihelp-param|feedcontributions|toponly}}",
        "apihelp-feedcontributions-param-newonly": "{{doc-apihelp-param|feedcontributions|newonly}}",
+       "apihelp-feedcontributions-param-hideminor": "{{doc-apihelp-param|feedcontributions|hideminor}}",
        "apihelp-feedcontributions-param-showsizediff": "{{doc-apihelp-param|feedcontributions|showsizediff}}",
        "apihelp-feedcontributions-example-simple": "{{doc-apihelp-example|feedcontributions}}",
        "apihelp-feedrecentchanges-description": "{{doc-apihelp-description|feedrecentchanges}}",
        "apihelp-query+prefixsearch-param-limit": "{{doc-apihelp-param|query+prefixsearch|limit}}",
        "apihelp-query+prefixsearch-param-offset": "{{doc-apihelp-param|query+prefixsearch|offset}}",
        "apihelp-query+prefixsearch-example-simple": "{{doc-apihelp-example|query+prefixsearch}}",
+       "apihelp-query+prefixsearch-param-profile": "{{doc-apihelp-param|query+prefixsearch|profile|paramvalues=1}}",
        "apihelp-query+protectedtitles-description": "{{doc-apihelp-description|query+protectedtitles}}",
        "apihelp-query+protectedtitles-param-namespace": "{{doc-apihelp-param|query+protectedtitles|namespace}}",
        "apihelp-query+protectedtitles-param-level": "{{doc-apihelp-param|query+protectedtitles|level}}",
        "apihelp-query+search-param-what": "{{doc-apihelp-param|query+search|what}}",
        "apihelp-query+search-param-info": "{{doc-apihelp-param|query+search|info}}",
        "apihelp-query+search-param-prop": "{{doc-apihelp-param|query+search|prop|paramvalues=1}}",
+       "apihelp-query+search-param-qiprofile": "{{doc-apihelp-param|query+search|qiprofile|paramvalues=1}}",
        "apihelp-query+search-paramvalue-prop-size": "{{doc-apihelp-paramvalue|query+search|prop|size}}",
        "apihelp-query+search-paramvalue-prop-wordcount": "{{doc-apihelp-paramvalue|query+search|prop|wordcount}}",
        "apihelp-query+search-paramvalue-prop-timestamp": "{{doc-apihelp-paramvalue|query+search|prop|timestamp}}",
        "apihelp-query+watchlistraw-param-show": "{{doc-apihelp-param|query+watchlistraw|show}}",
        "apihelp-query+watchlistraw-param-owner": "{{doc-apihelp-param|query+watchlistraw|owner}}",
        "apihelp-query+watchlistraw-param-token": "{{doc-apihelp-param|query+watchlistraw|token}}",
+       "apihelp-query+watchlistraw-param-dir": "{{doc-apihelp-param|query+watchlistraw|dir}}",
        "apihelp-query+watchlistraw-param-fromtitle": "{{doc-apihelp-param|query+watchlistraw|fromtitle}}",
        "apihelp-query+watchlistraw-param-totitle": "{{doc-apihelp-param|query+watchlistraw|totitle}}",
        "apihelp-query+watchlistraw-example-simple": "{{doc-apihelp-example|query+watchlistraw}}",
        "apihelp-stashedit-param-contentmodel": "{{doc-apihelp-param|stashedit|contentmodel}}",
        "apihelp-stashedit-param-contentformat": "{{doc-apihelp-param|stashedit|contentformat}}",
        "apihelp-stashedit-param-baserevid": "{{doc-apihelp-param|stashedit|baserevid}}",
+       "apihelp-stashedit-param-summary": "{{doc-apihelp-param|stashedit|summary}}",
        "apihelp-tag-description": "{{doc-apihelp-description|tag}}",
        "apihelp-tag-param-rcid": "{{doc-apihelp-param|tag|rcid}}",
        "apihelp-tag-param-revid": "{{doc-apihelp-param|tag|revid}}",
diff --git a/includes/api/i18n/sah.json b/includes/api/i18n/sah.json
new file mode 100644 (file)
index 0000000..89e17f4
--- /dev/null
@@ -0,0 +1,9 @@
+{
+       "@metadata": {
+               "authors": [
+                       "София",
+                       "HalanTul"
+               ]
+       },
+       "apihelp-stashedit-param-summary": "Түмүгү уларыт."
+}
index ad4bee4..fdf003d 100644 (file)
@@ -10,5 +10,6 @@
        "apihelp-query+watchlist-paramvalue-type-edit": "قاعديوار صفحاتي ترميمون.",
        "apihelp-query+watchlist-paramvalue-type-external": "خارجي تبديليون.",
        "apihelp-query+watchlist-paramvalue-type-new": "صفحن جون تخليقون.",
-       "apihelp-query+watchlist-paramvalue-type-log": "لاگ داخلائون."
+       "apihelp-query+watchlist-paramvalue-type-log": "لاگ داخلائون.",
+       "apihelp-stashedit-param-summary": "تَتُ تبديل ڪريو."
 }
index 5de1dee..3205248 100644 (file)
        "apihelp-feedcontributions-param-deletedonly": "Visa bara borttagna bidrag.",
        "apihelp-feedcontributions-param-toponly": "Visa endast ändringar som är senaste revideringen.",
        "apihelp-feedcontributions-param-newonly": "Visa endast redigeringar där sidor skapas.",
+       "apihelp-feedcontributions-param-hideminor": "Göm mindre ändringar.",
        "apihelp-feedcontributions-param-showsizediff": "Visa skillnaden i storlek mellan revisioner.",
        "apihelp-feedcontributions-example-simple": "Returnera bidrag för <kbd>Exempel</kbd>",
        "apihelp-feedrecentchanges-description": "Returnerar ett flöde med senaste ändringar.",
        "apihelp-query+langbacklinks-example-simple": "Hämta sidor som länkar till [[:fr:Test]].",
        "apihelp-query+langlinks-param-dir": "Riktningen att lista mot.",
        "apihelp-query+links-param-dir": "Riktningen att lista mot.",
+       "apihelp-query+prefixsearch-param-profile": "Sök profil att använda.",
        "apihelp-query+protectedtitles-param-limit": "Hur många sidor att returnera totalt.",
        "apihelp-query+protectedtitles-example-simple": "Lista skyddade titlar.",
        "apihelp-query+recentchanges-example-simple": "Lista de senaste ändringarna.",
        "apihelp-query+watchlistraw-description": "Hämta alla sidor på den aktuella användarens bevakningslista.",
        "apihelp-query+watchlistraw-example-simple": "Lista sidor på den aktuella användarens bevakningslista.",
        "apihelp-setnotificationtimestamp-example-all": "Återställ meddelandestatus för hela bevakningslistan.",
+       "apihelp-stashedit-param-summary": "Ändra sammanfattning.",
        "apihelp-upload-param-filekey": "Nyckel som identifierar en tidigare uppladdning som lagrats temporärt.",
        "apihelp-upload-param-stash": "Om angiven, kommer servern att temporärt lagra filen istället för att lägga till den i centralförvaret.",
        "apihelp-upload-example-url": "Ladda upp från URL.",
diff --git a/includes/api/i18n/udm.json b/includes/api/i18n/udm.json
new file mode 100644 (file)
index 0000000..fe9d085
--- /dev/null
@@ -0,0 +1,9 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Kaganer"
+               ]
+       },
+       "apihelp-edit-example-edit": "Бамез тупатъяно.",
+       "apihelp-login-example-login": "Пырыны."
+}
index 0802c53..505476b 100644 (file)
@@ -24,7 +24,7 @@
        "apihelp-main-param-requestid": "Будь-яке значення, вказане тут, буде включене у відповідь. Може використовуватися, щоб відрізняти запити.",
        "apihelp-main-param-servedby": "Включити в результати ім'я хоста, який обробив запит.",
        "apihelp-main-param-curtimestamp": "Включити в результат поточну мітку часу.",
-       "apihelp-main-param-origin": "При доступі до API з використанням крос-доменного AJAX-запиту (CORS), задайте параметру значення вихідного домена. Він має бути включений у будь-який попередній запит і таким чином мусить бути частиною запиту URI (не тіла POST). Він повинен точно співпадати з одним з виходів у заголовку <code>Origin</code>, тобто бути заданим чимось на зразок <kbd>https://uk.wikipedia.org</kbd> або <kbd>https://meta.wikimedia.org</kbd>. Якщо цей параметр не співпадає з заголовком <code>Origin</code>, повернеться помилка 403. Якщо цей параметр співпадає з заголовком <code>Origin</code> і вихід знаходиться у білому списку, буде встановлено заголовок <code>Access-Control-Allow-Origin</code>.",
+       "apihelp-main-param-origin": "При доступі до API з використанням крос-доменного AJAX-запиту (CORS), задайте параметру значення вихідного домена. Він має бути включений у будь-який попередній запит і таким чином мусить бути частиною запиту URI (не тіла POST). \n\nДля автентифікованих запитів він повинен точно співпадати з одним з виходів у заголовку <code>Origin</code>, тобто бути заданим чимось на зразок <kbd>https://uk.wikipedia.org</kbd> або <kbd>https://meta.wikimedia.org</kbd>. Якщо цей параметр не співпадає з заголовком <code>Origin</code>, повернеться помилка 403. Якщо цей параметр співпадає з заголовком <code>Origin</code> і вихід знаходиться у білому списку, буде встановлено заголовки <code>Access-Control-Allow-Origin</code> і <code>Access-Control-Allow-Credentials</code>.\n\nДля неавтентифікованих запитів укажіть значення <kbd>*</kbd>. Це дасть встановлення заголовка <code>Access-Control-Allow-Origin</code>, але <code>Access-Control-Allow-Credentials</code> буде <code>false</code> і всі дані про користувача будуть заборонені.",
        "apihelp-main-param-uselang": "Мова, що використовується для перекладу повідомлень. Список кодів можна видати на <kbd>[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]</kbd> з <kbd>siprop=languages</kbd> або вказати <kbd>user</kbd> на використання поточного налаштування мови користувача, або вказати <kbd>content</kbd> на використання мови вмісту цієї вікі.",
        "apihelp-block-description": "Заблокувати користувача.",
        "apihelp-block-param-user": "Ім'я користувача, IP-адреса або діапазон IP-адрес для блокування.",
@@ -41,6 +41,7 @@
        "apihelp-block-example-ip-simple": "Блокувати IP-адресу <kbd>192.0.2.5</kbd> на три дні з причиною <kbd>First strike</kbd>.",
        "apihelp-block-example-user-complex": "Блокувати користувача<kbd>Vandal</kbd> на невизначений термін з причиною <kbd>Vandalism</kbd> і заборонити створення нових облікових записів та надсилання електронної пошти.",
        "apihelp-changeauthenticationdata-description": "Зміна параметрів аутентифікації для поточного користувача.",
+       "apihelp-changeauthenticationdata-example-password": "Спроба змінити поточний пароль користувача на <kbd>ExamplePassword</kbd>.",
        "apihelp-checktoken-description": "Перевірити коректність токена з <kbd>[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]</kbd>.",
        "apihelp-checktoken-param-type": "Тип токена, який тестується.",
        "apihelp-checktoken-param-token": "Токен для тесту.",
@@ -48,6 +49,9 @@
        "apihelp-checktoken-example-simple": "Перевірити дійсність токена <kbd>csrf</kbd>.",
        "apihelp-clearhasmsg-description": "Очищає прапорець <code>hasmsg</code> для поточного користувача.",
        "apihelp-clearhasmsg-example-1": "Очистити прапорець <code>hasmsg</code> для поточного користувача.",
+       "apihelp-clientlogin-description": "Увійдіть у вікі з допомогою інтерактивного потоку.",
+       "apihelp-clientlogin-example-login": "Почати процес входу у вікі як користувач <kbd>Example</kbd> з паролем <kbd>ExamplePassword</kbd>.",
+       "apihelp-clientlogin-example-login2": "Продовжити вхід в систему після відповіді <samp>UI</samp> для двофакторної автентифікації, надаючи <var>OATHToken</var> як <kbd>987654</kbd>.",
        "apihelp-compare-description": "Отримати порівняння двох сторінок.\n\nПовинні бути номер версії, назва сторінки або ID сторінки для «від» і «до».",
        "apihelp-compare-param-fromtitle": "Перший заголовок для порівняння.",
        "apihelp-compare-param-fromid": "Перший ID сторінки для порівняння.",
@@ -57,6 +61,8 @@
        "apihelp-compare-param-torev": "Друга версія для порівняння.",
        "apihelp-compare-example-1": "Створити порівняння версій 1 і 2.",
        "apihelp-createaccount-description": "Створити новий обліковий запис користувача.",
+       "apihelp-createaccount-param-preservestate": "Якщо запит <kbd>[[Special:ApiHelp/query+authmanagerinfo|action=query&meta=authmanagerinfo]]</kbd> повернув істину для <samp>hasprimarypreservedstate</samp>, запити позначені як <samp>primary-required</samp> повинні бути пропущені. Якщо він повернув не порожнє значення для <samp>preservedusername</samp>, це ім'я користувача повинно бути використано для параметру <var>username</var>.",
+       "apihelp-createaccount-example-create": "Почати процес створення користувача <kbd>Example</kbd> з паролем <kbd>ExamplePassword</kbd>.",
        "apihelp-createaccount-param-name": "Ім'я користувача.",
        "apihelp-createaccount-param-password": "Пароль (ігнорується, якщо встановлено <var>$1mailpassword</var>).",
        "apihelp-createaccount-param-domain": "Домен для зовнішньої аутентифікації (опціонально).",
        "apihelp-feedcontributions-param-deletedonly": "Показати лише вилучений внесок.",
        "apihelp-feedcontributions-param-toponly": "Показати лише редагування, які є останніми версіями.",
        "apihelp-feedcontributions-param-newonly": "Показати лише редагування, які є створеннями сторінок.",
+       "apihelp-feedcontributions-param-hideminor": "Приховати незначні редагування.",
        "apihelp-feedcontributions-param-showsizediff": "Показати різницю розміру між версіями.",
        "apihelp-feedcontributions-example-simple": "Вивести внесок для користувача <kbd>Example</kbd>.",
        "apihelp-feedrecentchanges-description": "Видає стрічку нових редагувань.",
        "apihelp-import-param-namespace": "Імпортувати у цей простір назв. Не можна використати разом з <var>$1rootpage</var>.",
        "apihelp-import-param-rootpage": "Імпортувати як підсторінку цієї сторінки. Не можна використати разом з <var>$1namespace</var>.",
        "apihelp-import-example-import": "Імпортувати [[meta:Help:ParserFunctions]] у простір назв 100 з повною історією.",
-       "apihelp-login-description": "Увійти в систему й отримати куки автентифікації.\n\nУ випадку успішного входження в систему, потрібні куки буде включено в заголовки HTTP-відповіді. У разі невдалого входу, подальші спроби будуть обмежені до ліміту автоматичних спроб підбирання пароля.",
+       "apihelp-linkaccount-description": "Пов'язати обліковий запис третьої сторони з поточним користувачем.",
+       "apihelp-linkaccount-example-link": "Почати процес пов'язування з обліковм записом з <kbd>Example</kbd>.",
+       "apihelp-login-description": "Увійти в систему й отримати куки автентифікації.\n\nЦю дію треба використовувати лише в комбінації з [[Special:BotPasswords]]; використання для входу в основний обліковий запис застаріле і може ламатися без попередження. Щоб безпечно увійти в основний обліковий запис, використовуйте <kbd>[[Special:ApiHelp/clientlogin|action=clientlogin]]</kbd>.",
+       "apihelp-login-description-nobotpasswords": "Увійти й отримати куки автентифікації.\n\nЦя дія застаріла і може ламатися без попередження. Щоб безпечно входити в систему, використовуйте <kbd>[[Special:ApiHelp/clientlogin|action=clientlogin]]</kbd>.",
+       "apihelp-login-description-nonauthmanager": "Увійти й отримати куки автентифікації.\n\nУ випадку успішного входження в систему будуть включені в заголовки відповіді HTTP. У випадку невдалого входження подальші спроби можуть бути урізані, щоб обмежити атаки автоматичного вгадування пароля.",
        "apihelp-login-param-name": "Ім'я користувача.",
        "apihelp-login-param-password": "Пароль.",
        "apihelp-login-param-domain": "Домен (необов'язково).",
        "apihelp-query+allusers-param-activeusers": "Перерахувати лише користувачів, що були активні $1 {{PLURAL:$1|останній день|останні дні|останніх днів}}.",
        "apihelp-query+allusers-param-attachedwiki": "Із <kbd>$1prop=centralids</kbd>, також вказати, чи користувач має приєднану вікі, визначену цим ідентифікатором.",
        "apihelp-query+allusers-example-Y": "Перерахувати користувачів, починаючи з <kbd>Y</kbd>.",
+       "apihelp-query+authmanagerinfo-description": "Отримати інформацію про поточний стан автентифікації.",
+       "apihelp-query+authmanagerinfo-param-securitysensitiveoperation": "Перевірити, чи поточний стан автентифікації користувача є достатнім для даної конфіденційної операції.",
+       "apihelp-query+authmanagerinfo-param-requestsfor": "Отримати інформацію про запити автентифікації, потрібні для даної дії автентифікації.",
+       "apihelp-query+filerepoinfo-example-login": "Вибірка запитів, що можуть бути використані при початку входу.",
+       "apihelp-query+filerepoinfo-example-login-merged": "Отримати запити, які можуть бути використані при початку входу, з об'єднаними полями форми.",
+       "apihelp-query+filerepoinfo-example-securitysensitiveoperation": "Перевірити чи автентифікація є достатньою для дії <kbd>foo</kbd>.",
        "apihelp-query+backlinks-description": "Знайти усі сторінки, що посилаються на подану сторінку.",
        "apihelp-query+backlinks-param-title": "Назва для пошуку. Не можна використати разом з <var>$1pageid</var>.",
        "apihelp-query+backlinks-param-pageid": "ID сторінки для пошуку. Не можна використати разом з <var>$1title</var>.",
        "apihelp-query+prefixsearch-param-limit": "Максимальна кількість результатів для виведення.",
        "apihelp-query+prefixsearch-param-offset": "Кількість результатів, які пропустити.",
        "apihelp-query+prefixsearch-example-simple": "Шукати назви сторінок, які починаються з <kbd>meaning</kbd>.",
+       "apihelp-query+prefixsearch-param-profile": "Профіль пошуку для використання.",
        "apihelp-query+protectedtitles-description": "Вивести список усіх назв, захищених від створення.",
        "apihelp-query+protectedtitles-param-namespace": "Перерахувати назви лише в цих просторах назв.",
        "apihelp-query+protectedtitles-param-level": "Перерахувати лише назви з цими рівням захисту.",
        "apihelp-query+search-param-what": "Який тип пошуку виконати.",
        "apihelp-query+search-param-info": "Які метадані отримати.",
        "apihelp-query+search-param-prop": "Які властивості для виведення:",
+       "apihelp-query+search-param-qiprofile": "Незалежний профіль запиту для використання (впливає на алгоритм ранжування).",
        "apihelp-query+search-paramvalue-prop-size": "Додає розмір сторінки в байтах.",
        "apihelp-query+search-paramvalue-prop-wordcount": "Додає кількість слів на сторінці.",
        "apihelp-query+search-paramvalue-prop-timestamp": "Додає часову мітку останнього редагування сторінки.",
        "apihelp-query+users-paramvalue-prop-emailable": "Помічає чи хоче користувач отримувати електронну пошту через [[Special:Emailuser]].",
        "apihelp-query+users-paramvalue-prop-gender": "Помічає стать користувача. Повертає \"male\", \"female\", або \"unknown\".",
        "apihelp-query+users-paramvalue-prop-centralids": "Додає центральні ідентифікатори і стан приєднання для користувача.",
+       "apihelp-query+users-paramvalue-prop-cancreate": "Вказує, чи можна створити обліковий запис для допустимих, але незареєстрованих імен користувачів.",
        "apihelp-query+users-param-attachedwiki": "Із <kbd>$1prop=centralids</kbd>, вказати, чи користувач має приєднану вікі, визначену цим ідентифікатором.",
        "apihelp-query+users-param-users": "Список користувачів, для яких отримати інформацію.",
        "apihelp-query+users-param-token": "Використати натомість <kbd>[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]</kbd>.",
        "apihelp-query+watchlistraw-param-show": "Перелічити лише елементи, які відповідають цим критеріям.",
        "apihelp-query+watchlistraw-param-owner": "Використовується разом з $1token для доступу до списку спостереження різних користувачів.",
        "apihelp-query+watchlistraw-param-token": "Токен безпеки (доступний у [[Special:Preferences#mw-prefsection-watchlist|налаштуваннях]] користувача) для отримання доступу до списку спостереження іншого користувача.",
+       "apihelp-query+watchlistraw-param-dir": "Напрямок, у якому перелічити.",
        "apihelp-query+watchlistraw-param-fromtitle": "Назва (з префіксом простору назв), з якої почати перерахування.",
        "apihelp-query+watchlistraw-param-totitle": "Назва (з префіксом простору назв), якою закінчити перерахування.",
        "apihelp-query+watchlistraw-example-simple": "Перелічити сторінки у списку спостереження поточного користувача.",
        "apihelp-query+watchlistraw-example-generator": "Вибрати інформацію про сторінку для сторінок у списку спостереження поточного користувача.",
+       "apihelp-removeauthenticationdata-description": "Вилучити параметри автентифікації для поточного користувача.",
+       "apihelp-removeauthenticationdata-example-simple": "Спроба вилучити дані поточного користувача для <kbd>FooAuthenticationRequest</kbd>.",
+       "apihelp-resetpassword-description": "Відправити користувачу лист для відновлення пароля.",
+       "apihelp-resetpassword-description-noroutes": "Немає доступних способів відновити пароль.\n\nУвімкніть способи у <var>[[mw:Manual:$wgPasswordResetRoutes|$wgPasswordResetRoutes]]</var>, щоб використовувати цей модуль.",
+       "apihelp-resetpassword-param-user": "Користувача відновлено.",
+       "apihelp-resetpassword-param-email": "Адреса електронної пошти користувача відновлено.",
+       "apihelp-resetpassword-param-capture": "Повернути тимчасові паролі, які були надіслані. Вимагає право користувача <code>passwordreset</code>.",
+       "apihelp-resetpassword-example-user": "Надіслати лист для скидання пароля користувачу <kbd>Example</kbd>.",
+       "apihelp-resetpassword-example-email": "Надіслати лист для скидання пароля усім користувачам з адресою електронної пошти <kbd>user@example.com</kbd>.",
        "apihelp-revisiondelete-description": "Вилучити або відновити версії.",
        "apihelp-revisiondelete-param-type": "Тип здійснюваного вилучення версії.",
        "apihelp-revisiondelete-param-target": "Назва сторінки, версію якої вилучити, якщо вимагається для цього типу.",
        "apihelp-stashedit-param-contentmodel": "Модель вмісту нового вмісту.",
        "apihelp-stashedit-param-contentformat": "Формат серіалізації вмісту, використовуваний для введеного тексту.",
        "apihelp-stashedit-param-baserevid": "Ідентифікатор базової версії.",
+       "apihelp-stashedit-param-summary": "Змінити опис.",
        "apihelp-tag-description": "Додати або вилучити зміни міток з окремих версій або записів журналу.",
        "apihelp-tag-param-rcid": "Один або більше ідентифікаторів останніх змін, до яких додати або вилучити мітки.",
        "apihelp-tag-param-revid": "Один або більше ідентифікатор з якого додати або вилучити мітку.",
        "apihelp-undelete-param-watchlist": "Безумовно додати або вилучити сторінку із списку спостереження поточного користувача, використати налаштування, або не змінювати статус (не)спостереження.",
        "apihelp-undelete-example-page": "Відновити сторінку <kbd>Main Page</kbd>.",
        "apihelp-undelete-example-revisions": "Відновити дві версії сторінки <kbd>Main Page</kbd>.",
+       "apihelp-unlinkaccount-description": "Вилучити пов'язаний обліковий запис третьої сторони з поточного користувача.",
        "apihelp-upload-description": "Завантажити файл, або отримати статус завантажень у процесі.\n\nДоступні декілька методів:\n* Завантажити вміст файлу напряму, використовуючи параметр <var>$1file</var>.\n* Завантажити файл шматками, використовуючи параметри <var>$1filesize</var>, <var>$1chunk</var>, та <var>$1offset</var>.\n* Змусити сервер Медіавікі отримати файл за URL, використовуючи параметр <var>$1url</var>.\n* Завершити раніше розпочате завантаження, яке не вдалось через попередження, використовуючи параметр <var>$1filekey</var>.\nЗауважте, що HTTP POST повинен бути здійснений як завантаження файлу (наприклад, використовуючи <code>multipart/form-data</code>)",
        "apihelp-upload-param-filename": "Цільова назва файлу.",
        "apihelp-upload-param-comment": "Коментар завантаження. Також використовується як початковий текст сторінок для нових файлів, якщо <var>$1text</var> не вказано.",
        "api-help-permissions-granted-to": "{{PLURAL:$1|Надано|Надані}}: $2",
        "api-help-right-apihighlimits": "Використовувати вищі ліміти у запитах API (повільні запити: $1; швидкі запити: $2). Ліміти для повільних запитів також застосовуються до багатозначних параметрів.",
        "api-help-open-in-apisandbox": "<small>[відкрити в пісочниці]</small>",
+       "api-help-authmanagerhelper-messageformat": "Формат до використання для повернення повідомлень.",
+       "api-help-authmanagerhelper-mergerequestfields": "Об'єднати інформацію всіх автентифікаційних запитів у один масив.",
+       "api-help-authmanagerhelper-preservestate": "Зберегти статус з попередньої спроби входу, що не вдалась, якщо можливо.",
        "api-credits-header": "Автор(и)",
        "api-credits": "Розробники API:\n* Roan Kattouw (головний розробник вер. 2007–2009)\n* Victor Vasiliev\n* Bryan Tong Minh\n* Sam Reed\n* Yuri Astrakhan (творець, головний розробник вер. 2006 – вер. 2007)\n* Brad Jorsch (головний розробник 2013 – тепер)\n\nБудь ласка, надсилайте свої коментарі, пропозиції та запитання на mediawiki-api@lists.wikimedia.org\nабо зафайліть звіт про баґ на https://phabricator.wikimedia.org/."
 }
index 65ae10e..c60976f 100644 (file)
@@ -18,7 +18,9 @@
                        "Umherirrender",
                        "Apflu",
                        "Hzy980512",
-                       "PhiLiP"
+                       "PhiLiP",
+                       "Arthur2e5",
+                       "損齋"
                ]
        },
        "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page|文档]]\n* [[mw:API:FAQ|常见问题]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api 邮件列表]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce API公告]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R 程序错误与功能请求]\n</div>\n<strong>状态信息:</strong>本页所展示的所有特性都应正常工作,但是API仍在开发当中,将会随时变化。请订阅[https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ mediawiki-api-announce 邮件列表]以便获得更新通知。\n\n<strong>错误请求:</strong>当API收到错误请求时,HTTP header将会返回一个包含\"MediaWiki-API-Error\"的值,随后header的值与error code将会送回并设置为相同的值。详细信息请参阅[[mw:API:Errors_and_warnings|API: 错误与警告]]。\n\n<strong>测试中:</strong>测试API请求的易用性,请参见[[Special:ApiSandbox]]。",
@@ -31,7 +33,7 @@
        "apihelp-main-param-requestid": "任何在此提供的值将包含在响应中。可能可以用以区别请求。",
        "apihelp-main-param-servedby": "包含保存结果请求的主机名。",
        "apihelp-main-param-curtimestamp": "在结果中包括当前时间戳。",
-       "apihelp-main-param-origin": "当通过跨域名AJAX请求(CORS)访问API时,设置此作为起始域名。这必须包括在任何pre-flight请求中,并因此必须是请求的URI的一部分(而不是POST正文)。这必须匹配<code>Origin</code>中的一个起点:从头到底,因此它已经设置为像<kbd>https://zh.wikipedia.org</kbd>或<kbd>https://meta.wikimedia.org</kbd>的东西。如果此参数不匹配<code>Origin</code>页顶,就返回403错误响应。如果此参数匹配<code>Origin</code>页顶并且起点被白名单,将设置一个<code>Access-Control-Allow-Origin</code>开头。",
+       "apihelp-main-param-origin": "当通过跨域名AJAX请求(CORS)访问API时,设置此作为起始域名。这必须包括在任何pre-flight请求中,并因此必须是请求的URI的一部分(而不是POST正文)。\n\n对于已验证的请求,这必须正确匹配<code>Origin</code>标头中的原点之一,因此它已经设置为像<kbd>https://zh.wikipedia.org</kbd>或<kbd>https://meta.wikimedia.org</kbd>的东西。如果此参数不匹配<code>Origin</code>页顶,就返回403错误响应。如果此参数匹配<code>Origin</code>页顶并且起点被白名单,将设置<code>Access-Control-Allow-Origin</code>和<code>Access-Control-Allow-Credentials</code>开头。\n\n对于未验证的请求,会指定值<kbd>*</kbd>。这将导致<code>Access-Control-Allow-Origin</code>标头被设置,但<code>Access-Control-Allow-Credentials</code>将为<code>false</code>,且所有用户特定数据将受限制。",
        "apihelp-main-param-uselang": "用于消息翻译的语言。<kbd>[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]</kbd>与<kbd>siprop=languages</kbd>可返回语言代码列表,或指定<kbd>user</kbd>以使用当前用户的语言设置,或指定<kbd>content</kbd>以使用此wiki的内容语言。",
        "apihelp-block-description": "封禁一位用户。",
        "apihelp-block-param-user": "您要封禁的用户、IP地址或IP地址段。",
@@ -68,6 +70,7 @@
        "apihelp-compare-param-torev": "要比较的第二个修订版本。",
        "apihelp-compare-example-1": "在版本1和2中创建差异。",
        "apihelp-createaccount-description": "创建一个新用户账户。",
+       "apihelp-createaccount-param-preservestate": "如果<kbd>[[Special:ApiHelp/query+authmanagerinfo|action=query&meta=authmanagerinfo]]</kbd>返回用于<samp>hasprimarypreservedstate</samp>的真值,标记为<samp>primary-required</samp>的请求应被忽略。如果它返回用于<samp>preservedusername</samp>的非空值,用户名必须用于<var>username</var>参数。",
        "apihelp-createaccount-example-create": "开始创建用户<kbd>Example</kbd>和密码<kbd>ExamplePassword</kbd>的过程。",
        "apihelp-createaccount-param-name": "用户名。",
        "apihelp-createaccount-param-password": "密码(如果设置<var>$1mailpassword</var>则忽略)。",
@@ -80,6 +83,7 @@
        "apihelp-createaccount-param-language": "要为用户设置为默认值的语言代码(可选,默认为内容语言)。",
        "apihelp-createaccount-example-pass": "创建用户<kbd>testuser</kbd>和密码<kbd>test123</kbd>。",
        "apihelp-createaccount-example-mail": "创建用户<kbd>testmailuser</kbd>并电邮发送一个随机生成的密码。",
+       "apihelp-cspreport-description": "由浏览器使用以报告违反内容安全方针的内容。此模块应永不使用,除了在被CSP兼容的浏览器自动使用时。",
        "apihelp-delete-description": "删除一个页面。",
        "apihelp-delete-param-title": "要删除的页面标题。不能与<var>$1pageid</var>一起使用。",
        "apihelp-delete-param-pageid": "要删除的页面的页面 ID。不能与<var>$1title</var>一起使用。",
@@ -93,7 +97,7 @@
        "apihelp-delete-example-reason": "删除<kbd>Main Page</kbd>,原因<kbd>Preparing for move</kbd>。",
        "apihelp-disabled-description": "此模块已禁用。",
        "apihelp-edit-description": "创建和编辑页面。",
-       "apihelp-edit-param-title": "您希望编辑的页面标题。不能与<var>$1pageid</var>一起使用。",
+       "apihelp-edit-param-title": "编辑的页面标题。不能与<var>$1pageid</var>一起使用。",
        "apihelp-edit-param-pageid": "要编辑的页面的页面 ID。不能与<var>$1title</var>一起使用。",
        "apihelp-edit-param-section": "段落数。<kbd>0</kbd>用于首段,<kbd>new</kbd>用于新的段落。",
        "apihelp-edit-param-sectiontitle": "新段落的标题。",
        "apihelp-feedcontributions-param-deletedonly": "仅显示已删除的贡献。",
        "apihelp-feedcontributions-param-toponly": "仅仅显示那些作为最新修订的编辑。",
        "apihelp-feedcontributions-param-newonly": "仅仅显示那些作为页面创建的编辑。",
+       "apihelp-feedcontributions-param-hideminor": "隐藏小编辑。",
        "apihelp-feedcontributions-param-showsizediff": "显示修订版本之间的大小差别。",
        "apihelp-feedcontributions-example-simple": "返回用户<kbd>Example</kbd>的贡献。",
        "apihelp-feedrecentchanges-description": "返回最近更改的摘要。",
        "apihelp-query+allusers-param-activeusers": "只列出最近$1{{PLURAL:$1|天}}内活跃的用户。",
        "apihelp-query+allusers-param-attachedwiki": "与<kbd>$1prop=centralids</kbd>一起使用,也表明用户是否附加于此ID定义的wiki。",
        "apihelp-query+allusers-example-Y": "列出以<kbd>Y</kbd>开头的用户。",
+       "apihelp-query+authmanagerinfo-description": "检索有关当前身份验证状态的信息。",
+       "apihelp-query+authmanagerinfo-param-securitysensitiveoperation": "测试用户当前的身份验证状态是否足够用于指定的安全敏感操作。",
+       "apihelp-query+authmanagerinfo-param-requestsfor": "取得指定身份验证操作所需的有关身份验证请求的信息。",
        "apihelp-query+filerepoinfo-example-login": "检索当开始登录时可能使用的请求。",
        "apihelp-query+filerepoinfo-example-login-merged": "检索当开始登录时可能使用的请求,并合并表单字段。",
        "apihelp-query+filerepoinfo-example-securitysensitiveoperation": "测试身份验证对操作<kbd>foo</kbd>是否足够。",
        "apihelp-query+prefixsearch-param-limit": "要返回的结果最大数。",
        "apihelp-query+prefixsearch-param-offset": "跳过的结果数。",
        "apihelp-query+prefixsearch-example-simple": "搜索以<kbd>meaning</kbd>开头的页面标题。",
+       "apihelp-query+prefixsearch-param-profile": "搜索要使用的配置文件。",
        "apihelp-query+protectedtitles-description": "列出所有被限制创建的标题。",
        "apihelp-query+protectedtitles-param-namespace": "只列出这些名字空间的标题。",
        "apihelp-query+protectedtitles-param-level": "只列出带这些保护级别的标题。",
        "apihelp-query+search-param-what": "要执行的搜索类型。",
        "apihelp-query+search-param-info": "要返回的元数据。",
        "apihelp-query+search-param-prop": "要返回的属性:",
+       "apihelp-query+search-param-qiprofile": "查询要使用的独立描述(影响排序算法)。",
        "apihelp-query+search-paramvalue-prop-size": "添加页面大小,单位为字节。",
        "apihelp-query+search-paramvalue-prop-wordcount": "添加页面的字数。",
        "apihelp-query+search-paramvalue-prop-timestamp": "添加页面上次编辑时的时间戳。",
        "apihelp-query+users-paramvalue-prop-emailable": "Tags if the user can and wants to receive email through [[Special:Emailuser]].",
        "apihelp-query+users-paramvalue-prop-gender": "标记用户性别。返回“male”、“female”或“unknown”。",
        "apihelp-query+users-paramvalue-prop-centralids": "添加中心ID并为用户附加状态。",
+       "apihelp-query+users-paramvalue-prop-cancreate": "表明是否可以为有效但尚未注册的用户名创建一个账户。",
        "apihelp-query+users-param-attachedwiki": "与<kbd>$1prop=centralids</kbd>一起使用,表明用户是否附加于此ID定义的wiki。",
        "apihelp-query+users-param-users": "要获取信息的用户列表。",
        "apihelp-query+users-param-token": "请改用<kbd>[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]</kbd>。",
        "apihelp-query+watchlistraw-param-show": "只列出符合这些标准的项目。",
        "apihelp-query+watchlistraw-param-owner": "与$1token一起使用以访问不同用户的监视列表。",
        "apihelp-query+watchlistraw-param-token": "允许访问其他用户监视列表的安全密钥(可通过用户的[[Special:Preferences#mw-prefsection-watchlist|参数设置]]找到)。",
+       "apihelp-query+watchlistraw-param-dir": "罗列所采用的方向。",
        "apihelp-query+watchlistraw-param-fromtitle": "要列举的起始标题(带名字空间前缀)。",
        "apihelp-query+watchlistraw-param-totitle": "要列举的最终标题(带名字空间前缀)。",
        "apihelp-query+watchlistraw-example-simple": "列出当前用户的监视列表中的页面。",
        "apihelp-stashedit-param-contentmodel": "新内容的内容模型。",
        "apihelp-stashedit-param-contentformat": "用于输入文本的内容序列化格式。",
        "apihelp-stashedit-param-baserevid": "基础修订的修订ID。",
+       "apihelp-stashedit-param-summary": "更改摘要。",
        "apihelp-tag-description": "从个别修订或日志记录中添加或移除更改标签。",
        "apihelp-tag-param-rcid": "要添加或移除标签的一个或更多的最近更改ID。",
        "apihelp-tag-param-revid": "要添加或移除标签的一个或更多的修订ID。",
        "api-help-license-noname": "许可协议:[[$1|参见链接]]",
        "api-help-license-unknown": "许可协议:<span class=\"apihelp-unknown\">未知</span>",
        "api-help-parameters": "{{PLURAL:$1|参数}}:",
-       "api-help-param-deprecated": "不推荐使用。",
+       "api-help-param-deprecated": "已弃用。",
        "api-help-param-required": "这个参数是必须的。",
        "api-help-datatypes-header": "数据类型",
        "api-help-datatypes": "一些在API请求中的参数类型需要更进一步解释:\n;boolean\n:布尔参数就像HTML复选框一样工作:如果指定参数,无论何值都被认为是真。如果要假值,则可完全忽略参数。\n;timestamp\n:时间戳可被指定为很多格式。推荐使用ISO 8601日期和时间标准。所有时间为UTC时间,包含的任何时区会被忽略。\n:* ISO 8601日期和时间,<kbd><var>2001</var>-<var>01</var>-<var>15</var>T<var>14</var>:<var>56</var>:<var>00</var>Z</kbd>(标点和<kbd>Z</kbd>是可选项)\n:* 带小数秒(会被忽略)的ISO 8601日期和时间,<kbd><var>2001</var>-<var>01</var>-<var>15</var>T<var>14</var>:<var>56</var>:<var>00</var>.<var>00001</var>Z</kbd>(破折号、括号和<kbd>Z</kbd>是可选的)\n:* MediaWiki格式,<kbd><var>2001</var><var>01</var><var>15</var><var>14</var><var>56</var><var>00</var></kbd>\n:* 一般数字格式,<kbd><var>2001</var>-<var>01</var>-<var>15</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>(<kbd>GMT</kbd>、<kbd>+<var>##</var></kbd>或<kbd>-<var>##</var></kbd>的可选时区会被忽略)\n:* EXIF格式,<kbd><var>2001</var>:<var>01</var>:<var>15</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:* RFC 2822格式(时区可能会被省略),<kbd><var>Mon</var>, <var>15</var> <var>Jan</var> <var>2001</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:* RFC 850格式(时区可能会被省略),<kbd><var>Monday</var>, <var>15</var>-<var>Jan</var>-<var>2001</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:* C ctime格式,<kbd><var>Mon</var> <var>Jan</var> <var>15</var> <var>14</var>:<var>56</var>:<var>00</var> <var>2001</var></kbd>\n:* 秒数是从1970-01-01T00:00:00Z开始,作为1到13位数的整数(除了<kbd>0</kbd>)\n:* 字符串<kbd>now</kbd>",
        "api-help-permissions-granted-to": "{{PLURAL:$1|授予}}:$2",
        "api-help-right-apihighlimits": "在API查询中使用更高的上限(慢查询:$1;快查询:$2)。慢查询的限制也适用于多值参数。",
        "api-help-open-in-apisandbox": "<small>[在沙盒中打开]</small>",
+       "api-help-authmanager-general-usage": "使用此模块的一般程序是:\n# 通过<kbd>amirequestsfor=$4</kbd>取得来自<kbd>[[Special:ApiHelp/query+authmanagerinfo|action=query&meta=authmanagerinfo]]</kbd>的可用字段,和来自<kbd>[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]</kbd>的<kbd>$5</kbd>令牌。\n# 向用户显示字段,并获得其提交内容。\n# 发送至此模块,提供<var>$1returnurl</var>及任何相关字段。\n# Check the <samp>status</samp> in the response.\n#* If you received <samp>PASS</samp> or <samp>FAIL</samp>, you're done. The operation either succeeded or it didn't.\n#* If you received <samp>UI</samp>, present the new fields to the user and obtain their submission. Then post to this module with <var>$1continue</var> and the relevant fields set, and repeat step 4.\n#* If you received <samp>REDIRECT</samp>, direct the user to the <samp>redirecttarget</samp> and wait for the return to <var>$1returnurl</var>. Then post to this module with <var>$1continue</var> and any fields passed to the return URL, and repeat step 4.\n#* If you received <samp>RESTART</samp>, that means the authentication worked but we don't have a linked user account. You might treat this as <samp>UI</samp> or as <samp>FAIL</samp>.",
        "api-help-authmanagerhelper-request": "使用此身份验证请求,通过返回自<kbd>[[Special:ApiHelp/query+authmanagerinfo|action=query&meta=authmanagerinfo]]</kbd>的<samp>id</samp>与<kbd>amirequestsfor=$1</kbd>。",
        "api-help-authmanagerhelper-messageformat": "返回消息使用的格式。",
+       "api-help-authmanagerhelper-mergerequestfields": "合并用于所有身份验证请求的字段信息至一个数组中。",
+       "api-help-authmanagerhelper-additional-params": "此模块允许额外参数,取决于可用的身份验证请求。使用<kbd>[[Special:ApiHelp/query+authmanagerinfo|action=query&meta=authmanagerinfo]]</kbd>与<kbd>amirequestsfor=$1</kbd>(或之前来自此模块的相应,如果可以)以决定可用请求及其使用的字段。",
        "api-credits-header": "制作人员",
        "api-credits": "API 开发人员:\n* Yuri Astrakhan(创建者,2006年9月~2007年9月的开发组领导)\n* Roan Kattouw(2007年9月~2009年的开发组领导)\n* Victor Vasiliev\n* Bryan Tong Minh\n* Sam Reed\n* Brad Jorsch(2013年至今的开发组领导)\n\n请将您的评论、建议和问题发送至mediawiki-api@lists.wikimedia.org,或提交错误请求至https://phabricator.wikimedia.org/。"
 }
index 48a9c88..d997dbb 100644 (file)
@@ -45,7 +45,7 @@ abstract class AbstractPreAuthenticationProvider extends AbstractAuthenticationP
                return \StatusValue::newGood();
        }
 
-       public function testUserForCreation( $user, $autocreate ) {
+       public function testUserForCreation( $user, $autocreate, array $options = [] ) {
                return \StatusValue::newGood();
        }
 
index 2e0d669..ea3dfa3 100644 (file)
@@ -91,7 +91,7 @@ abstract class AbstractPrimaryAuthenticationProvider extends AbstractAuthenticat
        public function postAccountCreation( $user, $creator, AuthenticationResponse $response ) {
        }
 
-       public function testUserForCreation( $user, $autocreate ) {
+       public function testUserForCreation( $user, $autocreate, array $options = [] ) {
                return \StatusValue::newGood();
        }
 
index 89fd6f9..00493bc 100644 (file)
@@ -77,7 +77,7 @@ abstract class AbstractSecondaryAuthenticationProvider extends AbstractAuthentic
        public function postAccountCreation( $user, $creator, AuthenticationResponse $response ) {
        }
 
-       public function testUserForCreation( $user, $autocreate ) {
+       public function testUserForCreation( $user, $autocreate, array $options = [] ) {
                return \StatusValue::newGood();
        }
 
index efee53c..82eeff0 100644 (file)
@@ -231,6 +231,17 @@ class AuthManager implements LoggerAwareInterface {
 
        /**
         * Start an authentication flow
+        *
+        * In addition to the AuthenticationRequests returned by
+        * $this->getAuthenticationRequests(), a client might include a
+        * CreateFromLoginAuthenticationRequest from a previous login attempt to
+        * preserve state.
+        *
+        * Instead of the AuthenticationRequests returned by
+        * $this->getAuthenticationRequests(), a client might pass a
+        * CreatedAccountAuthenticationRequest from an account creation that just
+        * succeeded to log in to the just-created account.
+        *
         * @param AuthenticationRequest[] $reqs
         * @param string $returnToUrl Url that REDIRECT responses should eventually
         *  return to.
@@ -344,8 +355,7 @@ class AuthManager implements LoggerAwareInterface {
         * Return values are interpreted as follows:
         * - status FAIL: Authentication failed. If $response->createRequest is
         *   set, that may be passed to self::beginAuthentication() or to
-        *   self::beginAccountCreation() (after adding a username, if necessary)
-        *   to preserve state.
+        *   self::beginAccountCreation() to preserve state.
         * - status REDIRECT: The client should be redirected to the contained URL,
         *   new AuthenticationRequests should be made (if any), then
         *   AuthManager::continueAuthentication() should be called.
@@ -432,6 +442,7 @@ class AuthManager implements LoggerAwareInterface {
                                                case AuthenticationResponse::REDIRECT;
                                                case AuthenticationResponse::UI;
                                                        $this->logger->debug( "Primary login with $id returned $res->status" );
+                                                       $this->fillRequests( $res->neededRequests, self::ACTION_LOGIN, $guessUserName );
                                                        $state['primary'] = $id;
                                                        $state['continueRequests'] = $res->neededRequests;
                                                        $session->setSecret( 'AuthManager::authnState', $state );
@@ -494,6 +505,7 @@ class AuthManager implements LoggerAwareInterface {
                                        case AuthenticationResponse::REDIRECT;
                                        case AuthenticationResponse::UI;
                                                $this->logger->debug( "Primary login with $id returned $res->status" );
+                                               $this->fillRequests( $res->neededRequests, self::ACTION_LOGIN, $guessUserName );
                                                $state['continueRequests'] = $res->neededRequests;
                                                $session->setSecret( 'AuthManager::authnState', $state );
                                                return $res;
@@ -546,6 +558,7 @@ class AuthManager implements LoggerAwareInterface {
                                        );
                                        $ret->neededRequests[] = $ret->createRequest;
                                }
+                               $this->fillRequests( $ret->neededRequests, self::ACTION_LOGIN, null, true );
                                $session->setSecret( 'AuthManager::authnState', [
                                        'reqs' => [], // Will be filled in later
                                        'primary' => null,
@@ -615,6 +628,7 @@ class AuthManager implements LoggerAwareInterface {
                                        case AuthenticationResponse::REDIRECT;
                                        case AuthenticationResponse::UI;
                                                $this->logger->debug( "Secondary login with $id returned " . $res->status );
+                                               $this->fillRequests( $res->neededRequests, self::ACTION_LOGIN, $user->getName() );
                                                $state['secondary'][$id] = false;
                                                $state['continueRequests'] = $res->neededRequests;
                                                $session->setSecret( 'AuthManager::authnState', $state );
@@ -864,10 +878,22 @@ class AuthManager implements LoggerAwareInterface {
        /**
         * Determine whether a particular account can be created
         * @param string $username
-        * @param int $flags Bitfield of User:READ_* constants
+        * @param array $options
+        *  - flags: (int) Bitfield of User:READ_* constants, default User::READ_NORMAL
+        *  - creating: (bool) For internal use only. Never specify this.
         * @return Status
         */
-       public function canCreateAccount( $username, $flags = User::READ_NORMAL ) {
+       public function canCreateAccount( $username, $options = [] ) {
+               // Back compat
+               if ( is_int( $options ) ) {
+                       $options = [ 'flags' => $options ];
+               }
+               $options += [
+                       'flags' => User::READ_NORMAL,
+                       'creating' => false,
+               ];
+               $flags = $options['flags'];
+
                if ( !$this->canCreateAccounts() ) {
                        return Status::newFatal( 'authmanager-create-disabled' );
                }
@@ -891,7 +917,7 @@ class AuthManager implements LoggerAwareInterface {
                        $this->getPrimaryAuthenticationProviders() +
                        $this->getSecondaryAuthenticationProviders();
                foreach ( $providers as $provider ) {
-                       $status = $provider->testUserForCreation( $user, false );
+                       $status = $provider->testUserForCreation( $user, false, $options );
                        if ( !$status->isGood() ) {
                                return Status::wrap( $status );
                        }
@@ -950,6 +976,17 @@ class AuthManager implements LoggerAwareInterface {
 
        /**
         * Start an account creation flow
+        *
+        * In addition to the AuthenticationRequests returned by
+        * $this->getAuthenticationRequests(), a client might include a
+        * CreateFromLoginAuthenticationRequest from a previous login attempt. If
+        * <code>
+        * $createFromLoginAuthenticationRequest->hasPrimaryStateForAction( AuthManager::ACTION_CREATE )
+        * </code>
+        * returns true, any AuthenticationRequest::PRIMARY_REQUIRED requests
+        * should be omitted. If the CreateFromLoginAuthenticationRequest has a
+        * username set, that username must be used for all other requests.
+        *
         * @param User $creator User doing the account creation
         * @param AuthenticationRequest[] $reqs
         * @param string $returnToUrl Url that REDIRECT responses should eventually
@@ -985,7 +1022,9 @@ class AuthManager implements LoggerAwareInterface {
                        return AuthenticationResponse::newFail( $status->getMessage() );
                }
 
-               $status = $this->canCreateAccount( $username, User::READ_LOCKING );
+               $status = $this->canCreateAccount(
+                       $username, [ 'flags' => User::READ_LOCKING, 'creating' => true ]
+               );
                if ( !$status->isGood() ) {
                        $this->logger->debug( __METHOD__ . ': {user} cannot be created: {reason}', [
                                'user' => $username,
@@ -1038,44 +1077,10 @@ class AuthManager implements LoggerAwareInterface {
                if ( $req ) {
                        $state['maybeLink'] = $req->maybeLink;
 
-                       // If we get here, the user didn't submit a form with any of the
-                       // usual AuthenticationRequests that are needed for an account
-                       // creation. So we need to determine if there are any and return a
-                       // UI response if so.
                        if ( $req->createRequest ) {
-                               // We have a createRequest from a
-                               // PrimaryAuthenticationProvider, so don't ask.
-                               $providers = $this->getPreAuthenticationProviders() +
-                                       $this->getSecondaryAuthenticationProviders();
-                       } else {
-                               // We're only preserving maybeLink, so ask for primary fields
-                               // too.
-                               $providers = $this->getPreAuthenticationProviders() +
-                                       $this->getPrimaryAuthenticationProviders() +
-                                       $this->getSecondaryAuthenticationProviders();
-                       }
-                       $reqs = $this->getAuthenticationRequestsInternal(
-                               self::ACTION_CREATE,
-                               [],
-                               $providers
-                       );
-                       // See if we need any requests to begin
-                       foreach ( (array)$reqs as $r ) {
-                               if ( !$r instanceof UsernameAuthenticationRequest &&
-                                       !$r instanceof UserDataAuthenticationRequest &&
-                                       !$r instanceof CreationReasonAuthenticationRequest
-                               ) {
-                                       // Needs some reqs, so request them
-                                       $reqs[] = new CreateFromLoginAuthenticationRequest( $req->createRequest, [] );
-                                       $state['continueRequests'] = $reqs;
-                                       $session->setSecret( 'AuthManager::accountCreationState', $state );
-                                       $session->persist();
-                                       return AuthenticationResponse::newUI( $reqs, wfMessage( 'authmanager-create-from-login' ) );
-                               }
+                               $reqs[] = $req->createRequest;
+                               $state['reqs'][] = $req->createRequest;
                        }
-                       // No reqs needed, so we can just continue.
-                       $req->createRequest->returnToUrl = $returnToUrl;
-                       $reqs = [ $req->createRequest ];
                }
 
                $session->setSecret( 'AuthManager::accountCreationState', $state );
@@ -1213,15 +1218,6 @@ class AuthManager implements LoggerAwareInterface {
                                $req->username = $state['username'];
                        }
 
-                       // If we're coming in from a create-from-login UI response, we need
-                       // to extract the createRequest (if any).
-                       $req = AuthenticationRequest::getRequestByClass(
-                               $reqs, CreateFromLoginAuthenticationRequest::class
-                       );
-                       if ( $req && $req->createRequest ) {
-                               $reqs[] = $req->createRequest;
-                       }
-
                        // Run pre-creation tests, if we haven't already
                        if ( !$state['ranPreTests'] ) {
                                $providers = $this->getPreAuthenticationProviders() +
@@ -1281,6 +1277,7 @@ class AuthManager implements LoggerAwareInterface {
                                                                'user' => $user->getName(),
                                                                'creator' => $creator->getName(),
                                                        ] );
+                                                       $this->fillRequests( $res->neededRequests, self::ACTION_CREATE, null );
                                                        $state['primary'] = $id;
                                                        $state['continueRequests'] = $res->neededRequests;
                                                        $session->setSecret( 'AuthManager::accountCreationState', $state );
@@ -1343,6 +1340,7 @@ class AuthManager implements LoggerAwareInterface {
                                                        'user' => $user->getName(),
                                                        'creator' => $creator->getName(),
                                                ] );
+                                               $this->fillRequests( $res->neededRequests, self::ACTION_CREATE, null );
                                                $state['continueRequests'] = $res->neededRequests;
                                                $session->setSecret( 'AuthManager::accountCreationState', $state );
                                                return $res;
@@ -1438,6 +1436,7 @@ class AuthManager implements LoggerAwareInterface {
                                                        'user' => $user->getName(),
                                                        'creator' => $creator->getName(),
                                                ] );
+                                               $this->fillRequests( $res->neededRequests, self::ACTION_CREATE, null );
                                                $state['secondary'][$id] = false;
                                                $state['continueRequests'] = $res->neededRequests;
                                                $session->setSecret( 'AuthManager::accountCreationState', $state );
@@ -1590,11 +1589,15 @@ class AuthManager implements LoggerAwareInterface {
                }
 
                // Denied by providers?
+               $options = [
+                       'flags' => User::READ_LATEST,
+                       'creating' => true,
+               ];
                $providers = $this->getPreAuthenticationProviders() +
                        $this->getPrimaryAuthenticationProviders() +
                        $this->getSecondaryAuthenticationProviders();
                foreach ( $providers as $provider ) {
-                       $status = $provider->testUserForCreation( $user, $source );
+                       $status = $provider->testUserForCreation( $user, $source, $options );
                        if ( !$status->isGood() ) {
                                $ret = Status::wrap( $status );
                                $this->logger->debug( __METHOD__ . ': Provider denied creation of {username}: {reason}', [
@@ -1665,7 +1668,7 @@ class AuthManager implements LoggerAwareInterface {
                        throw $ex;
                }
 
-               $this->setDefaultUserOptions( $user, true );
+               $this->setDefaultUserOptions( $user, false );
 
                // Inform the providers
                $this->callMethodOnProviders( 6, 'autoCreatedAccount', [ $user, $source ] );
@@ -1692,6 +1695,10 @@ class AuthManager implements LoggerAwareInterface {
                        $logid = $logEntry->insert();
                }
 
+               // Commit database changes, so even if something else later blows up
+               // the newly-created user doesn't get lost.
+               wfGetLBFactory()->commitMasterChanges( __METHOD__ );
+
                if ( $login ) {
                        $this->setSessionDataForUser( $user );
                }
@@ -1806,6 +1813,7 @@ class AuthManager implements LoggerAwareInterface {
                                        $this->logger->debug( __METHOD__ . ": Account linking $res->status by $id", [
                                                'user' => $user->getName(),
                                        ] );
+                                       $this->fillRequests( $res->neededRequests, self::ACTION_LINK, $user->getName() );
                                        $state['primary'] = $id;
                                        $state['continueRequests'] = $res->neededRequests;
                                        $session->setSecret( 'AuthManager::accountLinkState', $state );
@@ -1908,6 +1916,7 @@ class AuthManager implements LoggerAwareInterface {
                                        $this->logger->debug( __METHOD__ . ": Account linking $res->status by $id", [
                                                'user' => $user->getName(),
                                        ] );
+                                       $this->fillRequests( $res->neededRequests, self::ACTION_LINK, $user->getName() );
                                        $state['continueRequests'] = $res->neededRequests;
                                        $session->setSecret( 'AuthManager::accountLinkState', $state );
                                        return $res;
@@ -2069,12 +2078,7 @@ class AuthManager implements LoggerAwareInterface {
                }
 
                // Fill in reqs data
-               foreach ( $reqs as $req ) {
-                       $req->action = $providerAction;
-                       if ( $req->username === null ) {
-                               $req->username = $options['username'];
-                       }
-               }
+               $this->fillRequests( $reqs, $providerAction, $options['username'], true );
 
                // For self::ACTION_CHANGE, filter out any that something else *doesn't* allow changing
                if ( $providerAction === self::ACTION_CHANGE || $providerAction === self::ACTION_REMOVE ) {
@@ -2086,6 +2090,24 @@ class AuthManager implements LoggerAwareInterface {
                return array_values( $reqs );
        }
 
+       /**
+        * Set values in an array of requests
+        * @param AuthenticationRequest[] &$reqs
+        * @param string $action
+        * @param string|null $username
+        * @param boolean $forceAction
+        */
+       private function fillRequests( array &$reqs, $action, $username, $forceAction = false ) {
+               foreach ( $reqs as $req ) {
+                       if ( !$req->action || $forceAction ) {
+                               $req->action = $action;
+                       }
+                       if ( $req->username === null ) {
+                               $req->username = $username;
+                       }
+               }
+       }
+
        /**
         * Determine whether a username exists
         * @param string $username
@@ -2124,6 +2146,37 @@ class AuthManager implements LoggerAwareInterface {
                return true;
        }
 
+       /**
+        * Get a provider by ID
+        * @note This is public so extensions can check whether their own provider
+        *  is installed and so they can read its configuration if necessary.
+        *  Other uses are not recommended.
+        * @param string $id
+        * @return AuthenticationProvider|null
+        */
+       public function getAuthenticationProvider( $id ) {
+               // Fast version
+               if ( isset( $this->allAuthenticationProviders[$id] ) ) {
+                       return $this->allAuthenticationProviders[$id];
+               }
+
+               // Slow version: instantiate each kind and check
+               $providers = $this->getPrimaryAuthenticationProviders();
+               if ( isset( $providers[$id] ) ) {
+                       return $providers[$id];
+               }
+               $providers = $this->getSecondaryAuthenticationProviders();
+               if ( isset( $providers[$id] ) ) {
+                       return $providers[$id];
+               }
+               $providers = $this->getPreAuthenticationProviders();
+               if ( isset( $providers[$id] ) ) {
+                       return $providers[$id];
+               }
+
+               return null;
+       }
+
        /**@}*/
 
        /**
@@ -2273,34 +2326,6 @@ class AuthManager implements LoggerAwareInterface {
                return $this->secondaryAuthenticationProviders;
        }
 
-       /**
-        * Get a provider by ID
-        * @param string $id
-        * @return AuthenticationProvider|null
-        */
-       protected function getAuthenticationProvider( $id ) {
-               // Fast version
-               if ( isset( $this->allAuthenticationProviders[$id] ) ) {
-                       return $this->allAuthenticationProviders[$id];
-               }
-
-               // Slow version: instantiate each kind and check
-               $providers = $this->getPrimaryAuthenticationProviders();
-               if ( isset( $providers[$id] ) ) {
-                       return $providers[$id];
-               }
-               $providers = $this->getSecondaryAuthenticationProviders();
-               if ( isset( $providers[$id] ) ) {
-                       return $providers[$id];
-               }
-               $providers = $this->getPreAuthenticationProviders();
-               if ( isset( $providers[$id] ) ) {
-                       return $providers[$id];
-               }
-
-               return null;
-       }
-
        /**
         * @param User $user
         * @param bool|null $remember
@@ -2310,6 +2335,7 @@ class AuthManager implements LoggerAwareInterface {
                $delay = $session->delaySave();
 
                $session->resetId();
+               $session->resetAllTokens();
                if ( $session->canSetUser() ) {
                        $session->setUser( $user );
                }
@@ -2332,7 +2358,7 @@ class AuthManager implements LoggerAwareInterface {
        private function setDefaultUserOptions( User $user, $useContextLang ) {
                global $wgContLang;
 
-               \MediaWiki\Session\SessionManager::singleton()->invalidateSessionsForUser( $user );
+               $user->setToken();
 
                $lang = $useContextLang ? \RequestContext::getMain()->getLanguage() : $wgContLang;
                $user->setOption( 'language', $lang->getPreferredVariant() );
index bf1e021..8845858 100644 (file)
@@ -131,7 +131,7 @@ class AuthManagerAuthPlugin extends \AuthPlugin {
                $reqs = AuthenticationRequest::loadRequestsFromSubmission( $reqs, $data );
                foreach ( $reqs as $req ) {
                        $status = AuthManager::singleton()->allowsAuthenticationDataChange( $req );
-                       if ( !$status->isOk() ) {
+                       if ( !$status->isGood() ) {
                                $this->logger->info( __METHOD__ . ': Password change rejected: {reason}', [
                                        'username' => $data['username'],
                                        'reason' => $status->getWikiText( null, null, 'en' ),
@@ -161,35 +161,13 @@ class AuthManagerAuthPlugin extends \AuthPlugin {
        }
 
        public function addUser( $user, $password, $email = '', $realname = '' ) {
-               global $wgUser;
-
-               $data = [
-                       'username' => $user->getName(),
-                       'password' => $password,
-                       'retype' => $password,
-                       'email' => $email,
-                       'realname' => $realname,
-               ];
-               if ( $this->domain !== null && $this->domain !== '' ) {
-                       $data['domain'] = $this->domain;
-               }
-               $reqs = AuthManager::singleton()->getAuthenticationRequests( AuthManager::ACTION_CREATE );
-               $reqs = AuthenticationRequest::loadRequestsFromSubmission( $reqs, $data );
-
-               $res = AuthManager::singleton()->beginAccountCreation( $wgUser, $reqs, 'null:' );
-               switch ( $res->status ) {
-                       case AuthenticationResponse::PASS:
-                               return true;
-                       case AuthenticationResponse::FAIL:
-                               // Hope it's not a PreAuthenticationProvider that failed...
-                               $msg = $res->message instanceof \Message ? $res->message : new \Message( $res->message );
-                               $this->logger->info( __METHOD__ . ': Authentication failed: ' . $msg->plain() );
-                               return false;
-                       default:
-                               throw new \BadMethodCallException(
-                                       'AuthManager does not support such simplified account creation'
-                               );
-               }
+               throw new \BadMethodCallException(
+                       'Creation of users via AuthPlugin is not supported with '
+                       . 'AuthManager. Generally, user creation should be left to either '
+                       . 'Special:CreateAccount, auto-creation when triggered by a '
+                       . 'SessionProvider or PrimaryAuthenticationProvider, or '
+                       . 'User::newSystemUser().'
+               );
        }
 
        public function strict() {
index 9746637..b8e36bc 100644 (file)
@@ -329,7 +329,7 @@ class AuthPluginPrimaryAuthenticationProvider
                                if ( $req->domain === null ) {
                                        return \StatusValue::newGood( 'ignored' );
                                }
-                               if ( !$this->auth->validDomain( $domain ) ) {
+                               if ( !$this->auth->validDomain( $req->domain ) ) {
                                        return \StatusValue::newFatal( 'authmanager-authplugin-setpass-bad-domain' );
                                }
                        }
index 3c19b87..ff4d52e 100644 (file)
@@ -92,14 +92,12 @@ abstract class AuthenticationRequest {
         *     - select: <select>
         *     - checkbox: <input type="checkbox">
         *     - multiselect: More a grid of checkboxes than <select multi>
-        *     - button: <input type="image"> if 'image' is set, otherwise <input type="submit">
-        *       (uses 'label' as button text)
+        *     - button: <input type="submit"> (uses 'label' as button text)
         *     - hidden: Not visible to the user, but needs to be preserved for the next request
         *     - null: No widget, just display the 'label' message.
         *  - options: (array) Maps option values to Messages for the
         *      'select' and 'multiselect' types.
         *  - value: (string) Value (for 'null' and 'hidden') or default value (for other types).
-        *  - image: (string) URL of an image to use in connection with the input
         *  - label: (Message) Text suitable for a label in an HTML form
         *  - help: (Message) Text suitable as a description of what the field is
         *  - optional: (bool) If set and truthy, the field may be left empty
@@ -281,6 +279,21 @@ abstract class AuthenticationRequest {
        public static function mergeFieldInfo( array $reqs ) {
                $merged = [];
 
+               // fields that are required by some primary providers but not others are not actually required
+               $primaryRequests = array_filter( $reqs, function ( $req ) {
+                       return $req->required === AuthenticationRequest::PRIMARY_REQUIRED;
+               } );
+               $sharedRequiredPrimaryFields = array_reduce( $primaryRequests, function ( $shared, $req ) {
+                       $required = array_keys( array_filter( $req->getFieldInfo(), function ( $options ) {
+                               return empty( $options['optional'] );
+                       } ) );
+                       if ( $shared === null ) {
+                               return $required;
+                       } else {
+                               return array_intersect( $shared, $required );
+                       }
+               }, null );
+
                foreach ( $reqs as $req ) {
                        $info = $req->getFieldInfo();
                        if ( !$info ) {
@@ -288,8 +301,14 @@ abstract class AuthenticationRequest {
                        }
 
                        foreach ( $info as $name => $options ) {
-                               if ( $req->required !== self::REQUIRED ) {
+                               if (
                                        // If the request isn't required, its fields aren't required either.
+                                       $req->required === self::OPTIONAL
+                                       // If there is a primary not requiring this field, no matter how many others do,
+                                       // authentication can proceed without it.
+                                       || $req->required === self::PRIMARY_REQUIRED
+                                               && !in_array( $name, $sharedRequiredPrimaryFields, true )
+                               ) {
                                        $options['optional'] = true;
                                } else {
                                        $options['optional'] = !empty( $options['optional'] );
index db01825..5048cf8 100644 (file)
@@ -83,13 +83,14 @@ class AuthenticationResponse {
        /**
         * @var AuthenticationRequest|null
         *
-        * Returned with a PrimaryAuthenticationProvider login FAIL, this holds a
-        * request that should result in a PASS when passed to that provider's
-        * PrimaryAuthenticationProvider::beginPrimaryAccountCreation().
+        * Returned with a PrimaryAuthenticationProvider login FAIL or a PASS with
+        * no username, this holds a request that should result in a PASS when
+        * passed to that provider's PrimaryAuthenticationProvider::beginPrimaryAccountCreation().
         *
-        * Returned with an AuthManager login FAIL or RESTART, this holds a request
-        * that may be passed to AuthManager::beginCreateAccount() after setting
-        * its ->returnToUrl property. It may also be passed to
+        * Returned with an AuthManager login FAIL or RESTART, this holds a
+        * CreateFromLoginAuthenticationRequest that may be passed to
+        * AuthManager::beginCreateAccount(), possibly in place of any
+        * "primary-required" requests. It may also be passed to
         * AuthManager::beginAuthentication() to preserve state.
         */
        public $createRequest = null;
index 070da9f..f7a7ec1 100644 (file)
@@ -23,7 +23,6 @@ namespace MediaWiki\Auth;
 
 use Config;
 use StatusValue;
-use User;
 
 /**
  * Check if the user is blocked, and prevent authentication if so.
@@ -75,7 +74,7 @@ class CheckBlocksSecondaryAuthenticationProvider extends AbstractSecondaryAuthen
                return AuthenticationResponse::newAbstain();
        }
 
-       public function testUserForCreation( $user, $autocreate ) {
+       public function testUserForCreation( $user, $autocreate, array $options = [] ) {
                $block = $user->isBlockedFromCreateAccount();
                if ( $block ) {
                        $errorParams = [
index 180aaae..beb11f4 100644 (file)
@@ -2,7 +2,6 @@
 
 namespace MediaWiki\Auth;
 
-use StatusValue;
 use User;
 
 /**
@@ -50,7 +49,14 @@ class ConfirmLinkSecondaryAuthenticationProvider extends AbstractSecondaryAuthen
                if ( !is_array( $state ) ) {
                        return AuthenticationResponse::newAbstain();
                }
-               $maybeLink = $state['maybeLink'];
+
+               $maybeLink = array_filter( $state['maybeLink'], function ( $req ) use ( $user ) {
+                       if ( !$req->action ) {
+                               $req->action = AuthManager::ACTION_CHANGE;
+                       }
+                       $req->username = $user->getName();
+                       return $this->manager->allowsAuthenticationDataChange( $req )->isGood();
+               } );
                if ( !$maybeLink ) {
                        return AuthenticationResponse::newAbstain();
                }
@@ -134,7 +140,7 @@ class ConfirmLinkSecondaryAuthenticationProvider extends AbstractSecondaryAuthen
                                $combinedStatus->error( wfMessage( 'authprovider-confirmlink-success-line', $description ) );
                        } else {
                                $combinedStatus->error( wfMessage(
-                                       'authprovider-confirmlink-failure-line', $description, $status->getMessage()->text()
+                                       'authprovider-confirmlink-failed-line', $description, $status->getMessage()->text()
                                ) );
                        }
                }
index 949302d..ddeb13d 100644 (file)
@@ -25,7 +25,8 @@ namespace MediaWiki\Auth;
  * This transfers state between the login and account creation flows.
  *
  * AuthManager::getAuthenticationRequests() won't return this type, but it
- * may be passed to AuthManager::beginAccountCreation() anyway.
+ * may be passed to AuthManager::beginAuthentication() or
+ * AuthManager::beginAccountCreation() anyway.
  *
  * @ingroup Auth
  * @since 1.27
@@ -50,6 +51,7 @@ class CreateFromLoginAuthenticationRequest extends AuthenticationRequest {
        ) {
                $this->createRequest = $createRequest;
                $this->maybeLink = $maybeLink;
+               $this->username = $createRequest ? $createRequest->username : null;
        }
 
        public function getFieldInfo() {
@@ -59,4 +61,36 @@ class CreateFromLoginAuthenticationRequest extends AuthenticationRequest {
        public function loadFromSubmission( array $data ) {
                return true;
        }
+
+       /**
+        * Indicate whether this request contains any state for the specified
+        * action.
+        * @param string $action One of the AuthManager::ACTION_* constants
+        * @return boolean
+        */
+       public function hasStateForAction( $action ) {
+               switch ( $action ) {
+                       case AuthManager::ACTION_LOGIN:
+                               return (bool)$this->maybeLink;
+                       case AuthManager::ACTION_CREATE:
+                               return $this->maybeLink || $this->createRequest;
+                       default:
+                               return false;
+               }
+       }
+
+       /**
+        * Indicate whether this request contains state for the specified
+        * action sufficient to replace other primary-required requests.
+        * @param string $action One of the AuthManager::ACTION_* constants
+        * @return boolean
+        */
+       public function hasPrimaryStateForAction( $action ) {
+               switch ( $action ) {
+                       case AuthManager::ACTION_CREATE:
+                               return (bool)$this->createRequest;
+                       default:
+                               return false;
+               }
+       }
 }
index 1711aec..146470e 100644 (file)
@@ -10,6 +10,8 @@ class CreationReasonAuthenticationRequest extends AuthenticationRequest {
        /** @var string Account creation reason (only used when creating for someone else) */
        public $reason;
 
+       public $required = self::OPTIONAL;
+
        public function getFieldInfo() {
                return [
                        'reason' => [
index c632e3c..d32640e 100644 (file)
@@ -3,7 +3,6 @@
 namespace MediaWiki\Auth;
 
 use Config;
-use StatusValue;
 
 /**
  * Handles email notification / email address confirmation for account creation.
index 1a8a758..cab6e32 100644 (file)
@@ -96,7 +96,7 @@ class LegacyHookPreAuthenticationProvider extends AbstractPreAuthenticationProvi
                return StatusValue::newGood();
        }
 
-       public function testUserForCreation( $user, $autocreate ) {
+       public function testUserForCreation( $user, $autocreate, array $options = [] ) {
                if ( $autocreate !== false ) {
                        $abortError = '';
                        if ( !\Hooks::run( 'AbortAutoAccount', [ $user, &$abortError ] ) ) {
@@ -106,27 +106,6 @@ class LegacyHookPreAuthenticationProvider extends AbstractPreAuthenticationProvi
                                        $user, $user, LoginForm::ABORTED, $abortError, 'AbortAutoAccount'
                                );
                        }
-               } else {
-                       $abortError = '';
-                       $abortStatus = null;
-                       if ( !\Hooks::run( 'AbortNewAccount', [ $user, &$abortError, &$abortStatus ] ) ) {
-                               // Hook point to add extra creation throttles and blocks
-                               $this->logger->debug( __METHOD__ . ': a hook blocked creation' );
-                               if ( $abortStatus === null ) {
-                                       // Report back the old string as a raw message status.
-                                       // This will report the error back as 'createaccount-hook-aborted'
-                                       // with the given string as the message.
-                                       // To return a different error code, return a StatusValue object.
-                                       $msg = wfMessage( 'createaccount-hook-aborted' )->rawParams( $abortError );
-                                       return StatusValue::newFatal( $msg );
-                               } else {
-                                       // For MediaWiki 1.23+ and updated hooks, return the Status object
-                                       // returned from the hook.
-                                       $ret = StatusValue::newGood();
-                                       $ret->merge( $abortStatus );
-                                       return $ret;
-                               }
-                       }
                }
 
                return StatusValue::newGood();
index 846d16e..13fae6e 100644 (file)
@@ -83,9 +83,17 @@ interface PreAuthenticationProvider extends AuthenticationProvider {
         *   into such.
         * @param bool|string $autocreate False if this is not an auto-creation, or
         *  the source of the auto-creation passed to AuthManager::autoCreateUser().
+        * @param array $options
+        *  - flags: (int) Bitfield of User:READ_* constants, default User::READ_NORMAL
+        *  - creating: (bool) If false (or missing), this call is only testing if
+        *    a user could be created. If set, this (non-autocreation) is for
+        *    actually creating an account and will be followed by a call to
+        *    testForAccountCreation(). In this case, the provider might return
+        *    StatusValue::newGood() here and let the later call to
+        *    testForAccountCreation() do a more thorough test.
         * @return StatusValue
         */
-       public function testUserForCreation( $user, $autocreate );
+       public function testUserForCreation( $user, $autocreate, array $options = [] );
 
        /**
         * Post-creation callback
index 169e7f1..c44c8fc 100644 (file)
@@ -277,9 +277,17 @@ interface PrimaryAuthenticationProvider extends AuthenticationProvider {
         *   into such.
         * @param bool|string $autocreate False if this is not an auto-creation, or
         *  the source of the auto-creation passed to AuthManager::autoCreateUser().
+        * @param array $options
+        *  - flags: (int) Bitfield of User:READ_* constants, default User::READ_NORMAL
+        *  - creating: (bool) If false (or missing), this call is only testing if
+        *    a user could be created. If set, this (non-autocreation) is for
+        *    actually creating an account and will be followed by a call to
+        *    testForAccountCreation(). In this case, the provider might return
+        *    StatusValue::newGood() here and let the later call to
+        *    testForAccountCreation() do a more thorough test.
         * @return StatusValue
         */
-       public function testUserForCreation( $user, $autocreate );
+       public function testUserForCreation( $user, $autocreate, array $options = [] );
 
        /**
         * Post-auto-creation callback
index 2e51cf2..dd97830 100644 (file)
@@ -95,12 +95,12 @@ class ResetPasswordSecondaryAuthenticationProvider extends AbstractSecondaryAuth
                        }
                }
 
-               if ( isset( $data->req ) ) {
-                       $needReq = $data->req;
-               } else {
-                       $needReq = new PasswordAuthenticationRequest();
+               $needReq = isset( $data->req ) ? $data->req : new PasswordAuthenticationRequest();
+               if ( !$needReq->action ) {
                        $needReq->action = AuthManager::ACTION_CHANGE;
                }
+               $needReq->required = $data->hard ? AuthenticationRequest::REQUIRED
+                       : AuthenticationRequest::OPTIONAL;
                $needReqs = [ $needReq ];
                if ( !$data->hard ) {
                        $needReqs[] = new ButtonAuthenticationRequest(
index 0d52d25..1ccc9c6 100644 (file)
@@ -200,9 +200,17 @@ interface SecondaryAuthenticationProvider extends AuthenticationProvider {
         *   into such.
         * @param bool|string $autocreate False if this is not an auto-creation, or
         *  the source of the auto-creation passed to AuthManager::autoCreateUser().
+        * @param array $options
+        *  - flags: (int) Bitfield of User:READ_* constants, default User::READ_NORMAL
+        *  - creating: (bool) If false (or missing), this call is only testing if
+        *    a user could be created. If set, this (non-autocreation) is for
+        *    actually creating an account and will be followed by a call to
+        *    testForAccountCreation(). In this case, the provider might return
+        *    StatusValue::newGood() here and let the later call to
+        *    testForAccountCreation() do a more thorough test.
         * @return StatusValue
         */
-       public function testUserForCreation( $user, $autocreate );
+       public function testUserForCreation( $user, $autocreate, array $options = [] );
 
        /**
         * Post-auto-creation callback
index 5b14a3b..f47c606 100644 (file)
 namespace MediaWiki\Auth;
 
 use BagOStuff;
-use Config;
 use MediaWiki\Logger\LoggerFactory;
 use Psr\Log\LoggerAwareInterface;
 use Psr\Log\LoggerInterface;
 use Psr\Log\LogLevel;
-use Psr\Log\NullLogger;
-use User;
 
 /**
  * A helper class for throttling authentication attempts.
index 04d2524..ec37dd6 100644 (file)
@@ -73,8 +73,8 @@ class LinkBatch {
         * @param string $dbkey
         */
        public function add( $ns, $dbkey ) {
-               if ( $ns < 0 ) {
-                       return;
+               if ( $ns < 0 || $dbkey === '' ) {
+                       return; // T137083
                }
                if ( !array_key_exists( $ns, $this->data ) ) {
                        $this->data[$ns] = [];
@@ -168,7 +168,7 @@ class LinkBatch {
                // The remaining links in $data are bad links, register them as such
                foreach ( $remaining as $ns => $dbkeys ) {
                        foreach ( $dbkeys as $dbkey => $unused ) {
-                               $title = new TitleValue( (int)$ns, $dbkey );
+                               $title = new TitleValue( (int)$ns, (string)$dbkey );
                                $cache->addBadLinkObj( $title );
                                $pdbk = $titleFormatter->getPrefixedDBkey( $title );
                                $ids[$pdbk] = 0;
index 0fb9ed8..4970a2b 100644 (file)
@@ -23,6 +23,7 @@
 use Cdb\Reader as CdbReader;
 use Cdb\Writer as CdbWriter;
 use CLDRPluralRuleParser\Evaluator;
+use CLDRPluralRuleParser\Error as CLDRPluralRuleError;
 use MediaWiki\MediaWikiServices;
 
 /**
index 099a295..d3a414b 100644 (file)
@@ -358,8 +358,7 @@ class EnhancedChangesList extends ChangesList {
        protected function getLineData( array $block, RCCacheEntry $rcObj, array $queryParams = [] ) {
                $RCShowChangedSize = $this->getConfig()->get( 'RCShowChangedSize' );
 
-               # Classes to apply -- TODO implement
-               $classes = [];
+               $classes = [ 'mw-enhanced-rc' ];
                $type = $rcObj->mAttribs['rc_type'];
                $data = [];
                $lineParams = [];
@@ -367,8 +366,9 @@ class EnhancedChangesList extends ChangesList {
                if ( $rcObj->watched
                        && $rcObj->mAttribs['rc_timestamp'] >= $rcObj->watched
                ) {
-                       $lineParams['classes'] = [ 'mw-enhanced-watched' ];
+                       $classes = [ 'mw-enhanced-watched' ];
                }
+
                $separator = ' <span class="mw-changeslist-separator">. .</span> ';
 
                $data['recentChangesFlags'] = [
@@ -442,7 +442,7 @@ class EnhancedChangesList extends ChangesList {
 
                // give the hook a chance to modify the data
                $success = Hooks::run( 'EnhancedChangesListModifyLineData',
-                       [ $this, &$data, $block, $rcObj ] );
+                       [ $this, &$data, $block, $rcObj, &$classes ] );
                if ( !$success ) {
                        // skip entry if hook aborted it
                        return [];
@@ -461,6 +461,8 @@ class EnhancedChangesList extends ChangesList {
                        unset( $data['timestampLink'] );
                }
 
+               $lineParams['classes'] = array_values( $classes );
+
                // everything else: makes it easier for extensions to add or remove data
                $lineParams['data'] = array_values( $data );
 
index f6a9dc7..27f917b 100644 (file)
@@ -155,6 +155,11 @@ class IcuCollation extends Collation {
                'smn' => [ "Á", "Č", "Đ", "Ŋ", "Š", "Ŧ", "Ž", "Æ", "Ø", "Å", "Ä", "Ö" ],
                'sq' => [ "Ç", "Dh", "Ë", "Gj", "Ll", "Nj", "Rr", "Sh", "Th", "Xh", "Zh" ],
                'sr' => [],
+               'ta' => [
+                       "\xE0\xAE\x82", "ஃ", "க்ஷ", "க்", "ங்", "ச்", "ஞ்", "ட்", "ண்", "த்", "ந்",
+                       "ப்", "ம்", "ய்", "ர்", "ல்", "வ்", "ழ்", "ள்", "ற்", "ன்", "ஜ்", "ஶ்", "ஷ்",
+                       "ஸ்", "ஹ்", "க்ஷ்"
+               ],
                'tk' => [ "Ç", "Ä", "Ž", "Ň", "Ö", "Ş", "Ü", "Ý" ],
                'tl' => [ "Ñ", "Ng" ],
                'tr' => [ "Ç", "Ğ", "İ", "Ö", "Ş", "Ü" ],
index e744655..811b241 100644 (file)
@@ -281,7 +281,7 @@ abstract class AbstractContent implements Content {
         *
         * @since 1.21
         *
-        * @return null
+        * @return Title|null
         *
         * @see Content::getRedirectTarget
         */
index 694b633..2bbf6ca 100644 (file)
@@ -63,4 +63,12 @@ abstract class CodeContentHandler extends TextContentHandler {
        protected function getContentClass() {
                throw new MWException( 'Subclass must override' );
        }
+
+       /**
+        * @param SearchEngine $engine
+        * @return array
+        */
+       public function getFieldsForSearchIndex( SearchEngine $engine ) {
+               return [];
+       }
 }
index e225fb7..1ecd614 100644 (file)
@@ -1248,4 +1248,26 @@ abstract class ContentHandler {
 
                return $ok;
        }
+
+       /**
+        * Get fields definition for search index
+        * @param SearchEngine $engine
+        * @return SearchIndexField[] List of fields this content handler can provide.
+        * @since 1.28
+        */
+       public function getFieldsForSearchIndex( SearchEngine $engine ) {
+               /* Default fields:
+               /*
+                * namespace
+                * namespace_text
+                * redirect
+                * source_text
+                * suggest
+                * timestamp
+                * title
+                * text
+                * text_bytes
+                */
+               return [];
+       }
 }
index ad40cd9..748c810 100644 (file)
@@ -31,8 +31,7 @@
 class TextContentHandler extends ContentHandler {
 
        // @codingStandardsIgnoreStart bug 57585
-       public function __construct( $modelId = CONTENT_MODEL_TEXT,
-               $formats = [ CONTENT_FORMAT_TEXT ] ) {
+       public function __construct( $modelId = CONTENT_MODEL_TEXT, $formats = [ CONTENT_FORMAT_TEXT ] ) {
                parent::__construct( $modelId, $formats );
        }
        // @codingStandardsIgnoreEnd
@@ -41,7 +40,7 @@ class TextContentHandler extends ContentHandler {
         * Returns the content's text as-is.
         *
         * @param Content $content
-        * @param string $format The serialization format to check
+        * @param string  $format The serialization format to check
         *
         * @return mixed
         */
@@ -143,4 +142,10 @@ class TextContentHandler extends ContentHandler {
                return true;
        }
 
+       public function getFieldsForSearchIndex( SearchEngine $engine ) {
+               $fields = [];
+               $fields['language'] =
+                       $engine->makeSearchFieldMapping( 'language', SearchIndexField::INDEX_TYPE_KEYWORD );
+               return $fields;
+       }
 }
index 0701a0f..4e8f0df 100644 (file)
@@ -108,4 +108,41 @@ class WikitextContentHandler extends TextContentHandler {
                return true;
        }
 
+       public function getFieldsForSearchIndex( SearchEngine $engine ) {
+               $fields = [];
+
+               $fields['category'] =
+                       $engine->makeSearchFieldMapping( 'category', SearchIndexField::INDEX_TYPE_TEXT );
+               $fields['category']->setFlag( SearchIndexField::FLAG_CASEFOLD );
+
+               $fields['external_link'] =
+                       $engine->makeSearchFieldMapping( 'external_link', SearchIndexField::INDEX_TYPE_KEYWORD );
+
+               $fields['heading'] =
+                       $engine->makeSearchFieldMapping( 'heading', SearchIndexField::INDEX_TYPE_TEXT );
+               $fields['heading']->setFlag( SearchIndexField::FLAG_SCORING );
+
+               $fields['auxiliary_text'] =
+                       $engine->makeSearchFieldMapping( 'auxiliary_text', SearchIndexField::INDEX_TYPE_TEXT );
+
+               $fields['opening_text'] =
+                       $engine->makeSearchFieldMapping( 'opening_text', SearchIndexField::INDEX_TYPE_TEXT );
+               $fields['opening_text']->setFlag( SearchIndexField::FLAG_SCORING |
+                                                 SearchIndexField::FLAG_NO_HIGHLIGHT );
+
+               $fields['outgoing_link'] =
+                       $engine->makeSearchFieldMapping( 'outgoing_link', SearchIndexField::INDEX_TYPE_KEYWORD );
+
+               $fields['template'] =
+                       $engine->makeSearchFieldMapping( 'template', SearchIndexField::INDEX_TYPE_KEYWORD );
+               $fields['template']->setFlag( SearchIndexField::FLAG_CASEFOLD );
+
+               // FIXME: this really belongs in separate file handler but files
+               // do not have separate handler. Sadness.
+               $fields['file_text'] =
+                       $engine->makeSearchFieldMapping( 'file_text', SearchIndexField::INDEX_TYPE_TEXT );
+
+               return $fields;
+       }
+
 }
index d73ba85..1893c73 100644 (file)
@@ -417,11 +417,15 @@ class DBConnRef implements IDatabase {
                return $this->__call( __FUNCTION__, func_get_args() );
        }
 
-       public function onTransactionIdle( $callback ) {
+       public function onTransactionResolution( callable $callback ) {
                return $this->__call( __FUNCTION__, func_get_args() );
        }
 
-       public function onTransactionPreCommitOrIdle( $callback ) {
+       public function onTransactionIdle( callable $callback ) {
+               return $this->__call( __FUNCTION__, func_get_args() );
+       }
+
+       public function onTransactionPreCommitOrIdle( callable $callback ) {
                return $this->__call( __FUNCTION__, func_get_args() );
        }
 
@@ -433,7 +437,7 @@ class DBConnRef implements IDatabase {
                return $this->__call( __FUNCTION__, func_get_args() );
        }
 
-       public function doAtomicSection( $fname, $callback ) {
+       public function doAtomicSection( $fname, callable $callback ) {
                return $this->__call( __FUNCTION__, func_get_args() );
        }
 
index 92e89b0..16ea219 100644 (file)
@@ -52,10 +52,12 @@ abstract class DatabaseBase implements IDatabase {
        protected $mConn = null;
        protected $mOpened = false;
 
-       /** @var callable[] */
+       /** @var array[] List of (callable, method name) */
        protected $mTrxIdleCallbacks = [];
-       /** @var callable[] */
+       /** @var array[] List of (callable, method name) */
        protected $mTrxPreCommitCallbacks = [];
+       /** @var array[] List of (callable, method name) */
+       protected $mTrxEndCallbacks = [];
 
        protected $mTablePrefix;
        protected $mSchema;
@@ -2448,14 +2450,21 @@ abstract class DatabaseBase implements IDatabase {
                return false;
        }
 
-       final public function onTransactionIdle( $callback ) {
+       final public function onTransactionResolution( callable $callback ) {
+               if ( !$this->mTrxLevel ) {
+                       throw new DBUnexpectedError( $this, "No transaction is active." );
+               }
+               $this->mTrxEndCallbacks[] = [ $callback, wfGetCaller() ];
+       }
+
+       final public function onTransactionIdle( callable $callback ) {
                $this->mTrxIdleCallbacks[] = [ $callback, wfGetCaller() ];
                if ( !$this->mTrxLevel ) {
                        $this->runOnTransactionIdleCallbacks();
                }
        }
 
-       final public function onTransactionPreCommitOrIdle( $callback ) {
+       final public function onTransactionPreCommitOrIdle( callable $callback ) {
                if ( $this->mTrxLevel ) {
                        $this->mTrxPreCommitCallbacks[] = [ $callback, wfGetCaller() ];
                } else {
@@ -2473,8 +2482,12 @@ abstract class DatabaseBase implements IDatabase {
 
                $e = $ePrior = null; // last exception
                do { // callbacks may add callbacks :)
-                       $callbacks = $this->mTrxIdleCallbacks;
+                       $callbacks = array_merge(
+                               $this->mTrxIdleCallbacks,
+                               $this->mTrxEndCallbacks // include "transaction resolution" callbacks
+                       );
                        $this->mTrxIdleCallbacks = []; // recursion guard
+                       $this->mTrxEndCallbacks = []; // recursion guard
                        foreach ( $callbacks as $callback ) {
                                try {
                                        list( $phpCallback ) = $callback;
@@ -2507,9 +2520,11 @@ abstract class DatabaseBase implements IDatabase {
        /**
         * Actually any "on transaction pre-commit" callbacks.
         *
+        * This method should not be used outside of Database/LoadBalancer
+        *
         * @since 1.22
         */
-       protected function runOnTransactionPreCommitCallbacks() {
+       public function runOnTransactionPreCommitCallbacks() {
                $e = $ePrior = null; // last exception
                do { // callbacks may add callbacks :)
                        $callbacks = $this->mTrxPreCommitCallbacks;
@@ -2561,11 +2576,7 @@ abstract class DatabaseBase implements IDatabase {
                }
        }
 
-       final public function doAtomicSection( $fname, $callback ) {
-               if ( !is_callable( $callback ) ) {
-                       throw new UnexpectedValueException( "Invalid callback." );
-               };
-
+       final public function doAtomicSection( $fname, callable $callback ) {
                $this->startAtomic( $fname );
                try {
                        call_user_func_array( $callback, [ $this, $fname ] );
@@ -2597,7 +2608,7 @@ abstract class DatabaseBase implements IDatabase {
                        } else {
                                // The transaction was automatic and has done write operations
                                if ( $this->mTrxDoneWrites ) {
-                                       wfDebug( "$fname: Automatic transaction with writes in progress" .
+                                       wfLogDBError( "$fname: Automatic transaction with writes in progress" .
                                                " (from {$this->mTrxFname}), performing implicit commit!\n"
                                        );
                                }
@@ -2611,10 +2622,11 @@ abstract class DatabaseBase implements IDatabase {
                                $this->getTransactionProfiler()->transactionWritingOut(
                                        $this->mServer, $this->mDBname, $this->mTrxShortId, $writeTime );
                        }
+
                        $this->runOnTransactionIdleCallbacks();
                }
 
-               # Avoid fatals if close() was called
+               // Avoid fatals if close() was called
                $this->assertOpen();
 
                $this->doBegin( $fname );
@@ -2675,7 +2687,7 @@ abstract class DatabaseBase implements IDatabase {
                        }
                }
 
-               # Avoid fatals if close() was called
+               // Avoid fatals if close() was called
                $this->assertOpen();
 
                $this->runOnTransactionPreCommitCallbacks();
@@ -2686,6 +2698,7 @@ abstract class DatabaseBase implements IDatabase {
                        $this->getTransactionProfiler()->transactionWritingOut(
                                $this->mServer, $this->mDBname, $this->mTrxShortId, $writeTime );
                }
+
                $this->runOnTransactionIdleCallbacks();
        }
 
@@ -2714,17 +2727,19 @@ abstract class DatabaseBase implements IDatabase {
                        }
                }
 
-               # Avoid fatals if close() was called
+               // Avoid fatals if close() was called
                $this->assertOpen();
 
                $this->doRollback( $fname );
-               $this->mTrxIdleCallbacks = []; // cancel
-               $this->mTrxPreCommitCallbacks = []; // cancel
                $this->mTrxAtomicLevels = [];
                if ( $this->mTrxDoneWrites ) {
                        $this->getTransactionProfiler()->transactionWritingOut(
                                $this->mServer, $this->mDBname, $this->mTrxShortId );
                }
+
+               $this->mTrxIdleCallbacks = []; // clear
+               $this->mTrxPreCommitCallbacks = []; // clear
+               $this->runOnTransactionIdleCallbacks();
        }
 
        /**
@@ -3298,9 +3313,14 @@ abstract class DatabaseBase implements IDatabase {
                if ( $this->mTrxLevel && $this->mTrxDoneWrites ) {
                        trigger_error( "Uncommitted DB writes (transaction from {$this->mTrxFname})." );
                }
-               if ( count( $this->mTrxIdleCallbacks ) || count( $this->mTrxPreCommitCallbacks ) ) {
+               $danglingCallbacks = array_merge(
+                       $this->mTrxIdleCallbacks,
+                       $this->mTrxPreCommitCallbacks,
+                       $this->mTrxEndCallbacks
+               );
+               if ( $danglingCallbacks ) {
                        $callers = [];
-                       foreach ( $this->mTrxIdleCallbacks as $callbackInfo ) {
+                       foreach ( $danglingCallbacks as $callbackInfo ) {
                                $callers[] = $callbackInfo[1];
                        }
                        $callers = implode( ', ', $callers );
index 9e53653..f9ba050 100644 (file)
@@ -432,7 +432,7 @@ class DatabaseOracle extends Database {
 
        /**
         * Frees resources associated with the LOB descriptor
-        * @param ResultWrapper|resource $res
+        * @param ResultWrapper|ORAResult $res
         */
        function freeResult( $res ) {
                if ( $res instanceof ResultWrapper ) {
@@ -443,7 +443,7 @@ class DatabaseOracle extends Database {
        }
 
        /**
-        * @param ResultWrapper|stdClass $res
+        * @param ResultWrapper|ORAResult $res
         * @return mixed
         */
        function fetchObject( $res ) {
@@ -454,6 +454,10 @@ class DatabaseOracle extends Database {
                return $res->fetchObject();
        }
 
+       /**
+        * @param ResultWrapper|ORAResult $res
+        * @return mixed
+        */
        function fetchRow( $res ) {
                if ( $res instanceof ResultWrapper ) {
                        $res = $res->result;
@@ -462,6 +466,10 @@ class DatabaseOracle extends Database {
                return $res->fetchRow();
        }
 
+       /**
+        * @param ResultWrapper|ORAResult $res
+        * @return int
+        */
        function numRows( $res ) {
                if ( $res instanceof ResultWrapper ) {
                        $res = $res->result;
@@ -470,6 +478,10 @@ class DatabaseOracle extends Database {
                return $res->numRows();
        }
 
+       /**
+        * @param ResultWrapper|ORAResult $res
+        * @return int
+        */
        function numFields( $res ) {
                if ( $res instanceof ResultWrapper ) {
                        $res = $res->result;
index 839d6a0..c9127ff 100644 (file)
@@ -1383,6 +1383,11 @@ SQL;
                return (bool)$exists;
        }
 
+       /**
+        * @var string $table
+        * @var string $field
+        * @return PostgresField|null
+        */
        function fieldInfo( $table, $field ) {
                return PostgresField::fromText( $this, $table, $field );
        }
index 710efb2..36772b8 100644 (file)
@@ -1215,6 +1215,20 @@ interface IDatabase {
         */
        public function getMasterPos();
 
+       /**
+        * Run an anonymous function as soon as the current transaction commits or rolls back.
+        * An error is thrown if no transaction is pending. Queries in the function will run in
+        * AUTO-COMMIT mode unless there are begin() calls. Callbacks must commit any transactions
+        * that they begin.
+        *
+        * This is useful for combining cooperative locks and DB transactions.
+        *
+        * @param callable $callback
+        * @return mixed
+        * @since 1.28
+        */
+       public function onTransactionResolution( callable $callback );
+
        /**
         * Run an anonymous function as soon as there is no transaction pending.
         * If there is a transaction and it is rolled back, then the callback is cancelled.
@@ -1231,7 +1245,7 @@ interface IDatabase {
         * @param callable $callback
         * @since 1.20
         */
-       public function onTransactionIdle( $callback );
+       public function onTransactionIdle( callable $callback );
 
        /**
         * Run an anonymous function before the current transaction commits or now if there is none.
@@ -1246,7 +1260,7 @@ interface IDatabase {
         * @param callable $callback
         * @since 1.22
         */
-       public function onTransactionPreCommitOrIdle( $callback );
+       public function onTransactionPreCommitOrIdle( callable $callback );
 
        /**
         * Begin an atomic section of statements
@@ -1313,7 +1327,7 @@ interface IDatabase {
         * @throws UnexpectedValueException
         * @since 1.27
         */
-       public function doAtomicSection( $fname, $callback );
+       public function doAtomicSection( $fname, callable $callback );
 
        /**
         * Begin a transaction. If a transaction is already in progress,
index 5b048b5..9a1d679 100644 (file)
@@ -224,6 +224,10 @@ abstract class LBFactory implements DestructibleService {
        public function commitMasterChanges( $fname = __METHOD__, array $options = [] ) {
                $limit = isset( $options['maxWriteDuration'] ) ? $options['maxWriteDuration'] : 0;
 
+               // Run pre-commit callbacks to keep them out of the COMMIT step. If one errors out here
+               // then all DB transactions can be rolled back before anything was committed yet.
+               $this->forEachLBCallMethod( 'runPreCommitCallbacks' );
+
                $this->logMultiDbTransaction();
                $this->forEachLB( function ( LoadBalancer $lb ) use ( $limit ) {
                        $lb->forEachOpenConnection( function ( IDatabase $db ) use ( $limit ) {
index d96c665..d9a7381 100644 (file)
@@ -1115,6 +1115,28 @@ class LoadBalancer {
                }
        }
 
+       /**
+        * Call runOnTransactionPreCommitCallbacks() on all DB handles
+        *
+        * This method should not be used outside of LBFactory/LoadBalancer
+        *
+        * @since 1.28
+        */
+       public function runPreCommitCallbacks() {
+               $masterIndex = $this->getWriterIndex();
+               foreach ( $this->mConns as $conns2 ) {
+                       if ( empty( $conns2[$masterIndex] ) ) {
+                               continue;
+                       }
+                       /** @var DatabaseBase $conn */
+                       foreach ( $conns2[$masterIndex] as $conn ) {
+                               if ( $conn->trxLevel() && $conn->writesOrCallbacksPending() ) {
+                                       $conn->runOnTransactionPreCommitCallbacks();
+                               }
+                       }
+               }
+       }
+
        /**
         * @return bool Whether a master connection is already open
         * @since 1.24
index 0fd3b08..432a9e1 100644 (file)
@@ -22,6 +22,7 @@ namespace MediaWiki\Logger\Monolog;
 
 use Kafka\MetaDataFromKafka;
 use Kafka\Produce;
+use Kafka\Protocol\Decoder;
 use MediaWiki\Logger\LoggerFactory;
 use Monolog\Handler\AbstractProcessingHandler;
 use Monolog\Logger;
@@ -68,6 +69,7 @@ class KafkaHandler extends AbstractProcessingHandler {
                'alias' => [], // map from monolog channel to kafka topic
                'swallowExceptions' => false, // swallow exceptions sending records
                'logExceptions' => null, // A PSR3 logger to inform about errors
+               'requireAck' => 0,
        ];
 
        /**
@@ -118,6 +120,10 @@ class KafkaHandler extends AbstractProcessingHandler {
                        $options['logExceptions'] = LoggerFactory::getInstance( $options['logExceptions'] );
                }
 
+               if ( isset( $options['requireAck'] ) ) {
+                       $produce->setRequireAck( $options['requireAck'] );
+               }
+
                return new self( $produce, $options, $level, $bubble );
        }
 
@@ -165,13 +171,42 @@ class KafkaHandler extends AbstractProcessingHandler {
         */
        protected function send() {
                try {
-                       $this->produce->send();
+                       $response = $this->produce->send();
                } catch ( \Kafka\Exception $e ) {
                        $ignore = $this->warning(
                                'Error sending records to kafka: {exception}',
                                [ 'exception' => $e ] );
                        if ( !$ignore ) {
                                throw $e;
+                       } else {
+                               return;
+                       }
+               }
+
+               if ( is_bool( $response ) ) {
+                       return;
+               }
+
+               $errors = [];
+               foreach ( $response as $topicName => $partitionResponse ) {
+                       foreach ( $partitionResponse as $partition => $info ) {
+                               if ( $info['errCode'] === 0 ) {
+                                       // no error
+                                       continue;
+                               }
+                               $errors[] = sprintf(
+                                       'Error producing to %s (errno %d): %s',
+                                       $topicName,
+                                       $info['errCode'],
+                                       Decoder::getError( $info['errCode'] )
+                               );
+                       }
+               }
+
+               if ( $errors ) {
+                       $error = implode( "\n", $errors );
+                       if ( !$this->warning( $error ) ) {
+                               throw new \RuntimeException( $error );
                        }
                }
        }
index e3b7570..1552777 100644 (file)
@@ -126,8 +126,10 @@ class DeferredUpdates {
        }
 
        public static function execute( array &$queue, $mode ) {
-               $updates = $queue; // snapshot of queue
+               $stats = \MediaWiki\MediaWikiServices::getInstance()->getStatsdDataFactory();
+               $method = RequestContext::getMain()->getRequest()->getMethod();
 
+               $updates = $queue; // snapshot of queue
                // Keep doing rounds of updates until none get enqueued
                while ( count( $updates ) ) {
                        $queue = []; // clear the queue
@@ -141,6 +143,7 @@ class DeferredUpdates {
                                } else {
                                        $otherUpdates[] = $update;
                                }
+                               $stats->increment( 'deferred_updates.' . $method . '.' . get_class( $update ) );
                        }
 
                        // Delegate DataUpdate execution to the DataUpdate class
index 65a8c0e..a7c39ca 100644 (file)
@@ -27,81 +27,140 @@ class LinksDeletionUpdate extends SqlDataUpdate implements EnqueueableDataUpdate
        protected $page;
        /** @var integer */
        protected $pageId;
+       /** @var string */
+       protected $timestamp;
 
        /**
         * @param WikiPage $page Page we are updating
         * @param integer|null $pageId ID of the page we are updating [optional]
+        * @param string|null $timestamp TS_MW timestamp of deletion
         * @throws MWException
         */
-       function __construct( WikiPage $page, $pageId = null ) {
+       function __construct( WikiPage $page, $pageId = null, $timestamp = null ) {
                parent::__construct( false ); // no implicit transaction
 
                $this->page = $page;
-               if ( $page->exists() ) {
+               if ( $pageId ) {
+                       $this->pageId = $pageId; // page ID at time of deletion
+               } elseif ( $page->exists() ) {
                        $this->pageId = $page->getId();
-               } elseif ( $pageId ) {
-                       $this->pageId = $pageId;
                } else {
-                       throw new MWException( "Page ID not known, perhaps the page doesn't exist?" );
+                       throw new InvalidArgumentException( "Page ID not known. Page doesn't exist?" );
                }
+
+               $this->timestamp = $timestamp ?: wfTimestampNow();
        }
 
        public function doUpdate() {
-               # Page may already be deleted, so don't just getId()
+               $config = RequestContext::getMain()->getConfig();
+               $batchSize = $config->get( 'UpdateRowsPerQuery' );
+
+               // Page may already be deleted, so don't just getId()
                $id = $this->pageId;
                // Make sure all links update threads see the changes of each other.
                // This handles the case when updates have to batched into several COMMITs.
                $scopedLock = LinksUpdate::acquirePageLock( $this->mDb, $id );
 
-               # Delete restrictions for it
+               // Delete restrictions for it
                $this->mDb->delete( 'page_restrictions', [ 'pr_page' => $id ], __METHOD__ );
 
-               # Fix category table counts
+               // Fix category table counts
                $cats = $this->mDb->selectFieldValues(
                        'categorylinks',
                        'cl_to',
                        [ 'cl_from' => $id ],
                        __METHOD__
                );
-               $this->page->updateCategoryCounts( [], $cats );
+               $catBatches = array_chunk( $cats, $batchSize );
+               foreach ( $catBatches as $catBatch ) {
+                       $this->page->updateCategoryCounts( [], $catBatch, $id );
+                       if ( count( $catBatches ) > 1 ) {
+                               $this->mDb->commit( __METHOD__, 'flush' );
+                               wfGetLBFactory()->waitForReplication( [ 'wiki' => $this->mDb->getWikiID() ] );
+                       }
+               }
 
-               # If using cascading deletes, we can skip some explicit deletes
+               // If using cascading deletes, we can skip some explicit deletes
                if ( !$this->mDb->cascadingDeletes() ) {
-                       # Delete outgoing links
-                       $this->mDb->delete( 'pagelinks', [ 'pl_from' => $id ], __METHOD__ );
-                       $this->mDb->delete( 'imagelinks', [ 'il_from' => $id ], __METHOD__ );
-                       $this->mDb->delete( 'categorylinks', [ 'cl_from' => $id ], __METHOD__ );
-                       $this->mDb->delete( 'templatelinks', [ 'tl_from' => $id ], __METHOD__ );
-                       $this->mDb->delete( 'externallinks', [ 'el_from' => $id ], __METHOD__ );
-                       $this->mDb->delete( 'langlinks', [ 'll_from' => $id ], __METHOD__ );
-                       $this->mDb->delete( 'iwlinks', [ 'iwl_from' => $id ], __METHOD__ );
+                       // Delete outgoing links
+                       $this->batchDeleteByPK(
+                               'pagelinks',
+                               [ 'pl_from' => $id ],
+                               [ 'pl_from', 'pl_namespace', 'pl_title' ],
+                               $batchSize
+                       );
+                       $this->batchDeleteByPK(
+                               'imagelinks',
+                               [ 'il_from' => $id ],
+                               [ 'il_from', 'il_to' ],
+                               $batchSize
+                       );
+                       $this->batchDeleteByPK(
+                               'categorylinks',
+                               [ 'cl_from' => $id ],
+                               [ 'cl_from', 'cl_to' ],
+                               $batchSize
+                       );
+                       $this->batchDeleteByPK(
+                               'templatelinks',
+                               [ 'tl_from' => $id ],
+                               [ 'tl_from', 'tl_namespace', 'tl_title' ],
+                               $batchSize
+                       );
+                       $this->batchDeleteByPK(
+                               'externallinks',
+                               [ 'el_from' => $id ],
+                               [ 'el_id' ],
+                               $batchSize
+                       );
+                       $this->batchDeleteByPK(
+                               'langlinks',
+                               [ 'll_from' => $id ],
+                               [ 'll_from', 'll_lang' ],
+                               $batchSize
+                       );
+                       $this->batchDeleteByPK(
+                               'iwlinks',
+                               [ 'iwl_from' => $id ],
+                               [ 'iwl_from', 'iwl_prefix', 'iwl_title' ],
+                               $batchSize
+                       );
+                       // Delete any redirect entry or page props entries
                        $this->mDb->delete( 'redirect', [ 'rd_from' => $id ], __METHOD__ );
                        $this->mDb->delete( 'page_props', [ 'pp_page' => $id ], __METHOD__ );
                }
 
-               # If using cleanup triggers, we can skip some manual deletes
+               // If using cleanup triggers, we can skip some manual deletes
                if ( !$this->mDb->cleanupTriggers() ) {
                        $title = $this->page->getTitle();
-                       # Find recentchanges entries to clean up...
-                       $rcIdsForTitle = $this->mDb->selectFieldValues( 'recentchanges',
+                       // Find recentchanges entries to clean up...
+                       $rcIdsForTitle = $this->mDb->selectFieldValues(
+                               'recentchanges',
                                'rc_id',
                                [
                                        'rc_type != ' . RC_LOG,
                                        'rc_namespace' => $title->getNamespace(),
-                                       'rc_title' => $title->getDBkey()
+                                       'rc_title' => $title->getDBkey(),
+                                       'rc_timestamp < ' .
+                                               $this->mDb->addQuotes( $this->mDb->timestamp( $this->timestamp ) )
                                ],
                                __METHOD__
                        );
-                       $rcIdsForPage = $this->mDb->selectFieldValues( 'recentchanges',
+                       $rcIdsForPage = $this->mDb->selectFieldValues(
+                               'recentchanges',
                                'rc_id',
                                [ 'rc_type != ' . RC_LOG, 'rc_cur_id' => $id ],
                                __METHOD__
                        );
 
-                       # T98706: delete PK to avoid lock contention with RC delete log insertions
-                       $rcIds = array_merge( $rcIdsForTitle, $rcIdsForPage );
-                       if ( $rcIds ) {
-                               $this->mDb->delete( 'recentchanges', [ 'rc_id' => $rcIds ], __METHOD__ );
+                       // T98706: delete by PK to avoid lock contention with RC delete log insertions
+                       $rcIdBatches = array_chunk( array_merge( $rcIdsForTitle, $rcIdsForPage ), $batchSize );
+                       foreach ( $rcIdBatches as $rcIdBatch ) {
+                               $this->mDb->delete( 'recentchanges', [ 'rc_id' => $rcIdBatch ], __METHOD__ );
+                               if ( count( $rcIdBatches ) > 1 ) {
+                                       $this->mDb->commit( __METHOD__, 'flush' );
+                                       wfGetLBFactory()->waitForReplication( [ 'wiki' => $this->mDb->getWikiID() ] );
+                               }
                        }
                }
 
@@ -111,12 +170,32 @@ class LinksDeletionUpdate extends SqlDataUpdate implements EnqueueableDataUpdate
                } );
        }
 
+       private function batchDeleteByPK( $table, array $conds, array $pk, $bSize ) {
+               $dbw = $this->mDb; // convenience
+               $res = $dbw->select( $table, $pk, $conds, __METHOD__ );
+
+               $pkDeleteConds = [];
+               foreach ( $res as $row ) {
+                       $pkDeleteConds[] = $this->mDb->makeList( (array)$row, LIST_AND );
+                       if ( count( $pkDeleteConds ) >= $bSize ) {
+                               $dbw->delete( $table, $dbw->makeList( $pkDeleteConds, LIST_OR ), __METHOD__ );
+                               $dbw->commit( __METHOD__, 'flush' );
+                               wfGetLBFactory()->waitForReplication( [ 'wiki' => $dbw->getWikiID() ] );
+                               $pkDeleteConds = [];
+                       }
+               }
+
+               if ( $pkDeleteConds ) {
+                       $dbw->delete( $table, $dbw->makeList( $pkDeleteConds, LIST_OR ), __METHOD__ );
+               }
+       }
+
        public function getAsJobSpecification() {
                return [
                        'wiki' => $this->mDb->getWikiID(),
                        'job'  => new JobSpecification(
                                'deleteLinks',
-                               [ 'pageId' => $this->pageId ],
+                               [ 'pageId' => $this->pageId, 'timestamp' => $this->timestamp ],
                                [ 'removeDuplicates' => true ],
                                $this->page->getTitle()
                        )
index 07b5614..d4a61fa 100644 (file)
@@ -155,10 +155,11 @@ class LinksUpdate extends SqlDataUpdate implements EnqueueableDataUpdate {
                Hooks::run( 'LinksUpdate', [ &$this ] );
                $this->doIncrementalUpdate();
 
-               $this->mDb->onTransactionIdle( function() use ( &$scopedLock ) {
+               // Commit and release the lock
+               ScopedCallback::consume( $scopedLock );
+               // Run post-commit hooks without DBO_TRX
+               $this->mDb->onTransactionIdle( function() {
                        Hooks::run( 'LinksUpdateComplete', [ &$this ] );
-                       // Release the lock *after* the final COMMIT for correctness
-                       ScopedCallback::consume( $scopedLock );
                } );
        }
 
@@ -243,15 +244,14 @@ class LinksUpdate extends SqlDataUpdate implements EnqueueableDataUpdate {
                $changed = $propertiesDeletes + array_diff_assoc( $this->mProperties, $existing );
                $this->invalidateProperties( $changed );
 
-               # Update the links table freshness for this title
-               $this->updateLinksTimestamp();
-
                # Refresh links of all pages including this page
                # This will be in a separate transaction
                if ( $this->mRecursive ) {
                        $this->queueRecursiveJobs();
                }
 
+               # Update the links table freshness for this title
+               $this->updateLinksTimestamp();
        }
 
        /**
diff --git a/includes/diff/ComplexityException.php b/includes/diff/ComplexityException.php
new file mode 100644 (file)
index 0000000..10ca964
--- /dev/null
@@ -0,0 +1,30 @@
+<?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
+ *
+ * @file
+ * @ingroup DifferenceEngine
+ */
+
+namespace MediaWiki\Diff;
+
+use Exception;
+
+class ComplexityException extends Exception {
+       public function __construct() {
+               parent::__construct( 'Diff is too complex to generate' );
+       }
+}
index dbb32e6..d38319e 100644 (file)
@@ -204,6 +204,12 @@ class Diff {
         */
        public $edits;
 
+       /**
+        * @var int If this diff complexity is exceeded, a ComplexityException is thrown
+        *          0 means no limit.
+        */
+       protected $bailoutComplexity = 0;
+
        /**
         * Constructor.
         * Computes diff between sequences of strings.
@@ -211,9 +217,11 @@ class Diff {
         * @param string[] $from_lines An array of strings.
         *   Typically these are lines from a file.
         * @param string[] $to_lines An array of strings.
+        * @throws \MediaWiki\Diff\ComplexityException
         */
        public function __construct( $from_lines, $to_lines ) {
                $eng = new DiffEngine;
+               $eng->setBailoutComplexity( $this->bailoutComplexity );
                $this->edits = $eng->diff( $from_lines, $to_lines );
        }
 
index 1853b86..babd00b 100644 (file)
@@ -22,6 +22,7 @@
  * @file
  * @ingroup DifferenceEngine
  */
+use MediaWiki\Diff\ComplexityException;
 
 /**
  * This diff implementation is mainly lifted from the LCS algorithm of the Eclipse project which
@@ -51,6 +52,8 @@ class DiffEngine {
        private $tooLong;
        private $powLimit;
 
+       protected $bailoutComplexity = 0;
+
        // State variables
        private $maxDifferences;
        private $lcsLengthCorrectedForHeuristic = false;
@@ -71,6 +74,7 @@ class DiffEngine {
         *
         * @param string[] $from_lines
         * @param string[] $to_lines
+        * @throws ComplexityException
         *
         * @return DiffOp[]
         */
@@ -128,6 +132,14 @@ class DiffEngine {
                return $edits;
        }
 
+       /**
+        * Sets the complexity (in comparison operations) that can't be exceeded
+        * @param int $value
+        */
+       public function setBailoutComplexity( $value ) {
+               $this->bailoutComplexity = $value;
+       }
+
        /**
         * Adjust inserts/deletes of identical lines to join changes
         * as much as possible.
@@ -265,6 +277,7 @@ class DiffEngine {
        /**
         * @param string[] $from
         * @param string[] $to
+        * @throws ComplexityException
         */
        protected function diffInternal( array $from, array $to ) {
                // remember initial lengths
@@ -323,6 +336,10 @@ class DiffEngine {
                $this->m = count( $this->from );
                $this->n = count( $this->to );
 
+               if ( $this->bailoutComplexity > 0 && $this->m * $this->n > $this->bailoutComplexity ) {
+                       throw new ComplexityException();
+               }
+
                $this->removed = $this->m > 0 ? array_fill( 0, $this->m, true ) : [];
                $this->added = $this->n > 0 ? array_fill( 0, $this->n, true ) : [];
 
index f35356c..af5fbf3 100644 (file)
@@ -891,18 +891,23 @@ class DifferenceEngine extends ContextSource {
                if ( $wgExternalDiffEngine == 'wikidiff' || $wgExternalDiffEngine == 'wikidiff3' ) {
                        wfDeprecated( "\$wgExternalDiffEngine = '{$wgExternalDiffEngine}'", '1.27' );
                        $wgExternalDiffEngine = false;
+               } elseif ( $wgExternalDiffEngine == 'wikidiff2' ) {
+                       // Same as above, but with no deprecation warnings
+                       $wgExternalDiffEngine = false;
+               } elseif ( !is_string( $wgExternalDiffEngine ) && $wgExternalDiffEngine !== false ) {
+                       // And prevent people from shooting themselves in the foot...
+                       wfWarn( '$wgExternalDiffEngine is set to a non-string value, forcing it to false' );
+                       $wgExternalDiffEngine = false;
                }
 
-               if ( $wgExternalDiffEngine == 'wikidiff2' ) {
-                       if ( function_exists( 'wikidiff2_do_diff' ) ) {
-                               # Better external diff engine, the 2 may some day be dropped
-                               # This one does the escaping and segmenting itself
-                               $text = wikidiff2_do_diff( $otext, $ntext, 2 );
-                               $text .= $this->debug( 'wikidiff2' );
+               if ( function_exists( 'wikidiff2_do_diff' ) && $wgExternalDiffEngine === false ) {
+                       # Better external diff engine, the 2 may some day be dropped
+                       # This one does the escaping and segmenting itself
+                       $text = wikidiff2_do_diff( $otext, $ntext, 2 );
+                       $text .= $this->debug( 'wikidiff2' );
 
-                               return $text;
-                       }
-               } elseif ( $wgExternalDiffEngine !== false ) {
+                       return $text;
+               } elseif ( $wgExternalDiffEngine !== false && is_executable( $wgExternalDiffEngine ) ) {
                        # Diff via the shell
                        $tmpDir = wfTempDir();
                        $tempName1 = tempnam( $tmpDir, 'diff_' );
index 12cf376..296e3b7 100644 (file)
@@ -23,6 +23,7 @@
  * @defgroup DifferenceEngine DifferenceEngine
  */
 
+use MediaWiki\Diff\ComplexityException;
 use MediaWiki\Diff\WordAccumulator;
 
 /**
@@ -31,7 +32,10 @@ use MediaWiki\Diff\WordAccumulator;
  * @ingroup DifferenceEngine
  */
 class WordLevelDiff extends \Diff {
-       const MAX_LINE_LENGTH = 10000;
+       /**
+        * @inheritdoc
+        */
+       protected $bailoutComplexity = 40000000; // Roughly 6K x 6K words changed
 
        /**
         * @param string[] $linesBefore
@@ -42,7 +46,12 @@ class WordLevelDiff extends \Diff {
                list( $wordsBefore, $wordsBeforeStripped ) = $this->split( $linesBefore );
                list( $wordsAfter, $wordsAfterStripped ) = $this->split( $linesAfter );
 
-               parent::__construct( $wordsBeforeStripped, $wordsAfterStripped );
+               try {
+                       parent::__construct( $wordsBeforeStripped, $wordsAfterStripped );
+               } catch ( ComplexityException $ex ) {
+                       // Too hard to diff, just show whole paragraph(s) as changed
+                       $this->edits = [ new DiffOpChange( $linesBefore, $linesAfter ) ];
+               }
 
                $xi = $yi = 0;
                $editCount = count( $this->edits );
@@ -73,28 +82,20 @@ class WordLevelDiff extends \Diff {
                $stripped = [];
                $first = true;
                foreach ( $lines as $line ) {
-                       # If the line is too long, just pretend the entire line is one big word
-                       # This prevents resource exhaustion problems
                        if ( $first ) {
                                $first = false;
                        } else {
                                $words[] = "\n";
                                $stripped[] = "\n";
                        }
-                       if ( strlen( $line ) > self::MAX_LINE_LENGTH ) {
-                               $words[] = $line;
-                               $stripped[] = $line;
-                       } else {
-                               $m = [];
-                               if ( preg_match_all( '/ ( [^\S\n]+ | [0-9_A-Za-z\x80-\xff]+ | . ) (?: (?!< \n) [^\S\n])? /xs',
-                                       $line, $m )
-                               ) {
-                                       foreach ( $m[0] as $word ) {
-                                               $words[] = $word;
-                                       }
-                                       foreach ( $m[1] as $stripped_word ) {
-                                               $stripped[] = $stripped_word;
-                                       }
+                       $m = [];
+                       if ( preg_match_all( '/ ( [^\S\n]+ | [0-9_A-Za-z\x80-\xff]+ | . ) (?: (?!< \n) [^\S\n])? /xs',
+                               $line, $m ) ) {
+                               foreach ( $m[0] as $word ) {
+                                       $words[] = $word;
+                               }
+                               foreach ( $m[1] as $stripped_word ) {
+                                       $stripped[] = $stripped_word;
                                }
                        }
                }
index 63adc29..7d8b244 100644 (file)
@@ -93,10 +93,11 @@ class MWExceptionHandler {
                                }
                        }
                } else {
-                       $message = "Exception encountered, of type \"" . get_class( $e ) . "\"";
-
-                       if ( $wgShowExceptionDetails ) {
-                               $message .= "\n" . self::getLogMessage( $e ) . "\nBacktrace:\n" .
+                       if ( !$wgShowExceptionDetails ) {
+                               $message = self::getPublicLogMessage( $e );
+                       } else {
+                               $message = self::getLogMessage( $e ) .
+                                       "\nBacktrace:\n" .
                                        self::getRedactedTraceAsString( $e ) . "\n";
                        }
 
@@ -487,12 +488,16 @@ TXT;
                return "[$id] $url   $type from line $line of $file: $message";
        }
 
-       public static function getPublicLogMessage( Exception $e ) {
+       /**
+        * @param Exception|Throwable $e
+        * @return string
+        */
+       public static function getPublicLogMessage( $e ) {
                $reqId = WebRequest::getRequestId();
                $type = get_class( $e );
                return '[' . $reqId . '] '
                        . gmdate( 'Y-m-d H:i:s' ) . ': '
-                       . 'Fatal exception of type ' . $type;
+                       . 'Fatal exception of type "' . $type . '"';
        }
 
        /**
diff --git a/includes/export/DumpStringOutput.php b/includes/export/DumpStringOutput.php
new file mode 100644 (file)
index 0000000..837a62d
--- /dev/null
@@ -0,0 +1,45 @@
+<?php
+/**
+ * Stream outputter that buffers and returns data as a string.
+ *
+ * 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
+ * @since 1.28
+ */
+class DumpStringOutput extends DumpOutput {
+       private $output = '';
+
+       /**
+        * @param string $string
+        */
+       function write( $string ) {
+               $this->output .= $string;
+       }
+
+       /**
+        * Get the string containing the output.
+        *
+        * @return string
+        */
+       public function __toString() {
+               return $this->output;
+       }
+}
index 54de26d..c1f2d59 100644 (file)
@@ -134,13 +134,21 @@ class WikiExporter {
         * @param int $start Inclusive lower limit (this id is included)
         * @param int $end Exclusive upper limit (this id is not included)
         *   If 0, no upper limit.
+        * @param bool $orderRevs order revisions within pages in ascending order
         */
-       public function pagesByRange( $start, $end ) {
-               $condition = 'page_id >= ' . intval( $start );
-               if ( $end ) {
-                       $condition .= ' AND page_id < ' . intval( $end );
+       public function pagesByRange( $start, $end, $orderRevs ) {
+               if ( $orderRevs ) {
+                       $condition = 'rev_page >= ' . intval( $start );
+                       if ( $end ) {
+                               $condition .= ' AND rev_page < ' . intval( $end );
+                       }
+               } else {
+                       $condition = 'page_id >= ' . intval( $start );
+                       if ( $end ) {
+                               $condition .= ' AND page_id < ' . intval( $end );
+                       }
                }
-               $this->dumpFrom( $condition );
+               $this->dumpFrom( $condition, $orderRevs );
        }
 
        /**
@@ -245,7 +253,7 @@ class WikiExporter {
         * @throws MWException
         * @throws Exception
         */
-       protected function dumpFrom( $cond = '' ) {
+       protected function dumpFrom( $cond = '', $orderRevs = false ) {
                # For logging dumps...
                if ( $this->history & self::LOGS ) {
                        $where = [ 'user_id = log_user' ];
@@ -332,7 +340,16 @@ class WikiExporter {
                                }
                        } elseif ( $this->history & WikiExporter::FULL ) {
                                # Full history dumps...
-                               $join['revision'] = [ 'INNER JOIN', 'page_id=rev_page' ];
+                               # query optimization for history stub dumps
+                               if ( $this->text == WikiExporter::STUB && $orderRevs ) {
+                                       $tables = [ 'revision', 'page' ];
+                                       $opts[] = 'STRAIGHT_JOIN';
+                                       $opts['ORDER BY'] = [ 'rev_page ASC', 'rev_id ASC' ];
+                                       $opts['USE INDEX']['revision'] = 'rev_page_id';
+                                       $join['page'] = [ 'INNER JOIN', 'rev_page=page_id' ];
+                               } else {
+                                       $join['revision'] = [ 'INNER JOIN', 'page_id=rev_page' ];
+                               }
                        } elseif ( $this->history & WikiExporter::CURRENT ) {
                                # Latest revision dumps...
                                if ( $this->list_authors && $cond != '' ) { // List authors, if so desired
@@ -369,7 +386,6 @@ class WikiExporter {
                        if ( $this->buffer == WikiExporter::STREAM ) {
                                $prev = $this->db->bufferResults( false );
                        }
-
                        $result = null; // Assuring $result is not undefined, if exception occurs early
                        try {
                                Hooks::run( 'ModifyExportQuery',
index 9ad2428..d7559d0 100644 (file)
@@ -533,11 +533,10 @@ class FileRepo {
        public function findFileFromKey( $sha1, $options = [] ) {
                $time = isset( $options['time'] ) ? $options['time'] : false;
                # First try to find a matching current version of a file...
-               if ( $this->fileFactoryKey ) {
-                       $img = call_user_func( $this->fileFactoryKey, $sha1, $this, $time );
-               } else {
+               if ( !$this->fileFactoryKey ) {
                        return false; // find-by-sha1 not supported
                }
+               $img = call_user_func( $this->fileFactoryKey, $sha1, $this, $time );
                if ( $img && $img->exists() ) {
                        return $img;
                }
index c767078..cab9316 100644 (file)
@@ -21,6 +21,8 @@
  * @ingroup FileAbstraction
  */
 
+use \MediaWiki\Logger\LoggerFactory;
+
 /**
  * Bump this number when serialized cache records may be incompatible.
  */
@@ -127,6 +129,8 @@ class LocalFile extends File {
        // @note: higher than IDBAccessObject constants
        const LOAD_ALL = 16; // integer; load all the lazy fields too (like metadata)
 
+       const ATOMIC_SECTION_LOCK = 'LocalFile::lockingTransaction';
+
        /**
         * Create a LocalFile from a title
         * Do not call this except from inside a repo class.
@@ -1903,55 +1907,60 @@ class LocalFile extends File {
        }
 
        /**
-        * Start a transaction and lock the image for update
-        * Increments a reference counter if the lock is already held
+        * Start an atomic DB section and lock the image for update
+        * or increments a reference counter if the lock is already held
+        *
         * @throws LocalFileLockError Throws an error if the lock was not acquired
         * @return bool Whether the file lock owns/spawned the DB transaction
         */
        function lock() {
                if ( !$this->locked ) {
+                       $logger = LoggerFactory::getInstance( 'LocalFile' );
+
                        $dbw = $this->repo->getMasterDB();
-                       if ( !$dbw->trxLevel() ) {
-                               $dbw->begin( __METHOD__ );
-                               $this->lockedOwnTrx = true;
-                       }
+                       $makesTransaction = !$dbw->trxLevel();
+                       $dbw->startAtomic( self::ATOMIC_SECTION_LOCK );
                        // Bug 54736: use simple lock to handle when the file does not exist.
                        // SELECT FOR UPDATE prevents changes, not other SELECTs with FOR UPDATE.
                        // Also, that would cause contention on INSERT of similarly named rows.
                        $backend = $this->getRepo()->getBackend();
                        $lockPaths = [ $this->getPath() ]; // represents all versions of the file
-                       $start = microtime( true );
                        $status = $backend->lockFiles( $lockPaths, LockManager::LOCK_EX, 10 );
-                       $waited = microtime( true ) - $start;
                        if ( !$status->isGood() ) {
-                               if ( $this->lockedOwnTrx ) {
-                                       $dbw->rollback( __METHOD__ );
-                               }
-                               throw new LocalFileLockError(
-                                       "Could not acquire lock for '{$this->getName()}' ($waited sec): " .
-                                       $status->getWikiText( false, false, 'en' )
-                               );
+                               $dbw->endAtomic( self::ATOMIC_SECTION_LOCK );
+                               $logger->warning( "Failed to lock '{file}'", [ 'file' => $this->name ] );
+
+                               throw new LocalFileLockError( $status );
                        }
-                       // Release the lock *after* commit to avoid row-level contention
-                       $this->locked++;
-                       $dbw->onTransactionIdle( function () use ( $backend, $lockPaths ) {
-                               $backend->unlockFiles( $lockPaths, LockManager::LOCK_EX );
+                       // Release the lock *after* commit to avoid row-level contention.
+                       // Make sure it triggers on rollback() as well as commit() (T132921).
+                       $dbw->onTransactionResolution( function () use ( $backend, $lockPaths, $logger ) {
+                               $status = $backend->unlockFiles( $lockPaths, LockManager::LOCK_EX );
+                               if ( !$status->isGood() ) {
+                                       $logger->error( "Failed to unlock '{file}'", [ 'file' => $this->name ] );
+                               }
                        } );
+                       // Callers might care if the SELECT snapshot is safely fresh
+                       $this->lockedOwnTrx = $makesTransaction;
                }
 
+               $this->locked++;
+
                return $this->lockedOwnTrx;
        }
 
        /**
-        * Decrement the lock reference count. If the reference count is reduced to zero, commits
-        * the transaction and thereby releases the image lock.
+        * Decrement the lock reference count and end the atomic section if it reaches zero
+        *
+        * The commit and loc release will happen when no atomic sections are active, which
+        * may happen immediately or at some point after calling this
         */
        function unlock() {
                if ( $this->locked ) {
                        --$this->locked;
-                       if ( !$this->locked && $this->lockedOwnTrx ) {
+                       if ( !$this->locked ) {
                                $dbw = $this->repo->getMasterDB();
-                               $dbw->commit( __METHOD__ );
+                               $dbw->endAtomic( self::ATOMIC_SECTION_LOCK );
                                $this->lockedOwnTrx = false;
                        }
                }
@@ -3047,6 +3056,17 @@ class LocalFileMoveBatch {
        }
 }
 
-class LocalFileLockError extends Exception {
+class LocalFileLockError extends ErrorPageError {
+       public function __construct( Status $status ) {
+               parent::__construct(
+                       'actionfailed',
+                       $status->getMessage()
+               );
+       }
 
+       public function report() {
+               global $wgOut;
+               $wgOut->setStatusCode( 429 );
+               parent::report();
+       }
 }
index c8a25f0..6884f65 100644 (file)
@@ -113,6 +113,7 @@ abstract class ImageGalleryBase extends ContextSource {
                                'packed' => 'PackedImageGallery',
                                'packed-hover' => 'PackedHoverImageGallery',
                                'packed-overlay' => 'PackedOverlayImageGallery',
+                               'slideshow' => 'SlideshowImageGallery',
                        ];
                        // Allow extensions to make a new gallery format.
                        Hooks::run( 'GalleryGetModes', [ &self::$modeMapping ] );
diff --git a/includes/gallery/SlideshowImageGallery.php b/includes/gallery/SlideshowImageGallery.php
new file mode 100644 (file)
index 0000000..3f0c932
--- /dev/null
@@ -0,0 +1,37 @@
+<?php
+/**
+ * A slideshow gallery shows one image at a time with controls to move around.
+ *
+ * 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
+ */
+
+class SlideshowImageGallery extends TraditionalImageGallery {
+       function __construct( $mode = 'traditional', IContextSource $context = null ) {
+               parent::__construct( $mode, $context );
+               // Does not support per row option.
+               $this->mPerRow = 0;
+       }
+
+       /**
+        * Add javascript adds interface elements
+        * @return array
+        */
+       protected function getModules() {
+               return [ 'mediawiki.page.gallery.slideshow' ];
+       }
+}
index e891c9c..8ac4cf2 100644 (file)
@@ -169,6 +169,8 @@ class HTMLForm extends ContextSource {
        protected $mShowReset = false;
        protected $mShowSubmit = true;
        protected $mSubmitFlags = [ 'constructive', 'primary' ];
+       protected $mShowCancel = false;
+       protected $mCancelTarget;
 
        protected $mSubmitCallback;
        protected $mValidationErrorMessage;
@@ -894,6 +896,7 @@ class HTMLForm extends ContextSource {
         *  - id: (string, optional) DOM id for the button.
         *  - attribs: (array, optional) Additional HTML attributes.
         *  - flags: (string|string[], optional) OOUI flags.
+        *  - framed: (boolean=true, optional) OOUI framed attribute.
         * @return HTMLForm $this for chaining calls (since 1.20)
         */
        public function addButton( $data ) {
@@ -922,6 +925,7 @@ class HTMLForm extends ContextSource {
                        'id' => null,
                        'attribs' => null,
                        'flags' => null,
+                       'framed' => true,
                ];
 
                return $this;
@@ -1106,6 +1110,21 @@ class HTMLForm extends ContextSource {
                        ) . "\n";
                }
 
+               if ( $this->mShowCancel ) {
+                       $target = $this->mCancelTarget ?: Title::newMainPage();
+                       if ( $target instanceof Title ) {
+                               $target = $target->getLocalURL();
+                       }
+                       $buttons .= Html::element(
+                                       'a',
+                                       [
+                                               'class' => $useMediaWikiUIEverywhere ? 'mw-ui-button' : null,
+                                               'href' => $target,
+                                       ],
+                                       $this->msg( 'cancel' )->text()
+                               ) . "\n";
+               }
+
                // IE<8 has bugs with <button>, so we'll need to avoid them.
                $isBadIE = preg_match( '/MSIE [1-7]\./i', $this->getRequest()->getHeader( 'User-Agent' ) );
 
@@ -1324,6 +1343,28 @@ class HTMLForm extends ContextSource {
                return $this;
        }
 
+       /**
+        * Show a cancel button (or prevent it). The button is not shown by default.
+        * @param bool $show
+        * @return HTMLForm $this for chaining calls
+        * @since 1.27
+        */
+       public function showCancel( $show = true ) {
+               $this->mShowCancel = $show;
+               return $this;
+       }
+
+       /**
+        * Sets the target where the user is redirected to after clicking cancel.
+        * @param Title|string $target Target as a Title object or an URL
+        * @return HTMLForm $this for chaining calls
+        * @since 1.27
+        */
+       public function setCancelTarget( $target ) {
+               $this->mCancelTarget = $target;
+               return $this;
+       }
+
        /**
         * Set the id of the \<table\> or outermost \<div\> element.
         *
index 1aaa3e8..23125bd 100644 (file)
@@ -65,21 +65,7 @@ class HTMLMultiSelectField extends HTMLFormField implements HTMLNestedFilterable
 
        protected function getOneCheckbox( $checked, $attribs, $label ) {
                if ( $this->mParent instanceof OOUIHTMLForm ) {
-                       if ( $this->mOptionsLabelsNotFromMessage ) {
-                               $label = new OOUI\HtmlSnippet( $label );
-                       }
-                       return new OOUI\FieldLayout(
-                               new OOUI\CheckboxInputWidget( [
-                                       'name' => "{$this->mName}[]",
-                                       'selected' => $checked,
-                               ] + OOUI\Element::configFromHtmlAttributes(
-                                       $attribs
-                               ) ),
-                               [
-                                       'label' => $label,
-                                       'align' => 'inline',
-                               ]
-                       );
+                       throw new MWException( 'HTMLMultiSelectField#getOneCheckbox() is not supported' );
                } else {
                        $elementFunc = [ 'Html', $this->mOptionsLabelsNotFromMessage ? 'rawElement' : 'element' ];
                        $checkbox =
@@ -99,6 +85,38 @@ class HTMLMultiSelectField extends HTMLFormField implements HTMLNestedFilterable
                }
        }
 
+       /**
+        * Get the OOUI version of this field.
+        *
+        * @since 1.28
+        * @param string[] $value
+        * @return OOUI\CheckboxMultiselectInputWidget
+        */
+       public function getInputOOUI( $value ) {
+               $attr = $this->getTooltipAndAccessKey();
+               $attr['id'] = $this->mID;
+               $attr['name'] = "{$this->mName}[]";
+
+               $attr['value'] = $value;
+               $attr['options'] = $this->getOptionsOOUI();
+
+               if ( $this->mOptionsLabelsNotFromMessage ) {
+                       foreach ( $attr['options'] as &$option ) {
+                               $option['label'] = new OOUI\HtmlSnippet( $option['label'] );
+                       }
+               }
+
+               $attr += OOUI\Element::configFromHtmlAttributes(
+                       $this->getAttributes( [ 'disabled', 'tabindex' ] )
+               );
+
+               if ( $this->mClass !== '' ) {
+                       $attr['classes'] = [ $this->mClass ];
+               }
+
+               return new OOUI\CheckboxMultiselectInputWidget( $attr );
+       }
+
        /**
         * @param WebRequest $request
         *
index 12a8a1f..e5b5e68 100644 (file)
@@ -52,13 +52,14 @@ class HTMLRadioField extends HTMLFormField {
                        'id' => $this->mID,
                        'value' => $value,
                        'options' => $options,
-                       'classes' => 'mw-htmlform-flatlist-item',
                ] + OOUI\Element::configFromHtmlAttributes(
                        $this->getAttributes( [ 'disabled', 'tabindex' ] )
                ) );
        }
 
        function formatOptions( $options, $value ) {
+               global $wgUseMediaWikiUIEverywhere;
+
                $html = '';
 
                $attribs = $this->getAttributes( [ 'disabled', 'tabindex' ] );
@@ -71,12 +72,16 @@ class HTMLRadioField extends HTMLFormField {
                                $html .= $this->formatOptions( $info, $value );
                        } else {
                                $id = Sanitizer::escapeId( $this->mID . "-$info" );
+                               $classes = [ 'mw-htmlform-flatlist-item' ];
+                               if ( $wgUseMediaWikiUIEverywhere || $this->mParent instanceof VFormHTMLForm ) {
+                                       $classes[] = 'mw-ui-radio';
+                               }
                                $radio = Xml::radio( $this->mName, $info, $info === $value, $attribs + [ 'id' => $id ] );
                                $radio .= '&#160;' . call_user_func( $elementFunc, 'label', [ 'for' => $id ], $label );
 
                                $html .= ' ' . Html::rawElement(
                                        'div',
-                                       [ 'class' => 'mw-htmlform-flatlist-item mw-ui-radio' ],
+                                       [ 'class' => $classes ],
                                        $radio
                                );
                        }
index 24b15bd..5225983 100644 (file)
@@ -3,7 +3,7 @@
  * Creates a Html::namespaceSelector input field with a button assigned to the input field.
  */
 class HTMLSelectNamespaceWithButton extends HTMLSelectNamespace {
-       /** @var HTMLFormClassWithButton $mClassWithButton */
+       /** @var HTMLFormFieldWithButton $mClassWithButton */
        protected $mClassWithButton = null;
 
        public function __construct( $info ) {
index c6dac32..7c1c673 100644 (file)
@@ -3,7 +3,7 @@
  * Creates a text input field with a button assigned to the input field.
  */
 class HTMLTextFieldWithButton extends HTMLTextField {
-       /** @var HTMLFormClassWithButton $mClassWithButton */
+       /** @var HTMLFormFieldWithButton $mClassWithButton */
        protected $mClassWithButton = null;
 
        public function __construct( $info ) {
index 711750b..0b22727 100644 (file)
@@ -86,6 +86,17 @@ class OOUIHTMLForm extends HTMLForm {
                        ] );
                }
 
+               if ( $this->mShowCancel ) {
+                       $target = $this->mCancelTarget ?: Title::newMainPage();
+                       if ( $target instanceof Title ) {
+                               $target = $target->getLocalURL();
+                       }
+                       $buttons .= new OOUI\ButtonWidget( [
+                               'label' => $this->msg( 'cancel' )->text(),
+                               'href' => $target,
+                       ] );
+               }
+
                foreach ( $this->mButtons as $button ) {
                        $attrs = [];
 
@@ -117,6 +128,7 @@ class OOUIHTMLForm extends HTMLForm {
                                'value' => $button['value'],
                                'label' => $label,
                                'flags' => $button['flags'],
+                               'framed' => $button['framed'],
                                'useInputTag' => $isBadIE,
                        ] + $attrs );
                }
index f3cba48..c920ac3 100644 (file)
@@ -116,6 +116,21 @@ class VFormHTMLForm extends HTMLForm {
                        ) . "\n";
                }
 
+               if ( $this->mShowCancel ) {
+                       $target = $this->mCancelTarget ?: Title::newMainPage();
+                       if ( $target instanceof Title ) {
+                               $target = $target->getLocalURL();
+                       }
+                       $buttons .= Html::element(
+                                       'a',
+                                       [
+                                               'class' => 'mw-ui-button mw-ui-big mw-ui-block',
+                                               'href' => $target,
+                                       ],
+                                       $this->msg( 'cancel' )->text()
+                               ) . "\n";
+               }
+
                foreach ( $this->mButtons as $button ) {
                        $attrs = [
                                'type' => 'submit',
index 85b1013..4d5aa7a 100644 (file)
@@ -2,6 +2,9 @@
 /**
  * Base code for MediaWiki installer.
  *
+ * DO NOT PATCH THIS FILE IF YOU NEED TO CHANGE INSTALLER BEHAVIOR IN YOUR PACKAGE!
+ * See mw-config/overrides/README for details.
+ *
  * 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
@@ -118,8 +121,6 @@ abstract class Installer {
        protected $envChecks = [
                'envCheckDB',
                'envCheckBrokenXML',
-               'envCheckMbstring',
-               'envCheckXML',
                'envCheckPCRE',
                'envCheckMemory',
                'envCheckCache',
@@ -133,9 +134,6 @@ abstract class Installer {
                'envCheckUploadsDirectory',
                'envCheckLibicu',
                'envCheckSuhosinMaxValueLength',
-               'envCheckCtype',
-               'envCheckIconv',
-               'envCheckJSON',
        ];
 
        /**
@@ -788,40 +786,6 @@ abstract class Installer {
                return true;
        }
 
-       /**
-        * Environment check for mbstring.func_overload.
-        * @return bool
-        */
-       protected function envCheckMbstring() {
-               if ( wfIniGetBool( 'mbstring.func_overload' ) ) {
-                       $this->showError( 'config-mbstring' );
-
-                       return false;
-               }
-
-               if ( !function_exists( 'mb_substr' ) ) {
-                       $this->showError( 'config-mbstring-absent' );
-
-                       return false;
-               }
-
-               return true;
-       }
-
-       /**
-        * Environment check for the XML module.
-        * @return bool
-        */
-       protected function envCheckXML() {
-               if ( !function_exists( "utf8_encode" ) ) {
-                       $this->showError( 'config-xml-bad' );
-
-                       return false;
-               }
-
-               return true;
-       }
-
        /**
         * Environment check for the PCRE module.
         *
@@ -1174,45 +1138,6 @@ abstract class Installer {
                }
        }
 
-       /**
-        * @return bool
-        */
-       protected function envCheckCtype() {
-               if ( !function_exists( 'ctype_digit' ) ) {
-                       $this->showError( 'config-ctype' );
-
-                       return false;
-               }
-
-               return true;
-       }
-
-       /**
-        * @return bool
-        */
-       protected function envCheckIconv() {
-               if ( !function_exists( 'iconv' ) ) {
-                       $this->showError( 'config-iconv' );
-
-                       return false;
-               }
-
-               return true;
-       }
-
-       /**
-        * @return bool
-        */
-       protected function envCheckJSON() {
-               if ( !function_exists( 'json_decode' ) ) {
-                       $this->showError( 'config-json' );
-
-                       return false;
-               }
-
-               return true;
-       }
-
        /**
         * Environment prep for the server hostname.
         */
@@ -1279,7 +1204,7 @@ abstract class Installer {
                        $command = $path . DIRECTORY_SEPARATOR . $name;
 
                        MediaWiki\suppressWarnings();
-                       $file_exists = file_exists( $command );
+                       $file_exists = is_executable( $command );
                        MediaWiki\restoreWarnings();
 
                        if ( $file_exists ) {
diff --git a/includes/installer/InstallerOverrides.php b/includes/installer/InstallerOverrides.php
new file mode 100644 (file)
index 0000000..eba3a20
--- /dev/null
@@ -0,0 +1,76 @@
+<?php
+/**
+ * MediaWiki installer overrides. See mw-config/overrides/README for details.
+ *
+ * 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
+ */
+
+/**
+ * @since 1.20
+ */
+class InstallerOverrides {
+       private static function getOverrides() {
+               global $IP;
+               static $overrides;
+
+               if ( !$overrides ) {
+                       $overrides = [
+                               'LocalSettingsGenerator' => 'LocalSettingsGenerator',
+                               'WebInstaller' => 'WebInstaller',
+                               'CliInstaller' => 'CliInstaller',
+                       ];
+                       foreach ( glob( "$IP/mw-config/overrides/*.php" ) as $file ) {
+                               require $file;
+                       }
+               }
+
+               return $overrides;
+       }
+
+       /**
+        * Instantiates and returns an instance of LocalSettingsGenerator or its descendant classes
+        * @param Installer $installer
+        * @return LocalSettingsGenerator
+        */
+       public static function getLocalSettingsGenerator( Installer $installer ) {
+               $className = self::getOverrides()['LocalSettingsGenerator'];
+               return new $className( $installer );
+       }
+
+       /**
+        * Instantiates and returns an instance of WebInstaller or its descendant classes
+        * @param WebRequest $request
+        * @return WebInstaller
+        */
+       public static function getWebInstaller( WebRequest $request ) {
+               $className = self::getOverrides()['WebInstaller'];
+               return new $className( $request );
+       }
+
+       /**
+        * Instantiates and returns an instance of CliInstaller or its descendant classes
+        * @param string $siteName
+        * @param string|null $admin
+        * @param array $options
+        * @return CliInstaller
+        */
+       public static function getCliInstaller( $siteName, $admin = null, array $options = [] ) {
+               $className = self::getOverrides()['CliInstaller'];
+               return new $className( $siteName, $admin, $options );
+       }
+}
index 4c4e6b7..c08212e 100644 (file)
@@ -1156,6 +1156,20 @@ class WebInstaller extends Installer {
                return Html::rawElement( 'div', [ 'class' => 'config-download-link' ], $anchor );
        }
 
+       /**
+        * If the software package wants the LocalSettings.php file
+        * to be placed in a specific location, override this function
+        * (see mw-config/overrides/README) to return the path of
+        * where the file should be saved, or false for a generic
+        * "in the base of your install"
+        *
+        * @since 1.27
+        * @return string|bool
+        */
+       public function getLocalSettingsLocation() {
+               return false;
+       }
+
        /**
         * @return bool
         */
index 11a1833..456058e 100644 (file)
@@ -37,13 +37,20 @@ class WebInstallerComplete extends WebInstallerPage {
 
                $this->startForm();
                $this->parent->disableLinkPopups();
+               $location = $this->parent->getLocalSettingsLocation();
+               $msg = 'config-install-done';
+               if ( $location !== false ) {
+                       // config-install-done-path
+                       $msg .= '-path';
+               }
                $this->addHTML(
                        $this->parent->getInfoBox(
-                               wfMessage( 'config-install-done',
+                               wfMessage( $msg,
                                        $lsUrl,
                                        $this->getVar( 'wgServer' ) .
                                        $this->getVar( 'wgScriptPath' ) . '/index.php',
-                                       '<downloadlink/>'
+                                       '<downloadlink/>',
+                                       $location ?: ''
                                )->plain(), 'tick-32.png'
                        )
                );
index 9240982..6b33793 100644 (file)
@@ -34,7 +34,7 @@
        "config-page-upgradedoc": "Besig met opgradering",
        "config-page-existingwiki": "Bestaande wiki",
        "config-restart": "Ja, herbegin dit",
-       "config-sidebar": "* [//www.mediawiki.org MediaWiki tuisblad]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Gebruikershandleiding] (Engelstalig)\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Administrateurshandleiding] (Engelstalig)\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Algemene vrae] (Engelstalig)\n----\n* <doclink href=Readme>Lees my</doclink>\n* <doclink href=ReleaseNotes>Vrystellingsnotas</doclink>\n* <doclink href=Copying>Kopiëring</doclink>\n* <doclink href=UpgradeDoc>Opgradering</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org MediaWiki tuisblad]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Gebruikershandleiding] (Engelstalig)\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Administrateurshandleiding] (Engelstalig)\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Algemene vrae] (Engelstalig)\n----\n* <doclink href=Readme>Lees my</doclink>\n* <doclink href=ReleaseNotes>Vrystellingsnotas</doclink>\n* <doclink href=Copying>Kopiëring</doclink>\n* <doclink href=UpgradeDoc>Opgradering</doclink>",
        "config-env-good": "Die omgewing is gekontroleer.\nU kan MediaWiki installeer.",
        "config-env-bad": "Die omgewing is gekontroleer.\nU kan nie MediaWiki installeer nie.</span>",
        "config-env-php": "PHP $1 is tans geïnstalleer.",
@@ -55,9 +55,6 @@
        "config-db-username": "Databasis gebruikersnaam:",
        "config-db-password": "Databasis wagwoord:",
        "config-db-prefix": "Voorvoegsel vir databasistabelle:",
-       "config-db-charset": "Karakterstelsel vir databasis",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 binêr",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
        "config-mysql-old": "U moet MySQL $1 of later gebruik.\nU gebruik tans $2.",
        "config-db-port": "Databasispoort:",
        "config-db-schema": "Skema vir MediaWiki",
        "config-download-localsettings": "Laai <code>LocalSettings.php</code> af",
        "config-help": "hulp",
        "mainpagetext": "'''MediaWiki is suksesvol geïnstalleer.'''",
-       "mainpagedocfooter": "Konsulteer '''[//meta.wikimedia.org/wiki/Help:Contents User's Guide]''' vir inligting oor hoe om die wikisagteware te gebruik.\n\n== Hoe om te Begin ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
+       "mainpagedocfooter": "Konsulteer '''[https://meta.wikimedia.org/wiki/Help:Contents User's Guide]''' vir inligting oor hoe om die wikisagteware te gebruik.\n\n== Hoe om te Begin ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
 }
index 48784bf..680e8ff 100644 (file)
@@ -5,5 +5,5 @@
                ]
        },
        "mainpagetext": "'''MediaWiki software u instalue me sukses.'''",
-       "mainpagedocfooter": "Për mâ shumë informata rreth përdorimit të softwareit wiki, ju lutem shikoni [//meta.wikimedia.org/wiki/Help:Contents dokumentacionin].\n\n\n== Për fillim ==\n\n* [//www.mediawiki.org/wiki/Help:Configuration_settings Konfigurimi i MediaWikit]\n* [//www.mediawiki.org/wiki/Help:FAQ Pyetjet e shpeshta rreth MediaWikit]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Njoftime rreth MediaWikit]"
+       "mainpagedocfooter": "Për mâ shumë informata rreth përdorimit të softwareit wiki, ju lutem shikoni [https://meta.wikimedia.org/wiki/Help:Contents dokumentacionin].\n\n\n== Për fillim ==\n\n* [https://www.mediawiki.org/wiki/Help:Configuration_settings Konfigurimi i MediaWikit]\n* [https://www.mediawiki.org/wiki/Help:FAQ Pyetjet e shpeshta rreth MediaWikit]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Njoftime rreth MediaWikit]"
 }
index 613778e..f539f56 100644 (file)
@@ -1,5 +1,5 @@
 {
        "@metadata": [],
        "mainpagetext": "'''MediaWiki በትክክል ማስገባቱ ተከናወነ።'''",
-       "mainpagedocfooter": "ስለ ዊኪ ሶፍትዌር ጥቅም ለመረዳት፣ [//meta.wikimedia.org/wiki/Help:Contents User's Guide] ያንብቡ።\n\n== ለመጀመር ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
+       "mainpagedocfooter": "ስለ ዊኪ ሶፍትዌር ጥቅም ለመረዳት፣ [https://meta.wikimedia.org/wiki/Help:Contents User's Guide] ያንብቡ።\n\n== ለመጀመር ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
 }
index 6f2642d..67da0cb 100644 (file)
@@ -5,5 +5,5 @@
                ]
        },
        "mainpagetext": "'''O programa MediaWiki s'ha instalato correctament.'''",
-       "mainpagedocfooter": "Consulta a [//meta.wikimedia.org/wiki/Help:Contents Guía d'usuario] ta mirar información sobre cómo usar o software wiki.\n\n== Ta prencipiar ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista de caracteristicas confegurables]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Preguntas cutianas sobre MediaWiki (FAQ)]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de correu sobre ta anuncios de MediaWiki]"
+       "mainpagedocfooter": "Consulta a [https://meta.wikimedia.org/wiki/Help:Contents Guía d'usuario] ta mirar información sobre cómo usar o software wiki.\n\n== Ta prencipiar ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista de caracteristicas confegurables]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Preguntas cutianas sobre MediaWiki (FAQ)]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de correu sobre ta anuncios de MediaWiki]"
 }
index 82cf370..94d41e0 100644 (file)
@@ -5,5 +5,5 @@
                ]
        },
        "mainpagetext": "'''MediaWiki hafaþ geworden spēdige inseted.'''",
-       "mainpagedocfooter": "Þeahta þone [//meta.wikimedia.org/wiki/Help:Contents Brūcenda Lǣdend]  on helpe mid þǣre nytte of ƿikisōftƿare.\n\n== Beȝinnunȝ ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Onfæstnunȝa ȝesetednessa ȝetæl]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Ȝetæl oft ascodra ascunȝa ymb MediaǷiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Ǣrendunȝȝetæl nīƿra MediaǷiki forþsendnessa]"
+       "mainpagedocfooter": "Þeahta þone [https://meta.wikimedia.org/wiki/Help:Contents Brūcenda Lǣdend]  on helpe mid þǣre nytte of ƿikisōftƿare.\n\n== Beȝinnunȝ ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Onfæstnunȝa ȝesetednessa ȝetæl]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Ȝetæl oft ascodra ascunȝa ymb MediaǷiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Ǣrendunȝȝetæl nīƿra MediaǷiki forþsendnessa]"
 }
index 4d16d45..239ad7e 100644 (file)
@@ -20,7 +20,7 @@
        "config-localsettings-badkey": "مفتاح الترقية الذي قدمته غير صحيح.",
        "config-upgrade-key-missing": "تنصيب موجود للميدياويكي قد تم اكتشافه.\nلترقية هذا التنصيب، الرجاء وضع السطر أسفل <code>LocalSettings.php</code> الخاصة بك:\n\n$1",
        "config-localsettings-incomplete": "صفحة <code>LocalSettings.php</code> يبدو أنها ناقصة.\nالمتغير $1 لم يتم تعيينه.\nالرجاء تغيير <code>LocalSettings.php</code> لكي يتم تعيين المتغير، ثم اضغط على \"{{int:Config-continue}}\".",
-       "config-localsettings-connection-error": "تمت مصادفة خطأ أثناء الاتصال بقاعدة البيانات باستخدام الإعدادات المحددة في <code>LocalSettings.php</code> أو <code>AdminSettings.php</code>. الرجاء إصلاح هذه الإعدادات وحاول مجددًا.\n\n$1",
+       "config-localsettings-connection-error": "تمت مصادفة خطأ أثناء الاتصال بقاعدة البيانات باستخدام الإعدادات المحددة في <code>LocalSettings.php</code> أو <code>LocalSettings.php</code>. الرجاء إصلاح هذه الإعدادات وحاول مجددًا.\n\n$1",
        "config-session-error": "خطأ في بدء الجلسة: $1",
        "config-session-expired": "يبدو أن بيانات جلستك قد انتهت صلاحيتها.\nالجلسات مكونة مدى الحياة من $1.\nيمكنك زيادة هذه بتعيين <code>session.gc_maxlifetime</code> في php.ini.\nأعد تشغيل عميل التثبيت.",
        "config-no-session": "بيانات جلستك قد ضاعت!\nتحقق من php.ini للتأكد أن <code>session.save_path</code> تم تعيينه كدليل مناسب.",
@@ -60,7 +60,6 @@
        "config-db-username": "اسم مستخدم قاعدة البيانات:",
        "config-db-password": "كلمة سر قاعدة البيانات:",
        "config-db-prefix": "بادئة جدول قاعدة البيانات:",
-       "config-db-charset": "مجموعة محارف قاعدة البيانات",
        "config-db-port": "منفذ قاعدة البيانات:",
        "config-db-schema": "سكيما لميدياويكي",
        "config-type-mysql": "MySQL (أو متوافق)",
        "config-help-tooltip": "اضغط للتوسيع",
        "config-nofile": "لا يمكن العثور على الملف \"$1\". هل حُذف؟",
        "mainpagetext": "<strong>تم تثبيت ميدياويكي بنجاح.</strong>",
-       "mainpagedocfooter": "استشر [//meta.wikimedia.org/wiki/Help:Contents دليل المستخدم] لمعلومات حول استخدام برنامج الويكي.\n\n== البداية ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings قائمة إعدادات الضبط]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ أسئلة متكررة حول ميدياويكي]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce القائمة البريدية الخاصة بإصدار ميدياويكي]"
+       "mainpagedocfooter": "استشر [https://meta.wikimedia.org/wiki/Help:Contents دليل المستخدم] لمعلومات حول استخدام برنامج الويكي.\n\n== البداية ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings قائمة إعدادات الضبط]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ أسئلة متكررة حول ميدياويكي]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce القائمة البريدية الخاصة بإصدار ميدياويكي]"
 }
index 48aa2d6..660c470 100644 (file)
@@ -6,5 +6,5 @@
                ]
        },
        "mainpagetext": "'''MediaWiki ṫ'instala be najaḫ.'''",
-       "mainpagedocfooter": "Ila bġiṫiw meĝlomaṫ ĥrin baċ ṫesṫeĝmlo had l-lojisyél siro ċofo [//meta.wikimedia.org/wiki/Help:Contents/fr Gid dyal l-mosṫeĥdim]\n\n== L-bdaya mĝa MediaWiki ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista dyal l-paramétraṫ dyal l-konfigurasyon]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/fr FAQ fe MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista dyal l-modakaraṫ ĝla versyonaṫ jdad dyal MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
+       "mainpagedocfooter": "Ila bġiṫiw meĝlomaṫ ĥrin baċ ṫesṫeĝmlo had l-lojisyél siro ċofo [https://meta.wikimedia.org/wiki/Help:Contents/fr Gid dyal l-mosṫeĥdim]\n\n== L-bdaya mĝa MediaWiki ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista dyal l-paramétraṫ dyal l-konfigurasyon]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/fr FAQ fe MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista dyal l-modakaraṫ ĝla versyonaṫ jdad dyal MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
 }
index b6815b4..4c34ee8 100644 (file)
@@ -14,5 +14,5 @@
        "config-page-name": "الاسم:",
        "config-page-install": "تركيب",
        "mainpagetext": "''' ميدياويكى اتنزلت بنجاح.'''",
-       "mainpagedocfooter": "اسال [//meta.wikimedia.org/wiki/Help:Contents دليل اليوزر] للمعلومات حوالين استخدام برنامج الويكى.\n\n== البداية ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings لستة اعدادات الضبط]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ أسئلة بتكرر حوالين الميدياويكى]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce لستة الايميلات بتاعة اعلانات الميدياويكى]"
+       "mainpagedocfooter": "اسال [https://meta.wikimedia.org/wiki/Help:Contents دليل اليوزر] للمعلومات حوالين استخدام برنامج الويكى.\n\n== البداية ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings لستة اعدادات الضبط]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ أسئلة بتكرر حوالين الميدياويكى]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce لستة الايميلات بتاعة اعلانات الميدياويكى]"
 }
index 142bdc8..312cf4e 100644 (file)
@@ -6,5 +6,5 @@
                ]
        },
        "mainpagetext": "'''মিডিয়াৱিকি সফলভাবে ইন্সটল কৰা হ'ল ।'''",
-       "mainpagedocfooter": "ৱিকি চ'ফটৱেৰ কেনেকৈ ব্যৱহাৰ কৰিব [//meta.wikimedia.org/wiki/Help:Contents সদস্যৰ সহায়িকা] চাওঁক ।\n\n== আৰম্ভণি কৰিবলৈ ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
+       "mainpagedocfooter": "ৱিকি চ'ফটৱেৰ কেনেকৈ ব্যৱহাৰ কৰিব [https://meta.wikimedia.org/wiki/Help:Contents সদস্যৰ সহায়িকা] চাওঁক ।\n\n== আৰম্ভণি কৰিবলৈ ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
 }
index 8651c15..ea96cfe 100644 (file)
        "config-restart": "Sí, reanicialu",
        "config-welcome": "=== Comprobaciones del entornu ===\nAgora van facese unes comprobaciones básiques para ver si l'entornu ye afayadizu pa la instalación de MediaWiki.\nAlcuérdese d'incluir esta información si necesita encontu pa completar la instalación.",
        "config-copyright": "=== Drechos d'autor y condiciones d'usu ===\n\n$1\n\nEsti programa ye software llibre; pue redistribuilu y/o camudalu baxo les condiciones de la llicencia pública xeneral GNU tal como la publica la Free Software Foundation; versión 2 o (como prefiera) cualquier versión posterior.\n\nEsti programa distribúise cola esperanza de que pueda ser útil, pero '''ensin garantía denguna'''; nin siquiera la garantía implícita de '''comercialidá''' o '''adautación a un fin determináu'''.\nVea la Llicencia pública xeneral GNU pa más detalles.\n\nHabría de tener recibío <doclink href=Copying>una copia de la llicencia pública xeneral GNU</doclink> xunto con esti programa; sinón, escriba a la Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA, o [http://www.gnu.org/copyleft/gpl.html lléala en llinia].",
-       "config-sidebar": "* [//www.mediawiki.org/wiki/MediaWiki/gl Páxina principal de MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Guía del usuariu]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Guía del alministrador]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Entrugues frecuentes]\n----\n* <doclink href=Readme>Lléame</doclink>\n* <doclink href=ReleaseNotes>Notes de llanzamientu</doclink>\n* <doclink href=Copying>Copia</doclink>\n* <doclink href=UpgradeDoc>Anovamientu</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org/wiki/MediaWiki/gl Páxina principal de MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Guía del usuariu]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Guía del alministrador]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Entrugues frecuentes]\n----\n* <doclink href=Readme>Lléame</doclink>\n* <doclink href=ReleaseNotes>Notes de llanzamientu</doclink>\n* <doclink href=Copying>Copia</doclink>\n* <doclink href=UpgradeDoc>Anovamientu</doclink>",
        "config-env-good": "Comprobóse l'entornu.\nPue instalar MediaWiki.",
        "config-env-bad": "Comprobóse l'entornu.\nNun pue instalar MediaWiki.",
        "config-env-php": "PHP $1 ta instaláu.",
        "config-env-hhvm": "HHVM $1 ta instaláu.",
        "config-unicode-using-intl": "Usando la [http://pecl.php.net/intl estensión intl PECL] pa la normalización Unicode.",
-       "config-unicode-pure-php-warning": "'''Avisu:''' La [http://pecl.php.net/intl estensión intl PECL] nun ta disponible pa xestionar la normalización Unicode; volviendo a la implementación lenta en PHP puru.\nSi xestiona un sitiu con un tráficu altu, tendría de lleer una migaya sobro la [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalización Unicode].",
-       "config-unicode-update-warning": "'''Avisu:''' La versión instalada del envoltoriu de normalización Unicode usa una versión antigua de la biblioteca [http://site.icu-project.org/ de los proyeutos ICU].\nTendría [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations d'anovala] si ye importante pa vusté usar Unicode.",
+       "config-unicode-pure-php-warning": "'''Avisu:''' La [http://pecl.php.net/intl estensión intl PECL] nun ta disponible pa xestionar la normalización Unicode; volviendo a la implementación lenta en PHP puru.\nSi xestiona un sitiu con un tráficu altu, tendría de lleer una migaya sobro la [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalización Unicode].",
+       "config-unicode-update-warning": "'''Avisu:''' La versión instalada del envoltoriu de normalización Unicode usa una versión antigua de la biblioteca [http://site.icu-project.org/ de los proyeutos ICU].\nTendría [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations d'anovala] si ye importante pa vusté usar Unicode.",
        "config-no-db": "¡Nun pudo alcontrase un controlador de base de datos afayadizu! Necesites instalar un controlador de base de datos pa PHP.\n{{PLURAL:$2|Tien sofitu el tipu de base de datos siguiente|Tienen sofitu los tipos de base de datos siguientes}}: $1.\n\nSi compilasti PHP tu mesmu, reconfigúralu con un cliente de base de datos activáu, por exemplu, usando <code>./configure --with-mysqli</code>.\nSi instalasti PHP dende un paquete de Debian o Ubuntu, necesites instalar tamién,por exemplu, el paquete <code>php5-mysql</code>.",
        "config-outdated-sqlite": "'''Avisu:''' tien SQLite $1, que ye inferior a la versión mínima necesaria $2. SQLite nun tará disponible.",
        "config-no-fts3": "'''Avisu:''' SQLite ta compiláu ensin el [//sqlite.org/fts3.html módulu FTS3]; les funciones de gueta nun tarán disponibles nesti sistema.",
-       "config-mbstring": "<strong>Fatal: ¡[@http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] ta activáu!</strong>\nEsta opción causa errores y pué corromper los datos de mou imprevisible.\nNun puedes instalar o utilizar MediaWiki nun siendo que esta opción tea desactivada.",
-       "config-xml-bad": "Falta'l módulu XML de PHP.\nMediaWiki rique funciones d'esti módulu y nun va funcionar con esta configuración.\nSeique precises instalar el paquete RPM llamáu php-xml.",
        "config-pcre-old": "<strong>Fatal:</strong> Ríquese PCRE $1 o posterior.\nEl binariu de PHP ta enllazáu con PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Más información].",
        "config-apc": "[http://www.php.net/apc APC] ta instaláu",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] ta instaláu",
@@ -69,7 +67,6 @@
        "config-db-username": "Nome d'usuariu de base de datos:",
        "config-db-password": "Contraseña de base de datos:",
        "config-db-install-username": "Introduz un nome d'usuariu que s'usará pa coneutase cola base de datos nel procesu d'instalación. Esti nun ye'l nome d'usuariu de la cuenta MediaWiki, ye'l nome d'usuariu de la to base de datos.",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
        "config-type-mysql": "MySQL (o compatible)",
        "config-type-mssql": "Microsoft SQL Server",
        "config-invalid-db-type": "Triba non válida de base de datos.",
@@ -95,5 +92,5 @@
        "config-help": "Ayuda",
        "config-nofile": "Nun pudo atopase'l ficheru \"$1\". ¿Desaniciose?",
        "mainpagetext": "<strong>Instalóse MediaWiki.</strong>",
-       "mainpagedocfooter": "Consulta la [//meta.wikimedia.org/wiki/Help:Contents Guía del usuariu] pa saber cómo usar el software wiki.\n\n== Primeros pasos ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Llista de les opciones de configuración]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ EMF de MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Llista de corréu de llanzamientos de MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Llocaliza MediaWiki na to llingua]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Depriende como combatir la puxarra na to wiki]"
+       "mainpagedocfooter": "Consulta la [https://meta.wikimedia.org/wiki/Help:Contents Guía del usuariu] pa saber cómo usar el software wiki.\n\n== Primeros pasos ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Llista de les opciones de configuración]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ EMF de MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Llista de corréu de llanzamientos de MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Llocaliza MediaWiki na to llingua]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Depriende como combatir la puxarra na to wiki]"
 }
index 8fda8d4..15473a8 100644 (file)
@@ -19,7 +19,6 @@
        "config-page-options": "Nizamlamalar:",
        "config-page-install": "Nizamlama",
        "config-page-complete": "Komplektləşdir!",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
        "config-mysql-myisam": "MyISAM",
        "config-mysql-utf8": "UTF-8",
        "config-ns-generic": "Layihə",
@@ -29,5 +28,5 @@
        "config-license-pd": "İctimai istifadə",
        "config-help": "kömək",
        "mainpagetext": "'''MediaWiki müvəffəqiyyətlə quraşdırıldı.'''",
-       "mainpagedocfooter": "Bu vikinin istifadəsi ilə bağlı məlumat almaq üçün [//meta.wikimedia.org/wiki/Help:Contents İstifadəçi məlumat səhifəsinə] baxın.\n\n== Faydalı keçidlər ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Tənzimləmələrin siyahısı]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki haqqında tez-tez soruşulan suallar]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki e-poçt siyahısı]"
+       "mainpagedocfooter": "Bu vikinin istifadəsi ilə bağlı məlumat almaq üçün [https://meta.wikimedia.org/wiki/Help:Contents İstifadəçi məlumat səhifəsinə] baxın.\n\n== Faydalı keçidlər ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Tənzimləmələrin siyahısı]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki haqqında tez-tez soruşulan suallar]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki e-poçt siyahısı]"
 }
index 80105f2..a1fcfab 100644 (file)
@@ -10,7 +10,8 @@
                        "Янмурза Баки",
                        "Гульчатай",
                        "Вильданова Гюзель",
-                       "З. ӘЙЛЕ"
+                       "З. ӘЙЛЕ",
+                       "Ләйсән"
                ]
        },
        "config-desc": "MediaWiki йөкләүсе",
@@ -22,7 +23,7 @@
        "config-localsettings-badkey": "Дөрөҫ булмаған асҡыс күрһәттегеҙ",
        "config-upgrade-key-missing": "Ҡуйылған MediaWiki копияһы булыуы асыҡланды. Яңыртыу өсөн файл аҙағында ҡуйығыҙ: <code>LocalSettings.php</code>:\n\n$1",
        "config-localsettings-incomplete": "Ғәмәлдәге <code>LocalSettings.php</code> файла тулған. $1 билдәләнмәгән. Зинһар өсөн <code>LocalSettings.php</code> кодын үҙгәртегеҙ. Һуңынан ошонда сиртегеҙ «{{int:Config-continue}}».",
-       "config-localsettings-connection-error": "<code>LocalSettings.php</code> көйләүҙәрендә хата китте йәки <code>AdminSettings.php</code> көйләүҙәрендә хата. Зинһар өсөн, көйләүҙәрҙе тәҙәтегеҙ, яңынан эшләп ҡарағыҙ\n$1",
+       "config-localsettings-connection-error": "<code>LocalSettings.php</code> көйләүҙәрендә хата китте йәки <code>LocalSettings.php</code> көйләүҙәрендә хата. Зинһар өсөн, көйләүҙәрҙе тәҙәтегеҙ, яңынан эшләп ҡарағыҙ\n$1",
        "config-session-error": "Эш башлағанда сыҡҡан хата: $1",
        "config-session-expired": "Һеҙҙең ваҡыт үтте. Сессия $1 оҙонлоғона көйләнгән. Уны оҙайтыу өсөн php.ini. эсендә <code>session.gc_maxlifetime</code> кодын үҙгәртегеҙ.\nУрынлаштырыу процессын яңынан башлағыҙ.",
        "config-no-session": "Был сессия юғалған!\nҮҙегеҙҙең php.ini тикшерегеҙ, \n<code>session.save_path</code> коды тейешле каталогҡа урынлаштырылған икәненә ышынғыҙ.",
        "config-restart": "Эйе, яңынан башларға",
        "config-welcome": "=== Даирәне тикшереү ===",
        "config-copyright": "=== Авторлыҡ хоҡуҡтары һәм шарттар ===\n\n$1\n\nMediaWiki - ирекле программа тьәминәте. Һеҙ уны ирекле программа тьәминәте фонды баҫып сығарған GNU General Public License лицензия талаптарына ярашлы рәүештә тарата һәм/йәки үҙгәртә алаһығыҙ;икенсе версияһына йәки ниндәйҙә булһа һуңғы версияһына ярашлы рәүештә.\nMediaWiki - файҙалы булыу өмөтө менән таратыла, ләкин <strong> бер ниндәй ҙә гарантияларһыҙ</strong>, хатта күҙ уңында тотолған гарантияларһыҙ <strong> коммерция ҡимәтенән тыш </strong> йәки </strong> ниндәй ҙә булһа маҡсатҡа яраҡһыҙ </strong>. Ҡара. тулыраҡ мәғлүмәт алыу өсөн GNU General Public License лицезияһы. \nҺеҙ <doclink href=Copying> копияһын GNU General Public License</doclink>ошо программа менән бергә алырға тейеш инегеҙ, әгәр алмаһағыҙ, Free Software Foundation, Inc. ошо адрес буйынса яҙығыҙ:51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA йәки  [http://www.gnu.org/copyleft/gpl.html уны онлайнда уҡығыҙ].",
-       "config-sidebar": "* [//www.mediawiki.org Сайт MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents/ru Ҡулланыусылар өсөн белешмә]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents/ru Администраторҙар өсөн белешмә]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/ru FAQ]\n----\n* <doclink href=Readme>Readme-файл</doclink>\n* <doclink href=ReleaseNotes>Сығарылыш тураһында мәғлүмәт</doclink>\n* <doclink href=Copying>Лицензия</doclink>\n* <doclink href=UpgradeDoc>Яңыртыуҙар</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org Сайт MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents/ru Ҡулланыусылар өсөн белешмә]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents/ru Администраторҙар өсөн белешмә]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/ru FAQ]\n----\n* <doclink href=Readme>Readme-файл</doclink>\n* <doclink href=ReleaseNotes>Сығарылыш тураһында мәғлүмәт</doclink>\n* <doclink href=Copying>Лицензия</doclink>\n* <doclink href=UpgradeDoc>Яңыртыуҙар</doclink>",
        "config-env-good": "Мөхитте тикшереү уңышлы тамамланды. MediaWiki урынлаштырырға мөмкин.",
        "config-env-bad": "Мөхит тикшерелде. Һеҙ MediaWiki урынлаштыра алмайһығыҙ.",
        "config-env-php": "PHP: $1 өлгөһө урынлаштырылды.",
        "config-env-hhvm": "HHVM $1 урынлаштырылды.",
        "config-unicode-using-intl": " [http://pecl.php.net/intl ҡушылмаһы файҙаланасаҡ, «intl» для PECL]  Юникод нормаль эшләһен өсөн.",
-       "config-unicode-pure-php-warning": "'''Иғтибар!''': [http://pecl.php.net/intl ҡушылмаһы intl из PECL] Юникод өсөн рөхсәт ителмәгән PHP менән бик әкрен эшләйәсәк.\nҺеҙҙең сайт бик көсөргәнешле эшләһә [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations нормализации Юникодты нормалләштереү] өсөн уҡығыҙ.",
-       "config-unicode-update-warning": "\"Иҫкәртеү\". Ҡуйылған тышлыҡ Юникодты нормаға килтереүҙең иҫке китапхана версияһын ҡуллана[http://site.icu-project.org/ проекта ICU].Әгәр Юникодты тулы мәғәнәһендә ҡулланырға теләһәгеҙ, һеҙ [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations версияны яңыртырға] тейешһегеҙ.",
+       "config-unicode-pure-php-warning": "'''Иғтибар!''': [http://pecl.php.net/intl ҡушылмаһы intl из PECL] Юникод өсөн рөхсәт ителмәгән PHP менән бик әкрен эшләйәсәк.\nҺеҙҙең сайт бик көсөргәнешле эшләһә [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations нормализации Юникодты нормалләштереү] өсөн уҡығыҙ.",
+       "config-unicode-update-warning": "\"Иҫкәртеү\". Ҡуйылған тышлыҡ Юникодты нормаға килтереүҙең иҫке китапхана версияһын ҡуллана[http://site.icu-project.org/ проекта ICU].Әгәр Юникодты тулы мәғәнәһендә ҡулланырға теләһәгеҙ, һеҙ [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations версияны яңыртырға] тейешһегеҙ.",
        "config-no-db": "Мәғлүмәттәр базаһына тура килгән драйверҙарҙы табып булманы!Һеҙгә  PHP өсөн мәғлүмәттәр базаһының  драйверҙарын ҡуйырға кәрәк.{{PLURAL:$2|сираттағы төр ҡулланыла|сираттағы төрҙәр ҡулланыла}}мәғлүмәттәр базалары:$1.\nӘгәр һеҙ үҙегеҙ PHP -ға компиляция яһаған булһағыҙ,  мәғлүмәттәр базаһына клиентты индереп уны яңынан, мәҫәлән, <code>./configure --with-mysqli</code> ярҙамы менән көйләгеҙ. Әгәр ҙә һеҙ PHP -ны Debian йәки Ubuntu пакеттарынан ҡуйһағыҙ, һеҙгә, мәҫәлән,  <code>php5-mysql</code> пакетын да ҡуйырға кәрәк булыр.",
        "config-outdated-sqlite": "'''Киҫәтеү''': Һеҙҙә SQLite  $1 ҡуйылған, $2 тейешле өлгөнән түбән . SQLite асылмаясаҡ.",
        "config-no-fts3": "'''Иғтибар''': SQLite модулһыҙ йыйлған [//sqlite.org/fts3.html FTS3] — был мәғлүмәт базаһы өсөн эҙләү мөмкин булмаясаҡ.",
-       "config-mbstring": "\"Проблема\":  PHP опцияһы тоташтырылған\n[http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload]!'''\nБыл индерелгән мәғлүмәттәрҙең хаталарына һәм көтөлмәгән боҙолоуҙарға килтерә.\nОпцияны һүндермәйенсә MediaWikiны ҡуйыу һәм ҡулланыу мөмкин түгел.",
-       "config-xml-bad": "РНР өсөн XML-модуль юҡ. \nMediaWiki  бындай конфигурацияла эшләмәйәсәк, сөнки был модулдең функционалы талап ителә.\nБәлки, Һеҙгә RPM-пакет php-xml булдырырыға кәрәк булыр.",
        "config-pcre-old": "'''Фаталь хата:'''  PCRE версияһы йәки яңырағы талап ителә $1.\nБашҡарылыусы файл PHP менән бәйләнгән PCRE  $2версияһы.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Ентекләберәк].",
        "config-pcre-no-utf8": "'''Фаталь хата'''. PHP өсөн PCRE модуле  PCRE_UTF8 менән яраҡлыштырылмаған.\nMediaWiki дөрөҫ эшләһен өсөн UTF-8 талап ителә.",
        "config-memory-raised": "Хәтер сикләнгән PHP  (<code>memory_limit</code>)  $1  $2 тиклем арттырылған.",
        "config-memory-bad": "'''Иғтибар:''' PHP күләме <code>memory_limit</code> $1 тәшкил итә.\nБәлки, был саманан тыш аҙҙыр. \nҠуйылыштың уңышһыҙлыҡҡа осрауы бар!",
-       "config-ctype": "<strong>Фаталь хата:</strong> PHР тотороҡло эшләргә тейеш [http://www.php.net/manual/en/iconv.installation.php киңәйтеү iconv].",
-       "config-iconv": "<strong>Фаталь хата:</strong> PHР тотороҡло эшләргә тейеш [http://www.php.net/manual/en/iconv.installation.php киңәйтеү iconv].",
-       "config-json": "'''Фаталь хата:''' PHP JSON ярҙамынан тыш эшләнгән.\nҺеҙгә йә PHP JSON киңәйтеүен, йәки MediaWiki алдынан [http://pecl.php.net/package/jsonc PECL jsonc] киңәйтеүен ҡуйырға кәрәк.\n* PHP-киңәйтеүсе <code>/etc/php.ini</code> йәки  <code>/etc/php.d/json.ini</code> инергә тейеш булһа ла, Red Hat Enterprise Linux (CentOS) 5 һәм 6, составына инә.\n* 2013 йылдың майынан һуң сығарылған Linux-тың ҡайһы бер  дистрибутивтары  PECL киңәйтеүен <code>php5-json</code> или <code>php-pecl-jsonc</code> кеүек асыр урынға,  PHP киңәйтеүсеһен асмай.",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] урынлаштырылды",
        "config-apc": "[http://www.php.net/apc APC] урынлаштырылды",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] урынлыштырылды",
@@ -86,7 +82,7 @@
        "config-no-cli-uri": "'''Киҫәтеү''': параметр күрһәтелмәгән <code>--scriptpath</code>, килешеү байынса: <code>$1</code> .",
        "config-using-server": "«<nowiki>$1</nowiki>» сервер исеме файҙаланыла.",
        "config-using-uri": " \"<nowiki>$1$2</nowiki>\" сервер исеме файҙаланыла.",
-       "config-uploads-not-safe": "'''Иғтибар:''' (<code>$1</code>) күсереүҙәре өсөе ҡулланылған директория ирекле скриптар яһау өсөн бармай.  \nMediaWiki барлыҡ күсерелгән файлдарҙы тикшерһә лә, файлды күсереүҙән алда [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security бирешеүсәнлекте ябыу] тәҡдим ителә.",
+       "config-uploads-not-safe": "'''Иғтибар:''' (<code>$1</code>) күсереүҙәре өсөе ҡулланылған директория ирекле скриптар яһау өсөн бармай.  \nMediaWiki барлыҡ күсерелгән файлдарҙы тикшерһә лә, файлды күсереүҙән алда [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security бирешеүсәнлекте ябыу] тәҡдим ителә.",
        "config-no-cli-uploads-check": "\"Иғтибар\" әйтмәйенсә тейәлеү өсөн каталог (<code>$1</code>) CLI  урынлаштырған мәлдә тиҙ боҙололоусанлыҡҡа, ирекле сценарийҙы үтәүгә тикшерелмәне.",
        "config-brokenlibxml": "Системағыҙҙа  MediaWiki һәм башҡа веб-ҡушымталар мәғлүмәттәрен йәшерен щарралауы ихтимал булған  PHP һәм libxml2 версиялары бар. \nlibxml2  2.7.3  йәки юғарыраҡ версияға ([https://bugs.php.net/bug.php?id=45996 хата тураһында мәғлүмәттәр]) тиклем яңыртығыҙ.\nБәйләнеш өҙөлдө.",
        "config-suhosin-max-value-length": "Suhosin ҡуйылған һәм  GET <code>length</code> параметрын  $1 байтҡаса кәметә.  MediaWiki-ның  ResourceLoader компоненты был сикләүҙе урап үтә, әммә был етештереүсәнлекте кәметә. Әгәр мөмкин булһа, 1024 асылындағы   <code>suhosin.get.max_value_length</code> йәки унан юғарыраҡ булған  <code>php.ini</code>, шулай уҡ  <code>$wgResourceLoaderMaxQueryLength</code> өсөн шундай уҡ  LocalSettings.php ҡуйырға була.",
        "config-db-wiki-help": "Викиҙың ғәҙәттәге эше ваҡытында мәғлүмәт базаһына инеү өсөн файҙаланылған ҡулланыусы исемен һәм серһүҙен индерегеҙ. Әгәр бындай иҫәп яҙмаһы юҡ икән, ә ваҡытлыса яҙма етерлек өҫтөнлөктәргә эйә икән, ғәҙәттәге иҫәп яҙмаһы викиҙа эшләү өсөн кәрәкле минималь өҫтөнлөктәр менән булдырыласаҡ.",
        "config-db-prefix": "Мәғлүмәт базаһы таблицаларының префиксы",
        "config-db-prefix-help": "Әгәр һеҙгә бер мәғлүмәт базаһын бер нисә вики йәки MediaWiki һәм башҡа веб-ҡушымталар араһында бүлергә тура килһә, таблицалағы барлыҡ исемдәр өсөн перфикс өҫтәй алаһығыҙ. Ара ҡулланмағыҙ.\nБыл урын ғәҙәттә буш ҡала.",
-       "config-db-charset": "Мәғлүмәт базаһын кодлау",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 бинарлы",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "MySQL 4.0 һәм UTF-8 үҙ-ара бәйләнешле",
-       "config-charset-help": "'''Иғтибар.''' Әгәр  '''кире тап килгән UTF-8''' урынына MySQL 4.1+ ҡулланаһығыҙ һәм <code>mysqldump</code> ярҙамында мәғлүмәт базаһының резерв күсермәләрен  файҙаланһағыҙ, ASCII булмаған символдар барыһы ла  могут яңылыш күрһәтелеп, резерв күсермәләре ҡулланыуға яраҡһыҙ буласаҡ!\n\n'''Бинар режимда''' MediaWiki базала юникод тексын  нимә яҙылған, шул килеш һаҡлаясаҡ.\nБыл UTF-8 режимында MySQL  булыуға ҡарағанда һөҙөмтәлерәк, сөнки Юникодтың символдар тупланмаһын тулыһынса ҡулланыу мөмкинлеген бирә. \n'''UTF-8 режимында''' MySQL мәғлүмәттәрегеҙҙең ниндәй символдар тупланмаһына ҡарауын беләсәк һәм уларҙы тейешенсә үҙгәртәсәк  (Ё хәрефе Е хәрефенән һуң киләсәк, ә  бинар режимдағыса Я-нан һуң түгел), әммә [//ru.wikipedia.org/wiki/ Юникодта бирелгән символдар#.D0.91.D0.B0.D0.B7.D0.BE.D0.B2.D0.B0.D1.8F_.D0.BC.D0.BD.D0.BE.D0.B3.D0.BE.D1.8F.D0.B7.D1.8B.D0.BA.D0.BE.D0.B2.D0.B0.D1.8F_.D0.BF.D0.BB.D0.BE.D1.81.D0.BA.D0.BE.D1.81.D1.82.D1.8C BMP] сигенән сығыусы символдарҙы һаҡларға рөхсәт итмәйәсәк.",
        "config-mysql-old": "PostgreSQL $1 йәки тағы ла һуңыраҡ булған версия кәрәк. Һеҙҙә PostgreSQL $2 ҡуйылған.",
        "config-db-port": "Мәғлүмәт базаһы порты:",
        "config-db-schema": "MediaWiki өсөн схема:",
        "config-mysql-charset": "Мәғлүмәт базаһын кодлау",
        "config-mysql-binary": "Икеле",
        "config-mysql-utf8": "UTF-8",
-       "config-mysql-charset-help": "'''Ике режим'''да MediaWiki  UTF-8 тексын мәғлүмәт базаһының бинарныхҡырында һаҡлай.\nБыл MySQL-дың''UTF-8 режим''ына ҡарағанда һөҙөмтәлерәк һәм Unicode символдарының тулы тупланмаһын ҡулланыу мөмкинлеген бирә. \n\n'''UTF-8 режимы'''нда MySQL мәғлүмәттәрегеҙҙең ниндәй кодировкала ятҡанын беләсәк һәм уларҙы тейешенсә сағылдырасаҡ, үҙгәртәсәк, әммә был символдарҙы юғарыраҡ [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes База күптеллелек киңлегендә] һаәлау мөмкинлеген бирәсәк.",
+       "config-mysql-charset-help": "'''Ике режим'''да MediaWiki  UTF-8 тексын мәғлүмәт базаһының бинарныхҡырында һаҡлай.\nБыл MySQL-дың''UTF-8 режим''ына ҡарағанда һөҙөмтәлерәк һәм Unicode символдарының тулы тупланмаһын ҡулланыу мөмкинлеген бирә. \n\n'''UTF-8 режимы'''нда MySQL мәғлүмәттәрегеҙҙең ниндәй кодировкала ятҡанын беләсәк һәм уларҙы тейешенсә сағылдырасаҡ, үҙгәртәсәк, әммә был символдарҙы юғарыраҡ [https://en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes База күптеллелек киңлегендә] һаәлау мөмкинлеген бирәсәк.",
        "config-mssql-auth": "Аутентификация төрө :",
        "config-mssql-install-auth": "Ҡуйыу процесында мәғлүмәт базаһына инеү өсөн файҙаланылған төп нөсхәне тикшереү тибын һайлағыҙ. \n\nӘгәр «{{int:config-mssql-windowsauth}}» һайлаһығыҙ, ҡулланыусының веб-сервер эшләгән иҫәп яҙмаһы файҙаланыласаҡ.",
        "config-mssql-web-auth": "Викиҙың ғәҙәттәге эше ваҡытында мәғлүмәттәр базаһы серверына инеү өсөн веб-сервер файҙаланған  төп нөсхәне тикшереү тибын һайлағыҙ. \n\nӘгәр «{{int:config-mssql-windowsauth}}» һайлаһығыҙ, ҡулланыусының веб-сервер эшләгән иҫәп яҙмаһы файҙаланыласаҡ.",
        "config-profile-no-anon": "Иҫәп яҙмаһы булдырырға",
        "config-profile-fishbowl": "Бары тик авторлашҡан мәхәррирҙәр өсөн",
        "config-profile-private": "Ябыҡ вики",
-       "config-profile-help": "Ләкин,  MediaWiki  шыуҙырмаһын икенсе ысул менән файҙаланырға мөмкин, һәм асыҡ вики-эштең өҫтөн икәненә барыһын да ышандырып бөтөп булмай.\nҺеҙҙең һайлап алырға мөмкинселек бар.\nСайтта теркәлеү үтмәйенсә лә, модель '''«{{int:config-profile-wiki}}»''' һәр кемгә биттәрҙә үҙгәртеү эшләргә мөмкинселек бирә. Конфигурация '''{{int:config-profile-no-anon}}''' өҫтәлмә хисап тәьмин итә,  ләкин осраҡлы ҡатнашыусыларҙы ябыуы ихтимал.\nСценарий '''«{{int:config-profile-fishbowl}}»''' аныҡланған ҡатнашыусыларға мөхәррирләүҙе рөхсәт итә, ләкин һәр кем алырлыҡ битте ҡарау ҡала, шул иҫәптән үҙгәртеҙәр тарихын ҡарау. '''«{{int:config-profile-private}}»''' режимында биттәрҙе ҡарарға айырым ҡулланыусыларға ғына рөхсәт ителә, ҡайһы бер өлөштәренең мөхәррирләү хоҡуҡтары булыуы мөмкин. \n[//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights Ярашлы ҡулланма] урынлаштырғас,  хоҡуҡтарҙы сикләүсе ҡатмарлыраҡ схемаларҙы көйләргә була.",
+       "config-profile-help": "Ләкин,  MediaWiki  шыуҙырмаһын икенсе ысул менән файҙаланырға мөмкин, һәм асыҡ вики-эштең өҫтөн икәненә барыһын да ышандырып бөтөп булмай.\nҺеҙҙең һайлап алырға мөмкинселек бар.\nСайтта теркәлеү үтмәйенсә лә, модель '''«{{int:config-profile-wiki}}»''' һәр кемгә биттәрҙә үҙгәртеү эшләргә мөмкинселек бирә. Конфигурация '''{{int:config-profile-no-anon}}''' өҫтәлмә хисап тәьмин итә,  ләкин осраҡлы ҡатнашыусыларҙы ябыуы ихтимал.\nСценарий '''«{{int:config-profile-fishbowl}}»''' аныҡланған ҡатнашыусыларға мөхәррирләүҙе рөхсәт итә, ләкин һәр кем алырлыҡ битте ҡарау ҡала, шул иҫәптән үҙгәртеҙәр тарихын ҡарау. '''«{{int:config-profile-private}}»''' режимында биттәрҙе ҡарарға айырым ҡулланыусыларға ғына рөхсәт ителә, ҡайһы бер өлөштәренең мөхәррирләү хоҡуҡтары булыуы мөмкин. \n[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights Ярашлы ҡулланма] урынлаштырғас,  хоҡуҡтарҙы сикләүсе ҡатмарлыраҡ схемаларҙы көйләргә була.",
        "config-license": "Автор хоҡуҡтары һәм лицензиялар:",
        "config-license-none": "Лицензияны аҫта яҙмағыҙ",
        "config-license-cc-by-sa": "Creative Commons Attribution Share Alike",
        "config-email-sender-help": "Баһалама алыу өсөн электрон почта адресын яҙығыҙ. Унда кире ҡағылған баһаламалар ебәреләсәк.Почта серверы домен исемен дөрөҫ яҙыуҙы талап ите.",
        "config-upload-settings": "Рәсем-һүрәттәрҙе һәм файлдарҙы тултырыу",
        "config-upload-enable": "Файл тултырырға рөхсәт биреү",
-       "config-upload-help": "Файлды тейәргә рөхсәт итеү серверҙың хәүефһеҙлегенә янай. Өҫтәмә мәғлүмәт алыу өсөн Ҡулланманың [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security хәүефһеҙлек бүлеген] уҡығыҙ.",
+       "config-upload-help": "Файлды тейәргә рөхсәт итеү серверҙың хәүефһеҙлегенә янай. Өҫтәмә мәғлүмәт алыу өсөн Ҡулланманың [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security хәүефһеҙлек бүлеген] уҡығыҙ.",
        "config-upload-deleted": "Юйылған файлдарға директория",
        "config-upload-deleted-help": "Юйылған файлдар архивы һаҡланасаҡ  каталогты һайлағыҙ.\nИң шәп осраҡта, интернет селтәренән был каталогҡа инеү рөхсәте булырға тейеш түгел.",
        "config-logo": "Логотип URL-ы :",
        "config-logo-help": "MediaWiki стантарт биҙәү темаһының ситтәге панелендә 135x160 пикселдән торған логотип урынлаштырыла. Шул ҙурлыҡтағы рәсемде тейәгеҙ, һәм  URL адресын яҙығыҙ.\nЛогитип сағыштырмаса ошо юлдарҙа ятһа, <code>$wgStylePath</code> йәки <code>$wgScriptPath</code> кодын файҙалана алаһығыҙ.\nӘгәр логотип кәрәк булмаһа, был урында буш ҡалдырығыҙ.",
        "config-instantcommons": "Instant Commons-ты тоҡандырырға",
-       "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons Instant Commons] — Викимилектәге рәсем, тауыш һәм башҡа медиафайлдарҙы файҙаланыу функцияһы  ([//commons.wikimedia.org/ Wikimedia Commons]).\n MediaWiki функцияһы менән эшләү өсөн интернетҡа инеү мөмкинлеге кәрәк.\n\nInstant Commons тураһында өҫтәмә мәғлүмәтте, һәм башҡа көйләүҙәрҙе [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos Ҡулланмала] табырға була.",
+       "config-instantcommons-help": "[https://www.mediawiki.org/wiki/InstantCommons Instant Commons] — Викимилектәге рәсем, тауыш һәм башҡа медиафайлдарҙы файҙаланыу функцияһы  ([https://commons.wikimedia.org/ Wikimedia Commons]).\n MediaWiki функцияһы менән эшләү өсөн интернетҡа инеү мөмкинлеге кәрәк.\n\nInstant Commons тураһында өҫтәмә мәғлүмәтте, һәм башҡа көйләүҙәрҙе [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos Ҡулланмала] табырға була.",
        "config-cc-error": "Creative Commons лицензияһын һайлау механизмы нәтижә бирмәне.\nЛицензия исемен ҡулдан яҙығыҙ.",
        "config-cc-again": "Ҡабаттан һайлағыҙ",
        "config-cc-not-chosen": "Creative Commons лицензияһының ҡулланырға теләгәнен һайлағыҙ һәм \"proceed\" төймәһенә баҫыҡыҙ.",
        "config-help": "белешмә",
        "config-help-tooltip": "асыр өсөн сиртегеҙ",
        "config-nofile": "\"$1\" файлын табып булмай, ул юйылған.",
-       "config-extension-link": "Беҙҙең вики-проектта [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions ҡушымта] барлығын беләһегеҙме??\n\n[//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category категориялар буйынса ҡушымта] йәки [//www.mediawiki.org/wiki/Extension_Matrix матрица ҡсн ҡушымтаның] тулы исемлеген ҡарай алаһығыҙ.",
+       "config-extension-link": "Беҙҙең вики-проектта [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions ҡушымта] барлығын беләһегеҙме??\n\n[https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category категориялар буйынса ҡушымта] йәки [https://www.mediawiki.org/wiki/Extension_Matrix матрица ҡсн ҡушымтаның] тулы исемлеген ҡарай алаһығыҙ.",
        "mainpagetext": "«MediaWiki» уңышлы рәүештә ҡоролдо.",
-       "mainpagedocfooter": "Был вики менән эшләү тураһында мәғлүмәтте [//meta.wikimedia.org/wiki/Help:Contents ошонда] табып була.\n\n== Файҙалы сығанаҡтар ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Көйләүҙәр исемлеге (инг.)];\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki тураһында йыш бирелгән һорауҙар һәм яуаптар (инг.)];\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki-ның яңы версиялары тураһында хәбәрҙәр алып тороу].\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
+       "mainpagedocfooter": "Был вики менән эшләү тураһында мәғлүмәтте [https://meta.wikimedia.org/wiki/Help:Contents ошонда] табып була.\n\n== Файҙалы сығанаҡтар ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Көйләүҙәр исемлеге (инг.)];\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki тураһында йыш бирелгән һорауҙар һәм яуаптар (инг.)];\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki-ның яңы версиялары тураһында хәбәрҙәр алып тороу].\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
 }
index d949a8d..c156083 100644 (file)
@@ -9,5 +9,5 @@
        "config-title": "Installation vo MediaWiki $1",
        "config-information": "Information",
        "mainpagetext": "'''MediaWiki is erfoigreich installird worn.'''",
-       "mainpagedocfooter": "A Hüf zur da Benützung und Konfigurazion voh da Wiki-Software findst auf [//meta.wikimedia.org/wiki/Help:Contents Benützerhåndbuach].\n\n== Starthüfe ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Listen voh de Konfigurazionsvariaablen]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki-FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailinglisten voh de neichen MediaWiki-Versionen]"
+       "mainpagedocfooter": "A Hüf zur da Benützung und Konfigurazion voh da Wiki-Software findst auf [https://meta.wikimedia.org/wiki/Help:Contents Benützerhåndbuach].\n\n== Starthüfe ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Listen voh de Konfigurazionsvariaablen]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki-FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailinglisten voh de neichen MediaWiki-Versionen]"
 }
index e97d7ac..99c2b9c 100644 (file)
@@ -1,5 +1,5 @@
 {
        "@metadata": [],
        "mainpagetext": "'''مدیا وی کی گون موفقیت نصب بوت.'''",
-       "mainpagedocfooter": "مشورت کنیت گون  [//meta.wikimedia.org/wiki/Help:Contents User's Guide] په گشیترین اطلاعات په استفاده چه برنامه ویکی.\n\n== شروع بیت ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
+       "mainpagedocfooter": "مشورت کنیت گون  [https://meta.wikimedia.org/wiki/Help:Contents User's Guide] په گشیترین اطلاعات په استفاده چه برنامه ویکی.\n\n== شروع بیت ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
 }
index 76a8f37..0f8bf2c 100644 (file)
        "config-page-upgradedoc": "Ipinagpapalangkaw",
        "config-page-existingwiki": "Eksistidong wiki",
        "config-restart": "Iyo, pakipoon kaini otro",
-       "config-xml-bad": "An XML kan PHP na modyul nawawara.\nAn Mediawiki minakaipo nin mga punksyon sa modyul na ini asin dae matrabaho sa laog kaining konpigurasyon.\nIka minakaipong magmuntar kan php-xml RPM package",
        "config-db-wiki-settings": "Bistohon ining wiki",
        "config-db-name": "Pangaran kan datos-sarayan:",
        "config-db-username": "Ngaran-paragamit nin datos-sarayan:",
        "config-db-password": "Pasa-taramon nin datos-sarayan:",
-       "config-db-password-empty": "Pakilaog nin sarong pasa-taramon para sa baguhong paragamit nin datos-sarayan: $1.\nMantang ini posibleng makamukna nin mga paragamit na mayong mga pasa-taramon, bako po ining segurado.",
        "mainpagetext": "'''Instalado na an MediaWiki.'''",
-       "mainpagedocfooter": "Konsultarón tabì an [//meta.wikimedia.org/wiki/Help:Contents User's Guide] para sa impormasyon sa paggamit nin progama kaining wiki.\n\n== Pagpopoon ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
+       "mainpagedocfooter": "Konsultarón tabì an [https://meta.wikimedia.org/wiki/Help:Contents User's Guide] para sa impormasyon sa paggamit nin progama kaining wiki.\n\n== Pagpopoon ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
 }
index 1b42cdd..30983e6 100644 (file)
        "config-restart": "Так, пачаць зноў",
        "config-welcome": "== Праверка асяродзьдзя ==\nЗараз будуць праведзеныя праверкі для запэўніваньня, што гэтае асяродзьдзе адпаведнае для ўсталяваньня MediaWiki.\nНе забудзьце далучыць гэтую інфармацыю, калі вам спатрэбіцца дапамога для завяршэньня ўсталяваньня.",
        "config-copyright": "== Аўтарскае права і ўмовы ==\n\n$1\n\nThis 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.\n\nThis 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'''.\nSee the GNU General Public License for more details.\n\nYou should have received <doclink href=Copying>a copy of the GNU General Public License</doclink> along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. or [http://www.gnu.org/copyleft/gpl.html read it online].",
-       "config-sidebar": "* [//www.mediawiki.org Хатняя старонка MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Даведка для ўдзельнікаў]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Даведка для адміністратараў]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Адказы на частыя пытаньні]\n----\n* <doclink href=Readme>Прачытайце</doclink>\n* <doclink href=ReleaseNotes>Паляпшэньні ў вэрсіі</doclink>\n* <doclink href=Copying>Капіяваньне</doclink>\n* <doclink href=UpgradeDoc>Абнаўленьне</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org Хатняя старонка MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Даведка для ўдзельнікаў]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Даведка для адміністратараў]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Адказы на частыя пытаньні]\n----\n* <doclink href=Readme>Прачытайце</doclink>\n* <doclink href=ReleaseNotes>Паляпшэньні ў вэрсіі</doclink>\n* <doclink href=Copying>Капіяваньне</doclink>\n* <doclink href=UpgradeDoc>Абнаўленьне</doclink>",
        "config-env-good": "Асяродзьдзе было праверанае.\nВы можаце ўсталёўваць MediaWiki.",
        "config-env-bad": "Асяродзьдзе было праверанае.\nУсталяваньне MediaWiki немагчымае.",
        "config-env-php": "Усталяваны PHP $1.",
        "config-env-hhvm": "HHVM $1 усталяваная.",
        "config-unicode-using-intl": "Выкарыстоўваецца [http://pecl.php.net/intl intl пашырэньне з PECL] для Unicode-нармалізацыі",
-       "config-unicode-pure-php-warning": "'''Ð\9fапÑ\8fÑ\80Ñ\8dджанÑ\8cне''': [http://pecl.php.net/intl Ð\9fаÑ\88Ñ\8bÑ\80Ñ\8dнÑ\8cне intl Ð· PECL] â\80\94 Ð½Ñ\8f Ñ\81лÑ\83Ñ\88нае Ð´Ð»Ñ\8f Unicode-наÑ\80малÑ\96заÑ\86Ñ\8bÑ\96, Ñ\86Ñ\8fпеÑ\80 Ð²Ñ\8bкаÑ\80Ñ\8bÑ\81Ñ\82оÑ\9eваеÑ\86Ñ\86а Ð¼Ð°Ñ\80Ñ\83днаÑ\8f PHP-Ñ\80Ñ\8dалÑ\96заÑ\86Ñ\8bÑ\8f.\nÐ\9aалÑ\96 Ñ\9e Ð\92аÑ\81 Ñ\81айÑ\82 Ð· Ð²Ñ\8bÑ\81окай Ð½Ð°Ð²ÐµÐ´Ð²Ð°ÐµÐ¼Ð°Ñ\81Ñ\8cÑ\86Ñ\8e, Ñ\80аÑ\96м Ð¿Ð°Ñ\87Ñ\8bÑ\82аÑ\86Ñ\8c Ð¿Ñ\80а [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode-нармалізацыю].",
-       "config-unicode-update-warning": "'''Папярэджаньне''': усталяваная вэрсія бібліятэкі для Unicode-нармалізацыі выкарыстоўвае састарэлую вэрсію бібліятэкі з [http://site.icu-project.org/ праекту ICU].\nРаім [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations абнавіць], калі ваш сайт будзе працаваць зь Unicode.",
+       "config-unicode-pure-php-warning": "'''Ð\9fапÑ\8fÑ\80Ñ\8dджанÑ\8cне''': [http://pecl.php.net/intl Ð\9fаÑ\88Ñ\8bÑ\80Ñ\8dнÑ\8cне intl Ð· PECL] â\80\94 Ð½Ñ\8f Ñ\81лÑ\83Ñ\88нае Ð´Ð»Ñ\8f Unicode-наÑ\80малÑ\96заÑ\86Ñ\8bÑ\96, Ñ\86Ñ\8fпеÑ\80 Ð²Ñ\8bкаÑ\80Ñ\8bÑ\81Ñ\82оÑ\9eваеÑ\86Ñ\86а Ð¼Ð°Ñ\80Ñ\83днаÑ\8f PHP-Ñ\80Ñ\8dалÑ\96заÑ\86Ñ\8bÑ\8f.\nÐ\9aалÑ\96 Ñ\9e Ð\92аÑ\81 Ñ\81айÑ\82 Ð· Ð²Ñ\8bÑ\81окай Ð½Ð°Ð²ÐµÐ´Ð²Ð°Ð»Ñ\8cнаÑ\81Ñ\8cÑ\86Ñ\8e, Ñ\80аÑ\96м Ð¿Ð°Ñ\87Ñ\8bÑ\82аÑ\86Ñ\8c Ð¿Ñ\80а [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode-нармалізацыю].",
+       "config-unicode-update-warning": "'''Папярэджаньне''': усталяваная вэрсія бібліятэкі для Unicode-нармалізацыі выкарыстоўвае састарэлую вэрсію бібліятэкі з [http://site.icu-project.org/ праекту ICU].\nРаім [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations абнавіць], калі ваш сайт будзе працаваць з Unicode.",
        "config-no-db": "Немагчыма знайсьці адпаведны драйвэр базы зьвестак. Вам неабходна ўсталяваць драйвэр базы зьвестак для PHP.\n{{PLURAL:$2|Падтрымліваецца наступны тып базы|Падтрымліваюцца наступныя тыпы базаў}} зьвестак: $1.\n\nКалі вы скампілявалі PHP самастойна, зьмяніце канфігурацыю, каб уключыць кліента базы зьвестак, напрыклад, з дапамогай <code>./configure --with-mysqli</code>.\nКалі вы ўсталявалі PHP з пакунку Debian або Ubuntu, тады вам трэба дадаткова ўсталяваць, напрыклад, пакунак <code>php5-mysql</code>.",
        "config-outdated-sqlite": "'''Папярэджаньне''': усталяваны SQLite $1, у той час, калі мінімальная сумяшчальная вэрсія — $2. SQLite ня будзе даступны.",
        "config-no-fts3": "'''Папярэджаньне''': SQLite створаны без модуля [//sqlite.org/fts3.html FTS3], для гэтага ўнутранага інтэрфэйсу ня будзе даступная магчымасьць пошуку.",
-       "config-mbstring": "'''Фатальная памылка: рэжым [http://www.php.net/manual/en/ref.info.php#mbstring.overload mbstring.func_overload] уключаны!'''\nГэты рэжым выклікае памылкі і можа шкодзіць зьвесткі непрадказальным чынам.\nПрацяг усталяваньня альбо выкарыстаньне MediaWiki немагчымыя, пакуль рэжым ня будзе выключаны.",
-       "config-xml-bad": "Ня знойдзены модуль XML для PHP.\nMediaWiki патрэбныя функцыі з гэтага модулю, таму MediaWiki ня будзе працаваць у гэтай канфігурацыі.\nМагчыма, вам трэба ўсталяваць RPM-пакет php-xml.",
        "config-pcre-old": "<strong>Крытычная памылка:</strong> патрэбны PCRE вэрсіі $1 або пазьнейшай.\nPHP-файл, які выконваецца, зьвязаны з PCRE вэрсіі $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Больш інфармацыі].",
        "config-pcre-no-utf8": "'''Фатальная памылка''': модуль PCRE для PHP скампіляваны без падтрымкі PCRE_UTF8.\nMediaWiki патрабуе падтрымкі UTF-8 для слушнай працы.",
        "config-memory-raised": "Абмежаваньне на даступную для PHP памяць <code>memory_limit</code> было падвышанае з $1 да $2.",
        "config-memory-bad": "'''Папярэджаньне:''' памер PHP <code>memory_limit</code> складае $1.\nВерагодна, гэта вельмі мала.\nУсталяваньне можа быць няўдалым!",
-       "config-ctype": "'''Фатальная памылка''': PHP мусіць быць скампіляваны з падтрымкай [http://www.php.net/manual/en/ctype.installation.php пашырэньня Ctype].",
-       "config-iconv": "<strong>Непапраўная памылка:</strong> PHP мусіць быць скампіляваны з падтрымкай [http://www.php.net/manual/en/iconv.installation.php пашырэньня iconv].",
-       "config-json": "<strong>Крытычная памылка:</strong> PHP быў скампіляваны без падтрымкі JSON.\nВы павінныя ўсталяваць або пашырэньне PHP JSON, або пашырэньне [http://pecl.php.net/package/jsonc PECL jsonc] перад усталёўкай MediaWiki.\n* Пашырэньне PHP уваходзіць у Red Hat Enterprise Linux (CentOS) 5 і 6, пры гэтым павінна быць падключана ў <code>/etc/php.ini</code> або <code>/etc/php.d/json.ini</code>.\n* Некаторыя дыстрыбутывы Linux, выдадзеныя пасьля траўня 2013 году, ня маюць пашырэньня PHP, замест яго пакуюць пашырэньне PECL як <code>php5-json</code> або <code>php-pecl-jsonc</code>.",
-       "config-mbstring-absent": "<strong>Непапраўная памылка:</strong> PHP мусіць быць скампіляваны з падтрымкай [http://www.php.net/manual/en/mbstring.setup.php пашырэньня mbstring].",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] усталяваны",
        "config-apc": "[http://www.php.net/apc APC] усталяваны",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] усталяваны",
@@ -84,7 +78,7 @@
        "config-no-cli-uri": "'''Папярэджаньне''': Не пазначаны <code>--scriptpath</code>, па змоўчваньні выкарыстоўваецца: <code>$1</code>.",
        "config-using-server": "Выкарыстоўваецца назва сэрвэра «<nowiki>$1</nowiki>».",
        "config-using-uri": "Выкарыстоўваецца URL-спасылка сэрвэра «<nowiki>$1$2</nowiki>».",
-       "config-uploads-not-safe": "'''Папярэджаньне:''' дырэкторыя для загрузак па змоўчваньні <code>$1</code> уразьлівая да выкананьня адвольнага коду.\nХоць MediaWiki і правярае ўсе файлы перад захаваньнем, вельмі рэкамэндуецца [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security закрыць гэтую ўразьлівасьць] перад уключэньнем магчымасьці загрузкі файлаў.",
+       "config-uploads-not-safe": "'''Папярэджаньне:''' дырэкторыя для загрузак па змоўчваньні <code>$1</code> уразьлівая да выкананьня адвольнага коду.\nХоць MediaWiki і правярае ўсе файлы перад захаваньнем, вельмі рэкамэндуецца [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security закрыць гэтую ўразьлівасьць] перад уключэньнем магчымасьці загрузкі файлаў.",
        "config-no-cli-uploads-check": "'''Папярэджаньне:''' Вашая дырэкторыя для загрузак па змоўчваньні (<code>$1</code>), не правераная на ўразьлівасьць да выкананьня адвольных скрыптоў падчас усталяваньня CLI.\n.",
        "config-brokenlibxml": "У Вашай сыстэме ўсталяваныя PHP і libxml2 зь несумяшчальнымі вэрсіямі, што можа прывесьці да пашкоджаньня зьвестак MediaWiki і іншых вэб-дастасаваньняў.\nАбнавіце libxml2 да вэрсіі 2.7.3 ці больш позьняй ([https://bugs.php.net/bug.php?id=45996 паведамленьне пра памылку на сайце PHP]).\nУсталяваньне перарванае.",
        "config-suhosin-max-value-length": "Suhosin усталяваны і абмяжоўвае <code>даўжыню</code> парамэтру GET да $1 {{PLURAL:$1|1=байта|байтаў}}.\nResourceLoader, складнік MediaWiki, будзе абходзіць гэтае абмежаваньне, што адаб’ецца на прадукцыйнасьці.\nКалі магчыма, варта ўсталяваць у <code>php.ini</code> значэньне <code>suhosin.get.max_value_length</code> роўным 1024 ці больш, а таксама вызначыць тое ж значэньне для <code>$wgResourceLoaderMaxQueryLength</code> у <code>LocalSettings.php</code>.",
        "config-db-wiki-help": "Увядзіце імя карыстальніка і пароль, якія будуць выкарыстаныя для далучэньня да базы зьвестак падчас працы (пасьля ўсталяваньня).\nКалі рахунак ня створаны, а рахунак для ўсталяваньня мае значныя правы, гэты рахунак будзе створаны зь мінімальна патрэбнымі для працы вікі правамі.",
        "config-db-prefix": "Прэфікс табліцаў базы зьвестак:",
        "config-db-prefix-help": "Калі Вы разьдзяляеце адну базу зьвестак паміж некалькімі вікі, ці паміж MediaWiki і іншым вэб-дастасаваньнем, можаце вызначыць прэфікс назваў табліцаў для пазьбяганьня канфліктаў.\nПазьбягайце прагалаў.\n\nГэтае поле звычайна пакідаецца пустым.",
-       "config-db-charset": "Кадаваньне базы зьвестак",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 binary",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "MySQL 4.0 UTF-8 з адваротнай сумяшчальнасьцю",
-       "config-charset-help": "'''Папярэджаньне:''' калі Вы выкарыстоўваеце '''UTF-8 з адваротнай сумяшчальнасьцю''' на MySQL 4.1+ і зробіце рэзэрвовую копію праз <code>mysqldump</code>, ён можа зьнішчыць усе не-ASCII-сымбалі беспаваротна!\n\nУ '''бінарным (binary)''' рэжыме MediaWiki захоўвае тэксты ў UTF-8 у палёх тыпу binary.\nГэты рэжым болей эфэктыўны за рэжым MySQL UTF-8 і дазваляе выкарыстоўваць увесь абсяг сымбаляў Unicode.\nУ рэжыме '''UTF-8''' MySQL будзе ведаць, у якім кадаваньне Вы зьмяшчаеце зьвесткі, і будзе вяртаць іх у адпаведным кадаваньні,\nале MySQL ня можа ўтрымліваць сымбалі па-за [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Стандартным шматмоўным пластом] сымбаляў Unicode.",
        "config-mysql-old": "Патрабуецца MySQL $1 ці навейшая, усталяваная вэрсія $2.",
        "config-db-port": "Порт базы зьвестак:",
        "config-db-schema": "Схема для MediaWiki",
        "config-mysql-charset": "Кадаваньне базы зьвестак:",
        "config-mysql-binary": "Двайковае",
        "config-mysql-utf8": "UTF-8",
-       "config-mysql-charset-help": "У '''двайковым рэжыме''', MediaWiki захоўвае тэкст у кадаваньні UTF-8 у базе зьвестак у двайковых палях.\nГэта болей эфэктыўна за рэжым MySQL UTF-8, і дазваляе Вам выкарыстоўваць увесь дыяпазон сымбаляў Unicode.\n\nУ '''рэжыме UTF-8''', MySQL ведае, якая табліцы сымбаляў выкарыстоўваецца ў Вашых зьвестках, і можа адпаведна прадстаўляць і канвэртаваць іх, але гэта не дазволіць Вам захоўваць сымбалі па-за межамі [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Базавага шматмоўнага дыяпазону].",
+       "config-mysql-charset-help": "У '''двайковым рэжыме''', MediaWiki захоўвае тэкст у кадаваньні UTF-8 у базе зьвестак у двайковых палях.\nГэта болей эфэктыўна за рэжым MySQL UTF-8, і дазваляе Вам выкарыстоўваць увесь дыяпазон сымбаляў Unicode.\n\nУ '''рэжыме UTF-8''', MySQL ведае, якая табліцы сымбаляў выкарыстоўваецца ў Вашых зьвестках, і можа адпаведна прадстаўляць і канвэртаваць іх, але гэта не дазволіць Вам захоўваць сымбалі па-за межамі [https://en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Базавага шматмоўнага дыяпазону].",
        "config-mssql-auth": "Тып аўтэнтыфікацыі:",
        "config-mssql-install-auth": "Абярыце тып аўтэнтыфікацыі, які будзе выкарыстаны для злучэньня з базай зьвестак падчас працэсу ўсталяваньня.\nКалі вы абярэце «{{int:config-mssql-windowsauth}}», будуць выкарыстаныя ўліковыя зьвесткі карыстальніка, пад якім працуе вэб-сэрвэр.",
        "config-mssql-web-auth": "Абярыце тып аўтэнтыфікацыі, які вэб-сэрвэр будзе выкарыстоўваць для злучэньня з базай зьвестак падчас звычайнага функцыянаваньня вікі.\nКалі вы абярэце «{{int:config-mssql-windowsauth}}», будуць выкарыстаныя ўліковыя зьвесткі карыстальніка, пад якім працуе вэб-сэрвэр.",
        "config-profile-no-anon": "Патрэбнае стварэньне рахунку",
        "config-profile-fishbowl": "Толькі для аўтарызаваных рэдактараў",
        "config-profile-private": "Прыватная вікі",
-       "config-profile-help": "Вікі працуюць лепей, калі Вы дазваляеце як мага большай колькасьці людзей рэдагаваць яе.\nУ MediaWiki вельмі лёгка праглядаць апошнія зьмены і выпраўляць любыя памылкі зробленыя недасьведчанымі ўдзельнікамі альбо вандаламі.\n\nТым ня менш, многія лічаць, што MediaWiki можа быць карыснай у шматлікіх іншых ролях, і часта вельмі нялёгка растлумачыць усім перавагі выкарыстаньня тэхналёгіяў вікі.\nТаму Вы маеце выбар.\n\n<strong>{{int:config-profile-wiki}}</strong> дазваляе рэдагаваць усім, нават без уваходу ў сыстэму.\nВікі з <strong>{{int:config-profile-no-anon}}</strong> дазваляе дадатковую адказнасьць, але можа адштурхнуць некаторых патэнцыйных удзельнікаў.\n\nСцэнар <strong>{{int:config-profile-fishbowl}}</strong> дазваляе рэдагаваць зацьверджаным удзельнікам, але ўсе могуць праглядаць старонкі іх гісторыю.\n<strong>{{int:config-profile-private}}</strong> дазваляе праглядаць і рэдагаваць старонкі толькі зацьверджаным удзельнікам.\n\nБольш складаныя правы ўдзельнікаў даступныя пасьля ўсталяваньня, глядзіце [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights адпаведную старонку дакумэнтацыі].",
+       "config-profile-help": "Вікі працуюць лепей, калі Вы дазваляеце як мага большай колькасьці людзей рэдагаваць яе.\nУ MediaWiki вельмі лёгка праглядаць апошнія зьмены і выпраўляць любыя памылкі зробленыя недасьведчанымі ўдзельнікамі альбо вандаламі.\n\nТым ня менш, многія лічаць, што MediaWiki можа быць карыснай у шматлікіх іншых ролях, і часта вельмі нялёгка растлумачыць усім перавагі выкарыстаньня тэхналёгіяў вікі.\nТаму Вы маеце выбар.\n\n<strong>{{int:config-profile-wiki}}</strong> дазваляе рэдагаваць усім, нават без уваходу ў сыстэму.\nВікі з <strong>{{int:config-profile-no-anon}}</strong> дазваляе дадатковую адказнасьць, але можа адштурхнуць некаторых патэнцыйных удзельнікаў.\n\nСцэнар <strong>{{int:config-profile-fishbowl}}</strong> дазваляе рэдагаваць зацьверджаным удзельнікам, але ўсе могуць праглядаць старонкі іх гісторыю.\n<strong>{{int:config-profile-private}}</strong> дазваляе праглядаць і рэдагаваць старонкі толькі зацьверджаным удзельнікам.\n\nБольш складаныя правы ўдзельнікаў даступныя пасьля ўсталяваньня, глядзіце [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights адпаведную старонку дакумэнтацыі].",
        "config-license": "Аўтарскія правы і ліцэнзія:",
        "config-license-none": "Без інфармацыі пра ліцэнзію",
        "config-license-cc-by-sa": "Creative Commons Attribution Share Alike",
        "config-email-sender-help": "Увядзіце адрас электроннай пошты для вяртаньня ў якасьці адрасу дасылаемых электронных лістоў.\nСюды будуць дасылацца неатрыманыя электронныя лісты.\nШматлікія паштовыя сэрвэры патрабуюць, каб хаця б назва дамэну была слушнай.",
        "config-upload-settings": "Загрузкі выяваў і файлаў",
        "config-upload-enable": "Дазволіць загрузку файлаў",
-       "config-upload-help": "Дазвол загрузкі файлаў можа патэнцыйна пагражаць бясьпекі сэрвэра.\nДадатковую інфармацыю можна атрымаць ў [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security разьдзеле бясьпекі].\n\nКаб дазволіць загрузку файлаў, зьмяніце рэжым падкаталёга <code>images</code> у карэннай дырэкторыі MediaWiki так, каб ўэб-сэрвэр меў доступ на запіс.\nПотым дазвольце гэтую магчымасьць.",
+       "config-upload-help": "Дазвол загрузкі файлаў можа патэнцыйна пагражаць бясьпецы сэрвэра.\nДадатковую інфармацыю можна атрымаць ў [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security разьдзеле бясьпекі].\n\nКаб дазволіць загрузку файлаў, зьмяніце рэжым падкаталёгу <code>images</code> у карэннай дырэкторыі MediaWiki так, каб вэб-сэрвэр меў доступ на запіс.\nПотым дазвольце гэтую магчымасьць.",
        "config-upload-deleted": "Дырэкторыя для выдаленых файлаў:",
        "config-upload-deleted-help": "Выберыце дырэкторыю, у якой будуць захоўвацца выдаленыя файлы.\nУ ідэальным выпадку, яна не павінна мець доступу з Інтэрнэту.",
        "config-logo": "URL-адрас лягатыпу:",
        "config-logo-help": "Афармленьне MediaWiki па змоўчваньні ўключае прастору для лягатыпу памерам 135×160 піксэляў у верхнім левым куце.\nЗагрузіце выяву адпаведнага памеру і ўвядзіце тут URL-адрас.\n\nВы можаце ўжыць <code>$wgStylePath</code> або <code>$wgScriptPath</code>, калі ваш лягатып знаходзіцца адносна гэтых шляхоў.\n\nКалі Вы не жадаеце мець ніякага лягатыпу, пакіньце поле пустым.",
        "config-instantcommons": "Дазволіць Instant Commons",
-       "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons Instant Commons] — магчымасьць, якая дазваляе вікі выкарыстоўваць выявы, гукі і іншыя мэдыя, якія знаходзяцца на сайце [//commons.wikimedia.org/ Wikimedia Commons].\nКаб гэта зрабіць, MediaWiki патрабуе доступу да Інтэрнэту.\n\nКаб даведацца болей пра гэтую магчымасьць, уключаючы інструкцыю пра тое, як яе ўстанавіць ў любой вікі, акрамя Wikimedia Commons, глядзіце [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos дакумэнтацыю].",
+       "config-instantcommons-help": "[https://www.mediawiki.org/wiki/InstantCommons Instant Commons] — магчымасьць, якая дазваляе вікі выкарыстоўваць выявы, гукі і іншыя мэдыя, якія знаходзяцца на сайце [https://commons.wikimedia.org/ Wikimedia Commons].\nКаб гэта зрабіць, MediaWiki патрабуе доступу да Інтэрнэту.\n\nКаб даведацца болей пра гэтую магчымасьць, у тым ліку пра інструкцыю, як яе ўсталяваць для іншых вікі, акрамя Wikimedia Commons, глядзіце [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos дакумэнтацыю].",
        "config-cc-error": "Выбар ліцэнзіі Creative Commons ня даў вынікаў.\nУвядзіце назву ліцэнзіі ўручную.",
        "config-cc-again": "Выберыце яшчэ раз…",
        "config-cc-not-chosen": "Выберыце, якую ліцэнзію Creative Commons Вы жадаеце выкарыстоўваць і націсьніце «proceed».",
        "config-install-extension-tables": "Стварэньне табліцаў для ўключаных пашырэньняў",
        "config-install-mainpage-failed": "Немагчыма ўставіць галоўную старонку: $1",
        "config-install-done": "<strong>Віншуем!</strong>\nВы ўсталявалі MediaWiki.\n\nПраграма ўсталяваньня стварыла файл <code>LocalSettings.php</code>.\nЁн утрымлівае ўсе Вашыя налады.\n\nВам неабходна загрузіць яго і захаваць у карэнную дырэкторыю Вашай вікі (у тую ж самую дырэкторыю, дзе знаходзіцца index.php). Загрузка павінна пачацца аўтаматычна.\n\nКалі загрузка не пачалася, ці Вы яе адмянілі, Вы можаце перазапусьціць яе націснуўшы на спасылку ніжэй:\n\n$3\n\n<strong>Заўвага</strong>: калі Вы гэтага ня зробіце зараз, то створаны файл ня будзе даступны Вам потым, калі Вы выйдзеце з праграмы ўсталяваньня безь яго загрузкі.\n\nКалі Вы гэта зробіце, Вы можаце <strong>[$2 ўвайсьці ў Вашую вікі]</strong>.",
+       "config-install-done-path": "<strong>Віншуем!</strong>\nВы ўсталявалі MediaWiki.\n\nПраграма ўсталёўкі стварыла файл <code>LocalSettings.php</code>. Ён утрымлівае ўсе вашыя налады.\n\nВам трэба спампаваць яго і пакласьці ў <code>$4</code>. Спампоўка павінна пачацца аўтаматычна.\n\nКалі спампоўка не пачалася або вы адмянілі яе, вы можаце пачаць яе наноў, калі націсьніце на наступную спасылку:\n\n$3\n\n<strong>Заўвага:</strong> Калі вы ня зробіце гэта зараз, то створаны файл ня будзе даступны вам па выхадзе з праграмы безь яго спампоўкі.\n\nКалі вы зробіце гэта, вы можаце <strong>[$2 ўвайсьці ў вашую вікі]</strong>.",
        "config-download-localsettings": "Загрузіць <code>LocalSettings.php</code>",
        "config-help": "дапамога",
        "config-help-tooltip": "націсьніце, каб разгарнуць",
        "config-nofile": "Файл «$1» ня знойдзены. Ці быў ён выдалены?",
-       "config-extension-link": "Ці ведаеце вы, што вашая вікі падтрымлівае [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions пашырэньні]?\n\nВы можаце праглядзець [//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category пашырэньні паводле катэгорыяў].",
+       "config-extension-link": "Ці ведаеце вы, што вашая вікі падтрымлівае [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions пашырэньні]?\n\nВы можаце праглядзець [https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category пашырэньні паводле катэгорыяў] або [https://www.mediawiki.org/wiki/Extension_Matrix матрыцу пашырэньняў], каб пабачыць поўны сьпіс.",
        "mainpagetext": "<strong>MediaWiki была ўсталяваная.</strong>",
-       "mainpagedocfooter": "Глядзіце [//meta.wikimedia.org/wiki/Help:Contents дапаможнік карыстальніка] для атрыманьня інфармацыі па карыстаньні вікі-праграмамі.\n\n== З чаго пачаць ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Сьпіс парамэтраў канфігурацыі]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Частыя пытаньні MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Рассылка паведамленьняў пра зьяўленьне новых вэрсіяў MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Пераклад MediaWiki на вашую мову]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Даведайцеся, як змагацца з спамам у вашай вікі]"
+       "mainpagedocfooter": "Глядзіце [https://meta.wikimedia.org/wiki/Help:Contents дапаможнік карыстальніка] для атрыманьня інфармацыі па карыстаньні вікі-праграмамі.\n\n== З чаго пачаць ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Сьпіс парамэтраў канфігурацыі]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Частыя пытаньні MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Рассылка паведамленьняў пра зьяўленьне новых вэрсіяў MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Пераклад MediaWiki на вашую мову]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Даведайцеся, як змагацца з спамам у вашай вікі]"
 }
index 028ef62..92c00b1 100644 (file)
@@ -16,5 +16,5 @@
        "config-page-options": "Настройкі",
        "config-upload-settings": "Загрузка выяў і файлаў",
        "mainpagetext": "'''MediaWiki паспяхова ўсталяваная.'''",
-       "mainpagedocfooter": "Гл. [//meta.wikimedia.org/wiki/Help:Contents Дапаможнік карыстальніка (англ.)] па далейшыя звесткі аб карыстанні вікі-праграмамі.\n\n== З чаго пачаць ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Пералік параметраў канфігурацыі (англ.)]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ ЧАПЫ MediaWiki (англ.)]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Ліставанне аб выпусках MediaWiki (англ.)]"
+       "mainpagedocfooter": "Гл. [https://meta.wikimedia.org/wiki/Help:Contents Дапаможнік карыстальніка (англ.)] па далейшыя звесткі аб карыстанні вікі-праграмамі.\n\n== З чаго пачаць ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Пералік параметраў канфігурацыі (англ.)]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ ЧАПЫ MediaWiki (англ.)]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Ліставанне аб выпусках MediaWiki (англ.)]"
 }
index 68d5eaa..cc31402 100644 (file)
        "config-restart": "Да, започване отначало",
        "config-welcome": "=== Проверка на средата ===\nЩе бъдат извършени основни проверки, които да установят дали средата е подходяща за инсталиране на МедияУики.\nАко е необходима помощ по време на инсталацията, резултатите от направените проверки трябва също да бъдат предоставени.",
        "config-copyright": "=== Авторски права и Условия ===\n\n$1\n\nТази програма е свободен софтуер, който може да се променя и/или разпространява според Общия публичен лиценз на GNU, както е публикуван от Free Software Foundation във версия на Лиценза 2 или по-късна версия.\n\nТази програма се разпространява с надеждата, че ще е полезна, но '''без каквито и да е гаранции'''; без дори косвена гаранция за '''продаваемост''' или '''прогодност за конкретна употреба'''.\nЗа повече подробности се препоръчва преглеждането на Общия публичен лиценз на GNU.\n\nКъм програмата трябва да е приложено <doclink href=Copying>копие на Общия публичен лиценз на GNU</doclink>; ако не, можете да пишете на Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. или да [http://www.gnu.org/copyleft/gpl.html го прочетете онлайн].",
-       "config-sidebar": "* [//www.mediawiki.org Сайт на МедияУики]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Наръчник на потребителя]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Наръчник на администратора]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ ЧЗВ]\n----\n* <doclink href=Readme>Документация</doclink>\n* <doclink href=ReleaseNotes>Бележки за версията</doclink>\n* <doclink href=Copying>Авторски права</doclink>\n* <doclink href=UpgradeDoc>Обновяване</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org Сайт на МедияУики]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Наръчник на потребителя]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Наръчник на администратора]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ ЧЗВ]\n----\n* <doclink href=Readme>Документация</doclink>\n* <doclink href=ReleaseNotes>Бележки за версията</doclink>\n* <doclink href=Copying>Авторски права</doclink>\n* <doclink href=UpgradeDoc>Обновяване</doclink>",
        "config-env-good": "Средата беше проверена.\nИнсталирането на МедияУики е възможно.",
        "config-env-bad": "Средата беше проверена.\nНе е възможна инсталация на МедияУики.",
        "config-env-php": "Инсталирана е версия на PHP $1.",
        "config-env-hhvm": "HHVM $1 е инсталиран.",
        "config-unicode-using-intl": "Използване на разширението [http://pecl.php.net/intl intl PECL] за нормализация на Уникод.",
-       "config-unicode-pure-php-warning": "'''Предупреждение''': [http://pecl.php.net/intl Разширението intl PECL] не е налично за справяне с нормализацията на Уникод, превключване към по-бавното изпълнение на чист PHP.\nАко сайтът е с голям трафик, препоръчително е запознаването с [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations нормализацията на Уникод].",
-       "config-unicode-update-warning": "'''Предупреждение''': Инсталираната версия на Обвивката за нормализация на Unicode използва по-старата версия на библиотеката на [http://site.icu-project.org/ проекта ICU].\nНеобходимо е да [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations инсталирате по-нова верия], в случай че сте загрижени за използването на Unicode.",
+       "config-unicode-pure-php-warning": "'''Предупреждение''': [http://pecl.php.net/intl Разширението intl PECL] не е налично за справяне с нормализацията на Уникод, превключване към по-бавното изпълнение на чист PHP.\nАко сайтът е с голям трафик, препоръчително е запознаването с [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations нормализацията на Уникод].",
+       "config-unicode-update-warning": "'''Предупреждение''': Инсталираната версия на Обвивката за нормализация на Unicode използва по-старата версия на библиотеката на [http://site.icu-project.org/ проекта ICU].\nНеобходимо е да [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations инсталирате по-нова верия], в случай че сте загрижени за използването на Unicode.",
        "config-no-db": "Не може да бъде открит подходящ драйвер за база данни! Необходимо е да инсталирате драйвер за база данни за PHP.\n{{PLURAL:$2|Поддържа се следния тип|Поддържат се следните типове}} бази от данни: $1.\n\nАко сами сте компилирали PHP, преконфигурирайте го с включен клиент за база данни, например чрез използване на <code>./configure --with-mysql</code>.\nАко сте инсталирали PHP от пакет за Debian или Ubuntu, необходимо е също така да инсталирате и модула <code>php5-mysql</code>.",
        "config-outdated-sqlite": "<strong>Предупреждение:</strong> имате инсталиран SQLite  $1, а минималната допустима версия е $2. SQLite ще бъде недостъпна за ползване.",
        "config-no-fts3": "'''Предупреждение''': SQLite е компилирана без [//sqlite.org/fts3.html модула FTS3], затова възможностите за търсене няма да са достъпни.",
-       "config-register-globals-error": "<strong>Грешка: Опцията <code>[http://php.net/register_globals register_globals]</code> на PHP е включена.\nЗа да продължи инсталацията, тази опция трябва да бъде изключена.</strong>\nВижте [https://www.mediawiki.org/wiki/register_globals https://www.mediawiki.org/wiki/register_globals] за да видите как да направите това.",
-       "config-magic-quotes-gpc": "<strong>Фатална грешка: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-gpc magic_quotes_gpc] е включена!</strong>\nТази опция може да повреди данните непредсказуемо.\nМедияУики не може да се инсталира и използва, ако тази опция е включена.",
-       "config-magic-quotes-runtime": "'''Фатално: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] е активирана!'''\nТова може да повреди непредвидимо въвеждането на данните.\nИнсталацията на МедияУики е невъзможна докато тази настройка не бъде изключена.",
-       "config-magic-quotes-sybase": "'''Фатално: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] е активирана!'''\nТова може да повреди непредвидимо въвеждането на данните.\nИнсталацията на МедияУики е невъзможна докато тази настройка не бъде изключена.",
-       "config-mbstring": "'''Фатално: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] е активирана!'''\nТова може да повреди непредвидимо въвеждането на данните.\nИнсталацията на МедияУики е невъзможна докато тази настройка не бъде изключена.",
-       "config-safe-mode": "'''Предупреждение:''' PHP работи в [http://www.php.net/features.safe-mode безопасен режим].\nТова може да създаде проблеми, особено ако качването на файлове е разрешено, както и при поддръжката на <code>math</code>.",
-       "config-xml-bad": "За PHP липсва XML модул.\nМедияуики няма да работи в тази конфигурация, тъй като се изисква функционалност на този модул.\nМоже би ще трябва да инсталирате RPM-пакет php-xml.",
        "config-pcre-old": "<strong>Фатална грешка:</strong> Изисква се PCRE версия $1 или по-нова.\nИзпълнимият файл на PHP е свързан с PCRE версия $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/Повече информация за PCRE].",
        "config-pcre-no-utf8": "'''Фатално''': Модулът PCRE на PHP изглежда е компилиран без поддръжка на PCRE_UTF8.\nЗа да функционира правилно, МедияУики изисква поддръжка на UTF-8.",
        "config-memory-raised": "<code>memory_limit</code> на PHP е $1, увеличаване до $2.",
        "config-memory-bad": "'''Предупреждение:''' <code>memory_limit</code> на PHP е $1.\nСтойността вероятно е твърде ниска.\nВъзможно е инсталацията да се провали!",
-       "config-ctype": "'''Фатално''': Необходимо е PHP да бъде компилиран с поддръжка на [http://www.php.net/manual/en/ctype.installation.php разширението Ctype].",
-       "config-iconv": "<strong>Фатална грешка:</strong> PHP трябва да бъде компилиран с поддръжка на разширението [http://www.php.net/manual/bg/iconv.installation.php iconv].",
-       "config-json": "<strong>Фатална грешка:</strong> PHP е компилирано без поддръжка на JSON.\nТрябва да инсталирате JSON разширението за PHP или разширението [http://pecl.php.net/package/jsonc PECL jsonc] преди да продължите с инсталацията на МедияУики.\n* Разширението за PHP е включено Red Hat Enterprise Linux (CentOS) 5 и 6, но трябва да се включи в <code>/etc/php.ini</code> или <code>/etc/php.d/json.ini</code>.\n* Някои Линукс дистрибуции излезли след май 2013 не включват това PHP разширение, като вместо него в дистрибуцията е включено PECL разширение като <code>php5-json</code> или <code>php-pecl-jsonc</code>.",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] е инсталиран",
        "config-apc": "[http://www.php.net/apc APC] е инсталиран",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] е инсталиран",
-       "config-no-cache": "'''Предупреждение:''' Не бяха открити [http://www.php.net/apc APC] [http://xcache.lighttpd.net/ XCache] или [http://www.iis.net/download/WinCacheForPhp WinCache].\nОбектното кеширане не е включено.",
        "config-mod-security": "<strong>Предупреждение:</strong> [http://modsecurity.org/ mod_security]/mod_security2 е включено на вашия уеб сървър. Много от обичайните му конфигурации пораждат проблеми с МедияУики и друг софтуер, който позволява публикуване на произволно съдържание.\nАко е възможно, моля изключете го. В противен случай се обърнете към [http://modsecurity.org/documentation/ документацията на mod_security] или се свържете с поддръжката на хостинга си, ако се сблъскате със случайни грешки.",
        "config-diff3-bad": "GNU diff3 не беше намерен.",
        "config-git": "Налична е системата за контрол на версиите Git: <code>$1</code>.",
@@ -85,7 +74,7 @@
        "config-no-cli-uri": "<strong>Внимание:</strong> Не е зададен параметър <code>--scriptpath</code>, стойност по подразбиране: <code>$1</code>.",
        "config-using-server": "Използване на сървърното име \"<nowiki>$1</nowiki>\".",
        "config-using-uri": "Използване на сървърния адрес (URL) \"<nowiki>$1$2</nowiki>\".",
-       "config-uploads-not-safe": "'''Предупреждение:''' Папката по подразбиране за качване <code>$1</code> е уязвима от изпълнение на зловредни скриптове.\nВъпреки че МедияУики извършва проверка за заплахи в сигурността на всички качени файлове, силно препоръчително е да се [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security затвори тази уязвимост в сигурността] преди разрешаване за качване на файлове.",
+       "config-uploads-not-safe": "'''Предупреждение:''' Папката по подразбиране за качване <code>$1</code> е уязвима от изпълнение на зловредни скриптове.\nВъпреки че МедияУики извършва проверка за заплахи в сигурността на всички качени файлове, силно препоръчително е да се [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security затвори тази уязвимост в сигурността] преди разрешаване за качване на файлове.",
        "config-no-cli-uploads-check": "<strong>Предупреждение:</strong> Директорията по подразбиране за качване на файлове (<code>$1</code>) не е проверена за уязвимости при изпълнение на произволен скрипт по време на инсталацията от командния ред.",
        "config-brokenlibxml": "Вашата система използва комбинация от версии на PHP и libxml2, които са с много грешки и могат да причинят скрити повреди на данните в МедияУики или други уеб приложения.\nНеобходимо е обновяване до libxml2 2.7.3 или по-нова версия ([https://bugs.php.net/bug.php?id=45996 докладвана грешка при PHP]).\nИнсталацията беше прекратена.",
        "config-suhosin-max-value-length": "Suhosin е инсталиран и ограничава дължината GET параметъра <code>length</code> на $1 байта. Компонентът на МедияУики ResourceLoader ще може да пренебрегне частично това ограничение, но това ще намали производителността. По възможност е препоръчително да се настрои <code>suhosin.get.max_value_length</code> на 1024 или по-голяма стойност в <code>php.ini</code> и в LocalSettings.php да се настрои <code>$wgResourceLoaderMaxQueryLength</code> със същата стойност.",
        "config-db-wiki-help": "Въвежда се потребителско име и парола, които ще се използват при нормалното функциониране на уикито.\nАко сметката не съществува и използваната при инсталацията сметка има необходимите права, тази потребителска сметка ще бъде създадена с минималните необходими права за работа с уикито.",
        "config-db-prefix": "Представка за таблиците в базата от данни:",
        "config-db-prefix-help": "Ако е необходимо да се сподели базата от данни между няколко уикита или между МедияУики и друго уеб приложение, може да се добави представка пред имената на таблиците, за да се избегнат конфликти.\nНе се използват интервали.\n\nТова поле обикновено се оставя празно.",
-       "config-db-charset": "Набор от знаци на базата от данни:",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 бинарно",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "MySQL 4.0 с обратна съвестимост с UTF-8",
        "config-mysql-old": "Изисква се MySQL $1 или по-нова версия, наличната версия е $2.",
        "config-db-port": "Порт на базата от данни:",
        "config-db-schema": "Схема за МедияУики",
        "config-mysql-charset": "Набор от символи в базата от данни:",
        "config-mysql-binary": "Бинарен",
        "config-mysql-utf8": "UTF-8",
-       "config-mysql-charset-help": "В '''бинарен режим''' МедияУики съхранява текстовете в UTF-8 в бинарни полета в базата от данни.\nТова е по-ефективно от UTF-8 режима на MySQL и позволява използването на пълния набор от символи в Уникод.\n\nВ '''UTF-8 режим''' MySQL ще знае в кой набор от символи са данните от уикито и ще може да ги показва и променя по подходящ начин, но няма да позволява складиране на символи извън [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Основния многоезичен набор].",
+       "config-mysql-charset-help": "В '''бинарен режим''' МедияУики съхранява текстовете в UTF-8 в бинарни полета в базата от данни.\nТова е по-ефективно от UTF-8 режима на MySQL и позволява използването на пълния набор от символи в Уникод.\n\nВ '''UTF-8 режим''' MySQL ще знае в кой набор от символи са данните от уикито и ще може да ги показва и променя по подходящ начин, но няма да позволява складиране на символи извън [https://en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Основния многоезичен набор].",
        "config-mssql-auth": "Тип на удостоверяването:",
        "config-mssql-sqlauth": "Удостоверяване чрез SQL Server",
        "config-mssql-windowsauth": "Удостоверяване чрез Windows",
        "config-profile-no-anon": "Необходимо е създаване на сметка",
        "config-profile-fishbowl": "Само одобрени редактори",
        "config-profile-private": "Затворено уики",
-       "config-profile-help": "Уикитата функционират най-добре, когато позволяват на възможно най-много хора да ги редактират.\nВ МедияУики лесно се преглеждат последните промени и се възстановяват поражения от недобронамерени потребители.\n\nВъпреки това мнозина смятат МедияУики за полезен софтуер по различни начини и често е трудно да се убедят всички от предимствата на уики модела.\nЗатова се предоставя възможност за избор.\n\nУикитата от типа '''{{int:config-profile-wiki}}''' позволяват на всички потребители да редактират, дори и без регистрация.\nУикитата от типа '''{{int:config-profile-no-anon}}''' позволяват достъп до страниците и редактирането им само след създаване на потребителска сметка.\n\nУики, което е '''{{int:config-profile-fishbowl}}''' позволява на всички да преглеждат страниците, но само предварително одобрени редактори могат да редактират съдържанието.\nВ '''{{int:config-profile-private}}''' само предварително одобрени потребители могат да четат и редактират съдържанието.\n\nДетайлно обяснение на конфигурациите на потребителските права е достъпно след инсталацията в [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights Наръчника за потребителски права].",
+       "config-profile-help": "Уикитата функционират най-добре, когато позволяват на възможно най-много хора да ги редактират.\nВ МедияУики лесно се преглеждат последните промени и се възстановяват поражения от недобронамерени потребители.\n\nВъпреки това мнозина смятат МедияУики за полезен софтуер по различни начини и често е трудно да се убедят всички от предимствата на уики модела.\nЗатова се предоставя възможност за избор.\n\nУикитата от типа '''{{int:config-profile-wiki}}''' позволяват на всички потребители да редактират, дори и без регистрация.\nУикитата от типа '''{{int:config-profile-no-anon}}''' позволяват достъп до страниците и редактирането им само след създаване на потребителска сметка.\n\nУики, което е '''{{int:config-profile-fishbowl}}''' позволява на всички да преглеждат страниците, но само предварително одобрени редактори могат да редактират съдържанието.\nВ '''{{int:config-profile-private}}''' само предварително одобрени потребители могат да четат и редактират съдържанието.\n\nДетайлно обяснение на конфигурациите на потребителските права е достъпно след инсталацията в [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights Наръчника за потребителски права].",
        "config-license": "Авторски права и лиценз:",
        "config-license-none": "Без лиценз",
        "config-license-cc-by-sa": "Криейтив Комънс Признание-Споделяне на споделеното",
        "config-email-sender-help": "Въвежда се адрес за електронна поща, който ще се използва за обратен адрес при изходящи е-писма.\nТова е адресът, на който ще се получават върнатите и неполучени писма.\nМного е-пощенски сървъри изискват поне домейн името да е валидно.",
        "config-upload-settings": "Картинки и качване на файлове",
        "config-upload-enable": "Позволяне качването на файлове",
-       "config-upload-help": "Качването на файлове е възможно да доведе до пробели със сигурността на сървъра.\nПовече информация по темата има в [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security раздела за сигурност] в Наръчника.\n\nЗа позволяване качването на файлове, необходимо е уебсървърът да може да записва в поддиректорията на МедияУики <code>images</code>.\nСлед като това условие е изпълнено, функционалността може да бъде активирана.",
+       "config-upload-help": "Качването на файлове е възможно да доведе до пробели със сигурността на сървъра.\nПовече информация по темата има в [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security раздела за сигурност] в Наръчника.\n\nЗа позволяване качването на файлове, необходимо е уебсървърът да може да записва в поддиректорията на МедияУики <code>images</code>.\nСлед като това условие е изпълнено, функционалността може да бъде активирана.",
        "config-upload-deleted": "Директория за изтритите файлове:",
        "config-upload-deleted-help": "Избиране на директория, в която ще се складират изтритите файлове.\nВ най-добрия случай тя не трябва да е достъпна през уеб.",
        "config-logo": "URL адрес на логото:",
        "config-logo-help": "Обликът по подразбиране на МедияУики вклчва място с размери 135х160 пиксела за лого над страничното меню.\nАко има наличен файл с подходящ размер, неговият адрес може да бъде посочен тук.\n\nМоже да се използва <code>$wgStylePath</code> или <code>$wgScriptPath</code> ако логото е относително към тези пътища.\n\nАко не е необходимо лого, полето може да се остави празно.",
        "config-instantcommons": "Включване на Instant Commons",
-       "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons Instant Commons] е функционалност, която позволява на уикитата да използват картинки, звуци и друга медиа от сайта на Уикимедия [//commons.wikimedia.org/ Общомедия].\nЗа да е възможно това, МедияУики изисква достъп до Интернет.\n\nПовече информация за тази функционалност, както и инструкции за настройване за други уикита, различни от Общомедия, е налична в [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos наръчника].",
+       "config-instantcommons-help": "[https://www.mediawiki.org/wiki/InstantCommons Instant Commons] е функционалност, която позволява на уикитата да използват картинки, звуци и друга медиа от сайта на Уикимедия [https://commons.wikimedia.org/ Общомедия].\nЗа да е възможно това, МедияУики изисква достъп до Интернет.\n\nПовече информация за тази функционалност, както и инструкции за настройване за други уикита, различни от Общомедия, е налична в [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos наръчника].",
        "config-cc-error": "Избирането на лиценз на Криейтив Комънс не даде резултат.\nНеобходимо е името на лиценза да бъде въведено ръчно.",
        "config-cc-again": "Повторно избиране...",
        "config-cc-not-chosen": "Изберете кой лиценз на Криейтив Комънс желаете и щракнете \"proceed\".",
        "config-download-localsettings": "Изтегляне на <code>LocalSettings.php</code>",
        "config-help": "помощ",
        "config-nofile": "Файлът „$1“ не може да бъде открит. Да не е бил изтрит?",
-       "config-extension-link": "Знаете ли, че това уики поддържа [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions разширения]?\n\nМожете да разгледате [//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category разширенията по категория] или [//www.mediawiki.org/wiki/Extension_Matrix Матрицата на разширенията] за пълен списък на разширенията.",
+       "config-extension-link": "Знаете ли, че това уики поддържа [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions разширения]?\n\nМожете да разгледате [https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category разширенията по категория] или [https://www.mediawiki.org/wiki/Extension_Matrix Матрицата на разширенията] за пълен списък на разширенията.",
        "mainpagetext": "'''Уикито беше успешно инсталирано.'''",
-       "mainpagedocfooter": "Разгледайте [//meta.wikimedia.org/wiki/Help:Contents ръководството] за подробна информация относно използването на уики софтуера.\n\n== Първи стъпки ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Настройки за конфигуриране]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ ЧЗВ за МедияУики]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Пощенски списък относно нови версии на МедияУики]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Локализиране на МедияУики]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Научете как да се справяте със спама във вашето уики]"
+       "mainpagedocfooter": "Разгледайте [https://meta.wikimedia.org/wiki/Help:Contents ръководството] за подробна информация относно използването на уики софтуера.\n\n== Първи стъпки ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Настройки за конфигуриране]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ ЧЗВ за МедияУики]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Пощенски списък относно нови версии на МедияУики]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Локализиране на МедияУики]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Научете как да се справяте със спама във вашето уики]"
 }
index c1f641c..18c503c 100644 (file)
@@ -21,7 +21,7 @@
        "config-page-install": "لچینتین",
        "config-page-complete": "کامل!",
        "config-page-readme": "نا بوان",
-       "config-sidebar": "* [//www.mediawiki.org میڈیاویکی ئی بُنیادین تاکدیم]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents کار زوروکانی کومک و رهنمایی]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents مدیر ئی رهنمایی]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ رواجین سوج و سوالان]\n----\n* <doclink href=Readme>نا بووان</doclink>\n* <doclink href=ReleaseNotes>شینک بوته ئین یاداشتان</doclink>\n* <doclink href=Copying>نسخه برداری</doclink>\n* <doclink href=UpgradeDoc>ارتقا</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org میڈیاویکی ئی بُنیادین تاکدیم]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents کار زوروکانی کومک و رهنمایی]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents مدیر ئی رهنمایی]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ رواجین سوج و سوالان]\n----\n* <doclink href=Readme>نا بووان</doclink>\n* <doclink href=ReleaseNotes>شینک بوته ئین یاداشتان</doclink>\n* <doclink href=Copying>نسخه برداری</doclink>\n* <doclink href=UpgradeDoc>ارتقا</doclink>",
        "config-env-good": "محیط بررسی بوته.\nشما ئه توانیت میڈیاویکی ئا نصب کنیت.",
        "config-apc": "[http://www.php.net/apc APC] نصب بوت.",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] نصب بوت.",
index f123a10..4a4dfdd 100644 (file)
@@ -6,5 +6,5 @@
                ]
        },
        "mainpagetext": "'''MediaWiki sudah tapasang awan sukses'''.",
-       "mainpagedocfooter": "Carii panjalasan [//meta.wikimedia.org/wiki/Help:Contents Panduan Pamuruk] gasan mamuruk parangkat lunak wiki\n\n== Gasan bamula ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Daptar konpigurasi setélan]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki nang rancak ditakunakan]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki rilis milis]"
+       "mainpagedocfooter": "Carii panjalasan [https://meta.wikimedia.org/wiki/Help:Contents Panduan Pamuruk] gasan mamuruk parangkat lunak wiki\n\n== Gasan bamula ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Daptar konpigurasi setélan]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki nang rancak ditakunakan]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki rilis milis]"
 }
index 02e840b..3c6d530 100644 (file)
@@ -14,7 +14,8 @@
        "config-information": "তথ্য",
        "config-localsettings-upgrade": "<code>LocalSettings.php</code> ফাইলটি মুছে ফেলা হয়েছে। এই ইন্সটলেশনটি আরো উন্নত করতে দয়া করে <code>$wgUpgradeKey</code> কোডটি বক্সে দিন। আপনি এটি <code>LocalSettings.php</code> -এ পাবেন।",
        "config-localsettings-key": "হালনাগাদ কি",
-       "config-localsettings-badkey": "আপনি যেই চাবিটি দিয়েছেন তা সঠিক নয়।",
+       "config-localsettings-badkey": "আপনি হালনাগাদের যেই চাবিটি দিয়েছেন তা সঠিক নয়।",
+       "config-upgrade-key-missing": "মিডিয়াউইকির একটি বিদ্যমান ইনস্টলেশন সনাক্ত করা হয়েছে। \nএই ইনস্টলেশন হালনাগাদ করার জন্য, দয়া করে নিম্নলিখিত লাইন আপনার <code>LocalSettings.php</code> -এর নিচে স্থাপন করুন:\n\n$1",
        "config-session-error": "সেশন শুরুতে ত্রুটি: $1",
        "config-your-language": "আপনার ভাষা:",
        "config-your-language-help": "ইন্সটল করা সময় ব্যবহারের জন্য ভাষা নির্বাচন করুন।",
@@ -55,8 +56,6 @@
        "config-db-password": "ডেটাবেজের পাসওয়ার্ড:",
        "config-db-wiki-account": "সাধারণ অভিযানের জন্য ব্যবহারকারী একাউন্ট",
        "config-db-prefix": "উপাত্তশালা ছক প্রিফিক্স:",
-       "config-db-charset": "ডেটাবেজের অক্ষর সেট",
-       "config-charset-mysql5-binary": "MySQL ৪.১/৫.০ বাইনারি",
        "config-db-port": "ডেটাবেজ পোর্ট:",
        "config-db-schema": "মিডিয়াউইকির স্কিমা",
        "config-pg-test-error": "উপাত্তশালা $1-এর সাথে সংযোগ দেয়া সম্ভব হয়নি। কারন:$2",
@@ -96,6 +95,7 @@
        "config-admin-password-blank": "প্রশাসক অ্যাকাউন্টের জন্য পাসওয়ার্ড প্রবেশ করান।",
        "config-admin-password-mismatch": "আপনি যে দুটি পাসওয়ার্ড দিয়েছেন তারা পরস্পর মেলেনি।",
        "config-admin-email": "ইমেইল ঠিকানা:",
+       "config-admin-error-bademail": "আপনি একটি অবৈধ ইমেল ঠিকানা দিয়েছেন।",
        "config-optional-continue": "আরও প্রশ্ন জিজ্ঞেস করুন।",
        "config-optional-skip": "আমি ইতিমধ্যেই বিরক্ত হয়ে গেছি, উইকিটি ইন্সটল করো।",
        "config-profile": "ব্যবহারকারী অধিকার প্রোফাইল:",
        "config-install-keys": "গোপন কি তৈরি",
        "config-help": "সাহায্য",
        "mainpagetext": "<strong>মিডিয়াউইকি ইনস্টল করা হয়েছে।</strong>",
-       "mainpagedocfooter": "কীভাবে উইকি সফটওয়্যারটি ব্যবহারকার করবেন, তা জানতে [//meta.wikimedia.org/wiki/Help:Contents ব্যবহারকারী সহায়িকা] দেখুন।\n\n== কোথা থেকে শুরু করবেন ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings কনফিগারেশন সেটিংস তালিকা]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ প্রশ্নোত্তরে মিডিয়াউইকি]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce মিডিয়াউইকি মুক্তির মেইলিং লিস্ট]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources আপনার ভাষার জন্য মিডিয়াউইকি স্থানীয়করণ করুন]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam আপনার উইকিতে স্প্যামের সাথে লড়াই করার উপায় সম্পর্কে জানুন]"
+       "mainpagedocfooter": "কীভাবে উইকি সফটওয়্যারটি ব্যবহারকার করবেন, তা জানতে [https://meta.wikimedia.org/wiki/Help:Contents ব্যবহারকারী সহায়িকা] দেখুন।\n\n== কোথা থেকে শুরু করবেন ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings কনফিগারেশন সেটিংস তালিকা]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ প্রশ্নোত্তরে মিডিয়াউইকি]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce মিডিয়াউইকি মুক্তির মেইলিং লিস্ট]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources আপনার ভাষার জন্য মিডিয়াউইকি স্থানীয়করণ করুন]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam আপনার উইকিতে স্প্যামের সাথে লড়াই করার উপায় সম্পর্কে জানুন]"
 }
index eac6da3..bbcb429 100644 (file)
@@ -1,5 +1,5 @@
 {
        "@metadata": [],
        "mainpagetext": "'''মিডিয়াউইকি হবাবালা ইয়া ইন্সটল ইল.'''",
-       "mainpagedocfooter": "উইকি সফটৱ্যার এহান আতানির বারে দরকার ইলে [//meta.wikimedia.org/wiki/Help:Contents আতাকুরার গাইড]হানর পাঙলাক নেগা।\n\n== অকরানিহান ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings কনফিগারেশন সেটিংর তালিকাহান]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ মিডিয়া উইকি আঙলাক]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce মিডিয়া উইকির ফঙপার বারে মেইলর তালিকাহান]"
+       "mainpagedocfooter": "উইকি সফটৱ্যার এহান আতানির বারে দরকার ইলে [https://meta.wikimedia.org/wiki/Help:Contents আতাকুরার গাইড]হানর পাঙলাক নেগা।\n\n== অকরানিহান ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings কনফিগারেশন সেটিংর তালিকাহান]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ মিডিয়া উইকি আঙলাক]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce মিডিয়া উইকির ফঙপার বারে মেইলর তালিকাহান]"
 }
index 8198af9..1211929 100644 (file)
        "config-restart": "Ya, adloc'hañ anezhañ",
        "config-welcome": "=== Gwiriadennoù a denn d'an endro ===\nRekis eo un nebeud gwiriadennoù diazez da welet hag azas eo an endro evit gallout staliañ MediaWiki.\nHo pet soñj merkañ disoc'hoù ar gwiriadennoù-se m'ho pez ezhomm skoazell e-pad ar staliadenn.",
        "config-copyright": "=== Gwiriañ aozer ha Termenoù implijout ===\n\n$1\n\nUr meziant frank eo ar programm-mañ; gallout a rit skignañ anezhañ ha/pe kemmañ anezhañ dindan termenoù ar GNU Aotre-implijout Foran Hollek evel m'emañ embannet gant Diazezadur ar Meziantoù Frank; pe diouzh stumm 2 an aotre-implijout, pe (evel mar karit) diouzh ne vern pe stumm nevesoc'h.\n\nIngalet eo ar programm gant ar spi e vo talvoudus met n'eus '''tamm gwarant ebet'''; hep zoken gwarant empleg ar '''varc'hadusted''' pe an '''azaster ouzh ur pal bennak'''. Gwelet ar GNU Aotre-Implijout Foran Hollek evit muioc'h a ditouroù.\n\nSañset oc'h bezañ resevet <doclink href=Copying>un eilskrid eus ar GNU Aotre-implijout Foran Hollek</doclink> a-gevret gant ar programm-mañ; ma n'hoc'h eus ket, skrivit da Diazezadur ar Meziantoù Frank/Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, SUA pe [http://www.gnu.org/licenses/old-licenses/gpl-2.0.html lennit anezhañ enlinenn].",
-       "config-sidebar": "* [//www.mediawiki.org MediaWiki degemer]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Sturlevr an implijerien]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Sturlevr ar verourien]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAG]\n----\n* <doclink href=Readme>Lennit-me</doclink>\n* <doclink href=ReleaseNotes>Notennoù embann</doclink>\n* <doclink href=Copying>Oc'h eilañ</doclink>\n* <doclink href=UpgradeDoc>O hizivaat</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org MediaWiki degemer]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Sturlevr an implijerien]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Sturlevr ar verourien]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAG]\n----\n* <doclink href=Readme>Lennit-me</doclink>\n* <doclink href=ReleaseNotes>Notennoù embann</doclink>\n* <doclink href=Copying>Oc'h eilañ</doclink>\n* <doclink href=UpgradeDoc>O hizivaat</doclink>",
        "config-env-good": "Gwiriet eo bet an endro.\nGallout a rit staliañ MediaWiki.",
        "config-env-bad": "Gwiriet eo bet an endro.\nNe c'hallit ket staliañ MediaWiki.",
        "config-env-php": "Staliet eo PHP $1.",
        "config-env-hhvm": "HHVM $1 zo staliet.",
        "config-unicode-using-intl": "Oc'h implijout [http://pecl.php.net/intl an astenn PECL intl] evit ar reolata Unicode.",
-       "config-unicode-pure-php-warning": "'''Diwallit''' : N'haller ket kaout an [http://pecl.php.net/intl intl PECL astenn] evit merañ reoladur Unicode, a zistro d'ar stumm gorrek emplementet e-PHP.\nMa lakait da dreiñ ul lec'hienn darempredet-stank e vo mat deoc'h lenn un tammig bihan diwar-benn se war [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode normalization]. (e saozneg)",
-       "config-unicode-update-warning": "'''Diwallit''': ober a ra stumm staliet endalc'her skoueriekaat Unicode gant ur stumm kozh eus [http://site.icu-project.org/ levraoueg meziantoù ar raktres ICU].\nDleout a rafec'h [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations hizivaat] ma seblant deoc'h bezañ pouezus ober gant Unicode.",
+       "config-unicode-pure-php-warning": "'''Diwallit''' : N'haller ket kaout an [http://pecl.php.net/intl intl PECL astenn] evit merañ reoladur Unicode, a zistro d'ar stumm gorrek emplementet e-PHP.\nMa lakait da dreiñ ul lec'hienn darempredet-stank e vo mat deoc'h lenn un tammig bihan diwar-benn se war [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode normalization]. (e saozneg)",
+       "config-unicode-update-warning": "'''Diwallit''': ober a ra stumm staliet endalc'her skoueriekaat Unicode gant ur stumm kozh eus [http://site.icu-project.org/ levraoueg meziantoù ar raktres ICU].\nDleout a rafec'h [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations hizivaat] ma seblant deoc'h bezañ pouezus ober gant Unicode.",
        "config-no-db": "N'eus ket bet gallet kavout ur sturier diazoù roadennoù a zere ! Ret eo deoc'h staliañ ur sturier diazoù roadennoù evit PHP.\nSkoret eo an diazoù roadennoù da-heul : $1.\n\nMa rit gant un herberc'hiañ kenrannet, goulennit digant ho herberc'hier staliañ ur sturier diaz roadennoù azas.\nMa kempunit PHP c'hwi hoc'h-unan, adkeflugnit-eñ en ur weredekaat un arval diaz roadennoù, da skouer en ur ober gant <code>./configure --mysql</code>.\nM'hoc'h eus staliet PHP adalek ur pakad Debian pe Ubuntu, eo ret deoc'h staliañ ar vodulenn php5-mysql ivez.",
        "config-no-fts3": "'''Diwallit ''': Kempunet eo SQLite hep ar [//sqlite.org/fts3.html vodulenn FTS3]; ne vo ket posupl ober gant an arc'hwelioù klask er staliadur-mañ",
-       "config-magic-quotes-runtime": "'''Fazi groñs : gweredekaet eo [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] !'''\nBreinañ a ra an dibarzh-mañ ar roadennoù en ur mod dic'hortoz.\nN'hallit ket staliañ pe ober gant MediaWiki e-keit ha m'eo gweredekaet an dibarzh-se.",
-       "config-magic-quotes-sybase": "'''Fazi groñs : gweredekaet eo [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] !'''\nBreinañ a ra an dibarzh-mañ ar roadennoù en ur mod dic'hortoz.\nN'hallit ket staliañ pe ober gant MediaWiki e-keit ha m'eo gweredekaet an dibarzh-se.",
-       "config-mbstring": "'''Fazi groñs : gweredekaet eo [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] !'''\nDegas a ra an dibarzh-mañ fazioù ha gallout a ra breinañ ar roadennoù en ur mod dic'hortoz.\nN'hallit ket staliañ pe ober gant MediaWiki e-keit ha m'eo gweredekaet an dibarzh-se.",
-       "config-safe-mode": "'''Diwallit :''' Gweredekaet eo [http://www.php.net/features.safe-mode mod surentez] PHP.\nKudennoù a c'hall sevel abalamour da gement-se, dreist-holl ma pellgargit restroù ha ma skorit <code>math</code>.",
-       "config-xml-bad": "Mankout a ra modulenn XML PHP.\nEzhomm en deus MediaWiki eus arc'hwelioù zo eus ar vodulenn-se ha ne'z aio ket en-dro gant ar c'hefluniadur zo.\nM'emaoc'h gant Mandrake, stailhit pakad php-xml.",
        "config-pcre-no-utf8": "'''Fazi groñs ''': evit doare eo bet kempunet modulenn PCRE PHP hep ar skor PCRE_UTF8.\nEzhomm en deus MediaWiki eus UTF-8 evit mont plaen en-dro.",
        "config-memory-raised": "<code>memory_limit</code> ar PHP zo $1, kemmet e $2.",
        "config-memory-bad": "'''Diwallit :''' Da $1 emañ arventenn <code>memory_limit</code> PHP.\nRe izel eo moarvat.\nMarteze e c'hwito ar staliadenn !",
-       "config-ctype": "<strong>Fazi grevus :</strong> PHP a rank bezañ kempunet gant ar skor evit an [http://www.php.net/manual/en/ctype.installation.php astenn Ctype].",
        "config-xcache": "Staliet eo [http://xcache.lighttpd.net/ XCache]",
        "config-apc": "Staliet eo [http://www.php.net/apc APC]",
        "config-wincache": "Staliet eo [http://www.iis.net/download/WinCacheForPhp WinCache]",
-       "config-no-cache": "'''Diwallit:''' N'eus ket bet gallet kavout [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] pe [http://www.iis.net/download/WinCacheForPhp WinCache].\nN'eo ket gweredekaet ar c'hrubuilhañ traezoù.",
        "config-diff3-bad": "N'eo ket bet kavet GNU diff3.",
        "config-imagemagick": "ImageMagick kavet : <code>$1</code>.\nGweredekaet e vo ar bihanaat skeudennoù ma vez gweredekaet ganeoc'h ar pellgargañ restroù.",
        "config-gd": "Kavet eo bet al levraoueg c'hrafek GD enframmet.\nGweredekaet e vo ar bihanaat skeudennoù ma vez gweredekaet an enporzhiañ restroù.",
@@ -77,8 +70,8 @@
        "config-no-uri": "'''Fazi :''' N'eus ket tu da anavezout URI ar skript red.\nStaliadur nullet.",
        "config-using-server": "Oc'h implijout an anv servijer \"<nowiki>$1</nowiki>\".",
        "config-using-uri": "Oc'h implijout ar servijour URL \"<nowiki>$1$2</nowiki>\".",
-       "config-uploads-not-safe": "'''Diwallit :'''Bresk eo ho kavlec'h pellgargañ dre ziouer <code>$1</code> rak gallout a ra erounit ne vern pe skript.\nha pa vefe gwiriet gant MediaWiki an holl restroù pellgarget eo erbedet-groñs da [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security serriñ ar breskter surentez-mañ] a-rao gweredekaat ar pellgargañ.",
-       "config-brokenlibxml": "Ur meskad stummoù PHP ha libxml2 dreinek a vez implijet gant ho reizhiad. Gallout a ra breinañ ar roadennoù e MediaWiki hag en arloadoù web all.\nHizivait da libxml2 2.7.3 pe nevesoc'h ([//bugs.php.net/bug.php?id=45996 draen renablet gant PHP]).\nStaliadur c'hwitet.",
+       "config-uploads-not-safe": "'''Diwallit :'''Bresk eo ho kavlec'h pellgargañ dre ziouer <code>$1</code> rak gallout a ra erounit ne vern pe skript.\nha pa vefe gwiriet gant MediaWiki an holl restroù pellgarget eo erbedet-groñs da [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security serriñ ar breskter surentez-mañ] a-rao gweredekaat ar pellgargañ.",
+       "config-brokenlibxml": "Ur meskad stummoù PHP ha libxml2 dreinek a vez implijet gant ho reizhiad. Gallout a ra breinañ ar roadennoù e MediaWiki hag en arloadoù web all.\nHizivait da libxml2 2.7.3 pe nevesoc'h ([https://bugs.php.net/bug.php?id=45996 draen renablet gant PHP]).\nStaliadur c'hwitet.",
        "config-db-type": "Doare an diaz roadennoù :",
        "config-db-host": "Anv implijer an diaz roadennoù :",
        "config-db-host-help": "M'emañ ho servijer roadennoù war ur servijer disheñvel, merkit amañ anv an ostiz pe ar chomlec'h IP.\n\nMa rit gant un herberc'hiañ kenrannet, e tlefe ho herberc'hier bezañ pourchaset deoc'h an anv ostiz reizh en teulioù titouriñ.\n\nM'emaoc'h o staliañ ur servijer Windows ha ma rit gant MySQL, marteze ne'z aio ket en-dro \"localhost\" evel anv servijer. Ma ne dro ket, klaskit ober gant \"127.0.0.1\" da chomlec'h IP lechel.",
        "config-db-account-lock": "Implijout ar memes anv implijer ha ger-tremen e-kerzh oberiadurioù boutin",
        "config-db-wiki-account": "Kont implijer evit oberiadurioù boutin",
        "config-db-prefix": "Rakrann taolennoù an diaz roadennoù :",
-       "config-db-charset": "Strobad arouezennoù an diaz roadennoù",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 binarel",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "MySQL 4.0 kilkenglotus UTF-8",
        "config-mysql-old": "Rekis eo MySQL $1 pe ur stumm nevesoc'h; ober a rit gant $2.",
        "config-db-port": "Porzh an diaz roadennoù :",
        "config-db-schema": "Brastres evit MediaWiki",
        "config-help-tooltip": "klikañ evit astenn",
        "config-nofile": "N'eus ket bet gallet kavout ar restr \"$1\". Daoust ha dilamet eo bet ?",
        "mainpagetext": "'''Meziant MediaWiki staliet.'''",
-       "mainpagedocfooter": "Sellit ouzh [//meta.wikimedia.org/wiki/Help:Contents Sturlevr an implijerien] evit gouzout hiroc'h war an doare da implijout ar meziant wiki.\n\n== Kregiñ ganti ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Roll an arventennoù kefluniañ]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAG MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Roll ar c'haozeadennoù diwar-benn dasparzhoù MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Lec'hiañ MediaWiki en ho yezh"
+       "mainpagedocfooter": "Sellit ouzh [https://meta.wikimedia.org/wiki/Help:Contents Sturlevr an implijerien] evit gouzout hiroc'h war an doare da implijout ar meziant wiki.\n\n== Kregiñ ganti ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Roll an arventennoù kefluniañ]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAG MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Roll ar c'haozeadennoù diwar-benn dasparzhoù MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Lec'hiañ MediaWiki en ho yezh"
 }
index 7a7cfb1..c122b2a 100644 (file)
@@ -42,7 +42,7 @@
        "config-page-existingwiki": "Postojeća wiki",
        "config-help-restart": "Da li želite očistiti sve spremljene podatke koje ste unijeli i da započnete ponovo proces instalacije?",
        "config-restart": "Da, pokreni ponovo",
-       "config-sidebar": "* [//www.mediawiki.org MediaWiki Početna strana]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Vodič za korisnike]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Vodič za administratore]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ NPP]\n----\n* <doclink href=Readme>Pročitaj me</doclink>\n* <doclink href=ReleaseNotes>Napomene izdanja</doclink>\n* <doclink href=Copying>Kopiranje</doclink>\n* <doclink href=UpgradeDoc>Poboljšavanje</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org MediaWiki Početna strana]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Vodič za korisnike]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Vodič za administratore]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ NPP]\n----\n* <doclink href=Readme>Pročitaj me</doclink>\n* <doclink href=ReleaseNotes>Napomene izdanja</doclink>\n* <doclink href=Copying>Kopiranje</doclink>\n* <doclink href=UpgradeDoc>Poboljšavanje</doclink>",
        "config-env-good": "Okruženje je provjereno.\nMožete instalirati MediaWiki.",
        "config-env-php": "PHP $1 je instaliran.",
        "config-env-hhvm": "HHVM $1 je instaliran.",
@@ -89,5 +89,5 @@
        "config-help": "pomoć",
        "config-help-tooltip": "klikni za proširenje",
        "mainpagetext": "'''MediaWiki softver je uspješno instaliran.'''",
-       "mainpagedocfooter": "Kontaktirajte [//meta.wikimedia.org/wiki/Help:Sadržaj uputstva za korisnike] za informacije o upotrebi wiki programa.\n\n== Početak ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista postavki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki najčešće postavljana pitanja]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista E-Mail adresa MediaWiki]"
+       "mainpagedocfooter": "Kontaktirajte [https://meta.wikimedia.org/wiki/Help:Sadržaj uputstva za korisnike] za informacije o upotrebi wiki programa.\n\n== Početak ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista postavki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki najčešće postavljana pitanja]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista E-Mail adresa MediaWiki]"
 }
index 4e0c82c..003583d 100644 (file)
@@ -52,7 +52,7 @@
        "config-restart": "Sí, torna a començar",
        "config-welcome": "=== Comprovacions de l'entorn ===\nS'efectuaran comprovacions bàsiques per veure si l'entorn és adequat per a la instal·lació del MediaWiki.\nRecordeu d'incloure aquesta informació si heu de demanar ajuda sobre com completar la instal·lació.",
        "config-copyright": "=== Drets d'autor i condicions ===\n\n$1\n\nAquest programa és de programari lliure; podeu redistribuir-lo i/o modificar-lo sota les condicions de la Llicència Pública General GNU com es publicada per la Free Software Foundation; qualsevol versió 2 de la llicència, o (opcionalment) qualsevol versió posterior.\n\nAquest programa és distribueix amb l'esperança que serà útil, però <strong>sense cap garantia</strong>; sense ni tan sols la garantia implícita de <strong>\ncomerciabilitat</strong> o <strong>idoneïtat per a un propòsit particular</strong>.\nConsulteu la Llicència Pública General GNU, per a més detalls.\n\nHauríeu d'haver rebut <doclink href=\"Copying\">una còpia de la Llicència Pública General GNU</doclink> amb aquest programa; si no, escriviu a la Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA o [http://www.gnu.org/copyleft/gpl.html per llegir-lo en línia].",
-       "config-sidebar": "* [//www.mediawiki.org la Pàgina d'inici]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Guia de l'Usuari]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Guia de l'Administrador]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ]\n----\n* <doclink href=Readme>Llegeix-me</doclink>\n* <doclink href=ReleaseNotes>Notes de la versió</doclink>\n* <doclink href=Còpia>Còpia</doclink>\n* <doclink href=UpgradeDoc>Actualització</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org la Pàgina d'inici]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Guia de l'Usuari]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Guia de l'Administrador]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ]\n----\n* <doclink href=Readme>Llegeix-me</doclink>\n* <doclink href=ReleaseNotes>Notes de la versió</doclink>\n* <doclink href=Còpia>Còpia</doclink>\n* <doclink href=UpgradeDoc>Actualització</doclink>",
        "config-env-good": "S'ha comprovat l'entorn.\nPodeu instal·lar el MediaWiki.",
        "config-env-bad": "S'ha comprovat l'entorn.\nNo podeu instal·lar el MediaWiki.",
        "config-env-php": "El PHP $1 està instal·lat.",
@@ -71,7 +71,7 @@
        "config-no-cli-uri": "'''Avís:''' No s'ha especificat un <code>--scriptpath</code>. S'utilitza el valor per defecte: <code>$1</code>.",
        "config-using-server": "S'utilitza el nom del servidor «<nowiki>$1</nowiki>».",
        "config-using-uri": "S'utilitza l'URL del servidor «<nowiki>$1$2</nowiki>».",
-       "config-uploads-not-safe": "<strong>Avís:</strong> El directori de càrregues per defecte <code>$1</code> és vulnerable a l'execució d'scripts arbitraris.\nEncara que el MediaWiki comprova tots els fitxers que es carreguen davant d'amenaces de seguretat, és molt recomanable [//www.mediawiki.org/ wiki/Special:MyLanguage/Manual:Security#Upload_security tancar aquesta vulnerabilitat de seguretat] abans d'habilitar les càrregues.",
+       "config-uploads-not-safe": "<strong>Avís:</strong> El directori de càrregues per defecte <code>$1</code> és vulnerable a l'execució d'scripts arbitraris.\nEncara que el MediaWiki comprova tots els fitxers que es carreguen davant d'amenaces de seguretat, és molt recomanable [https://www.mediawiki.org/ wiki/Special:MyLanguage/Manual:Security#Upload_security tancar aquesta vulnerabilitat de seguretat] abans d'habilitar les càrregues.",
        "config-db-type": "Tipus de base de dades:",
        "config-db-host": "Servidor de la base de dades:",
        "config-db-host-oracle": "TNS de la base de dades:",
        "config-db-wiki-help": "Introduïu el nom d'usuari i la contrasenya que s'utilitzarà per connectar-se a la base de dades durant l'operació normal del wiki.\nSi el compte no existeix, i el compte d'instal·lació té prou privilegis, es crearà aquest compte d'usuari amb els privilegis mínims necessaris per operar el wiki.",
        "config-db-prefix": "Prefix de la base de dades:",
        "config-db-prefix-help": "Si heu de compartir una base de dades entre diversos wikis, o entre el MediaWiki i una altra aplicació web, podeu afegir un prefix al tots els noms de taula per a evitar conflictes.\nNo utilitzeu espais.\n\nAquest camp acostuma a quedar en blanc.",
-       "config-db-charset": "Joc de caràcters de la base de dades",
-       "config-charset-mysql5-binary": "Binari de MySQL 4.1/5.0",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "MySQL 4.0 compatible cap enrere amb UTF-8",
        "config-mysql-old": "Cal el MySQL $1 o posterior. Teniu el $2.",
        "config-db-port": "Port de la base de dades:",
        "config-db-schema": "Esquema per a MediaWiki:",
        "config-help-tooltip": "feu clic per ampliar",
        "config-nofile": "No s'ha pogut trobar el fitxer «$1». S'ha suprimit?",
        "mainpagetext": "'''El MediaWiki s'ha instal·lat correctament.'''",
-       "mainpagedocfooter": "Consulteu la [//meta.wikimedia.org/wiki/Help:Contents Guia d'Usuari] per a més informació sobre com utilitzar-lo.\n\n== Per a començar ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Llista de característiques configurables]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ PMF del MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Llista de correu (''listserv'') per a anuncis del MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Traduïu MediaWiki en la vostra llengua]"
+       "mainpagedocfooter": "Consulteu la [https://meta.wikimedia.org/wiki/Help:Contents Guia d'Usuari] per a més informació sobre com utilitzar-lo.\n\n== Per a començar ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Llista de característiques configurables]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ PMF del MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Llista de correu (''listserv'') per a anuncis del MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Traduïu MediaWiki en la vostra llengua]"
 }
index daaf663..cb7e392 100644 (file)
@@ -31,9 +31,6 @@
        "config-no-fts3": "'''Тергам бе''': SQLite гулйина хуттург йоцуш [//sqlite.org/fts3.html FTS3] — лахар болхбеш хир дац оцу бухца.",
        "config-no-cli-uri": "'''ДӀахьедар''': <code>--scriptpath</code> параметр язйина яц, иза Ӏад йитарца лелош ю: <code>$1</code> .",
        "config-db-name": "Хаамийн базан цӀе:",
-       "config-db-charset": "Базан хаамийн символийн гулам",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 бинаран",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
        "config-type-mssql": "Microsoft SQL Server",
        "config-header-mssql": "Microsoft SQL Server параметраш",
        "config-invalid-db-type": "Хаамийн базан нийса йоцу тайп",
@@ -92,5 +89,5 @@
        "config-help": "гӀо",
        "config-nofile": "Файл \"$1\" каро цаелира. И дӀаяьккхина ярий?",
        "mainpagetext": "'''Вики-белхан гӀирс «MediaWiki» кхочуш дика дӀахӀоттийна.'''",
-       "mainpagedocfooter": "Викийца болх бан хаамаш карор бу хӀокху чохь [//meta.wikimedia.org/wiki/Help:Contents нисвохааман куьйгаллица].\n\n== Цхьаболу пайде гӀирсаш ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings ГӀирс нисбан тарлушболу могӀам];\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Сих сиха лушдолу хаттарш а жоьпаш оцу MediaWiki];\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Хаам бохьуьйту араяларца башхонца керла MediaWiki].\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
+       "mainpagedocfooter": "Викийца болх бан хаамаш карор бу хӀокху чохь [https://meta.wikimedia.org/wiki/Help:Contents нисвохааман куьйгаллица].\n\n== Цхьаболу пайде гӀирсаш ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings ГӀирс нисбан тарлушболу могӀам];\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Сих сиха лушдолу хаттарш а жоьпаш оцу MediaWiki];\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Хаам бохьуьйту араяларца башхонца керла MediaWiki].\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
 }
index 3bdbf05..9d0c7d5 100644 (file)
@@ -1,5 +1,5 @@
 {
        "@metadata": [],
        "mainpagetext": "'''Malamposon ang pag-instalar sa MediaWiki.'''",
-       "mainpagedocfooter": "Konsultaha ang [//meta.wikimedia.org/wiki/Help:Contents Giya sa mga gumagamit] alang sa impormasyon unsaon paggamit niining wiki nga software.\n\n== Pagsugod ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Listahan sa mga setting sa kompigurasyon]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ sa MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce  Mailing list sa mga release sa MediaWiki]"
+       "mainpagedocfooter": "Konsultaha ang [https://meta.wikimedia.org/wiki/Help:Contents Giya sa mga gumagamit] alang sa impormasyon unsaon paggamit niining wiki nga software.\n\n== Pagsugod ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Listahan sa mga setting sa kompigurasyon]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ sa MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce  Mailing list sa mga release sa MediaWiki]"
 }
index 3e36e95..2cd7bb8 100644 (file)
@@ -52,5 +52,5 @@
        "config-install-step-done": "کرا",
        "config-help": "یارمەتی",
        "mainpagetext": "'''میدیاویکی بە سەرکەوتوویی دامەزرا.'''",
-       "mainpagedocfooter": "لە [//meta.wikimedia.org/wiki/Help:Contents ڕێنوێنیی بەکارھێنەران] بۆ زانیاری سەبارەت بە بەکارھێنانی نەرمامێری ویکی کەڵک وەربگرە.\n\n== دەستپێکردن ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings پێرستی ڕێکخستنەکانی شێوەپێدان]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ پرسیارە دووپاتکراوەکانی میدیاویکی (MediaWiki FAQ)]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce پێرستی ئیمەیلی وەشانەکانی میدیاویکی]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources خۆماڵیکردنی ویکیمیدیا بۆ زمانەکەت]"
+       "mainpagedocfooter": "لە [https://meta.wikimedia.org/wiki/Help:Contents ڕێنوێنیی بەکارھێنەران] بۆ زانیاری سەبارەت بە بەکارھێنانی نەرمامێری ویکی کەڵک وەربگرە.\n\n== دەستپێکردن ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings پێرستی ڕێکخستنەکانی شێوەپێدان]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ پرسیارە دووپاتکراوەکانی میدیاویکی (MediaWiki FAQ)]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce پێرستی ئیمەیلی وەشانەکانی میدیاویکی]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources خۆماڵیکردنی ویکیمیدیا بۆ زمانەکەت]"
 }
index 38dbab1..561d03e 100644 (file)
@@ -6,5 +6,5 @@
                ]
        },
        "mainpagetext": "'''Madalag-on nga na-install ang MediaWiki.'''",
-       "mainpagedocfooter": "Kunsultahon ang [//meta.wikimedia.org/wiki/Help:Contents sa Manug-usar] para sa impormasyon sa paggamit sang wiki nga \"software\".\n\n==Pag-umpisa==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista sang mga setting sang konpigurayon]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Mga perme napangkot sa MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista sang mga ginapadal-an sang sulat sang MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
+       "mainpagedocfooter": "Kunsultahon ang [https://meta.wikimedia.org/wiki/Help:Contents sa Manug-usar] para sa impormasyon sa paggamit sang wiki nga \"software\".\n\n==Pag-umpisa==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista sang mga setting sang konpigurayon]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Mga perme napangkot sa MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista sang mga ginapadal-an sang sulat sang MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
 }
index 75bc85b..b3f5a69 100644 (file)
@@ -1,5 +1,5 @@
 {
        "@metadata": [],
        "mainpagetext": "'''MediaWiki мувафакъиетнен къурулды.'''",
-       "mainpagedocfooter": "Бу викининъ ёл-ёругъыны [//meta.wikimedia.org/wiki/Help:Contents User's Guide къулланыджы къылавузындан] огренип оласынъыз.\n\n== Базы файдалы сайтлар ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Олуджы сазламалар джедвели];\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki боюнджа сыкъ берильген суаллернен джеваплар];\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki-нинъ янъы версияларынынъ чыкъувындан хабер йиберюв]."
+       "mainpagedocfooter": "Бу викининъ ёл-ёругъыны [https://meta.wikimedia.org/wiki/Help:Contents User's Guide къулланыджы къылавузындан] огренип оласынъыз.\n\n== Базы файдалы сайтлар ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Олуджы сазламалар джедвели];\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki боюнджа сыкъ берильген суаллернен джеваплар];\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki-нинъ янъы версияларынынъ чыкъувындан хабер йиберюв]."
 }
index 9142168..517d1e1 100644 (file)
@@ -1,5 +1,5 @@
 {
        "@metadata": [],
        "mainpagetext": "'''MediaWiki muvafaqiyetnen quruldı.'''",
-       "mainpagedocfooter": "Bu vikiniñ yol-yoruğını [//meta.wikimedia.org/wiki/Help:Contents User's Guide qullanıcı qılavuzından] ögrenip olasıñız.\n\n== Bazı faydalı saytlar ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Olucı sazlamalar cedveli];\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki boyunca sıq berilgen suallernen cevaplar];\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki-niñ yañı versiyalarınıñ çıquvından haber yiberüv]."
+       "mainpagedocfooter": "Bu vikiniñ yol-yoruğını [https://meta.wikimedia.org/wiki/Help:Contents User's Guide qullanıcı qılavuzından] ögrenip olasıñız.\n\n== Bazı faydalı saytlar ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Olucı sazlamalar cedveli];\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki boyunca sıq berilgen suallernen cevaplar];\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki-niñ yañı versiyalarınıñ çıquvından haber yiberüv]."
 }
index 905e326..5e24b04 100644 (file)
        "config-restart": "Ano, restartovat",
        "config-welcome": "=== Kontrola prostředí ===\nNyní se provedou základní kontroly, aby se zjistilo, zda je toto prostředí použitelné k instalaci MediaWiki.\nPokud budete potřebovat k dokončení instalace pomoc, nezapomeňte sdělit výsledky těchto testů.",
        "config-copyright": "=== Licence a podmínky ===\n$1\n\nTento program je svobodný software; můžete jej šířit nebo modifikovat podle podmínek GNU General Public License, vydávané Free Software Foundation; buď verze 2 této licence anebo (podle vašeho uvážení) kterékoli pozdější verze.\n\nTento program je distribuován v naději, že bude užitečný, avšak '''bez jakékoli záruky'''; neposkytují se ani odvozené záruky '''prodejnosti''' anebo '''vhodnosti pro určitý účel'''.\nPodrobnosti se dočtete v textu GNU General Public License.\n\n<doclink href=Copying>Kopii GNU General Public License</doclink> jste měli obdržet spolu s tímto programem; pokud ne, napište na Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA nebo [http://www.gnu.org/copyleft/gpl.html si ji přečtěte online].",
-       "config-sidebar": "* [//www.mediawiki.org Oficiální web MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Uživatelská příručka]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Administrátorská příručka]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ]\n----\n* <doclink href=Readme>Čti mě</doclink>\n* <doclink href=ReleaseNotes>Poznámky k vydání</doclink>\n* <doclink href=Copying>Licence</doclink>\n* <doclink href=UpgradeDoc>Upgrade</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org Oficiální web MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Uživatelská příručka]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Administrátorská příručka]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ]\n----\n* <doclink href=Readme>Čti mě</doclink>\n* <doclink href=ReleaseNotes>Poznámky k vydání</doclink>\n* <doclink href=Copying>Licence</doclink>\n* <doclink href=UpgradeDoc>Upgrade</doclink>",
        "config-env-good": "Prostředí bylo zkontrolováno.\nMůžete nainstalovat MediaWiki.",
        "config-env-bad": "Prostředí bylo zkontrolováno.\nMediaWiki nelze nainstalovat.",
        "config-env-php": "Je nainstalováno PHP $1.",
        "config-env-hhvm": "Je nainstalováno HHVM $1.",
        "config-unicode-using-intl": "Pro normalizaci Unicode se používá [http://pecl.php.net/intl PECL rozšíření intl].",
-       "config-unicode-pure-php-warning": "<strong>Upozornění:</strong> Není dostupné [http://pecl.php.net/intl PECL rozšíření intl] pro normalizaci Unicode, bude se využívat pomalá implementace v čistém PHP.\nPokud provozujete wiki s velkou návštěvností, měli byste si přečíst něco o [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalizaci Unicode].",
-       "config-unicode-update-warning": "<strong>Upozornění:</strong> Nainstalovaná verze vrstvy pro normalizaci Unicode používá starší verzi knihovny [http://site.icu-project.org/ projektu ICU].\nPokud vám aspoň trochu záleží na používání Unicode, měli byste [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations ji aktualizovat].",
+       "config-unicode-pure-php-warning": "<strong>Upozornění:</strong> Není dostupné [http://pecl.php.net/intl PECL rozšíření intl] pro normalizaci Unicode, bude se využívat pomalá implementace v čistém PHP.\nPokud provozujete wiki s velkou návštěvností, měli byste si přečíst něco o [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalizaci Unicode].",
+       "config-unicode-update-warning": "<strong>Upozornění:</strong> Nainstalovaná verze vrstvy pro normalizaci Unicode používá starší verzi knihovny [http://site.icu-project.org/ projektu ICU].\nPokud vám aspoň trochu záleží na používání Unicode, měli byste [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations ji aktualizovat].",
        "config-no-db": "Nepodařilo se nalézt vhodný databázový ovladač! Musíte nainstalovat databázový ovladač pro PHP.\n{{PLURAL:$2|Je podporován následující typ databáze|Jsou podporovány následující typy databází}}: $1.\n\nPokud jste si PHP přeložili sami, překonfigurujte ho se zapnutým databázovým klientem, například pomocí <code>./configure --with-mysql</code>.\nPokud jste PHP nainstalovali z balíčku Debian či Ubuntu, potřebujete nainstalovat také modul <code>php5-mysql</code>.",
        "config-outdated-sqlite": "<strong>Upozornění:</strong> Máte SQLite $1, které je starší než minimálně vyžadovaná verze $2. SQLite nebude dostupné.",
        "config-no-fts3": "<strong>Upozornění:</strong> SQLite bylo přeloženo bez [//sqlite.org/fts3.html modulu FTS3], funkce pro vyhledávání zde nebudou dostupné.",
-       "config-mbstring": "<strong>Kritická chyba: Je zapnuto [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload]!</strong>\nToto nastavení způsobuje chyby a může nepředvídatelně poškozovat vstupní data.\nMediaWiki nelze nainstalovat ani používat, dokud není toto nastavení vypnuto.",
-       "config-xml-bad": "Chybí XML modul pro PHP.\nMediaWiki potřebuje funkce v tomto modulu a v této konfiguraci nebude fungovat.\nMožná si budete muset nainstalovat RPM balíček php-xml.",
        "config-pcre-old": "<strong>Kritická chyba:</strong> Je vyžadováno PCRE verze $1 nebo novější.\nVaše binárka PHP obsahuje PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Více informací.]",
        "config-pcre-no-utf8": "<strong>Kritická chyba:</strong> PHP modul PCRE byl zřejmě přeložen bez podpory PCRE_UTF8.\nMediaWiki vyžaduje ke správné funkci podporu UTF-8.",
        "config-memory-raised": "<code>memory_limit</code> v PHP byl nastaven na $1, zvýšen na $2.",
        "config-memory-bad": "<strong>Upozornění:</strong> <code>memory_limit</code> je v PHP nastaven na $1.\nTo je pravděpodobně příliš málo.\nInstalace může selhat!",
-       "config-ctype": "<strong>Kritická chyba:</strong> PHP musí být přeloženo s podporou pro [http://www.php.net/manual/en/ctype.installation.php rozšíření Ctype].",
-       "config-iconv": "<strong>Kritická chyba:</strong> PHP musí být přeloženo s podporou pro [http://www.php.net/manual/en/iconv.installation.php rozšíření iconv].",
-       "config-json": "<strong>Kritická chyba:</strong> PHP bylo přeloženo bez podpory JSON.\nPřed instalací MediaWiki musíte buď nainstalovat rozšíření PHP JSON nebo rozšíření [http://pecl.php.net/package/jsonc PECL jsonc].\n* Rozšíření PHP je součástí Red Hat Enterprise Linux (CentOS) 5 a 6, avšak musí se povolit v <code>/etc/php.ini</code> nebo <code>/etc/php.d/json.ini</code>.\n* V některých linuxových distribucích vydaných po květnu 2013 může toto rozšíření PHP chybět a místo toho mohou používat rozšíření PECL jako <code>php5-json</code> nebo <code>php-pecl-jsonc</code>.",
-       "config-mbstring-absent": "<strong>Kritická chyba:</strong> PHP musí být přeloženo s podporou pro [http://www.php.net/manual/en/mbstring.setup.php rozšíření mbstring].",
        "config-xcache": "Je nainstalována [http://xcache.lighttpd.net/ XCache]",
        "config-apc": "Je nainstalováno [http://www.php.net/apc APC]",
        "config-wincache": "Je nainstalována [http://www.iis.net/download/WinCacheForPhp WinCache]",
@@ -85,7 +79,7 @@
        "config-no-cli-uri": "<strong>Upozornění:</strong> Nebylo uvedeno <code>--scriptpath</code>, používá se implicitní hodnota: <code>$1</code>.",
        "config-using-server": "Použito jméno serveru „<nowiki>$1</nowiki>“.",
        "config-using-uri": "Použito URL serveru „<nowiki>$1$2</nowiki>“.",
-       "config-uploads-not-safe": "<strong>Upozornění:</strong> Váš výchozí adresář pro načítání souborů <code>$1</code> umožňuje spouštění libovolných skriptů.\nPřestože MediaWiki všechny načítané soubory kontroluje proti bezpečnostním hrozbám, je důrazně doporučeno [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security tuto bezpečnostní díru zacelit] před povolením načítání souborů.",
+       "config-uploads-not-safe": "<strong>Upozornění:</strong> Váš výchozí adresář pro načítání souborů <code>$1</code> umožňuje spouštění libovolných skriptů.\nPřestože MediaWiki všechny načítané soubory kontroluje proti bezpečnostním hrozbám, je důrazně doporučeno [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security tuto bezpečnostní díru zacelit] před povolením načítání souborů.",
        "config-no-cli-uploads-check": "<strong>Upozornění:</strong> Váš výchozí adresář pro načítané soubory (<code>$1</code>) se při instalaci z příkazového řádku nekontroluje na bezpečnostní hrozbu provádění libovolných skriptů.",
        "config-brokenlibxml": "Váš systém obsahuje kombinaci verzí PHP a libxml2, která je chybná a může v MediaWiki a dalších webových aplikacích způsobovat skryté poškozování dat.\nAktualizujte na libxml2 2.7.3 nebo novější ([https://bugs.php.net/bug.php?id=45996 chyba evidovaná u PHP]).\nInstalace přerušena.",
        "config-suhosin-max-value-length": "Je nainstalován Suhosin, který omezuje délku parametrů GET na $1 bajtů.\nKomponenta ResourceLoader z MediaWiki dokáže s tímto omezením pracovat, ale sníží to výkon.\nPokud to je alespoň trochu možné, měli byste v <code>php.ini</code> nastavit <code>suhosin.get.max_value_length</code> na 1024 nebo vyšší a na stejnou hodnotu nastavit v <code>LocalSettings.php</code> proměnnou <code>$wgResourceLoaderMaxQueryLength</code>.",
        "config-db-wiki-help": "Zadejte uživatelské jméno a heslo, které se bude používat pro připojení k databázi za běžného provozu wiki.\nPokud účet neexistuje a instalační účet má dostatečná oprávnění, bude tento uživatelský účet založen s minimálními oprávněními potřebnými k provozu wiki.",
        "config-db-prefix": "Prefix databázových tabulek:",
        "config-db-prefix-help": "Pokud potřebujete sdílet jednu databázi mezi vícero wiki, případně mezi MediaWiki a další webovou aplikací, můžete přidat k názvu každé tabulky prefix, abyste se vyhnuli konfliktům.\nNepoužívejte mezery.\n\nToto pole se zpravidla ponechává prázdné.",
-       "config-db-charset": "Znaková sada databáze",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 binární",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "MySQL 4.0 zpětně kompatibilní UTF-8",
-       "config-charset-help": "<strong>Upozornění:</strong> Pokud použijete <strong>zpětně kompatibilní UTF-8<strong> na MySQL 4.1+ a následně zazálohujete databázi pomocí <code>mysqldump</code>, může to zničit všechny ne-ASCII znaky, což nevratně poškodí vaše zálohy!\n\nV <strong>binárním režimu</strong> ukládá MediaWiki text v UTF-8 do databáze v binárních sloupcích.\nTo je výkonnější než UTF-8 režim MySQL a umožňuje využít plný rozsah znaků Unicode.\nV <strong>režimu UTF-8</strong> bude MySQL znát znakovou sadu vašich dat a může je příslušně zobrazovat a převádět,\nale neumožní vám uložit znaky mimo [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
        "config-mysql-old": "Je vyžadováno MySQL $1 nebo novější. Vy máte $2.",
        "config-db-port": "Databázový port:",
        "config-db-schema": "Schéma pro MediaWiki:",
        "config-mysql-charset": "Znaková sada databáze:",
        "config-mysql-binary": "Binární",
        "config-mysql-utf8": "UTF-8",
-       "config-mysql-charset-help": "V '''binárním režimu''' ukládá MediaWiki text v UTF-8 do databáze v binárních sloupcích.\nTo je výkonnější než UTF-8 režim MySQL a umožňuje využít plný rozsah znaků Unicode.\n\nV '''režimu UTF-8''' bude MySQL znát znakovou sadu vašich dat a může je příslušně zobrazovat a převádět, ale neumožní vám uložit znaky mimo [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
+       "config-mysql-charset-help": "V '''binárním režimu''' ukládá MediaWiki text v UTF-8 do databáze v binárních sloupcích.\nTo je výkonnější než UTF-8 režim MySQL a umožňuje využít plný rozsah znaků Unicode.\n\nV '''režimu UTF-8''' bude MySQL znát znakovou sadu vašich dat a může je příslušně zobrazovat a převádět, ale neumožní vám uložit znaky mimo [https://en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
        "config-mssql-auth": "Typ autentizace:",
        "config-mssql-install-auth": "Zvolte si typ autentizace, který se bude používat pro připojení k databázi v průběhu instalace.\nPokud zvolíte možnost „{{int:config-mssql-windowsauth}}“, použijí se přihlašovací údaje uživatele, pod kterým běží webový server.",
        "config-mssql-web-auth": "Zvolte si typ autentizace, který se bude používat pro připojení k databázi za běžného provozu wiki.\nPokud zvolíte možnost „{{int:config-mssql-windowsauth}}“, použijí se přihlašovací údaje uživatele, pod kterým běží webový server.",
        "config-profile-no-anon": "Vyžadována registrace uživatelů",
        "config-profile-fishbowl": "Editace jen pro vybrané",
        "config-profile-private": "Soukromá wiki",
-       "config-profile-help": "Wiki fungují nejlépe, když je necháte editovat co největším možným počtem lidí.\nV MediaWiki můžete snadno kontrolovat poslední změny a vracet zpět libovolnou škodu způsobenou hloupými nebo zlými uživateli.\n\nMnoho lidí však zjistilo, že je MediaWiki užitečné v širokém spektru rolí a někdy není snadné všechny přesvědčit o výhodách wikizvyklostí.\nTakže si můžete vybrat.\n\nModel '''{{int:config-profile-wiki}}''' dovoluje editovat všem, aniž by se museli přihlašovat.\nNa wiki, kde je '''{{int:config-profile-no-anon}}''', se lépe řídí zodpovědnost, ale může to odradit náhodné přispěvatele.\n\nProfil '''{{int:config-profile-fishbowl}}''' umožňuje schváleným uživatelům editovat, ale veřejnost si může stránky prohlížet včetně jejich historie.\n'''{{int:config-profile-private}}''' dovoluje stránky prohlížet jen schváleným uživatelům, kteří je i mohou editovat.\n\nPo instalaci je možná komplexní konfigurace uživatelských práv; vizte [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights odpovídající stránku příručky].",
+       "config-profile-help": "Wiki fungují nejlépe, když je necháte editovat co největším možným počtem lidí.\nV MediaWiki můžete snadno kontrolovat poslední změny a vracet zpět libovolnou škodu způsobenou hloupými nebo zlými uživateli.\n\nMnoho lidí však zjistilo, že je MediaWiki užitečné v širokém spektru rolí a někdy není snadné všechny přesvědčit o výhodách wikizvyklostí.\nTakže si můžete vybrat.\n\nModel '''{{int:config-profile-wiki}}''' dovoluje editovat všem, aniž by se museli přihlašovat.\nNa wiki, kde je '''{{int:config-profile-no-anon}}''', se lépe řídí zodpovědnost, ale může to odradit náhodné přispěvatele.\n\nProfil '''{{int:config-profile-fishbowl}}''' umožňuje schváleným uživatelům editovat, ale veřejnost si může stránky prohlížet včetně jejich historie.\n'''{{int:config-profile-private}}''' dovoluje stránky prohlížet jen schváleným uživatelům, kteří je i mohou editovat.\n\nPo instalaci je možná komplexní konfigurace uživatelských práv; vizte [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights odpovídající stránku příručky].",
        "config-license": "Autorská práva a licence:",
        "config-license-none": "Bez patičky s licencí",
        "config-license-cc-by-sa": "Creative Commons Uveďte autora-Zachovejte licenci",
        "config-email-sender-help": "Zadejte e-mailovou adresu, která se má použít jako návratová na odchozích e-mailech.\nSem budou zasílány nedoručitelné zprávy.\nMnoho mailových serverů vyžaduje, aby byla přinejmenším část s doménovým jménem platná.",
        "config-upload-settings": "Obrázky a načítání souborů",
        "config-upload-enable": "Povolit načítání souborů",
-       "config-upload-help": "Načítání souborů potenciálně vystavuje váš server bezpečnostním rizikům.\nVíce informací naleznete v [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security části o bezpečnosti] v příručce.\n\nPro umožnění načítání souborů změňte práva na podadresáři <code>images</code> pod kořenovým adresářem MediaWiki, aby do něj mohl webový server zapisovat.\nPoté zapněte tuto volbu.",
+       "config-upload-help": "Načítání souborů potenciálně vystavuje váš server bezpečnostním rizikům.\nVíce informací naleznete v [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security části o bezpečnosti] v příručce.\n\nPro umožnění načítání souborů změňte práva na podadresáři <code>images</code> pod kořenovým adresářem MediaWiki, aby do něj mohl webový server zapisovat.\nPoté zapněte tuto volbu.",
        "config-upload-deleted": "Adresář pro smazané soubory:",
        "config-upload-deleted-help": "Zvolte adresář, do kterého se mají archivovat smazané soubory.\nTento adresář by ideálně neměl být dostupný z webu.",
        "config-logo": "URL loga:",
        "config-logo-help": "Základní vzhled MediaWiki zahrnuje místo pro logo o velikosti 135×160 pixelů nad bočním menu.\nNačtěte obrázek odpovídající velikosti a zadejte sem jeho URL.\n\nPokud je vaše logo umístěno relativně vůči <code>$wgStylePath</code> nebo <code>$wgScriptPath</code>, můžete zde tyto proměnné použít.\n\nPokud logo nechcete, ponechte toto pole prázdné.",
        "config-instantcommons": "Zapnout Instant Commons",
-       "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons Instant Commons] je funkce, která umožňuje wiki používat obrázky, zvuky a další mediální soubory ze serveru [//commons.wikimedia.org/wiki/Hlavn%C3%AD_strana Wikimedia Commons].\nAby to bylo možné, potřebuje mít MediaWiki přístup k internetu.\n\nVíce informací o této funkci, včetně instrukcí, jak ji nastavit pro jiné wiki než Wikimedia Commons, najdete v [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos příručce].",
+       "config-instantcommons-help": "[https://www.mediawiki.org/wiki/InstantCommons Instant Commons] je funkce, která umožňuje wiki používat obrázky, zvuky a další mediální soubory ze serveru [https://commons.wikimedia.org/wiki/Hlavn%C3%AD_strana Wikimedia Commons].\nAby to bylo možné, potřebuje mít MediaWiki přístup k internetu.\n\nVíce informací o této funkci, včetně instrukcí, jak ji nastavit pro jiné wiki než Wikimedia Commons, najdete v [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos příručce].",
        "config-cc-error": "Volič licence Creative Commons nevrátil žádný výsledek.\nZadejte název licence ručně.",
        "config-cc-again": "Zvolit znovu…",
        "config-cc-not-chosen": "Zvolte si požadovanou licenci Creative Commons a klikněte na tlačítko.",
        "config-install-extension-tables": "Vytvářejí se tabulky pro zapnutá rozšíření",
        "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-download-localsettings": "Stáhnout <code>LocalSettings.php</code>",
        "config-help": "nápověda",
        "config-help-tooltip": "rozbalíte kliknutím",
        "config-nofile": "Soubor „$1“ nelze nalézt. Byl smazán?",
-       "config-extension-link": "Věděli jste, že vaše wiki podporuje [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions rozšíření]?\n\nMůžete si prohlédnout [//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category seznam rozšíření po kategoriích].",
+       "config-extension-link": "Věděli jste, že vaše wiki podporuje [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions rozšíření]?\n\nMůžete si prohlédnout [https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category seznam rozšíření po kategoriích].",
        "mainpagetext": "<strong>MediaWiki byla úspěšně nainstalována.</strong>",
-       "mainpagedocfooter": "[//meta.wikimedia.org/wiki/Help:Contents Uživatelská příručka] vám napoví, jak používat MediaWiki.\n\n== Začínáme ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Nastavení konfigurace]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Často kladené otázky o MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce E-mailová konference oznámení MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Překlad MediaWiki do vašeho jazyka]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Naučte se bojovat se spamem na vaší wiki]"
+       "mainpagedocfooter": "[https://meta.wikimedia.org/wiki/Help:Contents Uživatelská příručka] vám napoví, jak používat MediaWiki.\n\n== Začínáme ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Nastavení konfigurace]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Často kladené otázky o MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce E-mailová konference oznámení MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Překlad MediaWiki do vašeho jazyka]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Naučte se bojovat se spamem na vaší wiki]"
 }
index 9959f29..9d84f95 100644 (file)
@@ -13,5 +13,5 @@
        "config-page-language": "Чĕлхе",
        "config-page-name": "Ят",
        "mainpagetext": "'''«MediaWiki» вики-движока лартасси ăнăçлă вĕçленчĕ.'''",
-       "mainpagedocfooter": "Ку википе ĕçлеме пулăшакан информацине [//meta.wikimedia.org/wiki/Help:Contents/ru усăç руководствинче] тупма пултаратăр.\n\n== Пулăшма пултарĕç ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Ĕнерлевсен списокĕ];\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki тăрăх час-часах ыйтакан ыйтусемпе хуравсем];\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki çĕнĕ верси тухнине пĕлтерекен рассылка].\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
+       "mainpagedocfooter": "Ку википе ĕçлеме пулăшакан информацине [https://meta.wikimedia.org/wiki/Help:Contents/ru усăç руководствинче] тупма пултаратăр.\n\n== Пулăшма пултарĕç ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Ĕнерлевсен списокĕ];\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki тăрăх час-часах ыйтакан ыйтусемпе хуравсем];\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki çĕнĕ верси тухнине пĕлтерекен рассылка].\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
 }
index 75fbbfc..2a3a560 100644 (file)
@@ -11,5 +11,5 @@
        "config-information": "Gwybodaeth",
        "config-localsettings-upgrade": "Rydym wedi canfod ffeil <code>LocalSettings.php</code>.\nI uwchraddio'r gosodiad yma, rhowch fanylion y<code>$wgUpgradeKey</code> yn y blwch isod.\nFe'i cewch yn <code>LocalSettings.php</code>.",
        "mainpagetext": "'''Wedi llwyddo gosod meddalwedd MediaWiki yma'''",
-       "mainpagedocfooter": "\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Rhestr osodiadau wrth gyflunio]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Cwestiynau poblogaidd ar MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Lleoleiddiwch MediaWiki ar gyfer eich iaith]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Dysgwch sut i ymladd sbam ar eich wici]"
+       "mainpagedocfooter": "\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Rhestr osodiadau wrth gyflunio]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Cwestiynau poblogaidd ar MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Lleoleiddiwch MediaWiki ar gyfer eich iaith]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Dysgwch sut i ymladd sbam ar eich wici]"
 }
index 3a9bb82..dacdf81 100644 (file)
@@ -51,5 +51,5 @@
        "config-invalid-db-type": "Ugyldig databasetype",
        "config-email-usertalk": "Aktiver notifikationer for brugerdiskussionsside",
        "mainpagetext": "'''MediaWiki er nu installeret.'''",
-       "mainpagedocfooter": "Se [//meta.wikimedia.org/wiki/Help:Contents brugervejledningen] for oplysninger om brugen af wikiprogrammellet.\n\n== At komme i gang ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Listen over opsætningsmuligheder]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki ofte stillede spørgsmål]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Postliste angående udgivelser af MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Oversæt MediaWiki til dit sprog]"
+       "mainpagedocfooter": "Se [https://meta.wikimedia.org/wiki/Help:Contents brugervejledningen] for oplysninger om brugen af wikiprogrammellet.\n\n== At komme i gang ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Listen over opsætningsmuligheder]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki ofte stillede spørgsmål]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Postliste angående udgivelser af MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Oversæt MediaWiki til dit sprog]"
 }
index b28a40d..fe4aa4c 100644 (file)
@@ -6,7 +6,7 @@
                ]
        },
        "config-copyright": "=== Lizenz und Nutzungsbedingungen ===\n\n$1\n\nDieses Programm ist freie Software, d. h. es kann, gemäss den Bedingungen der von der Free Software Foundation veröffentlichten ''GNU General Public License'', weiterverteilt und/oder modifiziert werden. Dabei kann die Version 2, oder nach eigenem Ermessen, jede neuere Version der Lizenz verwendet werden.\n\nDieses Programm wird in der Hoffnung verteilt, dass es nützlich sein wird, allerdings '''ohne jegliche Garantie''' und sogar ohne die implizierte Garantie einer '''Marktgängigkeit''' oder '''Eignung für einen bestimmten Zweck'''. Hierzu sind weitere Hinweise in der ''GNU General Public License'' enthalten.\n\nEine <doclink href=Copying>Kopie der GNU General Public License</doclink> sollte zusammen mit diesem Programm verteilt worden sein. Sofern dies nicht der Fall war, kann eine Kopie bei der Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA, schriftlich angefordert oder auf deren Website [http://www.gnu.org/copyleft/gpl.html online gelesen] werden.",
-       "config-unicode-pure-php-warning": "'''Warnung:''' Die [http://pecl.php.net/intl PECL-Erweiterung intl] ist für die Unicode-Normalisierung nicht verfügbar, so dass stattdessen die langsame pure-PHP-Implementierung genutzt wird.\nSofern eine Website mit grosser Benutzeranzahl betrieben wird, sollten weitere Informationen auf der Webseite [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode-Normalisierung (en)] gelesen werden.",
-       "config-uploads-not-safe": "'''Warnung:''' Das Standardverzeichnis für hochgeladene Dateien <code>$1</code> ist für die willkürliche Ausführung von Skripten anfällig.\nObwohl MediaWiki die hochgeladenen Dateien auf Sicherheitsrisiken überprüft, wird dennoch dringend empfohlen, diese [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security Sicherheitslücke] zu schliessen, bevor das Hochladen von Dateien aktiviert wird.",
+       "config-unicode-pure-php-warning": "'''Warnung:''' Die [http://pecl.php.net/intl PECL-Erweiterung intl] ist für die Unicode-Normalisierung nicht verfügbar, so dass stattdessen die langsame pure-PHP-Implementierung genutzt wird.\nSofern eine Website mit grosser Benutzeranzahl betrieben wird, sollten weitere Informationen auf der Webseite [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode-Normalisierung (en)] gelesen werden.",
+       "config-uploads-not-safe": "'''Warnung:''' Das Standardverzeichnis für hochgeladene Dateien <code>$1</code> ist für die willkürliche Ausführung von Skripten anfällig.\nObwohl MediaWiki die hochgeladenen Dateien auf Sicherheitsrisiken überprüft, wird dennoch dringend empfohlen, diese [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security Sicherheitslücke] zu schliessen, bevor das Hochladen von Dateien aktiviert wird.",
        "config-license-help": "Viele öffentliche Wikis publizieren alle Beiträge unter einer [http://freedomdefined.org/Definition/De freien Lizenz.]\nDies trägt dazu bei, ein Gefühl von Gemeinschaft zu schaffen, und ermutigt zu längerfristiger Mitarbeit.\nHingegen ist im Allgemeinen eine freie Lizenz auf geschlossenen Wikis nicht notwendig.\n\nSofern man Texte aus der Wikipedia verwenden möchte und umgekehrt, sollte die ''Creative-Commons''-Lizenz „Namensnennung – Weitergabe unter gleichen Bedingungen“ gewählt werden.\n\nDie Wikipedia nutzte vormals die GNU-Lizenz für freie Dokumentation (GFDL).\nDie GFDL ist eine gültige Lizenz, die allerdings schwer zu verstehen ist.\nEs ist zudem schwierig, gemäss dieser Lizenz lizenzierte Inhalte wiederzuverwenden."
 }
index 944ed61..573e8b2 100644 (file)
@@ -7,6 +7,6 @@
                ]
        },
        "config-welcome": "=== Prüfung der Installationsumgebung ===\nDie Basisprüfungen werden jetzt durchgeführt, um festzustellen, ob die Installationsumgebung für MediaWiki geeignet ist.\nNotieren Sie diese Informationen und geben Sie sie an, sofern Sie Hilfe beim Installieren benötigen.",
-       "config-extension-link": "Wussten Sie, dass Ihr Wiki die Nutzung von [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions Erweiterungen] unterstützt?\n\nSie können [//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category Erweiterungen nach Kategorie] durchsuchen oder die [//www.mediawiki.org/wiki/Extension_Matrix Matrix der Erweiterungen] ansehen, um eine Übersicht zu verfügbaren Erweiterungen zu erhalten.",
-       "mainpagedocfooter": "Hilfe zur Benutzung und Konfiguration der Wiki-Software finden Sie im [//meta.wikimedia.org/wiki/Help:Contents Benutzerhandbuch].\n\n== Starthilfen ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Liste der Konfigurationsvariablen]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki-FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Lokalisieren Sie MediaWiki für Ihre Sprache]"
+       "config-extension-link": "Wussten Sie, dass Ihr Wiki die Nutzung von [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions Erweiterungen] unterstützt?\n\nSie können [https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category Erweiterungen nach Kategorie] durchsuchen oder die [https://www.mediawiki.org/wiki/Extension_Matrix Matrix der Erweiterungen] ansehen, um eine Übersicht zu verfügbaren Erweiterungen zu erhalten.",
+       "mainpagedocfooter": "Hilfe zur Benutzung und Konfiguration der Wiki-Software finden Sie im [https://meta.wikimedia.org/wiki/Help:Contents Benutzerhandbuch].\n\n== Starthilfen ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Liste der Konfigurationsvariablen]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki-FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Lokalisieren Sie MediaWiki für Ihre Sprache]"
 }
index 5a1e1c4..fd4456b 100644 (file)
@@ -15,7 +15,8 @@
                        "Suriyaa Kudo",
                        "Das Schäfchen",
                        "Florian",
-                       "Macofe"
+                       "Macofe",
+                       "ThePiscin"
                ]
        },
        "config-desc": "Das MediaWiki-Installationsprogramm",
        "config-restart": "Ja, erneut starten",
        "config-welcome": "=== Prüfung der Installationsumgebung ===\nDie Basisprüfungen werden jetzt durchgeführt, um festzustellen, ob die Installationsumgebung für MediaWiki geeignet ist.\nNotiere diese Informationen und gib sie an, sofern du Hilfe beim Installieren benötigst.",
        "config-copyright": "=== Lizenz und Nutzungsbedingungen ===\n\n$1\n\nDieses Programm ist freie Software, d. h. es kann, gemäß den Bedingungen der von der Free Software Foundation veröffentlichten ''GNU General Public License'', weiterverteilt und/oder modifiziert werden. Dabei kann die Version 2, oder nach eigenem Ermessen, jede neuere Version der Lizenz verwendet werden.\n\nDieses Programm wird in der Hoffnung verteilt, dass es nützlich sein wird, allerdings '''ohne jegliche Garantie''' und sogar ohne die implizierte Garantie einer '''Marktgängigkeit''' oder '''Eignung für einen bestimmten Zweck'''. Hierzu sind weitere Hinweise in der ''GNU General Public License'' enthalten.\n\nEine <doclink href=Copying>Kopie der GNU General Public License</doclink> sollte zusammen mit diesem Programm verteilt worden sein. Sofern dies nicht der Fall war, kann eine Kopie bei der Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA, schriftlich angefordert oder auf deren Website [http://www.gnu.org/copyleft/gpl.html online gelesen] werden.",
-       "config-sidebar": "* [//www.mediawiki.org/wiki/MediaWiki/de Website von MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents/de Benutzer­anleitung]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents/de Administratoren­anleitung]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/de Häufig gestellte Fragen]\n----\n* <doclink href=Readme>Lies mich</doclink>\n* <doclink href=ReleaseNotes>Versions­informationen</doclink>\n* <doclink href=Copying>Lizenz­bestimmungen</doclink>\n* <doclink href=UpgradeDoc>Aktualisierung</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org/wiki/MediaWiki/de Website von MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents/de Benutzer­anleitung]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents/de Administratoren­anleitung]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/de Häufig gestellte Fragen]\n----\n* <doclink href=Readme>Lies mich</doclink>\n* <doclink href=ReleaseNotes>Versions­informationen</doclink>\n* <doclink href=Copying>Lizenz­bestimmungen</doclink>\n* <doclink href=UpgradeDoc>Aktualisierung</doclink>",
        "config-env-good": "Die Installationsumgebung wurde geprüft.\nMediaWiki kann installiert werden.",
        "config-env-bad": "Die Installationsumgebung wurde geprüft.\nMediaWiki kann nicht installiert werden.",
        "config-env-php": "Die Skriptsprache „PHP“ ($1) ist installiert.",
        "config-env-hhvm": "HHVM $1 ist installiert.",
        "config-unicode-using-intl": "Zur  Unicode-Normalisierung wird die [http://pecl.php.net/intl PECL-Erweiterung intl] eingesetzt.",
-       "config-unicode-pure-php-warning": "'''Warnung:''' Die [http://pecl.php.net/intl PECL-Erweiterung intl] ist für die Unicode-Normalisierung nicht verfügbar, so dass stattdessen die langsame pure-PHP-Implementierung genutzt wird.\nSofern eine Website mit großer Benutzeranzahl betrieben wird, sollten weitere Informationen auf der Webseite [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode-Normalisierung (en)] gelesen werden.",
-       "config-unicode-update-warning": "'''Warnung:''' Die installierte Version des Unicode-Normalisierungswrappers nutzt einer ältere Version der Bibliothek des [http://site.icu-project.org/ ICU-Projekts].\nDiese sollte [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations aktualisiert] werden, sofern auf die Verwendung von Unicode Wert gelegt wird.",
+       "config-unicode-pure-php-warning": "'''Warnung:''' Die [http://pecl.php.net/intl PECL-Erweiterung intl] ist für die Unicode-Normalisierung nicht verfügbar, so dass stattdessen die langsame pure-PHP-Implementierung genutzt wird.\nSofern eine Website mit großer Benutzeranzahl betrieben wird, sollten weitere Informationen auf der Webseite [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode-Normalisierung (en)] gelesen werden.",
+       "config-unicode-update-warning": "'''Warnung:''' Die installierte Version des Unicode-Normalisierungswrappers nutzt einer ältere Version der Bibliothek des [http://site.icu-project.org/ ICU-Projekts].\nDiese sollte [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations aktualisiert] werden, sofern auf die Verwendung von Unicode Wert gelegt wird.",
        "config-no-db": "Es konnte kein adäquater Datenbanktreiber gefunden werden. Es muss daher ein Datenbanktreiber für PHP installiert werden.\n{{PLURAL:$2|Das folgende Datenbanksystem wird|Die folgenden Datenbanksysteme werden}} unterstützt: $1\n\nWenn du PHP selbst kompiliert hast, konfiguriere es erneut mit einem aktivierten Datenbankclient, zum Beispiel durch Verwendung von <code>./configure --with-mysqli</code>.\nWenn du PHP von einem Debian- oder Ubuntu-Paket installiert hast, dann musst du auch beispielsweise das <code>php5-mysql</code>-Paket installieren.",
        "config-outdated-sqlite": "'''Warnung:''' SQLite $1 ist installiert. Allerdings benötigt MediaWiki SQLite $2 oder höher. SQLite wird daher nicht verfügbar sein.",
        "config-no-fts3": "'''Warnung:''' SQLite wurde ohne das [//sqlite.org/fts3.html FTS3-Modul] kompiliert, sodass keine Suchfunktionen für dieses Datenbanksystem zur Verfügung stehen werden.",
-       "config-mbstring": "'''Fataler Fehler: Der Parameter <code>[http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload]</code> von PHP ist aktiviert!'''\nDiese Einstellung verursacht Fehler und führt zu unvorhersehbaren Problemen bei der Dateneingabe.\nMediaWiki kann nicht installiert werden, solange dieser Parameter nicht deaktiviert wurde.",
-       "config-xml-bad": "Das XML-Modul von PHP fehlt.\nMediaWiki benötigt Funktionen, die dieses Modul bereitstellt und wird in der bestehenden Konfiguration nicht funktionieren.\nDu musst vielleicht das „php-xml“-RPM-Paket installieren.",
        "config-pcre-old": "<strong>Fataler Fehler:</strong> PCRE $1 oder neuer ist erforderlich!\nDie vorhandene PHP-Binärdatei ist mit PCRE $2 verknüpft.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Weitere Informationen].",
        "config-pcre-no-utf8": "'''Fataler Fehler:''' Das PHP-Modul PCRE scheint ohne PCRE_UTF8-Unterstützung kompiliert worden zu sein.\nMediaWiki benötigt die UTF-8-Unterstützung, um fehlerfrei lauffähig zu sein.",
        "config-memory-raised": "Der PHP-Parameter <code>memory_limit</code> betrug $1 und wurde auf $2 erhöht.",
        "config-memory-bad": "'''Warnung:''' Der PHP-Parameter <code>memory_limit</code> beträgt $1.\nDieser Wert ist wahrscheinlich zu niedrig.\nDer Installationsvorgang könnte eventuell scheitern!",
-       "config-ctype": "'''Fataler Fehler:''' PHP muss mit Unterstützung für das [http://www.php.net/manual/de/ctype.installation.php Modul ctype] kompiliert werden.",
-       "config-iconv": "<strong>Fatal:</strong> PHP muss mit Support für die [http://www.php.net/manual/en/iconv.installation.php iconv-Erweiterung] kompiliert werden.",
-       "config-json": "<strong>Fataler Fehler:</strong> PHP wurde ohne Unterstützung für JSON kompiliert.\nVor der Installation von MediaWiki muss entweder die PHP-JSON- oder die [http://pecl.php.net/package/jsonc PECL-jsonc]-Erweiterung installieren werden.\n* Die PHP-Erweiterung ist in Red Hat Enterprise Linux (CentOS) 5 und 6 enthalten, muss jedoch in <code>/etc/php.ini</code> oder <code>/etc/php.d/json.ini</code> aktiviert werden.\n* Einige Linux-Distributionen, die nach Mai 2013 veröffentlicht wurden, nutzen nicht mehr die PHP-Erweiterung, sondern stattdessen die PECL-Erweiterung als <code>php5-json</code> oder <code>php-pecl-jsonc</code>.",
-       "config-mbstring-absent": "<strong>Fatal:</strong> PHP muss mit Unterstützung für die [http://www.php.net/manual/de/mbstring.setup.php mbstring-Erweiterung] kompiliert werden.",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] ist installiert",
        "config-apc": "[http://www.php.net/apc APC] ist installiert",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] ist installiert",
@@ -92,7 +87,7 @@
        "config-no-cli-uri": "'''Warnung''': Es wurde kein Pfad zum Skipt (<code>--scriptpath</code>) angegeben. Daher wird der Standardpfad genutzt: <code>$1</code>.",
        "config-using-server": "Der Servername „<nowiki>$1</nowiki>“ wird verwendet.",
        "config-using-uri": "Die Server-URL „<nowiki>$1$2</nowiki>“ wird verwendet.",
-       "config-uploads-not-safe": "'''Warnung:''' Das Standardverzeichnis für hochgeladene Dateien <code>$1</code> ist für die willkürliche Ausführung von Skripten anfällig.\nObwohl MediaWiki die hochgeladenen Dateien auf Sicherheitsrisiken überprüft, wird dennoch dringend empfohlen, diese [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security Sicherheitslücke] zu schließen, bevor das Hochladen von Dateien aktiviert wird.",
+       "config-uploads-not-safe": "'''Warnung:''' Das Standardverzeichnis für hochgeladene Dateien <code>$1</code> ist für die willkürliche Ausführung von Skripten anfällig.\nObwohl MediaWiki die hochgeladenen Dateien auf Sicherheitsrisiken überprüft, wird dennoch dringend empfohlen, diese [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security Sicherheitslücke] zu schließen, bevor das Hochladen von Dateien aktiviert wird.",
        "config-no-cli-uploads-check": "'''Warnung''': Das Standardverzeichnis für hochgeladene Dateien (<code>$1</code>) wird, während der Installation über die Kommandozeile, nicht auf Sicherheitsanfälligkeiten hinsichtlich willkürlicher Skriptausführungen geprüft.",
        "config-brokenlibxml": "Das System nutzt eine Kombination aus PHP- und libxml2-Versionen, die fehleranfällig ist und versteckte Datenfehler bei MediaWiki und anderen Webanwendungen verursachen kann.\nAktualisiere auf libxml2 2.7.3 oder später, um das Problem zu lösen. Installationsabbruch ([https://bugs.php.net/bug.php?id=45996 siehe hierzu die Fehlermeldung bei PHP]).",
        "config-suhosin-max-value-length": "Suhosin ist installiert und beschränkt die Länge des GET-Parameters auf $1 Bytes.\nDer ResouceLoader von MediaWiki wird zwar unter diesen Bedingungen funktionieren, allerdings nur mit verminderter Leistungsfähigkeit.\nSofern möglich, sollte der Parameter <code>suhosin.get.max_value_length</code> in der Datei <code>php.ini</code> auf 1024 oder höher festgelegt werden.\nGleichzeitig muss der Parameter <code>$wgResourceLoaderMaxQueryLength</code> in der Datei <code>LocalSettings.php</code> auf den selben Wert eingestellt werden.",
        "config-db-wiki-help": "Bitte Benutzernamen und Passwort angeben, die der Webserver während des Normalbetriebes dazu verwenden soll, eine Verbindung zum Datenbankserver herzustellen.\nSofern ein entsprechendes Benutzerkonto nicht vorhanden ist und das Benutzerkonto für den Installationsvorgang über ausreichende Berechtigungen verfügt, wird dieses Benutzerkonto automatisch mit den Mindestberechtigungen zum Normalbetrieb des Wikis angelegt.",
        "config-db-prefix": "Datenbanktabellenpräfix:",
        "config-db-prefix-help": "Sofern eine Datenbank für mehrere Wikiinstallationen oder eine Wikiinstallation und eine andere Programminstallation genutzt werden soll, muss ein Datenbanktabellenpräfix angegeben werden, um Datenbankprobleme zu vermeiden.\nEs können keine Leerzeichen verwendet werden.\n\nGewöhnlich bleibt dieses Feld leer.",
-       "config-db-charset": "Datenbankzeichensatz",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 binär",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "MySQL 4.0 abwärtskompatibles UTF-8",
-       "config-charset-help": "'''Warnung:''' Sofern '''abwärtskompatibles UTF-8''' bei MySQL 4.1+ verwendet und anschließend die Datenbank mit <code>mysqldump</code> gesichert wird, könnten alle nicht mit ASCII-codierten Zeichen beschädigt werden, was zu irreversiblen Schäden der Datensicherung führt!\n\nIm '''binären Modus''' speichert MediaWiki UTF-8 Texte in der Datenbank in binär kodierte Datenfelder.\nDies ist effizienter als der UTF-8-Modus von MySQL und ermöglicht so die Verwendung jeglicher Unicode-Zeichen.\nIm '''UTF-8-Modus''' wird MySQL den Zeichensatz der Daten erkennen und sie richtig anzeigen und konvertieren.\nEs können allerdings keine Zeichen außerhalb des [//de.wikipedia.org/wiki/Basic_Multilingual_Plane#Gliederung_in_Ebenen_und_Bl.C3.B6cke ''Basic Multilingual Plane'' (BMP)] gespeichert werden.",
        "config-mysql-old": "MySQL $1 oder höher wird benötigt. MySQL $2 ist momentan vorhanden.",
        "config-db-port": "Datenbankport:",
        "config-db-schema": "Datenschema für MediaWiki",
        "config-mysql-charset": "Datenbankzeichensatz:",
        "config-mysql-binary": "binär",
        "config-mysql-utf8": "UTF-8",
-       "config-mysql-charset-help": "Im '''binären Modus''' speichert MediaWiki UTF-8 Texte in der Datenbank in binär kodierte Datenfelder.\nDies ist effizienter als der UTF-8-Modus von MySQL und ermöglicht so die Verwendung jeglicher Unicode-Zeichen.\n\nIm '''UTF-8-Modus''' wird MySQL den Zeichensatz der Daten erkennen und sie richtig anzeigen und konvertieren,\nallerdings können keine Zeichen außerhalb des [//de.wikipedia.org/wiki/Basic_Multilingual_Plane#Gliederung_in_Ebenen_und_Bl.C3.B6cke ''Basic Multilingual Plane'' (BMP)] gespeichert werden.",
+       "config-mysql-charset-help": "Im '''binären Modus''' speichert MediaWiki UTF-8 Texte in der Datenbank in binär kodierte Datenfelder.\nDies ist effizienter als der UTF-8-Modus von MySQL und ermöglicht so die Verwendung jeglicher Unicode-Zeichen.\n\nIm '''UTF-8-Modus''' wird MySQL den Zeichensatz der Daten erkennen und sie richtig anzeigen und konvertieren,\nallerdings können keine Zeichen außerhalb des [https://de.wikipedia.org/wiki/Basic_Multilingual_Plane#Gliederung_in_Ebenen_und_Bl.C3.B6cke ''Basic Multilingual Plane'' (BMP)] gespeichert werden.",
        "config-mssql-auth": "Authentifikationstyp:",
        "config-mssql-install-auth": "Wähle den Authentifikationstyp aus, der zur Verbindung mit der Datenbank während des Installationsprozesses verwendet wird.\nFalls du „{{int:config-mssql-windowsauth}}“ auswählst, werden die Anmeldeinformationen eines beliebigen Benutzers verwendet, der den Webserver ausführt.",
        "config-mssql-web-auth": "Wähle den Authentifikationstyp aus, der vom Webserver zur Verbindung mit dem Datenbankserver während des gewöhnlichen Betriebs des Wikis verwendet wird.\nFalls du „{{int:config-mssql-windowsauth}}“ auswählst, werden die Anmeldeinformationen eines beliebigen Benutzers verwendet, der den Webserver ausführt.",
        "config-profile-no-anon": "Erstellung eines Benutzerkontos erforderlich",
        "config-profile-fishbowl": "ausschließlich berechtigte Bearbeiter",
        "config-profile-private": "geschlossenes Wiki",
-       "config-profile-help": "Wikis sind am nützlichsten, wenn so viele Menschen als möglich Bearbeitungen vornehmen können.\nMit MediaWiki ist es einfach die letzten Änderungen nachzuvollziehen und unbrauchbare Bearbeitungen, beispielsweise von unbedarften oder böswilligen Benutzern, rückgängig zu machen.\n\nAllerdings finden etliche Menschen Wikis auch mit anderen Bearbeitungskonzepten sinnvoll. Manchmal ist es zudem nicht einfach alle Beteiligten von den Vorteilen des „Wiki-Prinzips” zu überzeugen. Darum ist diese Auswahl möglich.\n\nDas Modell „'''{{int:config-profile-wiki}}'''“ ermöglicht es jedermann, sogar ohne über ein Benutzerkonto zu verfügen, Bearbeitungen vorzunehmen.\nEin Wiki bei dem die '''{{int:config-profile-no-anon}}''' ist, fordert von den Benutzern eine höhere Verantwortung für ihre Bearbeitungen ein, könnte allerdings Personen abschrecken, die nur gelegentlich Bearbeitungen vornehmen wollen. Ein Wiki für '''{{int:config-profile-fishbowl}}''' gestattet es nur bestimmten Benutzern, Bearbeitungen vorzunehmen. Allerdings kann dabei die Allgemeinheit die Seiten immer noch betrachten und Änderungen nachvollziehen. Ein '''{{int:config-profile-private}}''' gestattet es nur ausgewählten Benutzern, Seiten zu betrachten sowie zu bearbeiten.\n\nKomplexere Konzepte zur Zugriffssteuerung können erst nach abgeschlossenem Installationsvorgang eingerichtet werden. Hierzu gibt es weitere Informationen auf der Website mit der [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights entsprechenden Anleitung].",
+       "config-profile-help": "Wikis sind am nützlichsten, wenn so viele Menschen als möglich Bearbeitungen vornehmen können.\nMit MediaWiki ist es einfach die letzten Änderungen nachzuvollziehen und unbrauchbare Bearbeitungen, beispielsweise von unbedarften oder böswilligen Benutzern, rückgängig zu machen.\n\nAllerdings finden etliche Menschen Wikis auch mit anderen Bearbeitungskonzepten sinnvoll. Manchmal ist es zudem nicht einfach alle Beteiligten von den Vorteilen des „Wiki-Prinzips” zu überzeugen. Darum ist diese Auswahl möglich.\n\nDas Modell „'''{{int:config-profile-wiki}}'''“ ermöglicht es jedermann, sogar ohne über ein Benutzerkonto zu verfügen, Bearbeitungen vorzunehmen.\nEin Wiki bei dem die '''{{int:config-profile-no-anon}}''' ist, fordert von den Benutzern eine höhere Verantwortung für ihre Bearbeitungen ein, könnte allerdings Personen abschrecken, die nur gelegentlich Bearbeitungen vornehmen wollen. Ein Wiki für '''{{int:config-profile-fishbowl}}''' gestattet es nur bestimmten Benutzern, Bearbeitungen vorzunehmen. Allerdings kann dabei die Allgemeinheit die Seiten immer noch betrachten und Änderungen nachvollziehen. Ein '''{{int:config-profile-private}}''' gestattet es nur ausgewählten Benutzern, Seiten zu betrachten sowie zu bearbeiten.\n\nKomplexere Konzepte zur Zugriffssteuerung können erst nach abgeschlossenem Installationsvorgang eingerichtet werden. Hierzu gibt es weitere Informationen auf der Website mit der [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights entsprechenden Anleitung].",
        "config-license": "Lizenz:",
        "config-license-none": "Keine Lizenzangabe in der Fußzeile",
        "config-license-cc-by-sa": "''Creative Commons'' „Namensnennung – Weitergabe unter gleichen Bedingungen“",
        "config-email-sender-help": "Bitte hier die E-Mail-Adresse angeben, die als Absenderadresse bei ausgehenden E-Mails eingesetzt werden soll.\nRücklaufende E-Mails werden an diese E-Mail-Adresse gesandt.\nBei vielen E-Mail-Servern muss der Teil der E-Mail-Adresse mit der Domainangabe korrekt sein.",
        "config-upload-settings": "Hochladen von Bildern und Dateien",
        "config-upload-enable": "Das Hochladen von Dateien ermöglichen",
-       "config-upload-help": "Das Hochladen von Dateien macht den Server für potentielle Sicherheitsprobleme anfällig.\nWeitere Informationen hierzu können im [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security Abschnitt Sicherheit] der Anleitung nachgelesen werden.\n\nUm das Hochladen von Dateien zu ermöglichen, muss der Zugriff auf das Unterverzeichnis <code>./images</code> so geändert werden, das dieses für den Webserver beschreibbar ist.\nHernach kann diese Option aktiviert werden.",
+       "config-upload-help": "Das Hochladen von Dateien macht den Server für potentielle Sicherheitsprobleme anfällig.\nWeitere Informationen hierzu können im [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security Abschnitt Sicherheit] der Anleitung nachgelesen werden.\n\nUm das Hochladen von Dateien zu ermöglichen, muss der Zugriff auf das Unterverzeichnis <code>./images</code> so geändert werden, das dieses für den Webserver beschreibbar ist.\nHernach kann diese Option aktiviert werden.",
        "config-upload-deleted": "Verzeichnis für gelöschte Dateien:",
        "config-upload-deleted-help": "Bitte ein Verzeichnis auswählen, in dem gelöschte Dateien archiviert werden sollen.\nIdealerweise sollte es nicht über das Internet zugänglich sein.",
        "config-logo": "URL des Logos:",
        "config-logo-help": "Die Standardoberfläche von MediaWiki verfügt links oberhalb der Seitenleiste über Platz für ein Logo mit den Maßen 135x160 Pixel.\nBitte ein Logo in entsprechender Größe hochladen und die zugehörige URL an dieser Stelle angeben.\n\nDu kannst <code>$wgStylePath</code> oder <code>$wgScriptPath</code> verwenden, falls dein Logo relativ zu diesen Pfaden ist.\n\nSofern kein Logo benötigt wird, kann dieses Datenfeld leer bleiben.",
        "config-instantcommons": "„InstantCommons“ aktivieren",
-       "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons InstantCommons] ist eine Funktion, die es Wikis ermöglicht, Bild-, Klang- und andere Mediendateien zu nutzen, die auf der Website [//commons.wikimedia.org/ Wikimedia Commons] verfügbar sind.\nUm diese Funktion nutzen zu können, muss das Wiki über eine Verbindung zum Internet verfügen.\n\nWeitere Informationen zu dieser Funktion, einschließlich der Anleitung, wie hierfür andere Wikis als Wikimedia Commons eingerichtet werden können, gibt es im [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos Handbuch].",
+       "config-instantcommons-help": "[https://www.mediawiki.org/wiki/InstantCommons InstantCommons] ist eine Funktion, die es Wikis ermöglicht, Bild-, Klang- und andere Mediendateien zu nutzen, die auf der Website [https://commons.wikimedia.org/ Wikimedia Commons] verfügbar sind.\nUm diese Funktion nutzen zu können, muss das Wiki über eine Verbindung zum Internet verfügen.\n\nWeitere Informationen zu dieser Funktion, einschließlich der Anleitung, wie hierfür andere Wikis als Wikimedia Commons eingerichtet werden können, gibt es im [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos Handbuch].",
        "config-cc-error": "Der Creativ-Commons-Lizenzassistent konnte keine Lizenz ermitteln.\nDie Lizenz ist daher jetzt manuell einzugeben.",
        "config-cc-again": "Erneut auswählen …",
        "config-cc-not-chosen": "Die gewünschte Creative-Commons-Lizenz auswählen und dann auf „proceed“ klicken.",
        "config-install-extension-tables": "Erstellung der Tabellen für die aktivierten Erweiterungen",
        "config-install-mainpage-failed": "Die Hauptseite konnte nicht erstellt werden: $1",
        "config-install-done": "'''Herzlichen Glückwunsch!'''\nMediaWiki wurde erfolgreich installiert.\n\nDas Installationsprogramm hat die Datei <code>LocalSettings.php</code> erzeugt.\nSie enthält alle vorgenommenen Konfigurationseinstellungen.\n\nDiese Datei muss nun heruntergeladen und anschließend in das Stammverzeichnis der MediaWiki-Installation hochgeladen werden. Dies ist dasselbe Verzeichnis, in dem sich auch die Datei <code>index.php</code> befindet. Das Herunterladen sollte inzwischen automatisch gestartet worden sein.\n\nSofern dies nicht der Fall war, oder das Herunterladen unterbrochen wurde, kann der Vorgang durch einen Klick auf den folgenden Link erneut gestartet werden:\n\n$3\n\n'''Hinweis:''' Die Konfigurationsdatei sollte jetzt unbedingt heruntergeladen werden. Sie wird nach Beenden des Installationsprogramms, nicht mehr zur Verfügung stehen.\n\nSobald alles erledigt wurde, kann auf das '''[$2 Wiki zugegriffen werden]'''. Wir wünschen viel Spaß und Erfolg mit dem Wiki.",
+       "config-install-done-path": "<strong>Herzlichen Glückwunsch!</strong>\nDu hast MediaWiki installiert.\n\nDas Installationsprogramm hat eine Datei „<code>LocalSettings.php</code>“ erzeugt.\nSie enthält deine gesamte Konfiguration.\n\nDu musst sie herunterladen und unter <code>$4</code> ablegen. Der Download sollte automatisch gestartet sein.\n\nFalls der Download nicht angeboten wird oder du ihn abgebrochen hast, kannst du ihn durch Anklicken des folgenden Links neu starten:\n\n$3\n\n<strong>Hinweis:</strong> Falls du dies jetzt nicht tust, wird die erzeugte Konfigurationsdatei später nicht verfügbar sein, wenn du die Installation ohne Herunterladen verlässt.\n\nBei Fertigstellung kannst du <strong>[$2 dein Wiki aufrufen]</strong>.",
        "config-download-localsettings": "<code>LocalSettings.php</code> herunterladen",
        "config-help": "Hilfe",
        "config-help-tooltip": "Zum Expandieren klicken",
        "config-nofile": "Die Datei „$1“ konnte nicht gefunden werden. Wurde sie gelöscht?",
-       "config-extension-link": "Wusstest du, dass dein Wiki die Nutzung von [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions Erweiterungen] unterstützt?\n\nDu kannst [//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category Erweiterungen nach Kategorie] durchsuchen.",
+       "config-extension-link": "Wusstest du, dass dein Wiki die Nutzung von [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions Erweiterungen] unterstützt?\n\nDu kannst die [https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category Erweiterungen nach Kategorie] anzeigen oder die [https://www.mediawiki.org/wiki/Extension_Matrix Erweiterungs-Matrix] aufrufen, um eine vollständige Liste der Erweiterungen zu sehen.",
        "mainpagetext": "<strong>MediaWiki wurde installiert.</strong>",
-       "mainpagedocfooter": "Hilfe zur Benutzung und Konfiguration der Wiki-Software findest du im [//meta.wikimedia.org/wiki/Help:Contents Benutzerhandbuch].\n\n== Starthilfen ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Liste der Konfigurationsvariablen]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki-FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Lokalisiere MediaWiki für deine Sprache]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Erfahre, wie du Spam auf deinem Wiki bekämpfen kannst]"
+       "mainpagedocfooter": "Hilfe zur Benutzung und Konfiguration der Wiki-Software findest du im [https://meta.wikimedia.org/wiki/Help:Contents Benutzerhandbuch].\n\n== Starthilfen ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Liste der Konfigurationsvariablen]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki-FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Übersetze MediaWiki für deine Sprache]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Erfahre, wie du Spam auf deinem Wiki bekämpfen kannst]"
 }
index a1df4d9..f8d26a7 100644 (file)
@@ -3,7 +3,8 @@
                "authors": [
                        "Erdemaslancan",
                        "Mirzali",
-                       "Marmase"
+                       "Marmase",
+                       "Kumkumuk"
                ]
        },
        "config-desc": "Qandé MediaWiki sazi",
        "config-page-copying": "Kopyayeno",
        "config-page-upgradedoc": "Berzkerdış",
        "config-restart": "E, fına dest pekê",
-       "config-sidebar": "* [//www.mediawiki.org MediaWiki keye]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Şınasiya Karberi]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Şınasiya İdarekaran]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Peşti]\n----\n* <doclink href=Readme>Mı buwanê</doclink>\n* <doclink href=ReleaseNotes>Notê elaqeyıni</doclink>\n* <doclink href=Copying>Kopyakerdış</doclink>\n* <doclink href=UpgradeDoc>Zêdekerdış</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org MediaWiki keye]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Şınasiya Karberi]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Şınasiya İdarekaran]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Peşti]\n----\n* <doclink href=Readme>Mı buwanê</doclink>\n* <doclink href=ReleaseNotes>Notê elaqeyıni</doclink>\n* <doclink href=Copying>Kopyakerdış</doclink>\n* <doclink href=UpgradeDoc>Zêdekerdış</doclink>",
        "config-env-php": "PHP $1 i biyo saz.",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 dılet",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+       "config-db-type": "Database tipe:",
+       "config-db-host": "Database host:",
+       "config-db-name": "Database name:",
        "config-db-port": "Portê database:",
+       "config-type-mssql": "Microsoft SQL Server",
        "config-header-mysql": "Eyarê MySQL",
        "config-mysql-innodb": "InnoDB",
        "config-mysql-myisam": "MyISAM",
        "config-email-settings": "Sazê e-posta",
        "config-logo": "URL'ey Logoy:",
        "config-extensions": "Olekeni",
+       "config-skins": "Temey",
        "config-install-step-done": "qeyd ke",
        "config-install-step-failed": "nêbı",
        "config-install-schema": "Şema dek",
        "config-install-pg-commit": "Vırnayışa cemaati",
        "config-install-tables": "Tabloy dek",
        "config-help": "peşti",
-       "mainpagetext": "'''MediaWiki vıst ra ser, vıraziya.'''",
-       "mainpagedocfooter": "Qandé ğebtiyayışi u sazkerdeışi Wiki-Softwarey [//meta.wikimedia.org/wiki/Help:Contents İdarê karberi] de mıracaet ke.\n\n== Destega sergendi ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista eyaranê vıraştışi]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki de ÇZP]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki ra lista serbest-dayışê postey]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Zıwandé şıma de Lokal MediaWiki]"
+       "mainpagetext": "<strong >MediaWiki vıst ra ser, vıraziya.</strong >",
+       "mainpagedocfooter": "Qandé ğebtiyayışi u sazkerdeışi Wiki-Softwarey [https://meta.wikimedia.org/wiki/Help:Contents İdarê karberi] de mıracaet ke.\n\n== Destega sergendi ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista eyaranê vıraştışi]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki de ÇZP]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki ra lista serbest-dayışê postey]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Zıwandé şıma de Lokal MediaWiki]"
 }
index 0b2e1a8..93d9028 100644 (file)
@@ -5,5 +5,5 @@
                ]
        },
        "mainpagetext": "'''MediaWiki jo se wuspěšnje instalěrowało.'''",
-       "mainpagedocfooter": "Pomoc pśi wužywanju softwary wiki namakajoš pód [//meta.wikimedia.org/wiki/Help:Contents User's Guide].\n\nPomoc pśi wužywanju softwary wiki namakajoš pód [//meta.wikimedia.org/wiki/Help:Contents User's Guide].\n\n== Na zachopjenje ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Konfiguracija lisćiny połoženjow]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ (pšašanja a wótegrona)]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lisćina e-mailowych nakładow MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources MediaWiki za twóju rěc lokalizěrowaś]"
+       "mainpagedocfooter": "Pomoc pśi wužywanju softwary wiki namakajoš pód [https://meta.wikimedia.org/wiki/Help:Contents User's Guide].\n\nPomoc pśi wužywanju softwary wiki namakajoš pód [https://meta.wikimedia.org/wiki/Help:Contents User's Guide].\n\n== Na zachopjenje ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Konfiguracija lisćiny połoženjow]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ (pšašanja a wótegrona)]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lisćina e-mailowych nakładow MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources MediaWiki za twóju rěc lokalizěrowaś]"
 }
index da75bd6..675cbcc 100644 (file)
@@ -5,5 +5,5 @@
                ]
        },
        "mainpagetext": "'''Nopongo no do popodokot ot ModiaWiki.'''",
-       "mainpagedocfooter": "Rujuko hilo [//meta.wikimedia.org/wiki/Help:Contents Ponudukan Momomoguno] kokomoi koilaan do momoguno posusuang-suangon wiki.\n\n== Kopotimpuunan ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lis papatantu nuludan]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Ponguhatan Koinsoruan om Simbar ModiaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lis pininsuratan pinolabus do ModiaWiki]"
+       "mainpagedocfooter": "Rujuko hilo [https://meta.wikimedia.org/wiki/Help:Contents Ponudukan Momomoguno] kokomoi koilaan do momoguno posusuang-suangon wiki.\n\n== Kopotimpuunan ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lis papatantu nuludan]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Ponguhatan Koinsoruan om Simbar ModiaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lis pininsuratan pinolabus do ModiaWiki]"
 }
index ee46d90..a11c301 100644 (file)
        "config-restart": "Ναι, επανεκκίνηση",
        "config-welcome": "=== Περιβαλλοντικοί έλεγχοι ===\nΤώρα θα γίνουν βασικοί έλεγχοι για να δούμε αν αυτό το περιβάλλον είναι κατάλληλο για την εγκατάσταση του MediaWiki.\nΘυμηθείτε να συμπεριλάβετε αυτές τις πληροφορίες εάν αναζητήσετε υποστήριξη για το πώς να ολοκληρώσετε την εγκατάσταση.",
        "config-copyright": "=== Πνευματικά δικαιώματα και Όροι ===\n\n$1\n\nΑυτό το πρόγραμμα είναι ελεύθερο λογισμικό• μπορείτε να το αναδιανείμετε ή και να το τροποποιήσετε υπό τους όρους της Γενικής Άδειας Δημόσιας Χρήσης GNU, όπως αυτή δημοσιεύεται από το Ίδρυμα Ελεύθερου Λογισμικού• είτε της έκδοσης 2 της Άδειας, είτε (κατά την επιλογή σας) οποιασδήποτε μεταγενέστερης έκδοσης.\n\nΑυτό το πρόγραμμα διανέμεται με την ελπίδα ότι θα είναι χρήσιμο, αλλά <strong>χωρίς καμία εγγύηση</strong>• χωρίς καν την υπονοούμενη εγγύηση της <strong>εμπορευσιμότητας</strong> ή της <strong>καταλληλοτότητας για συγκεκριμένο σκοπό</strong>.\nΔείτε την Γενική Άδεια Δημόσιας Χρήσης GNU για περισσότερες λεπτομέρειες.\n\nΘα πρέπει να έχετε λάβει <doclink href=\"Copying\">ένα αντίγραφο της Γενικής Άδειας Δημόσιας Χρήσης GNU</doclink> μαζί με αυτό το πρόγραμμα• αν όχι, γράψτε στο Free Software Foundation,\n51 Franklin Street, Fifth Floor,\nBoston, MA 02110-1335\nUSA ή [http://www.gnu.org/copyleft/gpl.html διαβάστε online].",
-       "config-sidebar": "* [//www.mediawiki.org Αρχική MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Οδηγός Χρήστη]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Οδηγός Διαχειριστή]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Συχνές ερωτήσεις]\n----\n* <doclink href=\"Readme\">Διαβάστε με</doclink>\n* <doclink href=\"ReleaseNotes\">Σημειώσεις έκδοσης</doclink>\n* <doclink href=\"Copying\">Αντιγραφή</doclink>\n* <doclink href=\"UpgradeDoc\">Αναβάθμιση</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org Αρχική MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Οδηγός Χρήστη]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Οδηγός Διαχειριστή]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Συχνές ερωτήσεις]\n----\n* <doclink href=\"Readme\">Διαβάστε με</doclink>\n* <doclink href=\"ReleaseNotes\">Σημειώσεις έκδοσης</doclink>\n* <doclink href=\"Copying\">Αντιγραφή</doclink>\n* <doclink href=\"UpgradeDoc\">Αναβάθμιση</doclink>",
        "config-env-good": "Το περιβάλλον έχει ελεγχθεί.\nΜπορείτε να εγκαταστήσετε το MediaWiki.",
        "config-env-bad": "Το περιβάλλον έχει ελεγχθεί.\nΔεν μπορείτε να εγκαταστήσετε το MediaWiki.",
        "config-env-php": "H PHP $1 είναι εγκατεστημένη.",
        "config-env-hhvm": "Το HHVM $1 είναι εγκατεστημένο.",
        "config-unicode-using-intl": "Χρησιμοποιώντας την [http://pecl.php.net/intl επέκταση intl PECL] για κανονικοποίηση Unicode.",
-       "config-unicode-pure-php-warning": "<strong>Προειδοποίηση:</strong> Η [http://pecl.php.net/intl επέκταση intl PECL] δεν είναι διαθέσιμη για να χειριστεί την κανονικοποίηση Unicode, επιστρέφουμε στην αργή αμιγώς PHP εφαρμογή.\nΕάν λειτουργείτε έναν ιστότοπο υψηλής επισκεψιμότητας, θα πρέπει να ρίξετε μια ματιά στην [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations κανονικοποίηση Unicode].",
+       "config-unicode-pure-php-warning": "<strong>Προειδοποίηση:</strong> Η [http://pecl.php.net/intl επέκταση intl PECL] δεν είναι διαθέσιμη για να χειριστεί την κανονικοποίηση Unicode, επιστρέφουμε στην αργή αμιγώς PHP εφαρμογή.\nΕάν λειτουργείτε έναν ιστότοπο υψηλής επισκεψιμότητας, θα πρέπει να ρίξετε μια ματιά στην [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations κανονικοποίηση Unicode].",
        "config-no-db": "Δεν βρέθηκε κάποιο κατάλληλο πρόγραμμα οδήγησης βάσης δεδομένων! Θα πρέπει να εγκαταστήσετε ένα πρόγραμμα οδήγησης βάσης δεδομένων για  PHP.\nΟ παρακάτω {{PLURAL:$2|τύπος βάσης δεδομένων|τύποι βάσεων δεδομένων}} υποστηρίζονται: $1.\n\nΑν κάνετε compile την PHP μόνοι σας, ρυθμίστε ξανά τις παραμέτρους με κάποιον ενεργοποιημένο εξυπηρετητή βάσεων  δεδομένων, για παράδειγμα, χρησιμοποιώντας την εντολή <code>./configure --with-mysqli</code>.\nΕάν έχετε εγκαταστήσει την PHP από κάποιο πακέτο στο Debian ή στο Ubuntu, τότε θα πρέπει να εγκαταστήσετε επίσης, για παράδειγμα, το πακέτο <code>php5-mysql</code>.",
        "config-outdated-sqlite": "<strong>Προειδοποίηση:</strong> έχετε την SQLite έκδοση $1, που είναι χαμηλότερη από την ελάχιστη απαιτούμενη έκδοση $2. Η SQLite δεν θα είναι διαθέσιμη.",
-       "config-register-globals-error": "<strong>Σφάλμα: Η επιλογή της PHP <code>[http://php.net/register_globals τις register_globals]</code> είναι ενεργοποιημένη.\nΘα πρέπει να απενεργοποιηθεί για να συνεχιστεί η εγκατάσταση.</strong>\nΔείτε τη σελίδα [https://www.mediawiki.org/wiki/register_globals https://www.mediawiki.org/wiki/register_globals] για βοήθεια σχετικά με αυτήν την ενέργεια.",
-       "config-safe-mode": "<strong>Προειδοποίηση:</strong> Το [http://www.php.net/features.safe-mode safe mode] της PHP είναι ενεργό.\nΑυτό μπορεί να προκαλέσει προβλήματα, ιδιαίτερα εάν γίνεται χρήση φόρτωσης αρχείων και  υποστήριξης <code>math</code>.",
-       "config-xml-bad": "Το PHP XML module λείπει.\nΤο MediaWiki απαιτεί συναρτήσεις που περιλαμβάνονται σε αυτό το module και δεν θα λειτουργήσει με αυτή την παραμετροποίηση. \nΊσως χρειάζεται να εγκαταστήσετε το πακέτο RPM php-xml.",
        "config-pcre-no-utf8": "<strong>Κρίσιμο:</strong> Το PCRE module της PHP  φαίνεται να έχει μεταγλωττιστεί χωρίς υποστήριξη  PCRE_UTF8.\nΓια τη σωστή λειτουργία του MediaWiki απαιτείται υποστήριξη UTF-8.",
        "config-memory-raised": "Το  <code>memory_limit</code> της PHP είναι  $1 και αυξήθηκε σε  $2.",
        "config-memory-bad": "<strong>Προειδοποίηση:</strong> το <code>memory_limit</code> της PHP είναι $1.\nΑυτή η τιμή είναι πιθανώς πολύ χαμηλή.\n\nΗ εγκατάσταση ενδέχεται να αποτύχει!",
        "config-db-wiki-help": "Πληκτρολογήστε το όνομα χρήστη και τον κωδικό πρόσβασης που θα χρησιμοποιηθεί για τη σύνδεση με τη βάση δεδομένων κατά τη διάρκεια της κανονικής λειτουργίας του wiki.\nΕάν ο λογαριασμός δεν υπάρχει και o λογαριασμός εγκατάστασης  έχει επαρκή δικαιώματα, αυτός ο λογαριασμός χρήστη θα δημιουργηθεί με τα ελάχιστα δικαιώματα που απαιτούνται για τη λειτουργία του wiki.",
        "config-db-prefix": "Πρόθεμα πίνακα βάσης δεδομένων:",
        "config-db-prefix-help": "Εάν χρειάζεται να μοιραστείτε μία βάση δεδομένων μεταξύ πολλαπλών wikis, ή μεταξύ του MediaWiki και μιας άλλης web εφαρμογής, μπορείτε να προσθέσετε ένα πρόθεμα σε όλα τα ονόματα πίνακα για να αποφεύγονται οι διενέξεις.\nΜην χρησιμοποιείτε κενά διαστήματα.\n\nΑυτό το πεδίο αφήνεται συνήθως κενό.",
-       "config-db-charset": "Σύνολο χαρακτήρων βάσης δεδομένων",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 δυαδικό",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "UTF-8 συμβατό με MySQL 4.0 και παλαιότερες εκδόσεις",
        "config-mysql-old": "Απαιτείται Microsoft SQL Server $1 ή νεότερο. Εσείς έχετε $2.",
        "config-db-port": "Θύρα βάσης δεδομένων:",
        "config-db-schema": "Σχήμα για MediaWiki:",
        "config-email-sender": "Διεύθυνση ηλεκτρονικού ταχυδρομείου επιστροφής:",
        "config-upload-settings": "Ανέβασμα εικόνων και άλλων αρχείων",
        "config-upload-enable": "Ενεργοποιήστε το ανέβασμα αρχείων",
-       "config-upload-help": "Το ανέβασμα αρχείων εκθέτει πιθανώς το διακομιστή σας σε κινδύνους ασφαλείας.\nΓια περισσότερες πληροφορίες, διαβάστε την [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security ενότητα περί ασφάλειας] στο εγχειρίδιο.\n\nΓια να ενεργοποιήσετε το ανέβασμα αρχείων, αλλάξτε την κατάσταση του υποκαταλόγου <code>εικόνες</code> που βρίσκεται κάτω από τον ριζικό κατάλογο του MediaWiki έτσι ώστε ο διακομιστής ιστού να μπορεί να γράψει σε αυτόν.\nΣτη συνέχεια ενεργοποιήσετε αυτή την επιλογή.",
+       "config-upload-help": "Το ανέβασμα αρχείων εκθέτει πιθανώς το διακομιστή σας σε κινδύνους ασφαλείας.\nΓια περισσότερες πληροφορίες, διαβάστε την [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security ενότητα περί ασφάλειας] στο εγχειρίδιο.\n\nΓια να ενεργοποιήσετε το ανέβασμα αρχείων, αλλάξτε την κατάσταση του υποκαταλόγου <code>εικόνες</code> που βρίσκεται κάτω από τον ριζικό κατάλογο του MediaWiki έτσι ώστε ο διακομιστής ιστού να μπορεί να γράψει σε αυτόν.\nΣτη συνέχεια ενεργοποιήσετε αυτή την επιλογή.",
        "config-upload-deleted": "Καταλόγος για διαγραφέντα αρχεία:",
        "config-logo": "Διεύθυνση URL λογότυπου:",
        "config-instantcommons": "Ενεργοποίηση Instant Commons",
        "config-help": "βοήθεια",
        "config-help-tooltip": "κλικ για ανάπτυξη",
        "config-nofile": "Το αρχείο «$1» δεν μπορεί να βρεθεί. Μήπως έχει διαγραφεί;",
-       "config-extension-link": "Γνωρίζατε ότι το wiki σας υποστηρίζει [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions επεκτάσεις];\n\nΜπορείτε να περιηγηθείτε [//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category επεκτάσεις ανά κατηγορία] ή το [//www.mediawiki.org/wiki/Extension_Matrix Extension Matrix] για να δείτε την πλήρη λίστα των επεκτάσεων.",
+       "config-extension-link": "Γνωρίζατε ότι το wiki σας υποστηρίζει [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions επεκτάσεις];\n\nΜπορείτε να περιηγηθείτε [https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category επεκτάσεις ανά κατηγορία] ή το [https://www.mediawiki.org/wiki/Extension_Matrix Extension Matrix] για να δείτε την πλήρη λίστα των επεκτάσεων.",
        "mainpagetext": "<strong>To MediaWiki εγκαταστάθηκε με επιτυχία.</strong>",
-       "mainpagedocfooter": "Συμβουλευτείτε το [//meta.wikimedia.org/wiki/Help:Contents Οδηγός Χρήστη] για πληροφορίες σχετικά με το λογισμικό wiki.\n\n== Ξεκινώντας ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings ρυθμίσεις Διαμόρφωσης λίστα]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ το MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce το MediaWiki απελευθέρωση mailing list]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Έχουν MediaWiki για τη γλώσσα σας]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Μάθετε πώς να καταπολεμήσετε το spam στο wiki σας]"
+       "mainpagedocfooter": "Συμβουλευτείτε το [https://meta.wikimedia.org/wiki/Help:Contents Οδηγός Χρήστη] για πληροφορίες σχετικά με το λογισμικό wiki.\n\n== Ξεκινώντας ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings ρυθμίσεις Διαμόρφωσης λίστα]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ το MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce το MediaWiki απελευθέρωση mailing list]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Έχουν MediaWiki για τη γλώσσα σας]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Μάθετε πώς να καταπολεμήσετε το spam στο wiki σας]"
 }
index b5794bf..30796e3 100644 (file)
@@ -10,8 +10,8 @@
        "config-information": "Information",
        "config-copyright": "=== Copyright and Terms ===\n\n$1\n\nThis program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public Licence as published by the Free Software Foundation; either version 2 of the Licence, or (at your option) any later version.\n\nThis 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'''.\nSee the GNU General Public Licence for more details.\n\nYou should have received <doclink href=Copying>a copy of the GNU General Public Licence</doclink> along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. or [http://www.gnu.org/copyleft/gpl.html read it online].",
        "config-unicode-using-intl": "Using the [http://pecl.php.net/intl intl PECL extension] for Unicode normalisation.",
-       "config-unicode-pure-php-warning": "'''Warning:''' The [http://pecl.php.net/intl intl PECL extension] is not available to handle Unicode normalisation, falling back to slow pure-PHP implementation.\nIf you run a high-traffic site, you should read a little on [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode normalisation].",
-       "config-unicode-update-warning": "'''Warning:''' The installed version of the Unicode normalisation wrapper uses an older version of [http://site.icu-project.org/ the ICU project's] library.\nYou should [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations upgrade] if you are at all concerned about using Unicode.",
+       "config-unicode-pure-php-warning": "'''Warning:''' The [http://pecl.php.net/intl intl PECL extension] is not available to handle Unicode normalisation, falling back to slow pure-PHP implementation.\nIf you run a high-traffic site, you should read a little on [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode normalisation].",
+       "config-unicode-update-warning": "'''Warning:''' The installed version of the Unicode normalisation wrapper uses an older version of [http://site.icu-project.org/ the ICU project's] library.\nYou should [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations upgrade] if you are at all concerned about using Unicode.",
        "config-unknown-collation": "'''Warning:''' Database is using unrecognised collation.",
        "config-profile-fishbowl": "Authorised editors only",
        "config-license": "Copyright and licence:",
index e278714..79383f3 100644 (file)
        "config-restart": "Yes, restart it",
        "config-welcome": "=== Environmental checks ===\nBasic checks will now be performed to see if this environment is suitable for MediaWiki installation.\nRemember to include this information if you seek support on how to complete the installation.",
        "config-copyright": "=== Copyright and Terms ===\n\n$1\n\nThis 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.\n\nThis program is distributed in the hope that it will be useful, but <strong>without any warranty</strong>; without even the implied warranty of <strong>merchantability</strong> or <strong>fitness for a particular purpose</strong>.\nSee the GNU General Public License for more details.\n\nYou should have received <doclink href=Copying>a copy of the GNU General Public License</doclink> along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA, or [http://www.gnu.org/copyleft/gpl.html read it online].",
-       "config-sidebar": "* [//www.mediawiki.org MediaWiki home]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents User's Guide]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Administrator's Guide]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ]\n----\n* <doclink href=Readme>Read me</doclink>\n* <doclink href=ReleaseNotes>Release notes</doclink>\n* <doclink href=Copying>Copying</doclink>\n* <doclink href=UpgradeDoc>Upgrading</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org MediaWiki home]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents User's Guide]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Administrator's Guide]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ]\n----\n* <doclink href=Readme>Read me</doclink>\n* <doclink href=ReleaseNotes>Release notes</doclink>\n* <doclink href=Copying>Copying</doclink>\n* <doclink href=UpgradeDoc>Upgrading</doclink>",
        "config-env-good": "The environment has been checked.\nYou can install MediaWiki.",
        "config-env-bad": "The environment has been checked.\nYou cannot install MediaWiki.",
        "config-env-php": "PHP $1 is installed.",
        "config-env-hhvm": "HHVM $1 is installed.",
        "config-unicode-using-intl": "Using the [http://pecl.php.net/intl intl PECL extension] for Unicode normalization.",
-       "config-unicode-pure-php-warning": "<strong>Warning:</strong> The [http://pecl.php.net/intl intl PECL extension] is not available to handle Unicode normalization, falling back to slow pure-PHP implementation.\nIf you run a high-traffic site, you should read a little on [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode normalization].",
-       "config-unicode-update-warning": "<strong>Warning:</strong> The installed version of the Unicode normalization wrapper uses an older version of [http://site.icu-project.org/ the ICU project's] library.\nYou should [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations upgrade] if you are at all concerned about using Unicode.",
+       "config-unicode-pure-php-warning": "<strong>Warning:</strong> The [http://pecl.php.net/intl intl PECL extension] is not available to handle Unicode normalization, falling back to slow pure-PHP implementation.\nIf you run a high-traffic site, you should read a little on [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode normalization].",
+       "config-unicode-update-warning": "<strong>Warning:</strong> The installed version of the Unicode normalization wrapper uses an older version of [http://site.icu-project.org/ the ICU project's] library.\nYou should [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations upgrade] if you are at all concerned about using Unicode.",
        "config-no-db": "Could not find a suitable database driver! You need to install a database driver for PHP.\nThe following database {{PLURAL:$2|type is|types are}} supported: $1.\n\nIf you compiled PHP yourself, reconfigure it with a database client enabled, for example, using <code>./configure --with-mysqli</code>.\nIf you installed PHP from a Debian or Ubuntu package, then you also need to install, for example, the <code>php5-mysql</code> package.",
        "config-outdated-sqlite": "<strong>Warning:</strong> you have SQLite $1, which is lower than minimum required version $2. SQLite will be unavailable.",
        "config-no-fts3": "<strong>Warning:</strong> SQLite is compiled without the [//sqlite.org/fts3.html FTS3 module], search features will be unavailable on this backend.",
-       "config-mbstring": "<strong>Fatal: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] is active!</strong>\nThis option causes errors and may corrupt data unpredictably.\nYou cannot install or use MediaWiki unless this option is disabled.",
-       "config-xml-bad": "PHP's XML module is missing.\nMediaWiki requires functions in this module and will not work in this configuration.\nYou may need to install the php-xml RPM package.",
        "config-pcre-old": "<strong>Fatal:</strong> PCRE $1 or later is required.\nYour PHP binary is linked with PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE More information].",
        "config-pcre-no-utf8": "<strong>Fatal:</strong> PHP's PCRE module seems to be compiled without PCRE_UTF8 support.\nMediaWiki requires UTF-8 support to function correctly.",
        "config-memory-raised": "PHP's <code>memory_limit</code> is $1, raised to $2.",
        "config-memory-bad": "<strong>Warning:</strong> PHP's <code>memory_limit</code> is $1.\nThis is probably too low.\nThe installation may fail!",
-       "config-ctype": "<strong>Fatal:</strong> PHP must be compiled with support for the [http://www.php.net/manual/en/ctype.installation.php Ctype extension].",
-       "config-iconv": "<strong>Fatal:</strong> PHP must be compiled with support for the [http://www.php.net/manual/en/iconv.installation.php iconv extension].",
-       "config-json": "<strong>Fatal:</strong> PHP was compiled without JSON support.\nYou must install either the PHP JSON extension or the [http://pecl.php.net/package/jsonc PECL jsonc] extension before installing MediaWiki.\n* The PHP extension is included in Red Hat Enterprise Linux (CentOS) 5 and 6, though must be enabled in <code>/etc/php.ini</code> or <code>/etc/php.d/json.ini</code>.\n* Some Linux distributions released after May 2013 omit the PHP extension, instead packaging the PECL extension as <code>php5-json</code> or <code>php-pecl-jsonc</code>.",
-       "config-mbstring-absent": "<strong>Fatal:</strong> PHP must be compiled with support for the [http://www.php.net/manual/en/mbstring.setup.php mbstring extension].",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] is installed",
        "config-apc": "[http://www.php.net/apc APC] is installed",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] is installed",
@@ -76,7 +70,7 @@
        "config-no-cli-uri": "<strong>Warning:</strong> No <code>--scriptpath</code> specified, using default: <code>$1</code>.",
        "config-using-server": "Using server name \"<nowiki>$1</nowiki>\".",
        "config-using-uri": "Using server URL \"<nowiki>$1$2</nowiki>\".",
-       "config-uploads-not-safe": "<strong>Warning:</strong> Your default directory for uploads <code>$1</code> is vulnerable to arbitrary scripts execution.\nAlthough MediaWiki checks all uploaded files for security threats, it is highly recommended to [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security close this security vulnerability] before enabling uploads.",
+       "config-uploads-not-safe": "<strong>Warning:</strong> Your default directory for uploads <code>$1</code> is vulnerable to arbitrary scripts execution.\nAlthough MediaWiki checks all uploaded files for security threats, it is highly recommended to [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security close this security vulnerability] before enabling uploads.",
        "config-no-cli-uploads-check": "<strong>Warning:</strong> Your default directory for uploads (<code>$1</code>) is not checked for vulnerability\nto arbitrary script execution during the CLI install.",
        "config-brokenlibxml": "Your system has a combination of PHP and libxml2 versions that is buggy and can cause hidden data corruption in MediaWiki and other web applications.\nUpgrade to libxml2 2.7.3 or later ([https://bugs.php.net/bug.php?id=45996 bug filed with PHP]).\nInstallation aborted.",
        "config-suhosin-max-value-length": "Suhosin is installed and limits the GET parameter <code>length</code> to $1 bytes.\nMediaWiki's ResourceLoader component will work around this limit, but that will degrade performance.\nIf at all possible, you should set <code>suhosin.get.max_value_length</code> to 1024 or higher in <code>php.ini</code>, and set <code>$wgResourceLoaderMaxQueryLength</code> to the same value in <code>LocalSettings.php</code>.",
        "config-mysql-charset": "Database character set:",
        "config-mysql-binary": "Binary",
        "config-mysql-utf8": "UTF-8",
-       "config-mysql-charset-help": "In <strong>binary mode</strong>, MediaWiki stores UTF-8 text to the database in binary fields.\nThis is more efficient than MySQL's UTF-8 mode, and allows you to use the full range of Unicode characters.\n\nIn <strong>UTF-8 mode</strong>, MySQL will know what character set your data is in, and can present and convert it appropriately, but it will not let you store characters above the [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
+       "config-mysql-charset-help": "In <strong>binary mode</strong>, MediaWiki stores UTF-8 text to the database in binary fields.\nThis is more efficient than MySQL's UTF-8 mode, and allows you to use the full range of Unicode characters.\n\nIn <strong>UTF-8 mode</strong>, MySQL will know what character set your data is in, and can present and convert it appropriately, but it will not let you store characters above the [https://en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
        "config-mssql-auth": "Authentication type:",
        "config-mssql-install-auth": "Select the authentication type that will be used to connect to the database during the installation process.\nIf you select \"{{int:config-mssql-windowsauth}}\", the credentials of whatever user the webserver is running as will be used.",
        "config-mssql-web-auth": "Select the authentication type that the web server will use to connect to the database server, during ordinary operation of the wiki.\nIf you select \"{{int:config-mssql-windowsauth}}\", the credentials of whatever user the webserver is running as will be used.",
        "config-profile-no-anon": "Account creation required",
        "config-profile-fishbowl": "Authorized editors only",
        "config-profile-private": "Private wiki",
-       "config-profile-help": "Wikis work best when you let as many people edit them as possible.\nIn MediaWiki, it is easy to review the recent changes, and to revert any damage that is done by naive or malicious users.\n\nHowever, many have found MediaWiki to be useful in a wide variety of roles, and sometimes it is not easy to convince everyone of the benefits of the wiki way.\nSo you have the choice.\n\nThe <strong>{{int:config-profile-wiki}}</strong> model allows anyone to edit, without even logging in.\nA wiki with <strong>{{int:config-profile-no-anon}}</strong> provides extra accountability, but may deter casual contributors.\n\nThe <strong>{{int:config-profile-fishbowl}}</strong> scenario allows approved users to edit, but the public can view the pages, including history.\nA <strong>{{int:config-profile-private}}</strong> only allows approved users to view pages, with the same group allowed to edit.\n\nMore complex user rights configurations are available after installation, see the [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights relevant manual entry].",
+       "config-profile-help": "Wikis work best when you let as many people edit them as possible.\nIn MediaWiki, it is easy to review the recent changes, and to revert any damage that is done by naive or malicious users.\n\nHowever, many have found MediaWiki to be useful in a wide variety of roles, and sometimes it is not easy to convince everyone of the benefits of the wiki way.\nSo you have the choice.\n\nThe <strong>{{int:config-profile-wiki}}</strong> model allows anyone to edit, without even logging in.\nA wiki with <strong>{{int:config-profile-no-anon}}</strong> provides extra accountability, but may deter casual contributors.\n\nThe <strong>{{int:config-profile-fishbowl}}</strong> scenario allows approved users to edit, but the public can view the pages, including history.\nA <strong>{{int:config-profile-private}}</strong> only allows approved users to view pages, with the same group allowed to edit.\n\nMore complex user rights configurations are available after installation, see the [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights relevant manual entry].",
        "config-license": "Copyright and license:",
        "config-license-none": "No license footer",
        "config-license-cc-by-sa": "Creative Commons Attribution-ShareAlike",
        "config-email-sender-help": "Enter the email address to use as the return address on outbound email.\nThis is where bounces will be sent.\nMany mail servers require at least the domain name part to be valid.",
        "config-upload-settings": "Images and file uploads",
        "config-upload-enable": "Enable file uploads",
-       "config-upload-help": "File uploads potentially expose your server to security risks.\nFor more information, read the [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security security section] in the manual.\n\nTo enable file uploads, change the mode on the <code>images</code> subdirectory under MediaWiki's root directory so that the web server can write to it.\nThen enable this option.",
+       "config-upload-help": "File uploads potentially expose your server to security risks.\nFor more information, read the [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security security section] in the manual.\n\nTo enable file uploads, change the mode on the <code>images</code> subdirectory under MediaWiki's root directory so that the web server can write to it.\nThen enable this option.",
        "config-upload-deleted": "Directory for deleted files:",
        "config-upload-deleted-help": "Choose a directory in which to archive deleted files.\nIdeally, this should not be accessible from the web.",
        "config-logo": "Logo URL:",
        "config-logo-help": "MediaWiki's default skin includes space for a 135x160 pixel logo above the sidebar menu.\nUpload an image of the appropriate size, and enter the URL here.\n\nYou can use <code>$wgStylePath</code> or <code>$wgScriptPath</code> if your logo is relative to those paths.\n\nIf you do not want a logo, leave this box blank.",
        "config-instantcommons": "Enable Instant Commons",
-       "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons Instant Commons] is a feature that allows wikis to use images, sounds and other media found on the [//commons.wikimedia.org/ Wikimedia Commons] site.\nIn order to do this, MediaWiki requires access to the Internet.\n\nFor more information on this feature, including instructions on how to set it up for wikis other than the Wikimedia Commons, consult [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos the manual].",
+       "config-instantcommons-help": "[https://www.mediawiki.org/wiki/InstantCommons Instant Commons] is a feature that allows wikis to use images, sounds and other media found on the [https://commons.wikimedia.org/ Wikimedia Commons] site.\nIn order to do this, MediaWiki requires access to the Internet.\n\nFor more information on this feature, including instructions on how to set it up for wikis other than the Wikimedia Commons, consult [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos the manual].",
        "config-cc-error": "The Creative Commons license chooser gave no result.\nEnter the license name manually.",
        "config-cc-again": "Pick again...",
        "config-cc-not-chosen": "Choose which Creative Commons license you want and click \"proceed\".",
        "config-install-extension-tables": "Creating tables for enabled extensions",
        "config-install-mainpage-failed": "Could not insert main page: $1",
        "config-install-done": "<strong>Congratulations!</strong>\nYou have installed MediaWiki.\n\nThe installer has generated a <code>LocalSettings.php</code> file.\nIt contains all your configuration.\n\nYou will need to download it and put it in the base of your wiki installation (the same directory as index.php). The download should have started automatically.\n\nIf the download was not offered, or if you cancelled it, you can restart the download by clicking the link below:\n\n$3\n\n<strong>Note:</strong> If you do not do this now, this generated configuration file will not be available to you later if you exit the installation without downloading it.\n\nWhen that has been done, you can <strong>[$2 enter your wiki]</strong>.",
+       "config-install-done-path": "<strong>Congratulations!</strong>\nYou have installed MediaWiki.\n\nThe installer has generated a <code>LocalSettings.php</code> file.\nIt contains all your configuration.\n\nYou will need to download it and put it at <code>$4</code>. The download should have started automatically.\n\nIf the download was not offered, or if you cancelled it, you can restart the download by clicking the link below:\n\n$3\n\n<strong>Note:</strong> If you do not do this now, this generated configuration file will not be available to you later if you exit the installation without downloading it.\n\nWhen that has been done, you can <strong>[$2 enter your wiki]</strong>.",
        "config-download-localsettings": "Download <code>LocalSettings.php</code>",
        "config-help": "help",
        "config-help-tooltip": "click to expand",
        "config-nofile": "File \"$1\" could not be found. Has it been deleted?",
-       "config-extension-link": "Did you know that your wiki supports [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions extensions]?\n\nYou can browse [//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category extensions by category] or the [//www.mediawiki.org/wiki/Extension_Matrix Extension Matrix] to see the full list of extensions.",
+       "config-extension-link": "Did you know that your wiki supports [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions extensions]?\n\nYou can browse [https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category extensions by category] or the [https://www.mediawiki.org/wiki/Extension_Matrix Extension Matrix] to see the full list of extensions.",
        "mainpagetext": "<strong>MediaWiki has been installed.</strong>",
-       "mainpagedocfooter": "Consult the [//meta.wikimedia.org/wiki/Help:Contents User's Guide] for information on using the wiki software.\n\n== Getting started ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your wiki]"
+       "mainpagedocfooter": "Consult the [https://meta.wikimedia.org/wiki/Help:Contents User's Guide] for information on using the wiki software.\n\n== Getting started ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your wiki]"
 }
index d70571d..a215374 100644 (file)
@@ -44,7 +44,6 @@
        "config-db-type": "Tipo de datumbazo:",
        "config-db-wiki-settings": "Identigu ĉi tiun vikion",
        "config-db-name": "Nomo de datumbazo:",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
        "config-type-mysql": "MySQL (aŭ kongrua)",
        "config-header-mysql": "MySQL-agordoj",
        "config-header-postgres": "PostgreSQL-agordoj",
@@ -61,5 +60,5 @@
        "config-admin-name-blank": "Enigu salutnomon de administranto.",
        "config-admin-email": "Retpoŝtadreso:",
        "mainpagetext": "'''MediaWiki estis sukcese instalita.'''",
-       "mainpagedocfooter": "Konsultu la [//meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide Gvidilon por uzantoj de MediaWiki] por informoj pri uzado de vikia programaro.\n\n==Kiel komenci==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Listo de konfiguraĵoj] (angle)\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki Oftaj Demandoj] (angle)\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Anonco-dissendolisto pri MediaWiki] (angle)\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Preklad MediaWiki do tvojho jazyka]"
+       "mainpagedocfooter": "Konsultu la [https://meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide Gvidilon por uzantoj de MediaWiki] por informoj pri uzado de vikia programaro.\n\n==Kiel komenci==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Listo de konfiguraĵoj] (angle)\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki Oftaj Demandoj] (angle)\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Anonco-dissendolisto pri MediaWiki] (angle)\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Preklad MediaWiki do tvojho jazyka]"
 }
index 3e8c7e5..b15c7f2 100644 (file)
@@ -5,5 +5,5 @@
                        "Seb35"
                ]
        },
-       "mainpagedocfooter": "Consulte usted la [//meta.wikimedia.org/wiki/Help:Contents/es Guía de usuario] para obtener información sobre el uso del software wiki.\n\n== Empezando ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista de ajustes de configuración]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/es FAQ de MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de correo de anuncios de distribución de MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Regionalizar MediaWiki para su idioma]"
+       "mainpagedocfooter": "Consulte usted la [https://meta.wikimedia.org/wiki/Help:Contents/es Guía de usuario] para obtener información sobre el uso del software wiki.\n\n== Empezando ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista de ajustes de configuración]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/es FAQ de MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de correo de anuncios de distribución de MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Regionalizar MediaWiki para su idioma]"
 }
index 9ea112b..b1c3d48 100644 (file)
@@ -28,7 +28,9 @@
                        "FuzzyDice",
                        "Legoktm",
                        "Matiia",
-                       "AlvaroMolina"
+                       "AlvaroMolina",
+                       "Indiralena",
+                       "Peter Bowman"
                ]
        },
        "config-desc": "El instalador de MediaWiki",
        "config-restart": "Sí, reiniciarlo",
        "config-welcome": "=== Comprobación del entorno ===\nAhora se van a realizar comprobaciones básicas para ver si el entorno es adecuado para la instalación de MediaWiki.\nRecuerda suministrar los resultados de tales comprobaciones si necesitas ayuda para completar la instalación.",
        "config-copyright": "=== Derechos de autor y Términos de uso ===\n\n$1\n\nEste programa es software libre; puedes redistribuirlo y/o modificarlo en los términos de la Licencia Pública General de GNU, tal como aparece publicada por la Fundación para el Software Libre, tanto la versión 2 de la Licencia, como cualquier versión posterior (según prefieras).\n\nEste programa es distribuido con la esperanza de que sea útil, pero <strong>sin ninguna garantía</strong>; inclusive, sin la garantía implícita de la <strong>posibilidad de ser comercializado</strong> o de <strong>idoneidad para cualquier finalidad específica</strong>.\nConsulta la Licencia Pública General de GNU para más detalles.\n\nEn conjunto con este programa debes haber recibido <doclink href=Copying>una copia de la Licencia Pública General de GNU</doclink>; caso contrario, pídela por escrito a la Fundación para el Software Libre, Inc., 51 Franklin Street, Fifth Floor, Boston, ME La 02110-1301, USA o [http://www.gnu.org/copyleft/gpl.html léela en Internet].",
-       "config-sidebar": "* [//www.mediawiki.org Página principal de MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Guía del usuario]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Guía del administrador]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Preguntas frecuentes]\n----\n* <doclink href=Readme>Léeme</doclink>\n* <doclink href=ReleaseNotes>Notas de la versión</doclink>\n* <doclink href=Copying>Copia</doclink>\n* <doclink href=UpgradeDoc>Actualización</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org Página principal de MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Guía del usuario]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Guía del administrador]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Preguntas frecuentes]\n----\n* <doclink href=Readme>Léeme</doclink>\n* <doclink href=ReleaseNotes>Notas de la versión</doclink>\n* <doclink href=Copying>Copia</doclink>\n* <doclink href=UpgradeDoc>Actualización</doclink>",
        "config-env-good": "El entorno ha sido comprobado.\nPuedes instalar MediaWiki.",
        "config-env-bad": "El entorno ha sido comprobado.\nNo puedes instalar MediaWiki.",
        "config-env-php": "PHP $1 está instalado.",
        "config-env-hhvm": "HHVM $1 está instalado.",
        "config-unicode-using-intl": "Usando la [http://pecl.php.net/intl extensión intl PECL] para la normalización Unicode.",
-       "config-unicode-pure-php-warning": "<strong>Advertencia:</strong> la [http://pecl.php.net/intl extensión intl] no está disponible para efectuar la normalización Unicode. Se utilizará la implementación más lenta en PHP puro.\nSi tu web tiene mucho tráfico, te recomendamos leer acerca de la [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalización Unicode].",
-       "config-unicode-update-warning": "<strong>Warning:</strong> la versión instalada del contenedor de normalización Unicode usa una versión antigua de la biblioteca del [http://site.icu-project.org/ proyecto ICU].\nDeberás [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations actualizar] si realmente deseas usar Unicode.",
+       "config-unicode-pure-php-warning": "<strong>Advertencia:</strong> la [http://pecl.php.net/intl extensión intl] no está disponible para efectuar la normalización Unicode. Se utilizará la implementación más lenta en PHP puro.\nSi tu web tiene mucho tráfico, te recomendamos leer acerca de la [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalización Unicode].",
+       "config-unicode-update-warning": "<strong>Warning:</strong> la versión instalada del contenedor de normalización Unicode usa una versión antigua de la biblioteca del [http://site.icu-project.org/ proyecto ICU].\nDeberás [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations actualizar] si realmente deseas usar Unicode.",
        "config-no-db": "No se encontró un controlador adecuado para la base de datos. Necesitas instalar un controlador de base de datos para PHP.\n{{PLURAL:$2|El siguiente gestor de bases de datos está soportado|Los siguientes gestores de bases de datos están soportados}}: $1.\n\nSi compilaste PHP tú mismo, debes reconfigurarlo habilitando un cliente de base de datos, por ejemplo, usando <code>./configure --with-mysqli</code>.\nSi instalaste PHP desde un paquete Debian o Ubuntu, entonces también necesitas instalar, por ejemplo, el paquete <code>php5-mysql</code>.",
        "config-outdated-sqlite": "<strong>Advertencia:</strong> tienes SQLite $1, que es inferior a la mínima versión requerida: $2. SQLite no estará disponible.",
        "config-no-fts3": "<strong>Advertencia:</strong> SQLite está compilado sin el [//sqlite.org/fts3.html módulo FTS3]. Las funcionalidades de búsqueda no estarán disponibles en esta instalación.",
-       "config-mbstring": "'''Fatal: La opción [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] está activada!'''\nEsta opción causa errores y puede corromper los datos de una forma imprevisible.\nNo se puede instalar o usar MediaWiki a menos que esta opción sea desactivada.",
-       "config-xml-bad": "Falta el módulo XML de PHP.\nMediaWiki requiere funciones de este módulo y no funcionará en esta configuración.\nPuede que necesites instalar el el paquete RPM llamado php-xml.",
        "config-pcre-old": "'''Fatal:''' Se requiere PCRE $1 o posterior.\nSu PHP binario está enlazado con PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Más información].",
        "config-pcre-no-utf8": "'''Error fatal ''': Parece que el módulo PCRE de PHP fue compilado sin el soporte PCRE_UTF8.\nMediaWiki requiere compatibilidad con UTF-8 para funcionar correctamente.",
        "config-memory-raised": "El parámetro <code>memory_limit</code> de PHP es $1. Se aumenta a $2.",
        "config-memory-bad": "<strong>Advertencia:</strong> el parámetro <code>memory_limit</code> de PHP es $1.\nProbablemente sea demasiado bajo.\n¡La instalación puede fallar!",
-       "config-ctype": "'''Fatal''': Se necesita compilar PHP con compatibilidad para la [http://www.php.net/manual/en/ctype.installation.php extensión Ctype].",
-       "config-iconv": "<strong>Fatal:</strong> PHP debe ser compilado con soporte para la [http://www.php.net/manual/en/iconv.installation.php extensión iconv].",
-       "config-json": "'''Fatal:''' PHP fue compilado sin soporte para JSON.\nDebes instalar la extensión JSON o la extensión [http://pecl.php.net/package/jsonc PECL jsonc] antes de instalar MediaWiki.\n* La extensión PHP se incluye en Red Hat Enterprise Linux (CentOS) 5 y 6, aunque debe habilitarse en <code>/etc/php.ini</code> o <code>/etc/php.d/json.ini</code>.\n* Algunas distribuciones Linux liberadas después de mayo del 2013 omiten la extensión PHP, y en su lugar disponen de la extensión PECL en el paquete <code>php5-json</code> o <code>php-pecl-jsonc</code>.",
-       "config-mbstring-absent": "'''Fatal''': Se necesita compilar PHP con compatibilidad para la [http://www.php.net/manual/en/ctype.installation.php extensión Ctype].",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] está instalado",
        "config-apc": "[http://www.php.net/apc APC] está instalado",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] está instalado",
        "config-no-cli-uri": "<strong>Aviso:</strong> No se especificó <code>--scriptpath</code>; se usa el valor predeterminado: <code>$1</code>.",
        "config-using-server": "Utilizando el nombre de servidor \"<nowiki>$1</nowiki>\".",
        "config-using-uri": "Utilizando la URL del servidor \"<nowiki>$1$2</nowiki>\".",
-       "config-uploads-not-safe": "<strong>Advertencia:</strong> tu directorio predeterminado para las cargas, <code>$1</code>, es vulnerable a la ejecución de scripts arbitrarios.\nAunque MediaWiki comprueba todos los archivos cargados por si hubiese amenazas de seguridad, es altamente recomendable [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security cerrar esta vulnerabilidad de seguridad] antes de activar las cargas.",
+       "config-uploads-not-safe": "<strong>Advertencia:</strong> tu directorio predeterminado para las cargas, <code>$1</code>, es vulnerable a la ejecución de scripts arbitrarios.\nAunque MediaWiki comprueba todos los archivos cargados por si hubiese amenazas de seguridad, es altamente recomendable [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security cerrar esta vulnerabilidad de seguridad] antes de activar las cargas.",
        "config-no-cli-uploads-check": "<strong>Advertencia:</strong> tu directorio predeterminado para cargas (<code>$1</code>) no está comprobado contra la vulnerabilidad\n de ejecución arbitraria de \"scripts\" durante la instalación por línea de comandos.",
-       "config-brokenlibxml": "El sistema tiene una combinación de versiones de PHP y de libxml2 que es poco confiable y puede provocar corrupción oculta en los datos de MediaWiki y otras aplicaciones web.\nActualizar a PHP 5.2.9 o posterior y a libxml2 2.7.3 o posterior ([//bugs.php.net/bug.php?id=45996 bug reportado con PHP]).\nInstalación abortada.",
+       "config-brokenlibxml": "El sistema tiene una combinación de versiones de PHP y de libxml2 que es poco confiable y puede provocar corrupción oculta en los datos de MediaWiki y otras aplicaciones web.\nActualiza a libxml2 2.7.3 o posterior ([https://bugs.php.net/bug.php?id=45996 bug reportado con PHP]).\nInstalación abortada.",
        "config-suhosin-max-value-length": "Suhosin está instalado y limita el parámetro <code>length</code> GET a $1 bytes.\nEl componente ResourceLoader (gestor de recursos) de MediaWiki trabajará en este límite, pero eso perjudicará el rendimiento.\nSi es posible, deberías establecer <code>suhosin.get.max_value_length</code> en el valor 1024 o superior en <code>php.ini</code> y establecer <code>$wgResourceLoaderMaxQueryLength</code> en el mismo valor en <code>php.ini</code>.",
        "config-db-type": "Tipo de base de datos:",
        "config-db-host": "Servidor de la base de datos:",
        "config-db-wiki-help": "Escribe el nombre de usuario y la contraseña que se utilizarán para acceder a la base de datos durante la operación normal del wiki.\nSi esta cuenta no existe y la cuenta de instalación tiene suficientes privilegios, se creará esta cuenta de usuario con los privilegios mínimos necesarios para la operación normal del wiki.",
        "config-db-prefix": "Prefijo de tablas de la base de datos:",
        "config-db-prefix-help": "Si necesitas compartir una base de datos entre múltiples wikis, o entre MediaWiki y otra aplicación web, puedes optar por agregar un prefijo a todos los nombres de tabla para evitar conflictos.\nNo utilices espacios.\n\nNormalmente se deja este campo vacío.",
-       "config-db-charset": "Conjunto de caracteres de la base de datos",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 binario",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "MySQL 4.0 retrocompatible UTF-8",
-       "config-charset-help": "'''Atención:''' Si emplea '''backwards-compatible UTF-8''' en MySQL 4.1+ y posteriormente hace copia de seguridad de la base de datos con <code>mysqldump</code> , puede destruir todos los caracteres no-ASCII, ¡dañando irreversiblemente sus copias de seguridad!\n\nEn '''modo binario''', MediaWiki almacena texto UTF-8 en la base de datos en campos binarios.\nEsto es más eficiente que el modo UTF-8 de MySQL, y le permite utilizar la gama completa de caracteres Unicode.\nEn ''' modo UTF-8'' ', MySQL sabrá el juego de caracteres de sus datos y puede presentarlos y convertirlos apropiadamente,\npero no le permitirá almacenar caracteres por encima del [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes plano multilingüe básico].",
        "config-mysql-old": "Se necesita MySQL $1 o posterior. Tienes $2.",
        "config-db-port": "Puerto de la base de datos:",
        "config-db-schema": "Esquema para MediaWiki",
        "config-mysql-charset": "Conjunto de caracteres de la base de datos:",
        "config-mysql-binary": "Binario",
        "config-mysql-utf8": "UTF-8",
-       "config-mysql-charset-help": "En '''modo binario''', MediaWiki almacena texto UTF-8 para la base de datos en campos binarios.\nEsto es más eficiente que el modo UTF-8 de MySQL y le permite utilizar la gama completa de caracteres Unicode.\n\nEn '''modo UTF-8''', MySQL sabrá qué conjunto de caracteres emplean sus datos y puede presentarlos y convertirlos adecuadamente, pero no le permitirá almacenar caracteres por encima del [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes plano multilingüe básico].",
+       "config-mysql-charset-help": "En <strong>modo binario</strong>, MediaWiki almacena texto UTF-8 para la base de datos en campos binarios.\nEsto es más eficiente que el modo UTF-8 de MySQL y permite utilizar la gama completa de caracteres Unicode.\n\nEn <strong>modo UTF-8</strong>, MySQL sabrá qué conjunto de caracteres emplean sus datos y puede presentarlos y convertirlos adecuadamente, pero no permitirá almacenar caracteres por encima del [https://en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes plano multilingüe básico].",
        "config-mssql-auth": "Tipo de autenticación:",
        "config-mssql-install-auth": "Selecciona el tipo de autenticación que se utilizará para conectarse a la base de datos durante el proceso de instalación.\nSi seleccionas \"{{int:config-mssql-windowsauth}}\", se usarán las credenciales del usuario con el que se ejecuta el servidor web.",
        "config-mssql-web-auth": "Selecciona el tipo de autenticación que utilizará el servidor web para conectarse al servidor de base de datos, durante el funcionamiento normal de la wiki.\nSi seleccionas \"{{int:config-mssql-windowsauth}}\", se usarán las credenciales del usuario con el cual se ejecuta el servidor web.",
        "config-profile-no-anon": "Creación de cuenta requerida",
        "config-profile-fishbowl": "Sólo editores autorizados",
        "config-profile-private": "Wiki privado",
-       "config-profile-help": "Los wikis funcionan mejor cuando dejas que los edite tanta gente como sea posible.\nEn MediaWiki, es fácil revisar los cambios recientes y revertir los daños realizados por usuarios malintencionados o novatos.\nSin embargo, muchos han encontrado que MediaWiki es útil para una amplia variedad de funciones, y a veces no es fácil convencer a todos de los beneficios de la forma wiki.\nPor lo tanto tienes la elección.\n\nEl modelo <strong>{{int:config-profile-wiki}}</strong> permite que cualquiera pueda editar, sin siquiera iniciar sesión.\nUn wiki con <strong>{{int:config-profile-no-anon}}</strong> ofrece rendición de cuentas adicional, pero puede disuadir a colaboradores casuales.\n\nEl modelo <strong>{{int:config-profile-fishbowl}}</strong> permite editar a los usuarios autorizados, pero el público puede ver las páginas, incluyendo el historial.\nUn <strong>{{int:config-profile-private}}</strong> sólo permite ver páginas a los usuarios autorizados, el mismo grupo al que le está permitido editar.\n\nConfiguraciones más complejas de permisos de usuario están disponibles después de la instalación. Consulta [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights la entrada correspondiente del manual].",
+       "config-profile-help": "Los wikis funcionan mejor cuando dejas que los edite tanta gente como sea posible.\nEn MediaWiki, es fácil revisar los cambios recientes y revertir los daños realizados por usuarios malintencionados o novatos.\nSin embargo, muchos han encontrado que MediaWiki es útil para una amplia variedad de funciones, y a veces no es fácil convencer a todos de los beneficios de la forma wiki.\nPor lo tanto tienes la elección.\n\nEl modelo <strong>{{int:config-profile-wiki}}</strong> permite que cualquiera pueda editar, sin siquiera iniciar sesión.\nUn wiki con <strong>{{int:config-profile-no-anon}}</strong> ofrece rendición de cuentas adicional, pero puede disuadir a colaboradores casuales.\n\nEl modelo <strong>{{int:config-profile-fishbowl}}</strong> permite editar a los usuarios autorizados, pero el público puede ver las páginas, incluyendo el historial.\nUn <strong>{{int:config-profile-private}}</strong> sólo permite ver páginas a los usuarios autorizados, el mismo grupo al que le está permitido editar.\n\nConfiguraciones más complejas de permisos de usuario están disponibles después de la instalación. Consulta [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights la entrada correspondiente del manual].",
        "config-license": "Derechos de autor y licencia:",
        "config-license-none": "Pie sin licencia",
        "config-license-cc-by-sa": "Creative Commons Atribución-CompartirIgual",
        "config-email-sender-help": "Escribe la dirección de correo electrónico que se usará como dirección de retorno en los mensajes electrónicos de salida.\nAquí llegarán los correos electrónicos que no lleguen a su destino.\nMuchos servidores de correo electrónico exigen que por lo menos la parte del nombre del dominio sea válida.",
        "config-upload-settings": "Subidas de imágenes y archivos",
        "config-upload-enable": "Habilitar la subida de archivos",
-       "config-upload-help": "La carga de archivos expone potencialmente su servidor a riesgos de seguridad.\nPara obtener más información, lea la [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security sección de seguridad] en el manual.\n\nPara habilitar la carga de archivos, cambie el modo en el subdirectorio <code>images</code> bajo el directorio raíz de MediaWiki para que el servidor web pueda escribir en él.\nA continuación, habilite esta opción.",
+       "config-upload-help": "La subida de archivos potencialmente expone tu servidor a riesgos de seguridad.\nPara obtener más información, consulta la [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security sección de seguridad] en el manual.\n\nPara activar la subida de archivos, cambia el modo en el subdirectorio <code>images</code> bajo el directorio raíz de MediaWiki para que el servidor web pueda escribir en él.\nLuego, activa esta opción.",
        "config-upload-deleted": "Directorio para los archivos eliminados:",
        "config-upload-deleted-help": "Elige un directorio en el que guardar los archivos eliminados.\nLo ideal es una carpeta no accesible desde la red.",
        "config-logo": "URL del logo :",
        "config-logo-help": "La apariencia predeterminada de MediaWiki incluye espacio para un logotipo de 135x160 píxeles encima del menú de la barra lateral.\nCarga una imagen de tamaño adecuado y escribe la dirección URL aquí.\n\nPuedes usar <code>$wgStylePath</code> o <code>$wgScriptPath</code> si tu logotipo es relativo a esas rutas.\n\nSi no deseas un logotipo, deja esta casilla en blanco.",
        "config-instantcommons": "Habilitar Instant Commons",
-       "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons Instant Commons] es una característica que permite que los wikis puedan utilizar imágenes, sonidos y otros archivos multimedia que se encuentran en el sitio [//commons.wikimedia.org/ Wikimedia Commons].\nPara ello, MediaWiki requiere acceso a Internet.\n\nPara obtener más información sobre esta función, incluidas las instrucciones sobre cómo configurarlo para otras wikis distintas de Wikimedia Commons, consulte [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos el manual].",
+       "config-instantcommons-help": "[https://www.mediawiki.org/wiki/InstantCommons Instant Commons] es una característica que permite que los wikis puedan utilizar imágenes, sonidos y otros archivos multimedia que se encuentran en el sitio [https://commons.wikimedia.org/ Wikimedia Commons].\nPara ello, MediaWiki requiere acceso a Internet.\n\nPara obtener más información sobre esta función, incluidas las instrucciones sobre cómo configurarlo para otras wikis distintas de Wikimedia Commons, consulta [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos el manual].",
        "config-cc-error": "El selector de licencia de Creative Commons no dio resultado.\nEscribe el nombre de la licencia manualmente.",
        "config-cc-again": "Elegir otra vez...",
        "config-cc-not-chosen": "Elige la licencia Creative Commons que desees y haz clic en \"proceed\".",
        "config-install-mainpage": "Creando página principal con contenido predeterminado",
        "config-install-extension-tables": "Creando las tablas para las extensiones habilitadas",
        "config-install-mainpage-failed": "No se pudo insertar la página principal: $1",
-       "config-install-done": "<strong>¡Felicidades!</strong>\nHas instalado MediaWiki.\n\nEl instalador ha generado un archivo <code>LocalSettings.php</code>.\nEste contiene toda su configuración.\n\nDeberás descargarlo y ponerlo en la base de la instalación de wiki (el mismo directorio que index.php). La descarga debería haber comenzado automáticamente.\n\nSi no comenzó la descarga, o si se ha cancelado, puedes reiniciar la descarga haciendo clic en el siguiente enlace:\n\n$3\n\n<strong>Nota</strong>: si no haces esto ahora, este archivo de configuración generado no estará disponible más tarde si sales de la instalación sin descargarlo.\n\nCuando lo hayas hecho, podrás <strong>[$2  entrar en tu wiki]</strong>.",
+       "config-install-done": "<strong>¡Felicidades!</strong>\nHas instalado MediaWiki.\n\nEl instalador ha generado un archivo <code>LocalSettings.php</code>.\nEste contiene toda su configuración.\n\nDeberás descargarlo y ponerlo en la base de la instalación de wiki (el mismo directorio que index.php). La descarga debería haber comenzado automáticamente.\n\nSi no comenzó la descarga, o si se ha cancelado, puedes reiniciar la descarga haciendo clic en el siguiente enlace:\n\n$3\n\n<strong>Nota</strong>: si no haces esto ahora, este archivo de configuración generado no estará disponible más tarde si sales de la instalación sin descargarlo.\n\nCuando lo hayas hecho, podrás <strong>[$2 entrar en tu wiki]</strong>.",
+       "config-install-done-path": "<strong>¡Felicidades!</strong>\nHas instalado MediaWiki.\n\nEl instalador ha generado un archivo <code>LocalSettings.php</code>.\nEste contiene toda su configuración.\n\nDeberás descargarlo y ponerlo en <code>$4</code>. La descarga debería haber comenzado automáticamente.\n\nSi no comenzó la descarga, o si se ha cancelado, puedes reiniciar la descarga haciendo clic en el siguiente enlace:\n\n$3\n\n<strong>Nota</strong>: si no haces esto ahora, este archivo de configuración generado no estará disponible más tarde si sales de la instalación sin descargarlo.\n\nCuando lo hayas hecho, podrás <strong>[$2 entrar en tu wiki]</strong>.",
        "config-download-localsettings": "Descargar <code>LocalSettings.php</code>",
        "config-help": "ayuda",
        "config-help-tooltip": "haz clic para ampliar",
        "config-nofile": "El archivo \"$1\" no se pudo encontrar. ¿Se ha eliminado?",
-       "config-extension-link": "¿Sabías que tu wiki admite [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions extensiones]?\n\nPuedes navegar por las [//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category categorías] o visitar el [//www.mediawiki.org/wiki/Extension_Matrix centro de extensiones] para ver una lista completa.",
+       "config-extension-link": "¿Sabías que tu wiki admite [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions extensiones]?\n\nPuedes navegar por las [https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category categorías] o visitar el [https://www.mediawiki.org/wiki/Extension_Matrix centro de extensiones] para ver una lista completa.",
        "mainpagetext": "<strong>MediaWiki se ha instalado.</strong>",
-       "mainpagedocfooter": "Consulta la [//meta.wikimedia.org/wiki/Help:Contents/es guía del usuario] para obtener información sobre el uso del software wiki.\n\n== Primeros pasos ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista de ajustes de configuración]\n* [//www.mediawiki.org/wiki/Manual:FAQ/es Preguntas frecuentes sobre MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de correo de anuncios de publicación de MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Traducir MediaWiki en tu idioma]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Aprende cómo combatir el spam en tu wiki]"
+       "mainpagedocfooter": "Consulta la [https://meta.wikimedia.org/wiki/Help:Contents/es guía del usuario] para obtener información sobre el uso del software wiki.\n\n== Primeros pasos ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista de ajustes de configuración]\n* [https://www.mediawiki.org/wiki/Manual:FAQ/es Preguntas frecuentes sobre MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de correo de anuncios de publicación de MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Traducir MediaWiki en tu idioma]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Aprende cómo combatir el spam en tu wiki]"
 }
index 31441e0..dfcf1d3 100644 (file)
@@ -62,7 +62,7 @@
        "config-profile-no-anon": "Registreerumine nõutav",
        "config-profile-fishbowl": "Ainult volitatud kasutajad",
        "config-profile-private": "Eraviki",
-       "config-profile-help": "Vikid toimivad kõige paremini siis, kui lased neid redigeerida nii paljudel inimestel kui võimalik.\nMediaWikis on lihtne viimaseid muudatusi üle vaadata ja pöörata tagasi oskamatute või pahatahtlike kasutajate tehtud kahju.\n\nEnt inimesed on leidnud MediaWikile mitmesuguseid erinevaid kasutusvõimalusi ja mõnikord pole lihtne kõiki veenda viki meetodi kasulikkuses. \nSeega on sul valik.\n\n\"<strong>{{int:config-profile-wiki}}</strong>\" annab kõigile redigeerimisvõimaluse isegi sisse logimata.\nMudeli \"<strong>{{int:config-profile-no-anon}}</strong>\" viki tagab lisavastutuse, kuid võib juhuslikud kaastöölised eemale peletada.\n\nStsenaarium \"<strong>{{int:config-profile-fishbowl}}</strong>\" võimaldab redigeerida heaks kiidetud kasutajatel, kuid avalikkus saab lehekülgi ja nende ajalugu vaadata.\n\"<strong>{{int:config-profile-private}}</strong>\" laseb vaid heaks kiidetud kasutajatel lehekülgi vaadata ja samadel kasutajatel on õigus lehekülgi redigeerida.\n\nPärast paigaldamist on kasutajaõigusi võimalik täpsemalt häälestada, vaata [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights kasutusjuhendi vastavat kohta].",
+       "config-profile-help": "Vikid toimivad kõige paremini siis, kui lased neid redigeerida nii paljudel inimestel kui võimalik.\nMediaWikis on lihtne viimaseid muudatusi üle vaadata ja pöörata tagasi oskamatute või pahatahtlike kasutajate tehtud kahju.\n\nEnt inimesed on leidnud MediaWikile mitmesuguseid erinevaid kasutusvõimalusi ja mõnikord pole lihtne kõiki veenda viki meetodi kasulikkuses. \nSeega on sul valik.\n\n\"<strong>{{int:config-profile-wiki}}</strong>\" annab kõigile redigeerimisvõimaluse isegi sisse logimata.\nMudeli \"<strong>{{int:config-profile-no-anon}}</strong>\" viki tagab lisavastutuse, kuid võib juhuslikud kaastöölised eemale peletada.\n\nStsenaarium \"<strong>{{int:config-profile-fishbowl}}</strong>\" võimaldab redigeerida heaks kiidetud kasutajatel, kuid avalikkus saab lehekülgi ja nende ajalugu vaadata.\n\"<strong>{{int:config-profile-private}}</strong>\" laseb vaid heaks kiidetud kasutajatel lehekülgi vaadata ja samadel kasutajatel on õigus lehekülgi redigeerida.\n\nPärast paigaldamist on kasutajaõigusi võimalik täpsemalt häälestada, vaata [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights kasutusjuhendi vastavat kohta].",
        "config-license": "Autoriõigus ja litsents:",
        "config-license-none": "Litsentsijaluseta",
        "config-license-cc-by-sa": "Creative Commonsi litsents \"Autorile viitamine + jagamine samadel tingimustel\"",
@@ -78,6 +78,6 @@
        "config-install-user-alreadyexists": "Kasutaja \"$1\" on juba olemas",
        "config-install-tables": "Tabelite loomine",
        "config-help": "abi",
-       "mainpagetext": "'''MediaWiki tarkvara on edukalt paigaldatud.'''",
-       "mainpagedocfooter": "Vikitarkvara kasutamise kohta leiad lisateavet [//meta.wikimedia.org/wiki/Help:Contents juhendist].\n\n== Alustamine ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Häälestussätete loend]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki KKK]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki versiooniuuenduste postiloend]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources MediaWiki lokaliseerimine]"
+       "mainpagetext": "<strong>MediaWiki tarkvara on paigaldatud.</strong>",
+       "mainpagedocfooter": "Vikitarkvara kasutamise kohta leiad lisateavet [https://meta.wikimedia.org/wiki/Help:Contents juhendist].\n\n== Alustamine ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Häälestussätete loend]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki KKK]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki versiooniuuenduste postiloend]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources MediaWiki lokaliseerimine]"
 }
index a0f3ed7..1158193 100644 (file)
@@ -35,7 +35,7 @@
        "config-page-upgradedoc": "Eguneratu",
        "config-page-existingwiki": "Existitzen den wikia",
        "config-restart": "Bai, berriz hasi",
-       "config-sidebar": "* [//www.mediawiki.org MediaWiki nagusia]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Erabiltzaileentzako Gida]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Administratzaileentzako Gida]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MEG]\n----\n* <doclink href=Readme>Irakur nazazu</doclink>\n* <doclink href=ReleaseNotes>Oharren argitalpena</doclink>\n* <doclink href=Copying>Kopiaketa</doclink>\n* <doclink href=UpgradeDoc>Eguneratzea</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org MediaWiki nagusia]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Erabiltzaileentzako Gida]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Administratzaileentzako Gida]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MEG]\n----\n* <doclink href=Readme>Irakur nazazu</doclink>\n* <doclink href=ReleaseNotes>Oharren argitalpena</doclink>\n* <doclink href=Copying>Kopiaketa</doclink>\n* <doclink href=UpgradeDoc>Eguneratzea</doclink>",
        "config-env-php": "PHP $1 instalatuta dago.",
        "config-env-hhvm": "HHVM $1 instalatuta dago.",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] instalatuta dago",
@@ -50,8 +50,6 @@
        "config-db-name-oracle": "Datu-baseko eskema:",
        "config-db-username": "Datu-base lankide izena:",
        "config-db-password": "Datu-base pasahitza:",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 bitarra",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
        "config-db-port": "Datu-basearen ataka:",
        "config-db-schema": "MediaWikirako eskema:",
        "config-type-mysql": "MySQL (edo bateragarria)",
        "config-help": "Laguntza",
        "config-help-tooltip": "sakatu zabaltzeko",
        "mainpagetext": "'''MediaWiki arrakastaz instalatu da.'''",
-       "mainpagedocfooter": "Ikus [//meta.wikimedia.org/wiki/Help:Contents Erabiltzaile Gida] wiki softwarea erabiltzen hasteko informazio gehiagorako.\n\n== Nola hasi ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Konfigurazio balioen zerrenda]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ (Maiz egindako galderak)]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWikiren argitalpenen posta zerrenda]"
+       "mainpagedocfooter": "Ikus [https://meta.wikimedia.org/wiki/Help:Contents Erabiltzaile Gida] wiki softwarea erabiltzen hasteko informazio gehiagorako.\n\n== Nola hasi ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Konfigurazio balioen zerrenda]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ (Maiz egindako galderak)]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWikiren argitalpenen posta zerrenda]"
 }
index 5259ea1..ef99035 100644 (file)
@@ -1,5 +1,5 @@
 {
        "@metadata": [],
        "mainpagetext": "'''MeyaGüiqui s'á istalau satihatoriamenti.'''",
-       "mainpagedocfooter": "Consurta la [//meta.wikimedia.org/wiki/Help:Contents User's Guide] pa sabel mas al tentu el huncionamientu el software güiqui.\n\n== Esminciandu ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
+       "mainpagedocfooter": "Consurta la [https://meta.wikimedia.org/wiki/Help:Contents User's Guide] pa sabel mas al tentu el huncionamientu el software güiqui.\n\n== Esminciandu ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
 }
index 7d756ea..e22317c 100644 (file)
@@ -13,7 +13,8 @@
                        "Huji",
                        "Macofe",
                        "درفش کاویانی",
-                       "Hamisun"
+                       "Hamisun",
+                       "Alifakoor"
                ]
        },
        "config-desc": "نصب کنندهٔ ویکی‌مدیا",
        "config-restart": "بله، دوباره راه‌اندازی کن",
        "config-welcome": "===بررسی‌های محیطی===\nبرای فهمیدن اینکه این محیط برای نصب مدیاویکی مناسب است، اکنون بررسی‌های اساسی انجام خواهد‌شد.\nاگر به دنبال پشتیبانی در چگونگی تکمیل نصب هستید،به یاد داشته باشید این اطلاعات را بگنجانید.",
        "config-copyright": "===حق چاپ و شرایط===\n$1\nاین برنامه، یک نرم‌افزاری آزاد است. شما می‌توانید آن را بازتوزیع کرده و/یا با شرایط نگارش ۲ یا (با نظر خودتان) هر نگارش جدیدتری از پروانه جامع همگانی گنو که توسط بنیاد نرم‌افزار آزاد منتشر شده، تغییر دهید.\n\nاین برنامه با امید این که مفید واقع‌ شود توزیع شده‌است،اما '''بدون هیچ ضمانتی'''; حتی بدون اشارهٔ ضمانتی از '''قابلیت عرضه''' یا ''' صلاحیت برای یک هدف خاص'''.\nبرای جزئیات بیش‌تر پروانه جامع همگانی گنو را مشاهده کنید.\n\nشما باید <doclink href=Copying> یک نگارش ازمجوز عمومی کلی </doclink> همراه این برنامه دریافت کرده باشید. در غیر این صورت با بنیاد نرم‌افزار آزاد، ایالات متحده امریکا، بوستون، خیابان فرانکلین، پلاک ۵۱، طبقه پنجم، صندوق پستی MA۰۲۱۱۰-۱۳۰ مکاتبه کنید، یا [http://www.gnu.org/copyleft/gpl.html در این‌جا به صورت برخط بخوانید].",
-       "config-sidebar": "* [//www.mediawiki.org صفحهٔ اصلی مدیاویکی]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents راهنمای کاربر]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents راهنمای مدیر]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ پرسش‌های رایج]\n----\n* <doclink href=Readme>مرا بخوان</doclink>\n* <doclink href=ReleaseNotes>یادداشت‌های انتشار</doclink>\n* <doclink href=Copying>نسخه برداری</doclink>\n* <doclink href=UpgradeDoc>ارتقا</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org صفحهٔ اصلی مدیاویکی]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents راهنمای کاربر]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents راهنمای مدیر]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ پرسش‌های رایج]\n----\n* <doclink href=Readme>مرا بخوان</doclink>\n* <doclink href=ReleaseNotes>یادداشت‌های انتشار</doclink>\n* <doclink href=Copying>نسخه برداری</doclink>\n* <doclink href=UpgradeDoc>ارتقا</doclink>",
        "config-env-good": "محیط بررسی شده‌است.\nشما می‌توانید مدیاویکی را نصب کنید.",
        "config-env-bad": "محیط بررسی شده‌است.\nشما نمی‌توانید مدیاویکی را نصب کنید.",
        "config-env-php": "پی‌اچ‌پی $1 نصب شده‌است.",
        "config-env-hhvm": "HHVM $1 نصب شده‌است.",
        "config-unicode-using-intl": "برای یونیکد عادی از [http://pecl.php.net/intl intl PECL extension] استفاده کنید.",
-       "config-unicode-pure-php-warning": "'''هشدار:''' [http://pecl.php.net/intl intl PECL extension] برای کنترل یونیکد عادی در دسترس نیست،اجرای کاملاً آهسته به تعویق می‌افتد.\nاگر شما یک سایت پر‌ ترافیک را اجرا می‌کنید، باید کمی [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode normalization] را بخوانید.",
-       "config-unicode-update-warning": "'''هشدار:''' نسخهٔ نصب شدهٔ پوشهٔ یونیکد عادی از ورژن قدیمی‌تر کتابخانه [http://site.icu-project.org/ the ICU project's] استفاده می‌کند.\nاگر کلاً علاقه‌مند به استفاده از یونیکد هستید باید [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations upgrade].",
+       "config-unicode-pure-php-warning": "'''هشدار:''' [http://pecl.php.net/intl intl PECL extension] برای کنترل یونیکد عادی در دسترس نیست،اجرای کاملاً آهسته به تعویق می‌افتد.\n\nاگر شما یک سایت پر‌ ترافیک را اجرا می‌کنید، باید کمی [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode normalization] را بخوانید.",
+       "config-unicode-update-warning": "'''هشدار:''' نسخهٔ نصب شدهٔ پوشهٔ یونیکد عادی از ورژن قدیمی‌تر کتابخانه [http://site.icu-project.org/ the ICU project's] استفاده می‌کند.\n\nاگر کلاً علاقه‌مند به استفاده از یونیکد هستید باید [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations upgrade].",
        "config-no-db": "درایور پایگاه اطلاعاتی مناسب پیدا نشد! شما لازم دارید یک درایور پایگاه اطلاعاتی  برای پی‌اچ‌پی نصب کنید.انواع پایگاه اطلاعاتی زیر پشتیبانی شده‌اند:$1.\nاگر شما در گروه اشتراک‌گذاری هستید، از تهیه کنندهٔ گروه خود برای نصب یک درایور پایگاه اطلاعاتی مناسب {{PLURAL:$2|سوأل کنید.|سوأل کنید.}}\nاگر خود، پی‌اچ‌پی را تهیه کرده‌اید، با یک پردازشگر فعال دوباره پیکربندی کنید، برای مثال از <code>./configure --with-mysql</code> استفاده کنید.\nاگر پی‌اچ‌پی را از یک بستهٔ دبیان یا آبونتو نصب کرده‌اید، بنابراین لازم دارید بخش php5-mysql را نصب کنید.",
        "config-outdated-sqlite": "''' هشدار:''' شما اس‌کیولایت $1 دارید، که پایین‌تر از حداقل نسخهٔ $2 مورد نیاز است.اس‌کیولایت در دسترس نخواهد بود.",
        "config-no-fts3": "'''هشدار:''' اس‌کیولایت بدون [//sqlite.org/fts3.html FTS3 module] تهیه شده‌است ، جستجوی ویژگی‌ها در این بخش پیشین در دسترس نخواهد‌بود.",
-       "config-mbstring": "''' مخرب:[http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] فعال است.\nاین گزینه باعث ایجاد خطا می‌شود و ممکن است اطلاعات را به طور غیر‌قابل پیش‌بینی از بین ببرد.\nشما نمی‌توانید مدیاویکی را نصب یا استفاده کنید مگر اینکه این گزینه غیر‌فعال باشد.",
-       "config-xml-bad": "ماژول اکس‌ام‌ال پی‌اچ‌پی کار نمی‌کند.\nمدیاویکی نیازمند عملیاتی در این ماژول است و در این پیکربندی کار نخواهد‌کرد.\nشاید نیاز باشد که بستهٔ نرم افزاریِ آرپی‌ام پی‌اچ‌پی-ایکس‌ام‌ال را نصب کنید.",
        "config-pcre-old": "''' خطای اساسی:'' ' PCRE  $1  یا بعدا مورد نیاز است.\nکد باینری پی‌اچ‌پی‌تان با PCRE  $2 پیوند دارد.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE اطلاعات بیشتر].",
        "config-pcre-no-utf8": "'''مخرب:''' به‌ نظر می‌رسد ماژول پی‌سی‌آرایی پی‌اچ‌پی بدون پشتیبانی پی‌سی‌آرایی_یو‌تی‌اف۸ تهیه شده‌است.\nمدیاویکی برای درست عمل کردن نیازمند پشتیبانی یوتی‌اف-۸ است.",
        "config-memory-raised": "PHP's <code>memory_limit</code>, نسخهٔ $1 است، به نسخهٔ $2 ارتقاء داده شده‌است.",
        "config-memory-bad": "'''هشدار:''' PHP's <code>memory_limit</code> نسخهٔ $1 است.\nاین ممکن است خیلی پایین باشد.\nممکن است نصب با مشکل رو‌به‌رو شود.",
-       "config-ctype": "'''مخرب:''' پی‌اچ‌پی باید با پشتیبانی برای [http://www.php.net/manual/en/ctype.installation.php Ctype extension] تهیه شده‌باشد.",
-       "config-iconv": "<strong>خطای اساسی:</strong> پی‌اچ‌پی باید کامپایل‌شده باشد برای پشتیبانی از [http://www.php.net/manual/en/iconv.installation.php افزونهٔ iconv].",
-       "config-json": "'''مخرب:''' پی‌اچ‌پی بدون پشتیبانی جِی‌اس‌اُ‌ان تهیه شده‌بود.\nشما باید قبل از نصب مدیاویکی یا بسط  جِی‌اس‌اُ‌ان پی‌اچ‌پی یا بسط [http://pecl.php.net/package/jsonc PECL jsonc] را نصب کنید.\n* بسط پی‌اچ‌پی شامل لینوکس اینترپرایز رد هت (سِنت‌اُاِس) 5 یا 6 است، هرچند باید در <code>/etc/php.ini</code> یا <code>/etc/php.d/json.ini</code> فعال باشد.\n*  به‌جای بسته‌بندی کردن بسط پی‌ایی‌سی‌اِل مانند <code>php5-json</code> یا <code>php-pecl-jsonc</code>، توزیع‌های برخی لینوکس پس از ماه می ۲۰۱۳ با حذف بسط پی‌اچ‌پی افزایش پیدا کرد.",
-       "config-mbstring-absent": "<strong>خطای اساسی:</strong> پی‌اچ‌پی باید با پشتیبانی [http://www.php.net/manual/en/mbstring.setup.php mbstring extension] تهیه شده باشد.",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] نصب شده‌است.",
        "config-apc": "[http://www.php.net/apc APC] نصب شده‌است.",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] نصب شده‌است.",
@@ -90,9 +85,9 @@
        "config-no-cli-uri": "<strong>هشدار:</strong> هیچ اسکریپت‌پتی تعیین نشده، از پیش‌فرض استفاده کنید:\n<code>$1</code>.",
        "config-using-server": "از اسم سرور \"<nowiki>$1</nowiki>\" استفاده کنید.",
        "config-using-uri": "از اسم سرور \"<nowiki>$1$2</nowiki>\" استفاده کنید.",
-       "config-uploads-not-safe": "'''هشدار:''' فهرست پیش‌فرض ارسال‌های <code>$1</code> شما برای اجرای متون دلخواه آسیب‌پذیر است.\nاگرچه مدیاویکی همهٔ پوشه‌های ارسال‌ شده را برای خطرات امنیتی بررسی می‌کند، پیش از فعال‌سازی ارسال‌ها، بسیار به [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security close this security vulnerability] توصیه شده‌است.",
+       "config-uploads-not-safe": "'''هشدار:''' فهرست پیش‌فرض ارسال‌های <code>$1</code> شما برای اجرای متون دلخواه آسیب‌پذیر است.\nاگرچه مدیاویکی همهٔ پوشه‌های ارسال‌ شده را برای خطرات امنیتی بررسی می‌کند، پیش از فعال‌سازی ارسال‌ها، بسیار به [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security close this security vulnerability] توصیه شده‌است.",
        "config-no-cli-uploads-check": "'''هشدار:''' فهرست پیش‌فرض ارسال‌های شما (<code>$1</code>) برای آسیب‌پذیری اجرای متن دلخواه در طول نصب سی‌ال آی بررسی نشده‌است.",
-       "config-brokenlibxml": "دستگاه شما دارای تلفیقی از نسخه‌های پی‌اچ‌پی و لیبکسمل۲ است که ناقص است و می‌تواند دلیل از بین رفتن اطلاعات مخفی در مدیاویکی و دیگر برنامه‌های کاربردی شبکه باشد.\nارتقاء به لیبکسمل۲  ۲.۷.۳ یا بالاتر ([//bugs.php.net/bug.php?id=45996 bug filed with PHP]) ارتفاء دهید.\nنصب نافرجام ماند.",
+       "config-brokenlibxml": "دستگاه شما دارای تلفیقی از نسخه‌های پی‌اچ‌پی و لیبکسمل۲ است که ناقص است و می‌تواند دلیل از بین رفتن اطلاعات مخفی در مدیاویکی و دیگر برنامه‌های کاربردی شبکه باشد.\nارتقاء به لیبکسمل۲  ۲.۷.۳ یا بالاتر ([https://bugs.php.net/bug.php?id=45996 bug filed with PHP]) ارتفاء دهید.\nنصب نافرجام ماند.",
        "config-suhosin-max-value-length": "سوهُسین نصب شده‌است و پارامتر جت <code>length</code> را به $1 بایت محدود می‌کند.\n قسمت بارکنندهٔ منبع مدیاویکی پیرامون این محدوده کار خواهد‌کرد، اما عملکرد آن را پایین می‌آورد. اگر به هیچ وجه ممکن نیست، باید <code>suhosin.get.max_value_length</code> را به ۱۰۲۴ یا بالاتر در <code>php.ini</code> تنظیم کنید، و \n<code>$wgResourceLoaderMaxQueryLength</code> را به مقدار مشابه در <code>LocalSettings.php</code> تنظیم کنید.",
        "config-db-type": "نوع پایگاه اطلاعات:",
        "config-db-host": "میزبان پایگاه اطلاعات:",
        "config-db-wiki-help": "نام کاربری و رمز عبوری را وارد کنید که برای اتصال به پایگاه اطلاعاتی در طی عملیات عادی ویکی استفاده خواهید‌کرد.\nاگر حساب وجود ندارد، و نصب حساب مزایای کافی را داراست، این حساب کاربر با حداقل مزایای مورد نیاز برای عمل کردن ویکی به‌وجود خواهد‌آمد.",
        "config-db-prefix": "جدول پیشوند پایگاه اطلاعاتی",
        "config-db-prefix-help": "اگر نیاز دارید یک اطلاعات پایگاهی را بین چندین ویکی یا بین مدیاویکی و برنامهٔ کاربردی وب دیگری به اشتراک بگذارید،مجاز به انتخاب برای اضافه کردن یک پیشوند به همهٔ  نام‌های جدول برای جلوگیری از اختلاف‌ها هستید.\nاز فاصله‌ها استفاده نکنید.\nاغلب این زمینه خالی مانده‌است.",
-       "config-db-charset": "مجموعه‌ٔ خصوصیات پایگاه اطلاعاتی",
-       "config-charset-mysql5-binary": "می‌اسکیوئل ۴.۱/۵.۰ باینری",
-       "config-charset-mysql5": "می‌اسکیوئل ۴.۱/۵.۰ یوتی‌اف-۸",
-       "config-charset-mysql4": "یوتی‌اف-۸ سازگار قدیمی مای‌اس‌کیو‌ال ۴.۰",
-       "config-charset-help": "'''هشدار:''' اگر از '''یوتی‌اف-۸ سازگار قدیمی''' در مای‌اس‌کیو‌ال ۴.۱+ استفاده می‌کنید، و متعاقباً پایگاه اطلاعاتی با <code>mysqldump</code> پشتیبانی می‌شود، ممکن است همهٔ علامت‌های غیر ای‌اس‌سی‌آی‌آی بزرگ را نابود کند، پشتیبانی شما را به طور غیر قابل برگشتی از بین ببرد!\nدر '''روش دو واحدی'''، مدیاویکی متن یوتی‌اف-۸ را به پایگاه اطلاعاتی در زمینه‌های دو واحدی ذخیره می‌کند.\nاین روش کارآمدتر از روش یوتی‌اف-۸ مای‌اس‌کیو‌ال است، و به شما اجازه می دهد که از همهٔ محدودهٔ علائم یونیکد استفاده کنید.\nدر '''روش یوتی‌اف-۸'''، مای‌اس‌کیو‌ال باخبر خواهدبود چه علامتی اطلاعات شما را در آن تنظیم می‌کند، و می‌تواند ارائه کند و به طور صحیح تبدیل کند، اما به شما اجازه نخواهد داد که علائم بالای [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane] را ذخیره کنید.",
        "config-mysql-old": "مای‌اس‌کیو‌ال نسخهٔ $1 و یا بالاتر نیاز است، شما نسخهٔ $2 را دارید.",
        "config-db-port": "درگاه پایگاه‌داده:",
        "config-db-schema": "طرح کلی برای مدیاویکی:",
        "config-mysql-charset": "مجموعه‌ٔ خصوصیات پایگاه اطلاعاتی:",
        "config-mysql-binary": "دودویی",
        "config-mysql-utf8": "UTF-8",
-       "config-mysql-charset-help": "در حالت باینری مدیاویکی متن را به صورت  UTF-8 در پایگاه داده باینری ذخیره می‌کند.\nاین روش بسیار به صرفه‌تر از حالت  UTF-8 برای MySQL هست و به شما اجازهٔ استفاده از همه بازهٔ نویسه‌های یونیکد را می دهد.\n\nدر حالت UTF-8 برنامه MySQL به شما اجازه می‌دهد که کدام نویسه‌ها در داده‌های شما باشند و اجازهٔ تبدیل و حضور آنها را به صورت مطلوبی می‌دهد ولی به شما اجازهٔ ذخیرهٔ نویسه‌های بالای [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes نقشه ابتدائی چندزبانی] را می‌دهد.",
+       "config-mysql-charset-help": "در حالت باینری مدیاویکی متن را به صورت  UTF-8 در پایگاه داده باینری ذخیره می‌کند.\nاین روش بسیار به صرفه‌تر از حالت  UTF-8 برای MySQL هست و به شما اجازهٔ استفاده از همه بازهٔ نویسه‌های یونیکد را می دهد.\n\nدر حالت UTF-8 برنامه MySQL به شما اجازه می‌دهد که کدام نویسه‌ها در داده‌های شما باشند و اجازهٔ تبدیل و حضور آنها را به صورت مطلوبی می‌دهد ولی به شما اجازهٔ ذخیرهٔ نویسه‌های بالای [https://en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes نقشه ابتدائی چندزبانی] را می‌دهد.",
        "config-mssql-auth": "نوع تأیید:",
        "config-mssql-install-auth": "نوع تأییدی را که برای اتصال به پایگاه اطلاعاتی حین فرآیند نصب مورد استفاده قرار گیرد را انتخاب کنید.\nاگر \"{{int:config-mssql-windowsauth}}\" را انتخاب می‌کنید، اعتبارات هرآنچه کاربر وب سرور به عنوان آن  مورد استفاده قرار می‌دهد مورد استفاده قرار خواهد گرفت.",
        "config-mssql-web-auth": "نوع تأییدی را که کارساز وب به‌وسیلهٔ آن برای کارهای معمولی به پایگاه اطلاعاتی متصل خواهد شد را انتخاب کنید.\nاگر «{{int:config-mssql-windowsauth}}» را انتخاب می‌کنید، اعتبارات هرآنچه کاربر وب سرور به عنوان آن  مورد استفاده قرار می‌دهد مورد استفاده قرار خواهد گرفت.",
        "config-profile-no-anon": "ساخت کاربری مورد نیاز است",
        "config-profile-fishbowl": "فقط کاربر مجاز",
        "config-profile-private": "ویکی خصوصی",
-       "config-profile-help": "زمانی ویکی درست کار می کند که شما اجازه دهید تعداد زیادی از مردم آن را ویرایش کنند.\nدر مدیاویکی امکان مشاهدهٔ تغییرات اخیر و واگردانی ویرایش‌های خرابکاری به آسانی وجود دارد.\n\nبا وجودی که مدیا ویکی منافع بسیاری برای مردم دارد ولی متقاعد کردن خیلی از مردم درباره روش کار ویکی‌ها کار آسانی نیست.\n\nدر نتیجه شما دو انتخاب دارید.\n\n'''{{int:config-profile-wiki}}''' به همه کاربرها اجازهٔ ویرایش می دهد حتی بدون ثبت‌نام.\n\nیک ویکی که دارای '''{{int:config-profile-no-anon}}''' باشد امکانات کاربری بیشتری ارائه می‌دهد ولی امکان دارد ویرایشگران عادی را نگران کند.\n\nسناریوی '''{{int:config-profile-fishbowl}}''' به کاربرها اجازهٔ ویرایش می دهد ولی همه می توانند متن و تاریخچه را ببیند.\n\n'''{{int:config-profile-private}}''' فقط به کاربران اجازهٔ مشاهدهٔ مطالب را می‌دهد و فقط آنها می توانند ویرایش کنند.\n\nدسترسی‌های بیشتر کاربری بعد از نصب در [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights راهنماهای مرتبط] موجود است.",
+       "config-profile-help": "زمانی ویکی درست کار می کند که شما اجازه دهید تعداد زیادی از مردم آن را ویرایش کنند.\nدر مدیاویکی امکان مشاهدهٔ تغییرات اخیر و واگردانی ویرایش‌های خرابکاری به آسانی وجود دارد.\n\nبا وجودی که مدیا ویکی منافع بسیاری برای مردم دارد ولی متقاعد کردن خیلی از مردم درباره روش کار ویکی‌ها کار آسانی نیست.\n\nدر نتیجه شما دو انتخاب دارید.\n\n'''{{int:config-profile-wiki}}''' به همه کاربرها اجازهٔ ویرایش می دهد حتی بدون ثبت‌نام.\n\nیک ویکی که دارای '''{{int:config-profile-no-anon}}''' باشد امکانات کاربری بیشتری ارائه می‌دهد ولی امکان دارد ویرایشگران عادی را نگران کند.\n\nسناریوی '''{{int:config-profile-fishbowl}}''' به کاربرها اجازهٔ ویرایش می دهد ولی همه می توانند متن و تاریخچه را ببیند.\n\n'''{{int:config-profile-private}}''' فقط به کاربران اجازهٔ مشاهدهٔ مطالب را می‌دهد و فقط آنها می توانند ویرایش کنند.\n\nدسترسی‌های بیشتر کاربری بعد از نصب در [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights راهنماهای مرتبط] موجود است.",
        "config-license": "حق تکثیر و مجوز:",
        "config-license-none": "بدون پاورقی مجوز",
        "config-license-cc-by-sa": "اشتراک گذاری یکجور استناد رایج سازنده",
        "config-email-sender-help": "آدرس ایمیلی را وارد کنید که هنگام ارسال ایمیل خارج از محدوده از آن به عنوان ایمیل بازگشت استفاده شود.\nبه جایی که پیام‌ها برگشت داده می‌شوند، فرستاده خواهد شد.\nبسیاری از سرورهای پستی حداقل به بخش نام عمومی معتبر نیاز دارند.",
        "config-upload-settings": "بارگذاری‌های پرونده و تصویر",
        "config-upload-enable": "فعال‌سازی بارگذاری پرونده",
-       "config-upload-help": "بارگذاری پرونده بصورت بالقوه می‌تواند کارساز شما در معرض خطرات امنیتی قرار بدهد. برای کسب اطلاعات بیشتر لطفاً [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security قسمت امنیتی] را مطالعه کنید.\n\nبرای اجازه‌دادن به بارگذاری پرونده‌ها٬ حالت زیر مجموعه <code>images</code> در پوشه ریشه مدیاویکی را تغییر دهید که کارسازهای وب قادر به نوشتن بر روی آن باشند. سپس این قابلیت را فعال کنید.",
+       "config-upload-help": "بارگذاری پرونده بصورت بالقوه می‌تواند کارساز شما در معرض خطرات امنیتی قرار بدهد. برای کسب اطلاعات بیشتر لطفاً [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security قسمت امنیتی] را مطالعه کنید.\n\nبرای اجازه‌دادن به بارگذاری پرونده‌ها٬ حالت زیر مجموعه <code>images</code> در پوشه ریشه مدیاویکی را تغییر دهید که کارسازهای وب قادر به نوشتن بر روی آن باشند. سپس این قابلیت را فعال کنید.",
        "config-upload-deleted": "فهرست برای پوشه‌های حذف شده:",
        "config-upload-deleted-help": "فهرستی برای بایگانی کردن پوشه‌های حذف شده انتخاب کنید.\nبه طور مطلوب،از شبکه نباید در دسترس باشد.",
        "config-logo": "نشانی نامواره:",
        "config-logo-help": "پوستهٔ پیش‌فرض مدیاویکی شامل مکانی برای یک آرم ۱۳۵x۱۶۰ پیکسلی بالای منوی نوارکناری است.\nیک عکس با اندازهٔ مناسب ارسال کنید، و یوآرال را اینجا وارد کنید.\nاگر آرم شما با آن راه‌ها مزتبط است،می‌توانید از <code>$wgStylePath</code> یا <code>$wgScriptPath</code> استفاده کنید.\nاگر آرم نمی‌خواهید، این جعبه را خالی رها کنید.",
        "config-instantcommons": "فعال کردن فوری ویکی‌انبار",
-       "config-instantcommons-help": "[//www.mediawiki.org/ ویکی و InstantCommons ویکی‌انبار فوری] یک ویژگی‌است که به شما اجازه می‌دهد تا تصاویر، صداها یا سایر رسانه‌های یافته شده بر روی [//commons.wikimedia.org/ انبار ویکی مدیا] را استفاده کنید.\n\nبرای استفاده از این ویژگی مدیاویکی نیازمند دسترسی به اینترنت است.\n\nبرای کسب اطلاعات بیشتر درباره این ویژگی٬ شامل دستورالعمل‌های برای چگونگی نصب آن برای سایر ویکی‌های بجز ویکی‌انبار لطفاً از  [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos the نصب دستی] استفاده کنید.",
+       "config-instantcommons-help": "[https://www.mediawiki.org/ ویکی و InstantCommons ویکی‌انبار فوری] یک ویژگی‌است که به شما اجازه می‌دهد تا تصاویر، صداها یا سایر رسانه‌های یافته شده بر روی [https://commons.wikimedia.org/ انبار ویکی مدیا] را استفاده کنید.\n\nبرای استفاده از این ویژگی مدیاویکی نیازمند دسترسی به اینترنت است.\n\nبرای کسب اطلاعات بیشتر درباره این ویژگی٬ شامل دستورالعمل‌های برای چگونگی نصب آن برای سایر ویکی‌های بجز ویکی‌انبار لطفاً از  [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos the نصب دستی] استفاده کنید.",
        "config-cc-error": "مجوز چوزر عوام سازنده بی‌نتیجه ماند.\nنام مجوز را دستی وارد کنید.",
        "config-cc-again": "انتخاب دوباره...",
        "config-cc-not-chosen": "مجوز عوام سازنده‌ای را که می‌خواهید انتخاب کنید و \"proceed\" را کلیک کنید.",
        "config-install-extension-tables": "ایجاد جداول برای افزونه‌های فعال",
        "config-install-mainpage-failed": "قادر به درج صفحهٔ اصلی نمی‌باشد:$1",
        "config-install-done": "'''تبریک!'''\nبا موفقیت مدیاویکی را نصب کردید.\nبرنامه نصب‌کننده پرونده <code>LocalSettings.php</code> را درست کرد.\nکه شامل تمام تنظیمات می‌باشد.\n\nشما نیاز به دریافت آن دارید و آن را در پایهٔ نصب ویکی قرار دهید (همان پوشهٔ index.php). دریافت باید به صورت خودکار شروع شده‌باشد.\n\nاگر دریافت شروع نشد یا اگر آن را لغو کردید با کلیک روی پیوند زیر می‌توانید آن را دریافت کنید:\n\n$3\n\n'''توجه داشته باشید:''' اگر این را الآن انجام ندهید، این پرونده تولیدشده در صورتی که نصب را بدون دریافت آن تمام کردید بعداً در اختیار شما قرار نخواهد گرفت.\n\nوقتی انجام شد شما می‌توانید '''[$2 وارد ویکی شوید]'''.",
+       "config-install-done-path": "<strong>تبریک!</strong>\nمدیاویکی با موفقیت نصب گردید.\nبرنامه نصب‌کننده یک پرونده <code>LocalSettings.php</code> ایجاد کرده است که شامل تمام تنظیمات می‌باشد.\n\nلازم است شما آن را دریافت کرده و در <code>$4</code> قرار دهید. اِن دریافت می باِست به صورت خودکار شروع شده‌باشد.\n\nاگر دریافت شروع نشده بود و یا آن را لغو کرده اید با کلیک روی پیوند زیر می‌توانید آن را دریافت کنید:\n\n$3\n\n<strong>توجه:</strong> اگر این کار را هم اکنون انجام ندهید و بدون دریافت آن از برنامه نصب خارج شويد، این پرونده تنظیمات تولیدشده در آینده در اختیار شما قرار نخواهد داشت.\n\nوقتی که آن کار را انجام داديد، می‌توانید <strong>[$2 وارد ويکی خودتان شويد]</strong>.",
        "config-download-localsettings": "دریافت <code>LocalSettings.php</code>",
        "config-help": "راهنما",
        "config-help-tooltip": "برای گسترش کلیک کنید",
        "config-nofile": "پروندهٔ «$1» یافت نشد. آیا حذف شده‌است؟",
-       "config-extension-link": "آیا می‌دانستید که ویکی شما [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions extensions] را پشتیبانی می‌کند؟\nشما می‌توانید [//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category extensions by category]",
+       "config-extension-link": "آیا می‌دانستید که ویکی شما [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions extensions] را پشتیبانی می‌کند؟\nشما می‌توانید [https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category extensions by category]",
        "mainpagetext": "'''مدیاویکی با موفقیت نصب شد.'''",
-       "mainpagedocfooter": "از [//meta.wikimedia.org/wiki/Help:Contents راهنمای کاربران]\nبرای استفاده از نرم‌افزار ویکی کمک بگیرید.\n\n== آغاز به کار ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings تنظیم پیکربندی]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki پرسش‌های متداول]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce فهرست ارسال نسخه‌های مدیاویکی]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise مدیاویکی برای زبان شما]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam آموزش مقابله به هرزنگاری در ویکی شما]"
+       "mainpagedocfooter": "از [https://meta.wikimedia.org/wiki/Help:Contents راهنمای کاربران]\nبرای استفاده از نرم‌افزار ویکی کمک بگیرید.\n\n== آغاز به کار ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings تنظیم پیکربندی]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki پرسش‌های متداول]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce فهرست ارسال نسخه‌های مدیاویکی]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise مدیاویکی برای زبان شما]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam آموزش مقابله به هرزنگاری در ویکی شما]"
 }
index 866ec10..7dbca51 100644 (file)
        "config-restart": "Kyllä",
        "config-welcome": "=== Ympäristön tarkistukset ===\nVarmistetaan MediaWikin asennettavuus tähän ympäristöön.\nMuista antaa nämä tiedot, jos tarvitset apua asennuksen aikana.",
        "config-copyright": "=== Tekijänoikeudet ja käyttöehdot ===\n\n$1\n\nTämä ohjelma on vapaa ohjelmisto; voit levittää sitä ja/tai muokata sitä Free Software Foundationin GNU General Public Licensen ehdoilla, joko version 2 tai (halutessasi) minkä tahansa myöhemmän version mukaisesti.\n\nTätä ohjelmaa levitetään siinä toivossa, että se olisi hyödyllinen, mutta <strong>ilman mitään takuuta</strong>; ilman edes hiljaista takuuta <strong>kaupallisesti hyväksyttävästä laadusta</strong> tai <strong>soveltuvuudesta tiettyyn tarkoitukseen.</strong\nKatso GNU Generel Public Licensestä lisää yksityiskohtia.\n\nSinun olisi pitänyt saada <doclink href=Copying>kopio GNU General Public Licensestä</doclink> tämän ohjelman mukana; jos et, kirjoita siitä osoitteeseen Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA tai [http://www.gnu.org/copyleft/gpl.html lue se verkossa].",
-       "config-sidebar": "* [//www.mediawiki.org MediaWikin kotisivu]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Käyttöopas]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Hallintaopas]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ UKK]\n----\n* <doclink href=Readme>Lue minut</doclink>\n* <doclink href=ReleaseNotes>Julkaisutiedot</doclink>\n* <doclink href=Copying>Kopiointi</doclink>\n* <doclink href=UpgradeDoc>Päivittäminen</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org MediaWikin kotisivu]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Käyttöopas]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Hallintaopas]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ UKK]\n----\n* <doclink href=Readme>Lue minut</doclink>\n* <doclink href=ReleaseNotes>Julkaisutiedot</doclink>\n* <doclink href=Copying>Kopiointi</doclink>\n* <doclink href=UpgradeDoc>Päivittäminen</doclink>",
        "config-env-good": "Asennusympäristö on tarkastettu.\nVoit asentaa MediaWikin.",
        "config-env-bad": "Asennusympäristö on tarkastettu.\nEt voi asentaa MediaWikiä.",
        "config-env-php": "PHP $1 on asennettu.",
        "config-env-hhvm": "HHVM $1 on asennettu.",
        "config-unicode-using-intl": "Käyttää [http://pecl.php.net/intl intl PECL-laajennusta] Unicode-normalisaatioon.",
-       "config-no-db": "Sopivaa tietokanta-ajuria ei löytynyt! Sinun täytyy asentaa tietokanta-ajurit PHP:lle.\nSeuraavat tietokantatyypit ovat tuettuja: $1.",
+       "config-no-db": "Sopivaa tietokanta-ajuria ei löytynyt! Sinun täytyy asentaa tietokanta-ajuri PHP:lle.\n{{PLURAL:$2|Seuraava tietokantatyyppi on tuettu|Seuraavat tietokantatyypit ovat tuettuja}}: $1.\n\nJos koostit PHP:n itse, määritä se uudelleen tietokanta-asiakkaan ollessa käytössä, esimerkiksi koodilla <code>./configure --with-mysqli</code>.\nJos asensit PHP:n Debian- tai Ubuntu-pakkauksesta, sinun on myös asennettava esimerkiksi <code>php5-mysql</code>-pakkaus.",
        "config-outdated-sqlite": "<strong>Varoitus:</strong> sinulla on käytössä SQLite $1, joke on vanhempi kuin vähintään vaadittava versio $2. SQLite ei ole saatavilla.",
-       "config-xml-bad": "PHP:n XML-moduulia ei löydy.\nMediaWiki käyttää tämän moduulin funktioita, eikä toimi tässä kokoonpanossa.\nJos käytät Mandrakea, asenna php-xml paketti.",
+       "config-no-fts3": "<strong>Varoitus:</strong> SQLite on koostettu ilman [//sqlite.org/fts3.html FTS3-moduulia], hakuominaisuudet eivät ole käytössä tässä taustajärjestelmässä.",
        "config-pcre-old": "<strong>Tärkeää:</strong> PCRE $1 tai uudempi versio tarvitaan.\nPHP-binäärisi on linkitetty versiolla PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Lisätietoja].",
        "config-memory-raised": "PHP:n <code>memory_limit</code> on $1, nostetaan arvoon $2.",
        "config-memory-bad": "'''Varoitus:''' PHP:n <code>memory_limit</code> on $1.\nTämä on luultavasti liian alhainen.\nAsennus saattaa epäonnistua!",
@@ -86,7 +86,7 @@
        "config-no-cli-uri": "<strong>Varoitus:</strong> <code>--scriptpath</code> määrittämättä, käytetään oletusta: <code>$1</code>",
        "config-using-server": "Palvelimen nimenä käytetään \"<nowiki>$1</nowiki>\".",
        "config-using-uri": "Palvelinen URL-osoitteena käytetään \"<nowiki>$1$2</nowiki>\".",
-       "config-uploads-not-safe": "<strong>Varoitus:</strong> Tiedostojen lähetyshakemistoa <code>$1</code> ei ole suojattu haitalliselta koodilta. MediaWiki tarkistaa kaikki lähetetyt tiedostot, mutta suosittelemme toimimaan ohjeen [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security close this security vulnerability] mukaan ennen kuin tiedostojen lähetys otetaan käyttöön.",
+       "config-uploads-not-safe": "<strong>Varoitus:</strong> Tiedostojen lähetyshakemistoa <code>$1</code> ei ole suojattu haitalliselta koodilta. MediaWiki tarkistaa kaikki lähetetyt tiedostot, mutta suosittelemme toimimaan ohjeen [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security close this security vulnerability] mukaan ennen kuin tiedostojen lähetys otetaan käyttöön.",
        "config-no-cli-uploads-check": "<strong>Varoitus:</strong> Tiedostojen lähetyshakemistoa (<code>$1</code>) ei ole tarkistettu haavoittuvuuksien varalta komentoriviasennuksen aikana.",
        "config-brokenlibxml": "Järjestelmässäsi on käytössä PHP:n ja libxml2:n versioyhdistelmä, joka ei toimi kunnolla ja voi aiheuttaa tiedon vahingoittumista MediaWikissä ja muissa web-sovelluksissa.\nPäivitä libxml2 versioon 2.7.3 tai uudempaan ([https://bugs.php.net/bug.php?id=45996 bug filed with PHP]).\nAsennus keskeytetty.",
        "config-suhosin-max-value-length": "Suhosin on asennettu ja se rajoittaa GET-parametrin <code>length</code> $1 tavuun.\nMediaWikin ResourceLoader-komponentti pystyy toimimaan tämän kanssa, mutta ohjelmiston suorituskyky heikkenee.\nMikäli mahdollista, aseta muuttuja <code>suhosin.get.max_value_length</code> arvoon 1024 (tai suurempaan) tiedostossa <code>php.ini</code> ja aseta myös <code>$wgResourceLoaderMaxQueryLength</code> samaksi arvoksi tiedostossa <code>LocalSettings.php</code>.",
        "config-db-wiki-help": "Syötä käyttäjänimi ja salasana joita käytetään muodostettaessa yhteys tietokantaan käytettäessä wikiä normaalisti.\nJos tiliä ei ole olemassa ja asennuksessa käytettävällä tilillä on riittävät käyttöoikeudet, tämä käyttäjätili luodaan käyttöoikeuksilla jotka vähintään tarvitaan wikiä varten.",
        "config-db-prefix": "Tietokantataulujen etuliite",
        "config-db-prefix-help": "Jos tietokantaa käytetään useammalle wikille tai MediaWikille ja muille sovelluksille, suositellaan käytettäväksi tauluissa etuliitettä, joilla ne erotetaan toisistaan ja vältetään näin virheitä.\nÄlä käytä välilyöntejä.\n\nYleensä tämä kenttä jätetään tyhjäksi.",
-       "config-db-charset": "Tietokannan merkistö",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0, binääri",
-       "config-charset-mysql5": "MySQL 4.1/5.0, UTF-8",
-       "config-charset-mysql4": "MySQL 4.0, taaksepäin yhteensopiva UTF-8",
        "config-mysql-old": "MediaWiki tarvitsee MySQL:n version $1 tai uudemman. Nykyinen versio on $2.",
        "config-db-port": "Tietokannan portti:",
        "config-db-schema": "MediaWikin rakenne:",
        "config-connection-error": "$1.\n\nTarkista isäntä, käyttäjänimi, salasana ja yritä uudestaan.",
        "config-invalid-schema": "Virheellinen skeema MediaWikille \"$1\".\nKäytä pelkkiä ASCII-kirjaimia (a-z, A-Z), numeroita (0-9) ja alaviivoja (_).",
        "config-db-sys-create-oracle": "Asennusohjelma tukee ainoastaan SYSDBA-tunnuksen käyttämistä uuden tunnuksen luonnissa.",
+       "config-db-sys-user-exists-oracle": "Käyttäjätunnus \"$1\" on jo olemassa. SYSDBA:ta voidaan käyttää vain uuden tunnuksen luontiin!",
        "config-postgres-old": "MediaWiki tarvitsee PostgreSQL:n version $1 tai uudemman. Nykyinen versio on $2.",
        "config-mssql-old": "Vaaditaan Microsoft SQL Server $1 tai uudempi. Sinulla on käytössä $2.",
        "config-sqlite-name-help": "Valitse nimi, joka yksilöi tämän wikin.\nÄlä käytä välilyöntejä tai viivoja.\nNimeä käytetään SQLite-tietokannan tiedostonimessä.",
        "config-sqlite-dir-unwritable": "Hakemistoon ”$1” kirjoittaminen epäonnistui.\nMuuta hakemiston käyttöoikeuksia siten, että palvelinohjelmisto voi kirjoittaa siihen ja yritä uudelleen.",
        "config-sqlite-readonly": "Tiedostoon <code>$1</code> ei voi kirjoittaa.",
+       "config-sqlite-cant-create-db": "Tietokantatiedostoa <code>$1</code> ei voitu luoda.",
        "config-sqlite-fts3-downgrade": "PHP:stä puuttuu FTS3-tuki. Poistetaan ominaisuus käytöstä tietokantatauluista.",
        "config-can-upgrade": "Tietokanta sisältää jo MediaWiki tauluja.\nPäivitä ne MediaWiki-versioon $1 painamalla <strong>Jatka</strong>.",
        "config-upgrade-done": "Päivitys valmis.\n\nVoit [$1 aloittaa wikin käytön].\n\nNapsauta alla olevaa painiketta, jos haluat luoda uudelleen <code>LocalSettings.php</code>-tiedoston.\nTämä '''ei ole suositeltavaa''', jos wikissäsi ei ole ongelmia.",
        "config-upgrade-done-no-regenerate": "Päivitys valmis.\n\nVoit [$1 aloittaa wikin käytön].",
        "config-regenerate": "Luo LocalSettings.php uudelleen →",
        "config-show-table-status": "Kysely <code>SHOW TABLE STATUS</code> epäonnistui!",
+       "config-unknown-collation": "<strong>Varoitus:</strong> Tietokanta käyttää tunnistamatonta lajittelua.",
        "config-db-web-help": "Valitse käyttäjänimi ja salasana joita palvelin käyttää muodostaessaan yhteyttä tietokantapalvelimeen wikin normaalin toiminnan aikana.",
        "config-db-web-account-same": "Käytä samaa tiliä kuin asennuksessa",
        "config-db-web-create": "Lisää tili, jos sitä ei ole jo olemassa",
        "config-mysql-charset": "Tietokannan merkistökoodaus:",
        "config-mysql-binary": "Binääri",
        "config-mysql-utf8": "UTF-8",
+       "config-mssql-auth": "Varmennuksen tyyppi:",
+       "config-mssql-install-auth": "Valitse varmennuksen tyyppi, jota käytetään yhdistäessä tietokantaan asennuksen aikana.\nJos valitset \"{{int:config-mssql-windowsauth}}\", käytetään verkkopalvelimen käyttäjän kirjautumistietoja.",
+       "config-mssql-web-auth": "Valitse varmennuksen tyyppi, jota verkkopalvelin käyttää yhdistäessään tietokantapalvelimeen wikin tavallisen toiminnan aikana.\nJos valitset \"{{int:config-mssql-windowsauth}}\", käytetään verkkopalvelimen käyttäjän kirjautumistietoja.",
+       "config-mssql-windowsauth": "Windows-varmennus",
        "config-site-name": "Wikin nimi",
        "config-site-name-help": "Tämä näkyy selaimen otsikkona ja muissa kohdissa.",
        "config-site-name-blank": "Kirjoita sivuston nimi.",
        "config-ns-site-name": "Sama kuin wikin nimi: $1",
        "config-ns-other": "Muu (määritä)",
        "config-ns-other-default": "MinunWiki",
+       "config-project-namespace-help": "Wikipedian esimerkkiä seuraten monien wikien käytäntösivut ovat erillään sisältösivuista '''projektinimiavaruudessa'''.\nTämän nimiavaruuden kaikki sivujen nimet alkavat etuliitteellä, jonka voit määrittää tässä.\nYleensä tämä etuliite pohjautuu wikin nimeen, mutta siinä ei saa olla välimerkkejä kuten \"#\" tai \":\".",
        "config-ns-invalid": "Määritelty nimiavaruus \"<nowiki>$1</nowiki>\" on virheellinen.\nSyötä joku muu nimiavaruus.",
        "config-ns-conflict": "Määritelty nimiavaruus \"<nowiki>$1</nowiki>\" on ristiriidassa MediaWikin oletusnimiavaruuksien kanssa.\nSyötä joku muu nimiavaruus.",
        "config-admin-box": "Ylläpitäjän tili",
        "config-upload-deleted": "Poistettujen tiedostojen hakemisto:",
        "config-upload-deleted-help": "Valitse hakemisto johon poistetut tiedostot arkistoidaan.\nHakemiston ei tulisi olla käytettävissä internetverkosta.",
        "config-logo": "Logon URL-osoite",
+       "config-logo-help": "MediaWikin oletusulkoasussa on paikka 135x160 pikselin kokoiselle logolle sivupalkin yläpuolella.\nTallenna sopivan kokoinen kuva ja lisää URL tähän.\n\nVoit käyttää muuttujia <code>$wgStylePath</code> tai <code>$wgScriptPath</code>, jos logosi on määritelty suhteessa näihin polkuihin.\n\nJos et halua logoa, jätä tämä kenttä tyhjäksi.",
        "config-instantcommons": "Aktivoi Instant Commons",
-       "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons Instant Commons] on ominaisuus, joka antaa wikien käyttää kuvia, ääniä ja muuta mediaa [//commons.wikimedia.org/ Wikimedia Commons] -sivustolta.\nTehdäkseen tämän MediaWiki tarvitsee Internet-yhteyden.\n\nLisätietoja tästä ominaisuudesta, mukaan lukien ohjeet, kuinka sen voi asettaa muille wikeille kuin Wikimedia Commons, löytyy [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos ohjeista].",
+       "config-instantcommons-help": "[https://www.mediawiki.org/wiki/InstantCommons Instant Commons] on ominaisuus, joka antaa wikien käyttää kuvia, ääniä ja muuta mediaa [https://commons.wikimedia.org/ Wikimedia Commons] -sivustolta.\nTehdäkseen tämän MediaWiki tarvitsee Internet-yhteyden.\n\nLisätietoja tästä ominaisuudesta, mukaan lukien ohjeet, kuinka sen voi asettaa muille wikeille kuin Wikimedia Commons, löytyy [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos ohjeista].",
        "config-cc-error": "Creative Commons -lisenssinvalitsija ei antanut tulosta.\nSyötä lisenssin nimi manuaalisesti.",
        "config-cc-again": "Valitse uudelleen...",
        "config-cc-not-chosen": "Valitse, minkä Creative Commons -lisenssin haluat ja paina \"proceed\".",
        "config-install-interwiki-exists": "<strong>Varoitus:</strong> interwiki-taulussa on jo tietueita, ohitetaan oletuslista.",
        "config-install-stats": "Alustetaan tilastoja",
        "config-install-keys": "Muodostetaan salausavaimia",
+       "config-insecure-keys": "<strong>Varoitus:</strong> Asennuksen aikana {{PLURAL:$2|luotu turva-avain|luodut turva-avaimet}} ($1) {{PLURAL:$2|ei|eivät}} ole täysin {{PLURAL:$2|turvallinen|turvallisia}}. Harkitse {{PLURAL:$2|sen|niiden}} muuttamista manuaalisesti.",
        "config-install-updates": "Estä tarpeettomien päivitysten asennus",
        "config-install-sysop": "Luodaan ylläpitäjän tiliä",
        "config-install-subscribe-fail": "Liittyminen mediawiki-announce listalle epäonnistui: $1",
        "config-install-extension-tables": "Luodaan tauluja käyttöönotetuille laajuennuksille",
        "config-install-mainpage-failed": "Etusivun lisääminen ei onnistunut: $1",
        "config-install-done": "<strong>Onnittelut!</strong>\nOlet asentanut MediaWikin.\n\nAsennusohjelma on luonut <code>LocalSettings.php</code> -tiedoston.\nSiinä on kaikki MediaWikin asetukset.\n\nLataa tiedosto ja laita se MediaWikin asennushakemistoon (sama kuin missä on index.php). Lataamisen olisi pitänyt alkaa automaattisesti.\n\nMikäli latausta ei tarjottu tai keskeytit latauksen, käynnistä se uudestaan tästä linkistä:\n\n$3\n\n<strong>Huom:</strong> Mikäli et nyt lataa tiedostoa, luotu tiedosto ei ole saatavissa myöhemmin, jos poistut asennuksesta lataamatta sitä.\n\nKun olet laittanut tiedoston oikeaan paikkaan, voit <strong>[$2 mennä wikiisi]</strong>.",
+       "config-install-done-path": "<strong>Onnittelut!</strong>\nOlet asentanut MediaWikin.\n\nAsennusohjelma on luonut <code>LocalSettings.php</code> -tiedoston.\nSiinä on kaikki MediaWikin asetukset.\n\nLataa tiedosto ja laita se sijaintiin <code>$4</code>. Lataamisen olisi pitänyt alkaa automaattisesti.\n\nMikäli latausta ei tarjottu tai keskeytit latauksen, käynnistä se uudestaan tästä linkistä:\n\n$3\n\n<strong>Huom:</strong> Mikäli et nyt lataa tiedostoa, luotu tiedosto ei ole saatavissa myöhemmin, jos poistut asennuksesta lataamatta sitä.\n\nKun olet laittanut tiedoston oikeaan paikkaan, voit <strong>[$2 mennä wikiisi]</strong>.",
        "config-download-localsettings": "Lataa <code>LocalSettings.php</code>",
        "config-help": "ohje",
        "config-help-tooltip": "Klikkaa laajentaaksesi",
        "config-nofile": "Tiedostoa \"$1\" ei löytynyt. Onko se poistettu?",
-       "config-extension-link": "Tiesitkö että wiki tukee [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions laajennuksia]?\n\nLaajennuksia voi hakea myös [//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category luokittain].",
+       "config-extension-link": "Tiesitkö että wiki tukee [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions laajennuksia]?\n\nLaajennuksia voi hakea myös [https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category luokittain].",
        "mainpagetext": "<strong>MediaWiki on onnistuneesti asennettu.</strong>",
-       "mainpagedocfooter": "Lisätietoja wiki-ohjelmiston käytöstä on [//meta.wikimedia.org/wiki/Help:Contents käyttöoppaassa].\n\n=== Aloittaminen ===\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Asetusten teko-ohjeita]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWikin FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Sähköpostilista, jolla tiedotetaan MediaWikin uusista versioista]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Käännä MediaWikiä kielellesi]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Katso, kuinka torjua spämmiä wikissäsi]\n\n=== Asetukset ===\n\nTarkista, että alla olevat taivutusmuodot ovat oikein. Jos eivät, tee tarvittavat muutokset tiedostoon LocalSettings.php seuraavasti:\n $wgGrammarForms['fi']['genitive']['{{SITENAME}}'] = '...';\n $wgGrammarForms['fi']['partitive']['{{SITENAME}}'] = '...';\n $wgGrammarForms['fi']['elative']['{{SITENAME}}'] = '...';\n $wgGrammarForms['fi']['inessive']['{{SITENAME}}'] = '...';\n $wgGrammarForms['fi']['illative']['{{SITENAME}}'] = '...';\nTaivutusmuodot: {{GRAMMAR:genitive|{{SITENAME}}}} (yön) – {{GRAMMAR:partitive|{{SITENAME}}}} (yötä) – {{GRAMMAR:elative|{{SITENAME}}}} (yöstä) – {{GRAMMAR:inessive|{{SITENAME}}}} (yössä) – {{GRAMMAR:illative|{{SITENAME}}}} (yöhön)."
+       "mainpagedocfooter": "Lisätietoja wiki-ohjelmiston käytöstä on [https://meta.wikimedia.org/wiki/Help:Contents käyttöoppaassa].\n\n=== Aloittaminen ===\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Asetusten teko-ohjeita]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWikin FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Sähköpostilista, jolla tiedotetaan MediaWikin uusista versioista]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Käännä MediaWikiä kielellesi]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Katso, kuinka torjua spämmiä wikissäsi]\n\n=== Asetukset ===\n\nTarkista, että alla olevat taivutusmuodot ovat oikein. Jos eivät, tee tarvittavat muutokset tiedostoon LocalSettings.php seuraavasti:\n $wgGrammarForms['fi']['genitive']['{{SITENAME}}'] = '...';\n $wgGrammarForms['fi']['partitive']['{{SITENAME}}'] = '...';\n $wgGrammarForms['fi']['elative']['{{SITENAME}}'] = '...';\n $wgGrammarForms['fi']['inessive']['{{SITENAME}}'] = '...';\n $wgGrammarForms['fi']['illative']['{{SITENAME}}'] = '...';\nTaivutusmuodot: {{GRAMMAR:genitive|{{SITENAME}}}} (yön) – {{GRAMMAR:partitive|{{SITENAME}}}} (yötä) – {{GRAMMAR:elative|{{SITENAME}}}} (yöstä) – {{GRAMMAR:inessive|{{SITENAME}}}} (yössä) – {{GRAMMAR:illative|{{SITENAME}}}} (yöhön)."
 }
index 0a147d2..e907dc2 100644 (file)
@@ -37,8 +37,8 @@
        "config-env-php": "PHP $1 er innstallerað.",
        "config-env-hhvm": "HHVM $1 er lagt inn.",
        "config-unicode-using-intl": "Brúkar [http://pecl.php.net/intl intl PECL ískoytið] til Unicode normalisering.",
-       "config-unicode-pure-php-warning": "<strong>Ávaring:</strong> [http://pecl.php.net/intl intl PECL ískoytið] er ikki tøkt at handfara Unicode normalisering, fellur aftur til eina spakuligari reina-PHP verkseting.\nUm tú koyrir eina netsíðu við høgari ferðslu, so eigur tú at lesa eitt sindur um [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode normalisering].",
-       "config-unicode-update-warning": "<strong>Ávaring:</strong> Tann innlagda versjónin av Unicode normalisering wrapper nýtir eina eldri versjón av [http://site.icu-project.org/ bókasavninum hjá ICU verkætlanini].\nTú eigur at [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations fremja uppstigning] um tú stúrir fyri at nýta Unicode.",
+       "config-unicode-pure-php-warning": "<strong>Ávaring:</strong> [http://pecl.php.net/intl intl PECL ískoytið] er ikki tøkt at handfara Unicode normalisering, fellur aftur til eina spakuligari reina-PHP verkseting.\nUm tú koyrir eina netsíðu við høgari ferðslu, so eigur tú at lesa eitt sindur um [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode normalisering].",
+       "config-unicode-update-warning": "<strong>Ávaring:</strong> Tann innlagda versjónin av Unicode normalisering wrapper nýtir eina eldri versjón av [http://site.icu-project.org/ bókasavninum hjá ICU verkætlanini].\nTú eigur at [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations fremja uppstigning] um tú stúrir fyri at nýta Unicode.",
        "config-diff3-bad": "GNU diff3 ikki funnið.",
        "config-git": "Fann Git version control forritið: <code>$1</code>.",
        "config-git-bad": "Git version control forritið varð ikki funnið.",
index 70ceed1..d73f61b 100644 (file)
@@ -26,7 +26,8 @@
                        "Orlodrim",
                        "Cl3m3n7",
                        "C13m3n7",
-                       "The RedBurn"
+                       "The RedBurn",
+                       "Trial"
                ]
        },
        "config-desc": "Le programme d’installation de MediaWiki",
        "config-restart": "Oui, le relancer",
        "config-welcome": "=== Vérifications liées à l’environnement ===\nDes vérifications de base vont maintenant être effectuées pour voir si cet environnement est adapté à l’installation de MediaWiki.\nRappelez-vous d’inclure ces informations si vous recherchez de l’aide sur la manière de terminer l’installation.",
        "config-copyright": "=== Droit d'auteur et conditions ===\n\n$1\n\nCe programme est un logiciel libre : vous pouvez le redistribuer et/ou le modifier selon les termes de la Licence Publique Générale GNU telle que publiée par la Free Software Foundation (version 2 de la Licence, ou, à votre choix, toute version ultérieure).\n\nCe programme est distribué dans l’espoir qu’il sera utile, mais '''sans aucune garantie''' : sans même les garanties implicites de '''commerciabilité''' ou d’'''adéquation à un usage particulier'''.\nVoir la Licence Publique Générale GNU pour plus de détails.\n\nVous devriez avoir reçu <doclink href=Copying>une copie de la Licence Publique Générale GNU</doclink> avec ce programme ; dans le cas contraire, écrivez à la Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ou [http://www.gnu.org/copyleft/gpl.html lisez-la en ligne].",
-       "config-sidebar": "* [//www.mediawiki.org Accueil MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Guide de l’utilisateur]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Guide de l’administrateur]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ]\n----\n* <doclink href=Readme>Lisez-moi</doclink>\n* <doclink href=ReleaseNotes>Notes de publication</doclink>\n* <doclink href=Copying>Copie</doclink>\n* <doclink href=UpgradeDoc>Mise à jour</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org Accueil MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Guide de l’utilisateur]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Guide de l’administrateur]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ]\n----\n* <doclink href=Readme>Lisez-moi</doclink>\n* <doclink href=ReleaseNotes>Notes de publication</doclink>\n* <doclink href=Copying>Copie</doclink>\n* <doclink href=UpgradeDoc>Mise à jour</doclink>",
        "config-env-good": "L’environnement a été vérifié.\nVous pouvez installer MediaWiki.",
        "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 : [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations ''Unicode normalization''] (en anglais).",
-       "config-unicode-update-warning": "'''Attention''': La version installée du ''wrapper'' de normalisation Unicode utilise une vieille version de la [http://site.icu-project.org/ bibliothèque logicielle ''ICU Project''].\nVous devriez faire une [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations mise à jour] si vous êtes tout à fait concerné par l'usage d'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-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-mbstring": "'''Erreur fatale : [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] est activé !'''\nCette option provoque des erreurs et peut corrompre les données de manière imprévisible.\nVous ne pouvez pas installer ou utiliser MediaWiki tant que cette option est activée.",
-       "config-xml-bad": "Le module XML de PHP est manquant.\nMediaWiki requiert des fonctions de ce module et ne fonctionnera pas avec cette configuration.\nVous pourrez avoir besoin d’installer le paquet RPM php-xml.",
        "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": "'''Erreur fatale''': Le module PCRE de PHP semble être compilé sans le support PCRE_UTF8.\nMédiaWiki nécessite 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-ctype": "'''Fatal ''': PHP doit être compilé avec le support pour l'[http://www.php.net/manual/en/ctype.installation.php extension Ctype].",
-       "config-iconv": "<strong>Erreur critique :</strong> PHP doit être compilé avec le support de l’[http://www.php.net/manual/en/iconv.installation.php extension iconv].",
-       "config-json": "'''Erreur fatale :''' PHP a été compilé sans le support de JSON.\nVous devez soit installez l’extension JSON de PHP ou l’extension [http://pecl.php.net/package/jsonc PECL jsonc] avant d’installer MediaWiki.\n* L’extension PHP est comprise dans Red Hat Enterprise Linux (CentOS) 5 et 6, mais doit être activée dans <code>/etc/php.ini</code> ou <code>/etc/php.d/json.ini</code>.\n* Certaines distributions Linux après mai 2013 ne comprennent pas l’extension PHP, mais ont mis à la place l’extension PECL sous la forme <code>php5-json</code> ou <code>php-pecl-jsonc</code>.",
-       "config-mbstring-absent": "<strong>Fatal :</strong> PHP doit être compilé avec la prise en charge de [http://www.php.net/manual/en/mbstring.setup.php l’extension mbstring].",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] est installé",
        "config-apc": "[http://www.php.net/apc APC] est installé",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] est installé",
        "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-using-uri": "Utilisation de l'URL de serveur \"<nowiki>$1$2</nowiki>\".",
-       "config-uploads-not-safe": "'''Attention:''' Votre répertoire par défaut pour les téléchargements, <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échargés, il est fortement recommandé de [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security fermer cette vulnérabilité de sécurité] (texte en anglais) avant d'activer les téléchargements.",
+       "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.",
        "config-brokenlibxml": "Votre système utilise une combinaison de versions de PHP et libxml2 qui est boguée et peut engendrer des corruptions cachées de données dans MediaWiki et d’autres applications web.\nVeuillez mettre à jour votre système vers libxml2 2.7.3 ou plus récent ([https://bugs.php.net/bug.php?id=45996 bogue déposé auprès de PHP]).\nInstallation interrompue.",
        "config-suhosin-max-value-length": "Suhosin est installé et limite la <code>longueur</code> du paramètre GET à $1 octets.\nLe composant ResourceLoader de MediaWiki va répondre en respectant cette limite, mais ses performances seront dégradées. Si possible, vous devriez définir <code>suhosin.get.max_value_length</code> à 1024 ou plus dans le fichier <code>php.ini</code>, et fixer <code>$wgResourceLoaderMaxQueryLength</code> à la même valeur dans <code>LocalSettings.php</code>.",
        "config-db-wiki-help": "Entrez le nom d'utilisateur et le mot de passe qui seront utilisés pour se connecter à la base de données pendant le fonctionnement habituel du wiki.\nSi le compte n'existe pas, et le compte d'installation dispose de privilèges suffisants, ce compte d'utilisateur sera créé avec les privilèges minimum requis pour faire fonctionner le wiki.",
        "config-db-prefix": "Préfixe des tables de la base de données :",
        "config-db-prefix-help": "Si vous avez besoin de partager une base de données entre plusieurs wikis, ou entre MediaWiki et une autre application Web, vous pouvez choisir d'ajouter un préfixe à tous les noms de table pour éviter les conflits.\nNe pas utiliser d'espaces.\n\nCe champ est généralement laissé vide.",
-       "config-db-charset": "Jeu de caractères de la base de données",
-       "config-charset-mysql5-binary": "binaire MySQL 4.1/5.0",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "MySQL 4.0 rétrocompatible UTF-8",
-       "config-charset-help": "'''Attention:''' Si vous utilisez ''backwards-compatible UTF-8'' sur MySQL 4.1+, et ensuite sauvegardez la base de données avec <code>mysqldump</code>, cela peut détruire tous les caractères non-ASCII, ce qui rend inutilisable vos copies de sauvegarde de façon irréversible !\n\nEn ''mode binaire'', MediaWiki stocke le texte UTF-8 dans des champs binaires de la base de données. C'est plus efficace que le ''mode UTF-8'' de MySQL, et vous permet d'utiliser toute la gamme des caractères Unicode.\nEn ''mode UTF-8'', MySQL connaîtra le jeu de caractères de vos données et pourra présenter et convertir les données de manière appropriée, mais il ne vous laissera pas stocker les caractères au-dessus du [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes plan multilingue de base] (en anglais).",
        "config-mysql-old": "MySQL $1 ou version ultérieure est requis. Vous avez $2.",
        "config-db-port": "Port de la base de données :",
        "config-db-schema": "Schéma pour MediaWiki :",
        "config-mysql-charset": "Jeu de caractères de la base de données :",
        "config-mysql-binary": "Binaire",
        "config-mysql-utf8": "UTF-8",
-       "config-mysql-charset-help": "En ''mode binaire'', MediaWiki stocke le texte au format UTF-8 dans la base de données dans des champs binaires.\nC'est plus efficace que le ''UTF-8 mode'' de MySQL, et vous permet d'utiliser toute la gamme des caractères Unicode.\n\nEn ''mode UTF-8'', MySQL reconnaîtra le jeu de caractères dans lequel sont vos données et pourra les présenter et les convertir de manière appropriée, mais il ne vous laissera pas stocker les caractères au-dessus du [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes plan multilingue de base] (en anglais).",
+       "config-mysql-charset-help": "En ''mode binaire'', MediaWiki stocke le texte au format UTF-8 dans la base de données dans des champs binaires.\nC'est plus efficace que le ''UTF-8 mode'' de MySQL, et vous permet d'utiliser toute la gamme des caractères Unicode.\n\nEn ''mode UTF-8'', MySQL reconnaîtra le jeu de caractères dans lequel sont vos données et pourra les présenter et les convertir de manière appropriée, mais il ne vous laissera pas stocker les caractères au-dessus du [https://en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes plan multilingue de base] (en anglais).",
        "config-mssql-auth": "Type d’authentification :",
        "config-mssql-install-auth": "Sélectionner le type d’authentification qui sera utilisé pour se connecter à la base de données pendant le processus d’installation.\nSi vous sélectionnez « {{int:config-mssql-windowsauth}} », les informations d’identification de l’utilisateur faisant tourner le serveur seront utilisées.",
        "config-mssql-web-auth": "Sélectionner le type d’authentification que le serveur web utilisera pour se connecter au serveur de base de données lors des opérations habituelles du wiki.\nSi vous sélectionnez « {{int:config-mssql-windowsauth}} », les informations d’identification de l’utilisateur sous lequel tourne le serveur web seront utilisées.",
        "config-profile-no-anon": "Création de compte requise",
        "config-profile-fishbowl": "Éditeurs autorisés seulement",
        "config-profile-private": "Wiki privé",
-       "config-profile-help": "Les wikis fonctionnent mieux lorsque vous laissez le plus de personnes possible les modifier.\nAvec MediaWiki, il est facile de vérifier les modifications récentes et de révoquer tout dommage créé par des utilisateurs débutants ou mal intentionnés.\n\nCependant, de nombreuses autres utilisations ont été trouvées au logiciel et il n’est pas toujours facile de convaincre tout le monde des bénéfices de l’esprit wiki.\nVous avez donc le choix.\n\nLe modèle '''{{int:config-profile-wiki}}''' autorise toute personne à modifier, y compris sans s’identifier.\n'''{{int:config-profile-no-anon}}''' fournit plus de contrôle, mais peut rebuter les contributeurs occasionnels.\n\n'''{{int:config-profile-fishbowl}}''' autorise la modification par les utilisateurs approuvés, mais le public peut toujours lire les pages et leur historique.\n'''{{int:config-profile-private}}''' n’autorise que les utilisateurs approuvés à voir les pages dans le même groupe que les utilisateurs autorisés à y écrire.\n\nDes configurations de droits d’utilisateurs plus complexes sont disponibles après l'installation, voir la [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights page correspondante du manuel].",
+       "config-profile-help": "Les wikis fonctionnent au mieux lorsque vous laissez un maximum de personnes les modifier.\nAvec MediaWiki, il est facile de vérifier les modifications récentes et de révoquer tout dommage créé par des utilisateurs débutants ou mal intentionnés.\n\nCependant, MediaWiki est utilisé dans bien d'autres cas et il n’est pas toujours facile de convaincre chacun des bénéfices de l’esprit wiki.\nVous avez donc le choix.\n\nLe modèle <strong>{{int:config-profile-wiki}}</strong> autorise toute personne à modifier, y compris sans s’identifier.\n<strong>{{int:config-profile-no-anon}}</strong> fournit plus de contrôle, mais peut rebuter les contributeurs occasionnels.\n\n<strong>{{int:config-profile-fishbowl}}</strong> autorise la modification par les utilisateurs approuvés mais le public peut toujours consulter les pages et leur historique.\n<strong>{{int:config-profile-private}}</strong> n’autorise que les utilisateurs approuvés à voir et éditer les pages.\n\nDes configurations de droits d’utilisateurs plus complexes sont disponibles après l'installation, voir la [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights page correspondante du manuel].",
        "config-license": "Droits d'auteur et licence :",
        "config-license-none": "Aucune licence en bas de page",
        "config-license-cc-by-sa": "Creative Commons attribution partage à l'identique",
        "config-email-sender-help": "Entrez l'adresse de courriel à utiliser comme adresse de retour des courriels sortant.\nLes courriels rejetés y seront envoyés.\nDe nombreux serveurs de courriels exigent au moins un [http://fr.wikipedia.org/wiki/Nom_de_domaine nom de domaine] valide.",
        "config-upload-settings": "Téléchargement des images et des fichiers",
        "config-upload-enable": "Activer le téléchargement des fichiers",
-       "config-upload-help": "Le téléchargement des fichiers expose votre serveur à des risques de sécurité.\nPour plus d'informations, lire la section [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security ''Security''] du manuel d'installation (en anglais).\n\nPour autoriser le téléchargement des fichiers, modifier le mode du sous-répertoire <code>images</code> qui se situe sous le répertoire racine de MediaWiki de sorte à ce que le serveur web puisse écrire dedans.\nEnsuite, activez cette option.",
+       "config-upload-help": "Le téléversement de fichiers expose votre serveur à des risques de sécurité.\nPour plus d'informations, lire la section [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security ''Security''] du manuel d'installation (en anglais).\n\nPour autoriser le téléversement de fichiers, modifier les permissions du sous-répertoire <code>images</code> qui se situe sous le répertoire racine de MediaWiki de sorte à ce que le serveur web puisse écrire dedans.\nEnsuite, activez cette option.",
        "config-upload-deleted": "Répertoire pour les fichiers supprimés :",
        "config-upload-deleted-help": "Choisissez un répertoire qui servira à archiver les fichiers supprimés.\nIdéalement, il ne devrait pas être accessible depuis le web.",
        "config-logo": "URL du logo :",
        "config-logo-help": "L’habillage par défaut de MediaWiki comprend l’espace pour un logo de 135x160 pixels au-dessus de la barre de menu latérale.\nTéléchargez une image de la taille appropriée, et entrez son URL ici.\n\nVous pouvez utiliser <code>$wgStylePath</code> ou <code>$wgScriptPath</code> si votre logo est relatif à ces chemins.\n\nSi vous ne voulez pas de logo, laissez cette case vide.",
        "config-instantcommons": "Activer ''InstantCommons''",
-       "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons InstantCommons] est un service qui permet d'utiliser les images, les sons et les autres médias disponibles sur le site [//commons.wikimedia.org/ Wikimedia Commons].\nPour se faire, il faut que MediaWiki accède à Internet.\n\nPour plus d'informations sur ce service, y compris les instructions sur la façon de le configurer pour d'autres wikis que Wikimedia Commons, consultez le [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos manuel] (en anglais).",
+       "config-instantcommons-help": "[https://www.mediawiki.org/wiki/InstantCommons/fr InstantCommons] est un service qui permet d’utiliser les images, les sons et les autres médias disponibles sur le site [https://meta.wikimedia.org/wiki/Wikimedia_Commons/fr Wikimédia Commons].\nPour ce faire, il faut que MediaWiki accède à Internet.\n\nPour plus d’informations sur ce service, y compris les instructions sur la façon de le configurer pour d’autres wikis que Wikimedia Commons, consultez le [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos manuel].",
        "config-cc-error": "Le sélection d'une licence ''Creative Commons'' n'a donné aucun résultat.\nEntrez le nom de la licence manuellement.",
        "config-cc-again": "Choisissez à nouveau...",
        "config-cc-not-chosen": "Choisissez la licence ''Creative Commons'' que vous désirez et cliquez sur « proceed ».",
        "config-install-extension-tables": "Création de tables pour les extensions activées",
        "config-install-mainpage-failed": "Impossible d’insérer la page principale : $1",
        "config-install-done": "<strong>Félicitations!</strong>\nVous avez installé MediaWiki.\n\nLe programme d'installation a généré un fichier <code>LocalSettings.php</code>. Il contient tous les paramètres de votre configuration.\n\nVous devrez le télécharger et le mettre à la racine de votre installation wiki (dans le même répertoire que index.php). Le téléchargement devrait démarrer automatiquement.\n\nSi le téléchargement n'a pas été proposé, ou que vous l'avez annulé, vous pouvez redémarrer le téléchargement en cliquant ce lien :\n\n$3\n\n<strong>Note :</strong> Si vous ne le faites pas maintenant, ce fichier de configuration généré ne sera pas disponible plus tard si vous quittez l'installation sans le télécharger.\n\nLorsque c'est fait, vous pouvez <strong>[$2 accéder à votre wiki]</strong> .",
+       "config-install-done-path": "<strong>Félicitations !</strong>\nVous avez installé MédiaWiki.\n\nL’installeur a généré un fichier <code>LocalSettings.php</code>.\nIl contient toute votre configuration.\n\nVous devez le télécharger et le mettre dans <code>$4</code>. Le téléchargement devrait avoir démarré automatiquement.\n\nSi le téléchargement n’a pas été proposé ou si vous l’avez annulé, vous pouvez le redémarrer en cliquant sur le lien ci-dessous :\n\n$3\n\n<strong>Note :</strong> Si vous ne le faites pas maintenant, ce fichier de configuration généré ne sera plus disponible ultérieurement si vous quittez l’installation sans le télécharger.\n\nUne fois ceci fait, vous pouvez <strong>[$2 entrer dans votre wiki]</strong>.",
        "config-download-localsettings": "Télécharger <code>LocalSettings.php</code>",
        "config-help": "aide",
        "config-help-tooltip": "cliquer pour agrandir",
        "config-nofile": "Le fichier « $1 » est introuvable. A-t-il été supprimé ?",
-       "config-extension-link": "Saviez-vous que votre wiki supporte [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions des extensions] ?\n\nVous pouvez consulter les [//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category extensions par catégorie].",
+       "config-extension-link": "Saviez-vous que votre wiki supporte [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions des extensions] ?\n\nVous pouvez consulter les [https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category extensions par catégorie] ou la [https://www.mediawiki.org/wiki/Extension_Matrix matrice des extensions] pour voir la liste complète des extensions.",
        "mainpagetext": "<strong>MediaWiki a été installé.</strong>",
-       "mainpagedocfooter": "Consultez le [//meta.wikimedia.org/wiki/Help:Contents/fr Guide de l’utilisateur] pour plus d’informations sur l’utilisation de ce logiciel de wiki.\n\n== Pour démarrer ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Liste des paramètres de configuration]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/fr Questions courantes sur MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Liste de discussion sur les distributions de MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Adaptez MediaWiki dans votre langue]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Apprendre comment lutter contre le pourriel dans votre wiki]"
+       "mainpagedocfooter": "Consultez le [https://meta.wikimedia.org/wiki/Help:Contents/fr Guide de l’utilisateur] pour plus d’informations sur l’utilisation de ce logiciel de wiki.\n\n== Pour démarrer ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Liste des paramètres de configuration]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/fr Questions courantes sur MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Liste de discussion sur les distributions de MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Adaptez MediaWiki dans votre langue]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Apprendre comment lutter contre le pourriel dans votre wiki]"
 }
index c78c15e..d07b2e9 100644 (file)
        "config-db-wiki-account": "Compte d'useur pour le fonctionnement normal",
        "config-db-wiki-help": "Entrez le nom d'useur et le mot de passe qui seront usés pour se connecter à la base de données pendant le fonctionnement normal du wiki.\nSi le compte existe pas, et le compte d'installation dispose de privilèges suffisants, ce compte d'useur sera créé avec les privilèges minimum requis pour faire fonctionner le wiki.",
        "config-db-prefix": "Préfixe des tables de la base de données:",
-       "config-db-charset": "Ensemble de caractères de la base de données",
-       "config-charset-mysql5-binary": "binaire MySQL 4.1/5.0",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "MySQL 4.0 rétrocompatible UTF-8",
        "config-oracle-def-ts": "Espace de stockage (''tablespace'') par défaut:",
        "config-oracle-temp-ts": "Espace de stockage (''tablespace'') temporaire:",
        "config-type-mysql": "MySQL (ou compatible)",
@@ -79,5 +75,5 @@
        "config-help": "aide",
        "config-help-tooltip": "cliquer pour agrandir",
        "mainpagetext": "'''Vous avez bien installé MediaWiki.'''",
-       "mainpagedocfooter": "Lisez la [//meta.wikimedia.org/wiki/Help:Contents Guide des Useurs] pour apprendre à user le wiki software.\n\n== Pour Commencer ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Réglage]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki: Questions Souvent Posées]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki Liste à Malle]"
+       "mainpagedocfooter": "Lisez la [https://meta.wikimedia.org/wiki/Help:Contents Guide des Useurs] pour apprendre à user le wiki software.\n\n== Pour Commencer ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Réglage]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki: Questions Souvent Posées]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki Liste à Malle]"
 }
index fe0999f..5a2edf9 100644 (file)
@@ -29,7 +29,6 @@
        "config-page-upgradedoc": "Misa a jorn",
        "config-page-existingwiki": "Vouiqui ègzistent",
        "config-env-php": "PHP $1 est enstalâ.",
-       "config-env-php-toolow": "PHP $1 est enstalâ.\nPortant, MediaWiki at fôta de PHP $2 ou ben ples hôt.",
        "config-memory-raised": "Lo paramètre <code>memory_limit</code> de PHP ére a $1, portâ a $2.",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] est enstalâ",
        "config-apc": "[http://www.php.net/apc APC] est enstalâ",
        "config-db-password": "Contresegno de la bâsa de balyês :",
        "config-db-wiki-account": "Compto usanciér por l’opèracion normala",
        "config-db-prefix": "Prèfixo de les trâbles de la bâsa de balyês :",
-       "config-db-charset": "Juè de caractèros de la bâsa de balyês",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 binèro",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "MySQL 4.0 rètrocompatiblo UTF-8",
        "config-mysql-old": "MySQL $1 ou ben ples novél est nècèssèro, vos avéd $2.",
        "config-db-port": "Pôrt de la bâsa de balyês :",
        "config-db-schema": "Plan por MediaWiki",
        "config-download-localsettings": "Tèlèchargiér <code>LocalSettings.php</code>",
        "config-help": "éde",
        "mainpagetext": "'''MediaWiki at étâ enstalâ avouéc reusséta.'''",
-       "mainpagedocfooter": "Vêde lo [//meta.wikimedia.org/wiki/Aide:Contenu guido d’usanciér] por més d’enformacions sur l’usâjo de la programeria vouiqui.\n\n== Emmodar avouéc MediaWiki ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista des paramètres de configuracion]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/fr FDQ sur MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de discussion sur les distribucions de MediaWiki]"
+       "mainpagedocfooter": "Vêde lo [https://meta.wikimedia.org/wiki/Aide:Contenu guido d’usanciér] por més d’enformacions sur l’usâjo de la programeria vouiqui.\n\n== Emmodar avouéc MediaWiki ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista des paramètres de configuracion]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/fr FDQ sur MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de discussion sur les distribucions de MediaWiki]"
 }
index b5d7d26..95ccf54 100644 (file)
@@ -6,5 +6,5 @@
                ]
        },
        "mainpagetext": "'''Det instaliarin faan MediaWiki hää loket.'''",
-       "mainpagedocfooter": "Consult the [//meta.wikimedia.org/wiki/Help:Contents User's Guide] for information on using the wiki software.\n\n== Getting started ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
+       "mainpagedocfooter": "Consult the [https://meta.wikimedia.org/wiki/Help:Contents User's Guide] for information on using the wiki software.\n\n== Getting started ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
 }
index f84063b..bb4fdfc 100644 (file)
@@ -2,7 +2,8 @@
        "@metadata": {
                "authors": [
                        "Seb35",
-                       "Robin0van0der0vliet"
+                       "Robin0van0der0vliet",
+                       "Robin van der Vliet"
                ]
        },
        "config-information": "Ynformaasje",
@@ -16,5 +17,5 @@
        "config-admin-email": "E-mailadres:",
        "config-help": "help",
        "mainpagetext": "'''MediaWiki-program goed ynstallearre.'''",
-       "mainpagedocfooter": "Rieplachtsje de [//meta.wikimedia.org/wiki/Help:Contents Ynhâldsopjefte hantlieding] foar ynformaasje oer it gebrûk fan 'e wikisoftware.\n\n== Mear help oer Mediawiki ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings List mei ynstellingen]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Faak stelde fragen (FAQ)]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailinglist foar oankundigings fan nije ferzjes]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
+       "mainpagedocfooter": "Rieplachtsje de [https://meta.wikimedia.org/wiki/Help:Contents Ynhâldsopjefte hantlieding] foar ynformaasje oer it gebrûk fan 'e wikisoftware.\n\n== Mear help oer Mediawiki ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings List mei ynstellingen]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Faak stelde fragen (FAQ)]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailinglist foar oankundigings fan nije ferzjes]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
 }
index 0d075e5..46fbf3f 100644 (file)
@@ -9,5 +9,5 @@
        "config-admin-password": "D'fhocal faire:",
        "config-help": "Cuidiú",
        "mainpagetext": "'''D'éirigh le suiteáil MediaWiki.'''",
-       "mainpagedocfooter": "Féach ar [//meta.wikimedia.org/wiki/MediaWiki_localisation doiciméid um conas an chomhéadán a athrú]\nagus an [//meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide Lámhleabhar úsáideora] chun cabhair úsáide agus fíoraíochta a fháil."
+       "mainpagedocfooter": "Féach ar [https://meta.wikimedia.org/wiki/MediaWiki_localisation doiciméid um conas an chomhéadán a athrú]\nagus an [https://meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide Lámhleabhar úsáideora] chun cabhair úsáide agus fíoraíochta a fháil."
 }
index 1db31e9..102865c 100644 (file)
@@ -1,5 +1,5 @@
 {
        "@metadata": [],
        "mainpagetext": "'''MediaWiki başarılan kuruldu.'''",
-       "mainpagedocfooter": "Vikilän iş uurunda bilgi almaa için [//meta.wikimedia.org/wiki/Help:Contents User's Guide] sayfasına bakınız\n\n== Eni başlayanlar için ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
+       "mainpagedocfooter": "Vikilän iş uurunda bilgi almaa için [https://meta.wikimedia.org/wiki/Help:Contents User's Guide] sayfasına bakınız\n\n== Eni başlayanlar için ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
 }
index a798772..0faa7ee 100644 (file)
@@ -1,5 +1,5 @@
 {
        "@metadata": [],
        "mainpagetext": "'''安装正MediaWiki喽。'''",
-       "mainpagedocfooter": "参看[//meta.wikimedia.org/wiki/Help:Contents 用户指南]里头会话到啷用wiki软件\n\n== 开始使用 ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings MediaWiki 配置设定列表]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki 平常问题解答]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki 发布email清单]"
+       "mainpagedocfooter": "参看[https://meta.wikimedia.org/wiki/Help:Contents 用户指南]里头会话到啷用wiki软件\n\n== 开始使用 ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings MediaWiki 配置设定列表]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki 平常问题解答]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki 发布email清单]"
 }
index 87f1df5..7103eee 100644 (file)
@@ -5,5 +5,5 @@
                ]
        },
        "mainpagetext": "'''安裝正MediaWiki哩。'''",
-       "mainpagedocfooter": "參看[//meta.wikimedia.org/wiki/Help:Contents 用戶指南]裡頭會話到啷用wiki軟件\n\n== 開始使用 ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings MediaWiki 配置設定列表]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki 平常問題解答]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki 發佈email清單]"
+       "mainpagedocfooter": "參看[https://meta.wikimedia.org/wiki/Help:Contents 用戶指南]裡頭會話到啷用wiki軟件\n\n== 開始使用 ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings MediaWiki 配置設定列表]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki 平常問題解答]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki 發佈email清單]"
 }
index 1a01d1f..95f4fb2 100644 (file)
@@ -5,5 +5,5 @@
                ]
        },
        "mainpagetext": "'''Chaidh MediaWiki a stàladh gu soirbheachail.'''",
-       "mainpagedocfooter": "Cuir sùil air [//meta.wikimedia.org/wiki/Help:Contents treòir nan cleachdaichean] airson fiosrachadh mu chleachdadh a' bhathar-bhog wiki.\n\n== Toiseach tòiseachaidh ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Liosta suidheachadh nan roghainnean]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ CÀBHA MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Liosta puist nan sgaoilidhean MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Cuir do chànan air MediaWiki]"
+       "mainpagedocfooter": "Cuir sùil air [https://meta.wikimedia.org/wiki/Help:Contents treòir nan cleachdaichean] airson fiosrachadh mu chleachdadh a' bhathar-bhog wiki.\n\n== Toiseach tòiseachaidh ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Liosta suidheachadh nan roghainnean]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ CÀBHA MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Liosta puist nan sgaoilidhean MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Cuir do chànan air MediaWiki]"
 }
index a1e9730..d57e19f 100644 (file)
        "config-restart": "Si, reiniciala",
        "config-welcome": "=== Comprobación da contorna ===\nCómpre realizar agora unhas comprobacións básicas para ver se a contorna é axeitada para a instalación de MediaWiki.\nLembre incluír esta información se necesita axuda para completar a instalación.",
        "config-copyright": "=== Dereitos de autor e termos de uso ===\n\n$1\n\nEste programa é software libre; pode redistribuílo e/ou modificalo segundo os termos da licenza pública xeral GNU publicada pola Free Software Foundation; versión 2 ou (na súa escolla) calquera outra posterior.\n\nEste programa distribúese coa esperanza de que poida ser útil, pero <strong>sen garantía ningunha</strong>; nin sequera a garantía implícita de <strong>comercialización</strong> ou <strong>adecuación a unha finalidade específica</strong>.\nOlle a licenza pública xeral GNU para obter máis detalles.\n\nDebería recibir <doclink href=Copying>unha copia da licenza pública xeral GNU</doclink> xunto ao programa; se non é así, escriba á Free Software Foundation, Inc., rúa Franklin, número 51, quinto andar, Boston, Massachusetts, 02110-1301, Estados Unidos de América ou [http://www.gnu.org/copyleft/gpl.html lea a licenza en liña].",
-       "config-sidebar": "* [//www.mediawiki.org/wiki/MediaWiki/gl Páxina principal de MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Guía de usuario]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Guía de administrador]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Preguntas máis frecuentes]\n----\n* <doclink href=Readme>Léame</doclink>\n* <doclink href=ReleaseNotes>Notas de lanzamento</doclink>\n* <doclink href=Copying>Copia</doclink>\n* <doclink href=UpgradeDoc>Actualizacións</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org/wiki/MediaWiki/gl Páxina principal de MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Guía de usuario]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Guía de administrador]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Preguntas máis frecuentes]\n----\n* <doclink href=Readme>Léame</doclink>\n* <doclink href=ReleaseNotes>Notas de lanzamento</doclink>\n* <doclink href=Copying>Copia</doclink>\n* <doclink href=UpgradeDoc>Actualizacións</doclink>",
        "config-env-good": "Rematou a comprobación da contorna.\nPode instalar MediaWiki.",
        "config-env-bad": "Rematou a comprobación da contorna.\nNon pode instalar MediaWiki.",
        "config-env-php": "Está instalado o PHP $1.",
        "config-env-hhvm": "Está instalado o HHVM $1.",
        "config-unicode-using-intl": "Usando a [http://pecl.php.net/intl extensión intl PECL] para a normalización Unicode.",
-       "config-unicode-pure-php-warning": "<strong>Atención:</strong> A [http://pecl.php.net/intl extensión intl PECL] non está dispoñible para manexar a normalización Unicode; volvendo á execución lenta de PHP puro.\nSe o seu sitio posúe un alto tráfico de visitantes, debería ler un chisco sobre a [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalización Unicode].",
-       "config-unicode-update-warning": "<strong>Atención:</strong> A versión instalada da envoltura de normalización Unicode emprega unha versión vella da biblioteca [http://site.icu-project.org/ do proxecto ICU].\nDebería [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations actualizar] se o uso de Unicode é importante para vostede.",
+       "config-unicode-pure-php-warning": "<strong>Atención:</strong> A [http://pecl.php.net/intl extensión intl PECL] non está dispoñible para manexar a normalización Unicode; volvendo á execución lenta de PHP puro.\nSe o seu sitio posúe un alto tráfico de visitantes, debería ler un chisco sobre a [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalización Unicode].",
+       "config-unicode-update-warning": "<strong>Atención:</strong> A versión instalada da envoltura de normalización Unicode emprega unha versión vella da biblioteca [http://site.icu-project.org/ do proxecto ICU].\nDebería [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations actualizar] se o uso de Unicode é importante para vostede.",
        "config-no-db": "Non se puido atopar un controlador axeitado para a base de datos! Necesita instalar un controlador de base de datos para PHP.\n{{PLURAL:$2|Acéptase o seguinte tipo|Acéptanse os seguintes tipos}} de base de datos: $1.\n\nSe compilou o PHP vostede mesmo, reconfigúreo activando un cliente de base de datos, por exemplo, usando <code>./configure --with-mysql</code>.\nSe instalou o PHP desde un paquete Debian ou Ubuntu, entón tamén necesita instalar, por exemplo, o módulo <code>php5-mysql</code>.",
        "config-outdated-sqlite": "<strong>Atención:</strong> Ten o SQLite $1, que é inferior á versión mínima necesaria: $2. O SQLite non estará dispoñible.",
        "config-no-fts3": "<strong>Atención:</strong> O SQLite está compilado sen o [//sqlite.org/fts3.html módulo FTS3]; as características de procura non estarán dispoñibles nesta instalación.",
-       "config-mbstring": "<strong>Erro fatal: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] está activado!</strong>\nEsta opción causa erros e pode corromper os datos de xeito imprevisible.\nNon pode instalar ou empregar MediaWiki a menos que esta opción estea desactivada.",
-       "config-xml-bad": "Falta o módulo XML do PHP.\nMediaWiki necesita funcións neste módulo e non funcionará con esta configuración.\nPode que necesite instalar o php-xml no paquete RPM.",
        "config-pcre-old": "<strong>Erro fatal:</strong> Necesítase PCRE $1 ou posterior.\nO seu PHP binario está ligado con PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Máis información].",
        "config-pcre-no-utf8": "<strong>Erro fatal:</strong> Semella que o módulo PCRE do PHP foi compilado sen o soporte PCRE_UTF8.\nMediaWiki necesita soporte UTF-8 para funcionar correctamente.",
        "config-memory-raised": "O parámetro <code>memory_limit</code> do PHP é $1. Aumentado a $2.",
        "config-memory-bad": "<strong>Atención:<strong> O parámetro <code>memory_limit</code> do PHP é $1.\nProbablemente é un valor baixo de máis.\nA instalación pode fallar!",
-       "config-ctype": "<strong>Erro fatal:</strong> O PHP debe compilarse co soporte para a [http://www.php.net/manual/en/ctype.installation.php extensión Ctype].",
-       "config-iconv": "<strong>Erro fatal:</strong> O PHP debe compilarse co soporte para a [http://www.php.net/manual/en/iconv.installation.php extensión iconv].",
-       "config-json": "<strong>Erro fatal:</strong> O PHP compilouse sen o soporte de JSON.\nDebe instalar ben a extensión JSON do PHP ou a extensión [http://pecl.php.net/package/jsonc PECL jsonc] antes de instalar MediaWiki.\n* A extensión do PHP está incluída en Red Hat Enterprise Linux (CentOS) 5 e 6, mais debe activarse <code>/etc/php.ini</code> ou <code>/etc/php.d/json.ini</code>.\n* Algunhas distribucións do Linux lanzadas despois de maio de 2013 omiten a extensión do PHP, pero inclúen a extensión PECL como <code>php5-json</code> ou <code>php-pecl-jsonc</code>.",
-       "config-mbstring-absent": "<strong>Erro fatal:</strong> O PHP debe compilarse co soporte para a [http://www.php.net/manual/en/mbstring.setup.php extensión mbstring].",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] está instalado",
        "config-apc": "[http://www.php.net/apc APC] está instalado",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] está instalado",
@@ -82,7 +76,7 @@
        "config-no-cli-uri": "<strong>Atención:</strong> Non se especificou ningún <code>--scriptpath</code>; por defecto, usarase: <code>$1</code>.",
        "config-using-server": "Usando o nome do servidor \"<nowiki>$1</nowiki>\".",
        "config-using-uri": "Usando o URL do servidor \"<nowiki>$1$2</nowiki>\".",
-       "config-uploads-not-safe": "<strong>Atención:</strong> O seu directorio por defecto para as cargas, <code>$1</code>, é vulnerable a execucións arbitrarias de escrituras.\nAínda que MediaWiki comproba todos os ficheiros cargados por se houbese ameazas de seguridade, é amplamente recomendable [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security pechar esta vulnerabilidade de seguridade] antes de activar as cargas.",
+       "config-uploads-not-safe": "<strong>Atención:</strong> O seu directorio por defecto para as cargas, <code>$1</code>, é vulnerable a execucións arbitrarias de escrituras.\nAínda que MediaWiki comproba todos os ficheiros cargados por se houbese ameazas de seguridade, é amplamente recomendable [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security pechar esta vulnerabilidade de seguridade] antes de activar as cargas.",
        "config-no-cli-uploads-check": "<strong>Atención:</strong> Durante a instalación CLI, o seu directorio por defecto para as cargas, <code>$1</code>, non se comproba fronte a posibles vulnerabilidades de execucións arbitrarias de escrituras.",
        "config-brokenlibxml": "O seu sistema ten unha combinación de versións de PHP e libxml2 que pode ser problemático e causar corrupción de datos en MediaWiki e outras aplicacións web.\nActualice o sistema á versión 2.7.3 ou posterior de libxml2 ([https://bugs.php.net/bug.php?id=45996 erro presentado co PHP]).\nInstalación abortada.",
        "config-suhosin-max-value-length": "Suhosin está instalado e limita o parámetro GET <code>length</code> a $1 bytes.\nO compoñente ResourceLoader (xestor de recursos) de MediaWiki traballa neste límite, pero este prexudica o rendemento.\nSe é posible, debería establecer <code>suhosin.get.max_value_length</code> no valor 1024 ou superior en <code>php.ini</code> e establecer <code>$wgResourceLoaderMaxQueryLength</code> no mesmo valor en <code>LocalSettings.php</code>.",
        "config-db-wiki-help": "Introduza o nome de usuario e mais o contrasinal que se usarán para conectar á base de datos durante o funcionamento habitual do wiki.\nSe a conta non existe e a conta de instalación ten privilexios suficientes, esa conta de usuario será creada cos privilexios mínimos necesarios para o funcionamento do wiki.",
        "config-db-prefix": "Prefixo das táboas da base de datos:",
        "config-db-prefix-help": "Se necesita compartir unha base de datos entre varios wikis ou entre MediaWiki e outra aplicación web, pode optar por engadir un prefixo a todos os nomes da táboa para evitar conflitos.\nNon utilice espazos.\n\nO normal é que este campo quede baleiro.",
-       "config-db-charset": "Conxunto de caracteres da base de datos",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 binario",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "MySQL 4.0 retrocompatible UTF-8",
-       "config-charset-help": "<strong>Atención:</strong> Se emprega <strong>backwards-compatible UTF-8</strong> no MySQL 4.1+ e posteriormente realiza unha copia de seguridade da base de datos con <code>mysqldump</code>, pode destruír todos os caracteres que non sexan ASCII, corrompendo de xeito irreversible as súas copias!\n\nNo <strong>modo binario</strong>, MediaWiki almacena texto UTF-8 na base de datos en campos binarios.\nIsto é máis eficaz ca o modo UTF-8 de MySQL e permítelle usar o rango completo de caracteres Unicode.\nNo <strong>modo UTF-8</strong>, MySQL saberá o xogo de caracteres dos seus datos e pode presentar e converter os datos de maneira axeitada,\npero non lle deixará gardar caracteres por riba do [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes plan multilingüe básico].",
        "config-mysql-old": "Necesítase MySQL $1 ou posterior. Vostede ten a versión $2.",
        "config-db-port": "Porto da base de datos:",
        "config-db-schema": "Esquema para MediaWiki",
        "config-mysql-charset": "Conxunto de caracteres da base de datos:",
        "config-mysql-binary": "Binario",
        "config-mysql-utf8": "UTF-8",
-       "config-mysql-charset-help": "No <strong>modo binario</strong>, MediaWiki almacena texto UTF-8 na base de datos en campos binarios.\nIsto é máis eficaz ca o modo UTF-8 de MySQL e permítelle usar o rango completo de caracteres Unicode.\n\nNo <strong>modo UTF-8</strong>, MySQL saberá o xogo de caracteres dos seus datos e pode presentar e converter os datos de maneira axeitada,\npero non lle deixará gardar caracteres por riba do [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes plan multilingüe básico].",
+       "config-mysql-charset-help": "No <strong>modo binario</strong>, MediaWiki almacena texto UTF-8 na base de datos en campos binarios.\nIsto é máis eficaz ca o modo UTF-8 de MySQL e permítelle usar o rango completo de caracteres Unicode.\n\nNo <strong>modo UTF-8</strong>, MySQL saberá o xogo de caracteres dos seus datos e pode presentar e converter os datos de maneira axeitada,\npero non lle deixará gardar caracteres por riba do [https://en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes plan multilingüe básico].",
        "config-mssql-auth": "Tipo de autenticación:",
        "config-mssql-install-auth": "Seleccione o tipo de autenticación que se utilizará para conectarse á base de datos durante o proceso de instalación.\nSe selecciona \"{{int:config-mssql-windowsauth}}\", usaranse as credenciais do usuario co que se está a executar o servidor web.",
        "config-mssql-web-auth": "Seleccione o tipo de autenticación que utilizará o servidor web para conectarse ao servidor da base de datos durante o funcionamiento normal do wiki.\nSe selecciona \"{{int:config-mssql-windowsauth}}\", usaranse as credenciais do usuario co que se está a executar o servidor web.",
        "config-profile-no-anon": "Necesítase a creación dunha conta",
        "config-profile-fishbowl": "Só os editores autorizados",
        "config-profile-private": "Wiki privado",
-       "config-profile-help": "Os wikis funcionan mellor canta máis xente os edite.\nEn MediaWiki, é doado revisar os cambios recentes e reverter calquera dano feito por usuarios novatos ou con malas intencións.\nPorén, moita xente atopa MediaWiki útil nunha ampla variedade de papeis, e ás veces non é fácil convencer a todos dos beneficios que leva consigo o estilo wiki.\nVostede decide.\n\nO modelo <strong>{{int:config-profile-wiki}}</strong> permite a edición por parte de calquera, mesmo sen rexistro.\nA opción <strong>{{int:config-profile-no-anon}}</strong> proporciona un control maior, pero pode desalentar os colaboradores casuais.\n\nO escenario <strong>{{int:config-profile-fishbowl}}</strong> restrinxe a edición aos usuarios aprobados, pero o público pode ollar as páxinas, incluíndo os historiais.\nO tipo <strong>{{int:config-profile-private}}</strong> só deixa que os usuarios aprobados vexan e editen as páxinas.\n\nHai dispoñibles configuracións de dereitos de usuario máis complexas despois da instalación; bótelle un ollo a [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights esta entrada no manual].",
+       "config-profile-help": "Os wikis funcionan mellor canta máis xente os edite.\nEn MediaWiki, é doado revisar os cambios recentes e reverter calquera dano feito por usuarios novatos ou con malas intencións.\nPorén, moita xente atopa MediaWiki útil nunha ampla variedade de papeis, e ás veces non é fácil convencer a todos dos beneficios que leva consigo o estilo wiki.\nVostede decide.\n\nO modelo <strong>{{int:config-profile-wiki}}</strong> permite a edición por parte de calquera, mesmo sen rexistro.\nA opción <strong>{{int:config-profile-no-anon}}</strong> proporciona un control maior, pero pode desalentar os colaboradores casuais.\n\nO escenario <strong>{{int:config-profile-fishbowl}}</strong> restrinxe a edición aos usuarios aprobados, pero o público pode ollar as páxinas, incluíndo os historiais.\nO tipo <strong>{{int:config-profile-private}}</strong> só deixa que os usuarios aprobados vexan e editen as páxinas.\n\nHai dispoñibles configuracións de dereitos de usuario máis complexas despois da instalación; bótelle un ollo a [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights esta entrada no manual].",
        "config-license": "Dereitos de autoría e licenza:",
        "config-license-none": "Sen licenza ao pé",
        "config-license-cc-by-sa": "Creative Commons recoñecemento compartir igual",
        "config-email-sender-help": "Introduza o enderezo de correo electrónico a usar como enderezo de retorno dos correos de saída.\nAquí é onde irán parar os correos rexeitados.\nMoitos servidores de correo electrónico esixen que polo menos a parte do nome de dominio sexa válido.",
        "config-upload-settings": "Imaxes e carga de ficheiros",
        "config-upload-enable": "Activar a carga de ficheiros",
-       "config-upload-help": "A subida de ficheiros expón potencialmente o servidor a riscos de seguridade.\nPara obter máis información, lea a [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security sección de seguridade] no manual.\n\nPara activar a carga de ficheiros, cambie o modo no subdirectorio <code>images</code> que está baixo o directorio raíz de MediaWiki, de xeito que o servidor web poida escribir nel.\nA continuación, active esta opción.",
+       "config-upload-help": "A subida de ficheiros expón potencialmente o servidor a riscos de seguridade.\nPara obter máis información, lea a [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security sección de seguridade] no manual.\n\nPara activar a carga de ficheiros, cambie o modo no subdirectorio <code>images</code> que está baixo o directorio raíz de MediaWiki, de xeito que o servidor web poida escribir nel.\nA continuación, active esta opción.",
        "config-upload-deleted": "Directorio para os ficheiros borrados:",
        "config-upload-deleted-help": "Escolla un directorio no que arquivar os ficheiros borrados.\nO ideal é que non sexa accesible desde a web.",
        "config-logo": "URL do logo:",
        "config-logo-help": "A aparencia de MediaWiki por defecto inclúe espazo para un logo de 135x160 píxeles por riba do menú lateral.\nCargue unha imaxe do tamaño axeitado e introduza o enderezo URL aquí.\n\nPode utilizar <code>$wgStylePath</code> ou <code>$wgScriptPath</code> se o seu logo está relacionado con esas rutas.\n\nSe non quere un logo, deixe esta caixa en branco.",
        "config-instantcommons": "Activar Instant Commons",
-       "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons InstantCommons] é unha característica que permite aos wikis usar imaxes, sons e outros ficheiros multimedia atopados no sitio da [//commons.wikimedia.org/wiki/Portada_galega Wikimedia Commons].\nPara facer isto, MediaWiki necesita acceso á internet.\n\nPara obter máis información sobre esta característica, incluíndo as instrucións sobre como configuralo para outros wikis que non sexan a Wikimedia Commons, consulte [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos o manual].",
+       "config-instantcommons-help": "[https://www.mediawiki.org/wiki/InstantCommons InstantCommons] é unha característica que permite aos wikis usar imaxes, sons e outros ficheiros multimedia atopados no sitio da [https://commons.wikimedia.org/wiki/Portada_galega Wikimedia Commons].\nPara facer isto, MediaWiki necesita acceso á internet.\n\nPara obter máis información sobre esta característica, incluíndo as instrucións sobre como configuralo para outros wikis que non sexan a Wikimedia Commons, consulte [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos o manual].",
        "config-cc-error": "A escolla da licenza Creative Commons non deu resultados.\nEscriba o nome da licenza manualmente.",
        "config-cc-again": "Escolla outra vez...",
        "config-cc-not-chosen": "Escolla a licenza Creative Commons que desexe e prema en \"proceed\".",
        "config-install-extension-tables": "Creando as táboas para as extensións activadas",
        "config-install-mainpage-failed": "Non se puido inserir a páxina principal: $1",
        "config-install-done": "<strong>Parabéns!</strong>\nInstalou MediaWiki.\n\nO programa de instalación xerou un ficheiro <code>LocalSettings.php</code>.\nEste ficheiro contén toda a súa configuración.\n\nTerá que descargalo e poñelo na base da instalación do seu wiki (no mesmo directorio ca index.php). A descarga debería comezar automaticamente.\n\nSe non comezou a descarga ou se a cancelou, pode facer que comece de novo premendo na ligazón que aparece a continuación:\n\n$3\n\n<strong>Nota:</strong> Se non fai iso agora, este ficheiro de configuración xerado non estará dispoñible máis adiante se sae da instalación sen descargalo.\n\nCando faga todo isto, xa poderá <strong>[$2 entrar no seu wiki]</strong>.",
+       "config-install-done-path": "<strong>Parabéns!</strong>\nInstalou MediaWiki.\n\nO instalador xerou un ficheiro <code>LocalSettings.php</code>.\nEste contén toda a súa configuración.\n\nDeberá descargalo e poñerlo en <code>$4</code>. A descarga debería ter comezado automaticamente.\n\nSe non comenzou a descarga, ou se a cancelou, podes reiniciala descarga premendo na seguinte ligazón:\n\n$3\n\n<strong>Nota</strong>: se non fai isto agora, este ficheiro de configuración xerado non estará dispoñible máis tarde se sae da instalación sen descargarlo.\n\nCando o teña feito, poderá <strong>[$2 entrar na súa wiki]</strong>.",
        "config-download-localsettings": "Descargar o <code>LocalSettings.php</code>",
        "config-help": "axuda",
        "config-help-tooltip": "prema para expandir",
        "config-nofile": "Non se puido atopar o ficheiro \"$1\". Se cadra, foi borrado.",
-       "config-extension-link": "Sabía que o seu wiki soporta [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions extensións]?\n\nPode explorar as [//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category extensións por categoría] ou a [//www.mediawiki.org/wiki/Extension_Matrix matriz de extensións] para ollar a lista completa de extensións.",
+       "config-extension-link": "Sabía que o seu wiki soporta [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions extensións]?\n\nPode explorar as [https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category extensións por categoría] ou a [https://www.mediawiki.org/wiki/Extension_Matrix matriz de extensións] para ollar a lista completa de extensións.",
        "mainpagetext": "<strong>Instalouse MediaWiki.</strong>",
-       "mainpagedocfooter": "Consulte a [//meta.wikimedia.org/wiki/Help:Contents guía de usuario] para obter máis información sobre como usar o software wiki.\n\n== Primeiros pasos ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista das opcións de configuración]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Preguntas máis frecuentes sobre MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de correo dos lanzamentos de MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localice MediaWiki á súa lingua]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Aprenda como combater a publicidade na súa wiki]"
+       "mainpagedocfooter": "Consulte a [https://meta.wikimedia.org/wiki/Help:Contents guía de usuario] para obter máis información sobre como usar o software wiki.\n\n== Primeiros pasos ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista das opcións de configuración]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Preguntas máis frecuentes sobre MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de correo dos lanzamentos de MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localice MediaWiki á súa lingua]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Aprenda como combater a publicidade na súa wiki]"
 }
index eb1395c..f3f5a0b 100644 (file)
@@ -5,5 +5,5 @@
                ]
        },
        "config-page-language": "Bhas",
-       "mainpagedocfooter": "Wiki software uzar korpache mahiti khatir [//meta.wikimedia.org/wiki/Help:Contents Vapurpeanchi Hath-pustok] polloi\n\n== Suru kortana ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuracaoanchi suchi]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki babtint zaite pavtti vicharlele proxn]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki che novem ank bhair sorta tedna email dhadpachi suchi]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources MediaWiki tujea bhasen toiar kor]"
+       "mainpagedocfooter": "Wiki software uzar korpache mahiti khatir [https://meta.wikimedia.org/wiki/Help:Contents Vapurpeanchi Hath-pustok] polloi\n\n== Suru kortana ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuracaoanchi suchi]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki babtint zaite pavtti vicharlele proxn]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki che novem ank bhair sorta tedna email dhadpachi suchi]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources MediaWiki tujea bhasen toiar kor]"
 }
index 44a894b..5223455 100644 (file)
@@ -7,5 +7,5 @@
        },
        "config-page-language": "Γλῶττα",
        "mainpagetext": "'''Ἡ ἐγκατάστασις τῆς MediaWiki ἦν ἐπιτυχής'''",
-       "mainpagedocfooter": "Βουλευθήσεσθε τὰς [//meta.wikimedia.org/wiki/Help:Contents βουλὰς τοῖς Χρωμένοις] ἵνα πληροφορηθῇτε περὶ τοῦ βίκιλογισμικοῦ.\n\n== Ἄρξασθε ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Διαλογή παραμέτρων διαμορφώσεως]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki: τὰ πολλάκις αἰτηθέντα]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Διαλογή διαλέξεων ἐπὶ τῶν διανομῶν τῆς MediaWiki]"
+       "mainpagedocfooter": "Βουλευθήσεσθε τὰς [https://meta.wikimedia.org/wiki/Help:Contents βουλὰς τοῖς Χρωμένοις] ἵνα πληροφορηθῇτε περὶ τοῦ βίκιλογισμικοῦ.\n\n== Ἄρξασθε ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Διαλογή παραμέτρων διαμορφώσεως]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki: τὰ πολλάκις αἰτηθέντα]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Διαλογή διαλέξεων ἐπὶ τῶν διανομῶν τῆς MediaWiki]"
 }
index f653ca2..73331d9 100644 (file)
        "config-restart": "Jo, nomol aafange",
        "config-welcome": "=== Priefig vu dr Inschtallationsumgäbig ===\nBasispriefige wäre durgfiert zum Feschtstelle, eb d Inschtallationsumgäbig fir d Inschtallation vu MediaWiki geignet isch.\nDu sottsch d Ergebnis vu däre Priefig aagee, wänn Du bi dr Inschtallation Hilf bruchsch.",
        "config-copyright": "=== Copyright un Nutzigsbedingige ===\n\n$1\n\nDes Programm isch e freji Software, d. h. s cha, no dr Bedingige vu dr GNU General Public-Lizänz, wu vu dr Free Software Foundation vereffentligt woren isch, wyterverteilt un/oder modifiziert wäre. Doderbyy cha d Version 2, oder no eigenem Ermässe, jedi nejeri Version vu dr Lizänz brucht wäre.\n\nDes Programm wird in dr Hoffnig verteilt, ass es nitzli isch, aber '''ohni jedi Garanti''' un sogar ohni di impliziert Garanti vun ere '''Märtgängigkeit''' oder '''Eignig fir e bstimmte Zwäck'''. Doderzue git meh Hiiwys in dr GNU General Public-Lizänz.\n\nE <doclink href=Copying>Kopi vu dr GNU General Public-Lizänz</doclink> sott zämme mit däm Programm verteilt wore syy. Wänn des nit eso isch, cha ne Kopi bi dr Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA, schriftli aagforderet oder [http://www.gnu.org/copyleft/gpl.html online gläse] wäre.",
-       "config-sidebar": "* [//www.mediawiki.org MediaWiki Websyte vu MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Nutzeraaleitig zue MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Adminischtratoreaaleitig zue MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Vilmol gstellti Froge zue MediaWiki]",
+       "config-sidebar": "* [https://www.mediawiki.org MediaWiki Websyte vu MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Nutzeraaleitig zue MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Adminischtratoreaaleitig zue MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Vilmol gstellti Froge zue MediaWiki]",
        "config-env-good": "D Inschtallationsumgäbig isch prieft wore.\nDu chasch MediaWiki inschtalliere.",
        "config-env-bad": "D Inschtallationsumgäbigisch prieft wore.\nDu chasch MediaWiki nit inschtalliere.",
        "config-env-php": "PHP $1 isch inschtalliert.",
-       "config-unicode-using-utf8": "Fir d Unicode-Normalisierig wird em Brion Vibber syy utf8_normalize.so yygsetzt.",
        "config-unicode-using-intl": "For d Unicode-Normalisierig wird d [http://pecl.php.net/intl PECL-Erwyterig intl] yygsetzt.",
-       "config-unicode-pure-php-warning": "'''Warnig:''' D [http://pecl.php.net/intl PECL-Erwyterig intl] isch fir d Unicode-Normalisierig nit verfiegbar. Wäge däm wird di langsam pure-PHP-Implementierig brucht.\nWänn Du ne Websyte mit ere große Bsuechrzahl bedrybsch, sottsch e weng ebis läse iber [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode-Normalisierig (en)].",
-       "config-unicode-update-warning": "'''Warnig:''' Di inschtalliert Version vum Unicode-Normalisierigswrapper verwändet e elteri Version vu dr Bibliothek vum [http://site.icu-project.org/ ICU-Projäkt].\nDu sottsch si [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations aktualisiere], wänn Dor d Verwändig vu Unicode wichtig isch.",
+       "config-unicode-pure-php-warning": "'''Warnig:''' D [http://pecl.php.net/intl PECL-Erwyterig intl] isch fir d Unicode-Normalisierig nit verfiegbar. Wäge däm wird di langsam pure-PHP-Implementierig brucht.\nWänn Du ne Websyte mit ere große Bsuechrzahl bedrybsch, sottsch e weng ebis läse iber [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode-Normalisierig (en)].",
+       "config-unicode-update-warning": "'''Warnig:''' Di inschtalliert Version vum Unicode-Normalisierigswrapper verwändet e elteri Version vu dr Bibliothek vum [http://site.icu-project.org/ ICU-Projäkt].\nDu sottsch si [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations aktualisiere], wänn Dor d Verwändig vu Unicode wichtig isch.",
        "config-no-db": "S isch kei adäquate Datebanktryyber gfunde wore!",
        "config-no-fts3": "'''Warnig:''' SQLite isch ohni s [//sqlite.org/fts3.html FTS3-Modul] kumpiliert wore, s stehn kei Suechfunktione z Verfiegig.",
-       "config-register-globals": "'''Warnig: Dr Parameter <code>[http://php.net/register_globals register_globals]</code> vu PHP isch aktiviert.'''\n'''Är sott deaktiviert wäre, wänn des megli isch.'''\nD MediaWiki-Inschtallation lauft einwäg, aber dr Server isch aafällig fi megligi Sicherheitsprobläm.",
-       "config-magic-quotes-runtime": "'''Fatal: Dr Parameter <code>[http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime]</code> vu PHP isch aktiviert!'''\nDie Yystellig fiert zue nit vorhärsähbare Probläm bi dr Datenyygab.\nMediaWiki cha nit inschtalliert wäre, solang dää Parameter nit deaktiviert woren isch.",
-       "config-magic-quotes-sybase": "'''Fatal: Dr Parameter <code>[http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase]</code> vu PHP isch aktiviert!'''\nDie Yystellig fiert zue nit vorhärsähbare Probläm bi dr Datenyygab.\nMediaWiki cha nit inschtalliert wäre, solang dää Parameter nit deaktiviert woren isch.",
-       "config-mbstring": "'''Fatal: Dr Parameter <code>[http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload]</code> vu PHP isch aktiviert!'''\nDie Yystellig verursacht Fähler un fiert zue nit vorhärsähbare Probläm bi dr Datenyygab.\nMediaWiki cha nit inschtalliert wäre, solang dää Parameter nit deaktiviert woren isch.",
-       "config-safe-mode": "'''Warnig:''' D Funktion <code>[http://www.php.net/features.safe-mode Safe Mode]</code> vu PHP isch aktiviert.\nDes cha zue Probläm fiere, vor allem wänn s Uffelade vu Dateie soll megli syy bzw. dr Uuszeichner <code>math</code> soll brucht wäre.",
-       "config-xml-bad": "S XML-Modul vu PHP fählt.\nMediaWiki brucht Funktione, wu au des Modul z Verfiegig stellt, un funktioniert in däre Konfiguration nit.\nWänn Mandriva brucht wird, mueß no s „php-xml“-Paket inschtalliert wäre.",
        "config-pcre-no-utf8": "'''Fatale Fähler: S PHP-Modul PCRE isch schyns ohni PCRE_UTF8-Unterstitzig kompiliert wore.'''\nMediaWiki brucht d UTF-8-Unterstitzi zum fählerfrej lauffähig syy.",
        "config-memory-raised": "Dr PHP-Parameter <code>memory_limit</code> lyt bi $1 un isch uf $2 uffegsetzt wore.",
        "config-memory-bad": "'''Warnig:''' Dr PHP-Parameter <code>memory_limit</code> lyt bi $1.\nDää Wärt isch wahrschyns z nider.\nDr Inschtallationsvorgang chennt wäge däm fählschlaa!",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] isch inschtalliert",
        "config-apc": "[http://www.php.net/apc APC] isch inschtalliert",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] isch inschtalliert",
-       "config-no-cache": "'''Warnig:''' [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] oder [http://www.iis.net/download/WinCacheForPhp WinCache] hän nit chenne gfunde wäre.\nS Objäktcaching isch wäge däm nit aktiviert.",
        "config-diff3-bad": "GNU diff3 isch nit gfunde wore.",
        "config-imagemagick": "ImageMagick isch gfunde wore: <code>$1</code>.\nMiniaturaasichte vu Bilder sin megli, sobald s Uffelade vu Dateie aktiviert isch.",
        "config-help": "Hilf",
        "mainpagetext": "'''MediaWiki isch erfolgrich inschtalliert worre.'''",
-       "mainpagedocfooter": "Lueg uf d [//meta.wikimedia.org/wiki/MediaWiki_localisation Dokumentation fir d Aapassig vu dr Benutzeroberflächi] un s [//meta.wikimedia.org/wiki/Help:Contents Benutzerhandbuech] fir d Hilf iber d Benutzig un s Yystelle."
+       "mainpagedocfooter": "Lueg uf d [https://meta.wikimedia.org/wiki/MediaWiki_localisation Dokumentation fir d Aapassig vu dr Benutzeroberflächi] un s [https://meta.wikimedia.org/wiki/Help:Contents Benutzerhandbuech] fir d Hilf iber d Benutzig un s Yystelle."
 }
index 83a241c..a1e3f6c 100644 (file)
@@ -41,5 +41,5 @@
        "config-install-step-failed": "નિષ્ફળ",
        "config-help": "મદદ",
        "mainpagetext": "'''મિડીયાવિકિ સફળતાપૂર્વક ઇન્સટોલ થયું છે.'''",
-       "mainpagedocfooter": "વિકિ સોફ્ટવેર વાપરવાની માહીતિ માટે [//meta.wikimedia.org/wiki/Help:Contents સભ્ય માર્ગદર્શિકા] જુઓ.\n\n== શરૂઆતના તબક્કે ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings કોનફીગ્યુરેશન સેટીંગ્સની યાદી]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ વારંવાર પુછાતા પ્રશ્નો]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce મિડીયાવિકિ રીલીઝ મેઇલીંગ લીસ્ટ]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
+       "mainpagedocfooter": "વિકિ સોફ્ટવેર વાપરવાની માહીતિ માટે [https://meta.wikimedia.org/wiki/Help:Contents સભ્ય માર્ગદર્શિકા] જુઓ.\n\n== શરૂઆતના તબક્કે ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings કોનફીગ્યુરેશન સેટીંગ્સની યાદી]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ વારંવાર પુછાતા પ્રશ્નો]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce મિડીયાવિકિ રીલીઝ મેઇલીંગ લીસ્ટ]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
 }
index b211b86..17c8288 100644 (file)
@@ -1,5 +1,5 @@
 {
        "@metadata": [],
        "mainpagetext": "'''Yí-kîn sṳ̀n-kûng ôn-chông MediaWiki.'''",
-       "mainpagedocfooter": "chhiáng fóng-mun [//meta.wikimedia.org/wiki/Help:Contents Yung-fu sú-chhak] yî-khi̍p sṳ́-yung chhṳ́ wiki ngiôn-khien ke sin-sit!\n\n== Ngi̍p-mùn  ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings MediaWiki Phi-chṳ sat-thin chhîn-tân]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki Phìn-sòng mun-thì kié-tap]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki fat-phu email chhîn-tân]"
+       "mainpagedocfooter": "chhiáng fóng-mun [https://meta.wikimedia.org/wiki/Help:Contents Yung-fu sú-chhak] yî-khi̍p sṳ́-yung chhṳ́ wiki ngiôn-khien ke sin-sit!\n\n== Ngi̍p-mùn  ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings MediaWiki Phi-chṳ sat-thin chhîn-tân]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki Phìn-sòng mun-thì kié-tap]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki fat-phu email chhîn-tân]"
 }
index 6bc3fd9..6f519ec 100644 (file)
@@ -8,7 +8,8 @@
                        "Inkbug",
                        "Yona b",
                        "Rotemliss",
-                       "Macofe"
+                       "Macofe",
+                       "Guycn2"
                ]
        },
        "config-desc": "תכנית ההתקנה של מדיה־ויקי",
        "config-restart": "כן, להפעיל מחדש",
        "config-welcome": "=== בדיקות סביבה ===\nבדיקות בסיסיות תתבצענה עכשיו כדי לראות אם הסביבה הזאת מתאימה להתקנת מדיה־ויקי.\nנא לזכור לכלול את המידע הזה בעת בקשת תמיכה עם השלמת ההתקנה.",
        "config-copyright": "=== זכויות יוצרים ותנאים ===\n\n$1\n\nתכנית זו היא תכנה חופשית; באפשרותך להפיצה מחדש ו/או לשנות אותה על פי תנאי הרישיון הציבורי הכללי של GNU כפי שפורסם על ידי קרן התכנה החופשית; בין אם גרסה 2 של הרישיון, ובין אם (לפי בחירתך) כל גרסה מאוחרת שלו.\n\nתכנית זו מופצת בתקווה שתהיה מועילה, אבל '''בלא אחריות כלשהי'''; ואפילו ללא האחריות המשתמעת בדבר '''מסחריותה''' או '''התאמתה למטרה '''מסוימת'''. לפרטים נוספים, ניתן לעיין ברישיון הציבורי הכללי של GNU.\n\nלתכנית זו אמור היה להיות מצורף <doclink href=Copying>עותק של הרישיון הציבורי הכללי של GNU</doclink>; אם לא קיבלת אותו, אפשר לכתוב ל־Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA או [http://www.gnu.org/copyleft/gpl.html לקרוא אותו דרך האינטרנט].",
-       "config-sidebar": "* [//www.mediawiki.org אתר הבית של מדיה־ויקי]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents המדריך למשתמש]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents המדריך למנהל]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ שו״ת]\n----\n* <doclink href=Readme>קרא אותי</doclink>\n* <doclink href=ReleaseNotes>הערות גרסה</doclink>\n* <doclink href=Copying>העתקה</doclink>\n* <doclink href=UpgradeDoc>שדרוג</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org אתר הבית של מדיה־ויקי]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents המדריך למשתמש]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents המדריך למנהל]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ שו״ת]\n----\n* <doclink href=Readme>קרא אותי</doclink>\n* <doclink href=ReleaseNotes>הערות גרסה</doclink>\n* <doclink href=Copying>העתקה</doclink>\n* <doclink href=UpgradeDoc>שדרוג</doclink>",
        "config-env-good": "הסביבה שלכם נבדקה.\nאפשר להתקין מדיה־ויקי.",
        "config-env-bad": "הסביבה שלכם נבדקה.\nאי־אפשר להתקין מדיה־ויקי.",
        "config-env-php": "מותקנת <span dir=\"ltr\">PHP $1</span>.",
        "config-env-hhvm": "מותקנת <span dir=\"ltr\">HHVM $1</span>.",
        "config-unicode-using-intl": "משתמש ב[http://pecl.php.net/intl הרחבת intl PECL] לנרמול יוניקוד.",
-       "config-unicode-pure-php-warning": "'''אזהרה''': [http://pecl.php.net/intl הרחבת intl PECL] אינה זמינה לטיפול בנרמול יוניקוד. משתמש ביישום PHP טהור ואטי יותר.\nאם זהו אתר בעל תעבורה גבוהה, כדאי לקרוא את המסמך הבא: [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode normalization].",
-       "config-unicode-update-warning": "'''אזהרה''': הגרסה המותקנת של מעטפת נרמול יוניקוד משתמשת בגרסה ישנה של הספרייה של [http://site.icu-project.org/ פרויקט ICU].\nכדאי [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations לעדכן] אם הטיפול ביוניקוד חשוב לך.",
+       "config-unicode-pure-php-warning": "<strong>אזהרה:</strong> [http://pecl.php.net/intl הרחבת intl PECL] אינה זמינה לטיפול בנרמול יוניקוד. משתמש ביישום PHP טהור ואטי יותר.\nאם זהו אתר בעל תעבורה גבוהה, כדאי לקרוא את המסמך הבא: [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode normalization].",
+       "config-unicode-update-warning": "'''אזהרה''': הגרסה המותקנת של מעטפת נרמול יוניקוד משתמשת בגרסה ישנה של הספרייה של [http://site.icu-project.org/ פרויקט ICU].\nכדאי [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations לעדכן] אם הטיפול ביוניקוד חשוב לך.",
        "config-no-db": "לא נמצא דרייבר מסד נתונים מתאים. יש להתקין דרייבר מסד נתונים ל־PHP.\n{{PLURAL:$2|נתמך הסוג הבא של מסד נתונים|נתמכים הסוגים הבאים של מסדי נתונים}}: $1.\n\nאם קִמפלת את PHP בעצמך, יש להגדיר אותו מחדש ולהפעיל את לקוח מסד נתונים, למשל באמצעות <code dir=\"ltr\">./configure --with-mysqli</code>.\nאם התקנת את PHP מחבילה של דביאן או של אובונטו, יש להתקין, למשל, גם את המודול <code dir=\"ltr\">php5-mysql</code>.",
        "config-outdated-sqlite": "'''אזהרה''': במערכת מתוקן SQLite $1. גרסה זו לא נתמכת ולשימוש ב־SQLite נדרשת גרסה $2 לפחות. SQLlite לא יהיה זמין.",
        "config-no-fts3": "'''אזהרה''': SQLite מהודר ללא [//sqlite.org/fts3.html מודול FTS]. יכולות חיפוש לא יהיו זמינות בהתקנה הזאת.",
-       "config-mbstring": "'''שגיאה סופנית''': האפשרות [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] פעילה!'''\nהאפשרות הזאת גורמת לשגיאות ומעוותת את נתוני הקלט באופן בלתי־צפוי.\nלא ניתן להתקין את מדיה־ויקי או להשתמש בה אלא אם האפשרות הזאת תכובה.",
-       "config-xml-bad": "מודול XML של PHP חסר.\nמדיה־ויקי דורשת פונקציות של המודול ולא תעבוד עם הגדרות כאלו.\nייתכן שצריך להתקין באמצעות RPM את חבילת php-xml.",
        "config-pcre-old": "<strong>שגיאה סופנית:</strong> חובה להתקין PCRE מגרסה $1 או גרסה חדשה יותר.\nקובץ הרצת ה־PHP שלך מקושר עם PCRE מגרסה $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE מידע נוסף].",
        "config-pcre-no-utf8": "<strong>שגיאה סופנית</strong>: נראה שמודול PCRE של PHP מהודר ללא תמיכה ב־PCRE_UTF8.\nמדיה־ויקי דורשת תמיכה ב־UTF-8 לפעילות נכונה.",
        "config-memory-raised": "ערך האפשרות <code>memory_limit</code> של PHP הוא $1, הועלה ל־$2.",
        "config-memory-bad": "'''אזהרה:''' ערך האפשרות <code>memory_limit</code> של PHP הוא $1.\nזה כנראה נמוך מדי.\nההתקנה עשויה להיכשל!",
-       "config-ctype": "<strong>שגיאה סופנית</strong>: נדרשת גרסת PHP שתומכת בהרחבה [http://www.php.net/manual/en/ctype.installation.php Ctype].",
-       "config-iconv": "<strong>סופני:</strong> חובה להדר את PHP עם תמיכה ב[הרחבה http://www.php.net/manual/en/iconv.installation.php iconv].",
-       "config-json": "'''שגיאה סופנית:''' PHP קומפל ללא תמיכה ב־JSON.\nיש להתקין את ההרחהב JSON ב־PHP או את ההרחבה [http://pecl.php.net/package/jsonc PECL jsonc] לפני התקנת מדיה־ויקי.\n* ההרחבה ל־PHP כלולה ב־Red Hat Enterprise Linux (ו־CentOS), אך יש להפעיל אותה ב־<code dir=\"ltr\">/etc/php.ini</code> או ב־<code dir=\"ltr\">/etc/php.d/json.ini</code>.",
-       "config-mbstring-absent": "<strong>סופני:</strong> חובה להדר את PHP עם תמיכה ב[הרחבה http://www.php.net/manual/en/mbstring.setup.php mbstring].",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] מותקן",
        "config-apc": "[http://www.php.net/apc APC] מותקן",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] מותקן",
@@ -85,7 +80,7 @@
        "config-no-cli-uri": "אזהרה: לא הוגדר <span dir=\"ltr\"><code>--scriptpath</code></span>, משתמש בבררת המחדל: <code dir=\"ltr\">$1</code>.",
        "config-using-server": "שם השרת בשימוש: \"<nowiki>$1</nowiki>\".",
        "config-using-uri": "נעשה שימוש בכתובת השרת \"<nowiki>$1$2</nowiki>\".",
-       "config-uploads-not-safe": "'''אזהרה:''' תיקיית ההעלאות ההתחלתית <code>$1</code> חשופה להרצת סקריפטים שרירותיים.\nאף שמדיה־ויקי בודקת את כל הקבצים המוּעלים לאיומי אבטחה, מומלץ מאוד למנוע את [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security פרצת האבטחה] הזאת לפני הפעלת ההעלאות.",
+       "config-uploads-not-safe": "'''אזהרה:''' תיקיית ההעלאות ההתחלתית <code>$1</code> חשופה להרצת סקריפטים שרירותיים.\nאף שמדיה־ויקי בודקת את כל הקבצים המוּעלים לאיומי אבטחה, מומלץ מאוד למנוע את [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security פרצת האבטחה] הזאת לפני הפעלת ההעלאות.",
        "config-no-cli-uploads-check": "'''אזהרה:''' תיקיית בררת המחדל להעלאות (<code>$1</code>) לא נבדקת לפגיעוּת להרצת תסריטים אקראיים בזמן התקנה דרך CLI.",
        "config-brokenlibxml": "במערכת שלך יש שילוב של גרסאות של PHP ושל libxml2 שחשוף לבאגים ויכול לגרום לעיוות נתונים נסתר במדיה־ויקי וביישומי רשת אחרים.\nיש לשדרג ל־libxml2 2.7.3 או גרסה חדשה יותר ([https://bugs.php.net/bug.php?id=45996 באג מתויק ב־PHP]).\nההתקנה נעצרה.",
        "config-suhosin-max-value-length": "מותקן פה Suhosin והוא מגביל את אורך פרמטר GET ל־$1 בתים. רכיב ResourceLoader של מדיה־ויקי יעקוף את המגלבה הזאת, אבל זה יפגע בביצועים. אם זה בכלל אפשרי, כדאי לתקן את הערך של <code>suhosin.get.max_value_length</code> ל־1024 או יותר בקובץ <code>php.ini</code> ולהגדיר את ‎<code>$wgResourceLoaderMaxQueryLength</code> לאותו הערך בקובץ LocalSettings.php.",
        "config-db-wiki-help": "הקלידו את שם המשתמש והססמה לחיבור למסד הנתונים במהלך פעילות רגילה של הוויקי.\nאם החשבון אינו קיים ולחשבון שבו מתבצעת ההתקנה יש הרשאות מספיקות, החשבון הזה ייווצר עם ההרשאות המזעריות הנחוצות להפעלת הוויקי.",
        "config-db-prefix": "תחילית לטבלאות של מסד נתונים (database table prefix):",
        "config-db-prefix-help": "אם נחוץ לך לשתף מסד נתונים אחד בין אתרי ויקי שונים או בין מדיה־ויקי ויישום וב אחר, אפשר לבחור להוסיף תחילית לכל שמות הטבלאות כדי להימנע מהתנגשויות.\nאין להשתמש ברווחים.\n\nהשדה הזה בדרך כלל אמור להיות ריק.",
-       "config-db-charset": "קבוצת התווים (character set) של מסד הנתונים",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 binary",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "MySQL 4.0 backwards-compatible UTF-8",
-       "config-charset-help": "'''אזהרה:''' שימוש ב־'''backwards-compatible UTF-8''' ב־<span dir=\"ltr\">MySQL 4.1+</span>, וגיבוי של מסד הנתונים באמצעות <code>mysqldump</code> במצב כזה יכול להרוס את כל התווים שאינם ASCII ולקלקל באופן בלתי־הפיך את הגיבויים שלך!\n\nב'''מצב בינרי''' (binary mode) מדיה־ויקי שומרת טקסט UTF-8 במסד הנתונים בשדות בינריים.\nזה יעיל יותר ממצב UTF-8 של MySQL ומאפשר לך להשתמש בכל הטווח של תווי יוניקוד.\nב'''מצב UTF-8'''&rlm; (UTF-8 mode)&rlm; MySQL יֵדַע מה קידוד התווים (character set) של הטקסט שלך ויציג וימיר אותו בהתאם, אבל לא יאפשר לך לשמור תווים שאינם נמצאים בטווח הרב־לשוני הבסיסי ([//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane]).",
        "config-mysql-old": "נדרשת גרסה <span dir=\"ltr\">$1</span> של MySQL או גרסה חדשה יותר. הגרסה הנוכחית שלכם היא $2.",
        "config-db-port": "פִּתְחַת מסד הנתונים (database port):",
        "config-db-schema": "סכמה למדיה־ויקי:",
        "config-mysql-charset": "קידוד התווים של מסד הנתונים:",
        "config-mysql-binary": "בינרי",
        "config-mysql-utf8": "UTF-8",
-       "config-mysql-charset-help": "ב'''מצב בינרי''' (binary mode) מדיה־ויקי שומרת טקסט UTF-8 במסד הנתונים בשדות בינריים.\nזה יעיל יותר ממצב UTF-8 של MySQL ומאפשר לכם להשתמש בכל הטווח של תווי יוניקוד.\n\nב'''מצב UTF-8'''&rlm; (UTF-8 mode)&rlm; MySQL יֵדַע מה קידוד התווים (character set) של הטקסט שלכם ויציג וימיר אותו בהתאם, אבל לא יאפשר לכם לשמור תווים שאינם נמצאים בטווח הרב־לשוני הבסיסי ([//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane]).",
+       "config-mysql-charset-help": "ב'''מצב בינרי''' (binary mode) מדיה־ויקי שומרת טקסט UTF-8 במסד הנתונים בשדות בינריים.\nזה יעיל יותר ממצב UTF-8 של MySQL ומאפשר לכם להשתמש בכל הטווח של תווי יוניקוד.\n\nב'''מצב UTF-8'''&rlm; (UTF-8 mode)&rlm; MySQL יֵדַע מה קידוד התווים (character set) של הטקסט שלכם ויציג וימיר אותו בהתאם, אבל לא יאפשר לכם לשמור תווים שאינם נמצאים בטווח הרב־לשוני הבסיסי ([https://en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane]).",
        "config-mssql-auth": "סוג אימות:",
        "config-mssql-install-auth": "נא לבחור את סוג האימות שישמש להתחברות למסד הנתונים בזמן תהליך ההתקנה. בחירה ב־\"{{int:config-mssql-windowsauth}}\" תשתמש בהרשאות של החשבון שמריץ את השרת הנוכחי.",
        "config-mssql-web-auth": "נא לבחור את סוג האימות שישמש את השרת להתחברות למסד הנתונים בזמן הריצה הרגילה של הוויקי.\nבחירה ב־\"{{int:config-mssql-windowsauth}}\" תשתמש בהרשאות של החשבון שמריץ את השרת הנוכחי.",
        "config-profile-no-anon": "נדרשת יצירת חשבון",
        "config-profile-fishbowl": "עורכים מורשים בלבד",
        "config-profile-private": "ויקי פרטי",
-       "config-profile-help": "אתרי ויקי עובדים הכי טוב כאשר הם מאפשרים לכמה שיותר אנשים לערוך אותם.\nבמדיה־ויקי קל לסקור את השינויים האחרונים ולשחזר כל נזק שעושים משתמשים תמימים או משחיתים.\n\nעם זאת, אנשים שונים מצאו למדיה־ויקי שימושים מגוּונים ולעתים לא קל לשכנע את כולם ביתרונות של \"דרך הוויקי\" המסורתית. ולכן יש לך בררה.\n\nבאתר מסוג '''{{int:config-profile-wiki}}''' – לכולם יש הרשאה לערוך, אפילו בלי להיכנס לחשבון.\nבאתר וויקי מסוג '''{{int:config-profile-no-anon}}''' יש ביטחון גדול יותר, אבל הגדרה כזאת יכולה להרתיע תורמים מזדמנים.\n\nבתסריט '''{{int:config-profile-fishbowl}}''' רק משתמשים שקיבלו אישור יכולים לערוך, אבל כל הגולשים יכולים לקרוא את הדפים ואת גרסאותיהם הקודמות.\nב'''{{int:config-profile-private}}''' רק משתמשים שקיבלו אישור יכולים לקרוא ולערוך דפים.\n\nהגדרות מורכבות של הרשאות אפשריות אחרי ההתקנה, ר׳ את [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights הפרק על הנושא הזה בספר ההדרכה].",
+       "config-profile-help": "אתרי ויקי עובדים הכי טוב כאשר הם מאפשרים לכמה שיותר אנשים לערוך אותם.\nבמדיה־ויקי קל לסקור את השינויים האחרונים ולשחזר כל נזק שעושים משתמשים תמימים או משחיתים.\n\nעם זאת, אנשים שונים מצאו למדיה־ויקי שימושים מגוּונים ולעתים לא קל לשכנע את כולם ביתרונות של \"דרך הוויקי\" המסורתית. ולכן יש לך בררה.\n\nבאתר מסוג '''{{int:config-profile-wiki}}''' – לכולם יש הרשאה לערוך, אפילו בלי להיכנס לחשבון.\nבאתר וויקי מסוג '''{{int:config-profile-no-anon}}''' יש ביטחון גדול יותר, אבל הגדרה כזאת יכולה להרתיע תורמים מזדמנים.\n\nבתסריט '''{{int:config-profile-fishbowl}}''' רק משתמשים שקיבלו אישור יכולים לערוך, אבל כל הגולשים יכולים לקרוא את הדפים ואת גרסאותיהם הקודמות.\nב'''{{int:config-profile-private}}''' רק משתמשים שקיבלו אישור יכולים לקרוא ולערוך דפים.\n\nהגדרות מורכבות של הרשאות אפשריות אחרי ההתקנה, ר׳ את [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights הפרק על הנושא הזה בספר ההדרכה].",
        "config-license": "זכויות יוצרים ורישיון:",
        "config-license-none": "ללא כותרת תחתית עם רישיון",
        "config-license-cc-by-sa": "קריאייטיב קומונז–ייחוס–שיתוף זהה",
        "config-email-sender-help": "הכניסו את כתובת הדוא״ל שתשמש ככתובת לתשובה לכל הדואר היוצא.\nלשם יישלחו תגובות שגיאה (bounce).\nשרתי דוא״ל רבים דורשים שלפחות החלק של המתחם יהיה תקין.",
        "config-upload-settings": "העלאת קבצים ותמונות",
        "config-upload-enable": "להפעיל העלאת קבצים",
-       "config-upload-help": "×\94×¢×\9c×\90×\95ת ×§×\91צ×\99×\9d ×\97×\95שפ×\95ת ×\90ת ×\94שרת ×©×\9c×\9b×\9d ×\9cס×\99×\9b×\95× ×\99 ×\90×\91×\98×\97×\94.\n×\9c×\9e×\99×\93×¢ × ×\95סף, ×§Ö´×¨×\90×\95 ×\90ת [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security ×\97×\9cק ×\94×\90×\91×\98×\97×\94] ×\91ספר ×\94×\94×\93ר×\9b×\94.\n\n×\9b×\93×\99 ×\9c×\94פע×\99×\9c ×\94×¢×\9c×\90ת ×§×\91צ×\99×\9d ×©× ×\95 ×\90ת ×\94×\94רש×\90×\95ת ×©×\9c ×\94ת×\99ק×\99×\99×\94 <code>images</code> ×ª×\97ת ×ª×\99ק×\99×\99ת ×\94ש×\95רש ×©×\9c ×\9e×\93×\99×\94Ö¾×\95×\99ק×\99 ×\9b×\9a ×©×©×¨×ª ×\94×\95×\95×\91 ×\99×\95×\9b×\9c ×\9c×\9bת×\95×\91 ×\90×\9c×\99×\94.\n×\96×\94 ×\9eפעיל את האפשרות הזאת.",
+       "config-upload-help": "×\94×¢×\9c×\90ת ×§×\91צ×\99×\9d ×\97×\95שפת ×\90ת ×\94שרת ×©×\9c×\9a ×\9cס×\99×\9b×\95× ×\99 ×\90×\91×\98×\97×\94.\n×\9c×\9e×\99×\93×¢ × ×\95סף, ×\90פשר ×\9cקר×\95×\90 ×\90ת [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security ×\94×\9e×\93ר×\99×\9a ×\94×\96×\94].\n\n×\9b×\93×\99 ×\9c×\90פשר ×\94×¢×\9c×\90×\95ת ×©×\9c ×§×\91צ×\99×\9d, ×\99ש ×\9cשנ×\95ת ×\90ת ×\94×\94רש×\90×\95ת ×©×\9c ×\94ת×\99ק×\99×\99×\94 <code>images</code> ×ª×\97ת ×ª×\99ק×\99×\99ת ×\94ש×\95רש ×©×\9c ×\9e×\93×\99×\94Ö¾×\95×\99ק×\99 ×\9b×\93×\99 ×©×©×¨×ª ×\94Ö¾web ×\99×\95×\9b×\9c ×\9c×\9bת×\95×\91 ×\90×\9c×\99×\94.\n×\9c×\90×\97ר ×\9e×\9b×\9f ×\99ש ×\9c×\94פעיל את האפשרות הזאת.",
        "config-upload-deleted": "תיקיית לקבצים שנמחקו:",
        "config-upload-deleted-help": "בחרו את התיקייה לארכוב קבצים מחוקים.\nכדאי שזה לא יהיה נגיש לכל העולם דרך הרשת.",
        "config-logo": "כתובת הסמל:",
        "config-logo-help": "המראה ההתחלתי של מדיה־ויקי מכיל מקום לסמל של 135 על 160 פיקסלים בפינה העליונה מעל תפריט הצד.\nיש להעלות תמונה בגודל מתאים ולהכניס את הכתובת כאן.\n\nבאפשרותך להשתמש ב־<code dir=\"ltr\">$wgStylePath</code> או ב־<code dir=\"ltr\">$wgScriptPath</code> אם הסמל שלך נמצא במקום יחסי לנתיבים האלה.\n\nאם אינכם רוצים סמל, השאירו את התיבה הזאת ריקה.",
        "config-instantcommons": "להפעיל את Instant Commons",
-       "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons Instant Commons] היא תכונה שמאפשרת לאתרי ויקי להשתמש בתמונות, בצלילים ובמדיה אחרת שנמצאת באתר [//commons.wikimedia.org/ ויקישיתוף] (Wikimedia Commons).\nכדי לעשות את זה, מדיה־ויקי צריך לגשת לאינטרנט.\n\nלמידע נוסף על התכונה הזאת, כולל הוראות איך להפעיל את זה לאתרי ויקי שאינם ויקישיתוף, ר׳ [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos את ספר ההדרכה].",
+       "config-instantcommons-help": "[https://www.mediawiki.org/wiki/InstantCommons Instant Commons] היא תכונה שמאפשרת לאתרי ויקי להשתמש בתמונות, בצלילים ובמדיה אחרת שנמצאת באתר [https://commons.wikimedia.org/ ויקישיתוף] (Wikimedia Commons).\nכדי לעשות את זה, מדיה־ויקי צריך לגשת לאינטרנט.\n\nלמידע נוסף על התכונה הזאת, כולל הוראות איך להפעיל את זה לאתרי ויקי שאינם ויקישיתוף, ר׳ [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos את ספר ההדרכה].",
        "config-cc-error": "בורר רישיונות קריאייטיב קומונז לא החזיר שום תוצאה.\nהקלידו את שם הרישיון ידנית.",
        "config-cc-again": "נא לבחור שוב...",
        "config-cc-not-chosen": "בחרו באיזה רישיון קריאייטיב קומונז להשתמש ולחצו \"proceed\".",
        "config-install-mainpage": "יצירת דף ראשי עם תוכן התחלתי",
        "config-install-extension-tables": "יצירת טבלאות להרחבות מופעלות",
        "config-install-mainpage-failed": "לא הצליחה הכנסת דף ראשי: $1.",
-       "config-install-done": "</strong>מזל טוב!</strong>\nהתקנתם בהצלחה את מדיה־ויקי.\n\nתוכנת ההתקנה יצרה את הקובץ <code>LocalSettings.php</code>.\nהוא מכיל את כל ההגדרות שלכם.\n\nתצטרכו להוריד אותו ולשים אותו בבסיס ההתקנה של הוויקי שלכם (אותה התיקייה שבה נמצא הקובץ index.php). ההורדה הייתה אמורה להתחיל באופן אוטומטי.\n\nאם ההורדה לא התחילה, או אם ביטלתם אותה, אפשר להתחיל אותה מחדש בלחיצה על הקישור הבא:\n\n$3\n\n</strong>שימו לב</strong>: אם לא תעשו זאת עכשיו, קובץ ההגדרות המחוּלל לא יהיה זמין לכם שוב.\n\nאחרי שתעשו את זה, תוכלו </strong>[$2 להיכנס לוויקי שלכם]</strong>.",
+       "config-install-done": "<strong>מזל טוב!</strong>\nהתקנת את תוכנת מדיה־ויקי.\n\nתוכנת ההתקנה יצרה את הקובץ <code>LocalSettings.php</code>.\nהוא מכיל את כל ההגדרות שלך.\n\nיש להוריד אותו ולהכניס אותו לתיקיית הבסיס שבה הותקן הוויקי שלך (אותה התיקייה שבה נמצא הקובץ index.php). ההורדה אמורה להתחיל באופן אוטומטי.\n\nאם ההורדה לא התחילה, או אם ביטלת אותה, אפשר להתחיל אותה מחדש באמצעות לחיצה על הקישור הבא:\n\n$3\n\n<strong>לתשומת לבך:</strong> אם ההורדה לא תבוצע כעת, קובץ ההגדרות <strong>לא</strong> יהיה זמין מאוחר יותר אם תוכנת ההתקנה תיסגר לפני שהקובץ יורד.\n\nלאחר שביצעת את הפעולות שלהלן, באפשרותך <strong>[$2 להיכנס לאתר הוויקי שלך]</strong>.",
+       "config-install-done-path": "<strong>מזל טוב!</strong>\nהתקנת את תוכנת מדיה־ויקי.\n\nתוכנת ההתקנה יצרה את הקובץ <code>LocalSettings.php</code>.\nהוא מכיל את כל ההגדרות שלך.\n\nיש להוריד אותו ולהכניס אותו לתיקייה <code>$4</code>. ההורדה אמורה להתחיל באופן אוטומטי.\n\nאם ההורדה לא התחילה, או אם ביטלת אותה, אפשר להתחיל אותה מחדש באמצעות לחיצה על הקישור הבא:\n\n$3\n\n<strong>לתשומת לבך:</strong> אם ההורדה לא תבוצע כעת, קובץ ההגדרות <strong>לא</strong> יהיה זמין מאוחר יותר אם תוכנת ההתקנה תיסגר לפני שהקובץ יורד.\n\nלאחר שביצעת את הפעולות שלהלן, באפשרותך <strong>[$2 להיכנס לאתר הוויקי שלך]</strong>.",
        "config-download-localsettings": "הורדת <code>LocalSettings.php</code>",
        "config-help": "עזרה",
        "config-help-tooltip": "להרחיב",
        "config-nofile": "הקובץ \"$1\" לא נמצא. האם הוא נמחק?",
-       "config-extension-link": "הידעת שמדיה־ויקי תומכת ב־[//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions הרחבות]?\n\nבאפשרותך לעיין ב־[//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category הרחבות לפי קטגוריה].",
+       "config-extension-link": "הידעת שמדיה־ויקי תומכת ב־[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions הרחבות]?\n\nבאפשרותך לעיין ב־[https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category הרחבות לפי קטגוריה].",
        "mainpagetext": "<strong>תוכנת מדיה־ויקי הותקנה בהצלחה.</strong>",
-       "mainpagedocfooter": "היעזרו ב[//meta.wikimedia.org/wiki/Help:Contents מדריך למשתמש] למידע על שימוש בתוכנת הוויקי.\n\n== קישורים שימושיים ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings רשימת ההגדרות]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ שאלות ותשובות על מדיה־ויקי]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce רשימת התפוצה על השקת גרסאות]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources תרגום מדיה־ויקי לשפה שלך]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam איך להיאבק נגד ספאם באתר הוויקי שלך]"
+       "mainpagedocfooter": "היעזרו ב[https://meta.wikimedia.org/wiki/Help:Contents מדריך למשתמש] למידע על שימוש בתוכנת הוויקי.\n\n== קישורים שימושיים ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings רשימת ההגדרות]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ שאלות ותשובות על מדיה־ויקי]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce רשימת התפוצה על השקת גרסאות]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources תרגום מדיה־ויקי לשפה שלך]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam איך להיאבק נגד ספאם באתר הוויקי שלך]"
 }
index 42dbd4f..e05b700 100644 (file)
@@ -63,5 +63,5 @@
        "config-help": "सहायता",
        "config-nofile": "फ़ाइल \"$1\" नहीं पाई जा सकी। क्या इसे हटा दिया गया है?",
        "mainpagetext": "'''मीडियाविकिका इन्स्टॉलेशन पूरा हो गया हैं ।'''",
-       "mainpagedocfooter": "विकि सॉफ्टवेयरके इस्तेमाल के लिये [//meta.wikimedia.org/wiki/Help:Contents उपयोगकर्ता गाईड] देखें ।\n\n== शुरुवात करें ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings कॉन्फिगरेशन सेटींगकी सूची]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ मीडियाविकिके बारे में प्राय: पूछे जाने वाले सवाल]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce मीडियाविकि मेलिंग लिस्ट]"
+       "mainpagedocfooter": "विकि सॉफ्टवेयरके इस्तेमाल के लिये [https://meta.wikimedia.org/wiki/Help:Contents उपयोगकर्ता गाईड] देखें ।\n\n== शुरुवात करें ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings कॉन्फिगरेशन सेटींगकी सूची]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ मीडियाविकिके बारे में प्राय: पूछे जाने वाले सवाल]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce मीडियाविकि मेलिंग लिस्ट]"
 }
index d5d46ce..3f17c12 100644 (file)
@@ -5,5 +5,5 @@
                ]
        },
        "mainpagetext": "'''MediaWiki ke safalta se install kar dewa gais hai.'''",
-       "mainpagedocfooter": "Wiki software ke use kare ke aur jaankari ke khatir [//meta.wikimedia.org/wiki/Help:Contents User's Guide] ke dekho.\n\n== Getting started ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
+       "mainpagedocfooter": "Wiki software ke use kare ke aur jaankari ke khatir [https://meta.wikimedia.org/wiki/Help:Contents User's Guide] ke dekho.\n\n== Getting started ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
 }
index f3f54c9..99abc4f 100644 (file)
@@ -5,5 +5,5 @@
                ]
        },
        "mainpagetext": "'''Ang MediaWiki madinalag-on nga na-instala.'''",
-       "mainpagedocfooter": " Magkonsulta sa [//meta.wikimedia.org/wiki/Help:Contents User's Guide] para sa mga impormasyon sa paggamit sang wiki nga software.\n\n== Pag-umpisa ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista sang mga konpigorasyon sang pagkay-o]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Mga Masami Pamangkoton sa MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista sang mga ginapadal-an sang sulat kon may paguha-on nga MediaWiki]"
+       "mainpagedocfooter": " Magkonsulta sa [https://meta.wikimedia.org/wiki/Help:Contents User's Guide] para sa mga impormasyon sa paggamit sang wiki nga software.\n\n== Pag-umpisa ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista sang mga konpigorasyon sang pagkay-o]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Mga Masami Pamangkoton sa MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista sang mga ginapadal-an sang sulat kon may paguha-on nga MediaWiki]"
 }
index 14f5684..45a637d 100644 (file)
@@ -22,5 +22,5 @@
        "config-page-existingwiki": "Postojeći wiki",
        "config-restart": "Da, počni iznova",
        "mainpagetext": "'''Softver MediaWiki je uspješno instaliran.'''",
-       "mainpagedocfooter": "Pogledajte [//meta.wikimedia.org/wiki/MediaWiki_localisation dokumentaciju o prilagodbi sučelja]\ni [//meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide Vodič za suradnike] za pomoć pri uporabi i podešavanju."
+       "mainpagedocfooter": "Pogledajte [https://meta.wikimedia.org/wiki/MediaWiki_localisation dokumentaciju o prilagodbi sučelja]\ni [https://meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide Vodič za suradnike] za pomoć pri uporabi i podešavanju."
 }
index 29287b0..6bee175 100644 (file)
        "config-restart": "Jo, erneit oonfänge",
        "config-welcome": "=== Prüfung von die Installationsumgebung ===\nDie Basisprüfunge were jetzt doorrichgefüahrt, um festzustelle, ob die Installationsumgebung für MediaWiki geeichnet ist.\nNotier die Informatione und geb se an, sofern du Hellf beim Installiere  benötichst.",
        "config-copyright": "=== Lizenz und Nutzungsbedingunge ===\n\n$1\n\nDas Programm ist freie Software, d. h. es kann, gemäss den Bedingunge der von der Free Software Foundation veröffentlichte ''GNU General Public License'', weiterverteilt und/oder modifiziert sin. Dabei kann die Version 2, orrer noh eichnem Ermess, jede neuire Version von der Lizenz verwennet sin.\n\nDas Programm weard in der Hoffnung verteilt, dass das nützlich sein weard, dennoch '''ohne jechliche Garantie''' und sogoor ohne die implizierte Garantie von ener '''Marrektgängigkeit''' orrer '''Eichnung für en bestimmte Zweck'''. Hierzu sind weitre Hinweise in der ''GNU General Public License'' enthalt.\n\nEn <doclink href=Copying>Kopie von der GNU General Public License</doclink> sollt zusammer mit dem Programm verteilt woard sin. Sofern das net der Fall woar, kann en Kopie bei der Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA, schriftlich verlangt sin orrer uff ehre Website [http://www.gnu.org/copyleft/gpl.html online gelesen] sin.",
-       "config-sidebar": "* [//www.mediawiki.org/wiki/MediaWiki/de Website von MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents/de Benutzeroonleitung]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents/de Administratorenoonleitung]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/de Häifig gestellte Frache]\n----\n* <doclink href=Readme>Lies mich</doclink>\n* <doclink href=ReleaseNotes>Versionsinformatione</doclink>\n* <doclink href=Copying>Lizenzbestimmunge</doclink>\n* <doclink href=UpgradeDoc>Aktualisierung</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org/wiki/MediaWiki/de Website von MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents/de Benutzeroonleitung]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents/de Administratorenoonleitung]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/de Häifig gestellte Frache]\n----\n* <doclink href=Readme>Lies mich</doclink>\n* <doclink href=ReleaseNotes>Versionsinformatione</doclink>\n* <doclink href=Copying>Lizenzbestimmunge</doclink>\n* <doclink href=UpgradeDoc>Aktualisierung</doclink>",
        "config-env-good": "Die Installationsumgebung woard geprüft.\nMediaWiki kann installiert sin.",
        "config-env-bad": "Die Installationsumgebung woard geprüft.\nMediaWiki kann net installiert sin.",
        "config-env-php": "Die Skriptsproch „PHP“ ($1) ist installiert.",
        "config-unicode-using-intl": "Zur  Unicode-Normalisierung weard die [http://pecl.php.net/intl PECL-Erweiterung intl] ingesetzt.",
-       "config-unicode-pure-php-warning": "'''Warnung:''' Die [http://pecl.php.net/intl PECL-Erweiterung intl] ist für die Unicode-Normalisierung net verfüchbar, so dass stattdessen die langsame pure-PHP-Implementierung genutzt weard.\nSofern en Webseit mit grosser Benutzeranzoohl betrieb weard, sollte weitre Informatione uff der Webseite [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode-Normalisierung (en)] geles sin.",
-       "config-unicode-update-warning": "'''Warnung:''' Die installierte Version von der Unicode-Normalisierungswrappers nutzt en ältre Version von der [http://site.icu-project.org/ ICU-Projekts] sein Bibliothek.\nDie sollte [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations aktualisiert] sin, sofern uff die Verwennung von Unicode Wert geleht weard.",
+       "config-unicode-pure-php-warning": "'''Warnung:''' Die [http://pecl.php.net/intl PECL-Erweiterung intl] ist für die Unicode-Normalisierung net verfüchbar, so dass stattdessen die langsame pure-PHP-Implementierung genutzt weard.\nSofern en Webseit mit grosser Benutzeranzoohl betrieb weard, sollte weitre Informatione uff der Webseite [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode-Normalisierung (en)] geles sin.",
+       "config-unicode-update-warning": "'''Warnung:''' Die installierte Version von der Unicode-Normalisierungswrappers nutzt en ältre Version von der [http://site.icu-project.org/ ICU-Projekts] sein Bibliothek.\nDie sollte [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations aktualisiert] sin, sofern uff die Verwennung von Unicode Wert geleht weard.",
        "config-no-db": "Es konnt ken adäquater Datenbanktreiwer gefund sin. Es muss doher en Datenbanktreiwer für PHP installiert sin.\nDie folchende Datebanksysteme werre unnerstützt: $1\n\nWenn du PHP sellebst kompiliert host, konfigurier es erneit mit en aktiviert Datebankclient, zum Beispiel dorrich Verwennung von <code>./configure --with-mysqli</code>.\nWenn du PHP von en Debian- orrer Ubuntu-Paket installiert host, dann musst du ooch beispielsweis das <code>php5-mysql</code>-Paket installiere.",
        "config-outdated-sqlite": "'''Warnung:''' SQLite $1 ist installiert. Allerdings benöticht MediaWiki SQLite $2 orrer höcher. SQLite weard doher net verfüchbar sin.",
        "config-no-fts3": "'''Warnung:''' SQLite woard ohne das [//sqlite.org/fts3.html FTS3-Modul] kompiliert, so dass ken Suchfunktione für das Datenbanksystem zur Verfüchung stehn werre.",
-       "config-magic-quotes-runtime": "'''Fataler Fehler: Der Parameter <code>[http://www.php.net/manual/de/function.set-magic-quotes-runtime.php set_magic_quotes_runtime]</code> von PHP ist aktiviert!'''\nDie Instellung führt zu unvoarhearsehbare Probleme bei der Dateningäb.\nMediaWiki kann net installiert werre, solang der Parameter net deaktiviert woard.",
-       "config-magic-quotes-sybase": "<strong>Fataler Fehler: Der Parameter <code>[http://www.php.net/manual/de/sybase.configuration.php#ini.magic-quotes-sybase magic_quotes_sybase]</code> von PHP ist aktiviert!</strong>\nDie Instellung führt zu unvoarhearsehbare Probleme bei der Dateningäb.\nMediaWiki kann net installiert sin, solang der Parameter nicht deaktiviert woard.",
-       "config-mbstring": "'''Fataler Fehler: Der Parameter <code>[http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload]</code> von PHP ist aktiviert!'''\nDie Instellung veruarsacht Fehler und führt zu unvoarhearsehbare Probleme bei der Dateingäb.\nMediaWiki kann net installiert sin, solang der Parameter net deaktiviert woard.",
-       "config-safe-mode": "'''Warnung:''' Der Funktion <code>[http://www.php.net/features.safe-mode Safe Mode]</code> von PHP ist aktiviert.\nDas kann zu Probleme führen, insbesondscht wenn das Hochloode von Dateie möchlich sin, bzw. der Auszeichner <code>math</code> benutzt werre soll.",
-       "config-xml-bad": "Das XML-Modul von PHP fehlt.\nMediaWiki benöticht Funktione, die das Modul bereitstellt und weard in der bestehende Konfiguration net funktioniere.\nSofern Mandriva benutzt weard, muss noch das „php-xml“-Paket installiert sin.",
        "config-pcre-old": "<strong>Fataler Fehler:</strong> PCRE $1 orrer neier ist notwendich!\nDie vorhandne PHP-Binärdatei ist mit PCRE $2 verknüpft.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Weitre Informatione].",
        "config-pcre-no-utf8": "'''Fataler Fehler:''' Das PHP-Modul PCRE scheint ohne PCRE_UTF8-Unterstützung kompiliert worre sin.\nMediaWiki benöticht die UTF-8-Unnerstützung, um fehlerfrei looffähich zu sin.",
        "config-memory-raised": "Der PHP-Parameter <code>memory_limit</code> betruch $1 und woard uff $2 erhöcht.",
        "config-memory-bad": "'''Warnung:''' Der PHP-Parameter <code>memory_limit</code> beträcht $1.\nDer Weart ist wahrscheinlich zu niedrich.\nDer Installationsvoargang könnt doher scheitre!",
-       "config-ctype": "'''Fataler Fehler:''' PHP muss mit Unnerstützung für das [http://www.php.net/manual/de/ctype.installation.php Modul ctype] kompiliert sin.",
-       "config-json": "<strong>Fataler Fehler:</strong> PHP woard ohne Unnerstützung für JSON kompiliert.\nVoar der Installation von MediaWiki muss entweder die PHP-JSON- orrer die [http://pecl.php.net/package/jsonc PECL-jsonc]-Erweiterung installieren sin.\n* Die PHP-Erweiterung ist in Red Hat Enterprise Linux (CentOS) 5 und 6 enthalten, muss jedoch in <code>/etc/php.ini</code> oder <code>/etc/php.d/json.ini</code> aktiviert sin.\n* Eniche Linux-Distributione, die nach Mai 2013 veröffentlicht woor, nutze net meh die PHP-Erweitrung, sondscht stattder die PECL-Erweitrung als <code>php5-json</code> orrer <code>php-pecl-jsonc</code>.",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] ist installiert",
        "config-apc": "[http://www.php.net/apc APC] ist installiert",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] ist installiert",
-       "config-no-cache": "'''Warnung:''' [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] orrer [http://www.iis.net/download/WinCacheForPhp WinCache] woare net gefund.\nDas Objektcaching kann doher net aktiviert sin.",
        "config-mod-security": "'''Warnung:''' Uff dem Webserver woard [http://modsecurity.org/ ModSecurity] aktiviert. Sofern falsch konfiguriert, kann das zu Probleme mit MediaWiki sowie annrer Software uff dem Server führe und es Benutzer ermöchliche beliebiche Inhalte im Wiki Renzustelle.\nFür weitre Informatione empfehle mir die [http://modsecurity.org/documentation/ Dokumentation zu ModSecurity] orrer den Kontakt zum Hoster, sofern Fehler ufftrete.",
        "config-diff3-bad": "GNU diff3 woard net gefund.",
        "config-git": "Die Versionsverwaltungssoftware „Git“ woard gefund: <code>$1</code>.",
@@ -79,7 +71,7 @@
        "config-no-cli-uri": "'''Warnung''': Es woard ken Pad zum Skipt (<code>--scriptpath</code>) oongeb. Doher weard der Standardpad benutzt: <code>$1</code>.",
        "config-using-server": "Der Servernoome „<nowiki>$1</nowiki>“ weard verwennet.",
        "config-using-uri": "Der Server URL \"<nowiki>$1$2</nowiki>\" weard benutz.",
-       "config-uploads-not-safe": "'''Warnung:''' Das Standardverzeichnis für hochgeloodne Dateie <code>$1</code> ist für die willkürliche/arbiträer Ausführung von Skripte oonfällich.\nObwohl MediaWiki die hochgeloodne Dateie uff Sicherheitsrisike üwerprüft, weard dennoch dringend empfohl die [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security Sicherheitslücke] zu schliesse, bevor das Hochloode von Dateie aktiviert weard.",
+       "config-uploads-not-safe": "'''Warnung:''' Das Standardverzeichnis für hochgeloodne Dateie <code>$1</code> ist für die willkürliche/arbiträer Ausführung von Skripte oonfällich.\nObwohl MediaWiki die hochgeloodne Dateie uff Sicherheitsrisike üwerprüft, weard dennoch dringend empfohl die [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security Sicherheitslücke] zu schliesse, bevor das Hochloode von Dateie aktiviert weard.",
        "config-no-cli-uploads-check": "'''Warnung''': Das Standardverzeichnis für hochgeloodene Dateie (<code>$1</code>) weard, während der Installation üwer die Kommandozeile, net auf Sicherheitsoonfälligkeite hinsichtlich willkürlicher/arbiträr Skriptausführunge geprüft.",
        "config-brokenlibxml": "Das System nutzt en Kombination aus PHP- und libxml2-Versione, die fehleroonfällich ist und versteckte Datefehler bei MediaWiki und annere Weboonwennunge verursache kann.\nAktualisier uff libxml2 2.7.3 orrer später, um das Problem zu löse. Installationsabbruch ([https://bugs.php.net/bug.php?id=45996 sieh hierzu die Fehlermeldung bei PHP]).",
        "config-suhosin-max-value-length": "Suhosin ist installiert und beschränkt die Läng von der GET-Parameters auf $1 Bytes.\nDer ResouceLoader von MediaWiki weard zwoor unner den Bedingunge funktioniere, allerdings nuer mit verminnerter Leistungsfähigkeit.\nSoweit möchlich sollt der Parameter <code>suhosin.get.max_value_length</code> in der Datei <code>php.ini</code> uff 1024 oreer höcher festgeleht werre.\nGleichzeitich muss der Parameter <code>$wgResourceLoaderMaxQueryLength</code> in der Datei <code>LocalSettings.php</code> uff den selwer Weart rengestellt sin.",
        "config-db-wiki-help": "Bitte Benutzernoome und Passwort oongewe, wo der Webserver (während des) im Moment von dem Normalbetriebe dozu verwenne soll, en Verbinnung zu dem Datebankserver hearzustelle.\nSoweit en entsprechendes Benutzerkonto net voarhand ist und das Benutzerkonto für den Installationsvoargang üwer ausreichende Berechtichunge verfücht, weard das Benutzerkonto automatisch mit den Mindestberechtichunge zu der Wiki sein Normalbetrieb oongeleht.",
        "config-db-prefix": "Datebanktabellepräfix:",
        "config-db-prefix-help": "Soweit en Datebank für mehrer Wikiinstallatione orrer en Wikiinstallatio und en annre Programminstallation benutzt werre soll, muss en Datebanktabellenpräfix oogeb sin, um Datebankprobleme zu vermeide.\nDas könne ken Leerzeiche verwennt sin.\n\nGewöhnlich bleibt das Datefeld (Datecampo) lear.",
-       "config-db-charset": "Datebankzeichesatz",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 binär",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "MySQL 4.0 abwäartskompatibles UTF-8",
-       "config-charset-help": "'''Warnung:''' Soweit '''abwäartskompatibles UTF-8''' bei MySQL 4.1+ verwennt und oonschliessend die Datebank mit <code>mysqldump</code> gesichert weard, könnte alle net mit ASCII-codierten Zeiche beschädicht werre, was zu irreversible Schäde von der Datesichrung füahrt!\n\nIm '''binäre Modus''' speichert MediaWiki UTF-8 Texte in der Datebank in binär kodierte Datefelder (Dadecampos).\nDas ist effizienter als der UTF-8-Modus von MySQL und ermöchlicht so die Verwennung jechlicher Unicode-Zeiche.\nIm '''UTF-8-Modus''' weard MySQL den Zeichesatz der Date erkenne und die richtich oonzeiche und konvertiere.\nDas könne awer ken Zeiche ausserhalb von der [//de.wikipedia.org/wiki/Basic_Multilingual_Plane#Gliederung_in_Ebenen_und_Bl.C3.B6cke ''Basic Multilingual Plane'' (BMP)] gespeichert sin.",
        "config-mysql-old": "MySQL $1 orrer höcher weard benöticht. MySQL $2 ist momentan voarhand.",
        "config-db-port": "Datebankserver:",
        "config-db-schema": "Dateschema für MediaWiki",
        "config-mysql-charset": "Datebankzeichesatz",
        "config-mysql-binary": "binär",
        "config-mysql-utf8": "UTF-8",
-       "config-mysql-charset-help": "Im '''binäre Modus''' speichert MediaWiki UTF-8 Texte in der Datebank in binär kodierte Datefelder.\nDas ist effizienter als der UTF-8-Modus von MySQL und ermöglicht so die Verwennung jeder Unicode-Zeiche.\n\nIm '''UTF-8-Modus''' weard MySQL den Zeichesatz der Date erkenne und sie richtich oonzeiche und konvertiere,\nawer könne ken Zeiche ausserhalb von der [//de.wikipedia.org/wiki/Basic_Multilingual_Plane#Gliederung_in_Ebenen_und_Bl.C3.B6cke ''Basic Multilingual Plane'' (BMP)] gespeichert sin.",
+       "config-mysql-charset-help": "Im '''binäre Modus''' speichert MediaWiki UTF-8 Texte in der Datebank in binär kodierte Datefelder.\nDas ist effizienter als der UTF-8-Modus von MySQL und ermöglicht so die Verwennung jeder Unicode-Zeiche.\n\nIm '''UTF-8-Modus''' weard MySQL den Zeichesatz der Date erkenne und sie richtich oonzeiche und konvertiere,\nawer könne ken Zeiche ausserhalb von der [https://de.wikipedia.org/wiki/Basic_Multilingual_Plane#Gliederung_in_Ebenen_und_Bl.C3.B6cke ''Basic Multilingual Plane'' (BMP)] gespeichert sin.",
        "config-mssql-auth": "Authentifikationstyp:",
        "config-mssql-install-auth": "Wähl den Authentifikationstyp aus, der zur Verbinnung mit der Datebank während von der Installationsprozesses verwennt weard.\nFalls du „{{int:config-mssql-windowsauth}}“ auswählst, werre die Oonmeldeinformatione von en beliebiche Benutzer verwennt, wo den Webserver ausführt.",
        "config-mssql-web-auth": "Wähl den Authentifikationstyp aus, der vom Webserver zur Verbinnung mit dem Datebankserver während / im Verloof von der gewöhnliche Betrieb von der Wiki verwennt weard.\nFalls du „{{int:config-mssql-windowsauth}}“ auswählst, werre die Oonmeldeinformatione von en beliebiche Benutzer verwennt, wo den Webserver ausführt.",
        "config-profile-no-anon": "Erstellung von en Benutzerkonto erforderlich",
        "config-profile-fishbowl": "ausschliesslich berechtichte Beoorbeiter",
        "config-profile-private": "geschlossnes Wiki",
-       "config-profile-help": "Wikis sind am nützlichste, wenn so viele Mensche wie möchlich droon Bearbeitunge voarnehme könne.\nMit MediaWiki ist das enfach die letzte Ännrunge nohzuvollziehe und unbrauchbare Bearbeitunge, beispielsweise von unbedärfte orrer böswilliche Benutzer, rückgängich zu mache.\n\nAwer finne etliche Mensche Wikis ooch mit annere Beoorbeitungskonzepte sinnvoll. Manchmol ist das zudem net enfach alle Beteilichte von den Voarteile des „Wiki-Prinzips” zu üwerzeiche. Dodrum ist die Auswoohl möchlich.\n\nDas Modell „'''{{int:config-profile-wiki}}'''“ ermöchlicht es jederene, sogoor ohne üwer en Benutzerkonto zu verfüche, Bearbeitunge voarzunehme.\nEn Wiki bei dem die '''{{int:config-profile-no-anon}}''' ist, verlang von den Benutzer en höchre Verantwortung für ehre Beoorbeitunge en, könnt awer Persone abschrecke, die nuar gelechentlich Beoorbeitunge voarnehme wolle. En Wiki für '''{{int:config-profile-fishbowl}}''' gestattet (permitiert) es nuar bestimmte Benutzer, Beoorbeitunge voarzunehme. Awer kann dobei die Allgemeinheit die Seite immer noch betrachte und Ändrunge nohvollziehe. En '''{{int:config-profile-private}}''' gestattet es nur ausgewählte Benutzer, Seite zu betrachte sowie zu beoorbeite.\n\nKomplexre Konzepte zur Zugriffssteierung könne earst noh abgeschlossne Installationsvoargang ingerichtet sin. Hierzu gebts weitre Informatione uff der Website mit der [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights entsprechende Oonleitung].",
+       "config-profile-help": "Wikis sind am nützlichste, wenn so viele Mensche wie möchlich droon Bearbeitunge voarnehme könne.\nMit MediaWiki ist das enfach die letzte Ännrunge nohzuvollziehe und unbrauchbare Bearbeitunge, beispielsweise von unbedärfte orrer böswilliche Benutzer, rückgängich zu mache.\n\nAwer finne etliche Mensche Wikis ooch mit annere Beoorbeitungskonzepte sinnvoll. Manchmol ist das zudem net enfach alle Beteilichte von den Voarteile des „Wiki-Prinzips” zu üwerzeiche. Dodrum ist die Auswoohl möchlich.\n\nDas Modell „'''{{int:config-profile-wiki}}'''“ ermöchlicht es jederene, sogoor ohne üwer en Benutzerkonto zu verfüche, Bearbeitunge voarzunehme.\nEn Wiki bei dem die '''{{int:config-profile-no-anon}}''' ist, verlang von den Benutzer en höchre Verantwortung für ehre Beoorbeitunge en, könnt awer Persone abschrecke, die nuar gelechentlich Beoorbeitunge voarnehme wolle. En Wiki für '''{{int:config-profile-fishbowl}}''' gestattet (permitiert) es nuar bestimmte Benutzer, Beoorbeitunge voarzunehme. Awer kann dobei die Allgemeinheit die Seite immer noch betrachte und Ändrunge nohvollziehe. En '''{{int:config-profile-private}}''' gestattet es nur ausgewählte Benutzer, Seite zu betrachte sowie zu beoorbeite.\n\nKomplexre Konzepte zur Zugriffssteierung könne earst noh abgeschlossne Installationsvoargang ingerichtet sin. Hierzu gebts weitre Informatione uff der Website mit der [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights entsprechende Oonleitung].",
        "config-license": "Lizenz:",
        "config-license-none": "Ken Lizenzoongäb in der Fusszeile",
        "config-license-cc-by-sa": "Creative Commons \"Noomenennung, Weitergäb unner gleiche Bedingunge“",
        "config-email-sender-help": "Bitte hier die E-Mail-Adress oongewe, die als Absenderadress bei ausgehende E-Mails ingesetzt werre soll.\nRückloofende E-Mails werre an die E-Mail-Adress gesandt.\nBei viele E-Mail-Server muss der Tel der E-Mail-Adress mit der Domainoongäb korrekt sin.",
        "config-upload-settings": "Hochloode von Bilder und Dateie",
        "config-upload-enable": "Das Hochloode von Dateie ermöchliche",
-       "config-upload-help": "Das Hochloode von Dateie macht den Server für potentielle Sicherheitsprobleme oonfällich.\nWeitre Informatione hierzu könne im [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security Abschnitt Sicherheit] von der Anleitung nohgeles sin.\n\nUm das Hochloode von Dateie zu ermöglichen, muss der Zugriff uff das Unnerverzeichnis <code>./images</code> so geännert sin, das das für den Webserver beschreibbar ist.\nHernoh kann die Option aktiviert sin.",
+       "config-upload-help": "Das Hochloode von Dateie macht den Server für potentielle Sicherheitsprobleme oonfällich.\nWeitre Informatione hierzu könne im [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security Abschnitt Sicherheit] von der Anleitung nohgeles sin.\n\nUm das Hochloode von Dateie zu ermöglichen, muss der Zugriff uff das Unnerverzeichnis <code>./images</code> so geännert sin, das das für den Webserver beschreibbar ist.\nHernoh kann die Option aktiviert sin.",
        "config-upload-deleted": "Verzeichnis für gelöschte Dateie:",
        "config-upload-deleted-help": "Bitte en Verzeichnis auswähle, in dem gelöschte Dateie archiviert werre solle.\nIdealerweise sollt es net üwer das Internet zugänglich sin.",
        "config-logo": "Das Logo sein URL:",
        "config-logo-help": "Die Standardoberfläche von MediaWiki verfücht links owerhalleb von der Seiteleiste üwer Platz für en Logo mit den Moaa 135x160 Pixel.\nBitte en Logo in entsprechender Gröss hochloode und die zugehöriche URL an der Stell oongewe.\n\nDu kannst <code>$wgStylePath</code> orrer <code>$wgScriptPath</code> verwenne, falls dein Logo relativ zu den Pade ist.\n\nSofern ken Logo benöticht weard, kann das Datefeld leer bleiwe.",
        "config-instantcommons": "\"InstantCommons\" aktiviere",
-       "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons InstantCommons] ist en Funktion, wos Wikis ermöchlicht, Bild-, Klang- und annre Mediendateie zu nutze, wo uff der Website [//commons.wikimedia.org/ Wikimedia Commons] verfüchbar sind.\nUm die Funktion nutze zu könne, muss das Wiki üwer en Verbinnung zum Internet verfüche.\n\nWeitre Informatione zu der Funktion, inschliesslich von der Oonleitung, wie hierfür annre Wikis als Wikimedia Commons ingerichtet werre könne, gebts im [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos Handbuch].",
+       "config-instantcommons-help": "[https://www.mediawiki.org/wiki/InstantCommons InstantCommons] ist en Funktion, wos Wikis ermöchlicht, Bild-, Klang- und annre Mediendateie zu nutze, wo uff der Website [https://commons.wikimedia.org/ Wikimedia Commons] verfüchbar sind.\nUm die Funktion nutze zu könne, muss das Wiki üwer en Verbinnung zum Internet verfüche.\n\nWeitre Informatione zu der Funktion, inschliesslich von der Oonleitung, wie hierfür annre Wikis als Wikimedia Commons ingerichtet werre könne, gebts im [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos Handbuch].",
        "config-cc-error": "Der Creativ-Commons-Lizenzassistent konnt ken Lizenz ermittle.\nDie Lizenz ist doher jetzt manuell inzugewe.",
        "config-cc-again": "Erneit auswähle …",
        "config-cc-not-chosen": "Die gewünschte Creative-Commons-Lizenz auswähle und dann uff \"proceed\" klicke.",
        "config-download-localsettings": "<code>LocalSettings.php</code> herunnterlade",
        "config-help": "Hellef",
        "config-nofile": "Die Datei „$1“ konnt net gefund sin. Woor sie gelöscht?",
-       "config-extension-link": "Wusst du, dass dein Wiki die Nutzung von [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions Erweiterungen] unnerstützt?\n\nDu kannst [//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category Erweitrunge noh Kategorie] doorrichsuche orrer die [//www.mediawiki.org/wiki/Extension_Matrix Matrix der Erweiterungen] oonsiehn, um en Üwersicht zu verfüchbare Erweitrunge zu erhalten.",
+       "config-extension-link": "Wusst du, dass dein Wiki die Nutzung von [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions Erweiterungen] unnerstützt?\n\nDu kannst [https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category Erweitrunge noh Kategorie] doorrichsuche orrer die [https://www.mediawiki.org/wiki/Extension_Matrix Matrix der Erweiterungen] oonsiehn, um en Üwersicht zu verfüchbare Erweitrunge zu erhalten.",
        "mainpagetext": "'''MediaWiki woor erfollichreich installiert.'''",
-       "mainpagedocfooter": "Hellef zur Benutzung und Konfiguration von der Wiki-Software finnst du im [//meta.wikimedia.org/wiki/Help:Contents Benutzerhandbuch].\n\n== Oonfänghellef ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings List von der Konfigurationsvariable]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki-FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailinglist neier MediaWiki-Versione]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Lokalisier MediaWiki für dein Sproch]"
+       "mainpagedocfooter": "Hellef zur Benutzung und Konfiguration von der Wiki-Software finnst du im [https://meta.wikimedia.org/wiki/Help:Contents Benutzerhandbuch].\n\n== Oonfänghellef ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings List von der Konfigurationsvariable]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki-FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailinglist neier MediaWiki-Versione]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Lokalisier MediaWiki für dein Sproch]"
 }
index 339440e..e875961 100644 (file)
@@ -42,7 +42,7 @@
        "config-page-existingwiki": "Eksistowacy wiki",
        "config-help-restart": "Chceš wšě składowane daty hašeć, kotrež sy zapodał a instalaciski proces znowa startować?",
        "config-restart": "Haj, znowa startować",
-       "config-sidebar": "* [//www.mediawiki.org MediaWiki Startowa strona MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Nawod za wužiwarjow]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Nawod za administratorow]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Huste prašenja]\n----\n* <doclink href=Readme>Čitaj mje</doclink>\n* <doclink href=ReleaseNotes>Wersijowe informacije</doclink>\n* <doclink href=Copying>Licencne postajenja</doclink>\n* <doclink href=UpgradeDoc>Aktualizacija</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org MediaWiki Startowa strona MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Nawod za wužiwarjow]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Nawod za administratorow]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Huste prašenja]\n----\n* <doclink href=Readme>Čitaj mje</doclink>\n* <doclink href=ReleaseNotes>Wersijowe informacije</doclink>\n* <doclink href=Copying>Licencne postajenja</doclink>\n* <doclink href=UpgradeDoc>Aktualizacija</doclink>",
        "config-env-good": "Wokolina je so skontrolowała.\nMóžeš MediaWiki instalować.",
        "config-env-bad": "Wokolina je so skontrolowała.\nNjemóžeš MediaWiki instalować.",
        "config-env-php": "PHP $1 je instalowany.",
        "config-no-db": "Njeda so přihódny ćěrjak datoweje banki namakać! Dyrbiš ćěrjak datoweje banki za PHP instalować.\nSlědowace typy datoweje banki so podpěruja: $1.\n\nJeli sy PHP sam kompilował, konfiguruj jón znowa z aktiwizowanym programom datoweje banki, na přikład z pomocu <code>./configure --with-mysqli</code>.\nJeli sy PHP z Debianoweho abo Ubuntuoweho paketa instalował, dyrbiš tež paket <code>php5-mysql</code> instalować.",
        "config-outdated-sqlite": "'''Warnowanje''': maš SQLite $1, kotryž je starši hač minimalna trěbna wersija $2. SQLite njebudźe k dispoziciji stać.",
        "config-no-fts3": "'''Warnowanje''': SQLite je so bjez [//sqlite.org/fts3.html FTS3-modula] kompilował, pytanske funkcije njebudu k dispoziciji stać.",
-       "config-safe-mode": "'''Warnowanje:''' [http://www.php.net/features.safe-mode wěsty modus] PHP je aktiwny.\nTo móže problemy zawinować, předewšěm, jeli so datajowe nahraća a podpěra <code>math</code> wužiwaja.",
-       "config-xml-bad": "XML-modul za PHP faluje.\nMediaWiki trjeba funkcije w tutym modulu a njebudźe w tutej konfiguraciji fungować.\nJeli wužiwaš Mandrake, instaluj paket php-xml.",
        "config-pcre-no-utf8": "'''Ćežki zmylk''': Zda so, zo PCRE-modul za PHP ma so bjez PCRE_UTF8-podpěry kompilować.\nMediaWiki trjeba UTF-8-podpěru, zo by korektnje fungował.",
        "config-memory-raised": "PHP-parameter <code>memory_limit</code> je $1, je so na hódnotu $2 zwyšił.",
        "config-memory-bad": "'''Warnowanje:''' PHP-parameter <code>memory_limit</code> ma hódnotu $1,\nTo je najskerje přeniske.\nInstalacija móhła so njeporadźić!",
-       "config-ctype": "'''Ćežki zmylk''': PHP dyrbi so z podpěru za [http://www.php.net/manual/en/ctype.installation.php rozšěrjenje Ctype] kompilować.",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] je instalowany",
        "config-apc": "[http://www.php.net/apc APC] je instalowany",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] je instalowany",
        "config-db-account-lock": "Samsne wužiwarske mjeno a hesło za normalnu operaciju wužiwać",
        "config-db-wiki-account": "Wužiwarske konto za normalnu operaciju",
        "config-db-prefix": "Tabelowy prefiks datoweje banki:",
-       "config-db-charset": "Znamješkowa sadźba datoweje banki",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 binarny",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "MySQL 4.0 wróćokompatibelny UTF-8",
        "config-mysql-old": "MySQL $1 abo nowši trěbny, maš $2.",
        "config-db-port": "Port datoweje banki:",
        "config-db-schema": "Šema za MediaWiki",
        "config-help": "pomoc",
        "config-nofile": "Dataja \"$1\" njeje so namakała. Je so zhašała?",
        "mainpagetext": "'''MediaWiki bu wuspěšnje instalowany.'''",
-       "mainpagedocfooter": "Prošu hlej [//meta.wikimedia.org/wiki/Help:Contents dokumentaciju] za informacije wo wužiwanju softwary.\n\n== Za nowačkow ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Wo nastajenjach]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources MediaWiki za twoju rěč lokalizować]"
+       "mainpagedocfooter": "Prošu hlej [https://meta.wikimedia.org/wiki/Help:Contents dokumentaciju] za informacije wo wužiwanju softwary.\n\n== Za nowačkow ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Wo nastajenjach]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources MediaWiki za twoju rěč lokalizować]"
 }
index f56f0ad..d261a4b 100644 (file)
@@ -6,5 +6,5 @@
                ]
        },
        "mainpagetext": "'''MedyaWiki byen enstale l.'''",
-       "mainpagedocfooter": "Konsilte [//meta.wikimedia.org/wiki/Help:Contents Gid Itilizatè] pou enfòmasyon sou kijan pou w itilize logisyèl wiki a.\n\n== Kijan pou kòmanse ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lis paramèt yo pou konfigirasyon]\n* [//www.mediawiki.org/wiki/Manyèl:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lis diskisyon ki parèt sou MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
+       "mainpagedocfooter": "Konsilte [https://meta.wikimedia.org/wiki/Help:Contents Gid Itilizatè] pou enfòmasyon sou kijan pou w itilize logisyèl wiki a.\n\n== Kijan pou kòmanse ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lis paramèt yo pou konfigirasyon]\n* [https://www.mediawiki.org/wiki/Manyèl:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lis diskisyon ki parèt sou MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
 }
index 88779b1..882a084 100644 (file)
        "config-help-restart": "Szeretné törölni az eddig megadott összes adatot és újraindítani a telepítési folyamatot?",
        "config-welcome": "=== Környezet ellenőrzése ===\nAlapvető ellenőrzés, ami megmondja, hogy a környezet alkalmas-e a MediaWiki számára.\nHa probléma merülne fel a telepítés során, meg kell adnia mások számára az alább megjelenő információkat.",
        "config-unicode-pure-php-warning": "<strong>Figyelmeztetés:</strong> Az [http://pecl.php.net/intl intl PECL kiterjesztés] nem érhető el Unicode normalizáláshoz, helyette a lassú, PHP alapú implementáció lesz használva.\nHa nagy látogatottságú oldalt üzemeltet, itt találhat információkat [http://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations a témáról].",
-       "config-register-globals": "'''Figyelmeztetés: A PHP <code>[http://php.net/register_globals register_globals]</code> beállítása engedélyezve van.'''\n'''Tiltsa le, ha van rá lehetősége.'''\nA MediaWiki működőképes a beállítás használata mellett, de a szerver biztonsági kockázatnak lesz kitéve.",
        "config-imagemagick": "Az ImageMagick megtalálható a rendszeren: <code>$1</code>.\nA bélyegképek készítése engedélyezve lesz, ha engedélyezi a feltöltéseket.",
        "config-db-name-help": "Válassza ki a wikije azonosítására használt nevet.\nNem tartalmazhat szóközt.\n\nHa megosztott webtárhelyet használ, a szolgáltatója vagy egy konkrét adatbázisnevet ad önnek használatra, vagy létrehozhat egyet a vezérlőpulton keresztül.",
        "config-db-install-help": "Adja meg a felhasználónevet és jelszót, amivel a telepítő csatlakozhat az adatbázishoz.",
        "config-db-wiki-help": "Adja meg azt a felhasználónevet és jelszót, amivel a wiki fog csatlakozni az adatbázishoz működés közben.\nHa a fiók nem létezik és a telepítést végző fiók rendelkezik megfelelő jogosultsággal, egy új fiók készül a megadott a névvel, azon minimális jogosultságkörrel, ami a wiki működéséhez szükséges.",
-       "config-charset-help": "'''Figyelmezetés:''' Ha a '''visszafelé kompatibilis UTF-8''' beállítást használja MySQL 4.1 vagy újabb verziók esetén, és utána a <code>mysqldump</code> programmal készít róla biztonsági másolatot, az tönkreteheti az összes nem ASCII-karaktert, visszafordíthatatlanul károsítva a másolatokban tárolt adatokat!\n\n'''Bináris''' módban a MediaWiki az UTF-8-ban kódolt szöveget bináris mezőkben tárolja az adatbázisban.\nEz sokkal hatékonyabb a MySQL UTF-8-módjától, és lehetővé teszi, hogy a teljes Unicode-karakterkészletet használja.\n'''UTF-8-módban''' MySQL tudja, hogy milyen karakterkészlettel van kódolva az adat, megfelelően van megjelenítve és konvertálva, de\nnem használhatja a [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane] feletti karaktereket.",
        "config-db-schema-help": "A fenti sémák általában megfelelőek.\nCsak akkor módosítson rajta, ha szükség van rá.",
        "config-sqlite-parent-unwritable-nogroup": "Nem lehet létrehozni az adatok tárolásához szükséges <code><nowiki>$1</nowiki></code> könyvtárat, mert a webszerver nem írhat a szülőkönyvtárba (<code><nowiki>$2</nowiki></code>).\n\nA telepítő nem tudta megállapíteni, hogy melyik felhasználói fiókon fut a webszerver.\nA folytatáshoz tegye írhatóvá ezen fiók (és más fiókok!) számára a következő könyvtárat: <code><nowiki>$3</nowiki></code>.\nUnix/Linux rendszereken tedd a következőt:\n\n<pre>cd $2\nmkdir $3\nchmod a+w $3</pre>",
        "config-ns-other": "Más (adja meg)",
        "config-admin-name-blank": "Adja meg az adminisztrátor felhasználónevét!",
        "config-admin-name-invalid": "A megadott felhasználónév (<nowiki>$1</nowiki>) érvénytelen.\nAdjon meg egy másik felhasználónevet.",
        "config-admin-password-blank": "Adja meg az adminisztrátori fiók jelszavát!",
-       "config-instantcommons-help": "Az [//www.mediawiki.org/wiki/InstantCommons Instant Commons] lehetővé teszi, hogy a wikin használhassák a [//commons.wikimedia.org/ Wikimedia Commons] oldalon található képeket, hangokat és más médiafájlokat.\nA használatához a MediaWikinek internethozzáférésre van szüksége.\n\nA funkcióról és hogy hogyan állítható be más wikik esetén [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos a kézikönyvben] találhat további információkat.",
+       "config-instantcommons-help": "Az [https://www.mediawiki.org/wiki/InstantCommons Instant Commons] lehetővé teszi, hogy a wikin használhassák a [https://commons.wikimedia.org/ Wikimedia Commons] oldalon található képeket, hangokat és más médiafájlokat.\nA használatához a MediaWikinek internethozzáférésre van szüksége.\n\nA funkcióról és hogy hogyan állítható be más wikik esetén [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos a kézikönyvben] találhat további információkat.",
        "config-install-done": "'''Gratulálunk!'''\nSikeresen telepítette a MediaWikit.\n\nA telepítő készített egy <code>LocalSettings.php</code> fájlt.\nEz tartalmazza az összes beállítást.\n\n[$1 Le kell töltenie], és el kell helyeznie a MediaWiki telepítési könyvtárába (az a könyvtár, ahol az index.php van).\n'''Megjegyzés''': Ha ezt most nem teszi meg, és kilép, a generált fájl nem lesz elérhető a későbbiekben.\n\nHa ezzel készen van, '''[$2 beléphet a wikibe]'''.",
-       "mainpagedocfooter": "Ha segítségre van szüksége a wikiszoftver használatához, akkor keresse fel a [//meta.wikimedia.org/wiki/Help:Contents User's Guide] oldalt.\n\n== Alapok (angol nyelven) ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Beállítások listája]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki GyIK]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki-kiadások levelezőlistája]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources A MediaWiki fordítása a saját nyelvére]"
+       "mainpagedocfooter": "Ha segítségre van szüksége a wikiszoftver használatához, akkor keresse fel a [https://meta.wikimedia.org/wiki/Help:Contents User's Guide] oldalt.\n\n== Alapok (angol nyelven) ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Beállítások listája]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki GyIK]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki-kiadások levelezőlistája]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources A MediaWiki fordítása a saját nyelvére]"
 }
index 3f92528..f97b6dc 100644 (file)
        "config-restart": "Igen, újraindítás",
        "config-welcome": "=== A környezet ellenőrzése ===\nNéhány alapvető ellenőrzés kerül végrehajtásra, hogy kiderüljön ,hogy ez a környezet alkalmas-e a MediaWiki telepítésére.\nHa telepítéssel kapcsolatos segítségre van szükséged, add meg ezen ellenőrzések eredményét.",
        "config-copyright": "=== Licenc és feltételek ===\n\n$1\n\nEz a program szabad szoftver; terjeszthető illetve módosítható a Free Software Foundation által kiadott GNU General Public License dokumentumában leírtak; akár a licenc 2-es, akár (tetszőleges) későbbi változata szerint.\n\nEz a program abban a reményben kerül közreadásra, hogy hasznos lesz, de minden egyéb '''garancia nélkül''', az '''eladhatóságra''' vagy '''valamely célra való alkalmazhatóságra''' való származtatott garanciát is beleértve. További részleteket a GNU General Public License tartalmaz.\n\nA felhasználónak a programmal együtt meg kell kapnia a <doclink href=Copying>GNU General Public License egy példányát</doclink>; ha mégsem kapta meg, akkor írjon a Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. címre, vagy [http://www.gnu.org/copyleft/gpl.html tekintse meg online].",
-       "config-sidebar": "* [//www.mediawiki.org A MediaWiki honlapja]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Felhasználói kézikönyv]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Útmutató adminisztrátoroknak]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ GyIK]\n----\n* <doclink href=Readme>Ismertető</doclink>\n* <doclink href=ReleaseNotes>Kiadási megjegyzések</doclink>\n* <doclink href=Copying>Másolás</doclink>\n* <doclink href=UpgradeDoc>Frissítés</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org A MediaWiki honlapja]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Felhasználói kézikönyv]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Útmutató adminisztrátoroknak]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ GyIK]\n----\n* <doclink href=Readme>Ismertető</doclink>\n* <doclink href=ReleaseNotes>Kiadási megjegyzések</doclink>\n* <doclink href=Copying>Másolás</doclink>\n* <doclink href=UpgradeDoc>Frissítés</doclink>",
        "config-env-good": "A környezet ellenőrzése befejeződött.\nA MediaWiki telepíthető.",
        "config-env-bad": "A környezet ellenőrzése befejeződött.\nA MediaWiki nem telepíthető.",
        "config-env-php": "A PHP verziója: $1",
        "config-env-hhvm": "HHVM verziója: $1",
        "config-unicode-using-intl": "A rendszer Unicode normalizálására az [http://pecl.php.net/intl intl PECL kiterjesztést] használja.",
-       "config-unicode-pure-php-warning": "'''Figyelmeztetés''': Az Unicode normalizáláshoz szükséges [http://pecl.php.net/intl intl PECL kiterjesztés] nem érhető el, helyette a lassú, PHP alapú implementáció lesz használva.\nHa nagy látogatottságú oldalt üzemeltetsz, itt találhatsz további információkat [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations a témáról].",
-       "config-unicode-update-warning": "'''Figyelmeztetés''': Az Unicode normalizáláshoz szükséges burkolókönyvtár [http://site.icu-project.org/ ICU projekt] függvénykönyvtárának régebbi változatát használja.\nHa ügyelni kívánsz a Unicode használatára, fontold meg a [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations frissítését].",
+       "config-unicode-pure-php-warning": "'''Figyelmeztetés''': Az Unicode normalizáláshoz szükséges [http://pecl.php.net/intl intl PECL kiterjesztés] nem érhető el, helyette a lassú, PHP alapú implementáció lesz használva.\nHa nagy látogatottságú oldalt üzemeltetsz, itt találhatsz további információkat [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations a témáról].",
+       "config-unicode-update-warning": "'''Figyelmeztetés''': Az Unicode normalizáláshoz szükséges burkolókönyvtár [http://site.icu-project.org/ ICU projekt] függvénykönyvtárának régebbi változatát használja.\nHa ügyelni kívánsz a Unicode használatára, fontold meg a [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations frissítését].",
        "config-no-db": "Nem sikerült egyetlen használható adatbázis-illesztőprogramot sem találni. Telepítened kell egyet a PHP-hez.\nA következő {{PLURAL:$2|adatbázistípus támogatott|adatbázistípusok támogatottak}}: $1.\n\nHa a PHP-t magad fordítottad, konfiguráld újra úgy, hogy engedélyezve legyen egy adatbáziskliens, pl. a <code>./configure --with-mysql</code> parancs használatával.\nHa a PHP-t Debian vagy Ubuntu csomaggal telepítetted, akkor szükséged lesz például a php5-mysql csomagra is.",
        "config-outdated-sqlite": "<strong>Figyelmeztetés:</strong> SQLite $1 verziód van, ami alacsonyabb a legalább szükséges $2 verziónál. Az SQLite nem lesz elérhető.",
        "config-no-fts3": "'''Figyelmeztetés''': Az SQLite [//sqlite.org/fts3.html FTS3 modul] nélkül lett fordítva, a keresési funkciók nem fognak működni ezen a rendszeren.",
-       "config-mbstring": "'''Kritikus hiba: az [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime mbstring.func_overload] aktív!'''\nEz a beállítás hibákat okoz és kiszámíthatatlanul károsíthatja bevitt adatokat.\nA MediaWiki csak akkor telepíthető, ha ki van kapcsolva.",
-       "config-xml-bad": "A PHP XML-modulja hiányzik.\nEgyes MediaWiki-funkciók, melyek ezt a modult igénylik, nem fognak működni ilyen konfigurációban.\nSzükséges lehet a php-xml RPM-csomag telepítése.",
        "config-pcre-old": "<strong>Kritikus hiba:</strong> PCRE $1 vagy későbbi szükséges.\nA Te PHP binárisod PCRE $2-vel lett linkelve.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE További információ].",
        "config-pcre-no-utf8": "'''Kritikus hiba''': Úgy tűnik, hogy a PHP PRCE modulja PRCE_UTF8 támogatás nélkül lett fordítva.\nA MediaWikinek UTF-8-támogatásra van szüksége a helyes működéshez.",
        "config-memory-raised": "A PHP <code>memory_limit</code> beállításának értéke: $1. Meg lett növelve a következő értékre: $2.",
        "config-memory-bad": "'''Figyelmeztetés:''' A PHP <code>memory_limit</code> beállításának értéke $1.\nEz az érték valószínűleg túl kevés, a telepítés sikertelen lehet.",
-       "config-ctype": "<strong>Kritikus hiba:</strong> A PHP-t [http://www.php.net/manual/en/ctype.installation.php Ctype kiterjesztés] támogatással kell fordítani.",
-       "config-iconv": "<strong>Kritikus hiba:</strong> a PHP-t az [http://www.php.net/manual/en/iconv.installation.php iconv kiterjesztést] támogatva kell fordítani.",
        "config-xcache": "Az [http://xcache.lighttpd.net/ XCache] telepítve van",
        "config-apc": "Az [http://www.php.net/apc APC] telepítve van",
        "config-wincache": "A [http://www.iis.net/download/WinCacheForPhp WinCache] telepítve van",
-       "config-no-cache": "'''Figyelmeztetés:''' Nem található [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] és [http://www.iis.net/download/WinCacheForPhp WinCache] sem.\nObjektum-gyorsítótárazás nem lesz engedélyezve.",
        "config-diff3-bad": "GNU diff3 nem található.",
        "config-git": "Megtaláltam a Git verziókezelő szoftvert: <code>$1</code>.",
        "config-git-bad": "A Git verziókezelő rendszer nem található.",
@@ -83,7 +78,7 @@
        "config-no-cli-uri": "<strong>Figyelmeztetés:</strong> Nincs <code>--scriptpath</code> megadva, használom az alapértelmezettet: <code>$1</code>.",
        "config-using-server": "A következő szervernév használata: „<nowiki>$1</nowiki>”.",
        "config-using-uri": "A következő szerver URL-cím használata: „<nowiki>$1$2</nowiki>”.",
-       "config-uploads-not-safe": "'''Figyelmeztetés:''' a feltöltésekhez használt alapértelmezett könyvtárban (<code>$1</code>) tetszőleges külső szkript futtatható.\nHabár a MediaWiki ellenőrzi a feltöltött fájlokat az efféle biztonsági veszélyek megtalálása érdekében, a feltöltés engedélyezése előtt erősen ajánlott a [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security a sérülékenység megszüntetése].",
+       "config-uploads-not-safe": "'''Figyelmeztetés:''' a feltöltésekhez használt alapértelmezett könyvtárban (<code>$1</code>) tetszőleges külső szkript futtatható.\nHabár a MediaWiki ellenőrzi a feltöltött fájlokat az efféle biztonsági veszélyek megtalálása érdekében, a feltöltés engedélyezése előtt erősen ajánlott a [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security a sérülékenység megszüntetése].",
        "config-brokenlibxml": "A rendszereden a PHP és libxml2 verziók olyan kombinációja található meg, ami hibásan működik, és észrevehetetlen adatkárosodást okoz a MediaWikiben és más webalkalmazásokban.\nFrissíts a libxml2 2.7.3 vgy újabb verziójára ([https://bugs.php.net/bug.php?id=45996 A hiba bejelentése a PHP-nél]).\nTelepítés megszakítva.",
        "config-suhosin-max-value-length": "A Suhosin telepítve van, és a GET <code>length</code> paraméterét $1 bájtra korlátozza.\nA MediaWiki ResourceLoader (erőforrásbetöltő) összetevője megkerüli a problémát, de így csökkenni fog a teljesítmény.\nHa lehetséges, állítsd be a <code>suhosin.get.max_value_length</code> értékét legalább 1024-re a <code>php.ini</code>-ben, és állítsd be a <code>$wgResourceLoaderMaxQueryLength</code> változót ugyanerre az értékre a <code>LocalSettings.php</code>-ban.",
        "config-db-type": "Adatbázis típusa:",
        "config-db-wiki-help": "Add meg azt a felhasználónevet és jelszót, amivel a wiki fog csatlakozni az adatbázishoz működés közben.\nHa a fiók nem létezik és a telepítést végző fiók rendelkezik megfelelő jogosultsággal, egy új fiók készül a megadott a névvel, azon minimális jogosultságkörrel, ami a wiki működéséhez szükséges.",
        "config-db-prefix": "Adatbázistáblák nevének előtagja:",
        "config-db-prefix-help": "Ha egyetlen adatbázison osztozik több wiki, vagy a MediaWiki és más webalkalmazás, választhatsz egy előtagot a táblaneveknek, hogy megelőzd a konfliktusokat.\nNe használj szóközöket.\n\nA mezőt általában üresen kell hagyni.",
-       "config-db-charset": "Az adatbázis karakterkészlete",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0, bináris",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "MySQL 4.0, visszafelé kompatibilis UTF-8",
-       "config-charset-help": "'''Figyelmezetés:''' Ha a '''visszafelé kompatibilis UTF-8''' beállítást használod MySQL 4.1 vagy újabb verziók esetén, és utána a <code>mysqldump</code> programmal készítesz róla biztonsági másolatot, az tönkreteheti az összes nem ASCII-karaktert, visszafordíthatatlanul károsítva a másolatokban tárolt adatokat!\n\n'''Bináris''' módban a MediaWiki az UTF-8-ban kódolt szöveget bináris mezőkben tárolja az adatbázisban.\nEz sokkal hatékonyabb a MySQL UTF-8-módjától, és lehetővé teszi, hogy a teljes Unicode-karakterkészletet használd.\n'''UTF-8-módban''' MySQL tudja, hogy milyen karakterkészlettel van kódolva az adat, és megfelelően tárolja és konvertálja, de\nnem használhatod a [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane] feletti karaktereket.",
        "config-mysql-old": "A MySQL $1 vagy újabb verziója szükséges, a rendszeren $2 van.",
        "config-db-port": "Adatbázisport:",
        "config-db-schema": "MediaWiki-séma",
        "config-mysql-charset": "Adatbázis karakterkészlete:",
        "config-mysql-binary": "Bináris",
        "config-mysql-utf8": "UTF-8",
-       "config-mysql-charset-help": "'''Bináris módban''' a MediaWiki az UTF-8-as szövegeket bináris mezőkben tárolja az adatbázisban.\nEz sokkal hatékonyabb a MySQL UTF-8-as módjánál, és lehetővé teszi a teljes Unicode-karakterkészlet használatát.\n\n'''UTF-8-as módban''' a MySQL tudni fogja,hogy az adatok milyen karakterkészlettel rendelkeznek, és megfelelően átalakítja őket, azonban nem tárolhatóak olyan karakterek, melyek a [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane] felett vannak.",
+       "config-mysql-charset-help": "'''Bináris módban''' a MediaWiki az UTF-8-as szövegeket bináris mezőkben tárolja az adatbázisban.\nEz sokkal hatékonyabb a MySQL UTF-8-as módjánál, és lehetővé teszi a teljes Unicode-karakterkészlet használatát.\n\n'''UTF-8-as módban''' a MySQL tudni fogja,hogy az adatok milyen karakterkészlettel rendelkeznek, és megfelelően átalakítja őket, azonban nem tárolhatóak olyan karakterek, melyek a [https://en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane] felett vannak.",
        "config-mssql-auth": "Hitelesítés típusa:",
        "config-mssql-sqlauth": "SQL Server hitelesítés",
        "config-mssql-windowsauth": "Windows hitelesítés",
        "config-profile-no-anon": "Felhasználói fiók létrehozása szükséges",
        "config-profile-fishbowl": "Csak engedélyezett szerkesztők",
        "config-profile-private": "Privát wiki",
-       "config-profile-help": "A wikik akkor működnek a legjobban, ha minél több felhasználó számára engedélyezett a szerkesztés.\nA MediaWikiben könnyű ellenőrizni a legutóbbi változtatásokat,és visszaállítani a naiv vagy káros felhasználók által okozott károkat.\n\nA MediaWiki azonban számos helyzetben hasznos lehet, és néha nem könnyű mindenkit meggyőzni a wiki előnyeiről.\nVálaszthatsz!\n\n<strong>{{int:config-profile-wiki}}kben</strong> bárki szerkeszthet, akár bejelentkezés nélkül is. A <strong>{{int:config-profile-no-anon}}</strong> beállítás további biztonságot nyújt, azonban elijesztheti az alkalmi szerkesztőket.\n\nLehetőség van arra is, hogy <strong>{{lc:{{int:config-profile-fishbowl}}}}</strong> módosíthassák a lapokat, de a nyilvánosság ekkor megtekintheti a lapokat és azok laptörténetét is. <strong>{{int:config-profile-private}}</strong> esetén csak az engedélyezett szerkesztők tekinthetik meg a lapokat, és ugyanez a csoport szerkeszthet.\n\nTelepítés után jóval összetettebb jogosultságrendszer állítható össze, további információ a [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights kézikönyv kapcsolódó bejegyzésében].",
+       "config-profile-help": "A wikik akkor működnek a legjobban, ha minél több felhasználó számára engedélyezett a szerkesztés.\nA MediaWikiben könnyű ellenőrizni a legutóbbi változtatásokat,és visszaállítani a naiv vagy káros felhasználók által okozott károkat.\n\nA MediaWiki azonban számos helyzetben hasznos lehet, és néha nem könnyű mindenkit meggyőzni a wiki előnyeiről.\nVálaszthatsz!\n\n<strong>{{int:config-profile-wiki}}kben</strong> bárki szerkeszthet, akár bejelentkezés nélkül is. A <strong>{{int:config-profile-no-anon}}</strong> beállítás további biztonságot nyújt, azonban elijesztheti az alkalmi szerkesztőket.\n\nLehetőség van arra is, hogy <strong>{{lc:{{int:config-profile-fishbowl}}}}</strong> módosíthassák a lapokat, de a nyilvánosság ekkor megtekintheti a lapokat és azok laptörténetét is. <strong>{{int:config-profile-private}}</strong> esetén csak az engedélyezett szerkesztők tekinthetik meg a lapokat, és ugyanez a csoport szerkeszthet.\n\nTelepítés után jóval összetettebb jogosultságrendszer állítható össze, további információ a [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights kézikönyv kapcsolódó bejegyzésében].",
        "config-license": "Szerzői jog és licenc:",
        "config-license-none": "Nincs licencjelzés",
        "config-license-cc-by-sa": "Creative Commons Nevezd meg! - Így add tovább!",
        "config-email-sender-help": "Add meg a kimenő e-mail-üzenetek válaszcímét.\nIde lesznek küldve a visszapattant üzenetek is.\nSzámos levelezőszerver számára a cím domainrészének érvényesnek kell lennie.",
        "config-upload-settings": "Képek és fájlok feltöltése",
        "config-upload-enable": "Fájlfeltöltés engedélyezése",
-       "config-upload-help": "A fájlfeltöltés lehetséges biztonsági kockázatoknak teszi ki a szerveredet.\nTovábbi információért olvasd el a [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security biztonságról szóló szakaszt] a kézikönyvben.\n\nA fájlfeltöltés engedélyezéséhez változtasd meg a MediaWiki gyökérkönyvtárában található <code>images</code> alkönyvtár jogosultságát úgy, hogy a szerver írhasson oda, majd engedélyezd itt a beállítást.",
+       "config-upload-help": "A fájlfeltöltés lehetséges biztonsági kockázatoknak teszi ki a szerveredet.\nTovábbi információért olvasd el a [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security biztonságról szóló szakaszt] a kézikönyvben.\n\nA fájlfeltöltés engedélyezéséhez változtasd meg a MediaWiki gyökérkönyvtárában található <code>images</code> alkönyvtár jogosultságát úgy, hogy a szerver írhasson oda, majd engedélyezd itt a beállítást.",
        "config-upload-deleted": "Törölt fájlok könyvtára:",
        "config-upload-deleted-help": "Válaszd ki azt a könyvtárat, ahol a törölt fájlok lesznek archiválva.\nNormális esetben ennek nem szabad elérhetőnek lennie az internetről.",
        "config-logo": "A logó URL-címe:",
        "config-logo-help": "A MediaWiki alapértelmezett felülete helyet ad egy 135×160 pixeles logónak a bal felső sarokban.\nTölts fel egy megfelelő méretű képet, majd írd be ide az URL-címét!\n\nHasználhatsz  <code>$wgStylePath</code>-t vagy <code>$wgScriptPath</code>-t, ha más méretű a logód.\n\nHa nem szeretnél logót használni, egyszerűen hagyd üresen a mezőt.",
        "config-instantcommons": "Instant Commons engedélyezése",
-       "config-instantcommons-help": "Az [//www.mediawiki.org/wiki/InstantCommons Instant Commons] lehetővé teszi, hogy a wikin használhassák a [//commons.wikimedia.org/ Wikimedia Commons] oldalon található képeket, hangokat és más médiafájlokat.\nA használatához a MediaWikinek internethozzáférésre van szüksége.\n\nA funkcióról és hogy hogyan állítható be más wikik esetén [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos a kézikönyvben] találhatsz további információkat.",
+       "config-instantcommons-help": "Az [https://www.mediawiki.org/wiki/InstantCommons Instant Commons] lehetővé teszi, hogy a wikin használhassák a [https://commons.wikimedia.org/ Wikimedia Commons] oldalon található képeket, hangokat és más médiafájlokat.\nA használatához a MediaWikinek internethozzáférésre van szüksége.\n\nA funkcióról és hogy hogyan állítható be más wikik esetén [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos a kézikönyvben] találhatsz további információkat.",
        "config-cc-error": "A Creative Commons-licencválasztó nem tért vissza eredménnyel.\nAdd meg kézzel a licencet.",
        "config-cc-again": "Válassz újra…",
        "config-cc-not-chosen": "Válaszd ki a kívánt Creative Commons licencet, majd kattints a „proceed”!",
        "config-help": "segítség",
        "config-help-tooltip": "kattints a kibontáshoz",
        "config-nofile": "\"$1\" fájl nem található. Törölve lett?",
-       "config-extension-link": "Tudtad, hogy a wikid támogat [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions kiterjesztéseket]?\n\nBöngészhetsz [//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category kiterjesztéseket kategóriánként] vagy válogathatsz a [//www.mediawiki.org/wiki/Extension_Matrix kiterjesztésmátrixból] az összes kiterjesztés áttekintéséhez.",
+       "config-extension-link": "Tudtad, hogy a wikid támogat [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions kiterjesztéseket]?\n\nBöngészhetsz [https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category kiterjesztéseket kategóriánként] vagy válogathatsz a [https://www.mediawiki.org/wiki/Extension_Matrix kiterjesztésmátrixból] az összes kiterjesztés áttekintéséhez.",
        "mainpagetext": "'''A MediaWiki telepítése sikeresen befejeződött.'''",
-       "mainpagedocfooter": "Ha segítségre van szükséged a wikiszoftver használatához, akkor keresd fel a [//meta.wikimedia.org/wiki/Help:Contents User's Guide] oldalt.\n\n== Alapok (angol nyelven) ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Beállítások listája]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki GyIK]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki-kiadások levelezőlistája]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources A MediaWiki fordítása a saját nyelvedre]"
+       "mainpagedocfooter": "Ha segítségre van szükséged a wikiszoftver használatához, akkor keresd fel a [https://meta.wikimedia.org/wiki/Help:Contents User's Guide] oldalt.\n\n== Alapok (angol nyelven) ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Beállítások listája]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki GyIK]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki-kiadások levelezőlistája]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources A MediaWiki fordítása a saját nyelvedre]"
 }
index 369f4ed..0f5f684 100644 (file)
@@ -39,5 +39,5 @@
        "config-cc-again": "Ընտրեեք նորից...",
        "config-help": "օգնություն",
        "mainpagetext": "'''«MediaWiki» ծրագիրը հաջողությամբ տեղադրվեց։'''",
-       "mainpagedocfooter": "Այցելեք [//meta.wikimedia.org/wiki/Help:Contents User's Guide]՝ վիքի ծրագրային ապահովման օգտագործման մասին տեղեկությունների համար։\n\n== Որոշ օգտակար ռեսուրսներ ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
+       "mainpagedocfooter": "Այցելեք [https://meta.wikimedia.org/wiki/Help:Contents User's Guide]՝ վիքի ծրագրային ապահովման օգտագործման մասին տեղեկությունների համար։\n\n== Որոշ օգտակար ռեսուրսներ ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
 }
index c3ccb75..2ebd0b3 100644 (file)
        "config-restart": "Si, reinitia lo",
        "config-welcome": "=== Verificationes del ambiente ===\nVerificationes de base essera ora exequite pro determinar si iste ambiente es apte pro le installation de MediaWiki.\nNon oblida de includer iste information si tu cerca adjuta pro completar le installation.",
        "config-copyright": "=== Copyright and Terms ===\n\n$1\n\nIste programma es software libere; vos pote redistribuer lo e/o modificar lo sub le conditiones del Licentia Public General de GNU publicate per le Free Software Foundation; version 2 del Licentia, o (a vostre option) qualcunque version posterior.\n\nIste programma es distribuite in le sperantia que illo sia utile, ma '''sin garantia''', sin mesmo le implicite garantia de '''commercialisation''' o '''aptitude pro un proposito particular'''.\nVide le Licentia Public General de GNU pro plus detalios.\n\nVos deberea haber recipite <doclink href=Copying>un exemplar del Licentia Public General de GNU</doclink> con iste programma; si non, scribe al Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA, o [http://www.gnu.org/copyleft/gpl.html lege lo in linea].",
-       "config-sidebar": "* [//www.mediawiki.org Pagina principal de MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Guida pro usatores]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Guida pro administratores]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ]\n----\n* <doclink href=Readme>Lege me</doclink>\n* <doclink href=ReleaseNotes>Notas de iste version</doclink>\n* <doclink href=Copying>Conditiones de copia</doclink>\n* <doclink href=UpgradeDoc>Actualisation</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org Pagina principal de MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Guida pro usatores]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Guida pro administratores]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ]\n----\n* <doclink href=Readme>Lege me</doclink>\n* <doclink href=ReleaseNotes>Notas de iste version</doclink>\n* <doclink href=Copying>Conditiones de copia</doclink>\n* <doclink href=UpgradeDoc>Actualisation</doclink>",
        "config-env-good": "Le ambiente ha essite verificate.\nTu pote installar MediaWiki.",
        "config-env-bad": "Le ambiente ha essite verificate.\nTu non pote installar MediaWiki.",
        "config-env-php": "PHP $1 es installate.",
        "config-env-hhvm": "HHVM $1 es installate.",
        "config-unicode-using-intl": "Le [http://pecl.php.net/intl extension PECL intl] es usate pro le normalisation Unicode.",
-       "config-unicode-pure-php-warning": "'''Aviso''': Le [http://pecl.php.net/intl extension PECL intl] non es disponibile pro exequer le normalisation Unicode; le systema recurre al implementation lente in PHP pur.\nSi tu sito ha un alte volumine de traffico, tu deberea informar te un poco super le [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalisation Unicode].",
-       "config-unicode-update-warning": "'''Aviso''': Le version installate del bibliotheca inveloppante pro normalisation Unicode usa un version ancian del bibliotheca del [http://site.icu-project.org/ projecto ICU].\nTu deberea [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations actualisar lo] si le uso de Unicode importa a te.",
+       "config-unicode-pure-php-warning": "'''Aviso''': Le [http://pecl.php.net/intl extension PECL intl] non es disponibile pro exequer le normalisation Unicode; le systema recurre al implementation lente in PHP pur.\nSi tu sito ha un alte volumine de traffico, tu deberea informar te un poco super le [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalisation Unicode].",
+       "config-unicode-update-warning": "'''Aviso''': Le version installate del bibliotheca inveloppante pro normalisation Unicode usa un version ancian del bibliotheca del [http://site.icu-project.org/ projecto ICU].\nTu deberea [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations actualisar lo] si le uso de Unicode importa a te.",
        "config-no-db": "Non poteva trovar un driver appropriate pro le base de datos! Es necessari installar un driver de base de datos pro PHP.\nLe sequente {{PLURAL:$2|typo|typos}} de base de datos es supportate: $1.\n\nSi tu compilava PHP tu mesme, reconfigura lo con un cliente de base de datos activate, per exemplo, usante <code>./configure --with-mysqli</code>.\nSi tu installava PHP ex un pacchetto Debian o Ubuntu, tu debe etiam installar, per exemplo, le modulo <code>php5-mysql</code>.",
        "config-outdated-sqlite": "'''Attention''': tu ha SQLite $1, que es inferior al version minimal requirite, $2. SQLite essera indisponibile.",
        "config-no-fts3": "'''Attention''': SQLite es compilate sin [//sqlite.org/fts3.html modulo FTS3]; functionalitate de recerca non essera disponibile in iste back-end.",
-       "config-mbstring": "'''Fatal: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] es active!'''\nIste option causa errores e pote corrumper datos imprevisibilemente.\nTu non pote installar o usar MediaWiki si iste option non es disactivate.",
-       "config-xml-bad": "Le modulo XML de PHP es mancante.\nMediaWiki require functiones de iste modulo e non functionara in iste configuration.\nEs possibile que tu debe installar le pacchetto RPM php-xml.",
        "config-pcre-old": "<strong>Fatal:</strong> PCRE $1 o plus tarde es necessari.\nTu binario de PHP binary es ligate con PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Plus information].",
        "config-pcre-no-utf8": "'''Fatal''': Le modulo PCRE de PHP pare haber essite compilate sin supporto de PCRE_UTF8.\nMediaWiki require supporto de UTF-8 pro functionar correctemente.",
        "config-memory-raised": "Le <code>memory_limit</code> de PHP es $1, elevate a $2.",
        "config-memory-bad": "'''Aviso:''' Le <code>memory_limit</code> de PHP es $1.\nIsto es probabilemente troppo basse.\nLe installation pote faller!",
-       "config-ctype": "'''Fatal''': PHP debe esser compilate con supporto pro le [http://www.php.net/manual/en/ctype.installation.php extension Ctype].",
-       "config-iconv": "<strong>Fatal:</strong> PHP debe esser compilate con supporto pro le [http://www.php.net/manual/en/iconv.installation.php extension iconv].",
-       "config-json": "'''Fatal:''' PHP ha essite compilate sin supporto de JSON.\nTu debe installar le extension JSON de PHP o le extension [http://pecl.php.net/package/jsonc PECL jsonc] extension ante de installar MediaWiki.\n* Le extension de PHP es includite in Red Hat Enterprise Linux (CentOS) 5 e 6, ma debe esser activate in <code>/etc/php.ini</code> o <code>/etc/php.d/json.ini</code>.\n* Alcun distributiones de Linux liberate post maio 2013 omitte iste extension de PHP, forniente in su loco le extension PECL como <code>php5-json</code> o <code>php-pecl-jsonc</code>.",
-       "config-mbstring-absent": "<strong>Fatal:</strong> PHP debe esser compilate con supporto pro le [http://www.php.net/manual/en/mbstring.setup.php extension mbstring].",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] es installate",
        "config-apc": "[http://www.php.net/apc APC] es installate",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] es installate",
@@ -80,7 +74,7 @@
        "config-no-cli-uri": "'''Attention''': Cammino al script (<code>--scriptpath</code>) non specificate. Le predefinition es usate: <code>$1</code>.",
        "config-using-server": "Es usate le nomine de servitor \"<nowiki>$1</nowiki>\".",
        "config-using-uri": "Le URL de servitor \"<nowiki>$1$2</nowiki>\" es usate.",
-       "config-uploads-not-safe": "'''Aviso:''' Le directorio predefinite pro files incargate <code>$1</code> es vulnerabile al execution arbitrari de scripts.\nBen que MediaWiki verifica tote le files incargate contra le menacias de securitate, il es altemente recommendate [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security remediar iste vulnerabilitate de securitate] ante de activar le incargamento de files.",
+       "config-uploads-not-safe": "'''Aviso:''' Le directorio predefinite pro files incargate <code>$1</code> es vulnerabile al execution arbitrari de scripts.\nBen que MediaWiki verifica tote le files incargate contra le menacias de securitate, il es altemente recommendate [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security remediar iste vulnerabilitate de securitate] ante de activar le incargamento de files.",
        "config-no-cli-uploads-check": "'''Attention:''' Le directorio predefinite pro files incargate (<code>$1</code>) non es verificate contra le vulnerabilitate\nal execution arbitrari de scripts durante le installation de CLI.",
        "config-brokenlibxml": "Vostre systema ha un combination de versiones de PHP e libxml2 que es defectuose e pote causar corruption celate de datos in MediaWiki e altere applicationes web.\nActualisa a libxml2 2.7.3 o plus recente ([https://bugs.php.net/bug.php?id=45996 problema reportate presso PHP]).\nInstallation abortate.",
        "config-suhosin-max-value-length": "Suhosin es installate e limita parametro <code>length</code> de GET a $1 bytes.\nLe componente ResourceLoader de MediaWiki va contornar iste limite, ma isto prejudicara le rendimento.\nSi possibile, tu deberea mitter <code>suhosin.get.max_value_length</code> a 1024 o superior in <code>php.ini</code>, e mitter <code>$wgResourceLoaderMaxQueryLength</code> al mesme valor in <code>LocalSettings.php</code>.",
        "config-mysql-charset": "Codification de characteres in le base de datos:",
        "config-mysql-binary": "Binari",
        "config-mysql-utf8": "UTF-8",
-       "config-mysql-charset-help": "In '''modo binari''', MediaWiki immagazina le texto UTF-8 in le base de datos in campos binari.\nIsto es plus efficiente que le modo UTF-8 de MySQL, e permitte usar le rango complete de characteres Unicode.\n\nIn '''modo UTF-8''', MySQL cognoscera le codification de characteres usate pro tu dats, e pote presentar e converter lo appropriatemente, ma illo non permittera immagazinar characteres supra le [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Plano Multilingue Basic].",
+       "config-mysql-charset-help": "In '''modo binari''', MediaWiki immagazina le texto UTF-8 in le base de datos in campos binari.\nIsto es plus efficiente que le modo UTF-8 de MySQL, e permitte usar le rango complete de characteres Unicode.\n\nIn '''modo UTF-8''', MySQL cognoscera le codification de characteres usate pro tu dats, e pote presentar e converter lo appropriatemente, ma illo non permittera immagazinar characteres supra le [https://en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Plano Multilingue Basic].",
        "config-mssql-auth": "Typo de authentication:",
        "config-mssql-install-auth": "Selige le typo de authentication a usar pro connecter al base de datos durante le processo de installation.\nSi tu selige \"{{int:config-mssql-windowsauth}}\", le credentiales del usator que executa le servitor web essera usate.",
        "config-mssql-web-auth": "Selige le typo de authentication que le servitor web usara pro connecter al base de datos durante le operation ordinari del wiki.\nSi tu selige \"{{int:config-mssql-windowsauth}}\", le credentiales del usator que executa le servitor web essera usate.",
        "config-profile-no-anon": "Creation de conto obligatori",
        "config-profile-fishbowl": "Modificatores autorisate solmente",
        "config-profile-private": "Wiki private",
-       "config-profile-help": "Le wikis functiona melio si tu permitte a tante personas como possibile de modificar los.\nIn MediaWiki, il es facile revider le modificationes recente, e reverter omne damno facite per usatores naive o malitiose.\n\nNonobstante, multes ha trovate MediaWiki utile in un grande varietate de rolos, e alcun vices il non es facile convincer omnes del beneficios del principio wiki.\nDunque, a te le option.\n\nLe modello '''{{int:config-profile-wiki}}''' permitte a omnes de modificar, sin mesmo aperir un session.\nUn wiki con '''{{int:config-profile-no-anon}}''' attribue additional responsabilitate, ma pote dissuader contributores occasional.\n\nLe scenario '''{{int:config-profile-fishbowl}}''' permitte al usatores approbate de modificar, ma le publico pote vider le paginas, includente lor historia.\nUn '''{{int:config-profile-private}}''' permitte solmente al usatores approbate de vider le paginas e de modificar los.\n\nConfigurationes de derectos de usator plus complexe es disponibile post installation, vide le [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights pertinente section del manual].",
+       "config-profile-help": "Le wikis functiona melio si tu permitte a tante personas como possibile de modificar los.\nIn MediaWiki, il es facile revider le modificationes recente, e reverter omne damno facite per usatores naive o malitiose.\n\nNonobstante, multes ha trovate MediaWiki utile in un grande varietate de rolos, e alcun vices il non es facile convincer omnes del beneficios del principio wiki.\nDunque, a te le option.\n\nLe modello '''{{int:config-profile-wiki}}''' permitte a omnes de modificar, sin mesmo aperir un session.\nUn wiki con '''{{int:config-profile-no-anon}}''' attribue additional responsabilitate, ma pote dissuader contributores occasional.\n\nLe scenario '''{{int:config-profile-fishbowl}}''' permitte al usatores approbate de modificar, ma le publico pote vider le paginas, includente lor historia.\nUn '''{{int:config-profile-private}}''' permitte solmente al usatores approbate de vider le paginas e de modificar los.\n\nConfigurationes de derectos de usator plus complexe es disponibile post installation, vide le [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights pertinente section del manual].",
        "config-license": "Copyright e licentia:",
        "config-license-none": "Nulle licentia in pede de paginas",
        "config-license-cc-by-sa": "Creative Commons Attribution Share Alike",
        "config-email-sender-help": "Entra le adresse de e-mail a usar como adresse de retorno in e-mail sortiente.\nHic es recipite le notificationes de non-livration.\nMulte servitores de e-mail require que al minus le parte de nomine de dominio sia valide.",
        "config-upload-settings": "Incargamento de imagines e files",
        "config-upload-enable": "Activar le incargamento de files",
-       "config-upload-help": "Le incargamento de files potentialmente expone tu servitor a riscos de securitate.\nPro plus information, lege le [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security section de securitate] in le manual.\n\nPro activar le incargamento de files, cambia le modo in le subdirectorio <code>images</code> sub le directorio-radice de MediaWiki de sorta que le servitor web pote scriber in illo.\nPostea activa iste option.",
+       "config-upload-help": "Le incargamento de files potentialmente expone tu servitor a riscos de securitate.\nPro plus information, lege le [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security section de securitate] in le manual.\n\nPro activar le incargamento de files, cambia le modo in le subdirectorio <code>images</code> sub le directorio-radice de MediaWiki de sorta que le servitor web pote scriber in illo.\nPostea activa iste option.",
        "config-upload-deleted": "Directorio pro files delite:",
        "config-upload-deleted-help": "Selige un directorio in le qual archivar le files delite.\nIdealmente, isto non debe esser accessibile ab le web.",
        "config-logo": "URL del logotypo:",
        "config-logo-help": "Le apparentia predefinite de MediaWiki include spatio pro un logotypo de 135×160 pixels supra le menu del barra lateral.\nIncarga un imagine con le dimensiones appropriate, e entra le URL hic.\n\nTu pote usar <code>$wgStylePath</code> o <code>$wgScriptPath</code> si le loco de tu logotypo es relative a iste camminos.\n\nSi tu non vole un logotypo, lassa iste quadro vacue.",
        "config-instantcommons": "Activar \"Instant Commons\"",
-       "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons Instant Commons] es un function que permitte a wikis de usar imagines, sonos e altere multimedia trovate in le sito [//commons.wikimedia.org/ Wikimedia Commons].\nPro poter facer isto, MediaWiki require accesso a Internet.\n\nPro plus information super iste function, includente instructiones super como configurar lo pro wikis altere que Wikimedia Commons, consulta [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos le manual].",
+       "config-instantcommons-help": "[https://www.mediawiki.org/wiki/InstantCommons Instant Commons] es un function que permitte a wikis de usar imagines, sonos e altere multimedia trovate in le sito [https://commons.wikimedia.org/ Wikimedia Commons].\nPro poter facer isto, MediaWiki require accesso a Internet.\n\nPro saper plus, p.ex. como configurar lo pro wikis altere que Wikimedia Commons, consulta [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos le manual].",
        "config-cc-error": "Le selector de licentia Creative Commons non dava un resultato.\nEntra le nomine del licentia manualmente.",
        "config-cc-again": "Selige de novo…",
        "config-cc-not-chosen": "Selige le licentia Creative Commons que tu prefere e clicca \"proceed\".",
        "config-install-extension-tables": "Creation de tabellas pro le extensiones activate",
        "config-install-mainpage-failed": "Non poteva inserer le pagina principal: $1",
        "config-install-done": "<strong>Felicitationes!</strong>\nTu ha installate MediaWiki.\n\nLe installator ha generate un file <code>LocalSettings.php</code>.\nIste contine tote le configuration.\n\nEs necessari discargar lo e poner lo in le base del installation wiki (le mesme directorio que index.php).\nLe discargamento debe haber comenciate automaticamente.\n\nSi le discargamento non ha comenciate, o si illo esseva cancellate, recomencia le discargamento con un clic sur le ligamine sequente:\n\n$3\n\n<strong>Nota:</strong> Si tu non discarga iste file de configuration ora, illo non essera disponibile plus tarde.\n\nPost facer isto, tu pote <strong>[$2 entrar in tu wiki]</strong>.",
+       "config-install-done-path": "<strong>Felicitationes!</strong>\nTu ha installate MediaWiki.\n\nLe installator ha generate un file <code>LocalSettings.php</code>.\nIste contine tote le configuration.\n\nEs necessari discargar lo e poner lo in <code>$4</code>.\nLe discargamento debe haber comenciate automaticamente.\n\nSi le discargamento non ha comenciate, o si illo esseva cancellate, recomencia le discargamento con un clic sur le ligamine sequente:\n\n$3\n\n<strong>Nota:</strong> Si tu non discarga iste file de configuration ora, illo non essera disponibile plus tarde.\n\nPost facer isto, tu pote <strong>[$2 entrar in tu wiki]</strong>.",
        "config-download-localsettings": "Discargar <code>LocalSettings.php</code>",
        "config-help": "adjuta",
        "config-help-tooltip": "clicca pro displicar",
        "config-nofile": "Le file \"$1\" non poteva esser trovate. Ha illo essite delite?",
-       "config-extension-link": "Sapeva tu que tu wiki supporta [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions extensiones]?\n\nTu pote explorar le [//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category extensiones per category] o le [//www.mediawiki.org/wiki/Extension_Matrix matrice de extensiones] pro vider le lista complete de extensiones.",
+       "config-extension-link": "Sapeva tu que tu wiki supporta [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions extensiones]?\n\nTu pote explorar le [https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category extensiones per category] o le [https://www.mediawiki.org/wiki/Extension_Matrix matrice de extensiones] pro vider le lista complete de extensiones.",
        "mainpagetext": "<strong>MediaWiki ha essite installate.</strong>",
-       "mainpagedocfooter": "Consulta le [//meta.wikimedia.org/wiki/Help:Contents Guida del usator] pro information sur le uso del software wiki.\n\n== Pro initiar ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista de configurationes]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ a proposito de MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de diffusion pro annuncios de nove versiones de MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Traducer MediaWiki in tu lingua]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Como combatter le spam in tu wiki]"
+       "mainpagedocfooter": "Consulta le [https://meta.wikimedia.org/wiki/Help:Contents Guida del usator] pro information sur le uso del software wiki.\n\n== Pro initiar ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista de configurationes]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ a proposito de MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de diffusion pro annuncios de nove versiones de MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Traducer MediaWiki in tu lingua]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Como combatter le spam in tu wiki]"
 }
index 0095e57..296ddbd 100644 (file)
@@ -12,7 +12,8 @@
                        "Ilham151096",
                        "Bennylin",
                        "WongKentir",
-                       "Macofe"
+                       "Macofe",
+                       "Rachmat.Wahidi"
                ]
        },
        "config-desc": "Penginstal untuk MediaWiki",
@@ -21,7 +22,7 @@
        "config-localsettings-upgrade": "Berkas <code>LocalSettings.php</code> sudah ada.\nUntuk memutakhirkan instalasi ini, masukkan nilai <code>$wgUpgradeKey</code> dalam kotak yang tersedia di bawah ini.\nAnda dapat menemukan nilai tersebut dalam <code>LocalSettings.php</code>.",
        "config-localsettings-cli-upgrade": "Berkas <code>LocalSettings.php</code> terdeteksi.\nUntuk meningkatkan versi, harap jalankan <code>update.php</code>.",
        "config-localsettings-key": "Kunci pemutakhiran:",
-       "config-localsettings-badkey": "Kunci yang Anda berikan tidak benar",
+       "config-localsettings-badkey": "Kunci pembaruan yang Anda berikan tidak benar.",
        "config-upgrade-key-missing": "Suatu instalasi MediaWiki telah terdeteksi.\nUntuk memutakhirkan instalasi ini, silakan masukkan baris berikut di bagian bawah <code>LocalSettings.php</code> Anda:\n\n$1",
        "config-localsettings-incomplete": "<code>LocalSettings.php</code> yang ada tampaknya tidak lengkap.\nVariabel $1 tidak diatur.\nSilakan ubah <code>LocalSettings.php</code> untuk mengatur variabel ini dan klik \"{{int:Config-continue}}\".",
        "config-localsettings-connection-error": "Ditemukan galat saat menghubungkan ke basis data dengan menggunakan setelan yang ditentukan di <code>LocalSettings.php</code>. Harap perbaiki setelan ini dan coba lagi.\n\n$1",
        "config-restart": "Ya, nyalakan ulang",
        "config-welcome": "=== Pengecekan lingkungan ===\nPengecekan dasar kini akan dilakukan untuk melihat apakah lingkungan ini memadai untuk instalasi MediaWiki.\nIngatlah untuk menyertakan informasi ini jika Anda mencari bantuan tentang cara menyelesaikan instalasi.",
        "config-copyright": "=== Hak cipta dan persyaratan ===\n\n$1\n\nProgram ini adalah perangkat lunak bebas; Anda dapat mendistribusikan dan/atau memodifikasi di bawah persyaratan GNU General Public License seperti yang diterbitkan oleh Free Software Foundation; baik versi 2 lisensi, atau (sesuai pilihan Anda) versi yang lebih baru.\n\nProgram ini didistribusikan dengan harapan bahwa itu akan berguna, tetapi <strong>tanpa jaminan apa pun</strong>; bahkan tanpa jaminan tersirat untuk <strong>dapat diperjualbelikan</strong> atau <strong>sesuai untuk tujuan tertentu</strong>.\nLihat GNU General Public License untuk lebih jelasnya.\n\nAnda seharusnya telah menerima <doclink href=\"Copying\">salinan dari GNU General Public License</doclink> bersama dengan program ini; jika tidak, kirimkan surat untuk Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA, atau [http://www.gnu.org/copyleft/gpl.html baca versi daring].",
-       "config-sidebar": "* [//www.mediawiki.org/wiki/MediaWiki/id Situs MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents/id Pedoman Pengguna]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents/id Pedoman Administrator]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/id FAQ]\n----\n* <doclink href=Readme>Read me</doclink>\n* <doclink href=ReleaseNotes>Release notes</doclink>\n* <doclink href=Copying>Copying</doclink>\n* <doclink href=UpgradeDoc>Upgrading</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org/wiki/MediaWiki/id Situs MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents/id Pedoman Pengguna]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents/id Pedoman Administrator]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/id FAQ]\n----\n* <doclink href=Readme>Read me</doclink>\n* <doclink href=ReleaseNotes>Release notes</doclink>\n* <doclink href=Copying>Copying</doclink>\n* <doclink href=UpgradeDoc>Upgrading</doclink>",
        "config-env-good": "Kondisi telah diperiksa.\nAnda dapat menginstal MediaWiki.",
        "config-env-bad": "Kondisi telah diperiksa.\nAnda tidak dapat menginstal MediaWiki.",
        "config-env-php": "PHP $1 diinstal.",
        "config-env-hhvm": "HHVM $1 telah dipasang.",
        "config-unicode-using-intl": "Menggunakan [http://pecl.php.net/intl ekstensi PECL intl] untuk normalisasi Unicode.",
-       "config-unicode-pure-php-warning": "'''Peringatan''': [http://pecl.php.net/intl Ekstensi intl PECL] untuk menangani normalisasi Unicode tidak tersedia, kembali menggunakan implementasi murni PHP yang lambat.\nJika Anda menjalankan situs berlalu lintas tinggi, Anda harus sedikit membaca [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalisasi Unicode].",
-       "config-unicode-update-warning": "'''Peringatan''': Versi terinstal dari pembungkus normalisasi Unicode menggunakan versi lama pustaka [http://site.icu-project.org/ proyek ICU].\nAnda harus [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations memutakhirkannya] jika Anda ingin menggunakan Unicode.",
-       "config-no-db": "Pengandar basis data yang sesuai tidak ditemukan! Anda perlu menginstal pengandar basis data untuk PHP.\nJenis basis data yang didukung: $1.\n\nJika Anda mengompilasi sendiri PHP, ubahlah konfigurasinya dengan mengaktifkan klien basis data, misalnya menggunakan <code>./configure --with-mysql</code>.\nJika Anda menginstal PHP dari paket Debian atau Ubuntu, maka Anda juga perlu menginstal modul php5-mysql.",
+       "config-unicode-pure-php-warning": "'''Peringatan''': [http://pecl.php.net/intl Ekstensi intl PECL] untuk menangani normalisasi Unicode tidak tersedia, kembali menggunakan implementasi murni PHP yang lambat.\nJika Anda menjalankan situs berlalu lintas tinggi, Anda harus sedikit membaca [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalisasi Unicode].",
+       "config-unicode-update-warning": "'''Peringatan''': Versi terinstal dari pembungkus normalisasi Unicode menggunakan versi lama pustaka [http://site.icu-project.org/ proyek ICU].\nAnda harus [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations memutakhirkannya] jika Anda ingin menggunakan Unicode.",
+       "config-no-db": "Pengandar basis data yang sesuai tidak ditemukan! Anda perlu menginstal pengandar basis data untuk PHP.\n{{PLURAL:$2|Jenis|Jenis}} basis data yang didukung: $1.\n\nJika Anda mengompilasi PHP sendiri, ubahlah konfigurasinya dengan mengaktifkan klien basis data, misalnya menggunakan <code>./configure --with-mysql</code>.\nJika Anda menginstal PHP dari paket Debian atau Ubuntu, maka Anda juga perlu menginstal seperti paket <code>php5-mysql</code>.",
        "config-outdated-sqlite": "<strong>Peringatan:</strong> Anda menggunakan SQLite $1, yang lebih rendah dari versi minimum yang diperlukan $2. SQLite akan tidak tersedia.",
        "config-no-fts3": "'''Peringatan''': SQLite dikompilasi tanpa [//sqlite.org/fts3.html modul FTS3], fitur pencarian tidak akan tersedia pada konfigurasi ini.",
-       "config-register-globals-error": "<strong>Kesalahan: Pilihan PHP <code>[http://php.net/register_globals register_globals]</code> diaktifkan.\nIni harus dinonaktifkan untuk melanjutkan instalasi.</strong>\nLihat [https://www.mediawiki.org/wiki/register_globals https://www.mediawiki.org/wiki/register_globals] untuk bantuan tentang cara melakukannya.",
-       "config-magic-quotes-runtime": "'''Fatal: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] aktif!'''\nPilihan ini dapat merusak masukan data secara tidak terduga.\nAnda tidak dapat menginstal atau menggunakan MediaWiki kecuali pilihan ini dinonaktifkan.",
-       "config-magic-quotes-sybase": "'''Fatal: [http://www.php.net/manual/en/ref.info.php#ini.magic_quotes_sybase magic_quotes_sybase] aktif!'''\nPilihan ini dapat merusak masukan data secara tidak terduga.\nAnda tidak dapat menginstal atau menggunakan MediaWiki kecuali pilihan ini dinonaktifkan.",
-       "config-mbstring": "'''Fatal: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] aktif!'' '\nPilihan ini dapat menyebabkan kesalahan dan kerusakan data yang tidak terduga.\nAnda tidak dapat menginstal atau menggunakan MediaWiki kecuali pilihan ini dinonaktifkan.",
-       "config-safe-mode": "''' Peringatan:''' [http://www.php.net/features.safe-mode Mode aman] PHP aktif.\nHal ini akan menyebabkan masalah, terutama jika menggunakan pengunggahan berkas dan dukungan <code>math</code>.",
-       "config-xml-bad": "Modul XML PHP hilang.\nMediaWiki membutuhkan fungsi dalam modul ini dan tidak akan bekerja dalam konfigurasi ini.\nJika Anda menggunakan Mandrake, instal paket php-xml.",
        "config-pcre-old": "<strong>Fatal:</strong> PCRE $1 atau kemudian diperlukan.\nBiner PHP Anda dihubungkan dengan PCRE $2. [https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Selengkapnya].",
        "config-pcre-no-utf8": "'''Fatal''': Modul PCRE PHP tampaknya dikompilasi tanpa dukungan PCRE_UTF8.\nMediaWiki memerlukan dukungan UTF-8 untuk berfungsi dengan benar.",
        "config-memory-raised": "<code>memory_limit</code> PHP adalah $1, dinaikkan ke $2.",
        "config-memory-bad": "'''Peringatan:''' <code>memory_limit</code> PHP adalah $1.\nIni terlalu rendah.\nInstalasi terancam gagal!",
-       "config-ctype": "<strong>Fatal:</strong> PHP harus disusun dengan dukungan untuk [http://www.php.net/manual/en/ctype.installation.php ekstensi Ctype].",
-       "config-json": "<strong>Fatal:</strong> PHP dikompilasi tanpa dukungan JSON.\nAnda harus menginstal salah satu pengaya PHP JSON atau pengaya [http://pecl.php.net/package/jsonc PECL jsonc] sebelum menginstal MediaWiki.\n* Pengaya PHP termasuk dalam Red Hat Enterprise Linux (CentOS) 5 dan 6, meskipun harus diaktifkan pada <code>/etc/php.ini</code> atau <code>/etc/php.d/json.ini</code>.\n* Beberapa distribusi Linux dirilis setelah Mei 2013 menghilangkan pengaya PHP, bukan kemasan pengaya PECL sebagai <code>php5-json</code> atau <code>php-pecl-jsonc</code>.",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] telah diinstal",
        "config-apc": "[http://www.php.net/apc APC] telah diinstal",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] telah diinstal",
-       "config-no-cache": "'''Peringatan:''' Tidak dapat menemukan [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache], atau [http://www.iis.net/download/WinCacheForPhp WinCache]. Pinggahan obyek tidak dinonaktifkan.",
+       "config-no-cache-apcu": "<strong>Peringatan:</strong> Tidak dapat menemukan [http://www.php.net/apcu APCu], [http://xcache.lighttpd.net/ XCache] atau [http://www.iis.net/download/WinCacheForPhp WinCache]. Singgahan obyek tidak diaktifkan.",
        "config-mod-security": "<strong>Peringatan:</strong> Server web Anda memiliki [http://modsecurity.org/ mod_security] yang diaktifkan. Jika salah dalam mengkonfigurasi, ini dapat menyebabkan masalah untuk MediaWiki atau perangkat lunak lain yang memungkinkan pengguna untuk mengirim sembarang konten.\nLihat [http://modsecurity.org/documentation/ dokumentasi mod_security] atau hubungi layanan host Anda jika Anda mengalami kesalahan acak.",
        "config-diff3-bad": "GNU diff3 tidak ditemukan.",
        "config-git": "Menemukan perangkat lunak kontrol versi Git: <code>$1</code>.",
@@ -91,7 +84,7 @@
        "config-no-cli-uri": "<strong>Peringatan:</strong> Tidak ada <code>--scriptpath</code> yang ditentukan, dengan menggunakan standar: <code>$1</code>.",
        "config-using-server": "Menggunakan nama server \"<nowiki>$1</nowiki>\".",
        "config-using-uri": "Menggunakan URL server \"<nowiki>$1$2</nowiki>\".",
-       "config-uploads-not-safe": "'''Peringatan:''' Direktori bawaan pengunggahan <code>$1</code> Anda rentan terhadap eksekusi skrip yang sewenang-wenang.\nMeskipun MediaWiki memeriksa semua berkas unggahan untuk ancaman keamanan, sangat dianjurkan untuk [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security menutup kerentanan keamanan ini] sebelum mengaktifkan pengunggahan.",
+       "config-uploads-not-safe": "'''Peringatan:''' Direktori bawaan pengunggahan <code>$1</code> Anda rentan terhadap eksekusi skrip yang sewenang-wenang.\nMeskipun MediaWiki memeriksa semua berkas unggahan untuk ancaman keamanan, sangat dianjurkan untuk [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security menutup kerentanan keamanan ini] sebelum mengaktifkan pengunggahan.",
        "config-no-cli-uploads-check": "<strong>Peringatan:</strong> Direktori default Anda untuk unggahan (<code>$1</code>) tidak diperiksa untuk kerentanan terhadap\neksekusi script sewenang-wenang selama instalasi CLI.",
        "config-brokenlibxml": "Sistem Anda memiliki kombinasi versi PHP dan libxml2 yang memiliki bug dan dapat menyebabkan kerusakan data tersembunyi pada MediaWiki dan aplikasi web lain.\nMutakhirkan ke PHP 5.2.9 atau yang lebih baru dan libxml2 2.7.3 atau yang lebih baru ([https://bugs.php.net/bug.php?id=45996 arsip bug di PHP]).\nInstalasi dibatalkan.",
        "config-suhosin-max-value-length": "Suhosin terpasang dan membatasi parameter GET <code>length</code> sebesar $1 bita. Komponen ResourceLoader MediaWiki akan berjalan dalam batasan ini, tetapi penanganannya akan menurunkan kinerja. Jika memungkinkan, Anda sebaiknya menetapkan nilai <code>suhosin.get.max_value_length</code> menjadi 1024 atau lebih tinggi dalam <code>php.ini</code> dan menyetel <code>$wgResourceLoaderMaxQueryLength</code> dengan nilai yang sama dalam <code>LocalSettings.php</code>.",
        "config-db-wiki-help": "Masukkan nama pengguna dan sandi yang akan digunakan untuk terhubung ke basis data wiki selama operasi normal.\nJika akun tidak ada, akun instalasi memiliki hak yang memadai, akun pengguna ini akan dibuat dengan hak akses minimum yang diperlukan untuk mengoperasikan wiki.",
        "config-db-prefix": "Prefiks tabel basis data:",
        "config-db-prefix-help": "Jika Anda perlu berbagi satu basis data di antara beberapa wiki, atau antara MediaWiki dan aplikasi web lain, Anda dapat memilih untuk menambahkan prefiks terhadap semua nama tabel demi menghindari konflik.\nJangan gunakan spasi.\n\nPrefiks ini biasanya dibiarkan kosong.",
-       "config-db-charset": "Set karakter basis data",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 biner",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "UTF-8 yang kompatibel balik dengan MySQL 4.0",
-       "config-charset-help": "'''Peringatan:''' Jika Anda menggunakan '''UTF-8 kompatibel balik''' pada MySQL 4.1+, dan kemudian mencadangkan basis data dengan <code>mysqldump</code>, proses itu mungkin menghancurkan semua karakter non-ASCII dan merusak cadangan Anda tanpa dapat dikembalikan!\n\nDalam '''modus biner''', MediaWiki menyimpan teks UTF-8 ke basis data dalam bidang biner.\nIni lebih efisien dibandingkan modus UTF-8 MySQL dan memungkinkan Anda untuk menggunakan berbagai karakter Unicode.\nDalam '''modus UTF-8''', MySQL akan tahu apa set karakter data anda dan dapat menyajikan dan mengubahnya denga tepat, namun tidak akan mengizinkan Anda menyimpan karakter di atas [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
        "config-mysql-old": "MySQL $1 atau versi terbaru diperlukan, Anda menggunakan $2.",
        "config-db-port": "Porta basis data:",
        "config-db-schema": "Skema untuk MediaWiki",
        "config-mysql-charset": "Set karakter basis data:",
        "config-mysql-binary": "Biner",
        "config-mysql-utf8": "UTF-8",
-       "config-mysql-charset-help": "Dalam '''modus biner''', MediaWiki menyimpan teks UTF-8 untuk basis data dalam bidang biner.\nIni lebih efisien daripada modus UTF-8 MySQL dan memungkinkan Anda untuk menggunakan ragam penuh karakter Unicode.\n\nDalam '''modus UTF-8''', MySQL akan tahu apa set karakter data dan dapat menampilkan dan mengubahnya sesuai keperluan, tetapi tidak akan mengizinkan Anda menyimpan karakter di atas [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
+       "config-mysql-charset-help": "Dalam '''modus biner''', MediaWiki menyimpan teks UTF-8 untuk basis data dalam bidang biner.\nIni lebih efisien daripada modus UTF-8 MySQL dan memungkinkan Anda untuk menggunakan ragam penuh karakter Unicode.\n\nDalam '''modus UTF-8''', MySQL akan tahu apa set karakter data dan dapat menampilkan dan mengubahnya sesuai keperluan, tetapi tidak akan mengizinkan Anda menyimpan karakter di atas [https://en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
        "config-mssql-auth": "Jenis otentikasi:",
        "config-mssql-install-auth": "Pilih jenis otentikasi yang akan digunakan untuk menyambung ke database selama proses instalasi.\nJika Anda memilih \"{{int:config-mssql-windowsauth}}\", kredensial dari pengguna apapun pada server web yang berjalan akan digunakan.",
        "config-mssql-web-auth": "Pilih jenis otentikasi yang akan digunakan oleh server web untuk menyambung ke server basis data, selama operasi biasa dari wiki.\nJika Anda memilih \"{{int:config-mssql-windowsauth}}\", kredensial dari pengguna apapun pada server web yang berjalan akan digunakan.",
        "config-ns-site-name": "Sama seperti nama wiki: $1",
        "config-ns-other": "Lainnya (sebutkan)",
        "config-ns-other-default": "MyWiki",
-       "config-project-namespace-help": "Mengikuti contoh Wikipedia, banyak wiki menyimpan halaman kebijakan mereka terpisah dari halaman konten mereka, dalam \"'''ruang nama proyek'''\".\nSemua judul halaman dalam ruang nama ini diawali dengan prefiks tertentu yang dapat Anda tetapkan di sini.\nBiasanya, prefiks ini berasal dari nama wiki, tetapi tidak dapat berisi karakter tanda baca seperti \"#\" atau \":\".",
+       "config-project-namespace-help": "Dengan mengikuti contoh Wikipedia, banyak wiki menyimpan halaman kebijakan mereka terpisah dari halaman konten mereka, dalam '''ruang nama proyek'''.\nSemua judul halaman dalam ruang nama ini diawali dengan awalan tertentu yang dapat Anda tetapkan di sini.\nBiasanya, awalan ini berasal dari nama wiki, tetapi tidak dapat berisi karakter tanda baca seperti \"#\" atau \":\".",
        "config-ns-invalid": "Ruang nama \"<nowiki>$1</nowiki>\" yang ditentukan tidak sah.\nBerikan ruang nama proyek lain.",
        "config-ns-conflict": "Ruang nama \"<nowiki>$1</nowiki>\" yang diberikan berkonflik dengan ruang nama bawaan MediaWiki.\nTentukan ruang nama proyek yang berbeda.",
        "config-admin-box": "Akun pengurus",
        "config-profile-no-anon": "Pembuatan akun diperlukan",
        "config-profile-fishbowl": "Khusus penyunting terdaftar",
        "config-profile-private": "Wiki pribadi",
-       "config-profile-help": "Wiki paling baik bekerja jika Anda membiarkan sebanyak mungkin orang untuk menyunting. Dengan MediaWiki, sangat mudah meninjau perubahan terbaru dan mengembalikan kerusakan yang dilakukan oleh pengguna naif atau berbahaya.\n\nNamun, berbagai kegunaan lain dari MediaWiki telah ditemukan, dan kadang tidak mudah untuk meyakinkan semua orang manfaat dari cara wiki. Jadi, Anda yang menentukan.\n\n'''{{int:config-profile-wiki}}''' memungkinkan setiap orang untuk menyunting, bahkan tanpa masuk.\n'''{{int:config-profile-no-anon}}''' menyediakan akuntabilitas tambahan, tetapi dapat mencegah kontributor biasa.\n\n'''{{int:config-profile-fishbowl}}''' memungkinkan pengguna yang disetujui untuk menyunting, tetapi publik dapat melihat halaman, termasuk riwayatnya.\n'''{{int:config-profile-private}}''' hanya memungkinkan pengguna yang disetujui untuk melihat dan menyunting halaman.\n\nKonfigurasi hak pengguna yang lebih kompleks tersedia setelah instalasi. Lihat [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights/id entri manual terkait].",
+       "config-profile-help": "Wiki paling baik bekerja jika Anda membiarkan sebanyak mungkin orang untuk menyunting. Dengan MediaWiki, sangat mudah meninjau perubahan terbaru dan mengembalikan kerusakan yang dilakukan oleh pengguna naif atau berbahaya.\n\nNamun, berbagai kegunaan lain dari MediaWiki telah ditemukan, dan kadang tidak mudah untuk meyakinkan semua orang manfaat dari cara wiki. Jadi, Anda yang menentukan.\n\n'''{{int:config-profile-wiki}}''' memungkinkan setiap orang untuk menyunting, bahkan tanpa masuk.\n'''{{int:config-profile-no-anon}}''' menyediakan akuntabilitas tambahan, tetapi dapat mencegah kontributor biasa.\n\n'''{{int:config-profile-fishbowl}}''' memungkinkan pengguna yang disetujui untuk menyunting, tetapi publik dapat melihat halaman, termasuk riwayatnya.\n'''{{int:config-profile-private}}''' hanya memungkinkan pengguna yang disetujui untuk melihat dan menyunting halaman.\n\nKonfigurasi hak pengguna yang lebih kompleks tersedia setelah instalasi. Lihat [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights/id entri manual terkait].",
        "config-license": "Hak cipta dan lisensi:",
        "config-license-none": "Tidak ada lisensi",
        "config-license-cc-by-sa": "Creative Commons Atribusi Berbagi Serupa",
        "config-license-gfdl": "Lisensi Dokumentasi Bebas GNU 1.3 atau versi terbaru",
        "config-license-pd": "Domain Umum",
        "config-license-cc-choose": "Pilih lisensi Creative Commons kustom",
-       "config-license-help": "Banyak wiki publik melisensikan semua kontribusi di bawah [http://freedomdefined.org/Definition lisensi bebas].\nHal ini membantu menciptakan rasa kepemilikan komunitas dan mendorong kontribusi jangka panjang.\nHal ini umumnya tidak diperlukan untuk wiki pribadi atau perusahaan.\n\nJika Anda ingin dapat menggunakan teks dari Wikipedia dan Anda ingin agar Wikipedia dapat menerima teks yang disalin dari wiki Anda, Anda harus memilih'''Creative Commons Attribution Share Alike'''.\n\nWikipedia sebelumnya menggunakan GNU Free Documentation License.\nLisensi ini masih sah, namun sulit dipahami.\nSelain itu, sulit untuk menggunakan ulang konten yang dilisensikan di bawah GFDL.",
+       "config-license-help": "Banyak wiki publik melisensikan semua kontribusi di bawah [http://freedomdefined.org/Definition lisensi bebas].\nHal ini membantu menciptakan rasa kepemilikan komunitas dan mendorong kontribusi jangka panjang.\nHal ini umumnya tidak diperlukan untuk wiki pribadi atau perusahaan.\n\nJika Anda ingin dapat menggunakan teks dari Wikipedia dan Anda ingin agar Wikipedia dapat menerima teks yang disalin dari wiki Anda, Anda harus memilih <strong>{{int:config-license-cc-by-sa}}</strong>.\n\nWikipedia sebelumnya menggunakan GNU Free Documentation License.\nLisensi ini masih sah, namun sulit dipahami.\nSelain itu, sulit untuk menggunakan ulang konten yang dilisensikan di bawah GFDL.",
        "config-email-settings": "Pengaturan surel",
        "config-enable-email": "Aktifkan surel keluar",
        "config-enable-email-help": "Jika Anda ingin mengaktifkan surel, [http://www.php.net/manual/en/mail.configuration.php setelah surel PHP] perlu dikonfigurasi dengan benar.\nJika Anda tidak perlu fitur surel, Anda dapat menonaktifkannya di sini.",
        "config-email-sender-help": "Masukkan alamat surel untuk digunakan sebagai alamat pengirim pada surel keluar.\nAlamat ini akan menerima pentalan.\nBanyak server surel mensyaratkan paling tidak bagian nama domain yang sah.",
        "config-upload-settings": "Pengunggahan gambar dan berkas",
        "config-upload-enable": "Aktifkan pengunggahan berkas",
-       "config-upload-help": "Pengunggahan berkas berpotensi memaparkan server Anda dengan risiko keamanan.\nUntuk informasi lebih lanjut, baca [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security/id manual keamanan].\n\nUntuk mengaktifkan pengunggahan berkas, ubah modus subdirektori <code>images</code> di bawah direktori akar MediaWiki agar server web dapat menulis ke sana.\nKemudian aktifkan opsi ini.",
+       "config-upload-help": "Pengunggahan berkas berpotensi memaparkan server Anda dengan risiko keamanan.\nUntuk informasi lebih lanjut, baca [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security/id manual keamanan].\n\nUntuk mengaktifkan pengunggahan berkas, ubah modus subdirektori <code>images</code> di bawah direktori akar MediaWiki agar server web dapat menulis ke sana.\nKemudian aktifkan opsi ini.",
        "config-upload-deleted": "Direktori untuk berkas terhapus:",
        "config-upload-deleted-help": "Pilih direktori tempat mengarsipkan berkas yang dihapus.\nIdealnya, direktori ini tidak boleh dapat diakses dari web.",
        "config-logo": "URL logo:",
        "config-logo-help": "Kulit bawaan MediaWiki memberikan ruang untuk logo berukuran 135x160 piksel di atas menu bilah samping.\nUnggah gambar dengan ukuran yang sesuai, lalu masukkan URL di sini.\n\nAnda dapat menggunakan <code>$wgStylePath</code> atau <code>$wgScriptPath</code> jika logo Anda relatif terhadap jalur (path) ini.\n\nJika Anda tidak ingin menyertakan logo, biarkan kotak ini kosong.",
        "config-instantcommons": "Aktifkan Instant Commons",
-       "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons Instant Commons] adalah fitur yang memungkinkan wiki untuk menggunakan gambar, suara, dan media lain dari [//commons.wikimedia.org/ Wikimedia Commons].\nUntuk melakukannya, MediaWiki memerlukan akses ke Internet.\n\nUntuk informasi lebih lanjut tentang fitur ini, termasuk petunjuk tentang cara untuk mengatur untuk wiki selain Wikimedia Commons, baca [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos manual].",
+       "config-instantcommons-help": "[https://www.mediawiki.org/wiki/InstantCommons Instant Commons] adalah fitur yang memungkinkan wiki untuk menggunakan gambar, suara, dan media lain dari [https://commons.wikimedia.org/ Wikimedia Commons].\nUntuk melakukannya, MediaWiki memerlukan akses ke Internet.\n\nUntuk informasi lebih lanjut tentang fitur ini, termasuk petunjuk tentang cara untuk mengatur untuk wiki selain Wikimedia Commons, baca [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos manual].",
        "config-cc-error": "Pemilih lisensi Creative Commons tidak memberikan hasil.\nMasukkan nama lisensi secara manual.",
        "config-cc-again": "Pilih lagi...",
        "config-cc-not-chosen": "Pilih lisensi Creative Commons yang Anda inginkan dan klik \"proceed\".",
        "config-extensions": "Ekstensi",
        "config-extensions-help": "Ekstensi yang tercantum di atas terdeteksi di direktori <code>./extensions</code>.\n\nEkstensi tersebut mungkin memerlukan konfigurasi tambahan, tetapi Anda dapat mengaktifkannya sekarang.",
        "config-skins": "Tampilan",
+       "config-skins-help": "Kulit yang tersedia di atas terdeteksi dalam direktori <code>./skins</code> Anda. Anda harus mengaktifkan sedikitnya satu kulit, dan pilih kulit baku.",
        "config-skins-use-as-default": "Gunakan tampilan ini secara baku",
+       "config-skins-missing": "Tidak ada kulit ditemukan; MediaWiki akan menggunakan skin cadangan hingga Anda memasang kulit yang cocok.",
+       "config-skins-must-enable-some": "Anda wajib memiliki sedikitnya satu kulit untuk diaktifkan.",
+       "config-skins-must-enable-default": "Kulit yang dipilih sebagai kulit baku harus diaktifkan.",
        "config-install-alreadydone": "'''Peringatan:''' Anda tampaknya telah menginstal MediaWiki dan mencoba untuk menginstalnya lagi.\nLanjutkan ke halaman berikutnya.",
        "config-install-begin": "Dengan menekan \"{{int:config-continue}}\", Anda akan memulai instalasi MediaWiki.\nJika Anda masih ingin membuat perubahan, tekan \"{{int:config-back}}\".",
        "config-install-step-done": "selesai",
        "config-install-stats": "Inisialisasi statistik",
        "config-install-keys": "Membuat kunci rahasia",
        "config-insecure-keys": "'''Peringatan:''' {{PLURAL:$2|Suatu|Beberapa}} kunci aman ($1) yang dibuat selama instalasi {{PLURAL:$2|tidak|tidak}} benar-benar aman. Pertimbangkan untuk mengubah {{PLURAL:$2|kunci|kunci-kunci}} tersebut secara manual.",
+       "config-install-updates": "Cegah jalannya pembaruan yang tidak dibutuhkan",
+       "config-install-updates-failed": "<strong>Kesalahan:</strong> Memasukkan kunci pembaruan ke dalam tabel gagal dengan kode kesalahan: $1",
        "config-install-sysop": "Membuat akun pengguna pengurus",
        "config-install-subscribe-fail": "Tidak dapat berlangganan mediawiki-announce: $1",
        "config-install-subscribe-notpossible": "cURL tidak diinstal dan <code>allow_url_fopen</code> tidak tersedia.",
        "config-install-mainpage": "Membuat halaman utama dengan konten bawaan",
        "config-install-extension-tables": "Pembuatan tabel untuk ekstensi yang diaktifkan",
        "config-install-mainpage-failed": "Tidak dapat membuat halaman utama: $1",
-       "config-install-done": "'''Selamat!'''\nAnda telah berhasil menginstal MediaWiki.\n\nPenginstal telah membuat berkas <code>LocalSettings.php</code>.\nBerkas itu berisi semua konfigurasi Anda.\n\nAnda perlu mengunduh berkas itu dan meletakkannya di direktori instalasi wiki (direktori yang sama dengan index.php). Pengunduhan akan dimulai secara otomatis.\n\nJika pengunduhan tidak terjadi, atau jika Anda membatalkannya, Anda dapat mengulangi pengunduhan dengan mengeklik tautan berikut:\n\n$3\n\n'''Catatan''': Jika Anda tidak melakukannya sekarang, berkas konfigurasi yang dihasilkan ini tidak akan tersedia lagi setelah Anda keluar dari proses instalasi tanpa mengunduhnya.\n\nSetelah melakukannya, Anda dapat '''[$2 memasuki wiki Anda]'''.",
+       "config-install-done": "<strong>Selamat!</strong>\nAnda telah berhasil menginstal MediaWiki.\n\nPemasang telah membuat sebuah berkas <code>LocalSettings.php</code>.\nBerkas itu berisi semua setelan Anda.\n\nAnda perlu mengunduh berkas itu dan meletakkannya di direktori instalasi wiki (direktori yang sama dengan index.php). Pengunduhan akan dimulai secara otomatis.\n\nJika pengunduhan tidak terjadi, atau jika Anda membatalkannya, Anda dapat mengulangi pengunduhan dengan mengeklik tautan berikut:\n\n$3\n\n<strong>Catatan</strong>: Jika Anda tidak melakukannya sekarang, berkas konfigurasi yang dihasilkan ini tidak akan tersedia lagi setelah Anda keluar dari proses instalasi tanpa mengunduhnya.\n\nSetelah melakukannya, Anda dapat <strong>[$2 memasuki wiki Anda]</strong>.",
        "config-download-localsettings": "Unduh <code>LocalSettings.php</code>",
        "config-help": "bantuan",
        "config-help-tooltip": "klik untuk memperluas",
        "config-nofile": "Berkas \"$1\" tidak dapat ditemukan. Mungkin sudah dihapus?",
-       "config-extension-link": "Tahukah Anda bahwa wiki Anda mendukung [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions ekstensi]?\n\nAnda dapat menjelajahi [//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category ekstensi menurut kategori] atau [//www.mediawiki.org/wiki/Extension_Matrix Ekstensi Matriks] untuk melihat daftar lengkap ekstensi.",
-       "mainpagetext": "'''MediaWiki telah terpasang dengan sukses'''.",
-       "mainpagedocfooter": "Silakan baca [//www.mediawiki.org/wiki/Help:Contents Panduan Pengguna] untuk cara penggunaan perangkat lunak wiki ini.\n\n== Memulai penggunaan ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings/id Daftar pengaturan konfigurasi]\n* [//www.mediawiki.org/wiki/Manual:FAQ/id Daftar pertanyaan yang sering diajukan mengenai MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Milis rilis MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Terjemahkan MediaWiki ke bahasa Anda]"
+       "config-extension-link": "Tahukah Anda bahwa wiki Anda mendukung [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions ekstensi]?\n\nAnda dapat menjelajahi [https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category ekstensi menurut kategori] atau [https://www.mediawiki.org/wiki/Extension_Matrix Ekstensi Matriks] untuk melihat daftar lengkap ekstensi.",
+       "mainpagetext": "<strong>MediaWiki telah terpasang dengan sukses.</strong>",
+       "mainpagedocfooter": "Silakan baca [https://www.mediawiki.org/wiki/Help:Contents Panduan Pengguna] untuk cara penggunaan perangkat lunak wiki ini.\n\n== Memulai penggunaan ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings/id Daftar pengaturan konfigurasi]\n* [https://www.mediawiki.org/wiki/Manual:FAQ/id Daftar pertanyaan yang sering diajukan mengenai MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Milis rilis MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Terjemahkan MediaWiki ke bahasa Anda]"
 }
index 15385d2..f8269da 100644 (file)
@@ -13,5 +13,5 @@
        "config-admin-password": "Okwúngáfè:",
        "config-admin-password-confirm": "Okwúngáfè mgbe ozor:",
        "mainpagetext": "'''MediaWiki a banyélé nke oma.'''",
-       "mainpagedocfooter": "Gbàkpó [//meta.wikimedia.org/wiki/Help:Contents Ǹdù Ọ'bànifé] màkà ụmá màkà Í jí ngwa nsónùsòrò bu wiki.\n\n== I bídó ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Ndétu ndósé ihe]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce wéfù ndétu nke ozi MediaWiki]"
+       "mainpagedocfooter": "Gbàkpó [https://meta.wikimedia.org/wiki/Help:Contents Ǹdù Ọ'bànifé] màkà ụmá màkà Í jí ngwa nsónùsòrò bu wiki.\n\n== I bídó ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Ndétu ndósé ihe]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce wéfù ndétu nke ozi MediaWiki]"
 }
index abc7fbf..d6ba2fe 100644 (file)
@@ -1,8 +1,9 @@
 {
        "@metadata": {
                "authors": [
-                       "Умар"
+                       "Умар",
+                       "ElizaMag"
                ]
        },
-       "config-help": "гÓ\80о"
+       "config-help": "новкÑ\8a\81Ñ\82ал"
 }
index 97c275c..aa6395e 100644 (file)
@@ -5,5 +5,5 @@
                ]
        },
        "mainpagetext": "'''MediaWiki instalesis sucese.'''",
-       "mainpagedocfooter": "Videz la [//meta.wikimedia.org/wiki/Help:Contents Guidilo por Uzanti] por informo pri uzar la wiki programo.\n\n== Komencar ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Listo di ''Configuration setting'']\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki OQQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki nova versioni posto-listo]"
+       "mainpagedocfooter": "Videz la [https://meta.wikimedia.org/wiki/Help:Contents Guidilo por Uzanti] por informo pri uzar la wiki programo.\n\n== Komencar ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Listo di ''Configuration setting'']\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki OQQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki nova versioni posto-listo]"
 }
index 50cbc32..37f243d 100644 (file)
@@ -46,8 +46,6 @@
        "config-db-name-oracle": "Gagnagrunnsskema:",
        "config-db-username": "Notandanafn á gagnagrunni:",
        "config-db-password": "Lykilorð gagnagrunns:",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 keyrsluskrá",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
        "config-db-port": "Gátt gagnagrunns:",
        "config-sqlite-dir": "Gagnamappa SQLite:",
        "config-type-mysql": "MySQL (eða samhæft)",
        "config-help": "hjálp",
        "config-help-tooltip": "Smella til að þenja út",
        "mainpagetext": "'''Uppsetning á MediaWiki heppnaðist.'''",
-       "mainpagedocfooter": "Ráðfærðu þig við [//meta.wikimedia.org/wiki/Help:Contents Notandahandbókina] fyrir frekari upplýsingar um notkun wiki-hugbúnaðarins.\n\n== Fyrir byrjendur ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Listi yfir uppsetningarstillingar]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki Algengar spurningar MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Póstlisti MediaWiki-útgáfa]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Læra hvernig á að berjast við amapóst á þínum wiki]"
+       "mainpagedocfooter": "Ráðfærðu þig við [https://meta.wikimedia.org/wiki/Help:Contents Notandahandbókina] fyrir frekari upplýsingar um notkun wiki-hugbúnaðarins.\n\n== Fyrir byrjendur ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Listi yfir uppsetningarstillingar]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki Algengar spurningar MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Póstlisti MediaWiki-útgáfa]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Læra hvernig á að berjast við amapóst á þínum wiki]"
 }
index 42159bc..0a2f40a 100644 (file)
@@ -16,7 +16,9 @@
                        "The Polish",
                        "Sannita",
                        "C.R.",
-                       "Macofe"
+                       "Macofe",
+                       "Matteocng",
+                       "Einreiher"
                ]
        },
        "config-desc": "Programma di installazione per MediaWiki",
        "config-restart": "Sì, riavvia",
        "config-welcome": "=== Controllo dell'ambiente ===\nSaranno eseguiti controlli di base per vedere se questo ambiente è adatto per l'installazione di MediaWiki.\nRicordati di includere queste informazioni se chiedi assistenza su come completare l'installazione.",
        "config-copyright": "=== Copyright e termini ===\n\n$1\n\nQuesto programma è un software libero; puoi redistribuirlo e/o modificarlo secondo i termini della GNU General Public License, come pubblicata dalla Free Software Foundation; o la versione 2 della Licenza o (a propria scelta) qualunque versione successiva.\n\nQuesto programma è distribuito nella speranza che sia utile, ma SENZA ALCUNA GARANZIA; senza neppure la garanzia implicita di NEGOZIABILITÀ o di APPLICABILITÀ PER UN PARTICOLARE SCOPO.\nSi veda la GNU General Public License per maggiori dettagli.\n\nQuesto programma deve essere distribuito assieme ad <doclink href=Copying>una copia della GNU General Public License</doclink>; in caso contrario, se ne può ottenere una scrivendo alla Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA oppure [http://www.gnu.org/copyleft/gpl.html leggerla in rete].",
-       "config-sidebar": "* [//www.mediawiki.org Pagina principale MediaWiki]\n* [//www.mediawiki.org/wiki/Aiuto:Guida ai contenuti per utenti]\n* [//www.mediawiki.org/wiki/Manuale:Guida ai contenuti per admin]\n* [//www.mediawiki.org/wiki/Manuale:FAQ FAQ]\n----\n* <doclink href=Readme>Leggimi</doclink>\n* <doclink href=ReleaseNotes>Note di versione</doclink>\n* <doclink href=Copying>Copie</doclink>\n* <doclink href=UpgradeDoc>Aggiornamenti</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org Pagina principale MediaWiki]\n* [https://www.mediawiki.org/wiki/Aiuto:Guida ai contenuti per utenti]\n* [https://www.mediawiki.org/wiki/Manuale:Guida ai contenuti per admin]\n* [https://www.mediawiki.org/wiki/Manuale:FAQ FAQ]\n----\n* <doclink href=Readme>Leggimi</doclink>\n* <doclink href=ReleaseNotes>Note di versione</doclink>\n* <doclink href=Copying>Copie</doclink>\n* <doclink href=UpgradeDoc>Aggiornamenti</doclink>",
        "config-env-good": "L'ambiente è stato controllato.\nÈ possibile installare MediaWiki.",
        "config-env-bad": "L'ambiente è stato controllato.\nNon è possibile installare MediaWiki.",
        "config-env-php": "PHP $1 è installato.",
        "config-env-hhvm": "HHVM $1 è installato.",
        "config-unicode-using-intl": "Usa [http://pecl.php.net/intl l'estensione PECL intl] per la normalizzazione Unicode.",
-       "config-unicode-pure-php-warning": "'''Attenzione:''' [http://pecl.php.net/intl l'estensione PECL intl] non è disponibile per gestire la normalizzazione Unicode, così si usa la lenta implementazione in puro PHP.\nSe esegui un sito ad alto traffico, dovresti leggere alcune considerazioni sulla [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalizzazione Unicode].",
-       "config-unicode-update-warning": "'''Attenzione:''' La versione installata del gestore per la normalizzazione Unicode usa una vecchia versione della libreria [http://site.icu-project.org/ del progetto ICU].\nDovresti [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations aggiornare] se ti interessa usare l'Unicode.",
+       "config-unicode-pure-php-warning": "'''Attenzione:''' [http://pecl.php.net/intl l'estensione PECL intl] non è disponibile per gestire la normalizzazione Unicode, quindi si torna alla lenta implementazione in PHP puro.\nSe esegui un sito ad alto traffico, dovresti leggere alcune considerazioni sulla [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalizzazione Unicode].",
+       "config-unicode-update-warning": "'''Attenzione:''' la versione installata del gestore per la normalizzazione Unicode usa una vecchia versione della libreria [http://site.icu-project.org/ del progetto ICU].\nDovresti [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations aggiornare] se vuoi usare l'Unicode.",
        "config-no-db": "Impossibile trovare un driver adatto per il database! È necessario installare un driver per PHP.\n{{PLURAL:$2|Il seguente formato di database è supportato|I seguenti formati di database sono supportati}}: $1.\n\nSe compili PHP autonomamente, riconfiguralo attivando un client database, per esempio utilizzando <code>./configure --with-mysqli</code>.\nQualora avessi installato PHP per mezzo di un pacchetto Debian o Ubuntu, allora devi installare anche il pacchetto <code>php5-mysql</code>.",
        "config-outdated-sqlite": "'''Attenzione''': è presente SQLite $1 mentre è richiesta la versione $2, SQLite non sarà disponibile.",
        "config-no-fts3": "'''Attenzione''': SQLite è compilato senza il [//sqlite.org/fts3.html modulo FTS3], le funzionalità di ricerca non saranno disponibili su questo backend.",
-       "config-mbstring": "'''Errore: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] è attivato!''' Questa opzione causa errori e può interferire in modo imprevedibile coi dati. Non è possibile installare o utilizzare MediaWiki a meno che questa opzione non sia disabilitata.",
-       "config-xml-bad": "Manca il modulo XML di PHP.\nMediaWIki ha bisogno di funzionalità presenti in questo modulo e non funzionerà con la configurazione corrente.\nSe stai eseguendo Mandrake, installa il paccketto php-xml.",
        "config-pcre-old": "<strong>Errore fatale:</strong> si richiede PCRE  $1 o successivo.\nIl tuo file binario PHP è collegato con PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/Maggiori informazioni su PCRE].",
        "config-pcre-no-utf8": "'''Errore''': Il modulo PCRE di PHP sembra essere stato compilato senza il supporto PCRE_UTF8, ma MediaWiki lo richiede per funzionare correttamente.",
        "config-memory-raised": "Il valore <code>memory_limit</code> di PHP è $1, aumentato a $2.",
        "config-memory-bad": "''Attenzione:''' Il valore di <code>memory_limit</code> di PHP è $1.\nProbabilmente è troppo basso.\nL'installazione potrebbe non riuscire!",
-       "config-ctype": "<strong>Fatale:</strong> PHP deve essere compilato con il supporto per l'[http://www.php.net/manual/it/ctype.installation.php estensione Ctype].",
-       "config-iconv": "<strong>Fatale:</strong> PHP deve essere compilato con il supporto per l'[http://www.php.net/manual/en/iconv.installation.php estensione iconv].",
-       "config-json": "'''Errore:''' PHP è stato compilato senza il supporto per JSON. E' necessario installare l'estensione PHP per JSON o l'estensione [http://pecl.php.net/package/jsonc PECL jsonc] prima di installare MediaWiki.\n* L'estensione PHP è inclusa in Red Hat Enterprise Linux (CentOS) 5 e 6, ma deve essere abilitata in <code>/etc/php.ini</code> o <code>/etc/php.d/json.ini</code>.\n* Alcune distribuzioni di Linux pubblicate dopo il maggio 2013 omettono l'estensione PHP, e al posto utilizzano l'estensione PECL come <code>php5-json</code> o <code>php-pecl-jsonc</code>",
-       "config-mbstring-absent": "<strong>Fatale:</strong> PHP deve essere compilato con il supporto per l'[http://www.php.net/manual/en/mbstring.setup.php estensione mbstring].",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] è installato",
        "config-apc": "[http://www.php.net/apc APC] è installato",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] è installato",
@@ -93,7 +89,7 @@
        "config-no-cli-uri": "'''Attenzione''': <code>--scriptpath</code> non specificato, si utilizza il valore predefinito: <code>$1</code>.",
        "config-using-server": "Nome server in uso \"<nowiki>$1</nowiki>\".",
        "config-using-uri": "URL del server in uso \"<nowiki>$1$2</nowiki>\".",
-       "config-uploads-not-safe": "<strong>Attenzione:</strong> la directory predefinita per i caricamenti <code>$1</code> è vulnerabile all'esecuzione arbitraria di script.\nAnche se MediaWiki controlla tutti i file caricati per rischi alla sicurezza, è fortemente raccomandato di [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security chiudere questa vulnerabilità di sicurezza] prima di abilitare i caricamenti.",
+       "config-uploads-not-safe": "<strong>Attenzione:</strong> la directory predefinita per i caricamenti <code>$1</code> è vulnerabile all'esecuzione arbitraria di script.\nAnche se, a difesa della sicurezza, MediaWiki controlla tutti i file caricati, è fortemente raccomandato di [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security chiudere questa minaccia] prima di abilitare i caricamenti.",
        "config-no-cli-uploads-check": "<strong>Attenzione:</strong> la directory predefinita per i caricamenti (<code>$1</code>) non è stata verificata per la vulnerabilità sull'esecuzione arbitraria di script durante l'installazione da linea di comando.",
        "config-brokenlibxml": "Il tuo sistema ha una combinazione di versioni di PHP e libxml2 che è difettosa e che può provocare un danneggiamento non visibile di dati in MediaWiki ed in altre applicazioni per il web.\nAggiorna a libxml2 2.7.3 o successivo ([https://bugs.php.net/bug.php?id=45996 il bug è studiato dal lato PHP]).\nInstallazione interrotta.",
        "config-suhosin-max-value-length": "Suhosin è installato e limita il parametro GET <code>length</code> a $1 byte.\nIl componente MediaWiki ResourceLoader funzionerà aggirando questo limite, ma riducendo le prestazioni.\nSe possibile, dovresti impostare <code>suhosin.get.max_value_length</code> a 1024 o superiore in <code>php.ini</code>, ed impostare <code>$wgResourceLoaderMaxQueryLength</code> allo stesso valore in <code>LocalSettings.php</code>.",
        "config-db-wiki-help": "Inserisci il nome utente e la password che verrà utilizzato per connettersi al database durante il normale funzionamento del wiki.\nSe l'account non esiste, e l'account di installazione dispone di privilegi sufficienti, verrà creato con privilegi minimi necessari per operare sul wiki.",
        "config-db-prefix": "Prefisso tabella del database:",
        "config-db-prefix-help": "Se hai bisogno di condividere un database tra più wiki, o tra MediaWiki e un'altra applicazione web, puoi scegliere di aggiungere un prefisso a tutti i nomi di tabella, per evitare conflitti.\nNon utilizzare spazi.\n\nSolitamente, questo campo viene lasciato vuoto.",
-       "config-db-charset": "Set di caratteri del database",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 binario",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "MySQL 4.0 con compatibilità UTF-8",
-       "config-charset-help": "<strong>Attenzione:</strong> se si utilizza <strong>backwards-compatible UTF-8</strong> su MySQL 4.1+, e successivamente si esegue il backup del database con <code>mysqldump</code>, si può distriggere tutti i caratteri non ASCII, danneggiando irreversibilmente i backup!\n\nIn <strong>modalità binaria</strong>, MediaWiki archivia il testo UTF-8 nel database in cambi binari.\nQuesto è più efficiente rispetto alla modalità UTF-8 di MySQL, e consente di utilizzare la gamma completa di caratteri Unicode.\nIn <strong>modalità UTF-8</strong>, MySQL conoscerà in quale set di caratteri sono i tuoi dati, e può presentarli e convertirli in modo appropriato,\nma non ti permetterà di memorizzare i caratteri al di sopra del [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
        "config-mysql-old": "MySQL $1 o una versione successiva è necessaria, rilevata la $2.",
        "config-db-port": "Porta del database:",
        "config-db-schema": "Schema per MediaWiki:",
        "config-mysql-charset": "Set di caratteri del database:",
        "config-mysql-binary": "Binario",
        "config-mysql-utf8": "UTF-8",
-       "config-mysql-charset-help": "In <strong>modalità binaria</strong>, MediaWiki archivia il testo UTF-8 nel database in campi binari.\nQuesto è più efficiente rispetto alla modalità UTF-8 di MySQL, e consente di utilizzare la gamma completa di caratteri Unicode.\n\nIn <strong>modalità UTF-8</strong>, MySQL conoscerà in quale set di caratteri sono i tuoi dati, e può presentarli e convertirli in modo appropriato, ma non ti permetterà di memorizzare i caratteri al di sopra del [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
+       "config-mysql-charset-help": "In <strong>modalità binaria</strong>, MediaWiki archivia il testo UTF-8 nel database in campi binari.\nCiò è più efficiente rispetto alla modalità UTF-8 di MySQL, e consente di utilizzare la gamma completa di caratteri Unicode.\n\nIn <strong>modalità UTF-8</strong>, MySQL saprà in quale set di caratteri sono i tuoi dati, e potrà presentarli e convertirli in modo appropriato, ma non ti permetterà di memorizzare i caratteri al di sopra del [https://en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Piano di base multilinguistico].",
        "config-mssql-auth": "Tipo di autenticazione:",
        "config-mssql-install-auth": "Seleziona il tipo di autenticazione che verrà utilizzato per connettersi al database durante il processo di installazione.\nSe si seleziona \"{{int:config-mssql-windowsauth}}\", saranno utilizzate le credenziali dell'utente con cui viene eseguito il server web, qualunque esso sia.",
        "config-mssql-web-auth": "Seleziona il tipo di autenticazione che il server web utilizzerà per connettersi al database, durante il normale funzionamento del wiki.\nSe si seleziona \"{{int:config-mssql-windowsauth}}\", saranno utilizzate le credenziali dell'utente con cui viene eseguito il server web, qualunque esso sia.",
        "config-profile-no-anon": "Creazione utenza obbligatoria",
        "config-profile-fishbowl": "Solo editori autorizzati",
        "config-profile-private": "Wiki privato",
-       "config-profile-help": "I wiki funzionano meglio se si lascia che molte persone li possano modificare.\nIn MediaWiki, è semplice rivedere le ultime modifiche, e ripristinare i danni causati da utenti ingenui o malintenzionati.\n\nTuttavia, molti hanno trovato MediaWiki essere utile in un'ampia varietà di ruoli, e a volte non è facile convincere tutti i vantaggi della modalità wiki.\nPerciò, fai la tua scelta.\n\nIl modello <strong>{{int:config-profile-wiki}}</strong> consente a chiunque di modificare, anche senza effettuare l'accesso.\nUn wiki con <strong>{{int:config-profile-no-anon}}</strong> offre una maggiore responsabilità, ma potrebbe scoraggiare i contributori occasionali.\n\nLo scenario <strong>{{int:config-profile-fishbowl}}</strong> consente agli utenti autorizzati di modificare, ma il pubblico può visualizzare le pagine, compresa la cronologia.\nUn <strong>{{int:config-profile-private}}</strong> consente solo agli utenti autorizzati di visualizzare le pagine, lo stesso gruppo può modificarle.\n\nConfigurazioni di diritti utente più complesse sono disponibili dopo l'installazione, vedi la  [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights parte relativa del manuale].",
+       "config-profile-help": "I wiki funzionano meglio se si permette a molte persone di poterli modificare.\nIn MediaWiki, è semplice controllare le ultime modifiche, e ripristinare i danni causati da utenti inesperti o malintenzionati.\n\nTuttavia, molti hanno trovato MediaWiki essere utile in un'ampia varietà di ruoli, e a volte non è facile convincere tutti dei vantaggi della modalità wiki.\nPerciò, fa' la tua scelta.\n\nIl modello <strong>{{int:config-profile-wiki}}</strong> consente a chiunque di modificare, anche senza effettuare l'accesso.\nUn wiki con <strong>{{int:config-profile-no-anon}}</strong> offre una maggiore responsabilità, ma potrebbe scoraggiare i contributori occasionali.\n\nLo scenario <strong>{{int:config-profile-fishbowl}}</strong> consente agli utenti autorizzati di modificare, ma il pubblico può visualizzare le pagine, compresa la cronologia.\nUn <strong>{{int:config-profile-private}}</strong> consente solo agli utenti autorizzati di visualizzare le pagine, lo stesso gruppo può modificarle.\n\nConfigurazioni di diritti utente più complesse sono disponibili dopo l'installazione, vedi la  [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights parte relativa del manuale].",
        "config-license": "Copyright e licenza:",
        "config-license-none": "Nessun piè di pagina per la licenza",
        "config-license-cc-by-sa": "Creative Commons Attribuzione-Condividi allo stesso modo",
        "config-email-sender-help": "Inserisci l'indirizzo email da utilizzare come indirizzo di ritorno per la posta in uscita.\nQuesto è dove verranno inviati gli eventuali errori.\nMolti server di posta richiedono che almeno la parte del nome di dominio sia valido.",
        "config-upload-settings": "Caricamenti di immagini e file",
        "config-upload-enable": "Consentire il caricamento di file",
-       "config-upload-help": "Il caricamento di file può potenzialmente esporre il tuo server a rischi di sicurezza.\nPer ulteriori informazioni, leggi la  [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security sezione sulla sicurezza] nel manuale.\n\nPer consentire il caricamento di file, modificare la modalità nella sottodirectory <code>images</code> della directory principale di MediaWiki affinché il server web possa scriverci.\nPoi attivare questa opzione.",
+       "config-upload-help": "Il caricamento di file potrebbe esporre il tuo server a rischi di sicurezza.\nPer ulteriori informazioni, leggi la  [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security sezione sulla sicurezza] nel manuale.\n\nPer consentire il caricamento di file, modifica la modalità nella sottodirectory <code>images</code> della directory principale di MediaWiki affinché il server web possa scrivere lì.\nPoi attiva questa opzione.",
        "config-upload-deleted": "Directory per i file cancellati:",
        "config-upload-deleted-help": "Scegli una directory in cui archiviare i file cancellati.\nIdealmente, questa non dovrebbe essere accessibile dal web.",
        "config-logo": "URL del logo:",
        "config-logo-help": "Il tema predefinito di MediaWiki include lo spazio per un logo di 135 x 160 pixel sopra il menu laterale.\nCarica un'immagine di dimensioni appropriate e inserisci l'URL qui.\n\nÈ possibile utilizzare <code>$wgStylePath</code> o <code>$wgScriptPath</code> se il logo è relativo a tali percorsi.\n\nSe non si desidera un logo, lascia vuota questa casella.",
        "config-instantcommons": "Abilita Instant Commons",
-       "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons Instant Commons] è una funzionalità che consente ai wiki di usare immagini, suoni e altri file multimediali che trovate sul sito [//commons.wikimedia.org/ Wikimedia Commons].\nPer fare questo, MediaWiki richiede l'accesso a Internet.\n\nPer ulteriori informazioni su questa funzionalità, incluse le istruzioni su come configurarlo per wiki diversi da Wikimedia Commons, consultare [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos il manuale].",
+       "config-instantcommons-help": "[https://www.mediawiki.org/wiki/InstantCommons Instant Commons] è una funzionalità che consente ai wiki di usare immagini, suoni e altri file multimediali che trovate sul sito [https://commons.wikimedia.org/ Wikimedia Commons].\nPer fare questo, MediaWiki richiede l'accesso a Internet.\n\nPer ulteriori informazioni su questa funzionalità, incluse le istruzioni su come configurarlo per wiki diversi da Wikimedia Commons, consultare [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos il manuale].",
        "config-cc-error": "Il selettore di licenze Creative Commons non ha dato alcun risultato.\nInserisci manualmente il nome della licenza.",
        "config-cc-again": "Seleziona di nuovo...",
        "config-cc-not-chosen": "Scegliere quale licenza Creative Commons si desidera e cliccare su \"proceed\".",
        "config-help": "aiuto",
        "config-help-tooltip": "fai clic per espandere",
        "config-nofile": "Il file \"$1\" non può essere trovato. È stato eliminato?",
-       "config-extension-link": "Sapevi che il tuo wiki supporta le  [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions estensioni]?\n\nPuoi navigare tra le [//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category estensioni per categoria].",
+       "config-extension-link": "Sapevi che il tuo wiki supporta le  [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions estensioni]?\n\nPuoi navigare tra le [https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category estensioni per categoria].",
        "mainpagetext": "<strong>MediaWiki è stato installato.</strong>",
-       "mainpagedocfooter": "Consulta la [//meta.wikimedia.org/wiki/Special:MyLanguage/Help:Contents Guida utente] per maggiori informazioni sull'uso di questo software wiki.\n\n== Per iniziare ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Impostazioni di configurazione]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Domande frequenti su MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailing list annunci MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localizza MediaWiki nella tua lingua]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Imparare a combattere lo spam sul tuo wiki]"
+       "mainpagedocfooter": "Consulta la [https://meta.wikimedia.org/wiki/Special:MyLanguage/Help:Contents Guida utente] per maggiori informazioni sull'uso di questo software wiki.\n\n== Per iniziare ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Impostazioni di configurazione]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Domande frequenti su MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailing list annunci MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Trova MediaWiki nella tua lingua]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Imparare a combattere lo spam sul tuo wiki]"
 }
index 5a79940..5406be1 100644 (file)
        "config-restart": "はい、再起動します",
        "config-welcome": "=== 環境の確認 ===\n基本的な確認では、現在の環境が MediaWiki のインストールに適しているかを確認します。\nインストール方法について助けが必要になった場合は、必ずこの確認結果を添えてください。",
        "config-copyright": "=== 著作権および規約 ===\n$1\n\nこの作品はフリーソフトウェアです。あなたは、フリーソフトウェア財団の発行する GNU 一般公衆利用許諾書 (GNU General Public License) (バージョン 2、またはそれ以降のライセンス) の規約に基づき、このライブラリを再配布および改変できます。\n\nこの作品は、有用であることを期待して配布されていますが、<strong>商用または特定の目的に適するかどうか</strong>も含めて、暗黙的にも、<strong>一切保証されません</strong>。\n詳しくは、 GNU 一般公衆利用許諾書をご覧ください。\n\nあなたはこのプログラムと共に、<doclink href=Copying>GNU 一般公衆利用許諾契約書の複製</doclink>を受け取ったはずです。受け取っていない場合は、フリーソフトウェア財団 (宛先は the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA) まで請求するか、または[http://www.gnu.org/copyleft/gpl.html オンラインでお読みください]。",
-       "config-sidebar": "* [//www.mediawiki.org MediaWikiのホーム]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents 利用者向け案内]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents 管理者向け案内]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ]\n----\n* <doclink href=Readme>お読みください</doclink>\n* <doclink href=ReleaseNotes>リリースノート</doclink>\n* <doclink href=Copying>コピー</doclink>\n* <doclink href=UpgradeDoc>アップグレード</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org MediaWikiのホーム]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents 利用者向け案内]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents 管理者向け案内]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ]\n----\n* <doclink href=Readme>お読みください</doclink>\n* <doclink href=ReleaseNotes>リリースノート</doclink>\n* <doclink href=Copying>コピー</doclink>\n* <doclink href=UpgradeDoc>アップグレード</doclink>",
        "config-env-good": "環境を確認しました。\nMediaWiki をインストールできます。",
        "config-env-bad": "環境を確認しました。\nMediaWiki のインストールはできません。",
        "config-env-php": "PHP $1がインストールされています。",
        "config-env-hhvm": "HHVM $1 がインストールされています。",
        "config-unicode-using-intl": "Unicode正規化に[http://pecl.php.net/intl intl PECL 拡張機能]を使用。",
-       "config-unicode-pure-php-warning": "<strong>警告:</strong> Unicode 正規化の処理に [http://pecl.php.net/intl intl PECL 拡張機能]を利用できないため、処理が遅いピュア PHP の実装を代わりに使用しています。\n高トラフィックのサイトを運営する場合は、[//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode 正規化]をお読みください。",
-       "config-unicode-update-warning": "<strong>警告:</strong> インストールされているバージョンの Unicode 正規化ラッパーは、[http://site.icu-project.org/ ICU プロジェクト]のライブラリの古いバージョンを使用しています。\nUnicode を少しでも利用する可能性がある場合は、[//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations アップグレード]してください。",
+       "config-unicode-pure-php-warning": "<strong>警告:</strong> Unicode 正規化の処理に [http://pecl.php.net/intl intl PECL 拡張機能]を利用できないため、処理が遅いピュア PHP の実装を代わりに使用しています。\n高トラフィックのサイトを運営する場合は、[https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode 正規化]をお読みください。",
+       "config-unicode-update-warning": "<strong>警告:</strong> インストールされているバージョンの Unicode 正規化ラッパーは、[http://site.icu-project.org/ ICU プロジェクト]のライブラリの古いバージョンを使用しています。\nUnicode を少しでも利用する可能性がある場合は、[https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations アップグレード]してください。",
        "config-no-db": "適切なデータベース ドライバーが見つかりませんでした! PHP にデータベース ドライバーをインストールする必要があります。\n以下の種類のデータベース{{PLURAL:$2|のタイプ}}に対応しています: $1\n\nPHP を自分でコンパイルした場合は、例えば <code>./configure --with-mysqli</code> を実行して、データベース クライアントを使用できるように再設定してください。\nDebian または Ubuntu のパッケージから PHP をインストールした場合は、モジュール (例: <code>php5-mysql</code>) もインストールする必要があります。",
        "config-outdated-sqlite": "<strong>警告:</strong> あなたは SQLite $1 を使用していますが、最低限必要なバージョン $2 より古いバージョンです。SQLite は利用できません。",
        "config-no-fts3": "<strong>警告:</strong> SQLite は [//sqlite.org/fts3.html FTS3] モジュールなしでコンパイルされており、このバックエンドでは検索機能は利用できなくなります。",
-       "config-mbstring": "<strong>致命的エラー: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] が動作しています!</strong>\nこのオプションは、エラーを引き起こし、予期せずデータを破壊するおそれがあります。\nこのオプションを無効化しない限り、MediaWiki のインストールや使用はできません。",
-       "config-xml-bad": "PHPのXMLモジュールが不足しています。\nMediaWikiは、このモジュールの関数を必要としているため、この構成では動作しません。\nphp-xml RPM パッケージをインストールする必要があります。",
        "config-pcre-old": "<strong>致命的エラー:</strong> PCRE $1 以降が必要です。\nご使用中の PHP のバイナリは PCRE $2 とリンクされています。\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE 詳細情報]",
        "config-pcre-no-utf8": "<strong>致命的エラー:</strong> PHP の PCRE が PCRE_UTF8 対応なしでコンパイルされているようです。\nMediaWiki を正しく動作させるには、UTF-8 対応が必要です。",
        "config-memory-raised": "PHPの<code>memory_limit</code>は$1で、$2に引き上げられました。",
        "config-memory-bad": "<strong>警告:</strong> PHPの<code>memory_limit</code>に$1に設定されています。\nこの値はおそらく小さすぎます。\nインストールが失敗するおそれがあります!",
-       "config-ctype": "<strong>致命的エラー:</strong> PHP は [http://www.php.net/manual/en/ctype.installation.php Ctype 拡張モジュール]のサポート付きでコンパイルされている必要があります。",
-       "config-iconv": "<strong>致命的なエラー:</strong> PHPは[http://www.php.net/manual/en/iconv.installation.php iconv 拡張機能]のサポートを有効にしてコンパイルされている必要があります。",
-       "config-json": "<strong>致命的エラー:</strong> PHP は JSON サポートなしでコンパイルされています。\nPHP に JSON 拡張モジュールまたは [http://pecl.php.net/package/jsonc PECL jsonc] 拡張モジュールをインストールしてから、MediaWiki をインストールしてください。\n* Red Hat Enterprise Linux (CentOS) 5 および 6には PHP の拡張機能が含まれているため、<code>/etc/php.ini</code> または <code>/etc/php.d/json.ini</code> から有効にしてください。\n* 2013年5月以降にリリースされた一部の Linux ディストリビューションでは、PHP 拡張モジュールの代わりに、<code>php5-json</code> または <code>php-pecl-jsonc</code> として PECL が同梱されています。",
-       "config-mbstring-absent": "<strong>致命的エラー:</strong> PHP は [http://www.php.net/manual/en/mbstring.setup.php mbstring 拡張モジュール]のサポートを有効にしてコンパイルされている必要があります。",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] がインストール済み",
        "config-apc": "[http://www.php.net/apc APC] がインストール済み",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] がインストール済み",
@@ -95,9 +89,9 @@
        "config-no-cli-uri": "<strong>警告:</strong> <code>--scriptpath</code> が指定されていないため、既定値 <code>$1</code> を使用します。",
        "config-using-server": "サーバー名「<nowiki>$1</nowiki>」を使用しています。",
        "config-using-uri": "サーバー URL「<nowiki>$1$2</nowiki>」を使用しています。",
-       "config-uploads-not-safe": "<strong>警告:</strong> アップロードの既定ディレクトリ <code>$1</code> に、任意のスクリプト実行に関する脆弱性があります。\nMediaWiki はアップロードされたファイルのセキュリティ上の脅威を確認しますが、アップロードを有効化する前に、[//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security このセキュリティ上の脆弱性を解決する]ことを強く推奨します。",
+       "config-uploads-not-safe": "<strong>警告:</strong> アップロードの既定ディレクトリ <code>$1</code> に、任意のスクリプト実行に関する脆弱性があります。\nMediaWiki はアップロードされたファイルのセキュリティ上の脅威を確認しますが、アップロードを有効化する前に、[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security このセキュリティ上の脆弱性を解決する]ことを強く推奨します。",
        "config-no-cli-uploads-check": "<strong>警告:</strong> アップロード用のデフォルトディレクトリ (<code>$1</code>) が、CLIでのインストール中に任意のスクリプト実行の脆弱性チェックを受けていません。",
-       "config-brokenlibxml": "このシステムで使われているPHPとlibxml2のバージョンのこの組み合わせにはバグがあります。具体的には、MediaWikiやその他のウェブアプリケーションでhiddenデータが破損する可能性があります。\nlibxml2を2.7.3以降のバージョンにアップグレードしてください([//bugs.php.net/bug.php?id=45996 PHPでのバグ情報])。\nインストールを終了します。",
+       "config-brokenlibxml": "このシステムで使われているPHPとlibxml2のバージョンのこの組み合わせにはバグがあります。具体的には、MediaWikiやその他のウェブアプリケーションでhiddenデータが破損する可能性があります。\nlibxml2を2.7.3以降のバージョンにアップグレードしてください([https://bugs.php.net/bug.php?id=45996 PHPでのバグ情報])。\nインストールを終了します。",
        "config-suhosin-max-value-length": "Suhosin がインストールされており、GET パラメーターの <code>length</code> を $1 バイトに制限しています。\nMediaWiki の ResourceLoader コンポーネントはこの制限を回避しますが、パフォーマンスは低下します。\n可能な限り、<code>php.ini</code> で <code>suhosin.get.max_value_length</code> を 1024 以上に設定し、同じ値を <code>LocalSettings.php</code> 内で <code>$wgResourceLoaderMaxQueryLength</code> に設定してください。",
        "config-db-type": "データベースの種類:",
        "config-db-host": "データベースのホスト:",
        "config-db-wiki-help": "通常のウィキ操作中にデータベースへの接続する時に利用する利用者名とパスワードを入力してください。\nアカウントが存在せず、インストールのアカウントに十分な権限がある場合は、この利用者アカウントは、ウィキを操作する上で最小限の権限を持った状態で作成されます。",
        "config-db-prefix": "データベース テーブルの接頭辞:",
        "config-db-prefix-help": "データベースを複数のウィキ間、あるいはMediaWikiと他のウェブアプリケーションで共有する必要がある場合、衝突を避けるために、すべてのテーブル名に接頭辞を付ける必要があります。\n空白は使用できません。\n\nこのフィールドは、通常は空のままです。",
-       "config-db-charset": "データベースの文字セット",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 バイナリ",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "MySQL 4.0 後方互換 UTF-8",
-       "config-charset-help": "<strong>警告:</strong> MySQL 4.1+ で<strong>後方互換 UTF-8</strong> を使用している状態で、<code>mysqldump</code> でデータベースをバックアップすると、すべての非 ASCII 文字が破壊されてしまい、バックアップが不可逆的に破損してしまいます!\n\n<strong>バイナリ モード</strong>では、MediaWiki は、UTF-8 テキストをデータベースのバイナリ フィールドに格納します。\nこれは、MySQL の UTF-8 モードより効率的で、Unicode 文字の全範囲を利用できるようになります。\n<strong>UTF-8 モード</strong>では、MySQL は、データ内で使用している文字集合を知っているため、適切に表現や変換ができますが、\n[//ja.wikipedia.org/wiki/%E5%9F%BA%E6%9C%AC%E5%A4%9A%E8%A8%80%E8%AA%9E%E9%9D%A2 基本多言語面]の外にある文字を格納できません。",
        "config-mysql-old": "MySQL $1 以降が必要です。ご使用中の MySQL は $2 です。",
        "config-db-port": "データベースのポート:",
        "config-db-schema": "MediaWiki のスキーマ:",
        "config-mysql-charset": "データベースの文字セット:",
        "config-mysql-binary": "バイナリ",
        "config-mysql-utf8": "UTF-8",
-       "config-mysql-charset-help": "<strong>バイナリ モード</strong>では、MediaWiki は、UTF-8 テキストをデータベースのバイナリ フィールドに格納します。\nこれは、MySQL の UTF-8 モードより効率的で、Unicode 文字の全範囲を利用できるようになります。\n\n<strong>UTF-8 モード</strong>では、MySQL は、データ内で使用している文字集合を知っているため、適切に表現や変換ができますが、\n[//ja.wikipedia.org/wiki/%E5%9F%BA%E6%9C%AC%E5%A4%9A%E8%A8%80%E8%AA%9E%E9%9D%A2 基本多言語面]の外にある文字を格納できません。",
+       "config-mysql-charset-help": "<strong>バイナリ モード</strong>では、MediaWiki は、UTF-8 テキストをデータベースのバイナリ フィールドに格納します。\nこれは、MySQL の UTF-8 モードより効率的で、Unicode 文字の全範囲を利用できるようになります。\n\n<strong>UTF-8 モード</strong>では、MySQL は、データ内で使用している文字集合を知っているため、適切に表現や変換ができますが、\n[https://ja.wikipedia.org/wiki/%E5%9F%BA%E6%9C%AC%E5%A4%9A%E8%A8%80%E8%AA%9E%E9%9D%A2 基本多言語面]の外にある文字を格納できません。",
        "config-mssql-auth": "認証の種類:",
        "config-mssql-install-auth": "インストール過程でデータベースに接続するために使用する認証の種類を選択してください。\n「{{int:config-mssql-windowsauth}}」を選択した場合、ウェブサーバーを実行しているユーザーの認証情報が使用されます。",
        "config-mssql-web-auth": "ウィキの通常の操作の際にウェブサーバーがデータベースサーバーに接続するために使用する認証の種類を選択してください。\n「{{int:config-mssql-windowsauth}}」を選択した場合、ウェブサーバーを実行しているユーザーの認証情報が使用されます。",
        "config-profile-no-anon": "アカウントの作成が必要",
        "config-profile-fishbowl": "承認された編集者のみ",
        "config-profile-private": "非公開ウィキ",
-       "config-profile-help": "ウィキは、できるだけ多くの人が編集できるようにすると最も優れた働きをします。\nMediaWikiでは、最近の更新を確認しやすく、神経質な、または悪意を持った利用者からの損害を簡単に差し戻せます。\n\nしかし一方で、MediaWikiは、さらにさまざまな形態での利用も優れていると言われています。また、時には、すべての人にウィキ手法の利点を説得させるのは容易ではないかもしれません。\nそこで、選択肢があります。\n\n「<strong>{{int:config-profile-wiki}}</strong>」モデルでは、ログインしなくても、誰でも編集できます。\n「<strong>{{int:config-profile-no-anon}}</strong>」なウィキでは、各編集に対してより強い説明責任を付与しますが、気軽な投稿を阻害するかもしれません。\n\n「<strong>{{int:config-profile-fishbowl}}</strong>」シナリオでは、承認された利用者のみが編集でき、一般の人はページ (とその履歴) を閲覧できます。\n「<strong>{{int:config-profile-private}}</strong>」では、承認された利用者のみがページを閲覧でき、そのグループが編集できます。\n\nより複雑な利用者権限の設定は、インストール後に設定できます。詳細は[//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights 関連するマニュアル]をご覧ください。",
+       "config-profile-help": "ウィキは、できるだけ多くの人が編集できるようにすると最も優れた働きをします。\nMediaWikiでは、最近の更新を確認しやすく、神経質な、または悪意を持った利用者からの損害を簡単に差し戻せます。\n\nしかし一方で、MediaWikiは、さらにさまざまな形態での利用も優れていると言われています。また、時には、すべての人にウィキ手法の利点を説得させるのは容易ではないかもしれません。\nそこで、選択肢があります。\n\n「<strong>{{int:config-profile-wiki}}</strong>」モデルでは、ログインしなくても、誰でも編集できます。\n「<strong>{{int:config-profile-no-anon}}</strong>」なウィキでは、各編集に対してより強い説明責任を付与しますが、気軽な投稿を阻害するかもしれません。\n\n「<strong>{{int:config-profile-fishbowl}}</strong>」シナリオでは、承認された利用者のみが編集でき、一般の人はページ (とその履歴) を閲覧できます。\n「<strong>{{int:config-profile-private}}</strong>」では、承認された利用者のみがページを閲覧でき、そのグループが編集できます。\n\nより複雑な利用者権限の設定は、インストール後に設定できます。詳細は[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights 関連するマニュアル]をご覧ください。",
        "config-license": "著作権とライセンス:",
        "config-license-none": "ライセンスのフッターを付けない",
        "config-license-cc-by-sa": "クリエイティブ・コモンズ 表示-継承",
        "config-email-sender-help": "送信メールで返信先として使用するメールアドレスを入力してください。\nこのアドレスは、宛先不明の場合の通知の宛先になります。\n多くのメールサーバーでは、少なくともドメイン名部分は有効である必要があります。",
        "config-upload-settings": "画像およびファイルのアップロード",
        "config-upload-enable": "ファイルのアップロードを有効にする",
-       "config-upload-help": "ファイルのアップロードは、あなたのサーバーをセキュリティ上の潜在的な危険に晒します。\nこの詳細は、マニュアルの [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security security section] をお読みください。\n\nファイルのアップロードを有効にするには、MediaWiki のルート ディレクトリ内の <code>images</code> サブ ディレクトリのモードを変更します。これにより、ウェブ サーバーがそこに書き込めるようになります。\nそして、このオプションを有効にしてください。",
+       "config-upload-help": "ファイルのアップロードは、あなたのサーバーをセキュリティ上の潜在的な危険に晒します。\nこの詳細は、マニュアルの [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security security section] をお読みください。\n\nファイルのアップロードを有効にするには、MediaWiki のルート ディレクトリ内の <code>images</code> サブ ディレクトリのモードを変更します。これにより、ウェブ サーバーがそこに書き込めるようになります。\nそして、このオプションを有効にしてください。",
        "config-upload-deleted": "削除されたファイルのためのディレクトリ:",
        "config-upload-deleted-help": "削除されるファイルを保存するためのディレクトリを選択してください。\nこれがウェブからアクセスできないことが理想です。",
        "config-logo": "ロゴ のURL:",
        "config-logo-help": "MediaWiki の既定の外装では、サイドバー上部に135x160ピクセルのロゴ用の余白があります。\n適切なサイズの画像をアップロードして、その URL をここに入力してください。\n\nロゴが相対パスの場合は、<code>$wgStylePath</code> や <code>$wgScriptPath</code> を使用できます。\n\nロゴが不要の場合は、この欄を空白のままにしてください。",
        "config-instantcommons": "Instant Commons 機能を有効にする",
-       "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons Instant Commons] は、[//commons.wikimedia.org/ ウィキメディア・コモンズ]のサイトにある画像、音声、その他のメディアをウィキ上で利用できるようにする機能です。\nこれを使用するには、MediaWiki がインターネットに接続できる必要があります。\n\nウィキメディア・コモンズ以外のウィキを同様に設定する手順など、この機能に関する詳細な情報は、[//www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos マニュアル]をご覧ください。",
+       "config-instantcommons-help": "[https://www.mediawiki.org/wiki/InstantCommons Instant Commons] は、[https://commons.wikimedia.org/ ウィキメディア・コモンズ]のサイトにある画像、音声、その他のメディアをウィキ上で利用できるようにする機能です。\nこれを使用するには、MediaWiki がインターネットに接続できる必要があります。\n\nウィキメディア・コモンズ以外のウィキを同様に設定する手順など、この機能に関する詳細な情報は、[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos マニュアル]をご覧ください。",
        "config-cc-error": "クリエイティブ・コモンズ・ライセンスの選択器から結果が得られませんでした。\nライセンスの名前を手動で入力してください。",
        "config-cc-again": "もう一度選択してください...",
        "config-cc-not-chosen": "希望するクリエイティブ・コモンズのライセンスを選択して、「proceed」をクリックしてください。",
        "config-install-extension-tables": "有効にした拡張機能のためのテーブルを作成しています",
        "config-install-mainpage-failed": "メインページを挿入できませんでした: $1",
        "config-install-done": "<strong>おめでとうございます!</strong>\nMediaWikiのインストールに成功しました。\n\n<code>LocalSettings.php</code>ファイルが生成されました。\nこのファイルはすべての設定を含んでいます。\n\nこれをダウンロードして、ウィキをインストールした基準ディレクトリ (index.phpと同じディレクトリ) に設置する必要があります。ダウンロードは自動的に開始されるはずです。\n\nダウンロードが開始されていない場合、またはダウンロードをキャンセルした場合は、下記のリンクをクリックしてダウンロードを再開できます:\n\n$3\n\n<strong>注意:</strong> この生成された設定ファイルをダウンロードせずにインストールを終了すると、このファイルは利用できなくなります。\n\n上記の作業が完了すると、<strong>[$2 ウィキに入る]</strong>ことができます。",
+       "config-install-done-path": "<strong>おめでとうございます!</strong>\nMediaWikiのインストールに成功しました。\n\n<code>LocalSettings.php</code>ファイルが生成されました。\nこのファイルはすべての設定を含んでいます。\n\nこれをダウンロードして、<code>$4</code> に設置する必要があります。ダウンロードは自動的に開始されるはずです。\n\nダウンロードが開始されていない場合、またはダウンロードをキャンセルした場合は、下記のリンクをクリックしてダウンロードを再開できます:\n\n$3\n\n<strong>注意:</strong> この生成された設定ファイルをダウンロードせずにインストールを終了すると、このファイルは利用できなくなります。\n\n上記の作業が完了すると、<strong>[$2 ウィキに入る]</strong>ことができます。",
        "config-download-localsettings": "<code>LocalSettings.php</code> をダウンロード",
        "config-help": "ヘルプ",
        "config-help-tooltip": "クリックで展開",
        "config-nofile": "ファイル「$1」が見つかりませんでした。削除された可能性があります。",
-       "config-extension-link": "あなたのウィキは[//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions 拡張機能]をサポートしていることをご存知ですか?\n\n[//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category カテゴリ別で拡張機能を見る]か[//www.mediawiki.org/wiki/Extension_Matrix 拡張機能のマトリックス]で拡張機能すべてのリストをご覧になれます。",
+       "config-extension-link": "あなたのウィキは[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions 拡張機能]をサポートしていることをご存知ですか?\n\n[https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category カテゴリ別で拡張機能を見る]か[https://www.mediawiki.org/wiki/Extension_Matrix 拡張機能のマトリックス]で拡張機能すべてのリストをご覧になれます。",
        "mainpagetext": "<strong>MediaWiki はインストール済みです。</strong>",
-       "mainpagedocfooter": "ウィキソフトウェアの使い方に関する情報は[//meta.wikimedia.org/wiki/Help:Contents 利用者案内]を参照してください。\n\n== はじめましょう ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings/ja 設定の一覧]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/ja MediaWiki よくある質問と回答]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki リリース情報メーリングリスト]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation/ja MediaWiki のあなたの言語へのローカライズ]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your wiki]"
+       "mainpagedocfooter": "ウィキソフトウェアの使い方に関する情報は[https://meta.wikimedia.org/wiki/Help:Contents 利用者案内]を参照してください。\n\n== はじめましょう ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings/ja 設定の一覧]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/ja MediaWiki よくある質問と回答]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki リリース情報メーリングリスト]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation/ja MediaWiki のあなたの言語へのローカライズ]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your wiki]"
 }
index c885092..e6cccdb 100644 (file)
@@ -5,5 +5,5 @@
                ]
        },
        "mainpagetext": "'''MediaWiki don instaal soksesful.'''",
-       "mainpagedocfooter": "Kansolt di [//meta.wikimedia.org/wiki/Help:Contents User's Guide] fi infamieshan ou fi yuuz di wiki saafwier.\n\n== Taatop ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
+       "mainpagedocfooter": "Kansolt di [https://meta.wikimedia.org/wiki/Help:Contents User's Guide] fi infamieshan ou fi yuuz di wiki saafwier.\n\n== Taatop ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
 }
index 28c2087..4dc6d11 100644 (file)
@@ -6,5 +6,5 @@
                ]
        },
        "mainpagetext": "'''MediaWiki ä nu installiirtj.'''",
-       "mainpagedocfooter": "Sie [//meta.wikimedia.org/wiki/Help:Contents brugewejliednengen] for oplysnenge om brugi å wikiprogramme.\n\n== Å kom i gång ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Listen öwe opsättnengsmulihede]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki oft stellen spöyrgsmol]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Postlist ångoenje utdjielse å MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Öwesätt MediaWiki te det spraw]"
+       "mainpagedocfooter": "Sie [https://meta.wikimedia.org/wiki/Help:Contents brugewejliednengen] for oplysnenge om brugi å wikiprogramme.\n\n== Å kom i gång ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Listen öwe opsättnengsmulihede]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki oft stellen spöyrgsmol]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Postlist ångoenje utdjielse å MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Öwesätt MediaWiki te det spraw]"
 }
index 45a17c1..2d93ba5 100644 (file)
@@ -7,5 +7,5 @@
        },
        "config-install-mainpage-failed": "Ora bisa nglebokaké tepas: $1",
        "mainpagetext": "'''Prangkat empuk wiki wis suksès dipasang.'''",
-       "mainpagedocfooter": "Mangga maca [//meta.wikimedia.org/wiki/Help:Contents User's Guide] kanggo katrangan luwih langkung prakara panggunan prangkat empuk wiki\n== Miwiti panggunan  ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Daftar pangaturan préférènsi]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Milis rilis MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your wiki]"
+       "mainpagedocfooter": "Mangga maca [https://meta.wikimedia.org/wiki/Help:Contents User's Guide] kanggo katrangan luwih langkung prakara panggunan prangkat empuk wiki\n== Miwiti panggunan  ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Daftar pangaturan préférènsi]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Milis rilis MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your wiki]"
 }
index 2163c6f..f5771aa 100644 (file)
@@ -24,7 +24,7 @@
        "config-page-upgradedoc": "განახლება",
        "config-page-existingwiki": "არსებული ვიკი",
        "config-restart": "დიახ, თავიდან დაიწყეთ",
-       "config-sidebar": "* [//www.mediawiki.org მედიავიკის ვებ-გვერდი]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents/ka მომხმარებლების დახმარება]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents/ka ადმინისტრატორების დახმარება]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/ka FAQ]\n----\n* <doclink href=Readme>წამიკითხე</doclink>\n* <doclink href=ReleaseNotes>ინფორმაცია გამოშვებაზე</doclink>\n* <doclink href=Copying>ლიცენზია</doclink>\n* <doclink href=UpgradeDoc>განახლება</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org მედიავიკის ვებ-გვერდი]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents/ka მომხმარებლების დახმარება]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents/ka ადმინისტრატორების დახმარება]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/ka FAQ]\n----\n* <doclink href=Readme>წამიკითხე</doclink>\n* <doclink href=ReleaseNotes>ინფორმაცია გამოშვებაზე</doclink>\n* <doclink href=Copying>ლიცენზია</doclink>\n* <doclink href=UpgradeDoc>განახლება</doclink>",
        "config-env-php": "PHP $1 დაინსტალირებულია",
        "config-env-hhvm": "HHVM $1 დაინსტალირებულია.",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] დაყენდა",
@@ -37,8 +37,6 @@
        "config-db-name-oracle": "მონაცემთა ბაზის სქემა:",
        "config-db-username": "მონაცემთა ბაზის მომხმარებლის სახელი:",
        "config-db-password": "მონაცემთა ბაზის პაროლი:",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 ორობითი",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
        "config-db-port": "მონაცემთა ბაზის პორტი:",
        "config-db-schema": "მედიავიკის სქემა:",
        "config-type-mssql": "Microsoft SQL Server",
        "config-help": "დახმარება",
        "config-help-tooltip": "გასაშლელად დააწკაპუნეთ",
        "mainpagetext": "'''მედიავიკი წარმატებით ჩაიტვირთა.'''",
-       "mainpagedocfooter": "ვიკი პროგრამის გამოყენების ინფორმაციისთვის იხილეთ [//meta.wikimedia.org/wiki/Help:Contents მომხმარებლის მეგზური].\n\n== დაწყება ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings კონფიგურაციის მაჩვენებლების სია]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce მედიავიკის გამოცემის დაგზავნის სია]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources მედიავიკის ლოკალიზება თქვენ ენაზე]"
+       "mainpagedocfooter": "ვიკი პროგრამის გამოყენების ინფორმაციისთვის იხილეთ [https://meta.wikimedia.org/wiki/Help:Contents მომხმარებლის მეგზური].\n\n== დაწყება ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings კონფიგურაციის მაჩვენებლების სია]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce მედიავიკის გამოცემის დაგზავნის სია]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources მედიავიკის ლოკალიზება თქვენ ენაზე]"
 }
index a2052c2..42d9fbb 100644 (file)
@@ -1,5 +1,5 @@
 {
        "@metadata": [],
        "mainpagetext": "'''MediaWiki tabıslı ornatıldı.'''",
-       "mainpagedocfooter": "Wiki bag'darlamasın qollanıw haqqındag'i mag'lıwmat usın [//meta.wikimedia.org/wiki/Help:Contents Paydalanıwshılar qollanbasınan] ken'es alın'.\n\n== Baslaw ushın ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Konfiguratsiya sazlaw dizimi]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWikidin' Ko'p Soralatug'ın Sorawları]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki haqqında xat tarqatıw dizimi]"
+       "mainpagedocfooter": "Wiki bag'darlamasın qollanıw haqqındag'i mag'lıwmat usın [https://meta.wikimedia.org/wiki/Help:Contents Paydalanıwshılar qollanbasınan] ken'es alın'.\n\n== Baslaw ushın ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Konfiguratsiya sazlaw dizimi]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWikidin' Ko'p Soralatug'ın Sorawları]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki haqqında xat tarqatıw dizimi]"
 }
index b08674f..3d9b1a5 100644 (file)
@@ -6,5 +6,5 @@
                ]
        },
        "mainpagetext": "'''«MediaWiki» узыншу хэгъува.'''",
-       "mainpagedocfooter": "Мы виким и лэжьыгъэ хъыбархэр здэбгъуэтыфынур [//meta.wikimedia.org/wiki/Help:Contents/ru дэӀэпыкъуэгъу тхылъым].\n\n== Къыщхьэпэгъуэ хъуфынухэр ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Зэгъэзэхуэгъуэ гуэрэхэм я тхылъ];\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki-м упщӀэ нахъыбу ятхэмрэ я жэуапхэмрэ];\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki-м и версиэ щӀэуэ къэжахэм я къэӀохугъуэ].\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
+       "mainpagedocfooter": "Мы виким и лэжьыгъэ хъыбархэр здэбгъуэтыфынур [https://meta.wikimedia.org/wiki/Help:Contents/ru дэӀэпыкъуэгъу тхылъым].\n\n== Къыщхьэпэгъуэ хъуфынухэр ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Зэгъэзэхуэгъуэ гуэрэхэм я тхылъ];\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki-м упщӀэ нахъыбу ятхэмрэ я жэуапхэмрэ];\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki-м и версиэ щӀэуэ къэжахэм я къэӀохугъуэ].\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
 }
index f322db5..dd8091e 100644 (file)
@@ -5,5 +5,5 @@
                ]
        },
        "mainpagetext": "'''MediaWiki fist ra ser, vıraziya.'''",
-       "mainpagedocfooter": "Serba melumatê gurenaena ''wiki software''i [//meta.wikimedia.org/wiki/Help:Contents İdarê karberi] de mıracaet ke.\n\n== Gamê verêni ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista ayarunê vırastene]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki de ÇZP]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki ra lista serbest-daena postey]"
+       "mainpagedocfooter": "Serba melumatê gurenaena ''wiki software''i [https://meta.wikimedia.org/wiki/Help:Contents İdarê karberi] de mıracaet ke.\n\n== Gamê verêni ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista ayarunê vırastene]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki de ÇZP]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki ra lista serbest-daena postey]"
 }
index 15cb54a..6f07736 100644 (file)
@@ -1,5 +1,5 @@
 {
        "@metadata": [],
        "mainpagetext": "'''مەدىياۋىيكىي بۋماسى ٴساتتى ورناتىلدى.'''",
-       "mainpagedocfooter": "ۋىيكىي باعدارلامالىق جاساقتاماسىن قالاي قولداناتىن اقپاراتى ٴۇشىن [//meta.wikimedia.org/wiki/Help:Contents پايدالانۋشىلىق نۇسقاۋلارىنان] كەڭەس الىڭىز.\n\n== باستاۋ ٴۇشىن ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings باپتالىم قالاۋلارىنىڭ ٴتىزىمى]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ مەدىياۋىيكىيدىڭ جىيى قويىلعان ساۋالدارى]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce مەدىياۋىيكىي شىعۋ تۋرالى حات تاراتۋ ٴتىزىمى]"
+       "mainpagedocfooter": "ۋىيكىي باعدارلامالىق جاساقتاماسىن قالاي قولداناتىن اقپاراتى ٴۇشىن [https://meta.wikimedia.org/wiki/Help:Contents پايدالانۋشىلىق نۇسقاۋلارىنان] كەڭەس الىڭىز.\n\n== باستاۋ ٴۇشىن ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings باپتالىم قالاۋلارىنىڭ ٴتىزىمى]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ مەدىياۋىيكىيدىڭ جىيى قويىلعان ساۋالدارى]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce مەدىياۋىيكىي شىعۋ تۋرالى حات تاراتۋ ٴتىزىمى]"
 }
index 08ff57f..97abae8 100644 (file)
@@ -1,5 +1,5 @@
 {
        "@metadata": [],
        "mainpagetext": "'''МедиаУики бумасы сәтті орнатылды.'''",
-       "mainpagedocfooter": "Уики бағдарламалық жасақтамасын қалай қолданатын ақпараты үшін [//meta.wikimedia.org/wiki/Help:Contents Пайдаланушылық нұсқауларынан] кеңес алыңыз.\n\n== Бастау үшін ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Бапталым қалауларының тізімі]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ МедиаУикидің Жиы Қойылған Сауалдары]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce МедиаУики шығу туралы хат тарату тізімі]"
+       "mainpagedocfooter": "Уики бағдарламалық жасақтамасын қалай қолданатын ақпараты үшін [https://meta.wikimedia.org/wiki/Help:Contents Пайдаланушылық нұсқауларынан] кеңес алыңыз.\n\n== Бастау үшін ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Бапталым қалауларының тізімі]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ МедиаУикидің Жиы Қойылған Сауалдары]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce МедиаУики шығу туралы хат тарату тізімі]"
 }
index fb261bd..95e9580 100644 (file)
@@ -1,5 +1,5 @@
 {
        "@metadata": [],
        "mainpagetext": "'''MedïaWïkï bwması sätti ornatıldı.'''",
-       "mainpagedocfooter": "Wïkï bağdarlamalıq jasaqtamasın qalaý qoldanatın aqparatı üşin [//meta.wikimedia.org/wiki/Help:Contents Paýdalanwşılıq nusqawlarınan] keñes alıñız.\n\n== Bastaw üşin ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Baptalım qalawlarınıñ tizimi]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MedïaWïkïdiñ Jïı Qoýılğan Sawaldarı]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MedïaWïkï şığw twralı xat taratw tizimi]"
+       "mainpagedocfooter": "Wïkï bağdarlamalıq jasaqtamasın qalaý qoldanatın aqparatı üşin [https://meta.wikimedia.org/wiki/Help:Contents Paýdalanwşılıq nusqawlarınan] keñes alıñız.\n\n== Bastaw üşin ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Baptalım qalawlarınıñ tizimi]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MedïaWïkïdiñ Jïı Qoýılğan Sawaldarı]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MedïaWïkï şığw twralı xat taratw tizimi]"
 }
index f5dff47..d2a8587 100644 (file)
@@ -31,5 +31,5 @@
        "config-help-tooltip": "ចុចដើម្បីពន្លាត",
        "config-nofile": "រកមិនឃើញឯកសារ \"$1\" ទេ។ វាប្រហែលជាត្រូវបានលុបចោលហើយ។",
        "mainpagetext": "'''មេឌាវិគីត្រូវបានដំឡើងសំរេចហើយ​។'''",
-       "mainpagedocfooter": "សូមពិនិត្យមើល [//meta.wikimedia.org/wiki/Help:Contents ខ្លឹមសារ​ណែនាំ​ប្រើប្រាស់]សម្រាប់​ព័ត៌មាន​​បន្ថែមអំពី​ការប្រើប្រាស់សូហ្វវែរវិគី​។\n\n== ការចាប់ផ្ដើម ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings បញ្ជីការកំណត់នានា]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/km សំណួរញឹកញាប់​ក្នុងមេឌាវិគី]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce បញ្ជី​អ៊ីមែលផ្សព្វផ្សាយ​របស់​មេឌាវិគី]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources ការប្រែសម្រួលមេឌាវិគីសម្រាប់ភាសារបស់អ្នក]"
+       "mainpagedocfooter": "សូមពិនិត្យមើល [https://meta.wikimedia.org/wiki/Help:Contents ខ្លឹមសារ​ណែនាំ​ប្រើប្រាស់]សម្រាប់​ព័ត៌មាន​​បន្ថែមអំពី​ការប្រើប្រាស់សូហ្វវែរវិគី​។\n\n== ការចាប់ផ្ដើម ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings បញ្ជីការកំណត់នានា]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/km សំណួរញឹកញាប់​ក្នុងមេឌាវិគី]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce បញ្ជី​អ៊ីមែលផ្សព្វផ្សាយ​របស់​មេឌាវិគី]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources ការប្រែសម្រួលមេឌាវិគីសម្រាប់ភាសារបស់អ្នក]"
 }
index b7f71b1..aebaea7 100644 (file)
@@ -44,5 +44,5 @@
        "config-install-step-failed": "ವಿಫಲವಾಗಿದೆ",
        "config-help": "ಸಹಾಯ",
        "mainpagetext": "'''ವಿಕಿ ತಂತ್ರಾಂಶವನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಅನುಸ್ಥಾಪಿಸಲಾಯಿತು.'''",
-       "mainpagedocfooter": "ವಿಕಿ ತಂತ್ರಾಂಶವನ್ನು ಬಳಸುವ ಬಗ್ಗೆ ಮಾಹಿತಿಗೆ [//meta.wikimedia.org/wiki/Help:Contents ಬಳಕೆದಾರರಿಗೆ ನಿರ್ದೇಶನ ಪುಟ] ನೋಡಿ.\n\n== ಪ್ರಾರಂಭಿಸುವುದು ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ ಮೀಡಿಯವಿಕಿ FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
+       "mainpagedocfooter": "ವಿಕಿ ತಂತ್ರಾಂಶವನ್ನು ಬಳಸುವ ಬಗ್ಗೆ ಮಾಹಿತಿಗೆ [https://meta.wikimedia.org/wiki/Help:Contents ಬಳಕೆದಾರರಿಗೆ ನಿರ್ದೇಶನ ಪುಟ] ನೋಡಿ.\n\n== ಪ್ರಾರಂಭಿಸುವುದು ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ ಮೀಡಿಯವಿಕಿ FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
 }
index 62afeee..5e9c34d 100644 (file)
        "config-restart": "예, 다시 시작합니다",
        "config-welcome": "=== 사용 환경 검사 ===\n기본 검사는 지금 이 환경이 미디어위키 설치에 적합한지 수행합니다.\n설치를 완료하는 방법에 대한 지원을 찾는다면 이 정보를 포함해야 하는 것을 기억하세요.",
        "config-copyright": "=== 저작권 및 약관 ===\n\n$1\n\n이 프로그램은 자유 소프트웨어입니다. 당신은 자유 소프트웨어 재단이 발표한 GNU 일반 공중 사용 허가서 버전 2나 그 이후 버전에 따라 이 프로그램을 재배포하거나 수정할 수 있습니다.\n\n이 프로그램이 유용하게 사용될 수 있기를 바라지만 <strong>상용으로 사용</strong>되거나 <strong>특정 목적에 맞을 것</strong>이라는 것을 <strong>보증하지 않습니다</strong>.\n자세한 내용은 GNU 일반 공중 사용 허가서를 참조하십시오.\n\n당신은 이 프로그램을 통해 <doclink href=Copying>GNU 일반 공중 사용 허가서 전문</doclink>을 받았습니다. 그렇지 않다면, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA로 편지를 보내주시거나 [http://www.gnu.org/copyleft/gpl.html 온라인으로 읽어보시기] 바랍니다.",
-       "config-sidebar": "* [//www.mediawiki.org 미디어위키 홈]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents 사용자 가이드]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents 관리자 가이드]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ]\n----\n* <doclink href=Readme>읽어보기</doclink>\n* <doclink href=ReleaseNotes>릴리스 노트</doclink>\n* <doclink href=Copying>전문</doclink>\n* <doclink href=UpgradeDoc>업그레이드하기</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org 미디어위키 홈]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents 사용자 가이드]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents 관리자 가이드]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ]\n----\n* <doclink href=Readme>읽어보기</doclink>\n* <doclink href=ReleaseNotes>릴리스 노트</doclink>\n* <doclink href=Copying>전문</doclink>\n* <doclink href=UpgradeDoc>업그레이드하기</doclink>",
        "config-env-good": "환경이 확인되었습니다.\n미디어위키를 설치할 수 있습니다.",
        "config-env-bad": "환경이 확인되었습니다.\n미디어위키를 설치할 수 없습니다.",
        "config-env-php": "PHP $1이(가) 설치되어 있습니다.",
        "config-env-hhvm": "HHVM $1이(가) 설치되어 있습니다.",
        "config-unicode-using-intl": "유니코드 정규화에 [http://pecl.php.net/intl intl PECL 확장 기능]을 사용합니다.",
-       "config-unicode-pure-php-warning": "<strong>경고:</strong> 유니코드 정규화를 처리할 [http://pecl.php.net/intl intl PECL 확장 기능]을 사용할 수 없기 때문에 느린 pure-PHP 구현을 대신 사용합니다.\n트래픽이 높은 사이트에서 실행하시려면 [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations 유니코드 정규화]를 읽어보셔야 합니다.",
-       "config-unicode-update-warning": "<strong>경고:</strong> 유니코드 정규화 래퍼의 설치된 버전은 [http://site.icu-project.org/ ICU 프로젝트]의 라이브러리의 이전 버전을 사용합니다.\n만약 유니코드를 사용하는 것에 대해 우려가 된다면 [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations 업그레이드]해야합니다.",
+       "config-unicode-pure-php-warning": "<strong>경고:</strong> 유니코드 정규화를 처리할 [http://pecl.php.net/intl intl PECL 확장 기능]을 사용할 수 없기 때문에 느린 pure-PHP 구현을 대신 사용합니다.\n트래픽이 높은 사이트에서 실행하시려면 [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations 유니코드 정규화]를 읽어보셔야 합니다.",
+       "config-unicode-update-warning": "<strong>경고:</strong> 유니코드 정규화 래퍼의 설치된 버전은 [http://site.icu-project.org/ ICU 프로젝트]의 라이브러리의 이전 버전을 사용합니다.\n만약 유니코드를 사용하는 것에 대해 우려가 된다면 [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations 업그레이드]해야합니다.",
        "config-no-db": "적절한 데이터베이스 드라이버를 찾을 수 없습니다! PHP용 데이터베이스 드라이버를 설치해야 합니다.\n다음 데이터베이스 {{PLURAL:$2|유형을 지원합니다}}: $1.\n\nPHP를 직접 컴파일했다면, 예를 들어 <code>./configure --with-mysql</code>을 사용하여, 데이터베이스 클라이언트를 활성화하도록 다시 설정하세요.\n데비안이나 우분투 패키지에서 PHP를 설치했다면 <code>php5-mysql</code> 모듈도 설치해야 합니다.",
        "config-outdated-sqlite": "<strong>경고:</strong> 최소인 $2 버전보다 낮은 SQLite $1(이)가 있습니다. SQLite를 사용할 수 없습니다.",
        "config-no-fts3": "<strong>경고:</strong> SQLite를 [//sqlite.org/fts3.html FTS3 모듈] 없이 컴파일하며, 검색 기능은 백엔드에 사용할 수 없습니다.",
-       "config-mbstring": "<strong>치명: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload]이 활성화되어 있습니다!</strong>\n이 옵션은 오류가 발생하고 데이터를 입력하는 데 예기치 않는 손상을 일으킬 수 있습니다.\n이 옵션을 비활성화하지 않는 한 미디어위키를 설치하고 사용할 수 없습니다.",
-       "config-xml-bad": "PHP의 XML 모듈이 없습니다.\n미디어위키는 이 모듈의 기능이 필요하며 이 설정에서는 작동하지 않습니다.\nphp-xml 패키지를 설치해야할 수도 있습니다.",
        "config-pcre-old": "<strong>치명:</strong> PCRE $1 또는 그 이상이 필요합니다.\nPHP 바이너리는 PCRE $2에 연결되어 있습니다. [https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE 자세한 정보].",
        "config-pcre-no-utf8": "<strong>치명:</strong> PHP의 PCRE 모듈은 RCRE_UTF8 지원 없이 컴파일된 것 같습니다.\n미디어위키가 올바르게 작동하려면 UTF-8을 지원해야 합니다.",
        "config-memory-raised": "PHP의 <code>memory_limit</code>는 $1이며 $2(으)로 늘렸습니다.",
        "config-memory-bad": "<strong>경고:</strong> PHP의 <code>memory_limit</code>는 $1입니다.\n아마도 너무 낮은 것 같습니다.\n설치가 실패할 수 있습니다!",
-       "config-ctype": "<strong>치명</strong>: PHP는 [http://www.php.net/manual/en/ctype.installation.php Ctype 확장 기능]을 지원하도록 하여 컴파일해야 합니다.",
-       "config-iconv": "<strong>치명</strong>: PHP는 [http://www.php.net/manual/en/iconv.installation.php iconv 확장 기능]을 지원하도록 하여 컴파일해야 합니다.",
-       "config-json": "<strong>치명:</strong> PHP가 JSON 지원이 없이 컴파일되었습니다.\n미디어위키를 설치하기 전에 PHP JSON 확장 기능이나 [http://pecl.php.net/package/jsonc PECL jsonc] 확장 기능 중 하나를 설치해야 합니다.\n* PHP 확장 기능은 Red Hat Enterprise Linux (CentOS) 5와 6에 포함되어 있지만, <code>/etc/php.ini</code>나 <code>/etc/php.d/json.ini</code>에서 활성화해야 합니다.\n* 2013년 5월 이후에 출시된 일부 리눅스 배포판은 PHP 확장 기능이 생략된 대신, <code>php5-json</code>이나 <code>php-pecl-jsonc</code>로 PECL 확장 기능이 포장되어 있습니다.",
-       "config-mbstring-absent": "<strong>치명적 오류:</strong> PHP는 [http://www.php.net/manual/en/mbstring.setup.php mbstring 확장]을 지원하도록 컴파일되어야 합니다.",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache]가 설치되었습니다",
        "config-apc": "[http://www.php.net/apc APC]가 설치되었습니다",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache]가 설치되었습니다",
@@ -88,9 +82,9 @@
        "config-no-cli-uri": "<strong>경고:</strong> 기본값을 사용하여 <code>--scriptpath</code>를 지정하지 않았습니다: <code>$1</code>.",
        "config-using-server": "\"<nowiki>$1</nowiki>\"(을)를 서버 이름으로 사용합니다.",
        "config-using-uri": "\"<nowiki>$1$2</nowiki>\"(을)를 서버 URL로 사용합니다.",
-       "config-uploads-not-safe": "<strong>경고:</strong> 올리기에 대한 기본 디렉터리(<code>$1</code>)는 임의의 스크립트 실행에 취약합니다.\n미디어위키는 보안 위협 때문에 모든 올려진 파일을 검사하지만, 올리기를 활성화하기 전에 [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security 이 보안 취약점을 해결할 것]을 매우 권장합니다.",
+       "config-uploads-not-safe": "<strong>경고:</strong> 올리기에 대한 기본 디렉터리(<code>$1</code>)는 임의의 스크립트 실행에 취약합니다.\n미디어위키는 보안 위협 때문에 모든 올려진 파일을 검사하지만, 올리기를 활성화하기 전에 [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security 이 보안 취약점을 해결할 것]을 매우 권장합니다.",
        "config-no-cli-uploads-check": "<strong>경고:</strong> 올리기를 위한 기본 디렉터리(<code>$1</code>)는 CLI를 설치하는 동안 임의의 스크립트 실행에 대한 취약점에 대해 검사되지 않습니다.",
-       "config-brokenlibxml": "ì\8b\9cì\8a¤í\85\9cì\97\90 ë²\84ê·¸ê°\80 ì\9e\88ë\8a\94 PHPì\99\80 libxml2ì\9d\98 ì¡°í\95©ì\9d´ ì\9e\88ì\9c¼ë©° ë¯¸ë\94\94ì\96´ì\9c\84í\82¤ë\82\98 ë\8b¤ë¥¸ ì\9b¹ ì\96´플리케이션에 숨겨진 데이터 손상을 일으킬 수 있습니다.\nlibxml2 2.7.3 이후 버전으로 업그레이드하세요. ([https://bugs.php.net/bug.php?id=45996 PHP에 제기한 버그])\n설치가 중단되었습니다.",
+       "config-brokenlibxml": "ì\8b\9cì\8a¤í\85\9cì\97\90 ë²\84ê·¸ê°\80 ì\9e\88ë\8a\94 PHPì\99\80 libxml2ì\9d\98 ì¡°í\95©ì\9d´ ì\9e\88ì\9c¼ë©° ë¯¸ë\94\94ì\96´ì\9c\84í\82¤ë\82\98 ë\8b¤ë¥¸ ì\9b¹ ì\95 플리케이션에 숨겨진 데이터 손상을 일으킬 수 있습니다.\nlibxml2 2.7.3 이후 버전으로 업그레이드하세요. ([https://bugs.php.net/bug.php?id=45996 PHP에 제기한 버그])\n설치가 중단되었습니다.",
        "config-suhosin-max-value-length": "수호신(Suhosin)이 설치되고 $1 바이트로 GET 매개 변수 <code>length</code>를 제한하고 있습니다.\n미디어위키의 ResourceLoader 구성 요소는 이 제한을 회피하지만 성능이 저하됩니다.\n가능하면 <code>php.ini</code>의 <code>suhosin.get.max_value_length</code>를 1024 이상으로 설정하고 <code>LocalSettings.php</code>의 <code>$wgResourceLoaderMaxQueryLength</code>를 같은 값으로 설정해야 합니다.",
        "config-db-type": "데이터베이스 종류:",
        "config-db-host": "데이터베이스 호스트:",
        "config-db-wiki-help": "정상적인 위키 작업 동안 데이터베이스에 연결하는 데 사용할 사용자 이름과 비밀번호를 입력하세요.\n계정이 존재하지 않고 설치 계정에 충분한 권한이 있는 경우 이 사용자 계정은 위키를 작동하는 데 필요한 최소 권한으로 만들어집니다.",
        "config-db-prefix": "데이터베이스 테이블 접두어:",
        "config-db-prefix-help": "여러 위키 사이 또는 미디어위키와 다른 웹 애플리케이션 사이에 하나의 데이터베이스를 공유해야 하는 경우, 충돌을 피하기 위해 모든 테이블 이름에 접두어를 추가하도록 선택할 수 있습니다.\n공백을 사용하지 마세요.\n\n이 필드는 일반적으로 비어 있습니다.",
-       "config-db-charset": "데이터베이스 문자 집합",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 바이너리",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "MySQL 4.0 UTF-8 하위 호환성",
-       "config-charset-help": "<strong>경고:</strong> MySQL 4.1에서 <strong>하위 호환 가능 UTF-8</strong>을 사용하고 나서 <code>mysqldump</code>로 데이터베이스를 백업하면 ASCII가 아닌 모든 문자를 파괴하고 손상된 백업을 되돌릴 수 없습니다!\n\n<strong>바이너리 모드</strong>에서 미디어위키는 바이너리 필드의 데이터베이스에 UTF-8 텍스트를 저장합니다.\nMySQL의 UTF-8 모드를 보다 더 효율적이고 유니코드 문자의 전체 범위를 사용할 수 있습니다.\n<strong>UTF-8 모드</strong>에서는 MySQL이 데이터를 사용하는 문자 집합을 알고 있기 때문에 적절하게 표현하고 변환할 수 있지만\n[//ko.wikipedia.org/wiki/%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C_%ED%8F%89%EB%A9%B4#.EA.B8.B0.EB.B3.B8_.EB.8B.A4.EA.B5.AD.EC.96.B4_.ED.8F.89.EB.A9.B4 기본 다국어 평면] 밖에 있는 문자를 저장할 수 없습니다.",
        "config-mysql-old": "MySQL $1 이상이 필요하나 $2(이)가 있습니다.",
        "config-db-port": "데이터베이스 포트:",
        "config-db-schema": "미디어위키에 대한 스키마:",
        "config-mysql-charset": "데이터베이스 문자 집합:",
        "config-mysql-binary": "바이너리",
        "config-mysql-utf8": "UTF-8",
-       "config-mysql-charset-help": "<strong>바이너리 모드</strong>에서 미디어위키는 바이너리 필드의 데이터베이스에 UTF-8 텍스트를 저장합니다.\nMySQL의 UTF-8 모드보다 더 효율적이고, 유니코드 문자의 전체 범위를 사용할 수 있습니다.\n<strong>UTF-8 모드</strong>에서는 MySQL이 데이터를 사용하는 문자 집합을 알고 있기 때문에 적절하게 표현하고 변환할 수 있지만\n[//ko.wikipedia.org/wiki/%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C_%ED%8F%89%EB%A9%B4#.EA.B8.B0.EB.B3.B8_.EB.8B.A4.EA.B5.AD.EC.96.B4_.ED.8F.89.EB.A9.B4 기본 다국어 평면] 밖에 있는 문자를 저장할 수 없습니다.",
+       "config-mysql-charset-help": "<strong>바이너리 모드</strong>에서 미디어위키는 바이너리 필드의 데이터베이스에 UTF-8 텍스트를 저장합니다.\nMySQL의 UTF-8 모드보다 더 효율적이고, 유니코드 문자의 전체 범위를 사용할 수 있습니다.\n<strong>UTF-8 모드</strong>에서는 MySQL이 데이터를 사용하는 문자 집합을 알고 있기 때문에 적절하게 표현하고 변환할 수 있지만\n[https://ko.wikipedia.org/wiki/%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C_%ED%8F%89%EB%A9%B4#.EA.B8.B0.EB.B3.B8_.EB.8B.A4.EA.B5.AD.EC.96.B4_.ED.8F.89.EB.A9.B4 기본 다국어 평면] 밖에 있는 문자를 저장할 수 없습니다.",
        "config-mssql-auth": "인증 형식:",
        "config-mssql-install-auth": "설치 과정 중 데이터베이스에 연결하는 데 사용할 인증 형식을 선택하세요.\n\"{{int:config-mssql-windowsauth}}\"을 선택하시면 웹서버를 실행 중인 아무 사용자의 자격 증명이 사용됩니다.",
        "config-mssql-web-auth": "위키가 일반적인 작업을 수행하는 동안 데이터베이스 서버에 연결하는 데 사용할 인증 형식을 선택하세요.\n\n\"{{int:config-mssql-windowsauth}}\"을 선택하시면 웹서버를 실행 중인 아무 사용자의 자격 증명이 사용됩니다.",
        "config-profile-no-anon": "계정 만들기 필요",
        "config-profile-fishbowl": "승인된 편집자만",
        "config-profile-private": "비공개 위키",
-       "config-profile-help": "위키는 가능한 많은 사람들이 편집할 수 있도록 할 때 가장 뛰어난 역할을 합니다.\n미디어위키에서는 최근 바뀜을 검토하기 쉽고, 미숙하거나 악의적인 사용자에 의한 손실을 되돌리는 것이 쉽습니다.\n\n그러나 많은 사람이 미디어위키가 다양한 역할을 수행하는 데 유용하다는 것을 알고 있지만, 때로는 모든 사람에게 위키 방식의 장점을 설득하기 쉽지 않을 지도 모릅니다.\n그래서 선택할 수 있습니다.\n\n<strong>{{int:config-profile-wiki}}/<strong> 모델은 로그인하지 않고도 누구나 편집할 수 있습니다.\n<strong>{{int:config-profile-no-anon}}</strong>인 위키에서는 편집자에게 추가적인 책임을 부여하지만, 부담 없는 기여를 저해할 수도 있습니다.\n\n<strong>{{int:config-profile-fishbowl}}</strong> 시나리오에서는 승인된 사용자만 편집할 수 있지만, 일반 사용자도 문서(문서 역사 포함)는 볼 수 있습니다.\n<strong>{{int:config-profile-private}}</strong>는 승인된 사용자만 문서를 볼 수 있으며, 승인된 사용자 그룹이 편집할 수 있습니다.\n\n더 복잡한 사용자 권한 설정은 설치한 후 사용할 수 있으며 [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights 관련 설명서 항목]을 참조하세요.",
+       "config-profile-help": "위키는 가능한 많은 사람들이 편집할 수 있도록 할 때 가장 뛰어난 역할을 합니다.\n미디어위키에서는 최근 바뀜을 검토하기 쉽고, 미숙하거나 악의적인 사용자에 의한 손실을 되돌리는 것이 쉽습니다.\n\n그러나 많은 사람이 미디어위키가 다양한 역할을 수행하는 데 유용하다는 것을 알고 있지만, 때로는 모든 사람에게 위키 방식의 장점을 설득하기 쉽지 않을 지도 모릅니다.\n그래서 선택할 수 있습니다.\n\n<strong>{{int:config-profile-wiki}}/<strong> 모델은 로그인하지 않고도 누구나 편집할 수 있습니다.\n<strong>{{int:config-profile-no-anon}}</strong>인 위키에서는 편집자에게 추가적인 책임을 부여하지만, 부담 없는 기여를 저해할 수도 있습니다.\n\n<strong>{{int:config-profile-fishbowl}}</strong> 시나리오에서는 승인된 사용자만 편집할 수 있지만, 일반 사용자도 문서(문서 역사 포함)는 볼 수 있습니다.\n<strong>{{int:config-profile-private}}</strong>는 승인된 사용자만 문서를 볼 수 있으며, 승인된 사용자 그룹이 편집할 수 있습니다.\n\n더 복잡한 사용자 권한 설정은 설치한 후 사용할 수 있으며 [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights 관련 설명서 항목]을 참조하세요.",
        "config-license": "저작권 및 라이선스:",
        "config-license-none": "라이선스 바닥글 없음",
        "config-license-cc-by-sa": "크리에이티브 커먼즈 저작자표시-동일조건변경허락",
        "config-email-sender-help": "발신한 이메일에 대한 반송 주소로 사용할 이메일 주소를 입력하세요.\n반송할 때 보내는 주소입니다.\n대부분의 메일 서버는 적어도 도메인 이름 부분은 유효합니다.",
        "config-upload-settings": "그림과 파일 올리기",
        "config-upload-enable": "파일 올리기 활성화",
-       "config-upload-help": "파일 올리기는 서버에 잠재적인 보안 위험에 쉽게 노출될 수 있습니다.\n자세한 내용은 매뉴얼의 [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security 보안 문단]을 참조하세요.\n\n파일 올리기를 활성화하려면 미디어위키의 루트 디렉토리에 있는 <code>images</code> 하위 디렉토리에서 웹 서버가 기록할 수 있도록 모드를 바꿉니다.\n그 다음 이 옵션을 활성화합니다.",
+       "config-upload-help": "파일 올리기는 서버에 잠재적인 보안 위험에 쉽게 노출될 수 있습니다.\n자세한 내용은 매뉴얼의 [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security 보안 문단]을 참조하세요.\n\n파일 올리기를 활성화하려면 미디어위키의 루트 디렉토리에 있는 <code>images</code> 하위 디렉토리에서 웹 서버가 기록할 수 있도록 모드를 바꿉니다.\n그 다음 이 옵션을 활성화합니다.",
        "config-upload-deleted": "삭제된 파일에 대한 디렉터리:",
        "config-upload-deleted-help": "삭제된 파일을 보관할 디렉토리를 선택하세요.\n이상적으로 웹에서 접근할 수 없게 해야 합니다.",
        "config-logo": "로고 URL:",
        "config-logo-help": "미디어위키의 기본 스킨은 사이드바 메뉴 위에 135×160 픽셀의 로고의 공간을 포함하고 있습니다.\n적당한 크기로 그림을 올리고 여기에 URL을 입력하세요.\n\n로고가 상대적인 경로에 있으면 <code>$wgStylePath</code>나 <code>$wgScriptPath</code>를 사용할 수 있습니다.\n\n로고 사용을 원하지 않으면 이 상자를 비우세요.",
        "config-instantcommons": "인스턴트 공용 기능 활성화",
-       "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons 인스턴트 공용]은 [//commons.wikimedia.org/ 위키미디어 공용] 사이트에서 찾을 수 있는 그림, 소리 및 다른 미디어를 위키에서 사용할 수 있도록 하는 기능입니다.\n이렇게 하려면 미디어위키가 인터넷에 접근해야합니다.\n\n위키미디어 공용 외에 기타 위키를 설정하는 방법에 대한 지침을 포함한, 기능에 대한 자세한 내용은 [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos 매뉴얼]을 참조하세요.",
+       "config-instantcommons-help": "[https://www.mediawiki.org/wiki/InstantCommons 인스턴트 공용]은 [https://commons.wikimedia.org/ 위키미디어 공용] 사이트에서 찾을 수 있는 그림, 소리 및 다른 미디어를 위키에서 사용할 수 있도록 하는 기능입니다.\n이렇게 하려면 미디어위키가 인터넷 연결을 필요로 합니다.\n\n위키미디어 공용 이외에 다른 위키에서 이를 설정하는 방법에 대한 지침을 포함한, 기능에 대한 자세한 내용은 [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos 매뉴얼]을 참조하세요.",
        "config-cc-error": "크리에이티브 커먼즈 라이선스 선택기에 결과가 없습니다.\n수동으로 라이선스 이름을 입력하세요.",
        "config-cc-again": "다시 선택...",
        "config-cc-not-chosen": "원하는 크리에이티브 커먼즈 라이선스를 선택하고 \"proceed\"을 클릭하세요.",
        "config-install-extension-tables": "활성화된 확장 기능을 위한 테이블을 만드는 중",
        "config-install-mainpage-failed": "대문을 삽입할 수 없습니다: $1",
        "config-install-done": "<strong>축하합니다!</strong>\n미디어위키를 설치했습니다.\n\n설치 관리자가 <code>LocalSettings.php</code> 파일을 만들었습니다.\n여기에 모든 설정이 포함되어 있습니다.\n\n파일을 다운로드하여 위키 설치의 거점에 넣어야 합니다. (index.php와 같은 디렉터리) 다운로드가 자동으로 시작됩니다.\n\n다운로드가 제공되지 않을 경우나 그것을 취소한 경우에는 아래의 링크를 클릭하여 다운로드를 다시 시작할 수 있습니다:\n\n$3\n\n<strong>참고:</strong> 이 생성한 설정 파일을 다운로드하지 않고 설치를 끝내면 이 파일은 나중에 사용할 수 없습니다.\n\n완료되었으면 <strong>[$2 위키에 들어갈 수 있습니다]</strong>.",
+       "config-install-done-path": "<strong>축하합니다!</strong>\n미디어위키가 설치되었습니다.\n\n설치 관리자가 <code>LocalSettings.php</code> 파일을 생성했습니다.\n이 파일에 모든 설정이 포함되어 있습니다.\n\n이 파일을 다운로드하여 <code>$4</code> 위치에 넣으세요. 다운로드가 자동으로 시작되었을 것입니다.\n\n다운로드가 시작되지 않았거나 취소했다면, 아래 링크를 클릭하여 다운로드를 재시작할 수 있습니다.\n\n$3\n\n<strong>알림:</strong> 지금 다운로드하지 않는다면, 이후에는 이 설정 파일을 다운로드할 수 없습니다.\n\n모든 작업이 완료되었다면, <strong>[$2 위키에 들어갈 수 있습니다]</strong>.",
        "config-download-localsettings": "<code>LocalSettings.php</code> 다운로드",
        "config-help": "도움말",
        "config-help-tooltip": "확장하려면 클릭",
        "config-nofile": "\"$1\" 파일을 찾을 수 없습니다. 이미 삭제되었나요?",
-       "config-extension-link": "당신의 위키가 [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions 확장 기능]을 지원한다는 것을 알고 계십니까?\n\n[//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category 분류별 확장 기능]을 찾아보실 수 있습니다.",
+       "config-extension-link": "당신의 위키가 [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions 확장 기능]을 지원한다는 것을 알고 계십니까?\n\n[https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category 분류별 확장 기능]을 찾아보실 수 있습니다.",
        "mainpagetext": "<strong>미디어위키가 설치되었습니다.</strong>",
-       "mainpagedocfooter": "[//meta.wikimedia.org/wiki/Help:Contents 이곳]에서 위키 소프트웨어에 대한 정보를 얻을 수 있습니다.\n\n== 시작하기 ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings 설정하기 목록]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ 미디어위키 FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce 미디어위키 릴리스 메일링 리스트]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources 내 언어로 미디어위키 지역화]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam 당신의 위키에서 스팸에 대처하는 법을 배우세요]"
+       "mainpagedocfooter": "[https://meta.wikimedia.org/wiki/Help:Contents 이곳]에서 위키 소프트웨어에 대한 정보를 얻을 수 있습니다.\n\n== 시작하기 ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings 설정하기 목록]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ 미디어위키 FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce 미디어위키 릴리스 메일링 리스트]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources 내 언어로 미디어위키 지역화]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam 당신의 위키에서 스팸에 대처하는 법을 배우세요]"
 }
index d1d7d4c..3a6e902 100644 (file)
@@ -1,7 +1,8 @@
 {
        "@metadata": {
                "authors": [
-                       "Iltever"
+                       "Iltever",
+                       "Ernác"
                ]
        },
        "config-desc": "MediaWiki инсталлятор",
@@ -25,5 +26,5 @@
        "config-ns-other-default": "MyWiki",
        "config-profile-private": "Джабыкъ вики",
        "mainpagetext": "'''«MediaWiki» тыйыншлы салынды.'''",
-       "mainpagedocfooter": "Бу вики бла къалай ишлерге ангылатхан информацияны [//meta.wikimedia.org/wiki/Help:Contents_User's_Guide къошулуучугъа юретиуде] табаргъа боллукъду.\n\n== Файдалы ресурсла ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings тюрлендириулени списогу (ингил.)];\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki-ни юсюнден кёб берилген соруула];\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki-ни джангы версиясыны чыкъгъанын билдириу письмола]."
+       "mainpagedocfooter": "Бу вики бла къалай ишлерге ангылатхан информацияны [https://meta.wikimedia.org/wiki/Help:Contents_User's_Guide къошулуучугъа юретиуде] табаргъа боллукъду.\n\n== Файдалы ресурсла ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings тюрлендириулени списогу (ингил.)];\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki-ни юсюнден кёб берилген соруула];\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki-ни джангы версиясыны чыкъгъанын билдириу письмола]."
 }
index 3d5a0a9..a39d3a1 100644 (file)
        "config-restart": "Joh, neu aanfange!",
        "config-welcome": "=== Ömjevong Pröhfe ===\nMer maache en Aanzahl jrundlääje Pröhvunge, öm erus ze fenge, ov di Ömjävvong heh paß för Mediawiki opzesäze.\nWann de Hölp bem Opsäze hölls, saach wigger, wat heh erus kohm, alsu wat heh schteiht.",
        "config-copyright": "=== Urhävverrääsch un Lizänzbedengunge ===\n\n$1\n\nDat  Projramm heh es frei, mer kann et wiggerjävve un verdeijle un och verändere onger dä Bedengunge vun de  GNU <i lang=\"en\">General Public License</i> (Alljemeine öffentlesche Lizänz) wi se vun de <i lang=\"en\">Free Software Foundation</i> (de Schteftung för frei Projramme) veröffentlesch woode es. Dobei kanns De Der de Version 2 vun dä Lizanz ußsöhke, udder jeede Version donoh, wi et Der jefällt.\n\nDat Projramm weed wigger jejovve met dä Hoffnung, dat et jät nöz, ävver <strong>der ohne Jarrantie</strong>, sujaa der ohne de onußjeshproche Jarantie, <strong>verkoufbaa</strong> ze sin, udder <strong>för öhnds_ene beshtemmpte Zweck ze bruche</strong> ze sin.\nLiß de GNU <i lang=\"en\">General Public License</i> sellver, öm mieh ze erfahre.\n\nDo sullts en <doclink href=Copying>Kopie vun dä alljemene öffentlesche Lizänz vun dä GNU</doclink> (<i lang=\"en\">GNU General Public License</i>) zosamme met heh däm Projramm krääje han. Wann dat nit esu es, schrief aan de <i lang=\"en\">Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA</i>, udder [http://www.gnu.org/copyleft/gpl.html liß se online övver et Internet].",
-       "config-sidebar": "* [//www.mediawiki.org MediaWiki sing Hompäjdsch]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Handbohch för Aanwänder]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Handbohch för Administratohre un Wiki_Köbesse]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Öff jeschtallte Frohre met Antwoote]\n----\n* <doclink href=Readme>Liß Mesch! (<i lang=\"en\">Read me</i>)</doclink>\n* <doclink href=ReleaseNotes><i lang=\"en\">Release notes</i> Övver heh di Projrammversion</doclink>\n* <doclink href=Copying><i lang=\"en\">Copying</i> — Lizänzbeshtemmunge</doclink>\n* <doclink href=UpgradeDoc><i lang=\"en\">Upgrading</i> — Ob en neu Projrammversion jonn</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org MediaWiki sing Hompäjdsch]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Handbohch för Aanwänder]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Handbohch för Administratohre un Wiki_Köbesse]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Öff jeschtallte Frohre met Antwoote]\n----\n* <doclink href=Readme>Liß Mesch! (<i lang=\"en\">Read me</i>)</doclink>\n* <doclink href=ReleaseNotes><i lang=\"en\">Release notes</i> Övver heh di Projrammversion</doclink>\n* <doclink href=Copying><i lang=\"en\">Copying</i> — Lizänzbeshtemmunge</doclink>\n* <doclink href=UpgradeDoc><i lang=\"en\">Upgrading</i> — Ob en neu Projrammversion jonn</doclink>",
        "config-env-good": "De Ömjävvöng es jepröhf.\nDo kanns MehdijaWikki opsäze.",
        "config-env-bad": "De Ömjävong es jeprööf.\nDo kanns MehdijaWikki nit opsäze.",
        "config-env-php": "PHP $1 es doh.",
        "config-env-hhvm": "HHVM $1 es enschtalleerd.",
        "config-unicode-using-intl": "För et <i lang=\"en\">Unicode</i>-Nommaliseere dom_mer dä [http://pecl.php.net/intl Zohsaz <code lang=\"en\">intl</code> uss em <code lang=\"en\">PECL</code>] nämme.",
-       "config-unicode-pure-php-warning": "'''Opjepaß:''' Mer kunnte dä [http://pecl.php.net/intl Zohsaz <code lang=\"en\">intl</code> uss em <code lang=\"en\">PECL</code>] för et <i lang=\"en\">Unicode</i>-Nommaliseere nit fenge. Dröm nämme mer dat eijfache, ävver ärsh lahme, <i lang=\"en\">PHP</i>-Projrammshtöck doför.\nFör jruuße Wikis met vill Metmaachere doht Üsch di Sigg övver et [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations <i lang=\"en\">Unicode</i>-Nommaliseere] (es op Änglesch) aanloore.",
-       "config-unicode-update-warning": "'''Opjepaß:''' Dat Projramm för der <i lang=\"en\">Unicode</i> zo normaliseere boud em Momang op en  ählter Version vun dä Bibliothek vum [http://site.icu-project.org/ ICU-Projäk] op.\nDoht di [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations op der neuste Shtand bränge], wann auf dat Wiki em Äänz <i lang=\"en\">Unicode</i> bruche sull.",
+       "config-unicode-pure-php-warning": "'''Opjepaß:''' Mer kunnte dä [http://pecl.php.net/intl Zohsaz <code lang=\"en\">intl</code> uss em <code lang=\"en\">PECL</code>] för et <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"a standard for the consistent encoding, representation, and handling of text expressed in most of the world's writing systems\">UNICODE</i>-Nommalisehre nit fenge. Dröm nämme mer dat eijfache, ävver ärsch lahme, <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"PHP Hypertext Preprocessor\">PHP</i>-Projrammschtök doför.\nFör jruuße Wikis met vill Metmaachere doht Üsch di Sigg övver et [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"a standard for the consistent encoding, representation, and handling of text expressed in most of the world's writing systems\">UNICODE</i>-Nommaliseere] (es op Änglesch) aanloore.",
+       "config-unicode-update-warning": "'''Opjepaß:''' Dat Projramm för der <i lang=\"en\">Unicode</i> zo normaliseere boud em Momang op en  ählter Version vun dä Bibliothek vum [http://site.icu-project.org/ ICU-Projäk] op.\nDoht di [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations op der neuste Shtand bränge], wann auf dat Wiki em Äänz <i lang=\"en\">Unicode</i> bruche sull.",
        "config-no-db": "Mer kunnte kei zopaß Daatebangk-Driiverprojamm fenge.\nMer bruche e Daatebangk-Driiverprojamm för PHP. Dat moß enjeresht wääde.\nMer künne met heh dä {{PLURAL:$2|Daatebangk|Daatebangke|Daatebangk}} ömjonn: $1.\n\nWann De nit om eijene Rääshner bes, moß De Dinge <i lang=\"en\">provider</i> bedde, dat hä Der ene zopaß Driiver enresht.\nWann de PHP sellver övversaz häs, donn e Zohjangsprojramm för en Daatebangk enbenge, för e Beishpell met: <code  lang=\"en\">./configure --with-mysql</code>.\nWann De PHP uss enem <i lang=\"en\">Debian</i> udder <i lang=\"en\">Ubuntu</i> Pakätt enjeresht häs, moß De dann och noch et <code lang=\"en\">php5-mysql</code> op Dinge Räschner bränge.",
        "config-outdated-sqlite": "'''Opjepaß:''' <i lang=\"en\">SQLite</i> $1 es enschtaleert. Avver MediaWiki bruch <i lang=\"en\">SQLite</i> $2 udder hühter. <i lang=\"en\">SQLite</i> kann dröm nit enjesaz wääde.",
        "config-no-fts3": "'''Opjepaß:''' De Projramme vum <i lang=\"en\">SQLite</i> sin der ohne et [//sqlite.org/fts3.html FTS3-Modul] övversaz, dröm wääde de Funxjohne för et Söhke fähle.",
-       "config-mbstring": "<strong>Dä!</strong> Dem PHP singe Schallder <code lang=\"en\">[http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload]</code> es enjeschalldt.\nDat sorresch för Fähler un kann enjejovve Daate esu kapott maach, dat doh draan nix mih ze repareere es.\nDomet kam_mer MediaWiki nit ennreeshte un och nit loufe lohße.\nDat heiß, mer moß en affschallde, söns jeiht nix.",
-       "config-xml-bad": "Dem <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"PHP Hypertext Preprocessor\">PHP</i> sing <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Extensible Markup Language\">XML</i>-Moduhl es nit ze fenge.\nMediaWiki bruch Funxjohne en däm Moduhl un deiht et esu nit.\nDe künns et nühdesch han, dat Pakätt \n„<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">php-xml</code>“ ze enschtallehre.",
        "config-pcre-old": "<strong>Fähler:</strong> PCRE $1 udder neuer es nüüdesch.\nPHP es jäz ävver met PCRE $2 zesamme jebonge.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Mieh dohzoh].",
        "config-pcre-no-utf8": "'''Dä:''' Et PHP-Modul <i lang=\"en\">PCRE</i> schingk ohne de <i lang=\"en\">PCRE_UTF8</i>-Aandeile övversaz ze sin.\nMediaWiki bruch dä UTF-8-Krohm ävver, öm ohne Fähler loufe ze künne.",
        "config-memory-raised": "Der jrühzte zohjelasse Shpeisherbedarf vum PHP, et <code lang=\"en\">memory_limit</code>, shtund op $1 un es op $2 erop jesaz woode.",
        "config-memory-bad": "'''Opjepaß:''' Dem PHP singe Parameeter <code lang=\"en\">memory_limit</code> es $1.\nDat es wall ze winnisch.\nEt Enreeschte kunnt doh draan kappott jon!",
-       "config-ctype": "'''Fähler:''' <i lang=\"en\">PHP</i> moß met dä Ongerschtözong för der [http://www.php.net/manual/en/ctype.installation.php <code lang=\"en\">Ctype</code> Zohsaz] övversaz woode sin.",
-       "config-iconv": "'''Fähler:''' <i lang=\"en\">PHP</i> moß met dä Ongerschtözong för der [http://www.php.net/manual/en/iconv.installation.php <code lang=\"en\">iconv</code> Zohsaz] övversaz woode sin.",
-       "config-json": "'''Dä!:''' PHP wood der ohne <i lang=\"en\" xml:lang=\"en\">JSON</i> övversaz.\nJäz moß de äntweeder dä PHP-<i lang=\"en\" xml:lang=\"en\">JSON</i>-Zohsaz enschtallere udder der <i lang=\"en\" xml:lang=\"en\">[http://pecl.php.net/package/jsonc PECL jsonc]</i>-Zohsaz, ih dat de MedijaWikki enschtallere kanns.\n* Dä PHP-Zohsaz es em <i lang=\"en\" xml:lang=\"en\">Red Hat Enterprise Linux (CentOS)</i> 5 un 6 änthallde, moß ävver en de <code lang=\"en\" xml:lang=\"en\">/etc/php.ini</code> udder <code lang=\"en\" xml:lang=\"en\">/etc/php.d/json.ini</code> enjeschalldt wääde.\n* E paa Linux Destrebuzjohne lohß zigg_em Mai 2013 dä PHP-Zohsaz fott un packe doför der PECL-Zohsaz als <code lang=\"en\" xml:lang=\"en\">php5-json</code> udder <code lang=\"en\" xml:lang=\"en\">php-pecl-jsonc</code> med ein.",
-       "config-mbstring-absent": "'''Fähler:''' <i lang=\"en\">PHP</i> moß met dä Ongerschtözong för singe Zohsaz [http://www.php.net/manual/en/mbstring.setup.php <code lang=\"en\">mbstring </code>] övversaz woode sin.",
        "config-xcache": "Dä <code lang=\"en\">[http://xcache.lighttpd.net/ XCache]</code> es ennjeresht.",
        "config-apc": "Dä <code lang=\"en\">[http://www.php.net/apc APC]</code> es ennjeresht.",
        "config-wincache": "Dä <code lang=\"en\">[http://www.iis.net/download/WinCacheForPhp WinCache]</code> es ennjeresht.",
@@ -80,9 +74,9 @@
        "config-no-cli-uri": "'''Opjepaß''': <code lang=\"en\"><code>--scriptpath</code></code> es nit aanjejovve, mer nämme der Schtandatt: <code>$1</code>.",
        "config-using-server": "Mer nämmen dem ẞööver singe Name: „<nowiki>$1</nowiki>“.",
        "config-using-uri": "Mer nämmen dem ẞööver singe <i lang=\"en\">URL</i>: „<nowiki>$1$2</nowiki>“.",
-       "config-uploads-not-safe": "'''Opjepaß:''' Uß däm jewöhnlijje Verzeichnes för de huhjelaade Datteie, dat es <code>$1</code>, künnte öhnzwällsche Skrepte un Projramme ußjeföhrt wääde. Och wann MediaWiki de huhjelaade Datteie prööf, dat kein bekannte Risike dren sin, sullt mer doch dat [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security Sesherheitsloch] zoh maache, ih dat mer et Dattei Huhlaade zohlöht.",
+       "config-uploads-not-safe": "'''Opjepaß:''' Uß däm jewöhnlijje Verzeichnes för de huhjelaade Datteie, dat es <code>$1</code>, künnte öhnzwällsche Skrepte un Projramme ußjeföhrt wääde. Och wann MediaWiki de huhjelaade Datteie prööf, dat kein bekannte Risike dren sin, sullt mer doch dat [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security Sesherheitsloch] zoh maache, ih dat mer et Dattei Huhlaade zohlöht.",
        "config-no-cli-uploads-check": "'''Opjepaß''': <code>$1</code> es dat Schtandatt-Verzeijschneß för et Datteije-Huhlaade. Beim Opsäze met <abbr lang=\"en\" title=\"Call Level Interface\">CLI</abbr> donn mer ävver nit övverpröhve, dat dat jeschöz es dojääje, dat Skrepte vun doh loufe künne, di mer nit loufe han well.",
-       "config-brokenlibxml": "Op Dingem Rääschner loufe Versione vun PHP un <code lang=\"en\">libxml2</code> zosamme, di ävver nit zosamme paßße, un onbimärk de Daate em MediaWiki un ander Web_Aanwändunge [//bugs.php.net/bug.php?id=45996 bug kapott maache].\nJangk op <code lang=\"en\">libxml2</code> 2.7.3 udder dohnoh.\nHeh jeihd et nit wigger.",
+       "config-brokenlibxml": "Op Dingem Rääschner loufe Versione vun PHP un <code lang=\"en\">libxml2</code> zosamme, di ävver nit zosamme paßße, un onbimärk de Daate em MediaWiki un ander Web_Aanwändunge [https://bugs.php.net/bug.php?id=45996 bug kapott maache].\nJangk op <code lang=\"en\">libxml2</code> 2.7.3 udder dohnoh.\nHeh jeihd et nit wigger.",
        "config-suhosin-max-value-length": "<i lang=\"en\">Suhosin</i> es enschtalleet. Dröm kann ene <code lang=\"en\">GET</code>-Parrameeter nit övver {{PLURAL:$1|ei Byte|$1 Bytes|noll Byte}} lang wääde. Dem MediaWiki singe <i lang=\"en\">ResourceLoader</i> kütt doh zwa drömeröm, ävver dat bräms. Wann müjelesch, doht <code lang=\"en\">suhosin.get.max_value_length</code> en dä Dattei <code lang=\"en\">php.ini</code> op 1024 Bytes udder drövver enschtälle, un dann moß <code lang=\"en\">$wgResourceLoaderMaxQueryLength</code> en dä Dattei <code lang=\"en\">LocalSettings.php</code> op däsälve Wäät jesaz wääde.",
        "config-db-type": "De Zoot Daatebangk:",
        "config-db-host": "Dä Name vun däm Rääschner met dä Daatebangk:",
        "config-mysql-charset": "Dä Daatebangk iere Zeischesaz:",
        "config-mysql-binary": "binär",
        "config-mysql-utf8": "UTF-8",
-       "config-mysql-charset-help": "Beim Schpeischere em <strong>binähre Fomaht</strong> deiht MediaWiki Täx, dä em UTF-8 Fommaht kütt, en singer Dahtebangk en binähr kodehrte Dahtefälder faßhallde.\nDad_es flöcker un spahsamer wi et UTF-8 Fommaht vum <i lang=\"en\">MySQL</i> un määd_et müjjelesch, jehdes <i lang=\"en\">Unicode</i>-Zeische met faßzehallde.\n\nBeim Schpeischere em <strong>UTF-8 Fomaht<strong> deihd_et <i lang=\"en\">MySQL</i> der Zeischesaz un de Kodehrung vun dä Dahte känne, un kann se akeraht aanzeije un ömwandelle,\nallerdengs künne kein Zeische ußerhalv vum [//de.wikipedia.org/wiki/Basic_Multilingual_Plane#Gliederung_in_Ebenen_und_Bl.C3.B6cke jrundlähje Knubbel för vill Schprohche (<i lang=\"en\">Basic Multilingual Plane — BMP</i>)] afjeschpeischert wähde.",
+       "config-mysql-charset-help": "Beim Schpeischere em <strong>binähre Fomaht</strong> deiht MehdijaWikki Täx, dä em <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Däm Unicode singe Universal Coded Character Set + Transformation Format—8-Bit\">UTF-8</i>-Fommaht kütt, en singer Dahtebangk en binähr kodehrte Dahtefälder faßhallde.\nDad_es flöcker un spahsamer wi et <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Däm Unicode singe Universal Coded Character Set + Transformation Format—8-Bit\">UTF-8</i>-Fommaht vum <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\">MySQL</i> un määd_et müjjelesch, jehdes <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"a standard for the consistent encoding, representation, and handling of text expressed in most of the world's writing systems\">UNICODE</i>-Zeische met faßzehallde.\n\nBeim Schpeischere em <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Däm Unicode singe Universal Coded Character Set + Transformation Format—8-Bit\">UTF-8</i> deihd_et <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\">MySQL</i> der Zeijschesaz un de Kodehrung vun dä Dahte känne, un kann se akeraht aanzeije un ömwandelle,\nallerdengs künne kein Zeische ußerhalv vum [https://de.wikipedia.org/wiki/Basic_Multilingual_Plane#Gliederung_in_Ebenen_und_Bl.C3.B6cke jrundlähje Knubbel för vill Schprohche (<i lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Basic Multilingual Plane — BMP</i>)] afjeschpeischert wähde.",
        "config-mssql-auth": "De Zoot Aanmäldong:",
        "config-mssql-install-auth": "Söhk us, wi dat Aanmälde aan dä Daatebangk vor sesch jonn sull för de Enschtallazjuhn.\nWann De <em>{{int:Config-mssql-windowsauth}}</em> nemms, weed jenumme, met wat emmer dä Wäbßööver aam loufe es.",
        "config-mssql-web-auth": "Söhk us, wi dat Aanmälde aan dä Daatebangk vör sesch jonn sull för de nommaale Ärbeid vum Wiki.\nWann De <em>{{int:Config-mssql-windowsauth}}</em> nemms, weed dat jenumme, wohmet dä Wäbßööver aam loufe es.",
        "config-profile-no-anon": "Schriever möße enlogge",
        "config-profile-fishbowl": "Bloß ußdröcklesch zohjelohße Schriever",
        "config-profile-private": "E jeschloße Privat_Wiki",
-       "config-profile-help": "Wikkis loufe et bäß, wam_mer esu vill Lück wi möjjelesch draan metmaache un schrieve löht.\nMet MehdijaWikki es et ejfach, de neuste Änderonge ze beloore un wat ahnungslose udder fiese Lück kapott jemaat han wider retuur ze maache.\n\nBloß, mänsch eine häd_eruß jefonge, dat mer MediaWiki jood en en jruuße Zahl ongerscheidlijje Rolle bruche kann, un nit emmer es et leisch, ene vum onverfälschte Wiki_Wääsch ze övverzeuje.\nEsu häß De de Wahl:\n\n'''{{int:config-profile-wiki}}''' löht jeder_ein metschrihve, och ohne sesch enzelogge.\n\n'''{{int:config-profile-no-anon}}''', dat sorsch för mieh seeschbaa Verantwootlischkeite, künnt ävver zohfällije Methellefer verschrecke.\n\n'''{{int:config-profile-fishbowl}}''' löht nor de ußjesöhk Metmaacher schrieve, ävver de janze Öffentleshkeit kann et lässe un süht och de ällder Versione, un wat wää wann draan jedonn hät.\n\n'''{{int:config-profile-private}}''' kann nur lässe, wäh en et Wikki zohjelohße es, un desellve Jropp kann och schrieve.\n\nNoch ander un un opwändijere Enschtällonge för de Rääschte sin müjjelesch, wann et Wikki ens aam Loufe es. Loor Der doför de [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights zopaß Hölp em Handbooch] aan.",
+       "config-profile-help": "Wikkis loufe et bäß, wam_mer esu vill Lück wi möjjelesch draan metmaache un schrieve löht.\nMet MehdijaWikki es et ejfach, de neuste Änderonge ze beloore un wat ahnungslose udder fiese Lück kapott jemaat han wider retuur ze maache.\n\nBloß, mänsch eine häd_eruß jefonge, dat mer MediaWiki jood en en jruuße Zahl ongerscheidlijje Rolle bruche kann, un nit emmer es et leisch, ene vum onverfälschte Wiki_Wääsch ze övverzeuje.\nEsu häß De de Wahl:\n\n'''{{int:config-profile-wiki}}''' löht jeder_ein metschrihve, och ohne sesch enzelogge.\n\n'''{{int:config-profile-no-anon}}''', dat sorsch för mieh seeschbaa Verantwootlischkeite, künnt ävver zohfällije Methellefer verschrecke.\n\n'''{{int:config-profile-fishbowl}}''' löht nor de ußjesöhk Metmaacher schrieve, ävver de janze Öffentleshkeit kann et lässe un süht och de ällder Versione, un wat wää wann draan jedonn hät.\n\n'''{{int:config-profile-private}}''' kann nur lässe, wäh en et Wikki zohjelohße es, un desellve Jropp kann och schrieve.\n\nNoch ander un un opwändijere Enschtällonge för de Rääschte sin müjjelesch, wann et Wikki ens aam Loufe es. Loor Der doför de [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights zopaß Hölp em Handbooch] aan.",
        "config-license": "Urhävverrääsch un Lizänz:",
        "config-license-none": "Kein Fooßreih övver de Lizänz",
        "config-license-cc-by-sa": "<i lang=\"en\">Creative Commons</i> Der Name moß jenannt sin, et Wiggerjävve es zohjelohße onger dersellve Bedengunge",
        "config-email-sender-help": "Jiff de Adräß för de <i lang=\"en\">e-mail</i> en, woh Antwoote ob em Wiki singe <i lang=\"en\">e-mails</i> hen jonn sulle.\nDat es och de Adräß, woh de <i lang=\"en\">e-mails</i> met Fählermäldonge hen jon.\nVill ẞöövere för de <i lang=\"en\">e-mail</i> welle winnischßdens ene jöltijje Domain en dä Adräß han.",
        "config-upload-settings": "Belder un Datteie huh laade",
        "config-upload-enable": "Et Belder un Datteie Huhlahde zohlohße",
-       "config-upload-help": "Datteije huh ze laade künnt e Risiko för dem ẞööver singe Sescherheit sin.\nMieh doh drövver kam_mer em [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security Kapitel övver de Sescherheit] em Handbooch lässe.\n\nÖm et Huhlaade zohzelohße donn de Rääschde för der Zohjreff op dat Ongerverzeischneß <code lang=\"en\">images</code> em MediaWiki singem Houpverzeischneß esu enshtälle, dat et Webßööverprojramm doh Datteije un Verzeischneße eren schrieve kann.\nDonoh donn heh di Saach zohlohße.",
+       "config-upload-help": "Datteije huh ze lahde künnd e Rissiko för dem ẞööver sing Sescherheit sin.\nMih doh drövver kam_mer em [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security Kapitel övver de Sescherheit] em Handbohch lässe.\n\nÖm et Huhlahde zohzelohße donn de Rääschde för der Zohjreff op dat Ongerverzeischneß <code lang=\"en\" xml:lang=\"en\" title=\"„Bellder“\">images</code> em MehdijaWikki singem Houpverzeischneß esu enschtälle, dat et Webßööverprojramm doh Datteije un Verzeijschneße eren schrihve kann.\nDonoh donn heh di Enschtällong dann zohlohße.",
        "config-upload-deleted": "Dat Verzeishneß för fottjeschmeße Datteije:",
        "config-upload-deleted-help": "Söhk e Verzeijschneß uß för de fottjeschmeße Datteije vum Wiki dren afzelääje.\nEt bäß es, wam_mer vum <i lang=\"en\">world wide web</i> doh nit drahn kumme kann.",
        "config-logo": "Dem Wiki singem Logo sing <i lang=\"en\">URL</i>:",
        "config-logo-help": "De Schtandart_Bedeen_Bovverfläsch vum MediaWiki hät e Logo bovve en der Eck met 135x160 Pixele.\nDonn e zopaß Logo huh laade, un donn däm sing URL heh endraare.\n\nDo kanns <code lang=\"en\">$wgStylePath</code> udder <code lang=\"en\">$wgScriptPath</code> nämme, wann Ding Logo en einem vun dänne Pahde litt.\n\nWells De kei Logo han, draach heh nix en.",
        "config-instantcommons": "Donn <i lang=\"en\">InstantCommons</i> zohlohße.",
-       "config-instantcommons-help": "<i lang=\"en\">[//www.mediawiki.org/wiki/InstantCommons InstantCommons]</i> es en Eijeschaff, di et för Wikis müjjelesch määt, Belder, Tondatteie un ander Mehdijedatteie enzebenge, di op dä Webßait vun de <i lang=\"en\">[//commons.wikimedia.org/ Wikimedia Commons]</i> ongerjebraat sin. Öm dat noze ze künne, moß dä ẞööver vum MediaWiki en Verbendung nohm Internet opnämme künne.\n\nMih Aanjahbe doh drövver un en Aanleidong, wi mer och ander Wikis ußer de <i lang=\"en\">Wikimedia Commons</i> doför enreeschte kann, fengk mer em [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos Handbohch].",
+       "config-instantcommons-help": "<i lang=\"en\">[https://www.mediawiki.org/wiki/InstantCommons InstantCommons]</i> es en Eijeschaff, di et för Wikis müjjelesch määt, Belder, Tondatteie un ander Mehdijedatteie enzebenge, di op dä Webßait vun de <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"A non-profit organization devoted to expanding the range of creative works available for others to build upon legally and to share\">[https://commons.wikimedia.org/ Wikimedia Commons]</i> ongerjebraat sin. Öm dat noze ze künne, moß dä ẞööver vum MediaWiki en Verbendung nohm Internet opnämme künne.\n\nMih Aanjahbe doh drövver un en Aanleidong, wi mer och ander Wikis ußer de <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"A non-profit organization devoted to expanding the range of creative works available for others to build upon legally and to share\">Wikimedia Commons</i> doför enreeschte kann, fengk mer em [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos Hanndbohch].",
        "config-cc-error": "Et Ußsöhke övver de <i lang=\"en\">Creative Commons</i> iehr Projramm zum Lizänzbeshtemme hät nix jebraat.\nDonn de Lizänz sellver beshtemme.",
        "config-cc-again": "Noch ens neu ußsöhke&nbsp;…",
        "config-cc-not-chosen": "Söhk uß, wat för en Lizänz vun de <i lang=\"en\">Creative Commons</i> De han wells, un donn dann op „<i lang=\"en\">proceed</i>“ klecke.",
        "config-install-extension-tables": "Ben Datebangk-Tabälle för de Zohsazprojramme aam ennreschte",
        "config-install-mainpage-failed": "Kunnt de Houpsigg nit afshpeishere: $1",
        "config-install-done": "<strong>Jlöckwonsch!</strong>\nMediaWiki es jetz enstalleet.\n\nEt Projramm zom Enreeschte hät en Dattei <code lang=\"en\">LocalSettings.php</code> aanjelaat.\nDoh sin de Enstellunge vum Wiki dren.\n\nDo weeß se eronge laade möße un dann en dem Wiki sing Aanfangsverzeishnes donn möße, et sellve Verzeisneß, woh di Dattei <code lang=\"en\">index.php</code> dren litt. Dat Erongerlaade sullt automattesch aanjefange han.\n\nWann domet jet nit jeflupp hät, udder De di Dattei norr_ens han wells, donn op dä Lengk heh dronger klecke:\n\n$3\n\n<strong>Opjepaß:</strong> Wann De dat jez nit deihß, es alles verschött, wat De bes jöz enjejovve häs, weil di Dattei fott es en däm Momang, woh heh dat Projamm aam Engk es.\n\nWann De mem Ronger- un widder Huhlaade fäädesh bes, kanns De <strong>[$2 en Ding Wiki jonn]</strong>.",
+       "config-install-done-path": "<strong>Jlöckwonsch!</strong>\nEt MehdijaWiki es jäz enschtallehrt.\n\nDat Projramm zom Enreeschte hädd en Dattei <code lang=\"en\" xml:lang=\"en\" dir=\"rtl\">LocalSettings.php</code> aanjelaat.\nDoh sin alle Enschtällonge vum Wikki dren.\n\nDo weeß se eronge lahde möße, un dann en dem Wikki sing Aanfangsverzeischneß <code>$4</code> donn möße. Dat Erongerlahde sullt automattesch aanjefange han.\n\nWann domet jät nit jeflupp hät, udder De di Dattei norr_ens han wells, donn op dä Lengk heh dronger klecke:\n\n$3\n\n<strong>Opjepaß:</strong> Wann De dat jäz nit deihß, es alles verschött, wat De bes jäz enjejovve häs, weil di Dattei fott es en däm Momang, woh heh dat Projamm aam Engk es.\n\nWann De mem Ronger- un widder Huhlaade fähdesch bes, kanns De <strong>[$2 en Ding Wikki jonn]</strong>.",
        "config-download-localsettings": "Donn di Dattei <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">LocalSettings.php</code> eronger lahde",
        "config-help": "Hölp",
        "config-help-tooltip": "Donn Hölp heh aan däm Plaaz enblände.",
        "config-nofile": "De Dattei „$1“ ham_mer nit jefonge. Es di fottjeschmeße?",
-       "config-extension-link": "Häs De jewoß, dat et Wiki [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions Zohsazprojramme] hann kann?\n\nDo kanns [//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category Zohsazprojramme noh Saachjroppe] söhke udder en de [//www.mediawiki.org/wiki/Extension_Matrix Tabäll met de Zohsazprojramme] kike, öm de kumplätte Leß met de Zohsazprojramme ze krijje.",
+       "config-extension-link": "Häs De jewoß, dat et Wiki [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions Zohsazprojramme] hann kann?\n\nDo kanns [https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category Zohsazprojramme noh Saachjroppe] söhke udder en de [https://www.mediawiki.org/wiki/Extension_Matrix Tabäll met de Zohsazprojramme] kike, öm de kumplätte Leß met de Zohsazprojramme ze krijje.",
        "mainpagetext": "<strong>MehdijaWikki es jäz enschtalleht.</strong>",
-       "mainpagedocfooter": "Luur en et (änglesche) [//meta.wikimedia.org/wiki/Help:Contents Handbohch] wann De weße wells wi de Wikki-ẞoffwähr jebruch un bedehnt wähde moß.\n\n== För der Aanfang ==\nDat es och all op Änglesch:\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings En leß met müjjelesche Enschtällonge för et MehdijaWikki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Öff jefrooch övver et Mehdijawikki&nbsp;&hellip;]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce De Meilengleß met Annköndijonge övver neuje Ußjahbe vum MehdijaWikki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Donn MediaWiki op Ding Schprohch aanpaße]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Loor, wi der der <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"„för jewöhnlesch angmaß övverdrahre Nohreeschte udder Meddeijlonge, di wä se kritt jaa nit han well,“\">SPAM</i> em Wikki klein hälls]\n\n=== Jrammatek ===\nJeh nohdämm, ovv_et „di {{SITENAME}}“, „dä {{SITENAME}}“ udder „dat {{SITENAME}}“ heiß, moß mer velleijsch en Datteij änndere. Wann „{{SITENAME}}“ med „wikki“ ov „wiki“ ophürt, moß mer nix donn. Bei „dä {{SITENAME}}“ och nit. Söns kütt en di Datteij <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">languages/classes/LanguageKsh.php</code> vör udder henger dä Reihj met „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">No need add neuter wikis having names ending in -wiki.</code>“ en neuje Reihj eren:\n* för „di {{SITENAME}}“ heijß di:\n*: <code>'{{SITENAME}}' => 'f',</code>\n* för „dat {{SITENAME}}“ heijs et:\n*: <code>'{{SITENAME}}' => 'n',</code>\n\n== Un dann ==\nDonn heh di Sigg ömbenänne un/udder jähje en ääschte Aanfangssigg för heh dat Wikki ußtuusche!\n\nAlles Johde!"
+       "mainpagedocfooter": "Luuer en et (änglesche) [https://meta.wikimedia.org/wiki/Help:Contents Handbohch] wann De weße wells, wi de Wikki-ẞoffwähr jebruch un bedehnt wähde moß.\n\n== För der Aanfang ==\nDat es och all op Änglesch:\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings En Leß met müjjelesche Enschtällonge för et MehdijaWikki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Öff jefrooch övver et Mehdijawikki&nbsp;&hellip;]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce De Meilengleß met Annköndejonge övver neuje Ußjahbe vum MehdijaWikki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Donn Mehdijawikki op Ding Schprohch aanpaße]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Loor, wi der der <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"„för jewöhnlesch angmaß övverdrahre Nohreeschte udder Meddeijlonge, di wä se kritt jaa nit han well,“\">SPAM</i> em Wikki klein hälls]\n\n=== Jrammatek ===\nJeh nohdämm, ovv_et „di {{SITENAME}}“, „dä {{SITENAME}}“ udder „dat {{SITENAME}}“ heiß, moß mer velleijsch en Datteij änndere. Wann „{{SITENAME}}“ med „wikki“ ov „wiki“ ophürt, moß mer nix donn. Bei „dä {{SITENAME}}“ och nit. Söns kütt en di Datteij <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">languages/classes/LanguageKsh.php</code> vör udder henger dä Reihj met „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">No need add neuter wikis having names ending in -wiki.</code>“ en neuje Reihj eren:\n* för „di {{SITENAME}}“ heijß di:\n*: <code>'{{SITENAME}}' => 'f',</code>\n* för „dat {{SITENAME}}“ heijs et:\n*: <code>'{{SITENAME}}' => 'n',</code>\n\n== Un dann ==\nDonn heh di Sigg ömbenänne un/udder jähje en ääschte Aanfangssigg för heh dat Wikki ußtuusche!\n\nAlles Johde!"
 }
index f3ee821..3f20c07 100644 (file)
@@ -36,6 +36,7 @@
        "config-db-install-account": "Hesabê bikarhêner bo avakirinê",
        "config-db-username": "Navê bikarhêner bo danagehê:",
        "config-db-password": "Şîfreya danegehê:",
+       "config-invalid-db-type": "Cureya danegehê ya nederbasdar",
        "config-db-web-account": "Hesabê danegehê bô têgihiştina tora înternetê",
        "config-mysql-myisam": "MyISAM",
        "config-mysql-utf8": "UTF-8",
@@ -61,5 +62,5 @@
        "config-install-step-done": "çêbû",
        "config-help": "alîkarî",
        "mainpagetext": "'''MediaWiki serketî hate çêkirin.'''",
-       "mainpagedocfooter": "Alîkarî ji bo bikaranîn û guherandin yê datayê Wîkî tu di bin [//meta.wikimedia.org/wiki/Help:Contents pirtûka alîkarîyê ji bikarhêneran] da dikarê bibînê.\n\n== Alîkarî ji bo destpêkê ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lîsteya varîyablên konfîgûrasîyonê]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lîsteya e-nameyên versyonên nuh yê MediaWiki]"
+       "mainpagedocfooter": "Alîkarî ji bo bikaranîn û guherandin yê datayê Wîkî tu di bin [https://meta.wikimedia.org/wiki/Help:Contents pirtûka alîkarîyê ji bikarhêneran] da dikarê bibînê.\n\n== Alîkarî ji bo destpêkê ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lîsteya varîyablên konfîgûrasîyonê]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lîsteya e-nameyên versyonên nuh yê MediaWiki]"
 }
index d8708c4..c22e0df 100644 (file)
@@ -6,5 +6,5 @@
                ]
        },
        "mainpagetext": "'''MedyaViki ya se kureó con reuxitá.'''",
-       "mainpagedocfooter": "Konsulta la [//meta.wikimedia.org/wiki/Help:Contents/es Guía de usador] para tomar enformasyones encima de como usar el lojikal viki.\n\n== En Empeçando ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings La lista de los arreglamientos de la konfiggurasyón]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/lad DDS de MedyaViki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce La lista de las letrales (e-mail) de MedyaViki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
+       "mainpagedocfooter": "Konsulta la [https://meta.wikimedia.org/wiki/Help:Contents/es Guía de usador] para tomar enformasyones encima de como usar el lojikal viki.\n\n== En Empeçando ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings La lista de los arreglamientos de la konfiggurasyón]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/lad DDS de MedyaViki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce La lista de las letrales (e-mail) de MedyaViki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
 }
index fbbeb66..3befe74 100644 (file)
@@ -40,7 +40,7 @@
        "config-help-restart": "Wëllt Dir all gespäichert Donnéeë läschen déi Dir bis elo aginn hutt an den Installatiounsprozess nei starten?",
        "config-restart": "Jo, neistarten",
        "config-welcome": "=== Iwwerpréifung vum Installatiounsenvironnement ===\nEt gi grondsätzlech Iwwerpréifunge gemaach fir ze kucken ob den Environnment gëeegent ass fir MediaWiki z'installéieren.\nDir sollt d'Resultater vun dëser Iwwerpréifung ugi wann Dir während der Installatioun Hëllef frot wéi Dir D'Installatioun ofschléisse kënnt.",
-       "config-sidebar": "* [//www.mediawiki.org MediaWiki Haaptsäit]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Benotzerguide]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Guide fir Administrateuren]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ]\n----\n* <doclink href=Readme>Liest dëst</doclink>\n* <doclink href=ReleaseNotes>Informatioune vun der aktueller Versioun</doclink>\n* <doclink href=Copying>Lizenzbedingungen</doclink>\n* <doclink href=UpgradeDoc>Aktualisatioun</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org MediaWiki Haaptsäit]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Benotzerguide]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Guide fir Administrateuren]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ]\n----\n* <doclink href=Readme>Liest dëst</doclink>\n* <doclink href=ReleaseNotes>Informatioune vun der aktueller Versioun</doclink>\n* <doclink href=Copying>Lizenzbedingungen</doclink>\n* <doclink href=UpgradeDoc>Aktualisatioun</doclink>",
        "config-env-good": "Den Environement gouf nogekuckt.\nDir kënnt MediaWiki installéieren.",
        "config-env-bad": "Den Environnement gouf iwwerpréift.\nDir kënnt MediWiki net installéieren.",
        "config-env-php": "PHP $1 ass installéiert.",
@@ -48,7 +48,6 @@
        "config-no-db": "Et konnt kee passenden Datebank-Driver fonnt ginn! Dir musst een Datebank-Driver fir PHP installéieren.\n{{PLURAL:$2|Dësn Datebank-Typ gëtt|Dës Datebank-Type ginn}} ënnerstëtzt: $1.\n\nWann Dir PHP selwer compiléiert hutt, da rekonfiguréiert en mat dem ageschalten Datebank-Client, zum Beispill an deem Dir <code>./configure --with-mysql</code> benotzt.\nWann Dir PHP vun engem Debian oder Ubuntu Package aus installéiert hutt, da musst Dir och den php5-mysql Modul installéieren.",
        "config-outdated-sqlite": "'''Warnung:''' SQLite $1 ass installéiert. Allerdengs brauch MediaWiki SQLite $2 oder méi nei. SQLite ass dofir net disponibel.",
        "config-memory-bad": "'''Opgepasst:''' De Parameter <code>memory_limit</code> vu PHP ass $1.\nDat ass wahrscheinlech ze niddreg.\nD'Installatioun kéint net funktionéieren.",
-       "config-iconv": "<strong>Fatal:</strong> PHP muss mat Support fir d'[http://www.php.net/manual/en/iconv.installation.php iconv-Erweiderung] kompiléiert ginn.",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] ass installéiert",
        "config-apc": "[http://www.php.net/apc APC] ass installéiert",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] ass installéiert",
@@ -71,9 +70,6 @@
        "config-db-account-lock": "De selwechte Benotzernumm a Passwuert fir déi normal Operatioune benotzen",
        "config-db-wiki-account": "Benotzerkont fir normal Operatiounen",
        "config-db-wiki-help": "Gitt de Benotzernumm an d'Passwuert an dat benotzt wäert gi fir sech bei den normale Wiki-Operatiounen mat der Datebank ze connectéieren.\nWann et de Kont net gëtt, a wann den Installatiouns-Kont genuch Rechter huet, gëtt dëse Benotzerkont opgemaach mat dem Minimum vu Rechter déi gebraucht gi fir dës Wiki bedreiwen ze kënnen.",
-       "config-db-charset": "Zeechesaz (character set) vun der Datebank",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 binair",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
        "config-mysql-old": "MySQL $1 oder eng méi nei Versioun gëtt gebraucht, Dir hutt $2.",
        "config-db-port": "Port vun der Datebank:",
        "config-db-schema": "Schema fir MediaWiki",
        "config-upload-deleted": "Repertoire fir geläscht Fichieren:",
        "config-logo": "URL vum Logo:",
        "config-instantcommons": "\"Instant Commons\" aktivéieren",
-       "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons Instant Commons] ass eng Funktioun déi et Wikien erlaabt fir Biller, Téin an aner Medien vu [//commons.wikimedia.org/ Wikimedia Commons] ze benotzen.\nFir datt dat funktionéiert brauch MediaWiki Zougang zum Internet.\n\nFir méi Informatiounen iwwer dës Funktioun, inklusiv Instruktioune wéi Dir se fir aner Wikie wéi Wikimedia Commons astelle musst, kuckt [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos d'Handbuch].",
+       "config-instantcommons-help": "[https://www.mediawiki.org/wiki/InstantCommons Instant Commons] ass eng Funktioun déi et Wikien erlaabt fir Biller, Téin an aner Medien vu [https://commons.wikimedia.org/ Wikimedia Commons] ze benotzen.\nFir datt dat funktionéiert brauch MediaWiki Zougang zum Internet.\n\nFir méi Informatiounen iwwer dës Funktioun, inklusiv Instruktioune wéi Dir se fir aner Wikie wéi Wikimedia Commons astelle musst, kuckt [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos d'Handbuch].",
        "config-cc-again": "Nach eng kéier eraussichen...",
        "config-advanced-settings": "Erweidert Astellungen",
        "config-extensions": "Erweiderungen",
        "config-help-tooltip": "klickt fir opzeklappen",
        "config-nofile": "De Fichier \"$1\" gouf net fonnt. Gouf e geläscht?",
        "mainpagetext": "<strong>MediaWiki gouf installéiert.</strong>",
-       "mainpagedocfooter": "Kuckt w.e.g. [//meta.wikimedia.org/wiki/Help:Contents d'Benotzerhandbuch] fir Informatiounen iwwer de Gebruach vun der Wiki Software.\n\n== Fir  unzefänken ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Hëllef bei der Konfiguratioun]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki-FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailinglëscht vun neie MediaWiki-Versiounen]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Lokaliséiert MediaWiki fir Är Sprooch]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Léiert wéi Spam op Ärer Wiki reduzéiert gi kann]"
+       "mainpagedocfooter": "Kuckt w.e.g. [https://meta.wikimedia.org/wiki/Help:Contents d'Benotzerhandbuch] fir Informatiounen iwwer de Gebruach vun der Wiki Software.\n\n== Fir  unzefänken ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Hëllef bei der Konfiguratioun]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki-FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailinglëscht vun neie MediaWiki-Versiounen]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Lokaliséiert MediaWiki fir Är Sprooch]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Léiert wéi Spam op Ärer Wiki reduzéiert gi kann]"
 }
index b4ed71b..e0d3d9a 100644 (file)
@@ -1,5 +1,5 @@
 {
        "@metadata": [],
        "mainpagetext": "'''MediaWiki es aora instalada.'''",
-       "mainpagedocfooter": "Atenda la [//meta.wikimedia.org/wiki/Help:Contents Gida per Usores] per informa supra la usa de la programa de vici.\n\n== Comensa ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista de ajustas de la desinia]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Demandas comun de MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista per receta anunsias de novas supra MediaWiki]"
+       "mainpagedocfooter": "Atenda la [https://meta.wikimedia.org/wiki/Help:Contents Gida per Usores] per informa supra la usa de la programa de vici.\n\n== Comensa ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista de ajustas de la desinia]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Demandas comun de MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista per receta anunsias de novas supra MediaWiki]"
 }
index 27b4389..8b6f052 100644 (file)
@@ -5,5 +5,5 @@
                ]
        },
        "mainpagetext": "MediaWiki kati ewangidwa ku sisitemu yo",
-       "mainpagedocfooter": "Okuyiga ku nkozesa ya sofutiweya owa wiki, kebera [//meta.wikimedia.org/wiki/Help:Contents Okulagirira Abakozesa].\n\n== Amagezi agakuyamba okutandika ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lukalala lw'eby'enteekateeka yo]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Ebiter'okubuuzibwa ku MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Wewandise ofunenga amawulire aga email ag'ebifa ku MediaWiki]"
+       "mainpagedocfooter": "Okuyiga ku nkozesa ya sofutiweya owa wiki, kebera [https://meta.wikimedia.org/wiki/Help:Contents Okulagirira Abakozesa].\n\n== Amagezi agakuyamba okutandika ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lukalala lw'eby'enteekateeka yo]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Ebiter'okubuuzibwa ku MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Wewandise ofunenga amawulire aga email ag'ebifa ku MediaWiki]"
 }
index ab9c0b8..afd7569 100644 (file)
@@ -5,5 +5,5 @@
                ]
        },
        "mainpagetext": "'''MediaWiki software succesvol geïnsjtalleerd.'''",
-       "mainpagedocfooter": "Raodpleeg de [//meta.wikimedia.org/wiki/Help:Contents Inhoudsopgave handjleiding] veur informatie euver 't gebroek van de wikisoftware.\n\n== Mieë hölp ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lies mit instellinge]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki VGV (FAQ)]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki mailinglies veur nuuj versies]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
+       "mainpagedocfooter": "Raodpleeg de [https://meta.wikimedia.org/wiki/Help:Contents Inhoudsopgave handjleiding] veur informatie euver 't gebroek van de wikisoftware.\n\n== Mieë hölp ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lies mit instellinge]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki VGV (FAQ)]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki mailinglies veur nuuj versies]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
 }
index 268092c..1df843a 100644 (file)
        "config-restart": "أرێ، دوواره راه‌اندازی کة",
        "config-welcome": "===بررسی‌های محیطی===\nبرای فهمیدن اینکه این محیط برای نصب مدیاویکی مناسب است، اکنون بررسی‌های اساسی انجام خواهد‌شد.\nاگر به دنبال پشتیبانی در چگونگی تکمیل نصب هستید،به یاد داشته باشید این اطلاعات را بگنجانید.",
        "config-copyright": "===حق چاپ و شرایط===\n$1\nاین برنامه، یک نرم‌افزاری آزاد است. شما می‌توانید آن را بازتوزیع کرده و/یا با شرایط نگارش ۲ یا (با نظر خودتان) هر نگارش جدیدتری از پروانه جامع همگانی گنو که توسط بنیاد نرم‌افزار آزاد منتشر شده، تغییر دهید.\n\nاین برنامه با امید این که مفید واقع‌ شود توزیع شده‌است،اما '''بدون هیچ ضمانتی'''; حتی بدون اشارهٔ ضمانتی از '''قابلیت عرضه''' یا ''' صلاحیت برای یک هدف خاص'''.\nبرای جزئیات بیش‌تر پروانه جامع همگانی گنو را مشاهده کنید.\n\nشما باید <doclink href=Copying> یک نگارش ازمجوز عمومی کلی </doclink> همراه این برنامه دریافت کرده باشید. در غیر این صورت با بنیاد نرم‌افزار آزاد، ایالات متحده امریکا، بوستون، خیابان فرانکلین، پلاک ۵۱، طبقه پنجم، صندوق پستی MA۰۲۱۱۰-۱۳۰ مکاتبه کنید، یا [http://www.gnu.org/copyleft/gpl.html در این‌جا به صورت برخط بخوانید].",
-       "config-sidebar": "* [//www.mediawiki.org وةڵگة اصلی مدیاویکی]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents راهنمای کاربر]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents راهنمای مدیر]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ پرسش‌های رایج]\n----\n* <doclink href=Readme>مرا بخوان</doclink>\n* <doclink href=ReleaseNotes>یادداشت‌های انتشار</doclink>\n* <doclink href=Copying>نسخه برداری</doclink>\n* <doclink href=UpgradeDoc>ارتقا</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org وةڵگة اصلی مدیاویکی]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents راهنمای کاربر]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents راهنمای مدیر]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ پرسش‌های رایج]\n----\n* <doclink href=Readme>مرا بخوان</doclink>\n* <doclink href=ReleaseNotes>یادداشت‌های انتشار</doclink>\n* <doclink href=Copying>نسخه برداری</doclink>\n* <doclink href=UpgradeDoc>ارتقا</doclink>",
        "config-env-good": "محیط بررسی شده‌است.\nشما می‌توانید مدیاویکی را نصب کنید.",
        "config-env-bad": "محیط بررسی شده‌است.\nشما نمی‌توانید مدیاویکی را نصب کنید.",
        "config-env-php": "پی‌اچ‌پی $1 نصب شده‌است.",
        "config-env-hhvm": "HHVM $1 نصب شده‌است.",
        "config-unicode-using-intl": "برای یونیکد عادی از [http://pecl.php.net/intl intl PECL extension] استفاده کنید.",
-       "config-unicode-pure-php-warning": "'''هشدار:''' [http://pecl.php.net/intl intl PECL extension] برای کنترل یونیکد عادی در دسترس نیست،اجرای کاملاً آهسته به تعویق می‌افتد.\nاگر شما یک سایت پر‌ ترافیک را اجرا می‌کنید، باید کمی [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode normalization] را بخوانید.",
-       "config-unicode-update-warning": "'''هشدار:''' نسخهٔ نصب شدهٔ پوشهٔ یونیکد عادی از ورژن قدیمی‌تر کتابخانه [http://site.icu-project.org/ the ICU project's] استفاده می‌کند.\nاگر کلاً علاقه‌مند به استفاده از یونیکد هستید باید [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations upgrade].",
+       "config-unicode-pure-php-warning": "'''هشدار:''' [http://pecl.php.net/intl intl PECL extension] برای کنترل یونیکد عادی در دسترس نیست،اجرای کاملاً آهسته به تعویق می‌افتد.\nاگر شما یک سایت پر‌ ترافیک را اجرا می‌کنید، باید کمی [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode normalization] را بخوانید.",
+       "config-unicode-update-warning": "'''هشدار:''' نسخهٔ نصب شدهٔ پوشهٔ یونیکد عادی از ورژن قدیمی‌تر کتابخانه [http://site.icu-project.org/ the ICU project's] استفاده می‌کند.\nاگر کلاً علاقه‌مند به استفاده از یونیکد هستید باید [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations upgrade].",
        "config-no-db": "درایور پایگاه اطلاعاتی مناسب پیدا نشد! شما لازم دارید یک درایور پایگاه اطلاعاتی  برای پی‌اچ‌پی نصب کنید.انواع پایگاه اطلاعاتی زیر پشتیبانی شده‌اند:$1.\nاگر شما در گروه اشتراک‌گذاری هستید، از تهیه کنندهٔ گروه خود برای نصب یک درایور پایگاه اطلاعاتی مناسب {{PLURAL:$2|سوأل کنید.|پرسش کنید.}}\nاگر خود، پی‌اچ‌پی را تهیه کرده‌اید، با یک پردازشگر فعال دوباره پیکربندی کنید، برای مثال از <code>./configure --with-mysql</code> استفاده کنید.\nاگر پی‌اچ‌پی را از یک بستهٔ دبیان یا آبونتو نصب کرده‌اید، بنابراین لازم دارید بخش php5-mysql را نصب کنید.",
        "config-outdated-sqlite": "''' هشدار:''' شما اس‌کیولایت $1 دارید، که پایین‌تر از حداقل نسخهٔ $2 مورد نیاز است.اس‌کیولایت در دسترس نخواهد بود.",
        "config-no-fts3": "'''هشدار:''' اس‌کیولایت بدون [//sqlite.org/fts3.html FTS3 module] تهیه شده‌است ، جستجوی ویژگی‌ها در این بخش پیشین در دسترس نخواهد‌بود.",
-       "config-register-globals-error": "<strong>خطا:  پی‌اچ‌پی<code>[http://php.net/register_globals register_globals]</code> گزینه فعال است.\nبرای ادامه نصب باید غیر فعال باشد.</strong>\n[Https://www.mediawiki.org/wiki/register_globals https://www.mediawiki.org/wiki/register_globals] را برای کمک در مورد نحوه انجام این کار ببینید.",
-       "config-magic-quotes-gpc": "<strong>هشدار مهم: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-gpc magic_quotes_gpc] فعال شده‌است!</strong>\nاین گزینه اطلاعات داده شده به رایانه را به طور غیر‌قابل پیش‌بینی از بین می‌برد.\nشما نمی‌توانید مدیاویکی را نصب یا استفاده کنید مگر اینکه این گزینه غیر‌فعال باشد.",
-       "config-magic-quotes-runtime": "'''مخرب: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] فعال است.\nاین گزینه اطلاعات داده شده به رایانه را به طور غیر‌قابل پیش‌بینی از بین می‌برد.\nشما نمی‌توانید مدیاویکی را نصب یا استفاده کنید مگر اینکه این گزینه غیر‌فعال باشد.",
-       "config-magic-quotes-sybase": "<strong>هشدار مهم: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-gpc magic_quotes_gpc] فعال شده‌است!</strong>\nاین گزینه اطلاعات داده شده به رایانه را به طور غیر‌قابل پیش‌بینی از بین می‌برد.\nشما نمی‌توانید مدیاویکی را نصب یا استفاده کنید مگر اینکه این گزینه غیر‌فعال باشد.",
-       "config-mbstring": "''' مخرب:[http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] فعال است.\nاین گزینه باعث ایجاد خطا می‌شود و ممکن است اطلاعات را به طور غیر‌قابل پیش‌بینی از بین ببرد.\nشما نمی‌توانید مدیاویکی را نصب یا استفاده کنید مگر اینکه این گزینه غیر‌فعال باشد.",
-       "config-safe-mode": "'''هشدار:'''  PHP's [http://www.php.net/features.safe-mode safe mode] فعال است.\nممکن است باعث ایجاد مشکلاتی شود، مخصوصاً اگر از ارسال پرونده استفاده شود و <code>math</code> پشتیبانی شود.",
-       "config-xml-bad": "ماژول اکس‌ام‌ال پی‌اچ‌پی کار نمی‌کند.\nمدیاویکی نیازمند عملیاتی در این ماژول است و در این پیکربندی کار نخواهد‌کرد.\nشاید نیاز باشد که بستهٔ نرم افزاریِ آرپی‌ام پی‌اچ‌پی-ایکس‌ام‌ال را نصب کنید.",
        "config-pcre-old": "''' خطای اساسی:'' ' PCRE  $1  یا بعدا مورد نیاز است.\nکد باینری پی‌اچ‌پی‌تان با PCRE  $2 پیوند دارد.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE اطلاعات بیشتر].",
        "config-pcre-no-utf8": "'''مخرب:''' به‌ نظر می‌رسد ماژول پی‌سی‌آرایی پی‌اچ‌پی بدون پشتیبانی پی‌سی‌آرایی_یو‌تی‌اف۸ تهیه شده‌است.\nمدیاویکی برای درست عمل کردن نیازمند پشتیبانی یوتی‌اف-۸ است.",
        "config-memory-raised": "PHP's <code>memory_limit</code>, نسخهٔ $1 است، به نسخهٔ $2 ارتقاء داده شده‌است.",
        "config-memory-bad": "'''هشدار:''' PHP's <code>memory_limit</code> نسخهٔ $1 است.\nاین ممکن است خیلی پایین باشد.\nممکن است نصب با مشکل رو‌به‌رو شود.",
-       "config-ctype": "'''مخرب:''' پی‌اچ‌پی باید با پشتیبانی برای [http://www.php.net/manual/en/ctype.installation.php Ctype extension] تهیه شده‌باشد.",
        "config-db-type": "نوع پایگاه اطلاعات:",
        "config-db-host": "میزبان پایگاه اطلاعات:",
        "config-db-host-oracle": "ای ویکیۀ  شناسایی کۀ.",
index 9a30139..fcba685 100644 (file)
@@ -44,7 +44,7 @@
        "config-help-restart": "Ar norite ištrinti visus išsaugotus duomenis, kuriuos jūs įvedėte ir iš naujo paleisti diegimo procesą?",
        "config-restart": "Taip, paleiskite jį iš naujo",
        "config-welcome": "== Aplinkos patikrinimas ==\nDabar bus atlikti pagrindiniai patikrinimai, po kurių paaiškės, ar ši aplinka yra tinkama MediaWiki įrangai.\nNepamirškite įtraukti šią informaciją, jeigu norite gauti pagalbos, kaip užbaigti įdiegimą.",
-       "config-sidebar": "* [//www.mediawiki.org MediaWiki namų tinklalapis]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Vartotojo gidas]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Administratoriaus gidas]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ DUK]\n----\n* <doclink href=Readme>Skaityk mane</doclink>\n* <doclink href=ReleaseNotes>Leidimo pastabos</doclink>\n* <doclink href=Copying>Kopijavimas</doclink>\n* <doclink href=UpgradeDoc>Atnaujinimas</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org MediaWiki namų tinklalapis]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Vartotojo gidas]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Administratoriaus gidas]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ DUK]\n----\n* <doclink href=Readme>Skaityk mane</doclink>\n* <doclink href=ReleaseNotes>Leidimo pastabos</doclink>\n* <doclink href=Copying>Kopijavimas</doclink>\n* <doclink href=UpgradeDoc>Atnaujinimas</doclink>",
        "config-env-good": "Aplinka buvo patikrinta.\nJūs galite įdiegti MediaWiki.",
        "config-env-bad": "Aplinka buvo patikrinta.\nJūs negalite įdiegti MediaWiki.",
        "config-env-php": "PHP $1 yra įdiegtas.",
@@ -71,8 +71,6 @@
        "config-db-password": "Duomenų bazės slaptažodis:",
        "config-db-wiki-account": "Vartotojo paskyra normaliai operacijai",
        "config-db-prefix": "Duomenų bazės lentelės priešdėlis:",
-       "config-db-charset": "Duomenų bazės simbolių rinkinys",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
        "config-mysql-old": "MySQL $1 ar vėlesnė yra reikalinga. Jūs turite $2.",
        "config-db-port": "Duomenų bazės prievadas:",
        "config-db-schema": "MediaWiki schema:",
        "config-help-tooltip": "spustelėkite išplėtimui",
        "config-nofile": "Failas \"$1\" nerastas. Ar jis buvo ištrintas?",
        "mainpagetext": "'''MediaWiki sėkmingai įdiegta.'''",
-       "mainpagedocfooter": "Informacijos apie wiki programinės įrangos naudojimą, ieškokite [//meta.wikimedia.org/wiki/Help:Contents žinyne].\n\n== Pradžiai ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Konfigūracijos nustatymų sąrašas]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki DUK]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki pranešimai paštu apie naujas versijas]"
+       "mainpagedocfooter": "Informacijos apie wiki programinės įrangos naudojimą, ieškokite [https://meta.wikimedia.org/wiki/Help:Contents žinyne].\n\n== Pradžiai ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Konfigūracijos nustatymų sąrašas]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki DUK]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki pranešimai paštu apie naujas versijas]"
 }
index b3aaef1..7fe3a64 100644 (file)
        "config-db-name": "Datubāzes nosaukums:",
        "config-db-username": "Datubāzes lietotājvārds:",
        "config-db-password": "Datubāzes parole:",
-       "config-db-charset": "Datubāzes rakstzīmju kopa",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 binārs",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "MySQL 4.0 atpakaļsaderīgs UTF-8",
        "config-db-port": "Datubāzes ports:",
        "config-db-schema": "MediaWiki shēma:",
        "config-db-schema-help": "Šī shēma derēs vairumā gadījumu.\nMainiet to tikai, ja zināt, ka tas nepieciešams.",
@@ -46,6 +42,7 @@
        "config-mysql-innodb": "InnoDB",
        "config-mysql-myisam": "MyISAM",
        "config-mysql-utf8": "UTF-8",
+       "config-mssql-windowsauth": "Windows Autentifikācija",
        "config-ns-generic": "Projekts",
        "config-ns-site-name": "Tāds pats kā viki nosaukums: $1",
        "config-ns-other": "Cits (jānorāda)",
@@ -56,6 +53,7 @@
        "config-admin-password-confirm": "Parole vēlreiz:",
        "config-admin-name-blank": "Ievadiet administratora lietotājvārdu.",
        "config-admin-email": "E-pasta adrese:",
+       "config-email-settings": "E-pasta iestatījumi",
        "config-logo": "Logo URL:",
        "config-cc-again": "Izvēlies vēlreiz...",
        "config-extensions": "Paplašinājumi",
@@ -63,5 +61,5 @@
        "config-help": "palīdzība",
        "config-help-tooltip": "uzspiediet, lai izvērstu",
        "mainpagetext": "<strong>MediaWiki veiksmīgi instalēts.</strong>",
-       "mainpagedocfooter": "Izlasi [//meta.wikimedia.org/wiki/Help:Contents Lietotāja pamācību], lai iegūtu vairāk informācijas par Wiki programmatūras lietošanu.\n\n== Pirmie soļi ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Konfigurācijas iespēju saraksts]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki J&A]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Parakstīties uz paziņojumiem par jaunām MediaWiki versijām]"
+       "mainpagedocfooter": "Izlasi [https://meta.wikimedia.org/wiki/Help:Contents Lietotāja pamācību], lai iegūtu vairāk informācijas par Wiki programmatūras lietošanu.\n\n== Pirmie soļi ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Konfigurācijas iespēju saraksts]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki J&A]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Parakstīties uz paziņojumiem par jaunām MediaWiki versijām]"
 }
index 9135393..8574d59 100644 (file)
@@ -7,5 +7,5 @@
        "config-information": "文訊",
        "config-page-language": "語",
        "mainpagetext": "'''共筆臺已立'''",
-       "mainpagedocfooter": "欲識維基,見[//meta.wikimedia.org/wiki/Help:Contents User's Guide]\n\n== 始 ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
+       "mainpagedocfooter": "欲識維基,見[https://meta.wikimedia.org/wiki/Help:Contents User's Guide]\n\n== 始 ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
 }
index 9de6ff9..cdc7078 100644 (file)
@@ -5,5 +5,5 @@
                ]
        },
        "mainpagetext": "'''Mediawiki dido k'ai ik'idu.'''",
-       "mainpagedocfooter": "Vik'i şeni muç'o ixmarinen ya mutxanepe oguru şeni [//meta.wikimedia.org/wiki/Help:Contents oxmaruşi rexberis] o3'k'edit.\n\n== Ağani na gyoç’k’u maxmarepe ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Ok'iduşi ayarepeşi liste]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki P'anda Na-k'itxu K'itxalape]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki e-mailepeşiş liste]"
+       "mainpagedocfooter": "Vik'i şeni muç'o ixmarinen ya mutxanepe oguru şeni [https://meta.wikimedia.org/wiki/Help:Contents oxmaruşi rexberis] o3'k'edit.\n\n== Ağani na gyoç’k’u maxmarepe ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Ok'iduşi ayarepeşi liste]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki P'anda Na-k'itxu K'itxalape]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki e-mailepeşiş liste]"
 }
index 9d5865c..8b8e0fb 100644 (file)
        "config-page-upgradedoc": "उपारोपण भऽ रहल अछि।",
        "config-page-existingwiki": "रहल विकी",
        "config-restart": "हँ, एकरा पुन: सुरु कएल जाए",
-       "config-sidebar": "* [//www.mediawiki.org MediaWiki home]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents User's Guide]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Administrator's Guide]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ]\n----\n* <doclink href=Readme>Read me</doclink>\n* <doclink href=ReleaseNotes>Release notes</doclink>\n* <doclink href=Copying>Copying</doclink>\n* <doclink href=UpgradeDoc>Upgrading</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org MediaWiki home]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents User's Guide]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Administrator's Guide]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ]\n----\n* <doclink href=Readme>Read me</doclink>\n* <doclink href=ReleaseNotes>Release notes</doclink>\n* <doclink href=Copying>Copying</doclink>\n* <doclink href=UpgradeDoc>Upgrading</doclink>",
        "config-env-good": "पर्यावरण क जाँच कएल गेल अछि।\nआहाँ मीडियाविकि स्थापित कर सकै चिए।",
        "config-env-bad": "पर्यावरण क जाँच कएल गेल अछि।\nआहाँ मीडियाविकि स्थापित नै कर सकै चिए।",
        "config-env-php": "PHP $1 स्थापित कएल ग्याल अछि।",
        "mainpagetext": "<strong>मेडियाविकी नीक जकाँ प्रस्थापित भेल।</strong>",
-       "mainpagedocfooter": "समà¥\8dपरà¥\8dà¤\95 à¤\95रà¥\82 [//meta.wikimedia.org/wiki/Help:Contents User's Guide] à¤µà¤¿à¤\95ि à¤¤à¤\82तà¥\8dराà¤\82शà¤\95 à¤ªà¥\8dरयà¥\8bà¤\97à¤\95 à¤\9cानà¤\95ारà¥\80 à¤²à¥\87ल।\n\n==पà¥\8dरारमà¥\8dभ à¤\95à¥\8bना à¤\95रà¥\80==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
+       "mainpagedocfooter": "समà¥\8dपरà¥\8dà¤\95 à¤\95रà¥\80 [https://meta.wikimedia.org/wiki/Help:Contents User's Guide] à¤µà¤¿à¤\95ि à¤¸à¤«à¥\8dà¤\9fवà¥\87यर à¤ªà¥\8dरयà¥\8bà¤\97à¤\95 à¤\9cानà¤\95ारà¥\80 à¤²à¥\87ल।\n\n==पà¥\8dरारमà¥\8dभ à¤\95à¥\8bना à¤\95रà¥\80==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
 }
index c6f4067..725f497 100644 (file)
@@ -1,5 +1,5 @@
 {
        "@metadata": [],
        "mainpagetext": "'''МедиаВикить арафтозь лац.'''",
-       "mainpagedocfooter": "Ванк [//meta.wikimedia.org/wiki/Help:Contents Ветямовал Тиинди] тяса ули кода содамс Вики програпнень эрявикснень колга.\n\n== Эрявикс сюлмафксне ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Васьфневи арафнематнень кярькссь]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ МедиаВикить Сидеста Кеподеви Кизефксне]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce МедиаВикить од верзиятнень колга кулянь пачфтема]"
+       "mainpagedocfooter": "Ванк [https://meta.wikimedia.org/wiki/Help:Contents Ветямовал Тиинди] тяса ули кода содамс Вики програпнень эрявикснень колга.\n\n== Эрявикс сюлмафксне ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Васьфневи арафнематнень кярькссь]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ МедиаВикить Сидеста Кеподеви Кизефксне]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce МедиаВикить од верзиятнень колга кулянь пачфтема]"
 }
index e576e2f..15ccd01 100644 (file)
        "config-restart": "Eny, avereno atao",
        "config-welcome": "=== Fanamarinana mikasika ny tontolo ===\nNy fanamarihana tsotsotra dia atao hijerena raha mety ho ana rindrankajy Mediawiki ny tontolo.\nTadidio ny mametraka ireto torohay ireo raha mitady fanohanana mikasika ny fomba famaranana ny fametrahana ianao.",
        "config-copyright": "== Zom-pamorona ary fepetra ==\n\n$1\n\n\nIo fandaharana dia rindrambaiko maimaim-poana; dia afaka zarazarain ary ovaina araka ny fepetra ao amin'ny GNU General Public License navoakan'ny Free Software Foundation; na versiona 2 ao amin'ny lisansa, na (araka ny safidinao) versiona tatỳ aoriana.\n\nIo fandaharaa io dia zaraina amin'ny fanantenana fa ho ilaina, anefa kosa dia <strong>tsy misy fiantohana</strong>; tsy misy fiantohana mikasika ny <strong>fivarotana azy</strong> na <strong>famendrehana ho azo ampiasaina amin'ny tranga iray manokana</strong>.\nJereo ny GNU General Public License hahazoana zavatra amin'ny antsipiriany.\n\nIanao dia tokony nandray <doclink href=Copying> kôpian'nyGNU General Public License </doclink> miaraka amin'ny fandaharana ity; raha tsy izany, manorata any amin'ny Free Software Foundation, Inc., 51 Franklin Street, Fahadimy Floor, Boston, MA 02110-1301, USA, na [http://www.gnu.org/copyleft/gpl.html vakio ao amin'ny Internet izany].",
-       "config-sidebar": "* [//www.mediawiki.org MediaWiki fandraisana]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Torolalan'ny mampiasa]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Torolalan'ny mpandrindra]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Fanontaniana mipetraka matetika]\n----\n* <doclink href=Readme>Vakio aho</doclink>\n* <doclink href=ReleaseNotes>Naoty famoahana</doclink>\n* <doclink href=Copying>Fandikàna</doclink>\n* <doclink href=UpgradeDoc>Fampihatsaràna</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org MediaWiki fandraisana]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Torolalan'ny mampiasa]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Torolalan'ny mpandrindra]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Fanontaniana mipetraka matetika]\n----\n* <doclink href=Readme>Vakio aho</doclink>\n* <doclink href=ReleaseNotes>Naoty famoahana</doclink>\n* <doclink href=Copying>Fandikàna</doclink>\n* <doclink href=UpgradeDoc>Fampihatsaràna</doclink>",
        "config-env-good": "Voamarina ny tontolo.\nAfaka apetrakao i MediaWiki.",
        "config-env-bad": "Voamarina ny tontolo.\nTsy afaka mametraka an'i MediaWiki ianao.",
        "config-env-php": "Misy ato PHP $1.",
        "config-env-hhvm": "Misy ato HHVM $1.",
        "config-unicode-using-intl": "Mampiasa ny [http://pecl.php.net/intl itatra PECL intl] ho an'ny fampifenerana Unicode.",
-       "config-unicode-pure-php-warning": "<strong>Fampitandremana: </strong>  Ny [http://pecl.php.net/intl itatra PECL intl] dia tsy misy mba hahazakana ny fampifenerana Unicode, ka mitontona amin'ny implementasiona PHP ranoray noho ny tsifisiany.\nRaha hametraka tranonkala be mpamangy ianao dia tokony mamaky ny [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations ''Unicode normalization''] (amin'ny teny anglisy)",
+       "config-unicode-pure-php-warning": "<strong>Fampitandremana: </strong>  Ny [http://pecl.php.net/intl itatra PECL intl] dia tsy misy mba hahazakana ny fampifenerana Unicode, ka mitontona amin'ny implementasiona PHP ranoray noho ny tsifisiany.\nRaha hametraka tranonkala be mpamangy ianao dia tokony mamaky ny [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations ''Unicode normalization''] (amin'ny teny anglisy)",
        "config-db-username": "Anaram-pikamban'ny banky angona :",
        "config-db-password": "Tenimiafin'ny banky angona :",
        "config-db-prefix": "Tovom-banky angona:",
-       "config-charset-mysql5-binary": "roafototra MySQL 4.1/5.0",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "MySQL 4.0 miverinjaka UTF-8",
        "config-db-port": "Seranam-banky angona:",
        "config-header-mysql": "Parametatr'i MySQL",
        "config-header-postgres": "Parametatra PostgreSQL",
@@ -82,5 +79,5 @@
        "config-install-keys": "Fanamboarana lakile miafina",
        "config-help": "fanoroana",
        "mainpagetext": "'''Tafajoro soa aman-tsara ny rindrankajy Wiki.'''",
-       "mainpagedocfooter": "Vangio ny [//meta.wikimedia.org/wiki/Help:Contents/fr Fanoroana ho an'ny mpampiasa] ra te hitady fanoroana momba ny fampiasan'ity rindrankajy ity.\n\n== Hanomboka amin'ny MediaWiki ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lisitra ny paramètre de configuration]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/fr FAQ momba ny MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Resaka momba ny fizaràn'ny MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
+       "mainpagedocfooter": "Vangio ny [https://meta.wikimedia.org/wiki/Help:Contents/fr Fanoroana ho an'ny mpampiasa] ra te hitady fanoroana momba ny fampiasan'ity rindrankajy ity.\n\n== Hanomboka amin'ny MediaWiki ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lisitra ny paramètre de configuration]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/fr FAQ momba ny MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Resaka momba ny fizaràn'ny MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
 }
index 9af4911..f424960 100644 (file)
@@ -7,5 +7,5 @@
                ]
        },
        "mainpagetext": "'''MediaWiki alah tapasang jo sukses'''.",
-       "mainpagedocfooter": "Konsultasian [//meta.wikimedia.org/wiki/Help:Contents Panduan Panggunoan] untuak informasi caro panggunoan parangkaik lunak wiki.\n\n== Mamulai panggunoan ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings/id Daftar pangaturan konfigurasi]\n* [//www.mediawiki.org/wiki/Manual:FAQ/id Daftar patanyoan nan acok diajukan manganai MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Milis rilis MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Palokalan MediaWiki untuak bahaso Sanak]"
+       "mainpagedocfooter": "Konsultasian [https://meta.wikimedia.org/wiki/Help:Contents Panduan Panggunoan] untuak informasi caro panggunoan parangkaik lunak wiki.\n\n== Mamulai panggunoan ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings/id Daftar pangaturan konfigurasi]\n* [https://www.mediawiki.org/wiki/Manual:FAQ/id Daftar patanyoan nan acok diajukan manganai MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Milis rilis MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Palokalan MediaWiki untuak bahaso Sanak]"
 }
index 7deead3..36ec508 100644 (file)
        "config-restart": "Да, почни одново",
        "config-welcome": "=== Проверки на околината ===\nСега ќе се извршиме основни проверки за да се востанови дали околината е погодна за воспоставкa на МедијаВики. Не заборавајте да ги приложите овие информации ако барате помош со довршување на воспоставката.",
        "config-copyright": "=== Авторски права и услови ===\n\n$1\n\nОва е слободна програмска опрема (free software); можете да го редистрибуирате и/или менувате согласно условите на ГНУ-овата општа јавна лиценца (GNU General Public License) на Фондацијата за слободна програмска опрема (Free Software Foundation); верзија 2 или било која понова верзија на лиценцата (по ваш избор).\n\nОвој програм се нуди со надеж дека ќе биде корисен, но '''без никаква гаранција'''; дури ни подразбраната гаранција за '''продажна способност''' или '''погодност за определена цел'''.\nПовеќе информации ќе најдете во текстот на ГНУ-овата општа јавна лиценца.\n\nБи требало да имате добиено <doclink href=Copying>примерок од ГНУ-овата општа јавна лиценца</doclink> заедно со програмов; ако немате добиено, тогаш пишете ни на Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. или [http://www.gnu.org/copyleft/gpl.html прочитајте ја тука].",
-       "config-sidebar": "* [//www.mediawiki.org Домашна страница на МедијаВики]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Водич за корисници]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Водич за администратори]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ ЧПП]\n----\n* <doclink href=Readme>Прочитај ме</doclink>\n* <doclink href=ReleaseNotes>Белешки за изданието</doclink>\n* <doclink href=Copying>Копирање</doclink>\n* <doclink href=UpgradeDoc>Надградување</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org Домашна страница на МедијаВики]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Водич за корисници]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Водич за администратори]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ ЧПП]\n----\n* <doclink href=Readme>Прочитај ме</doclink>\n* <doclink href=ReleaseNotes>Белешки за изданието</doclink>\n* <doclink href=Copying>Копирање</doclink>\n* <doclink href=UpgradeDoc>Надградување</doclink>",
        "config-env-good": "Околината е проверена.\nМожете да го воспоставите МедијаВики.",
        "config-env-bad": "Околината е проверена.\nНе можете да го воспоставите МедијаВики.",
        "config-env-php": "PHP $1 е воспоставен.",
        "config-env-hhvm": "HHVM $1 е воспоставен.",
        "config-unicode-using-intl": "Со додатокот [http://pecl.php.net/intl intl PECL] за уникодна нормализација.",
-       "config-unicode-pure-php-warning": "'''Предупредување''': Додатокот [http://pecl.php.net/intl intl PECL] не е достапен за врши уникодна нормализација, враќајќи се на бавна примена на чист PHP.\n\nАко имате високопрометно мрежно место, тогаш ќе треба да прочитате повеќе за [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations уникодната нормализација].",
-       "config-unicode-update-warning": "'''Предупредување:''' Воспоставената верзија на обвивката за уникодна нормализација користи постара верзија на библиотеката на [http://site.icu-project.org/ проектот ICU].\nЗа да користите Уникод, ќе треба да направите [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations надградба].",
+       "config-unicode-pure-php-warning": "'''Предупредување''': Додатокот [http://pecl.php.net/intl intl PECL] не е достапен за врши уникодна нормализација, враќајќи се на бавна примена на чист PHP.\n\nАко имате високопрометно мрежно место, тогаш ќе треба да прочитате повеќе за [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations уникодната нормализација].",
+       "config-unicode-update-warning": "'''Предупредување:''' Воспоставената верзија на обвивката за уникодна нормализација користи постара верзија на библиотеката на [http://site.icu-project.org/ проектот ICU].\nЗа да користите Уникод, ќе треба да направите [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations надградба].",
        "config-no-db": "Не можев да најдам соодветен двигател за базата на податоци! Ќе треба да воспоставите двигател за PHP-база.\n{{PLURAL:$2|Поддржан се следниов вид|Поддржани се следниве видови}} бази: $1.\n\nДоколку самите го срочивте овој PHP, овозможете го базниот клиент во поставките — на пр. со <code>./configure --with-mysqli</code>.\nАко овој PHP го воспоставите од пакет на Debian или Ubuntu, тогаш ќе треба исто така да го воспоставите, на пр., пакетот <code>php5-mysql</code>.",
        "config-outdated-sqlite": "'''Предупредување''': имате SQLite $1. Најстарата допуштена верзија е $2. Затоа, SQLite ќе биде недостапен.",
        "config-no-fts3": "'''Предупредување''': SQLite iе составен без модулот [//sqlite.org/fts3.html FTS3] - за оваа база нема да има можност за пребарување.",
-       "config-mbstring": "'''Кобно: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] е активно!'''\nОваа можност предизвикува грешки и може непредвидиво да го расипува вносот на податоци.\nОваа можност мора да е исклучена. Во спротивно нема да можете да го воспоставите и користите МедијаВики.",
-       "config-xml-bad": "XML-модулот за PHP недостасува.\nМедијаВики има потреба од функции во овој модул и нема да работи со овие поставки.\nМоже да треба да го воспоставите RPM-пакетот „php-xml“.",
        "config-pcre-old": "'''Кобно:''' Се бара PCRE $1 или понова верзија.\nВашиот PHP-бинарен е сврзан со PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Повеќе информации].",
        "config-pcre-no-utf8": "<strong>Кобно</strong>: PCRE-модулот на PHP е срочен без поддршка за PCRE_UTF8.\nМедијаВики бара поддршка за UTF-8 за да може да работи правилно.",
        "config-memory-raised": "<code>memory_limit</code> за PHP изнесува $1, зголемен на $2.",
        "config-memory-bad": "'''Предупредување:''' <code>memory_limit</code> за PHP изнесува $1.\nОва е веројатно премалку.\nВоспоставката може да не успее!",
-       "config-ctype": "<strong>Кобно:</strong> PHP мора да се срочи со поддршка за додатокот [http://www.php.net/manual/en/ctype.installation.php Ctype].",
-       "config-iconv": "<strong>Кобно:</strong> PHP мора да се срочува со поддршка за [http://www.php.net/manual/en/iconv.installation.php додатокот iconv].",
-       "config-json": "'''Кобно:''' PHP беше срочен без поддршка од JSON.\nЌе мора да го воспоставите додатокот за JSON во PHP, или додатокот [http://pecl.php.net/package/jsonc PECL jsonc] пред да го воспоставите МедијаВики.\n* Додатокот за PHP е вклучен во верзиите 5 и 6 на Linux (од Red Hat Enterprise) (CentOS), но мора да се активира во <code>/etc/php.ini</code> или <code>/etc/php.d/json.ini</code>.\n* Некои варијанти на Linux излезени по мај 2013 г. не го содржат додатокот за PHP, туку го пакуваат додатокот PECL како <code>php5-json</code> или <code>php-pecl-jsonc</code>.",
-       "config-mbstring-absent": "<strong>Кобно:</strong> PHP мора да се срочува со поддршка за додатокот [http://www.php.net/manual/en/mbstring.setup.php mbstring].",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] е воспоставен",
        "config-apc": "[http://www.php.net/apc APC] е воспоставен",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] е воспоставен",
@@ -80,7 +74,7 @@
        "config-no-cli-uri": "'''Предупредување''': Нема наведено <code>--scriptpath</code>. Ќе се користи основниот: <code>$1</code>.",
        "config-using-server": "Користите опслужувач под името „<nowiki>$1</nowiki>“.",
        "config-using-uri": "Користите опслужувач со URL-адреса „<nowiki>$1$2</nowiki>“.",
-       "config-uploads-not-safe": "'''Предупредување:''' Вашата матична папка за подигање <code>$1</code> е подложна на извршување (пуштање) на произволни скрипти.\nИако МедијаВики врши безбедносни проверки на сите подигнати податотеки, ве советуваме [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security да ја затворите оваа безбедносна дупка] пред да овозможите подигање.",
+       "config-uploads-not-safe": "'''Предупредување:''' Вашата матична папка за подигање <code>$1</code> е подложна на извршување (пуштање) на произволни скрипти.\nИако МедијаВики врши безбедносни проверки на сите подигнати податотеки, ве советуваме [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security да ја затворите оваа безбедносна дупка] пред да овозможите подигање.",
        "config-no-cli-uploads-check": "'''Предупредување:''' Вашата основна папка за подигања (<code>$1</code>) не е проверена дали е подложна\nпроизволно извршување на скрипти во текот на воспоставката на посредникот на повикувачко ниво (CLI).",
        "config-brokenlibxml": "Вашиот систем има комбинација од PHP и libxml2 верзии и затоа има грешки и може да предизвика скриено расипување на податоците кај МедијаВики и други мрежни програми.\nНадградете го на libxml2 2.7.3 или нивни понови верзии! ([https://bugs.php.net/bug.php?id=45996 грешката е заведена во PHP]). Воспоставката е откажана.",
        "config-suhosin-max-value-length": "Suhosin е воспоставен и ја ограничува должината на параметарот GET на $1 бајти. Делот ResourceLoader на МедијаВики ќе ја заобиколува ова граница, но со тоа ќе се влоши делотворноста. Ако е воопшто можно, на <code>suhosin.get.max_value_length</code> треба да го наместите на 1024 или повеќе во <code>php.ini</code>, и да му ја зададете истата вредност на <code>$wgResourceLoaderMaxQueryLength</code> во <code>LocalSettings.php</code>.",
        "config-db-wiki-help": "Внесете корисничко име и лозинка што ќе се користат за поврзување со базата на податоци во текот на редовната работа со викито.\nАко сметката не постои, а инсталационата сметка има доволно привилегии, тогаш оваа корисничка сметка ќе биде создадена со минималните привилегии потребни за работа со викито.",
        "config-db-prefix": "Претставка на табелата на базата:",
        "config-db-prefix-help": "Ако треба да делите една база на податоци со повеќе викија, или со МедијаВики и друг мрежен програм, тогаш можете да додадете претставка на сите називи на табелите за да спречите проблематични ситуации.\nНе користете празни простори.\n\nОва поле обично се остава празно.",
-       "config-db-charset": "Збир знаци за базата",
-       "config-charset-mysql5-binary": "Бинарен за MySQL 4.1/5.0",
-       "config-charset-mysql5": "UTF-8 за MySQL 4.1/5.0",
-       "config-charset-mysql4": "Назадно-соодветен UTF-8 за MySQL 4.0",
-       "config-charset-help": "'''ПРЕДУПРЕДУВАЊЕ:''' Ако користите '''назадно-соодветен UTF-8''' во MySQL 4.1+, а потоа направите резервен примерок на базата со <code>mysqldump</code>, ова може да ги опустоши сите не-ASCII знаци, и со тоа неповратно да ја расипе целата зачувана резерва!\n\nВо '''бинарен режим''', во базата МедијаВики го складира UTF-8 текстот во бинарни полиња.\nОва е поефикансно отколку  UTF-8 режимот на MySQL бидејќи ви овозможува да го користите целиот спектар на уникодни знаци.\nВо '''UTF-8 режим''', MySQL ќе знае на кој збир знаци припаѓаат вашите податоци, и може соодветно да ги претстави и претвори,\nно нема да ви дозволи да складирате знаци над [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Основната повеќејазична рамнина].",
        "config-mysql-old": "Се бара MySQL $1 или поново, а вие имате $2.",
        "config-db-port": "Порта на базата:",
        "config-db-schema": "Шема за МедијаВики",
        "config-mysql-charset": "Збир знаци за базата:",
        "config-mysql-binary": "Бинарен",
        "config-mysql-utf8": "UTF-8",
-       "config-mysql-charset-help": "Во '''бинарен режим''', во базата на податоци МедијаВики складира UTF-8 текст во бинарни полиња.\nОва е поефикасно отколку  TF-8 режимот на MySQL, и ви овозможува да ја користите целата палета на уникодни знаци.\n\nВо '''UTF-8 режим''', MySQL ќе знае на кој збир знаци припаѓаат вашите податоци, и може соодветно да ги претстави и претвори, но нема да ви дозволи да складиратезнаци над [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Основната повеќејазична рамнина].",
+       "config-mysql-charset-help": "Во '''бинарен режим''', во базата на податоци МедијаВики складира UTF-8 текст во бинарни полиња.\nОва е поефикасно отколку  TF-8 режимот на MySQL, и ви овозможува да ја користите целата палета на уникодни знаци.\n\nВо '''UTF-8 режим''', MySQL ќе знае на кој збир знаци припаѓаат вашите податоци, и може соодветно да ги претстави и претвори, но нема да ви дозволи да складиратезнаци над [https://en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Основната повеќејазична рамнина].",
        "config-mssql-auth": "Тип на заверка:",
        "config-mssql-install-auth": "Изберете го типот на заверка што ќе се користи за поврзување со базата на податоци во текот на воспоставката.\nАко изберете „{{int:config-mssql-windowsauth}}“, ќе се користат најавните податоци или корисникот како кој работи мрежниот опслужувач.",
        "config-mssql-web-auth": "Изберете го типот на заверка што мрежниот послужувач ќе го користи за поврзување со опслужувачот на базата во текот на редовната работа на викито.\nАко изберете „{{int:config-mssql-windowsauth}}“, ќе се користат најавните податоци или корисникот како кој работи мрежниот опслужувач.",
        "config-profile-no-anon": "Задолжително отворање сметка",
        "config-profile-fishbowl": "Само овластени уредници",
        "config-profile-private": "Лично вики",
-       "config-profile-help": "Викијата функционираат најдобро кога имаат што повеќе уредници.\nВо МедијаВики лесно се проверуваат скорешните промени, и лесно се исправа (технички: „враќа“) штетата направена од неупатени или злонамерни корисници.\n\nМногумина имаат најдено најразлични полезни примени за МедијаВики, но понекогаш не е лесно да убедите некого во предностите на вики-концептот.\nЗначи имате избор.\n\n'''{{int:config-profile-wiki}}''' — модел според кој секој може да уредува, дури и без најавување.\nАко имате вики со '''задолжително отворање на сметка''', тогаш добивате повеќе контрола, но ова може даги одврати спонтаните учесници.\n\n'''{{int:config-profile-fishbowl}}''' — може да уредуваат само уредници што имаат добиено дозвола за тоа, но јавноста може да ги гледа страниците, вклучувајќи ја нивната историја.\n'''{{int:config-profile-private}}''' — страниците се видливи и уредливи само за овластени корисници.\n\nПо воспоставката имате на избор и посложени кориснички права и поставки. Погледајте во [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights прирачникот].",
+       "config-profile-help": "Викијата функционираат најдобро кога имаат што повеќе уредници.\nВо МедијаВики лесно се проверуваат скорешните промени, и лесно се исправа (технички: „враќа“) штетата направена од неупатени или злонамерни корисници.\n\nМногумина имаат најдено најразлични полезни примени за МедијаВики, но понекогаш не е лесно да убедите некого во предностите на вики-концептот.\nЗначи имате избор.\n\n'''{{int:config-profile-wiki}}''' — модел според кој секој може да уредува, дури и без најавување.\nАко имате вики со '''задолжително отворање на сметка''', тогаш добивате повеќе контрола, но ова може даги одврати спонтаните учесници.\n\n'''{{int:config-profile-fishbowl}}''' — може да уредуваат само уредници што имаат добиено дозвола за тоа, но јавноста може да ги гледа страниците, вклучувајќи ја нивната историја.\n'''{{int:config-profile-private}}''' — страниците се видливи и уредливи само за овластени корисници.\n\nПо воспоставката имате на избор и посложени кориснички права и поставки. Погледајте во [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights прирачникот].",
        "config-license": "Авторски права и лиценца:",
        "config-license-none": "Без подножје за лиценца",
        "config-license-cc-by-sa": "Криејтив комонс НаведиИзвор СподелиПодИстиУслови",
        "config-email-sender-help": "Внесете ја е-поштенската адреса што ќе се користи како повратна адреса за излезна е-пошта.\nТаму ќе се испраќаат вратените (непримени) писма.\nМногу поштенски опслужувачи бараат барем делот за доменско име да биде важечки.",
        "config-upload-settings": "Подигање на слики и податотеки",
        "config-upload-enable": "Овозможи подигање на податотеки",
-       "config-upload-help": "Подигањето на податотеки потенцијално го изложуваат вашиот опслужувач на безбедносни ризици.\nЗа повеќе информации, прочитајте го [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security поглавието за безбедност] во прирачникот.\n\nЗа да овозможите подигање на податотеки, сменете го режимот на потпапката <code>images</code> во основната папка на МедијаВики, за да му овозможите на мрежниот опслужувач да запишува во неа.\nПотоа овозможете ја оваа функција.",
+       "config-upload-help": "Подигањето на податотеки потенцијално го изложуваат вашиот опслужувач на безбедносни ризици.\nЗа повеќе информации, прочитајте го [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security поглавието за безбедност] во прирачникот.\n\nЗа да овозможите подигање на податотеки, сменете го режимот на потпапката <code>images</code> во основната папка на МедијаВики, за да му овозможите на мрежниот опслужувач да запишува во неа.\nПотоа овозможете ја оваа функција.",
        "config-upload-deleted": "Папка за избришаните податотеки:",
        "config-upload-deleted-help": "Одберете во која папка да се архивираат избришаните податотеки.\nНајдобро би било ако таа не е достапна преку семрежјето.",
        "config-logo": "URL за логото:",
        "config-logo-help": "Матичното руво на МедијаВики има простор за лого од 135x160 пиксели над страничникот.\n\nМожете да употребите <code>$wgStylePath</code> или <code>$wgScriptPath</code> ако вашето лого е релативно на тие патеки.\n\nАко не сакате да имате лого, тогаш оставете го ова поле празно.",
        "config-instantcommons": "Овозможи Instant Commons",
-       "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons Instant Commons] е функција која им овозможува на викијата да користат слики, звучни записи и други мултимедијални содржини од [//commons.wikimedia.org/ Ризницата].\nЗа да може ова да работи, МедијаВики бара пристап до семрежјето.\n\nЗа повеќе информации за оваа функција и напатствија за нејзино поставување на вики (сите други освен Ризницата), коносултирајте го [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos прирачникот].",
+       "config-instantcommons-help": "[https://www.mediawiki.org/wiki/InstantCommons Instant Commons] е функција која им овозможува на викијата да користат слики, звучни записи и други мултимедијални содржини од [https://commons.wikimedia.org/ Ризницата].\nЗа да може ова да работи, МедијаВики бара пристап до семрежјето.\n\nЗа повеќе информации за оваа функција и напатствија за нејзино поставување на вики (сите други освен Ризницата), коносултирајте го [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos прирачникот].",
        "config-cc-error": "Изборникот на лиценци од Криејтив комонс не даде резултати.\nВнесете го името на лиценцата рачно.",
        "config-cc-again": "Одберете повторно...",
        "config-cc-not-chosen": "Одберете ја саканата лиценца од Криејтив комонс и стиснете на „proceed“.",
        "config-install-extension-tables": "Изработка на табели за овозможени додатоци",
        "config-install-mainpage-failed": "Не можев да вметнам главна страница: $1",
        "config-install-done": "<strong>Честитаме!</strong>\nУспешно го воспоставивте МедијаВики.\n\nВоспоставувачот создаде податотека <code>LocalSettings.php</code>.\nТаму се содржат сите ваши нагодувања.\n\nЌе треба да ја преземете и да ја ставите во основата на воспоставката (истата папка во која се наоѓа index.php). Преземањето треба да е започнато автоматски.\n\nАко не ви е понудено преземање, или пак ако сте го откажале, можете да го почнете одново стискајќи на следнава врска:\n\n$3\n\n<strong>Напомена</strong>: Ако ова не го направите сега, податотеката со поставки повеќе нема да биде на достапна.\n\nОткога ќе завршите со тоа, можете да <strong>[$2 влезете на вашето вики]</strong>.",
+       "config-install-done-path": "<strong>Честитаме!</strong>\nГо воспоставивте МедијаВики.\n\nВоспоставувачот создаде податотека <code>LocalSettings.php</code>.\nТаму се содржат сите ваши нагодувања.\n\nЌе треба да ја преземете и да ја ставите во <code>$4</code>. Преземањето треба да е започнато автоматски.\n\nАко не ви е понудено преземање, или пак ако сте го откажале, можете да го почнете одново стискајќи на следнава врска:\n\n$3\n\n<strong>Напомена</strong>: Ако ова не го направите сега, создадената податотека со поставки повеќе нема да биде на достапна, освен ако не ја преземете пред да излезете.\n\nОткога ќе завршите со тоа, можете да <strong>[$2 влезете на вашето вики]</strong>.",
        "config-download-localsettings": "Преземи го <code>LocalSettings.php</code>",
        "config-help": "помош",
        "config-help-tooltip": "стиснете да расклопите",
        "config-nofile": "Податотеката „$1“ не е пронајдена. Да не е избришана?",
-       "config-extension-link": "Дали сте знаеле дека вашето вики поддржува [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions додатоци]?\n\nМожете да ги прелистате [//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category по категории]",
+       "config-extension-link": "Дали сте знаеле дека вашето вики поддржува [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions додатоци]?\n\nМожете да ги прелистате [https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category по категории]",
        "mainpagetext": "<strong>МедијаВики е успешно воспоставен.</strong>",
-       "mainpagedocfooter": "Погледнете го [//meta.wikimedia.org/wiki/Help:Contents Упатството за корисници] за подетални иформации како се користи вики-програмот.\n\n==Од каде да почнете==\n* [//meta.wikimedia.org/wiki/Manual:Configuration_settings Список на нагодувања]\n* [//meta.wikimedia.org/wiki/Manual:FAQ ЧПП (често поставувани прашања) за МедијаВики].\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Поштенски список на МедијаВики за нови верзии]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Локализирајте го МедијаВики на вашиот јазик]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Дознајте како да се борите против спам на вашето вики]"
+       "mainpagedocfooter": "Погледнете го [https://meta.wikimedia.org/wiki/Help:Contents Упатството за корисници] за подетални иформации како се користи вики-програмот.\n\n==Од каде да почнете==\n* [https://meta.wikimedia.org/wiki/Manual:Configuration_settings Список на нагодувања]\n* [https://meta.wikimedia.org/wiki/Manual:FAQ ЧПП (често поставувани прашања) за МедијаВики].\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Поштенски список на МедијаВики за нови верзии]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Локализирајте го МедијаВики на вашиот јазик]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Дознајте како да се борите против спам на вашето вики]"
 }
index 04c2890..55ce440 100644 (file)
@@ -34,7 +34,7 @@
        "config-page-upgradedoc": "അപ്‌ഗ്രേഡിങ്",
        "config-help-restart": "ഇതുവരെ ഉൾപ്പെടുത്തിയ എല്ലാവിവരങ്ങളും ഒഴിവാക്കാനും ഇൻസ്റ്റലേഷൻ പ്രക്രിയ നിർത്തി-വീണ്ടുമാരംഭിക്കാനും താങ്കളാഗ്രഹിക്കുന്നുണ്ടോ?",
        "config-restart": "അതെ, പുനർപ്രവർത്തിപ്പിക്കുക",
-       "config-sidebar": "* [//www.mediawiki.org മീഡിയവിക്കി പ്രധാനതാൾ]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents ഉപയോക്തൃസഹായി]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents കാര്യനിർവഹണസഹായി]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ പതിവുചോദ്യങ്ങൾ]",
+       "config-sidebar": "* [https://www.mediawiki.org മീഡിയവിക്കി പ്രധാനതാൾ]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents ഉപയോക്തൃസഹായി]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents കാര്യനിർവഹണസഹായി]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ പതിവുചോദ്യങ്ങൾ]",
        "config-env-php": "പി.എച്ച്.പി. $1 ഇൻസ്റ്റോൾ ചെയ്തിട്ടുണ്ട്.",
        "config-no-db": "അനുയോജ്യമായ ഡേറ്റാബേസ് ഡ്രൈവർ കണ്ടെത്താനായില്ല!",
        "config-memory-raised": "പി.എച്ച്.പി.യുടെ <code>memory_limit</code> $1 ആണ്, $2 ആയി ഉയർത്തിയിരിക്കുന്നു.",
        "config-install-mainpage-failed": "പ്രധാന താൾ ഉൾപ്പെടുത്താൻ കഴിഞ്ഞില്ല: $1",
        "config-install-done": "'''അഭിനന്ദനങ്ങൾ!'''\nതാങ്കൾ വിജയകരമായി മീഡിയവിക്കി സജ്ജീകരിച്ചിരിക്കുന്നു.\n\nഇൻസ്റ്റോളർ താങ്കളുടെ എല്ലാ ക്രമീകരണങ്ങളുമടങ്ങുന്ന <code>LocalSettings.php</code> ഫയൽ സൃഷ്ടിച്ചിട്ടുണ്ട്.\n\nപ്രസ്തുത പ്രമാണം ഡൗൺലോഡ് ചെയ്ത് താങ്കളുടെ വിക്കി സജ്ജീകരണത്തിന്റെ അടിസ്ഥാന ഡയറക്റ്ററിയിൽ ഇടേണ്ടതാണ് (index.php കിടക്കുന്ന അതേ ഡയറക്റ്ററിയിൽ). ഡൗൺലോഡിങ്ങ് സ്വയം ആരംഭിക്കുന്നതാണ്. ഡൗൺലോഡിങ്ങ് സ്വയം തുടങ്ങാതിരിക്കുകയോ, താങ്കൾ റദ്ദാക്കുകയോ ചെയ്ത പക്ഷം താഴെ കാണുന്ന കണ്ണിയിൽ ഞെക്കുക:\n$3\n\n'''ശ്രദ്ധിക്കുക''': താങ്കൾ ഇപ്പോൾ ചെയ്തില്ലെങ്കിൽ, ഫയൽ എടുക്കാതെ ഇൻസ്റ്റലേഷൻ പ്രക്രിയയിൽ നിന്ന് പുറത്തിറങ്ങിയാൽ, സൃഷ്ടിക്കപ്പെട്ട ക്രമീകരണങ്ങളടങ്ങുന്ന പ്രമാണം പിന്നീട് ലഭ്യമായിരിക്കില്ല.\n\nമുകളിൽ പറഞ്ഞ പ്രകാരം ചെയ്തു കഴിഞ്ഞാൽ, താങ്കൾക്ക് '''[$2 വിക്കിയിൽ പ്രവേശിക്കാവുന്നതാണ്]'''.",
        "mainpagetext": "'''മീഡിയവിക്കി വിജയകരമായി സജ്ജീകരിച്ചിരിക്കുന്നു.'''",
-       "mainpagedocfooter": "വിക്കി സോഫ്റ്റ്‌വെയർ ഉപയോഗിക്കുന്നതിനെ കുറിച്ചുള്ള വിശദാംശങ്ങൾക്ക്  [//meta.wikimedia.org/wiki/Help:Contents സോഫ്റ്റ്‌വെയർ സഹായി] കാണുക.\n\n== പ്രാരംഭസഹായികൾ ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings ക്രമീകരണങ്ങളുടെ പട്ടിക]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ മീഡിയവിക്കി പതിവുചോദ്യങ്ങൾ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce മീഡിയവിക്കി പ്രകാശന മെയിലിങ് ലിസ്റ്റ്]"
+       "mainpagedocfooter": "വിക്കി സോഫ്റ്റ്‌വെയർ ഉപയോഗിക്കുന്നതിനെ കുറിച്ചുള്ള വിശദാംശങ്ങൾക്ക്  [https://meta.wikimedia.org/wiki/Help:Contents സോഫ്റ്റ്‌വെയർ സഹായി] കാണുക.\n\n== പ്രാരംഭസഹായികൾ ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings ക്രമീകരണങ്ങളുടെ പട്ടിക]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ മീഡിയവിക്കി പതിവുചോദ്യങ്ങൾ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce മീഡിയവിക്കി പ്രകാശന മെയിലിങ് ലിസ്റ്റ്]"
 }
index c3a7289..88a5f75 100644 (file)
@@ -6,5 +6,5 @@
        },
        "config-page-language": "Хэл",
        "mainpagetext": "'''МедиаВики амжилттай суулаа.'''",
-       "mainpagedocfooter": "Вики программыг хэрэглэх талаар заавар авахын тулд [//meta.wikimedia.org/wiki/Help:Contents хэрэглэгчийн гарын авлага]-г үзнэ үү.\n\n== Эхлэх ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Тохиргоо]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ МедиаВикигийн тогтмол тавигддаг асуултууд]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce МедиаВикигийн мэдээний мэйл явуулах жагсаалт]"
+       "mainpagedocfooter": "Вики программыг хэрэглэх талаар заавар авахын тулд [https://meta.wikimedia.org/wiki/Help:Contents хэрэглэгчийн гарын авлага]-г үзнэ үү.\n\n== Эхлэх ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Тохиргоо]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ МедиаВикигийн тогтмол тавигддаг асуултууд]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce МедиаВикигийн мэдээний мэйл явуулах жагсаалт]"
 }
index 1157aa8..d3e0e17 100644 (file)
        "config-restart": "होय, परत चालू करा",
        "config-welcome": "=== पारिसरीक तपासण्या ===\nमिडियाविकिच्या उभारणीस हा परिसर योग्य आहे काय याच्या मूळ तपासण्या आता केल्या जातील.\nजर आपणास पुढे याची उभारणी करण्याबद्दल साहाय्य लागल्यास, याचा अंतर्भाव करणे लक्षात ठेवा.",
        "config-copyright": "=== प्रताधिकार व अटी ===\n\n$1\nहा कार्यसंच,हे एक मुक्त संचेतन आहे;आपण त्यास पुनर्वितरीत व/किंवा त्यास फ्री सॉफ्टवेअर फाऊंडेशन द्वारे प्रकाशित, GNU जनरल पब्लिक लायसन्स अंतर्गत बदलु शकता;या परवान्याची आवृत्ती २ किंवा (आपल्या इच्छेनुसार)त्यानंतरची आवृत्ती.\n\nहा कार्यसंचाचे वितरण,पण, <strong>कोणत्याही हमीशिवाय</strong>; याशिवाय <strong>व्यापारीकरणाच्या</strong> कोणत्याही अभिप्रेत आश्वासनाशिवाय किंवा <strong>एखाद्या विशिष्ट कार्यासाठीच्या अर्हतेशिवाय</strong>ही आशा ठेऊन केले आहे कि, तो उपयोगी असेल.\nअधिक माहितीसाठी GNU जनरल पब्लिक लायसन्स बघा.\nआपणास या कार्यसंचासमवेत <doclink href=Copying>GNU जनरल पब्लिक लायसन्सची प्रत मिळाली असेल,</doclink>नसल्यास,फ्री सॉफ्टवेअर फाऊंडेशनला या पत्त्यावर लिहा.Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. किंवा त्यास [http://www.gnu.org/copyleft/gpl.html ऑनलाईन वाचा].",
-       "config-sidebar": "* [//www.mediawiki.org मिडियाविकि गृह]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents सदस्य मार्गदर्शिका]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents प्रशासकाची मार्गदर्शिका]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ]\n----\n* <doclink href=Readme>Read me</doclink>\n* <doclink href=ReleaseNotes>विमोचन टिप्पण्या</doclink>\n* <doclink href=Copying>नकलविणे</doclink>\n* <doclink href=UpgradeDoc>दर्जोन्नती करणे</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org मिडियाविकि गृह]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents सदस्य मार्गदर्शिका]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents प्रशासकाची मार्गदर्शिका]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ एफएक्यू]\n----\n* <doclink href=Readme>रीड मी</doclink>\n* <doclink href=ReleaseNotes>विमोचन टिप्पण्या</doclink>\n* <doclink href=Copying>नकलविणे</doclink>\n* <doclink href=UpgradeDoc>दर्जोन्नती करणे</doclink>",
        "config-env-good": "पारिसरीक तपासणी झाली आहे.\nआपण मिडियाविकि उभारू शकता.",
        "config-env-bad": "पारिसरीक तपासणी झाली आहे.\nआपण मिडियाविकि उभारू शकत नाही.",
        "config-env-php": "PHP $1 उभारल्या गेली.",
        "config-env-hhvm": "HHVM $1 उभारल्या गेली.",
        "config-unicode-using-intl": "यूनिकोड सामान्यिकरणासाठी [http://pecl.php.net/intl intl PECL विस्तारक] वापरत आहे.",
        "config-outdated-sqlite": "<strong>इशारा:</strong> आपणापाशी SQLite $1 आहे, जी किमान आवश्यक आवृत्ती $2 पेक्षा, निम्न आहे. SQLite अनुपलब्ध राहील.",
-       "config-register-globals-error": "<strong>त्रुटी: PHP's <code>[http://php.net/register_globals वैश्विकांची नोंद करा]</code> पर्याय सक्षम केला आहे. उभारणी सुरू ठेवण्यास तो अक्षम केल्या जावयास हवा.</strong>ते कसे करावयाचे याच्या साहाय्यासाठी\n[https://www.mediawiki.org/wiki/register_globals https://www.mediawiki.org/wiki/register_globals] बघा.",
-       "config-magic-quotes-gpc": "<strong>घातक: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-gpc magic_quotes_gpc] सक्रिय आहे!</strong>\nहा पर्याय, अंदाज येऊ न देता, डाटा इनपुटला भ्रष्ट करते.\nआपण हा पर्यास अक्षम केल्याशिवाय मिडियाविकिची उभारणी किंवा वापर करु शकत नाही.",
-       "config-magic-quotes-runtime": "<strong>घातक: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] सक्रिय आहे!</strong>\nहा पर्याय, अंदाज येऊ न देता, डाटा इनपुटला भ्रष्ट करते.\nआपण हा पर्यास अक्षम केल्याशिवाय मिडियाविकिची उभारणी किंवा वापर करु शकत नाही.",
-       "config-magic-quotes-sybase": "<strong>घातक: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] सक्रिय आहे!</strong>\nहा पर्याय, अंदाज येऊ न देता, डाटा इनपुटला भ्रष्ट करते.\nआपण हा पर्यास अक्षम केल्याशिवाय मिडियाविकिची उभारणी किंवा वापर करु शकत नाही.",
        "config-memory-raised": "पीएचपीची <code>memory_limit</code> ही $1 आहे, त्यास $2 ला वाढविली.",
        "config-memory-bad": "पीएचपीची <code>memory_limit</code> ही $1 आहे.\nही बरीच खालच्या स्तरावरची आहे.\nउभारणी अयशस्वी होऊ शकते!",
-       "config-ctype": "<strong>घातक:</strong> पीएचपीचे [http://www.php.net/manual/en/ctype.installation.php Ctype या विस्तारकाशी] साहाय्य करण्यास संकलन करावे लागेल.",
-       "config-iconv": "<strong>घातक:</strong> पीएचपीचे [http://www.php.net/manual/en/iconv.installation.php iconv या विस्तारकाशी]साहाय्य करण्यास संकलन करावे लागेल.",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] उभारली",
        "config-apc": "[http://www.php.net/apc APC] उभारली आहे",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] उभारली आहे",
-       "config-no-cache": "<strong>इशारा:</strong>  [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] किंवा [http://www.iis.net/download/WinCacheForPhp WinCache] सापडली नाही.\nउद्दीष्टाचे कॅश करणे सक्षम नाही.",
        "config-diff3-bad": "GNU diff3 सापडली नाही.",
        "config-git-bad": "गीट आवृत्ती नियमन संचेतन सापडली नाही.",
        "config-db-type": "डाटाबेसचा प्रकार:",
        "config-install-tables-failed": "<strong>त्रुटी:</strong>खालील त्रुटीमुळे सारणी बनविणे अयशस्वी:$1",
        "config-help": "साहाय्य",
        "mainpagetext": "'''मीडियाविकीचे इन्स्टॉलेशन पूर्ण.'''",
-       "mainpagedocfooter": "विà¤\95à¥\80 à¤¸à¥\89फà¥\8dà¤\9fवà¥\87à¤\85र à¤µà¤¾à¤ªà¤°à¤£à¥\8dयाà¤\95रिता [//meta.wikimedia.org/wiki/Help:Contents à¤µà¤¾à¤ªà¤°à¤\95रà¥\8dता à¤®à¤¾à¤°à¥\8dà¤\97दरà¥\8dशिà¤\95ा] à¤ªà¤¹à¤¾.\n\n== à¤¸à¥\81रà¥\81वात à¤\95रा ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings à¤°à¤\9aित à¤®à¤¾à¤\82डणà¥\8dयाà¤\9aà¥\80 à¤¯à¤¾à¤¦à¥\80]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ à¤®à¤¿à¤¡à¤¿à¤¯à¤¾à¤µà¤¿à¤\95ि FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-मिडियाविà¤\95िà¤\9aà¥\80 à¤®à¥\87लिà¤\82à¤\97 à¤¯à¤¾à¤¦à¥\80à¤\9aà¥\87 à¤µà¤¿à¤®à¥\8bà¤\9aनाà¤\9aà¥\80 à¤\89दà¥\8dà¤\98à¥\8bषणा]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources à¤\86पलà¥\8dया à¤­à¤¾à¤·à¥\87साठà¥\80 à¤®à¤¿à¤¡à¤¿à¤¯à¤¾à¤µà¤¿à¤\95िà¤\9aà¥\87 à¤¸à¥\8dथानिà¤\95िà¤\95रण à¤\95रा]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam आपल्या विकिवर स्पॅमशी दोन हात कसे करावे ते शिका]"
+       "mainpagedocfooter": "विà¤\95à¥\80 à¤¸à¤\82à¤\9aà¥\87तन à¤µà¤¾à¤ªà¤°à¤£à¥\8dयाà¤\95रिता [https://meta.wikimedia.org/wiki/Help:Contents à¤µà¤¾à¤ªà¤°à¤\95रà¥\8dता à¤®à¤¾à¤°à¥\8dà¤\97दरà¥\8dशिà¤\95ा] à¤ªà¤¹à¤¾.\n\n== à¤¸à¥\81रà¥\81वात à¤\95रा ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings à¤°à¤\9aित à¤®à¤¾à¤\82डणà¥\8dयाà¤\82à¤\9aà¥\80 à¤¯à¤¾à¤¦à¥\80]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ à¤®à¤¿à¤¡à¤¿à¤¯à¤¾à¤µà¤¿à¤\95ि à¤\8fफà¤\8fà¤\95à¥\8dयà¥\82]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-मिडियाविà¤\95िà¤\9aà¥\8dया à¤®à¥\87लिà¤\82à¤\97 à¤¯à¤¾à¤¦à¥\80à¤\9aà¥\8dया à¤µà¤¿à¤®à¥\8bà¤\9aनाà¤\9aà¥\80 à¤\89दà¥\8dà¤\98à¥\8bषणा]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources à¤\86पलà¥\8dया à¤­à¤¾à¤·à¥\87साठà¥\80 à¤®à¤¿à¤¡à¤¿à¤¯à¤¾à¤µà¤¿à¤\95िà¤\9aà¥\87 à¤¸à¥\8dथानिà¤\95िà¤\95रण à¤\95रा]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam आपल्या विकिवर स्पॅमशी दोन हात कसे करावे ते शिका]"
 }
index 7d5fab7..71b50de 100644 (file)
        "config-restart": "Ya, mula semula",
        "config-welcome": "=== Pemeriksaan persekitaran ===\nPemeriksaan asas kini boleh dilakukan untuk melihat jika persekitaran ini adalah sesuai untuk pemasangan MediaWiki.\nIngat untuk memasukkan maklumat ini jika anda mahukan sokongan tentang bagaimana untuk menyelesaikan pemasangan.",
        "config-copyright": "=== Hakcipta dan Syarat-Syarat ===\n\n$1\n\nProgram ini merupakan perisian bebas; anda boleh mengedarkannya semula dan/atau mengubahsuainya di bawah syarat-syarat Lesen Awam GNU seperti yang diterbitkan oleh Yayasan Perisian Bebas; sama ada versi 2 Lesen ini atau (mengikut pilihan anda) mana-mana versi selepas ini.\n\nProgram ini diedarkan dengan harapan bahawa ia akan menjadi berguna, tetapi '''tanpa sebarang waranti'''; tanpa jaminan yang tersirat '''kebolehdagangan''' atau '''kesesuaian untuk tujuan tertentu'''.\nLihat Lesen Awam GNU untuk maklumat lanjut.\n\nAnda sepatutnya telah menerima <doclink href=Copying> satu salinan Lesen Awam GNU </doclink> bersama-sama dengan program ini, jika tidak, menulis surat kepada Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA, atau [http://www.gnu.org/copyleft/gpl.html membacanya dalam talian].",
-       "config-sidebar": "* [//www.mediawiki.org Laman utama MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Panduan Pengguna]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Panduan Penyelia]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Soalan lazim]\n----\n* <doclink href=Readme>Baca saya</doclink>\n* <doclink href=ReleaseNotes>Nota keluaran</doclink>\n* <doclink href=Copying>Menyalin</doclink>\n* <doclink href=UpgradeDoc>Menaik taraf</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org Laman utama MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Panduan Pengguna]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Panduan Penyelia]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Soalan lazim]\n----\n* <doclink href=Readme>Baca saya</doclink>\n* <doclink href=ReleaseNotes>Nota keluaran</doclink>\n* <doclink href=Copying>Menyalin</doclink>\n* <doclink href=UpgradeDoc>Menaik taraf</doclink>",
        "config-env-good": "Persekitaran telah diperiksa.\nAnda boleh memasang MediaWiki.",
        "config-env-bad": "Persekitaran telah diperiksa. \nAnda tidak boleh memasang MediaWiki.",
        "config-env-php": "PHP $1 dipasang.",
-       "config-unicode-using-utf8": "utf8_normalize.so oleh Brion Vibber digunakan untuk penormalan Unicode.",
        "config-unicode-using-intl": "[http://pecl.php.net/intl Sambungan intl PECL] digunakan untuk penormalan Unicode.",
-       "config-unicode-update-warning": "<strong>Amaran:</strong> Versi pembalut penormalan Unicode yang terpasang menggunakan perpustakaan [http://site.icu-project.org/ projek ICU] dalam versi yang lampau.\nAnda harus [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations menaik taraf] jika Unicode penting bagi anda.",
+       "config-unicode-update-warning": "<strong>Amaran:</strong> Versi pembalut penormalan Unicode yang terpasang menggunakan perpustakaan [http://site.icu-project.org/ projek ICU] dalam versi yang lampau.\nAnda harus [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations menaik taraf] jika Unicode penting bagi anda.",
        "config-outdated-sqlite": "<strong>Amaran:</strong> anda mempunyai SQLite $1 yang lebih rendah daripada versi keperluan minimum $1. SQLite tidak akan disediakan.",
        "config-no-fts3": "<strong>Amaran:</strong> SQLite disusun tanpa [//sqlite.org/fts3.html modil FTS3], maka ciri-ciri pencarian tidak akan disediakan pada backend ini.",
-       "config-mbstring": "<strong>Amaran keras: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] sedang aktif!</strong>\nOpsyen ini menyebabkan ralat dan mungkin mencemari data secara tanpa diduga.\nAnda tidak boleh memasang atau menggunakan MediaWiki melainkan opsyen ini dinyahdayakan.",
        "config-pcre-old": "<strong>Amaran keras:</strong> PCRE $1 ke atas diperlukan.\nBinari PHP anda berpaut dengan PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Keterangan lanjut].",
        "config-memory-bad": "<strong>Amaran:</strong> <code>memory_limit</code> (Had memori) PHP adalah $1.\nIni mungkin terlalu rendah.\nPemasangan mungkin akan gagal!",
-       "config-ctype": "<strong>Amaran keras:</strong> PHP mesti disusun dengan sokongan untuk [http://www.php.net/manual/en/ctype.installation.php sambungan Ctype].",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] dipasang",
        "config-apc": "[http://www.php.net/apc APC] dipasang",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] dipasang",
@@ -79,9 +76,6 @@
        "config-db-username": "Nama pengguna pangkalan data:",
        "config-db-password": "Kata laluan pangkalan data:",
        "config-db-prefix": "Awalan jadual pangkalan data:",
-       "config-db-charset": "Peranggu aksara pangkalan data",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 dedua",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
        "config-db-port": "Port pangkalan data:",
        "config-db-schema": "Skema untuk MediaWiki:",
        "config-pg-test-error": "Tidak boleh bersambung dengan pangkalan data <strong>$1</strong>: $2",
        "config-install-mainpage": "Mewujudkan laman utama dengan kandungan lalai",
        "config-help": "bantuan",
        "mainpagetext": "'''MediaWiki telah berjaya dipasang.'''",
-       "mainpagedocfooter": "Sila rujuk [//meta.wikimedia.org/wiki/Help:Contents Panduan Penggunaan] untuk maklumat mengenai penggunaan perisian wiki ini.\n\n== Permulaan ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Senarai tetapan konfigurasi]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Soalan Lazim MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Senarai surat keluaran MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Terjemahkan MediaWiki ke dalam bahasa anda]"
+       "mainpagedocfooter": "Sila rujuk [https://meta.wikimedia.org/wiki/Help:Contents Panduan Penggunaan] untuk maklumat mengenai penggunaan perisian wiki ini.\n\n== Permulaan ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Senarai tetapan konfigurasi]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Soalan Lazim MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Senarai surat keluaran MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Terjemahkan MediaWiki ke dalam bahasa anda]"
 }
index 262a837..ad1da47 100644 (file)
@@ -86,5 +86,5 @@
        "config-help": "għajnuna",
        "config-nofile": "Il-fajl \"$1\" ma setax jinstab. Dan ġie mħassar?",
        "mainpagetext": "'''MediaWiki ġie installat b'suċċess.'''",
-       "mainpagedocfooter": "Ikkonsulta l-[//meta.wikimedia.org/wiki/Help:Contents Gwida għall-utenti] sabiex tikseb iktar informazzjoni dwar kif tuża' s-softwer tal-wiki.\n\n== Biex tibda ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista ta' preferenzi għall-konfigurazzjoni]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Mistoqsijiet rikorrenti fuq il-MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Il-lista tal-posta tħabbar 'l MediaWiki]"
+       "mainpagedocfooter": "Ikkonsulta l-[https://meta.wikimedia.org/wiki/Help:Contents Gwida għall-utenti] sabiex tikseb iktar informazzjoni dwar kif tuża' s-softwer tal-wiki.\n\n== Biex tibda ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista ta' preferenzi għall-konfigurazzjoni]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Mistoqsijiet rikorrenti fuq il-MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Il-lista tal-posta tħabbar 'l MediaWiki]"
 }
index 70addf9..697b9fb 100644 (file)
        "config-restart": "是,重來",
        "config-welcome": "=== 環境檢測 ===\n這馬欲做基本的檢測,看環境是毋是適合裝 MediaWiki。\n若你愛有支援,才裝會起來,請共遮的資訊記起來。",
        "config-copyright": "=== 版權聲明佮授權條款 ===\n\n$1\n\n本程式是自由軟體;你會當照自由軟體基金會所發表的 GNU 通用公共授權條款規定,共本程式重新發佈抑是修改;無論你是照本授權條款的第二版抑第二版以後的任何版本(你會當家己選) 。\n\n本程式發佈的目的是希望會當提供幫助,但是 <strong>無負任何擔保責任</strong>;抑無表示講對 <strong>販賣性</strong> 抑 <strong>特定用途的適用性</strong> 的情形擔保。詳情請參照 GNU 通用公共授權。\n\n你應該已隨本程式收著 <doclink href=\"Copying\">GNU 通用公共授權條款的副本</doclink>;若無,請寫批通知自由軟體基金會,51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA,或 [http://www.gnu.org/copyleft/gpl.html 線頂看]。",
-       "config-sidebar": "* [www.mediawiki.org/wiki/MediaWiki/zh-hant MediaWiki 頭頁]\n* [www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents/zh 使用者指南]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents/zh 管理者指南]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/zh-hant 四常問題集]\n----\n* <doclink href=Readme>讀我說明</doclink>\n* <doclink href=ReleaseNotes>發行說明</doclink>\n* <doclink href=Copying>版權聲明</doclink>\n* <doclink href=UpgradeDoc>升級</doclink>",
+       "config-sidebar": "* [www.mediawiki.org/wiki/MediaWiki/zh-hant MediaWiki 頭頁]\n* [www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents/zh 使用者指南]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents/zh 管理者指南]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/zh-hant 四常問題集]\n----\n* <doclink href=Readme>讀我說明</doclink>\n* <doclink href=ReleaseNotes>發行說明</doclink>\n* <doclink href=Copying>版權聲明</doclink>\n* <doclink href=UpgradeDoc>升級</doclink>",
        "config-env-good": "環境檢查已完成。\n你會當安裝 MediaWiki。",
        "config-env-bad": "環境檢查已完成。\n你無法度安裝 MediaWiki。",
        "config-env-php": "PHP $1 已經安裝。",
        "config-unicode-using-intl": "用 [http://pecl.php.net/intl intl PECL 擴充套件] 做 Unicode 正規化。",
-       "config-unicode-pure-php-warning": "<strong>警告:</strong> 無法度用 [http://pecl.php.net/intl intl PECL 擴充套件] 處理 Unicode 正規化,所以退回用純 PHP 實作的正規化程式,這種方式處理速度較慢。\n\n若你的網站瀏覽人數誠濟,你應該先看 [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations/zh Unicode 正規化]。",
-       "config-unicode-update-warning": "<strong>警告</strong>:這馬安裝的 Unicode 正規化包裝程式用舊版 [http://site.icu-project.org/ ICU 計劃] 的程式庫。\n若你需要用 Unicode,你應該先進行 [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations 升級]。",
+       "config-unicode-pure-php-warning": "<strong>警告:</strong> 無法度用 [http://pecl.php.net/intl intl PECL 擴充套件] 處理 Unicode 正規化,所以退回用純 PHP 實作的正規化程式,這種方式處理速度較慢。\n\n若你的網站瀏覽人數誠濟,你應該先看 [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations/zh Unicode 正規化]。",
+       "config-unicode-update-warning": "<strong>警告</strong>:這馬安裝的 Unicode 正規化包裝程式用舊版 [http://site.icu-project.org/ ICU 計劃] 的程式庫。\n若你需要用 Unicode,你應該先進行 [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations 升級]。",
        "config-no-db": "揣無適合的資料庫驅動程式!你需要安裝 PHP 資料庫驅動程式。\n這馬支援下跤類型的資料庫: $1 。\n\n若你是家己編譯 PHP,你需要重新設定並且開資料庫客戶端,譬如:用 <code>./configure --with-mysqli</code> 指令參數。\n如你是用 Debian 或 Ubuntu 的套件安裝,你著需要閣另外安裝,例:<code>php5-mysql</code> 套件。",
        "config-outdated-sqlite": "<strong>警告:</strong>你已經安裝 SQLite $1,毋閣伊的版本比會當裝的版本 $2閣較舊。所以你無法度用 SQLite。",
        "config-no-fts3": "<strong>警告:</strong> SQLite 佇編譯的時陣無包括 [//sqlite.org/fts3.html FTS3 模組],後台搜揣功能就會無法度用。",
        "mainpagetext": "'''MediaWiki已經裝好矣。'''",
-       "mainpagedocfooter": "請查看[//meta.wikimedia.org/wiki/Help:Contents 用者說明書]的資料通使用wiki 軟體\n\n== 入門 ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings 配置的設定]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki時常問答]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki的公布列單]"
+       "mainpagedocfooter": "請查看[https://meta.wikimedia.org/wiki/Help:Contents 用者說明書]的資料通使用wiki 軟體\n\n== 入門 ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings 配置的設定]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki時常問答]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki的公布列單]"
 }
index 0931bea..84fb9a3 100644 (file)
        "config-restart": "Sì, riabbìa",
        "config-welcome": "=== Cuntrollo 'e ll'ambiente ===\nSarranno eseguite 'e cuntrolle bbase pe' putè vedè si st'ambiente è adatto pe' ne ffà l'installazione 'e MediaWiki.\nArricurdateve d'includere sti nfurmaziune si spiate assistenza ncopp' 'a maniera 'e cumpletà l'installazione.",
        "config-copyright": "=== Copyright e termine ===\n\n$1\n\nChistu programma è nu software libbero; vuje 'o putite redestribbuì e/o cagnà sott' 'e termine d' 'a licienza GNU GPL ('a Licienza Pubbreca Generale) comme pubbrecata d' 'a Free Software Foundation; o pure 'a verziona 2 d' 'a Licienza, o pure (comme vulite vuje) 'a n'ata verziona cchiù nnova.\n\nChistu programma è destribbuito c' 'a speranza d'essere utile, ma SENZA NISCIUNA GARANZIA; senza manco 'a garanzia p' 'a CUMMERCIABBELETÀ O IDONIETÀ PE' NU SCOPO PARTICULARE.\nIate a vedé 'a GNU GPL pe' n'avé cchiù nfurmaziune.\n\nCu stu programma avísseve 'a ricevere <doclink href=Copying>na copia d' 'a Licienza GNU GPL</doclink> cu stu prugramma; si nò, scrivete â Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA o [http://www.gnu.org/copyleft/gpl.html liggite sta paggena ncopp' 'a l'Internet].",
-       "config-sidebar": "* [//www.mediawiki.org Paggina prencepale MediaWiki]\n* [//www.mediawiki.org/wiki/Aiuto:Guida a 'e cuntenute pe' l'utente]\n* [//www.mediawiki.org/wiki/Manuale:Guida a 'e cuntenute pe l'ammenistrature]\n* [//www.mediawiki.org/wiki/Manuale:FAQ FAQ]\n----\n* <doclink href=Readme>Lieggeme</doclink>\n* <doclink href=ReleaseNotes>Note 'e verziona</doclink>\n* <doclink href=Copying>Copie</doclink>\n* <doclink href=UpgradeDoc>Agghiurnamento</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org Paggina prencepale MediaWiki]\n* [https://www.mediawiki.org/wiki/Aiuto:Guida a 'e cuntenute pe' l'utente]\n* [https://www.mediawiki.org/wiki/Manuale:Guida a 'e cuntenute pe l'ammenistrature]\n* [https://www.mediawiki.org/wiki/Manuale:FAQ FAQ]\n----\n* <doclink href=Readme>Lieggeme</doclink>\n* <doclink href=ReleaseNotes>Note 'e verziona</doclink>\n* <doclink href=Copying>Copie</doclink>\n* <doclink href=UpgradeDoc>Agghiurnamento</doclink>",
        "config-env-good": "L'ambiente è stato cuntrullato.\nÈ pussibbele installare MediaWiki.",
        "config-env-bad": "L'ambiente è stato cuntrullato.\nNun se può installà MediaWiki.",
        "config-env-php": "PHP $1 è installato.",
        "config-env-hhvm": "HHVM $1 è installato.",
        "config-unicode-using-intl": "Aúsa [http://pecl.php.net/intl l'estensione PECL intl] pe' ne fà 'a normalizzazione Unicode.",
-       "config-unicode-pure-php-warning": "<strong>Attenziò:</strong> L' [http://pecl.php.net/intl estensione intl PECL] nun è a disposizione pe' gestire 'a normalizzazione Unicode, accussì se ausasse n'imprementazziona llenta 'n puro PHP.\nSi state a gestire nu pizzo ad alto traffico, avisseve a lieggere cocche considerazione ncopp' 'a [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalizzaziona Unicode].",
-       "config-unicode-update-warning": "<strong>Attenziò:</strong> 'A verziona installata 'e normalizzazione Unicode aùsa 'a verziona viecchia d' 'o [http://site.icu-project.org/ pruggetto ICU].\nV'avite 'a [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations agghiurnà] si state a penzà ncopp' 'o fatto d'ausà Unicode.",
+       "config-unicode-pure-php-warning": "<strong>Attenziò:</strong> L' [http://pecl.php.net/intl estensione intl PECL] nun è a disposizione pe' gestire 'a normalizzazione Unicode, accussì se ausasse n'imprementazziona llenta 'n puro PHP.\nSi state a gestire nu pizzo ad alto traffico, avisseve a lieggere cocche considerazione ncopp' 'a [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalizzaziona Unicode].",
+       "config-unicode-update-warning": "<strong>Attenziò:</strong> 'A verziona installata 'e normalizzazione Unicode aùsa 'a verziona viecchia d' 'o [http://site.icu-project.org/ pruggetto ICU].\nV'avite 'a [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations agghiurnà] si state a penzà ncopp' 'o fatto d'ausà Unicode.",
        "config-no-db": "Nun se può truvà nu driver adatto p' 'o database! È necessario installare nu driver p' 'o PHP.\n{{PLURAL:$2|'O furmato suppurtato|'E furmate suppurtate}} 'e database ccà annanze: $1.\n\nSi cumpilate PHP autonomamente, riaccunciatevello attivando nu client database, p'esempio ausannoo <code>./configure --with-mysqli</code>.\nQuanno fosse installato PHP pe' bbìa 'e nu pacchetto Debian o Ubuntu, allora avite 'a installà pure 'o pacchetto <code>php5-mysql</code>.",
        "config-outdated-sqlite": "'''Attenziò''': tenite 'o SQLite $1 pe' tramente ca ce vulesse 'a verziona $2, SQLite nun sarrà a disposizione.",
        "config-no-fts3": "'''Attenziò''': SQLite è cumpilato senza 'o [//sqlite.org/fts3.html modulo FTS3], 'e funziune 'e p'ascià dinto nun sarranno a disposizione ncopp'a stu backend.",
-       "config-mbstring": "<strong>Fatale: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] è attivo!'</strong>\nSt'opzione scassa 'e date 'e na manera scanusciuta.\nNun se può installà o ausà MediaWiki si nun se stuta st'opzione.",
-       "config-xml-bad": "'O modulo XML 'e PHP è mancante.\nA MediaWiki servessero 'e funziune prisente dint'a stu modulo e nun faticarrà c' 'a configurazione 'e mò.\nSi se sta eseguenno Mandrake, installare 'o pacco php-xml RPM.",
        "config-pcre-old": "<strong>Errore fatale:</strong> s'addimanna PCRE  $1 o succiessivo.\n'O file vuosto binario PHP è acucchiato c' 'o PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Cchiù nfurmaziune].",
        "config-pcre-no-utf8": "<strong>Fatale:</strong> 'E module PCRE d' 'o PHP pare ca se so' compilate senza PCRE_UTF8 supporto.\nA MediaWiki serve nu supporto UTF-8 pe' putè funziunà apposto.",
        "config-memory-raised": "'O valore 'e PHP <code>memory_limit</code> è $1, aumentato a $2.",
        "config-memory-bad": "<strong>Attenziò:</strong> 'o valore 'e PHP <code>memory_limit</code> è $1.\nProbabbilmente troppo basso.\n'A installazione se putesse scassà!",
-       "config-ctype": "'''Errore''': 'o PHP s'adda ghienchere c' 'o supporto pe' l'[http://www.php.net/manual/it/ctype.installation.php estensione Ctype].",
-       "config-iconv": "<strong>Fatale:</strong> PHP s'adda ghienchere c' 'o supporto pe' l'[http://www.php.net/manual/en/iconv.installation.php estensione iconv].",
-       "config-json": "'''Errore:''' PHP è stato compilato senza 'o supporto pe' JSON. E' necessario installà l'estensione PHP pe' JSON o l'estensione [http://pecl.php.net/package/jsonc PECL jsonc] apprimm' 'e installà MediaWiki.\n* L'estensione PHP sta dint'a Red Hat Enterprise Linux (CentOS) 5 e 6, ma s'avess'abbià 'n <code>/etc/php.ini</code> o <code>/etc/php.d/json.ini</code>.\n* Cocche distribuzione 'e Linux pubblicata aropp'a majo 'e 2013 lèvano l'estensione PHP, e a pizzo sujo aúsano l'estensione PECL comme <code>php5-json</code> o <code>php-pecl-jsonc</code>",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] è installato",
        "config-apc": "[http://www.php.net/apc APC] è installato",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] è installato",
@@ -79,7 +74,7 @@
        "config-no-cli-uri": "'''Attenziò''': <code>--scriptpath</code> nun specificato, s'aùsa 'o valore predefinito: <code>$1</code>.",
        "config-using-server": "Nomme d' 'o server ca se stà ausanno \"<nowiki>$1</nowiki>\".",
        "config-using-uri": "URL d' 'o server ca se stà ausanno \"<nowiki>$1$2</nowiki>\".",
-       "config-uploads-not-safe": "<strong>Attenziò:</strong> 'a cartella predefinita p' 'e carreche <code>$1</code> è vulnerabbele all'esecuzione arbitraria 'e script.\nPure si MediaWiki cuntrolla tutt' 'e file carrecate pe' rischio 'a sicurezza se raccumanna 'e [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security nchiure sta vulnerabbilità 'e sicurezza] apprimm'appiccià 'a funcione 'e carreche.",
+       "config-uploads-not-safe": "<strong>Attenziò:</strong> 'a cartella predefinita p' 'e carreche <code>$1</code> è vulnerabbele all'esecuzione arbitraria 'e script.\nPure si MediaWiki cuntrolla tutt' 'e file carrecate pe' rischio 'a sicurezza se raccumanna 'e [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security nchiure sta vulnerabbilità 'e sicurezza] apprimm'appiccià 'a funcione 'e carreche.",
        "config-no-cli-uploads-check": "<strong>Attenziò:</strong> 'a cartella predefinita p' 'e carreche (<code>$1</code>) nun è stata cuntrullata p' 'a vulnerabbelità ncopp'a l'esecuzione arbitraria 'e script pe' tramente ca se fà l'installazione 'a linea 'e commando.",
        "config-brokenlibxml": "'O sistema vuosto ave na combinazione 'e verziune 'e PHP e libxml2 nguacchiata ca putesse scassà 'e date 'e MediaWiki 'n manera annascunnusa e pure l'ati apprecaziune p' 'o web.\nAgghiurnate a libxml2 2.7.3 o cchiù muderno ([https://bugs.php.net/bug.php?id=45996 'o bug studiato d' 'o lato PHP]).\nInstallaziona spezzata.",
        "config-suhosin-max-value-length": "Suhosin è installato e miette lemmeto 'o parametro GET <code>length</code> a $1 byte.\n'O componente MediaWiki ResourceLoader funzionarrà aggirann'a stu lemmeto, ma luvanno prestaziune.\nSi pussibile, avit'a mpustà <code>suhosin.get.max_value_length</code> a 1024 o cchiù auto 'n <code>php.ini</code>, e mpustà <code>$wgResourceLoaderMaxQueryLength</code> a 'o stesso valore 'n <code>LocalSettings.php</code>.",
        "config-db-wiki-help": "Miette 'o nomme utente e 'a password ca sarrà ausata pe' se cullegà ô database pe' l'operazione normale d' 'o wiki. Si 'o cunto nun esiste, e 'o cunto e installazione téne diritte sufficiente, sarrà criato ch' 'e diritte minime necessarie pe' putè faticà ncopp' 'o wiki.",
        "config-db-prefix": "Prefisso d' 'a tavolozza d' 'o database:",
        "config-db-prefix-help": "Si tenite abbesuogno 'e spartì nu database nfra cchiù wiki, o nfra MediaWiki e n'at'apprecazione web, putite scegliere d'azzeccà nu prefisso a tutte 'e nomme 'e tabbella, pe putè evità cunflitte.\nNun ausate abbacante.\n\n'O solito, stu campo se lassasse abbacante.",
-       "config-db-charset": "Nzieme 'e carattere d' 'o database",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 binario",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "MySQL 4.0 cu compatibbelità UTF-8",
-       "config-charset-help": "<strong>Attenziò:</strong> Si state ausanno <strong>backwards-compatible UTF-8</strong> ncopp' 'o MySQL 4.1+, e po' se fà 'o backup d' 'o databas c' 'o codece <code>mysqldump</code>, putesse scassà tutt' 'e carattere nun-ASCII, sfunnanno irreversibbilmente sti backup!\n\nDint' 'a <strong>modalità binaria</strong>, MediaWiki astipa 'o testo UTF-8 dint' 'o database 'n campe binarie.\nChest'è assaje cchiù efficiente rispett' 'a modalità UTF-8 'e MySQL, e te premmettesse 'ausà 'a gamma cumpreta 'e carattere unicode.\nDint' 'o <strong>UTF-8 mode</strong>, MySQL canoscerrà dint'a qualu set 'e carattere stanno 'e date vuoste, putenn'accussì apprisentà e cagnà chiste int'a nu modo appropriato,\nchesto però nun te lassarrà astipà 'e carattere pe' copp' 'o [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
        "config-mysql-old": "MySQL $1 o cchiù muderno è necessario. Vuje avite $2.",
        "config-db-port": "Porta d' 'o database:",
        "config-db-schema": "Schema pe' MediaWiki:",
        "config-mysql-charset": "Nzieme 'e carattere d' 'o database:",
        "config-mysql-binary": "Binario",
        "config-mysql-utf8": "UTF-8",
-       "config-mysql-charset-help": "Int'a <strong>modalità binaria</strong>, MediaWiki archiviasse 'o testo UTF-8 dint' 'o database a campe binarie.\nChest'è cchiù efficiente rispetto 'a modalità UTF-8 'e MySQL, e ve cunzente d'ausà 'a gamma cumpreta 'e carattere Unicode.\n\nInt'a <strong>modalità UTF-8</strong>, MySQL canoscesse dint'a quale set 'e carattere ce stanno 'e date vuoste, e putesse presentà e scagnà sti date int'a nu modo appropriato, ma nun ve premmettesse 'e dà memoria a 'e carattere ncopp' 'o [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Piano base Multilengua].",
+       "config-mysql-charset-help": "Int'a <strong>modalità binaria</strong>, MediaWiki archiviasse 'o testo UTF-8 dint' 'o database a campe binarie.\nChest'è cchiù efficiente rispetto 'a modalità UTF-8 'e MySQL, e ve cunzente d'ausà 'a gamma cumpreta 'e carattere Unicode.\n\nInt'a <strong>modalità UTF-8</strong>, MySQL canoscesse dint'a quale set 'e carattere ce stanno 'e date vuoste, e putesse presentà e scagnà sti date int'a nu modo appropriato, ma nun ve premmettesse 'e dà memoria a 'e carattere ncopp' 'o [https://en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Piano base Multilengua].",
        "config-mssql-auth": "Tipo d'autenticazione:",
        "config-mssql-install-auth": "Sceglie 'o tipo d'autenticazziona ca s'ausarrà pe cunnettà â database, durante ll'operazziona d'istallazziona. Si piglie \"{{int:config-mssql-windowsauth}}\", 'e credenziale 'e qualunque fosse ll'utenza ca 'o webserver sta pruciessanno sarranno ausate.",
        "config-mssql-web-auth": "Sceglie 'o tipo d'autenticazziona ca 'o web server pigliarrà pe se cunnettà a 'o server 'e bbase 'e dati, durante ll'operazziona nurmale d' 'a wiki.\nSi piglie \"{{int:config-mssql-windowsauth}}\", 'e credenziale 'e qualunque fosse ll'utenza ca 'o webserver sta pruciessanno sarranno ausate.",
        "config-profile-no-anon": "Cunto utente obbligatorio",
        "config-profile-fishbowl": "Surtanto ll'editure premmesse",
        "config-profile-private": "Wiki privato",
-       "config-profile-help": "'E wiki funzionano meglio si se lassa ca tante perzone 'e putessero cagnà.\nInt'a MediaWiki, è semprice cuntrullà sti cagnamiente cchiù ricente, e arrepiglià 'e danne causate d' 'e prove o male ntenziune.\n\nAncora, nu cuofeno 'utente hanno truvato ca MediaWiki fosse utile int'a tante ruole, e cocche vota nun è facile 'e cunvencere tuttuquante ncopp' 'e vantagge d' 'a modalità wiki. Picciò facite 'a scelta vosta. Sciglite vuje.\n\n'O mudello <strong>{{int:config-profile-wiki}}</strong> cunzente a chiunque 'e cagnà, pure senza trasì.\nNu wiki cu <strong>{{int:config-profile-no-anon}}</strong> uffrisse na responsabilità maggiore, ma putesse scuraggià cocche cuntribbutore occasionale.\n\n'O  scenario <strong>{{int:config-profile-fishbowl}}</strong> cunzente l'utente autorizzate 'e cagnà, ma 'o pubbreco putesse vedé 'e paggene vedenno pure tutta quanta 'a cronologgia.\nNu <strong>{{int:config-profile-private}}</strong> cunzente ll'utente autorizzate surtanto 'e se vedé 'e paggene, 'o stesso gruppo 'e putesse cagnà.\n\nMpustaziune 'e deritte utente cchiù cumplesse songo a disposizione aropp'a l'installazione, vedite 'a [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights parte relativa d' 'o manuale].",
+       "config-profile-help": "'E wiki funzionano meglio si se lassa ca tante perzone 'e putessero cagnà.\nInt'a MediaWiki, è semprice cuntrullà sti cagnamiente cchiù ricente, e arrepiglià 'e danne causate d' 'e prove o male ntenziune.\n\nAncora, nu cuofeno 'utente hanno truvato ca MediaWiki fosse utile int'a tante ruole, e cocche vota nun è facile 'e cunvencere tuttuquante ncopp' 'e vantagge d' 'a modalità wiki. Picciò facite 'a scelta vosta. Sciglite vuje.\n\n'O mudello <strong>{{int:config-profile-wiki}}</strong> cunzente a chiunque 'e cagnà, pure senza trasì.\nNu wiki cu <strong>{{int:config-profile-no-anon}}</strong> uffrisse na responsabilità maggiore, ma putesse scuraggià cocche cuntribbutore occasionale.\n\n'O  scenario <strong>{{int:config-profile-fishbowl}}</strong> cunzente l'utente autorizzate 'e cagnà, ma 'o pubbreco putesse vedé 'e paggene vedenno pure tutta quanta 'a cronologgia.\nNu <strong>{{int:config-profile-private}}</strong> cunzente ll'utente autorizzate surtanto 'e se vedé 'e paggene, 'o stesso gruppo 'e putesse cagnà.\n\nMpustaziune 'e deritte utente cchiù cumplesse songo a disposizione aropp'a l'installazione, vedite 'a [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights parte relativa d' 'o manuale].",
        "config-license": "Copyright e licienza:",
        "config-license-none": "Nisciuno piede 'e paggena p' 'a licienza",
        "config-license-cc-by-sa": "Creative Commons Attribuziona-SparteEguale",
        "config-email-sender-help": "Nzèrta l'indirizzo email ca s'avess'ausà comme indirizzo 'e turnata p' 'a posta asciuta.\nChest'è l'indirizzo addò veneno l'errure.\nNu cuofeno 'e server posta vulessero minimo na parte d' 'o nomme dumminio valido.",
        "config-upload-settings": "Immaggene e upload",
        "config-upload-enable": "Premmette 'a carreca 'e file",
-       "config-upload-help": "'E careche 'e file putessero esporre 'e server vuoste a rischie 'e sicurezza. Pe n'avé cchiù nfurmaziune, liggite  [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security 'a seziona 'e sicurezza] int' 'o manuale.\n\nPe' puté appiccià 'a funziona carreca, cagnate 'o modo dint' 'a cartella 'e ll'<code>immaggene</code> sott' ' a cartella rareca MediaWiki accussì facenno ca 'o web server putesse scrivere a into.\nAllora appicciate st'opzione.",
+       "config-upload-help": "'E careche 'e file putessero esporre 'e server vuoste a rischie 'e sicurezza. Pe n'avé cchiù nfurmaziune, liggite  [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security 'a seziona 'e sicurezza] int' 'o manuale.\n\nPe' puté appiccià 'a funziona carreca, cagnate 'o modo dint' 'a cartella 'e ll'<code>immaggene</code> sott' ' a cartella rareca MediaWiki accussì facenno ca 'o web server putesse scrivere a into.\nAllora appicciate st'opzione.",
        "config-upload-deleted": "Cartella p' 'e file scancellate:",
        "config-upload-deleted-help": "Sciglite na cartella addò s'astipassero 'e file scancellate.\nIdealmente a sta cartella nun s'avess'a trasì r' 'a web",
        "config-logo": "URL d\"o logo:",
        "config-logo-help": "'A skin predefinita 'e MediaWiki tene spazion p' 'o logo 'e 135 x 160 pixel ncopp' 'o menu laterale.\nCarreca n'immaggene 'e diminziuna apprupriata e azzecca l'URL ccà.\n\nFosse pussibbele ausà <code>$wgStylePath</code> o <code>$wgScriptPath</code> si 'o logo è relativo a sti percurze. Si nun vulite nu logo, lassate abbacante sta casciulella.",
        "config-instantcommons": "Appiccia Instant Commons",
-       "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons Instant Commons] è na funziunalita ca premmettesse 'e wiki 'ausà immaggene, suone e ati file multimediale ca ve truvate ncopp' 'o sito 'e [//commons.wikimedia.org/ Wikimedia Commons].\nSi chesto vulite fà, MediaWiki vulesse accieso a Internet.\n\nPe n'avé cchiù nfurmaziune ncopp'a sta funziunalità, ncludenno 'e struziune ncopp' 'a configuraziona pe' wiki divierze 'e Wikimedia Commons, fermateve nu poco a stureà [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos 'o manuale].",
+       "config-instantcommons-help": "[https://www.mediawiki.org/wiki/InstantCommons Instant Commons] è na funziunalita ca premmettesse 'e wiki 'ausà immaggene, suone e ati file multimediale ca ve truvate ncopp' 'o sito 'e [https://commons.wikimedia.org/ Wikimedia Commons].\nSi chesto vulite fà, MediaWiki vulesse accieso a Internet.\n\nPe n'avé cchiù nfurmaziune ncopp'a sta funziunalità, ncludenno 'e struziune ncopp' 'a configuraziona pe' wiki divierze 'e Wikimedia Commons, fermateve nu poco a stureà [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos 'o manuale].",
        "config-cc-error": "'O selettore 'e licienze Creative Commons nun mmustaje nisciuno risultato.\nNzertate manualmente 'o nomme d' 'a licienza.",
        "config-cc-again": "Selezziona n'ata vota...",
        "config-cc-not-chosen": "Sciglite quale licienza Creative Commons desiderate e cliccate ncopp' 'a \"proceed\".",
        "config-help": "ajùto",
        "config-help-tooltip": "cliccà pe' 'o spannere",
        "config-nofile": "'O file \"$1\" nun se trova. Forse è stato scancellato?",
-       "config-extension-link": "'O sapevate ch' 'o wiki vuosto suppurtasse 'e [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions estensiune]?\n\nPutite navigà nfra chiste [//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category estensiune pe' categurìa].",
+       "config-extension-link": "'O sapevate ch' 'o wiki vuosto suppurtasse 'e [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions estensiune]?\n\nPutite navigà nfra chiste [https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category estensiune pe' categurìa].",
        "mainpagetext": "<strong>MediaWiki è stato nstallato.</strong>",
-       "mainpagedocfooter": "Iate a cunzultà [//meta.wikimedia.org/wiki/Help:Contents User's Guide] pe' n'avé nfurmaziune ncopp' 'o modo aùso d' 'o software wiki.\n\n== P'accummincià ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Elenco 'e mpustaziune pe' sta configuraziona]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ 'e Mediawiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Elenco 'e nutizie 'e Mediawiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localizzazzione 'e MediaWiki p' 'a lengua vuosta]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Mparate a cumbattere 'o spammo dint' 'a wiki d' 'a vosta]"
+       "mainpagedocfooter": "Iate a cunzultà [https://meta.wikimedia.org/wiki/Help:Contents User's Guide] pe' n'avé nfurmaziune ncopp' 'o modo aùso d' 'o software wiki.\n\n== P'accummincià ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Elenco 'e mpustaziune pe' sta configuraziona]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ 'e Mediawiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Elenco 'e nutizie 'e Mediawiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localizzazzione 'e MediaWiki p' 'a lengua vuosta]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Mparate a cumbattere 'o spammo dint' 'a wiki d' 'a vosta]"
 }
index 51d0afa..29bbb71 100644 (file)
@@ -19,7 +19,7 @@
        "config-localsettings-badkey": "Oppgraderingsnøkkelen du oppga er feil.",
        "config-upgrade-key-missing": "En eksisterende installasjon av MediaWiki er funnet.\nFor å oppgradere denne installasjonen, vær vennlig å legge til følgende linje helt til slutt i din ''<code>LocalSettings.php</code>''-fil:\n\n$1",
        "config-localsettings-incomplete": "Den eksisterende ''<code>LocalSettings.php</code>'' ser ut til å være ufullstendig.\nVariabelen $1 har ingen verdi.\nVær vennlig å endre ''<code>LocalSettings.php</code>'' slik at variabelen får en verdi, og klikk ''{{int:Config-continue}}''.",
-       "config-localsettings-connection-error": "Det ble funnet en feil ved tilknytning av databasen med innstillingene i ''<code>LocalSettings.php</code>'' eller ''<code>AdminSettings.php</code>''. Vær vennlig å rette opp disse innstillingene og prøv igjen.\n\n$1",
+       "config-localsettings-connection-error": "Det ble funnet en feil ved tilknytning av databasen med innstillingene i ''<code>LocalSettings.php</code>'' eller ''<code>LocalSettings.php</code>''. Vær vennlig å rette opp disse innstillingene og prøv igjen.\n\n$1",
        "config-session-error": "Feil under oppstart av økt: $1",
        "config-session-expired": "Dine øktdata ser ut til å ha utløpt.\nØkter er konfigurert for en levetid på $1.\nDu kan øke dette ved å sette <code>session.gc_maxlifetime</code> i php.ini.\nStart installasjonsprosessen på nytt.",
        "config-no-session": "Dine øktdata ble tapt!\nSjekk din php.ini og sørg for at <code>session.save_path</code> er satt til en passende mappe.",
        "config-restart": "Ja, start på nytt",
        "config-welcome": "=== Miljøsjekker ===\nGrunnleggende sjekker utføres for å se om dette miljøet er egnet for en MediaWiki-installasjon.\nDu bør oppgi resultatene fra disse sjekkene om du trenger hjelp under installasjonen.",
        "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": "* [//www.mediawiki.org MediaWiki hjem]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Brukerguide]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Administratorguide]\n* [//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-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-php": "PHP $1 er innstallert.",
        "config-env-hhvm": "HHVM $1 er installert.",
        "config-unicode-using-intl": "Bruker [http://pecl.php.net/intl intl PECL-utvidelsen] for Unicode-normalisering.",
-       "config-unicode-pure-php-warning": "'''Advarsel''': [http://pecl.php.net/intl intl PECL-utvidelsen] er ikke tilgjengelig for å håndtere Unicode-normaliseringen, faller tilbake til en langsommere ren-PHP-implementasjon.\nOm du kjører et nettsted med høy trafikk bør du lese litt om [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode-normalisering].",
-       "config-unicode-update-warning": "'''Advarsel''': Den installerte versjonen av Unicode-normalisereren bruker en eldre versjon av [http://site.icu-project.org/ ICU-prosjektets] bibliotek.\nDu bør [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations oppgradere] om du er bekymret for å bruke Unicode.",
+       "config-unicode-pure-php-warning": "'''Advarsel''': [http://pecl.php.net/intl intl PECL-utvidelsen] er ikke tilgjengelig for å håndtere Unicode-normaliseringen, faller tilbake til en langsommere ren-PHP-implementasjon.\nOm du kjører et nettsted med høy trafikk bør du lese litt om [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode-normalisering].",
+       "config-unicode-update-warning": "'''Advarsel''': Den installerte versjonen av Unicode-normalisereren bruker en eldre versjon av [http://site.icu-project.org/ ICU-prosjektets] bibliotek.\nDu bør [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations oppgradere] om du er bekymret for å bruke Unicode.",
        "config-no-db": "Fant ingen passende databasedriver! Du må installere en databasedriver for PHP.\nFølgende {{PLURAL:$2|databasetype|databasetyper}} støttes: $1\n\nOm du kompilerte PHP selv, rekonfigurer den med en aktivert databaseklient, for eksempel ved å bruke <code>./configure --with-mysql</code>.\nOm du installerte PHP fra en Debian- eller Ubuntu-pakke, må du også installere for eksempel <code>php5-mysql</code>-pakken.",
        "config-outdated-sqlite": "'''Advarsel''': Du har SQLite $1, som er en eldre versjon enn minimumskravet SQLite $2. SQLite vil ikke være tilgjengelig.",
        "config-no-fts3": "'''Advarsel''': SQLite er kompilert uten [//sqlite.org/fts3.html FTS3-modulen], søkefunksjoner vil ikke være tilgjengelig på dette bakstykket.",
-       "config-mbstring": "'''Kritisk: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] er aktiv!'''\nDette alternativet fører til feil og kan ødelegge data på en uforutsigbar måte.\nDu kan ikke installere eller bruke MediaWiki med mindre dette alternativet deaktiveres.",
-       "config-xml-bad": "PHPs XML-modul mangler.\nMediaWiki krever funksjonene i denne modulen og vil ikke virke i denne konfigurasjonen.\nDu må kanskje laste ned php-xml RPM pakken.",
        "config-pcre-old": "'''Alvorlig:''' PCRE $1 eller senere kreves.\nDin PHP-kode er lenket med PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Nærmere informasjon].",
        "config-pcre-no-utf8": "'''Fatal''': PHPs PCRE modul ser ut til å være kompilert uten PCRE_UTF8-støtte.\nMediaWiki krever UTF-8-støtte for å fungere riktig.",
        "config-memory-raised": "PHPs <code>memory_limit</code> er $1, økt til $2.",
        "config-memory-bad": "'''Advarsel:''' PHPs <code>memory_limit</code> er $1.\nDette er sannsynligvis for lavt.\nInstallasjonen kan mislykkes!",
-       "config-ctype": "'''Fatal feil''': PHP må kompileres med støtte for [http://www.php.net/manual/en/ctype.installation.php Ctype-utvidelsen].",
-       "config-iconv": "<strong>Kritisk:</strong> PHP må kompileres med støtte for [http://www.php.net/manual/en/iconv.installation.php iconv-utvidelsen].",
-       "config-json": "'''Alvorlig:''' PHP ble kompilert uten JSON-støtte.\nDu må installere enten PHP JSON-utvidelsen eller [http://pecl.php.net/package/jsonc PECL jsonc]-utvidelsen før du installere MediaWiki.\n* PHP-utvidelsen inngår i Red Hat Enterprise Linux (CentOS) 5 and 6, men må aktiveres i <code>/etc/php.ini</code> eller <code>/etc/php.d/json.ini</code>.\n* Noen Linux-distribusjoner sluppet etter mai 2013 har ikke med PHP-utvidelsen, men har i stedet med PECL-utvidelsen <code>php5-json</code> eller <code>php-pecl-jsonc</code>.",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] er innstallert",
        "config-apc": "[http://www.php.net/apc APC] er innstallert",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] er installert",
-       "config-no-cache": "'''Advarsel:''' Kunne ikke finne [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] eller [http://www.iis.net/download/WinCacheForPhp WinCache].\nObjekthurtiglagring er ikke aktivert.",
        "config-no-cache-apcu": "<strong>Advarsel:</strong> Kunne ikke finne [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] eller [http://www.iis.net/download/WinCacheForPhp WinCache].\nObjekthurtiglagring er ikke aktivert.",
        "config-mod-security": "'''Advarsel''': Din web-tjener har [http://modsecurity.org/ mod_security] påslått. Hvis denne er feilinnstilt, kan det gi problemer for MediaWiki eller annen programvare som tillater brukere å poste vilkårlig innhold.\nSjekk [http://modsecurity.org/documentation/ mod_security-dokumentasjonen] eller ta kontakt med din nettleverandør hvis du opplever tilfeldige feil.",
        "config-diff3-bad": "GNU diff3 ikke funnet.",
@@ -84,7 +78,7 @@
        "config-no-cli-uri": "'''Advarsel''': Ingen <code>--scriptpath</code> er angitt; bruker standard: <code>$1</code>.",
        "config-using-server": "Bruker servernavnet  \"<nowiki>$1</nowiki>\".",
        "config-using-uri": "Bruker server-URL \"<nowiki>$1$2</nowiki>\".",
-       "config-uploads-not-safe": "'''Advarsel:''' Din standardmappe for opplastinger <code>$1</code> er sårbar for kjøring av vilkårlige skript.\nSelv om MediaWiki sjekker alle opplastede filer for sikkerhetstrusler er det sterkt anbefalt å [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security lukke denne sikkerhetssårbarheten] før du aktiverer opplastinger.",
+       "config-uploads-not-safe": "'''Advarsel:''' Din standardmappe for opplastinger <code>$1</code> er sårbar for kjøring av vilkårlige skript.\nSelv om MediaWiki sjekker alle opplastede filer for sikkerhetstrusler er det sterkt anbefalt å [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security lukke denne sikkerhetssårbarheten] før du aktiverer opplastinger.",
        "config-no-cli-uploads-check": "'''Advarsel:''' Din standard-katalog for opplastinger (<code>$1</code>) er ikke kontrollert for sårbarhet overfor vilkårlig skript-kjøring under CLI-installasjonen.",
        "config-brokenlibxml": "Ditt system bruker en kombinasjon av PHP- og libxml2-versjoner som har feil og kan forårsake skjult dataødeleggelse i MediaWiki og andre web-applikasjoner.\nOppgrader til libxml2 2.7.3 eller nyere ([https://bugs.php.net/bug.php?id=45996 Feil-liste for PHP]).\nInstalleringen ble abortert.",
        "config-suhosin-max-value-length": "Suhosin er installert og begrenser GET-parameterlengder til $1 bytes. MediaWiki sin ResourceLoader-komponent klarer å komme rundt denne begrensningen, men med redusert ytelse. Om mulig bør du sette <code>suhosin.get.max_value_length</code> til minst 1024 i <code>php.ini</code>, og sette <code>$wgResourceLoaderMaxQueryLength</code> til samme verdi i <code>LocalSettings.php</code>.",
        "config-db-wiki-help": "Skriv inn brukernavnet og passordet som vil bli brukt til å koble til databasen under normal wikidrift.\nHvis kontoen ikke finnes, og installasjonskontoen har tilstrekkelige privilegier, vil denne brukerkontoen bli opprettet med et minimum av privilegier, tilstrekkelig for å operere wikien.",
        "config-db-prefix": "Databasetabellprefiks:",
        "config-db-prefix-help": "Hvis du trenger å dele en database mellom flere wikier, eller mellom MediaWiki og andre nettapplikasjoner, kan du velge å legge til et prefiks til alle tabellnavnene for å unngå konflikter.\nIkke bruk mellomrom.\n\nDette feltet er vanligvis tomt.",
-       "config-db-charset": "Databasetegnsett",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 binær",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "MySQL 4.0 bakoverkompatibel UTF-8",
-       "config-charset-help": "'''Advarsel:''' Hvis du bruker '''bakoverkompatibel UTF-8''' på MySQL 4.1+, og deretter sikkerhetskopierer databasen med <code>mysqldump</code> kan det ødelegge alle ikke-ASCII tegn og irreversibelt ødelegge dine sikkerhetskopier!\n\nI '''binary mode''' lagrer MediaWiki UTF-8 tekst til databasen i binærfelt.\nDette er mer effektivt enn MySQLs UTF-8 modus og tillater deg å bruke hele spekteret av Unicode-tegn.\nI '''UTF-8 mode''' vil MySQL vite hvilket tegnsett dataene dine er i og kan presentere og konvertere det på en riktig måte,\nmen det vil ikke la deg lagre tegn over «[//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes the Basic Multilingual Plane]».",
        "config-mysql-old": "MySQL $1 eller senere kreves, du har $2.",
        "config-db-port": "Databaseport:",
        "config-db-schema": "Skjema for MediaWiki",
        "config-mysql-charset": "Databasetegnsett:",
        "config-mysql-binary": "Binær",
        "config-mysql-utf8": "UTF-8",
-       "config-mysql-charset-help": "I '''binary mode''' lagrer MediaWiki UTF-8 tekst til databasen i binærfelt.\nDette er mer effektivt enn MySQLs UTF-8 modus og tillater deg å bruke hele spekteret av Unicode-tegn.\n\nI '''UTF-8 mode''' vil MySQL vite hvilket tegnsett dataene dine er i og kan presentere og konvertere det på en riktig måte,\nmen det vil ikke la deg lagre tegn over «[//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes the Basic Multilingual Plane]».",
+       "config-mysql-charset-help": "I '''binary mode''' lagrer MediaWiki UTF-8 tekst til databasen i binærfelt.\nDette er mer effektivt enn MySQLs UTF-8 modus og tillater deg å bruke hele spekteret av Unicode-tegn.\n\nI '''UTF-8 mode''' vil MySQL vite hvilket tegnsett dataene dine er i og kan presentere og konvertere det på en riktig måte,\nmen det vil ikke la deg lagre tegn over «[https://en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes the Basic Multilingual Plane]».",
        "config-mssql-auth": "Autentiseringstype:",
        "config-mssql-install-auth": "Valg autentiseringstypen som skal brukes for å koble til databasen under installeringsprosessen. Hvis du velger «{{int:config-mssql-windowsauth}}», vil påloggingsinformasjonen for brukeren som kjører webtjeneren blir brukt.",
        "config-mssql-web-auth": "Velg autentiseringstype som webtjeneren vil bruke for å koble til databasetjeneren under normal kjøring av wikien.\nHvis du velger «{{int:config-mssql-windowsauth}}», vil påloggingsinformasjonen til brukeren som kjører webtjeneren blir brukt.",
        "config-profile-no-anon": "Kontoopprettelse påkrevd",
        "config-profile-fishbowl": "Kun autoriserte bidragsytere",
        "config-profile-private": "Privat wiki",
-       "config-profile-help": "Wikier fungerer best om du lar så mange mennesker som mulig redigere den.\nI MediaWiki er det enkelt å se på de siste endringene og tilbakestille eventuell skade som er gjort av naive eller ondsinnede brukere.\n\nImidlertid har mange funnet at MediaWiki er nyttig for mange formål, og av og til er det ikke lett å overbevise alle om fordelene med wiki-funksjonaliteten.\nSå du har valget.\n\nEn '''{{int:config-profile-wiki}}''' tillater enhver å redigere, selv uten å logge inn.\nEn wiki med '''{{int:config-profile-no-anon}}''' tilbyr ekstra ansvarlighet, men kan avskrekke tilfeldige bidragsytere.\n\n'''{{int:config-profile-fishbowl}}'''-scenariet tillater godkjente brukere å redigere, mens publikum kan se sider, og også historikken.\nEn '''{{int:config-profile-private}}''' tillater kun godkjente brukere å se sider, der den samme gruppen også får lov til å redigere dem.\n\nMer komplekse konfigurasjoner av brukerrettigheter er tilgjengelige etter installasjonen, se [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights relevant avsnitt i brukerbeskrivelsen].",
+       "config-profile-help": "Wikier fungerer best om du lar så mange mennesker som mulig redigere den.\nI MediaWiki er det enkelt å se på de siste endringene og tilbakestille eventuell skade som er gjort av naive eller ondsinnede brukere.\n\nImidlertid har mange funnet at MediaWiki er nyttig for mange formål, og av og til er det ikke lett å overbevise alle om fordelene med wiki-funksjonaliteten.\nSå du har valget.\n\nEn '''{{int:config-profile-wiki}}''' tillater enhver å redigere, selv uten å logge inn.\nEn wiki med '''{{int:config-profile-no-anon}}''' tilbyr ekstra ansvarlighet, men kan avskrekke tilfeldige bidragsytere.\n\n'''{{int:config-profile-fishbowl}}'''-scenariet tillater godkjente brukere å redigere, mens publikum kan se sider, og også historikken.\nEn '''{{int:config-profile-private}}''' tillater kun godkjente brukere å se sider, der den samme gruppen også får lov til å redigere dem.\n\nMer komplekse konfigurasjoner av brukerrettigheter er tilgjengelige etter installasjonen, se [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights relevant avsnitt i brukerbeskrivelsen].",
        "config-license": "Opphavsrett og lisens:",
        "config-license-none": "Ingen lisensbunntekst",
        "config-license-cc-by-sa": "Creative Commons Navngivelse-DelPåSammeVilkår",
        "config-email-sender-help": "Skriv inn e-postadressen som skal brukes som svar-adresse ved utgående e-post.\nDet er hit returmeldinger vil bli sendt.\nMange e-posttjenere krever at minst domenenavnet må være gyldig.",
        "config-upload-settings": "Bilde- og filopplastinger",
        "config-upload-enable": "Aktiver filopplastinger",
-       "config-upload-help": "Filopplastinger kan potensielt utsette tjeneren din for sikkerhetsrisikoer.\nFor mer informasjon, les [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security sikkerhetsseksjonen] i manualen.\n\nFor å aktivere filopplastinger, endre modusen i <code>images</code>-undermappen i MediaWikis rotmappe slik at nettjeneren kan skrive til den.\nAktiver så dette alternativet.",
+       "config-upload-help": "Filopplastinger kan potensielt utsette tjeneren din for sikkerhetsrisikoer.\nFor mer informasjon, les [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security sikkerhetsseksjonen] i manualen.\n\nFor å aktivere filopplastinger, endre modusen i <code>images</code>-undermappen i MediaWikis rotmappe slik at nettjeneren kan skrive til den.\nAktiver så dette alternativet.",
        "config-upload-deleted": "Mappe for slettede filer:",
        "config-upload-deleted-help": "Velg en mappe for å arkivere slettede filer.\nIdeelt burde ikke denne være tilgjengelig for nettet.",
        "config-logo": "Logo-URL:",
        "config-logo-help": "MediaWikis standarddrakt har satt av plass til en 135x160 pikslers logo i øvre venstre hjørne av sidepanelet.\nLast opp et bilde i passende størrelse og skriv inn nettadressen her.\n\nDu kan bruke code>$wgStylePath</code> eller <code>$wgScriptPath</code> hvis logoen er relativ til disse stiene.\n\nHvis du ikke ønsker noen logo, la boksen være tom.",
        "config-instantcommons": "Aktiver Instant Commons",
-       "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons Instant Commons] er en funksjon som gjør det mulig for wikier å bruke bilder, lyder og andre media funnet på nettstedet [//commons.wikimedia.org/ Wikimedia Commons].\nFor å gjøre dette krever MediaWiki tilgang til internett.\n\nFor mer informasjon om denne funksjonen, inklusive instruksjoner om hvordan man setter opp dette for andre wikier enn Wikimedia Commons, konsulter [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos manualen].",
+       "config-instantcommons-help": "[https://www.mediawiki.org/wiki/InstantCommons Instant Commons] er en funksjon som gjør det mulig for wikier å bruke bilder, lyder og andre media funnet på nettstedet [https://commons.wikimedia.org/ Wikimedia Commons].\nFor å gjøre dette krever MediaWiki tilgang til internett.\n\nFor mer informasjon om denne funksjonen, inklusive instruksjoner om hvordan man setter opp dette for andre wikier enn Wikimedia Commons, konsulter [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos manualen].",
        "config-cc-error": "Lisensvelgeren for Creative Commons ga ikke noe resultat.\nLegg inn lisensnavnet manuelt.",
        "config-cc-again": "Velg igjen...",
        "config-cc-not-chosen": "Velg hvilken Creative Commons-lisens du ønsker og klikk «proceed».",
        "config-help": "hjelp",
        "config-help-tooltip": "klikk for å utvide",
        "config-nofile": "Filen \"$1\" ble ikke funnet. Kan den være blitt slettet?",
-       "config-extension-link": "Visste du at wikien din kan brukes sammen med en mengde [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions utvidelser]?\n\nDu kan sjekke gjennom [//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category utvidelser per kategori] eller [//www.mediawiki.org/wiki/Extension_Matrix utvidelsesmatrisen] for å se den komplette listen av utvidelser.",
+       "config-extension-link": "Visste du at wikien din kan brukes sammen med en mengde [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions utvidelser]?\n\nDu kan sjekke gjennom [https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category utvidelser per kategori] eller [https://www.mediawiki.org/wiki/Extension_Matrix utvidelsesmatrisen] for å se den komplette listen av utvidelser.",
        "mainpagetext": "'''MediaWiki-programvaren er nå installert.'''",
-       "mainpagedocfooter": "Sjekk [//meta.wikimedia.org/wiki/Help:Contents brukerveiledningen] for å få informasjon om hvordan du bruker wiki-programvaren.\n\n==Hvordan komme igang==\n*[//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Innstillingsliste]\n*[//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Ofte stilte spørsmål om MediaWiki]\n*[https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki e-postliste]\n*[//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Tilpass MediaWiki for ditt språk]\n*[//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Lær deg å beskytte deg mot spam på wikien din]"
+       "mainpagedocfooter": "Sjekk [https://meta.wikimedia.org/wiki/Help:Contents brukerveiledningen] for å få informasjon om hvordan du bruker wiki-programvaren.\n\n==Hvordan komme igang==\n*[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Innstillingsliste]\n*[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Ofte stilte spørsmål om MediaWiki]\n*[https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki e-postliste]\n*[https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Tilpass MediaWiki for ditt språk]\n*[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Lær deg å beskytte deg mot spam på wikien din]"
 }
index d9a0026..bc3b953 100644 (file)
@@ -6,5 +6,5 @@
        },
        "config-help": "hulpe",
        "mainpagetext": "'''’t Installeren van de MediaWiki programmatuur is succesvol.'''",
-       "mainpagedocfooter": "Bekiek de [//meta.wikimedia.org/wiki/Help:Contents haandleiding] veur informasie over t gebruuk van de wikiprogrammatuur.\n\n== Meer hulpe ==\n* [//www.mediawiki.org/wiki/Help:Configuration_settings Lieste mit instellingen]\n* [//www.mediawiki.org/wiki/Help:FAQ MediaWiki-vragen die vake esteld wörden]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki-postlieste veur nieje versies]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Maak MediaWiki beschikbaor in joew taal]"
+       "mainpagedocfooter": "Bekiek de [https://meta.wikimedia.org/wiki/Help:Contents haandleiding] veur informasie over t gebruuk van de wikiprogrammatuur.\n\n== Meer hulpe ==\n* [https://www.mediawiki.org/wiki/Help:Configuration_settings Lieste mit instellingen]\n* [https://www.mediawiki.org/wiki/Help:FAQ MediaWiki-vragen die vake esteld wörden]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki-postlieste veur nieje versies]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Maak MediaWiki beschikbaor in joew taal]"
 }
index bc71d93..01ed68a 100644 (file)
@@ -10,5 +10,5 @@
        "config-admin-password": "Passwoord:",
        "config-help": "Hülp",
        "mainpagetext": "'''De MediaWiki-Software is mit Spood installeert worrn.'''",
-       "mainpagedocfooter": "Kiek de [//meta.wikimedia.org/wiki/MediaWiki_localisation Dokumentatschoon för dat Anpassen vun de Brukerböversiet]\nun dat [//meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide Brukerhandbook] för Hülp to de Bruuk un Konfiguratschoon."
+       "mainpagedocfooter": "Kiek de [https://meta.wikimedia.org/wiki/MediaWiki_localisation Dokumentatschoon för dat Anpassen vun de Brukerböversiet]\nun dat [https://meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide Brukerhandbook] för Hülp to de Bruuk un Konfiguratschoon."
 }
index f602ffe..fca2977 100644 (file)
@@ -81,5 +81,5 @@
        "config-help": "सहायता",
        "config-help-tooltip": "विस्तार गर्न क्लीक गर्नुहोस्",
        "mainpagetext": "'''मीडिया सफलतापूर्वक कम्प्यूटरमा स्थापित भयो ।'''",
-       "mainpagedocfooter": " विकी अनुप्रयोग कसरी प्रयोग गर्ने भन्ने जानकारीको लागि  [//meta.wikimedia.org/wiki/Help:Contents प्रयोगकर्ता सहायता] हेर्नुहोस्\n\n== सुरू गर्नको लागि  ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings विन्यास सेटिङ्ग सूची]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ मेडियाविकि सामान्य प्रश्नका उत्तरहरु]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce मेडियाविकि सुचना मेलिङ्ग सूची]"
+       "mainpagedocfooter": " विकी अनुप्रयोग कसरी प्रयोग गर्ने भन्ने जानकारीको लागि  [https://meta.wikimedia.org/wiki/Help:Contents प्रयोगकर्ता सहायता] हेर्नुहोस्\n\n== सुरू गर्नको लागि  ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings विन्यास सेटिङ्ग सूची]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ मेडियाविकि सामान्य प्रश्नका उत्तरहरु]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce मेडियाविकि सुचना मेलिङ्ग सूची]"
 }
index 8b352de..299b3b1 100644 (file)
        "config-copyright": "=== Auteursrechten en voorwaarden ===\n\n$1\n\nDit programma is vrije software. Je mag het verder verspreiden en/of aanpassen in overeenstemming met de voorwaarden van de GNU General Public License zoals uitgegeven door de Free Software Foundation; ofwel versie 2 van de Licentie of - naar eigen keuze - enige latere versie.\n\nDit programma wordt verspreid in de hoop dat het nuttig is, maar '''zonder enige garantie''', zelfs zonder de impliciete garantie van '''verkoopbaarheid''' of '''geschiktheid voor een bepaald doel'''.\nZie de GNU General Public License voor meer informatie.\n\nSamen met dit programma hoor je een <doclink href=Copying>exemplaar van de GNU General Public License</doclink> ontvangen te hebben; zo niet, schrijf dan aan de Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, Verenigde Staten. Of [http://www.gnu.org/copyleft/gpl.html lees de licentie online].",
        "config-env-good": "De omgeving is gecontroleerd.\nJe kunt MediaWiki installeren.",
        "config-env-bad": "De omgeving is gecontroleerd.\nJe kunt MediaWiki niet installeren.",
-       "config-unicode-pure-php-warning": "'''Waarschuwing''': de [http://pecl.php.net/intl PECL-extensie intl] is niet beschikbaar om de Unicodenormalisatie af te handelen en daarom wordt de langzame PHP-implementatie gebruikt.\nAls je MediaWiki voor een website met veel verkeer installeert, lees je dan in over [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicodenormalisatie].",
-       "config-unicode-update-warning": "'''Waarschuwing''': de geïnstalleerde versie van de Unicodenormalisatiewrapper maakt gebruik van een oudere versie van [http://site.icu-project.org/ de bibliotheek van het ICU-project].\nJe moet [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations bijwerken] als Unicode voor jou van belang is.",
+       "config-unicode-pure-php-warning": "'''Waarschuwing''': de [http://pecl.php.net/intl PECL-extensie intl] is niet beschikbaar om de Unicodenormalisatie af te handelen en daarom wordt de langzame PHP-implementatie gebruikt.\nAls je MediaWiki voor een website met veel verkeer installeert, lees je dan in over [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicodenormalisatie].",
+       "config-unicode-update-warning": "'''Waarschuwing''': de geïnstalleerde versie van de Unicodenormalisatiewrapper maakt gebruik van een oudere versie van [http://site.icu-project.org/ de bibliotheek van het ICU-project].\nJe moet [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations bijwerken] als Unicode voor jou van belang is.",
        "config-no-db": "Het was niet mogelijk een geschikte databasedriver te vinden voor PHP.\nJe moet een databasedriver installeren voor PHP.\nDe volgende databases worden ondersteund: $1.\n\nAls je op een gedeelde omgeving zit, vraag dan aan je hostingprovider een geschikte databasedriver te installeren.\nAls je PHP zelf hebt gecompileerd, wijzig dan je instellingen zodat een databasedriver wordt geactiveerd, bijvoorbeeld via <code>./configure --with-mysql</code>.\nAls je PHP hebt geïnstalleerd via een Debian- of Ubuntu-package, installeer dan ook de module php5-mysql.",
        "config-outdated-sqlite": "''' Waarschuwing:''' je gebruikt SQLite $1. SQLite is niet beschikbaar omdat de minimaal vereiste versie $2 is.",
-       "config-magic-quotes-runtime": "'''Onherstelbare fout: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] is actief!'''\nDeze instelling zorgt voor gegevenscorruptie.\nJe kunt MediaWiki niet installeren tenzij deze instelling is uitgeschakeld.",
-       "config-magic-quotes-sybase": "'''Onherstelbare fout: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_sybase] is actief!'''\nDeze instelling zorgt voor gegevenscorruptie.\nJe kunt MediaWiki niet installeren tenzij deze instelling is uitgeschakeld.",
-       "config-mbstring": "'''Onherstelbare fout: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] is actief!'''\nDeze instelling zorgt voor gegevenscorruptie.\nJe kunt MediaWiki niet installeren tenzij deze instelling is uitgeschakeld.",
-       "config-xml-bad": "De XML-module van PHP ontbreekt.\nMediaWiki heeft de functies van deze module nodig en werkt niet zonder deze module.\nAls je gebruik maakt van Mandrake, installeer dan het package php-xml.",
        "config-mod-security": "'''Waarschuwing:''' je webserver heeft de module [http://modsecurity.org/ mod_security] ingeschakeld. Als deze onjuist is ingesteld, kan dit problemen geven in combinatie met MediaWiki of andere software die gebruikers in staat stelt willekeurige inhoud te posten.\nLees de [http://modsecurity.org/documentation/ documentatie over mod_security] of neem contact op met de helpdesk van je provider als je tegen problemen aanloopt.",
        "config-imagemagick": "ImageMagick aangetroffen: <code>$1</code>.\nHet aanmaken van miniaturen van afbeeldingen wordt ingeschakeld als je uploaden inschakelt.",
        "config-gd": "Ingebouwde GD grafische bibliotheek aangetroffen.\nHet aanmaken van miniaturen van afbeeldingen wordt ingeschakeld als je uploaden inschakelt.",
-       "config-uploads-not-safe": "'''Waarschuwing:''' je uploadmap <code>$1</code> kan gebruikt worden voor het arbitrair uitvoeren van scripts.\nHoewel MediaWiki alle toegevoegde bestanden controleert op bedreigingen, is het zeer aan te bevelen het [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security beveiligingslek te verhelpen] alvorens uploads in te schakelen.",
+       "config-uploads-not-safe": "'''Waarschuwing:''' je uploadmap <code>$1</code> kan gebruikt worden voor het arbitrair uitvoeren van scripts.\nHoewel MediaWiki alle toegevoegde bestanden controleert op bedreigingen, is het zeer aan te bevelen het [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security beveiligingslek te verhelpen] alvorens uploads in te schakelen.",
        "config-no-cli-uploads-check": "''Waarschuwing:'' je standaardmap voor uploads (<code>$1</code>) wordt niet gecontroleerd op kwetsbaarheden voor het uitvoeren van willekeurige scripts gedurende de CLI-installatie.",
-       "config-brokenlibxml": "Je systeem heeft een combinatie van PHP- en libxml2-versies geïnstalleerd die is foutgevoelig is en kan leiden tot onzichtbare beschadiging van gegevens in MediaWiki en andere webapplicaties.\nUpgrade naar PHP 5.2.9 of hoger en libxml2 2.7.3 of hoger([//bugs.php.net/bug.php?id=45996 bij PHP gerapporteerde fout]).\nDe installatie wordt afgebroken.",
+       "config-brokenlibxml": "Je systeem heeft een combinatie van PHP- en libxml2-versies geïnstalleerd die is foutgevoelig is en kan leiden tot onzichtbare beschadiging van gegevens in MediaWiki en andere webapplicaties.\nUpgrade naar PHP 5.2.9 of hoger en libxml2 2.7.3 of hoger([https://bugs.php.net/bug.php?id=45996 bij PHP gerapporteerde fout]).\nDe installatie wordt afgebroken.",
        "config-db-host-help": "Als je databaseserver een andere server is, voer dan de hostnaam of het IP-adres hier in.\n\nAls je gebruik maakt van gedeelde webhosting, hoort je provider je de juiste hostnaam te hebben verstrekt.\n\nAls je MediaWiki op een Windowsserver installeert en MySQL gebruikt, dan werkt \"localhost\" mogelijk niet als servernaam.\nAls het inderdaad niet werkt, probeer dan \"127.0.0.1\" te gebruiken als lokaal IP-adres.\n\nAls je PostgreSQL gebruikt, laat dit veld dan leeg om via een Unix-socket te verbinden.",
        "config-db-host-oracle-help": "Voer een geldige [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm Local Connect Name] in; een tnsnames.ora-bestand moet zichtbaar zijn voor deze installatie.<br />Als je gebruik maakt van clientlibraries 10g of een latere versie, kan je ook gebruik maken van de naamgevingsmethode [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm Easy Connect].",
        "config-db-name-help": "Kies een naam die je wiki identificeert.\nEr mogen geen spaties gebruikt worden.\nAls je gebruik maakt van gedeelde webhosting, dan hoort je provider ofwel jou een te gebruiken databasenaam gegeven te hebben, of je aangegeven te hebben hoe je databases kunt aanmaken.",
        "config-db-account-oracle-warn": "Er zijn drie ondersteunde scenario's voor het installeren van Oracle als databasebackend:\n\nAls je een databasegebruiker wilt aanmaken als onderdeel van het installatieproces, geef dan de gegevens op van een databasegebruiker in met de rol SYSDBA voor de installatie en voer de gewenste aanmeldgegevens in voor de gebruiker met webtoegang. Je kunt ook de gebruiker met webtoegang handmatig aanmaken en alleen van die gebruiker de aanmeldgegevens opgeven als deze de vereiste rechten heeft om schemaobjecten aan te maken. Als laatste is het mogelijk om aanmeldgegevens van twee verschillende gebruikers op te geven; een met de rechten om schemaobjecten aan te maken, en een met alleen webtoegang.\n\nEen script voor het aanmaken van een gebruiker met de vereiste rechten is te vinden in de map \"maintenance/oracle/\" van deze installatie. Onthoud dat het gebruiken van een gebruiker met beperkte rechten alle mogelijkheden om beheerscripts uit te voeren met de standaard gebruiker onmogelijk maakt.",
        "config-db-prefix-help": "Als je een database moet gebruiken voor meerdere wiki's, of voor MediaWiki en een andere toepassing, dan kan je ervoor kiezen om een voorvoegsel toe te voegen aan de tabelnamen om conflicten te voorkomen.\nGebruik geen spaties.\n\nDit veld wordt meestal leeg gelaten.",
-       "config-charset-help": "'''Waarschuwing:''' als je '''achterwaarts compatibel met UTF-8''' gebruikt met MySQL 4.1+ en een back-up van de database maakt met <code>mysqldump</code>, dan kunnen alle niet-ASCII-tekens in je back-ups onherstelbaar beschadigd raken.\n\nIn '''binaire modus''' slaat MediaWiki tekst in UTF-8 op in binaire databasevelden.\nDit is efficiënter dan de UTF-8-modus van MySQL en stelt je in staat de volledige reeks Unicode-tekens te gebruiken.\nIn '''UTF-8-modus''' kent MySQL de tekenset van je gegevens en kan de databaseserver ze juist weergeven en converteren.\nHet is dan niet mogelijk tekens op te slaan die de \"[//nl.wikipedia.org/wiki/Lijst_van_Unicode-subbereiken#Basic_Multilingual_Plane Basic Multilingual Plane]\" te boven gaan.",
        "config-mysql-old": "Je moet MySQL $1 of later gebruiken.\nJij gebruikt $2.",
        "config-db-schema-help": "Dit schema klopt meestal.\nWijzig het alleen als je weet dat dit nodig is.",
        "config-sqlite-dir-help": "SQLite slaat alle gegevens op in een enkel bestand.\n\nDe map die je opgeeft moet beschrijfbaar zijn voor de webserver tijdens de installatie.\n\nDeze mag '''niet toegankelijk''' zijn via het web en het bestand mag dus niet tussen de PHP-bestanden staan.\n\nHet installatieprogramma schrijft het bestand <code>.htaccess</code> weg met het databasebestand, maar als dat niet werkt kan iemand zich toegang tot het ruwe databasebestand verschaffen.\nOok de gebruikersgegevens (e-mailadressen, wachtwoordhashes) en verwijderde versies en overige gegevens met beperkte toegang via MediaWiki zijn dan onbeschermd.\n\nOverweeg om de database op een totaal andere plaats neer te zetten, bijvoorbeeld in <code>/var/lib/mediawiki/yourwiki</code>.",
@@ -49,7 +44,7 @@
        "config-upgrade-done-no-regenerate": "Het bijwerken is afgerond.\n\nJe kunt nu [$1 je wiki gebruiken].",
        "config-db-web-no-create-privs": "De gebruiker die je hebt opgegeven voor de installatie heeft niet voldoende rechten om een gebruiker aan te maken.\nDe gebruiker die je hier opgeeft moet al bestaan.",
        "config-mysql-myisam-dep": "'''Waarschuwing''': je hebt MyISAM geselecteerd als opslagengine voor MySQL. Dit is niet aan te raden voor MediaWiki omdat:\n* het nauwelijks ondersteuning biedt voor gebruik door meerdere gebruikers tegelijkertijd door het locken van tabellen;\n* het meer vatbaar is voor corruptie dan andere engines;\n* de code van MediaWiki niet alstijd omgaat met MyISAM zoals dat zou moeten.\n\nAls je installatie van MySQL InnoDB ondersteunt, gebruik dat dan vooral.\nAls je installatie van MySQL geen ondersteuning heeft voor InnoDB, denk dan na over upgraden.",
-       "config-mysql-charset-help": "In '''binaire modus''' slaat MediaWiki tekst in UTF-8 op in binaire databasevelden.\nDit is efficiënter dan de UTF-8-modus van MySQL en stelt je in staat de volledige reeks Unicodetekens te gebruiken.\n\nIn '''UTF-8-modus''' kent MySQL de tekenset van je gegevens en kan de databaseserver ze juist weergeven en converteren.\nHet is dat niet mogelijk tekens op te slaan die de \"[//nl.wikipedia.org/wiki/Lijst_van_Unicode-subbereiken#Basic_Multilingual_Plane Basic Multilingual Plane]\" te boven gaan.",
+       "config-mysql-charset-help": "In '''binaire modus''' slaat MediaWiki tekst in UTF-8 op in binaire databasevelden.\nDit is efficiënter dan de UTF-8-modus van MySQL en stelt je in staat de volledige reeks Unicodetekens te gebruiken.\n\nIn '''UTF-8-modus''' kent MySQL de tekenset van je gegevens en kan de databaseserver ze juist weergeven en converteren.\nHet is dat niet mogelijk tekens op te slaan die de \"[https://nl.wikipedia.org/wiki/Lijst_van_Unicode-subbereiken#Basic_Multilingual_Plane Basic Multilingual Plane]\" te boven gaan.",
        "config-project-namespace-help": "In het kielzog van Wikipedia beheren veel wiki's hun beleidspagina's apart van hun inhoudelijke pagina's in een \"'''projectnaamruimte'''\".\nAlle paginanamen in deze naamruimte beginnen met een bepaald voorvoegsel dat je hier kunt opgeven.\nDit voorvoegsel wordt meestal afgeleid van de naam van de wiki, maar het kan geen bijzondere tekens bevatten als \"#\" of \":\".",
        "config-admin-name": "Je naam:",
        "config-admin-password-mismatch": "De twee door jou ingevoerde wachtwoorden komen niet overeen.",
        "config-subscribe-help": "Dit is een mailinglijst met een laag volume voor aankondigingen van nieuwe versies, inclusief belangrijke aankondigingen met betrekking tot beveiliging.\nAbonneer jezelf erop en werk je MediaWiki-installatie bij als er nieuwe versies uitkomen.",
        "config-subscribe-noemail": "Je hebt geprobeerd je te abonneren op de mailinglijst voor release-aankondigingen zonder een e-mailadres op te geven.\nGeef een e-mailadres op als je je wilt abonneren op de mailinglijst.",
        "config-almost-done": "Je bent bijna klaar!\nAls je wilt kan je de overige instellingen overslaan en de wiki nu installeren.",
-       "config-profile-help": "Wiki's werken het beste als ze door zoveel mogelijk gebruikers worden bewerkt.\nIn MediaWiki is het eenvoudig om de recente wijzigingen te controleren en eventuele foutieve of kwaadwillende bewerkingen terug te draaien.\n\nDaarnaast vinden velen MediaWiki goed inzetbaar in vele andere rollen, en soms is het niet handig om helemaal \"op de wikimanier\" te werken.\nDaarom biedt dit installatieprogramma je de volgende keuzes voor de basisinstelling van gebruikersvrijheden:\n\nEen '''{{int:config-profile-wiki}}''' staat iedereen toe te bewerken, zonder zelfs aan te melden.\nEen wiki met '''{{int:config-profile-no-anon}}\" biedt extra verantwoordelijkheid, maar kan afschrikken toevallige gebruikers afschrikken.\n\nHet scenario '''{{int:config-profile-fishbowl}}''' laat gebruikers waarvoor dat is ingesteld bewerkt, maar andere gebruikers kunnen alleen pagina's bekijken, inclusief de bewerkingsgeschiedenis.\nIn een '''{{int:config-profile-private}}''' kunnen alleen goedgekeurde gebruikers pagina's bekijken en bewerken.\n\nMeer complexe instellingen voor gebruikersrechten zijn te maken na de installatie; hierover is meer te lezen in de [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights handleiding].",
+       "config-profile-help": "Wiki's werken het beste als ze door zoveel mogelijk gebruikers worden bewerkt.\nIn MediaWiki is het eenvoudig om de recente wijzigingen te controleren en eventuele foutieve of kwaadwillende bewerkingen terug te draaien.\n\nDaarnaast vinden velen MediaWiki goed inzetbaar in vele andere rollen, en soms is het niet handig om helemaal \"op de wikimanier\" te werken.\nDaarom biedt dit installatieprogramma je de volgende keuzes voor de basisinstelling van gebruikersvrijheden:\n\nEen '''{{int:config-profile-wiki}}''' staat iedereen toe te bewerken, zonder zelfs aan te melden.\nEen wiki met '''{{int:config-profile-no-anon}}\" biedt extra verantwoordelijkheid, maar kan afschrikken toevallige gebruikers afschrikken.\n\nHet scenario '''{{int:config-profile-fishbowl}}''' laat gebruikers waarvoor dat is ingesteld bewerkt, maar andere gebruikers kunnen alleen pagina's bekijken, inclusief de bewerkingsgeschiedenis.\nIn een '''{{int:config-profile-private}}''' kunnen alleen goedgekeurde gebruikers pagina's bekijken en bewerken.\n\nMeer complexe instellingen voor gebruikersrechten zijn te maken na de installatie; hierover is meer te lezen in de [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights handleiding].",
        "config-license-help": "In veel openbare wiki's zijn alle bijdragen beschikbaar onder een [http://freedomdefined.org/Definition vrije licentie].\nDit helpt bij het creëren van een gevoel van gemeenschappelijk eigendom en stimuleert bijdragen op lange termijn.\nDit is over het algemeen niet nodig is voor een particuliere of zakelijke wiki.\n\nAls je teksten uit Wikipedia wilt kunnen gebruiken en je wilt het mogelijk maken teksten uit je wiki naar Wikipedia te kopiëren, kies dan de licentie '''Creative Commons Naamsvermelding-Gelijk delen'''.\n\nDe GNU Free Documentation License is de oude licentie voor inhoud uit Wikipedia.\nDit is nog steeds een geldige licentie, maar deze licentie is lastig te begrijpen.\nHet is ook lastig inhoud te hergebruiken onder de GFDL.",
        "config-enable-email-help": "Als je wilt dat e-mailen mogelijk is, dan moeten de [http://www.php.net/manual/en/mail.configuration.php e-mailinstellingen van PHP] correct zijn.\nAls je niet wilt dat e-mailen mogelijk is, dan kan je de instellingen hier uitschakelen.",
-       "config-upload-help": "Het toestaan van het uploaden van bestanden stelt je server mogelijk bloot aan beveiligingsrisico's.\nEr is meer [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security informatie over beveiliging] beschikbaar in de handleiding.\n\nOm het bestandsuploads mogelijk te maken kan je de rechten op de submap <code>images</code> onder de hoofdmap van MediaWiki aanpassen, zodat de webserver erin kan schrijven.\nDaarmee wordt deze functie ingeschakeld.",
+       "config-upload-help": "Het toestaan van het uploaden van bestanden stelt je server mogelijk bloot aan beveiligingsrisico's.\nEr is meer [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security informatie over beveiliging] beschikbaar in de handleiding.\n\nOm het bestandsuploads mogelijk te maken kan je de rechten op de submap <code>images</code> onder de hoofdmap van MediaWiki aanpassen, zodat de webserver erin kan schrijven.\nDaarmee wordt deze functie ingeschakeld.",
        "config-logo-help": "Het standaarduiterlijk van MediaWiki bevat ruimte voor een logo van 135x160 pixels boven het menu.\nUpload een afbeelding met de juiste afmetingen en voer de URL hier in.\n\nAls je geen logo wilt gebruiken, kan je dit veld leeg laten.",
        "config-cc-not-chosen": "Kies de Creative Commonslicentie die je wilt gebruiken en klik op \"proceed\".",
        "config-memcache-needservers": "Je hebt Memcached geselecteerd als je cache, maar je hebt geen servers opgegeven.",
@@ -75,5 +70,5 @@
        "config-pg-not-in-role": "De gebruiker die je hebt opgegeven voor de webgebruiker bestaat al.\nDe gebruiker die je hebt opgegeven voor installatie is geen superuser en geen lid van de rol van de webgebruiker, en kan het dus geen objecten aanmaken die van de webgebruiker zijn.\n\nMediaWiki vereist momenteel dat de tabellen van de webgebruiker zijn. Geef een andere webgebruikersnaam op, of klik op \"terug\" en geef een gebruiker op die voldoende installatierechten heeft.",
        "config-install-user-missing-create": "De opgegeven gebruiker \"$1\" bestaat niet.\nKlik op \"registreren\" onderaan als je de gebruiker wilt aanmaken.",
        "config-install-done": "'''Gefeliciteerd!'''\nJe hebt MediaWiki met geïnstalleerd.\n\nHet installatieprogramma heeft het bestand <code>LocalSettings.php</code> aangemaakt.\nDit bevat al je instellingen.\n\nJe moet het bestand downloaden en in de hoofdmap van uw wikiinstallatie plaatsten; in dezelfde map als index.php.\nDe download moet je automatisch zijn aangeboden.\n\nAls de download niet is aangeboden of als je de download hebt geannuleerd, dan kan je de download opnieuw starten door op de onderstaande koppeling te klikken:\n\n$3\n\n'''Let op''': als je dit niet nu doet, dan het is bestand als u later de installatieprocedure afsluit zonder het bestand te downloaden niet meer beschikbaar.\n\nNa het plaatsen van het bestand met instellingen kan je '''[$2 je wiki betreden]'''.",
-       "mainpagedocfooter": "Raadpleeg de [//meta.wikimedia.org/wiki/Help:Contents Inhoudsopgave handleiding] voor informatie over het gebruik van de wikisoftware.\n\n== Meer hulp over MediaWiki ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lijst met instellingen]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Veelgestelde vragen (FAQ)]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailinglijst voor aankondigingen van nieuwe versies]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Maak MediaWiki beschikbaar in jouw taal]"
+       "mainpagedocfooter": "Raadpleeg de [https://meta.wikimedia.org/wiki/Help:Contents Inhoudsopgave handleiding] voor informatie over het gebruik van de wikisoftware.\n\n== Meer hulp over MediaWiki ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lijst met instellingen]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Veelgestelde vragen (FAQ)]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailinglijst voor aankondigingen van nieuwe versies]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Maak MediaWiki beschikbaar in jouw taal]"
 }
index 992107f..78649ce 100644 (file)
        "config-restart": "Ja, opnieuw starten",
        "config-welcome": "=== Controle omgeving ===\nEr worden een aantal basiscontroles uitgevoerd met als doel vast te stellen of deze omgeving geschikt is voor een installatie van MediaWiki.\nLever deze gegevens aan als u ondersteuning vraagt bij de installatie.",
        "config-copyright": "=== Auteursrechten en voorwaarden ===\n\n$1\n\nDit programma is vrije software. U mag het verder verspreiden en/of aanpassen in overeenstemming met de voorwaarden van de GNU General Public License zoals uitgegeven door de Free Software Foundation; ofwel versie 2 van de Licentie of - naar uw keuze - enige latere versie.\n\nDit programma wordt verspreid in de hoop dat het nuttig is, maar '''zonder enige garantie''', zelfs zonder de impliciete garantie van '''verkoopbaarheid''' of '''geschiktheid voor een bepaald doel'''.\nZie de GNU General Public License voor meer informatie.\n\nSamen met dit programma hoort u een <doclink href=Copying>exemplaar van de GNU General Public License</doclink> ontvangen te hebben; zo niet, schrijf dan aan de Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, Verenigde Staten. Of [http://www.gnu.org/copyleft/gpl.html lees de licentie online].",
-       "config-sidebar": "* [//www.mediawiki.org MediaWiki thuispagina]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Gebruikershandleiding] (Engelstalig)\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Beheerdershandleiding] (Engelstalig)\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Veelgestelde vragen] (Engelstalig)\n----\n* <doclink href=Readme>Leesmij</doclink> (Engelstalig)\n* <doclink href=ReleaseNotes>Release notes</doclink> (Engelstalig)\n* <doclink href=Copying>Kopiëren</doclink> (Engelstalig)\n* <doclink href=UpgradeDoc>Versie bijwerken</doclink> (Engelstalig)",
+       "config-sidebar": "* [https://www.mediawiki.org MediaWiki thuispagina]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Gebruikershandleiding] (Engelstalig)\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Beheerdershandleiding] (Engelstalig)\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Veelgestelde vragen] (Engelstalig)\n----\n* <doclink href=Readme>Leesmij</doclink> (Engelstalig)\n* <doclink href=ReleaseNotes>Release notes</doclink> (Engelstalig)\n* <doclink href=Copying>Kopiëren</doclink> (Engelstalig)\n* <doclink href=UpgradeDoc>Versie bijwerken</doclink> (Engelstalig)",
        "config-env-good": "De omgeving is gecontroleerd.\nU kunt MediaWiki installeren.",
        "config-env-bad": "De omgeving is gecontroleerd.\nU kunt MediaWiki niet installeren.",
        "config-env-php": "PHP $1 is op dit moment geïnstalleerd.",
        "config-env-hhvm": "HHVM $1 is geïnstalleerd.",
        "config-unicode-using-intl": "Voor Unicode-normalisatie wordt de [http://pecl.php.net/intl PECL-extensie intl] gebruikt.",
-       "config-unicode-pure-php-warning": "<strong>Waarschuwing:</strong> de [http://pecl.php.net/intl PECL-extensie intl] is niet beschikbaar om de Unicodenormalisatie af te handelen en daarom wordt de langzamere PHP-implementatie gebruikt.\nAls u MediaWiki voor een website met veel verkeer installeert, lees u dan in over [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicodenormalisatie].",
-       "config-unicode-update-warning": "<strong>Waarschuwing:</strong> de geïnstalleerde versie van de Unicodenormalisatiewrapper maakt gebruik van een oudere versie van [http://site.icu-project.org/ de bibliotheek van het ICU-project].\nU moet [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations bijwerken] als Unicode voor u van belang is.",
+       "config-unicode-pure-php-warning": "<strong>Waarschuwing:</strong> de [http://pecl.php.net/intl PECL-extensie intl] is niet beschikbaar om de Unicodenormalisatie af te handelen en daarom wordt de langzamere PHP-implementatie gebruikt.\nAls u MediaWiki voor een website met veel verkeer installeert, lees u dan in over [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicodenormalisatie].",
+       "config-unicode-update-warning": "<strong>Waarschuwing:</strong> de geïnstalleerde versie van de Unicodenormalisatiewrapper maakt gebruik van een oudere versie van [http://site.icu-project.org/ de bibliotheek van het ICU-project].\nU moet [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations bijwerken] als Unicode voor u van belang is.",
        "config-no-db": "Het was niet mogelijk een geschikte databasedriver te vinden voor PHP! U moet een databasedriver installeren voor PHP.\n{{PLURAL:$2|Het volgende databasetype wordt|De volgende databasetypes worden}} ondersteund: $1.\n\nAls u PHP zelf hebt gecompileerd, wijzig dan uw instellingen zodat een databasedriver wordt geactiveerd, bijvoorbeeld via <code>./configure --with-mysqli</code>.\nAls u PHP hebt geïnstalleerd via een Debian- of Ubuntu-package, installeer dan ook bijvoorbeeld de module <code>php5-mysql</code>.",
        "config-outdated-sqlite": "''' Waarschuwing:''' u gebruikt SQLite $1. SQLite is niet beschikbaar omdat de minimaal vereiste versie $2 is.",
        "config-no-fts3": "<strong>Waarschuwing:</strong> SQLite is gecompileerd zonder de module [//sqlite.org/fts3.html FTS3]; zoekfuncties zijn niet beschikbaar.",
-       "config-mbstring": "<strong>Onherstelbare fout: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] is actief!</strong>\nDeze instelling zorgt voor onvoorspelbare gegevenscorruptie.\nU kunt MediaWiki niet installeren tenzij deze instelling is uitgeschakeld.",
-       "config-xml-bad": "De XML-module van PHP ontbreekt.\nMediaWiki vereist functies in deze module en werkt niet in deze configuratie.\nMogelijk moet u het RPM-pakket php-xml installeren.",
        "config-pcre-old": "'''Onherstelbare fout:''' PCRE $1 of een latere versie is vereist.\nUw uitvoerbare versie van PHP is gekoppeld met PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Meer informatie].",
        "config-pcre-no-utf8": "'''Fataal:''' de module PRCE van PHP lijkt te zijn gecompileerd zonder ondersteuning voor PCRE_UTF8.\nMediaWiki heeft ondersteuning voor UTF-8 nodig om correct te kunnen werken.",
        "config-memory-raised": "PHP's <code>memory_limit</code> is $1 en is verhoogd tot $2.",
        "config-memory-bad": "'''Waarschuwing:''' PHP's <code>memory_limit</code> is $1.\nDit is waarschijnlijk te laag.\nDe installatie kan mislukken!",
-       "config-ctype": "'''Fataal:''' PHP moet gecompileerd zijn met ondersteuning voor de [http://www.php.net/manual/en/ctype.installation.php extensie Ctype].",
-       "config-iconv": "<strong>Onherstelbare fout:</strong> PHP moet gecompileerd zijn met ondersteuning voor de [http://www.php.net/manual/en/iconv.installation.php uitbreiding iconv].",
-       "config-json": "<strong>Fatale fout:</strong> PHP is gecompileerd zonder ondersteuning voor JSON.\nU moet de PHP-extensie JSON installeren of de extensie [http://pecl.php.net/package/jsonc PECL jsonc] voordat u MediaWiki installeert.\n* De PHP-extensie is beschikbaar in Red Hat Enterprise Linux (CentOS) 5 en 6, maar moet ingeschakeld worden <code>/etc/php.ini</code> or <code>/etc/php.d/json.ini</code>.\n* Sommige Linuxdistributies die zijn uitgebracht na mei 2013 hebben de PHP-extensie niet, maar hebben een package voor de PECL-extensie als <code>php5-json</code> of <code>php-pecl-jsonc</code>.",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] is op dit moment geïnstalleerd",
        "config-apc": "[http://www.php.net/apc APC] is op dit moment geïnstalleerd",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] is op dit moment geïnstalleerd",
@@ -92,7 +87,7 @@
        "config-no-cli-uri": "<strong>Waarschuwing:</strong> de parameter <code>--scriptpath</code> is niet opgegeven. De standaardwaarde wordt gebruikt: <code>$1</code>.",
        "config-using-server": "De servernaam \"<nowiki>$1</nowiki>\" wordt gebruikt.",
        "config-using-uri": "De server-URL \"<nowiki>$1$2</nowiki>\" wordt gebruikt.",
-       "config-uploads-not-safe": "<strong>Waarschuwing:</strong> uw uploadmap <code>$1</code> kan gebruikt worden voor het arbitrair uitvoeren van scripts.\nHoewel MediaWiki alle toegevoegde bestanden controleert op bedreigingen, is het zeer aan te bevelen het [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security beveiligingslek te verhelpen] alvorens uploads in te schakelen.",
+       "config-uploads-not-safe": "<strong>Waarschuwing:</strong> uw uploadmap <code>$1</code> kan gebruikt worden voor het arbitrair uitvoeren van scripts.\nHoewel MediaWiki alle toegevoegde bestanden controleert op bedreigingen, is het zeer aan te bevelen het [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security beveiligingslek te verhelpen] alvorens uploads in te schakelen.",
        "config-no-cli-uploads-check": "''Waarschuwing:'' uw standaardmap voor uploads (<code>$1</code>) wordt niet gecontroleerd op kwetsbaarheden voor het uitvoeren van willekeurige scripts gedurende de CLI-installatie.",
        "config-brokenlibxml": "Uw systeem heeft een combinatie van PHP- en libxml2-versies geïnstalleerd die is foutgevoelig is en kan leiden tot onzichtbare beschadiging van gegevens in MediaWiki en andere webapplicaties.\nUpgrade naar libxml2 2.7.3 of hoger([https://bugs.php.net/bug.php?id=45996 bij PHP gerapporteerde fout]).\nDe installatie wordt afgebroken.",
        "config-suhosin-max-value-length": "Suhosin is geïnstalleerd en beperkt de GET-parameter <code>length</code> tot $1 bytes.\nDe ResourceLoader van MediaWiki omzeilt deze beperking, maar dat is slecht voor de prestaties.\nAls het mogelijk is, moet u de waarde \"<code>suhosin.get.max_value_length</code>\" in <code>php.ini</code> instellen op 1024 of hoger en <code>$wgResourceLoaderMaxQueryLength</code> in LocalSettings.php op dezelfde waarde instellen.",
        "config-db-wiki-help": "Voer de gebruikersnaam en het wachtwoord in die gebruikt worden om verbinding te maken met de database na de installatie.\nAls de gebruiker niet bestaat en de gebruiker die tijdens de installatie gebruikt wordt voldoende rechten heeft, wordt deze gebruiker aangemaakt met de minimaal benodigde rechten voor het laten werken van de wiki.",
        "config-db-prefix": "Databasetabelvoorvoegsel:",
        "config-db-prefix-help": "Als u een database moet gebruiken voor meerdere wiki's, of voor MediaWiki en een andere toepassing, dan kunt u ervoor kiezen om een voorvoegsel toe te voegen aan de tabelnamen om conflicten te voorkomen.\nGebruik geen spaties.\n\nDit veld wordt meestal leeg gelaten.",
-       "config-db-charset": "Tekenset voor de database",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 binair",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "MySQL 4.0 UTF-8-compatibel",
-       "config-charset-help": "'''Waarschuwing:''' als u '''achterwaarts compatibel met UTF-8''' gebruikt met MySQL 4.1+ en een back-up van de database maakt met <code>mysqldump</code>, dan kunnen alle niet-ASCII-tekens in uw back-ups onherstelbaar beschadigd raken.\n\nIn '''binaire modus''' slaat MediaWiki tekst in UTF-8 op in binaire databasevelden.\nDit is efficiënter dan de UTF-8-modus van MySQL en stelt u in staat de volledige reeks Unicode-tekens te gebruiken.\nIn '''UTF-8-modus''' kent MySQL de tekenset van uw gegevens en kan de databaseserver ze juist weergeven en converteren.\nHet is dan niet mogelijk tekens op te slaan die de \"[//nl.wikipedia.org/wiki/Lijst_van_Unicode-subbereiken#Basic_Multilingual_Plane Basic Multilingual Plane]\" te boven gaan.",
        "config-mysql-old": "U moet MySQL $1 of later gebruiken.\nU gebruikt $2.",
        "config-db-port": "Databasepoort:",
        "config-db-schema": "Schema voor MediaWiki",
        "config-mysql-charset": "Tekenset voor de database:",
        "config-mysql-binary": "Binair",
        "config-mysql-utf8": "UTF-8",
-       "config-mysql-charset-help": "In <strong>binaire modus</strong> slaat MediaWiki tekst in UTF-8 op in binaire databasevelden.\nDit is efficiënter dan de UTF-8-modus van MySQL en stelt u in staat de volledige reeks Unicodetekens te gebruiken.\n\nIn <strong>UTF-8-modus</strong> kent MySQL de tekenset van uw gegevens en kan de databaseserver ze juist weergeven en converteren.\nHet is dan niet mogelijk tekens op te slaan die de \"[//nl.wikipedia.org/wiki/Lijst_van_Unicode-subbereiken#Basic_Multilingual_Plane Basic Multilingual Plane]\" te boven gaan.",
+       "config-mysql-charset-help": "In <strong>binaire modus</strong> slaat MediaWiki tekst in UTF-8 op in binaire databasevelden.\nDit is efficiënter dan de UTF-8-modus van MySQL en stelt u in staat de volledige reeks Unicodetekens te gebruiken.\n\nIn <strong>UTF-8-modus</strong> kent MySQL de tekenset van uw gegevens en kan de databaseserver ze juist weergeven en converteren.\nHet is dan niet mogelijk tekens op te slaan die de \"[https://nl.wikipedia.org/wiki/Lijst_van_Unicode-subbereiken#Basic_Multilingual_Plane Basic Multilingual Plane]\" te boven gaan.",
        "config-mssql-auth": "Authenticatietype:",
        "config-mssql-install-auth": "Selecteer de authenticatiemethode die wordt gebruikt om met de database te verbinden tijdens het installatieproces.\nAls u \"{{int:config-mssql-windowsauth}}\" selecteert, dan worden de aanmeldgegevens van de gebruiker waaronder de webserver draait voor authenticatie gebruikt.",
        "config-mssql-web-auth": "Selecteer de authenticatiemethode die de webserver gebruikt om met de database te verbinden tijdens het installatieproces.\nAls u \"{{int:config-mssql-windowsauth}}\" selecteert, dan worden de aanmeldgegevens van de gebruiker waaronder de webserver draait voor authenticatie gebruikt.",
        "config-profile-no-anon": "Account aanmaken verplicht",
        "config-profile-fishbowl": "Alleen voor geautoriseerde bewerkers",
        "config-profile-private": "Privéwiki",
-       "config-profile-help": "Wiki's werken het beste als ze door zoveel mogelijk gebruikers worden bewerkt.\nIn MediaWiki is het eenvoudig om de recente wijzigingen te controleren en eventuele foutieve of kwaadwillende bewerkingen terug te draaien.\n\nDaarnaast vinden velen MediaWiki goed inzetbaar in vele andere rollen, en soms is het niet handig om helemaal \"op de wikimanier\" te werken.\nDaarom biedt dit installatieprogramma u de volgende keuzes voor de basisinstelling van gebruikersvrijheden:\n\nHet profiel '''{{int:config-profile-wiki}}''' staat iedereen toe te bewerken, zonder zelfs aan te melden.\nEen wiki met '''{{int:config-profile-no-anon}}\" biedt extra verantwoordelijkheid, maar kan afschrikken toevallige gebruikers afschrikken.\n\nHet scenario '''{{int:config-profile-fishbowl}}''' laat gebruikers waarvoor dat is ingesteld bewerkt, maar andere gebruikers kunnen alleen pagina's bekijken, inclusief de bewerkingsgeschiedenis.\nIn een '''{{int:config-profile-private}}''' kunnen alleen goedgekeurde gebruikers pagina's bekijken en bewerken.\n\nMeer complexe instellingen voor gebruikersrechten zijn te maken na de installatie; hierover is meer te lezen in de [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights handleiding].",
+       "config-profile-help": "Wiki's werken het beste als ze door zoveel mogelijk gebruikers worden bewerkt.\nIn MediaWiki is het eenvoudig om de recente wijzigingen te controleren en eventuele foutieve of kwaadwillende bewerkingen terug te draaien.\n\nDaarnaast vinden velen MediaWiki goed inzetbaar in vele andere rollen, en soms is het niet handig om helemaal \"op de wikimanier\" te werken.\nDaarom biedt dit installatieprogramma u de volgende keuzes voor de basisinstelling van gebruikersvrijheden:\n\nHet profiel '''{{int:config-profile-wiki}}''' staat iedereen toe te bewerken, zonder zelfs aan te melden.\nEen wiki met '''{{int:config-profile-no-anon}}\" biedt extra verantwoordelijkheid, maar kan afschrikken toevallige gebruikers afschrikken.\n\nHet scenario '''{{int:config-profile-fishbowl}}''' laat gebruikers waarvoor dat is ingesteld bewerkt, maar andere gebruikers kunnen alleen pagina's bekijken, inclusief de bewerkingsgeschiedenis.\nIn een '''{{int:config-profile-private}}''' kunnen alleen goedgekeurde gebruikers pagina's bekijken en bewerken.\n\nMeer complexe instellingen voor gebruikersrechten zijn te maken na de installatie; hierover is meer te lezen in de [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights handleiding].",
        "config-license": "Auteursrechten en licentie:",
        "config-license-none": "Geen licentie in de voettekst",
        "config-license-cc-by-sa": "Creative Commons Naamsvermelding-Gelijk delen",
        "config-email-sender-help": "Voer het e-mailadres in dat u wilt gebruiken als antwoordadres voor uitgaande e-mail.\nAls een e-mail niet bezorgd kan worden, wordt dat op dit e-mailadres gemeld.\nVeel mailservers vereisen dat ten minste het domein bestaat.",
        "config-upload-settings": "Afbeeldingen en bestanden uploaden",
        "config-upload-enable": "Uploaden van bestanden inschakelen",
-       "config-upload-help": "Het toestaan van het uploaden van bestanden stelt uw server mogelijk bloot aan beveiligingsrisico's.\nEr is meer [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security informatie over beveiliging] beschikbaar in de handleiding.\n\nOm het bestandsuploads mogelijk te maken kunt u de rechten op de submap <code>images</code> onder de hoofdmap van MediaWiki aanpassen, zodat de webserver erin kan schrijven.\nDaarmee wordt deze functie ingeschakeld.",
+       "config-upload-help": "Het toestaan van het uploaden van bestanden stelt uw server mogelijk bloot aan beveiligingsrisico's.\nEr is meer [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security informatie over beveiliging] beschikbaar in de handleiding.\n\nOm het bestandsuploads mogelijk te maken kunt u de rechten op de submap <code>images</code> onder de hoofdmap van MediaWiki aanpassen, zodat de webserver erin kan schrijven.\nDaarmee wordt deze functie ingeschakeld.",
        "config-upload-deleted": "Map voor verwijderde bestanden:",
        "config-upload-deleted-help": "Kies een map waarin verwijderde bestanden gearchiveerd kunnen worden.\nIdealiter is deze map niet via het web te benaderen.",
        "config-logo": "URL voor logo:",
        "config-logo-help": "Het standaarduiterlijk van MediaWiki bevat ruimte voor een logo van 135x160 pixels boven het menu.\nUpload een afbeelding met de juiste afmetingen en voer de URL hier in.\n\nU kunt <code>$wgStylePath</code> of <code>$wgScriptPath</code> gebruiken als uw logo relatief is aan een van deze paden.\n\nAls u geen logo wilt gebruiken, kunt u dit veld leeg laten.",
        "config-instantcommons": "Instant Commons inschakelen",
-       "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons Instant Commons] is functie die het mogelijk maakt om afbeeldingen, geluidsbestanden en andere mediabestanden te gebruiken van de website [//commons.wikimedia.org/ Wikimedia Commons].\nHiervoor heeft MediaWiki toegang nodig tot Internet.\n\nMeer informatie over deze functie en hoe deze in te stellen voor andere wiki's dan Wikimedia Commons is te vinden in de [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos handleiding].",
+       "config-instantcommons-help": "[https://www.mediawiki.org/wiki/InstantCommons Instant Commons] is functie die het mogelijk maakt om afbeeldingen, geluidsbestanden en andere mediabestanden te gebruiken van de website [https://commons.wikimedia.org/ Wikimedia Commons].\nHiervoor heeft MediaWiki toegang nodig tot Internet.\n\nMeer informatie over deze functie en hoe deze in te stellen voor andere wiki's dan Wikimedia Commons is te vinden in de [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos handleiding].",
        "config-cc-error": "De licentiekiezer van Creative Commons heeft geen resultaat opgeleverd.\nVoer de licentie handmatig in.",
        "config-cc-again": "Opnieuw kiezen...",
        "config-cc-not-chosen": "Kies de Creative Commonslicentie die u wilt gebruiken en klik op \"proceed\".",
        "config-install-mainpage": "Hoofdpagina aanmaken met standaard inhoud",
        "config-install-extension-tables": "Tabellen voor ingeschakelde uitbreidingen worden aangemaakt",
        "config-install-mainpage-failed": "Het was niet mogelijk de hoofdpagina in te voegen: $1",
-       "config-install-done": "<strong>Gefeliciteerd!</strong>\nU hebt MediaWiki met geïnstalleerd.\n\nHet installatieprogramma heeft het bestand <code>LocalSettings.php</code> aangemaakt.\nDit bevat al uw instellingen.\n\nU moet het bestand downloaden en in de hoofdmap van uw wiki-installatie plaatsten, in dezelfde map als index.php.\nDe download moet u automatisch zijn aangeboden.\n\nAls de download niet is aangeboden of als u de download hebt geannuleerd, dan kunt u de download opnieuw starten door op de onderstaande koppeling te klikken:\n\n$3\n\n<strong>Let op:</strong> als u dit niet nu doet, dan is het bestand als u later de installatieprocedure afsluit zonder het bestand te downloaden niet meer beschikbaar.\n\nNa het plaatsen van het bestand met instellingen kunt u <strong>[$2 uw wiki gebruiken]</strong>.",
+       "config-install-done": "<strong>Gefeliciteerd!</strong>\nU hebt MediaWiki geïnstalleerd.\n\nHet installatieprogramma heeft het bestand <code>LocalSettings.php</code> aangemaakt.\nDit bevat al uw instellingen.\n\nU moet het bestand downloaden en in de hoofdmap van uw wiki-installatie plaatsten, in dezelfde map als index.php.\nDe download moet u automatisch zijn aangeboden.\n\nAls de download niet is aangeboden of als u de download hebt geannuleerd, dan kunt u de download opnieuw starten door op de onderstaande koppeling te klikken:\n\n$3\n\n<strong>Let op:</strong> als u dit niet nu doet, dan is het bestand als u later de installatieprocedure afsluit zonder het bestand te downloaden niet meer beschikbaar.\n\nNa het plaatsen van het bestand met instellingen kunt u <strong>[$2 uw wiki gebruiken]</strong>.",
        "config-download-localsettings": "<code>LocalSettings.php</code> downloaden",
        "config-help": "hulp",
        "config-help-tooltip": "klik om uit te vouwen",
        "config-nofile": "Het bestand \"$1\" is niet gevonden. Is het verwijderd?",
-       "config-extension-link": "Weet u dat u [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions uitbreidingen] kunt gebruiken voor uw wiki?\n\nU kunt [//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category uitbreidingen op categorie] bekijken of ga naar de [//www.mediawiki.org/wiki/Extension_Matrix uitbreidingenmatrix] om de volledige lijst met uitbreidingen te bekijken.",
+       "config-extension-link": "Weet u dat u [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions uitbreidingen] kunt gebruiken voor uw wiki?\n\nU kunt [https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category uitbreidingen op categorie] bekijken of ga naar de [https://www.mediawiki.org/wiki/Extension_Matrix uitbreidingenmatrix] om de volledige lijst met uitbreidingen te bekijken.",
        "mainpagetext": "<strong>De installatie van MediaWiki is geslaagd.</strong>",
-       "mainpagedocfooter": "Raadpleeg de [//meta.wikimedia.org/wiki/Special:MyLanguage/Help:Contents handleiding] voor informatie over het gebruik van de wikisoftware.\n\n== Meer hulp over MediaWiki ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lijst met instellingen]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Veelgestelde vragen (FAQ)]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailinglijst voor aankondigingen van nieuwe versies]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Maak MediaWiki beschikbaar in uw taal]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Leer hoe u spam kunt voorkomen op uw wiki]"
+       "mainpagedocfooter": "Raadpleeg de [https://meta.wikimedia.org/wiki/Special:MyLanguage/Help:Contents handleiding] voor informatie over het gebruik van de wikisoftware.\n\n== Meer hulp over MediaWiki ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lijst met instellingen]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Veelgestelde vragen (FAQ)]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailinglijst voor aankondigingen van nieuwe versies]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Maak MediaWiki beschikbaar in uw taal]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Leer hoe u spam kunt voorkomen op uw wiki]"
 }
index 06c1469..e04944f 100644 (file)
        "config-db-name": "Databasenamn:",
        "config-db-username": "Databasebrukarnamn:",
        "config-db-password": "Databasepassord:",
-       "config-db-charset": "Databaseteiknsett",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 binær",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "MySQL 4.0 bakoverkompatibel UTF-8",
        "config-mysql-old": "MySQL $1 eller seinare krevst, du har $2.",
        "config-db-port": "Databaseport:",
        "config-db-schema": "Skjema for MediaWiki",
@@ -39,5 +35,5 @@
        "config-logo": "Logo-URL:",
        "config-help": "hjelp",
        "mainpagetext": "'''MediaWiki er no installert.'''",
-       "mainpagedocfooter": "Sjå [//meta.wikimedia.org/wiki/Help:Contents brukarmanualen] for informasjon om bruk og oppsettshjelp for wikiprogramvara.\n\n==Kome i gang==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Liste over oppsettsinnstillingar]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Spørsmål og svar om MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce E-postliste med informasjon om nye MediaWiki-versjonar]"
+       "mainpagedocfooter": "Sjå [https://meta.wikimedia.org/wiki/Help:Contents brukarmanualen] for informasjon om bruk og oppsettshjelp for wikiprogramvara.\n\n==Kome i gang==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Liste over oppsettsinnstillingar]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Spørsmål og svar om MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce E-postliste med informasjon om nye MediaWiki-versjonar]"
 }
index 77e6fd0..e332690 100644 (file)
        "config-information": "Informacions",
        "config-localsettings-key": "Clau de mesa a jorn :",
        "config-localsettings-badkey": "La clau de mesa a jorn qu'avètz provesida es incorrècta",
-       "config-session-error": "Error al moment de l'aviada de la sesilha : $1",
+       "config-session-error": "Error al moment de l'aviada de la session : $1",
        "config-your-language": "Vòstra lenga :",
        "config-your-language-help": "Seleccionatz la lenga d'utilizar pendent lo processus d'installacion.",
        "config-wiki-language": "Lenga del wiki :",
-       "config-wiki-language-help": "Seleccionar la lenga dins la quala lo wiki serà principalament escrich.",
+       "config-wiki-language-help": "Seleccionar la lenga dins la quala lo wiki serà principalament escrit.",
        "config-back": "← Retorn",
        "config-continue": "Contunhar →",
        "config-page-language": "Lenga",
        "config-page-welcome": "Benvenguda sus MediaWiki !",
-       "config-page-dbconnect": "Se connectar a la banca de donadas",
+       "config-page-dbconnect": "Se connectar a la basa de donadas",
        "config-page-upgrade": "Metre a jorn l’installacion existenta",
-       "config-page-dbsettings": "Paramètres de la banca de donadas",
+       "config-page-dbsettings": "Paramètres de la basa de donadas",
        "config-page-name": "Nom",
        "config-page-options": "Opcions",
        "config-page-install": "Installar",
        "config-gd": "La bibliotèca grafica GD integrada es estada trobada.\nLa miniaturizacion d'imatges serà activada se activatz lo telecargament de fichièrs.",
        "config-using-server": "Utilizacion del nom de servidor \"<nowiki>$1</nowiki>\".",
        "config-using-uri": "Utilizacion de l'URL de servidor \"<nowiki>$1$2</nowiki>\".",
-       "config-db-type": "Tipe de banca de donadas :",
-       "config-db-host": "Nom d’òste de la banca de donadas :",
-       "config-db-host-oracle": "Nom TNS de la banca de donadas :",
+       "config-db-type": "Tipe de basa de donadas :",
+       "config-db-host": "Nom d’òste de la basa de donadas :",
+       "config-db-host-oracle": "Nom TNS de la basa de donadas :",
        "config-db-wiki-settings": "Identificar aqueste wiki",
-       "config-db-name": "Nom de la banca de donadas :",
-       "config-db-name-oracle": "Esquèma de banca de donadas :",
+       "config-db-name": "Nom de la basa de donadas :",
+       "config-db-name-oracle": "Esquèma de basa de donadas :",
        "config-db-install-account": "Compte d'utilizaire per l'installacion",
-       "config-db-username": "Nom d'utilizaire de la banca de donadas :",
-       "config-db-password": "Senhal de la banca de donadas :",
+       "config-db-username": "Nom d'utilizaire de la basa de donadas :",
+       "config-db-password": "Senhal de la basa de donadas :",
        "config-db-account-lock": "Utilizar lo meteis nom d'utilizaire e lo meteis senhal pendent lo foncionament abitual",
        "config-db-wiki-account": "Compte d'utilizaire pel foncionament abitual",
-       "config-db-prefix": "Préfix de las taulas de la banca de donadas :",
-       "config-db-charset": "Jòc de caractèrs de la banca de donadas",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 binari",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "MySQL 4.0 retrocompatible UTF-8",
+       "config-db-prefix": "Prefix de las taulas de la basa de donadas :",
        "config-mysql-old": "MySQL $1 o version ulteriora es requesit, avètz $2.",
-       "config-db-port": "Pòrt de la banca de donadas :",
+       "config-db-port": "Pòrt de la basa de donadas :",
        "config-db-schema": "Esquèma per MediaWiki",
-       "config-pg-test-error": "Impossible de se connectar a la banca de donadas '''$1''' : $2",
+       "config-pg-test-error": "Impossible de se connectar a la basa de donadas '''$1''' : $2",
        "config-sqlite-dir": "Dorsièr de las donadas SQLite :",
        "config-oracle-def-ts": "Espaci d'emmagazinatge (''tablespace'') per defaut :",
        "config-oracle-temp-ts": "Espaci d'emmagazinatge (''tablespace'') temporari :",
        "config-header-sqlite": "Paramètres de SQLite",
        "config-header-oracle": "Paramètres d’Oracle",
        "config-header-mssql": "Paramètres de Microsoft SQL Server",
-       "config-invalid-db-type": "Tipe de banca de donadas invalid",
+       "config-invalid-db-type": "Tipe de basa de donadas invalid",
        "config-missing-db-name": "Vos cal entrar una valor per « {{int:config-db-name}} ».",
        "config-missing-db-host": "Vos cal entrar una valor per « {{int:config-db-host}} ».",
        "config-missing-db-server-oracle": "Vos cal entrar una valor per « {{int:config-db-oracle}} ».",
        "config-postgres-old": "PostgreSQL $1 o version ulteriora es requesit, avètz $2.",
        "config-sqlite-readonly": "Lo fichièr <code>$1</code> es pas accessible en escritura.",
-       "config-sqlite-cant-create-db": "Impossible de crear lo fichièr de banca de donadas <code>$1</code>.",
+       "config-sqlite-cant-create-db": "Impossible de crear lo fichièr de basa de donadas <code>$1</code>.",
        "config-regenerate": "Regenerar LocalSettings.php →",
        "config-show-table-status": "Fracàs de la requèsta <code>SHOW TABLE STATUS</code> !",
-       "config-db-web-account": "Compte de la banca de donadas per l'accès Web",
+       "config-db-web-account": "Compte de la basa de donadas per l'accès Web",
        "config-db-web-account-same": "Utilizatz lo meteis compte que per l'installacion",
        "config-db-web-create": "Creatz lo compte se existís pas ja",
        "config-mysql-engine": "Motor d'emmagazinatge :",
        "config-mysql-innodb": "InnoDB",
        "config-mysql-myisam": "MyISAM",
-       "config-mysql-charset": "Jòc de caractèrs de la banca de donadas :",
+       "config-mysql-charset": "Jòc de caractèrs de la basa de donadas :",
        "config-mysql-binary": "Binari",
        "config-mysql-utf8": "UTF-8",
        "config-mssql-auth": "Tipe d’autentificacion :",
        "config-admin-error-bademail": "Avètz entrat una adreça de corrièr electronic invalida",
        "config-optional-continue": "Me pausar mai de questions.",
        "config-optional-skip": "N'ai pro, installar simplament lo wiki.",
-       "config-profile": "Perfil dels dreches d’utilizaires :",
+       "config-profile": "Perfil dels dreits d’utilizaires :",
        "config-profile-wiki": "Wiki dobèrt",
        "config-profile-no-anon": "Creacion de compte requesida",
        "config-profile-fishbowl": "Editors autorizats solament",
        "config-profile-private": "Wiki privat",
-       "config-license": "Dreches d'autor e licéncia :",
+       "config-license": "Dreits d'autor e licéncia :",
        "config-license-none": "Pas cap de licéncia en bas de pagina",
        "config-license-cc-by-sa": "Creative Commons atribucion partiment a l'identic",
        "config-license-cc-by": "Creative Commons Atribucion",
        "config-instantcommons": "Activar ''InstantCommons''",
        "config-cc-again": "Causissètz tornarmai...",
        "config-advanced-settings": "Configuracion avançada",
-       "config-cache-options": "Paramètres per la mesa en escondedor dels objèctes :",
+       "config-cache-options": "Paramètres per la mesa en cache dels objèctes :",
        "config-memcached-servers": "servidors per Memcached :",
        "config-extensions": "Extensions",
        "config-skins": "Abilhatges",
        "config-skins-use-as-default": "Utilizar aqueste abilhatge per defaut",
-       "config-install-step-done": "fach",
+       "config-skins-must-enable-some": "Vos cal seleccionar almens un tèma per activar.",
+       "config-install-step-done": "fait",
        "config-install-step-failed": "fracàs",
        "config-install-extensions": "Inclusion de las extensions",
-       "config-install-database": "Creacion de la banca de donadas",
+       "config-install-database": "Creacion de la basa de donadas",
        "config-install-schema": "Creacion d'esquèma",
        "config-install-pg-schema-not-exist": "L'esquèma PostgreSQL existís pas",
        "config-install-pg-commit": "Validacion de las modificacions",
        "config-install-pg-plpgsql": "Verificacion del lengatge PL/pgSQL",
-       "config-install-user": "Creacion d'un utilizaire de la banca de donadas",
+       "config-install-user": "Creacion d'un utilizaire de la basa de donadas",
        "config-install-user-alreadyexists": "L'utilizaire « $1 » existís ja.",
        "config-install-user-create-failed": "Fracàs al moment de la creacion de l'utilizaire « $1 » : $2",
        "config-install-user-grant-failed": "Fracàs al moment de l'apondon de permissions a l'utilizaire « $1 » : $2",
        "config-download-localsettings": "Telecargar <code>LocalSettings.php</code>",
        "config-help": "ajuda",
        "config-help-tooltip": "clicar per agrandir",
-       "mainpagetext": "'''MediaWiki es estat installat amb succès.'''",
-       "mainpagedocfooter": "Consultatz lo [//meta.wikimedia.org/wiki/Help:Contents/fr Guida de l'utilizaire] per mai d'entresenhas sus l'utilizacion d'aqueste logicial de wiki.\n\n== Per començar ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista dels paramètres de configuracion]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/oc FAQ MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de discussions de las distribucions de MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Adaptatz MediaWiki dins vòstra lenga]"
+       "mainpagetext": "<strong>MediaWiki es estat installat amb succès.<strong>",
+       "mainpagedocfooter": "Consultatz lo [https://meta.wikimedia.org/wiki/Help:Contents/fr Guida de l'utilizaire] per mai d'entresenhas sus l'utilizacion d'aqueste logicial de wiki.\n\n== Per començar ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista dels paramètres de configuracion]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/oc FAQ MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de discussions de las distribucions de MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Adaptatz MediaWiki dins vòstra lenga]"
 }
index c04a510..f95624a 100644 (file)
@@ -1,5 +1,5 @@
 {
        "@metadata": [],
        "mainpagetext": "'''Melaus ing pamipalyari ning MediaWiki.'''",
-       "mainpagedocfooter": "Basan me ing [//meta.wikimedia.org/wiki/Help:Contents User's Guide] para king impormasiun keng pamangamit ning wiki software.\n\n== Pamagumpisa ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
+       "mainpagedocfooter": "Basan me ing [https://meta.wikimedia.org/wiki/Help:Contents User's Guide] para king impormasiun keng pamangamit ning wiki software.\n\n== Pamagumpisa ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
 }
index 2a05223..f35a76f 100644 (file)
@@ -9,5 +9,5 @@
        "config-admin-password": "Paesswatt:",
        "config-install-step-done": "geduh",
        "config-help": "Hilf",
-       "mainpagedocfooter": "Hilf fer's Yuuse unn Konfiguriere vun de Wiki-Software kansch finne im [//meta.wikimedia.org/wiki/Help:Contents Handbuch fer Yuuser].\n\n== Hilf zum Schtaerte ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lischt vun Gnepp zum Konfiguriere]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki-FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Eposchde-Lischt fer neie MediaWiki-Versione]"
+       "mainpagedocfooter": "Hilf fer's Yuuse unn Konfiguriere vun de Wiki-Software kansch finne im [https://meta.wikimedia.org/wiki/Help:Contents Handbuch fer Yuuser].\n\n== Hilf zum Schtaerte ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lischt vun Gnepp zum Konfiguriere]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki-FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Eposchde-Lischt fer neie MediaWiki-Versione]"
 }
index 7422a66..423926b 100644 (file)
@@ -21,7 +21,8 @@
                        "Darellur",
                        "The Polish",
                        "Macofe",
-                       "Sethakill"
+                       "Sethakill",
+                       "Peter Bowman"
                ]
        },
        "config-desc": "Instalator MediaWiki",
        "config-restart": "Tak, zacznij od nowa",
        "config-welcome": "=== Sprawdzenie środowiska instalacji ===\nTeraz zostaną wykonane podstawowe testy sprawdzające czy to środowisko jest odpowiednie dla instalacji MediaWiki.\nJeśli potrzebujesz pomocy podczas instalacji, załącz wyniki tych testów.",
        "config-copyright": "=== Prawa autorskie i warunki użytkowania ===\n\n$1\n\nTo oprogramowanie jest wolne; możesz je rozprowadzać dalej i modyfikować zgodnie z warunkami licencji GNU General Public License opublikowanej przez Free Software Foundation w wersji 2 tej licencji lub (według Twojego wyboru) którejś z późniejszych jej wersji.\n\nNiniejsze oprogramowanie jest rozpowszechniane w nadziei, że będzie użyteczne, ale '''bez żadnej gwarancji'''; nawet bez domniemanej gwarancji '''handlowej''' lub '''przydatności do określonego celu'''.\nZobacz treść licencji GNU General Public License, aby uzyskać więcej szczegółów.\n\nRazem z oprogramowaniem powinieneś otrzymać <doclink href=Copying>kopię licencji GNU General Public License</doclink>. Jeśli jej nie otrzymałeś, napisz do Free Software Foundation, Inc, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. lub [http://www.gnu.org/copyleft/gpl.html przeczytaj ją online].",
-       "config-sidebar": "* [//www.mediawiki.org Strona domowa MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Podręcznik użytkownika]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Podręcznik administratora]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Odpowiedzi na często zadawane pytania]\n----\n* <doclink href=Readme>Przeczytaj to</doclink>\n* <doclink href=ReleaseNotes>Informacje o tej wersji</doclink>\n* <doclink href=Copying>Kopiowanie</doclink>\n* <doclink href=UpgradeDoc>Aktualizacja</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org Strona domowa MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Podręcznik użytkownika]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Podręcznik administratora]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Odpowiedzi na często zadawane pytania]\n----\n* <doclink href=Readme>Przeczytaj to</doclink>\n* <doclink href=ReleaseNotes>Informacje o tej wersji</doclink>\n* <doclink href=Copying>Kopiowanie</doclink>\n* <doclink href=UpgradeDoc>Aktualizacja</doclink>",
        "config-env-good": "Środowisko oprogramowania zostało sprawdzone.\nMożesz teraz zainstalować MediaWiki.",
        "config-env-bad": "Środowisko oprogramowania zostało sprawdzone.\nNie możesz zainstalować MediaWiki.",
        "config-env-php": "Zainstalowane jest PHP w wersji $1.",
        "config-env-hhvm": "Zainstalowany jest HHVM $1.",
        "config-unicode-using-intl": "Korzystanie z [http://pecl.php.net/intl rozszerzenia intl PECL] do normalizacji Unicode.",
-       "config-unicode-pure-php-warning": "'''Uwaga!''' [http://pecl.php.net/intl Rozszerzenie intl PECL] do obsługi normalizacji Unicode nie jest dostępne. Użyta zostanie mało wydajna zwykła implementacja w PHP.\nJeśli prowadzisz stronę o dużym natężeniu ruchu, powinieneś zapoznać się z informacjami o [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalizacji Unicode].",
-       "config-unicode-update-warning": "'''Uwaga''' – zainstalowana wersja normalizacji Unicode korzysta z nieaktualnej biblioteki [http://site.icu-project.org/ projektu ICU].\nPowinieneś [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations zrobić aktualizację] jeśli chcesz korzystać w pełni z Unicode.",
+       "config-unicode-pure-php-warning": "<strong>Uwaga:<strong> [http://pecl.php.net/intl Rozszerzenie intl PECL] do obsługi normalizacji Unicode nie jest dostępne. Użyta zostanie mało wydajna zwykła implementacja w PHP.\nJeśli prowadzisz stronę o dużym natężeniu ruchu, powinieneś zapoznać się z informacjami o [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalizacji Unicode].",
+       "config-unicode-update-warning": "<strong>Uwaga:</strong> zainstalowana wersja normalizacji Unicode korzysta z nieaktualnej biblioteki [http://site.icu-project.org/ projektu ICU].\nPowinieneś [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations wykonać aktualizację], jeśli chcesz korzystać w pełni z Unicode.",
        "config-no-db": "Nie można odnaleźć właściwego sterownika bazy danych! Musisz zainstalować sterownik bazy danych dla PHP.\nMożna użyć {{PLURAL:$2|następującego typu bazy|następujących typów baz} danych: $1.\n\nJeśli skompilowałeś PHP samodzielnie, skonfiguruj je ponownie z włączonym klientem bazy danych, na przykład za pomocą polecenia <code>./configure --with-mysqli</code>.\nJeśli zainstalowałeś PHP jako pakiet Debiana lub Ubuntu, musisz również zainstalować np. moduł <code>php5-mysql</code>.",
        "config-outdated-sqlite": "'''Ostrzeżenie''': masz SQLite  $1, która jest niższa od minimalnej wymaganej wersji  $2 . SQLite będzie niedostępne.",
        "config-no-fts3": "'''Uwaga''' – SQLite został skompilowany bez [//sqlite.org/fts3.html modułu FTS3] – funkcje wyszukiwania nie będą dostępne.",
-       "config-mbstring": "'''Błąd krytyczny – włączono [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload]!'''\nTa opcja powoduje błędy i może wywołać nieprzewidywalne uszkodzenia wprowadzanych danych.\nZainstalować lub korzystać z MediaWiki można pod warunkiem, że ta opcja jest wyłączona.",
-       "config-xml-bad": "Brak modułu XML dla PHP.\nMediaWiki wymaga funkcji z tego modułu i nie może działać w tej konfiguracji.\nZainstaluj pakiet RPM php-xml.",
        "config-pcre-old": "<strong>Błąd krytyczny:</strong> Wymagany jest PCRE w wersji $1 lub nowszej.\nTwój plik wykonywalny PHP jest powiązany z wersją PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Więcej informacji].",
        "config-pcre-no-utf8": "'''Błąd krytyczny''' – wydaje się, że moduł PCRE w PHP został skompilowany bez wsparcia dla UTF‐8.\nMediaWiki wymaga wsparcia dla UTF‐8 do prawidłowego działania.",
        "config-memory-raised": "PHP <code>memory_limit</code> było ustawione na $1, zostanie zwiększone do $2.",
        "config-memory-bad": "'''Uwaga:''' PHP <code>memory_limit</code> jest ustawione na $1.\nTo jest prawdopodobnie zbyt mało.\nInstalacja może się nie udać!",
-       "config-ctype": "''' Krytyczny ''': PHP musi być skompilowany z obsługą [http://www.php.net/manual/en/ctype.installation.php rozszerzenia Ctype].",
-       "config-iconv": "<strong>Błąd krytyczny:</strong> PHP musi być skompilowane z obsługą [http://www.php.net/manual/en/iconv.installation.php rozszerzenia iconv].",
-       "config-json": "'''Błąd krytyczny:''' PHP skompilowano bez obsługa JSON.\nPrzed zainstalowaniem oprogramowania MediaWiki musisz zainstalować rozszerzenie PHP JSON albo rozszerzenie [http://pecl.php.net/package/jsonc PECL jsonc].\n* Rozszerzenie PHP jest zawarte w Red Hat Enterprise Linux (CentOS) 5 i 6, jednak musi zostać włączone w <code>/etc/php.ini</code> or <code>/etc/php.d/json.ini</code>.\n* Niektóre dystrybucje Linuksa, wydane po maju 2013, nie używają rozszerzenia PHP, lecz rozszerzenie PECL, jako <code>php5-json</code> lub <code>php-pecl-jsonc</code>.",
-       "config-mbstring-absent": "<strong>Błąd krytyczny:</strong> PHP musi być skompilowany z obsługą [http://www.php.net/manual/en/mbstring.setup.php rozszerzenia mbstring].",
        "config-xcache": "[Http://trac.lighttpd.net/xcache/ XCache] jest zainstalowany",
        "config-apc": "[Http://www.php.net/apc APC] jest zainstalowany",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] jest zainstalowany",
@@ -98,7 +93,7 @@
        "config-no-cli-uri": "<strong>Ostrzeżenie:</strong> Nie wskazano <code>--scriptpath</code>, użycie wartości domyślnej: <code>$1</code>.",
        "config-using-server": "„<nowiki>$1</nowiki>” jest adresem serwera, na którym instalowana jest wiki.",
        "config-using-uri": "Wiki będzie zainstalowana pod adresem \"<nowiki>$1$2</nowiki>\".",
-       "config-uploads-not-safe": "'''Uwaga''' – domyślny katalog do którego zapisywane są przesyłane pliki <code>$1</code> jest podatny na wykonanie dowolnego skryptu.\nChociaż MediaWiki sprawdza wszystkie przesłane pliki pod kątem bezpieczeństwa, zaleca się jednak, aby [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security zamknąć tę lukę w zabezpieczeniach] przed włączeniem przesyłania plików.",
+       "config-uploads-not-safe": "<strong>Uwaga</strong> – domyślny katalog, do którego zapisywane są przesyłane pliki <code>$1</code>, jest podatny na wykonanie dowolnego skryptu.\nChociaż MediaWiki sprawdza wszystkie przesłane pliki pod kątem bezpieczeństwa, zaleca się jednak, aby [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security zamknąć tę lukę w zabezpieczeniach] przed włączeniem przesyłania plików.",
        "config-no-cli-uploads-check": "'''Ostrzeżenie:''' Katalog domyślny przesyłanych plików ( <code>$1</code> ) nie jest sprawdzona względem luki\n wykonania dowolnego skryptu podczas instalacji CLI w zabezpieczeniach.",
        "config-brokenlibxml": "Twój system jest kombinacją wersji PHP i libxml2, która zawiera błędy mogące powodować ukryte uszkodzenia danych w MediaWiki i innych aplikacjach sieci web.\nWykonaj aktualizację libxml2 do wersji 2.7.3 lub późniejszej ([https://bugs.php.net/bug.php?id=45996 bug filed with PHP]).\nInstalacja została przerwana.",
        "config-suhosin-max-value-length": "Jest zainstalowany Suhosin i ogranicza długość parametru GET <code>length</code> do $1 bajtów. Komponent ResourceLoader w MediaWiki wykona obejście tego ograniczenia, ale kosztem wydajności.\nJeśli to możliwe, należy ustawić <code>suhosin.get.max_value_length</code> na 1024 lub więcej w <code>php.ini</code> oraz ustawić <code>$wgResourceLoaderMaxQueryLength</code> w <code>LocalSettings.php</code> na tę samą wartość.",
        "config-db-wiki-help": "Wprowadź nazwę użytkownika i hasło, które będą używane do połączenia z bazą danych podczas normalnej pracy wiki.\nJeśli konto nie istnieje, a konto instalacji ma wystarczające uprawnienia, to zostanie utworzone konto użytkownika z minimalnymi uprawnieniami wymaganymi do działania wiki.",
        "config-db-prefix": "Przedrostek tabel bazy danych:",
        "config-db-prefix-help": "Jeśli zachodzi potrzeba współdzielenia jednej bazy danych między wieloma wiki, lub między MediaWiki i inną aplikacją sieciową, można dodać przedrostek do wszystkich nazw tabel w celu uniknięcia konfliktów.\nNie należy używać spacji.\n\nTo pole zwykle pozostawiane jest puste.",
-       "config-db-charset": "Zestaw znaków bazy danych",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 binarny",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "MySQL 4.0 kompatybilny wstecz UTF-8",
-       "config-charset-help": "'''Ostrzeżenie:''' W przypadku użycia opcji '''UTF-8 zgodnego ze starszymi wersjami''' podczas korzystania z wersji MySQL nowszych niż 4.1 kopie zapasowe wykonane przy użyciu programu <code>mysqldump</code> będą bezużyteczne - wszystkie znaki inne niż ASCII zostaną zapisane nieprawidłowo.\n\nW '''trybie binarnym''', MediaWiki zapisuje tekst UTF-8 do bazy danych w polach binarnych.\nTo jest bardziej wydajne niż tryb UTF-8 w MySQL i pozwala na używanie pełnego zakresu znaków Unicode.\nW ''' trybie UTF-8''', MySQL będzie wiedzieć, w jakim zestawie znaków są dane i umożliwia ich prezentowanie i odpowiednią konwersję, ale nie pozwoli Ci przechowywać znaków spoza [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes podstawowej płaszczyzny wielojęzyczności].",
        "config-mysql-old": "Wymagany jest MySQL $1 lub nowszy; korzystasz z $2.",
        "config-db-port": "Port bazy danych:",
        "config-db-schema": "Nazwa schematu bazy danych, z którego ma korzystać MediaWiki:",
        "config-sqlite-readonly": "Plik <code>$1</code> nie jest zapisywalny.",
        "config-sqlite-cant-create-db": "Nie można utworzyć pliku bazy danych <code>$1</code>.",
        "config-sqlite-fts3-downgrade": "Brak wsparcia FTS3 dla PHP. Tabele zostały cofnięte",
-       "config-can-upgrade": "W bazie danych są już tabele MediaWiki.\nAby uaktualnić je do MediaWiki $1, kliknij '''Dalej'''.",
+       "config-can-upgrade": "W bazie danych są już tabele MediaWiki.\nAby uaktualnić je do MediaWiki $1, kliknij <strong>Dalej</strong>.",
        "config-upgrade-done": "Uaktualnienie kompletne.\n\nMożna teraz [$1 rozpocząć korzystanie z wiki].\n\nJeśli chcesz ponownie wygenerować plik <code>LocalSettings.php</code>, kliknij przycisk poniżej.\nJest to <strong>niezalecane</strong>, chyba że występują problemy z twoją wiki.",
        "config-upgrade-done-no-regenerate": "Aktualizacja zakończona.\n\nMożesz teraz [$1 zacząć korzystać ze swojej wiki].",
        "config-regenerate": "Ponowne generowanie LocalSettings.php →",
        "config-mysql-charset": "Zestaw znaków bazy danych:",
        "config-mysql-binary": "binarny",
        "config-mysql-utf8": "UTF‐8",
-       "config-mysql-charset-help": "W '''trybie binarnym''', MediaWiki zapisuje tekst UTF-8 do bazy danych w polach binarnych.\nJest on bardziej wydajny niż tryb UTF-8 w MySQL i pozwala na używanie znaków pełnego zakresu Unicode.\n\nW '''trybie UTF-8''', MySQL będzie znać zestaw znaków w jakim zakodowano dane, można też przedstawić i przekonwertuj je odpowiednio, ale nie pozwoli Ci przechowywać znaków spoza [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes podstawowej płaszczyzny wielojęzyczności].",
+       "config-mysql-charset-help": "W <strong>trybie binarnym</strong>, MediaWiki zapisuje tekst UTF-8 do bazy danych w polach binarnych.\nJest on bardziej wydajny niż tryb UTF-8 w MySQL i pozwala na używanie znaków z pełnego zakresu Unicode.\n\nW <strong>trybie UTF-8</strong> MySQL będzie znać zestaw znaków w jakim zakodowano dane, możne też je wyświetlić i odpowiednio przekonwertować, ale nie pozwoli Ci przechowywać znaków spoza [https://en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes podstawowej płaszczyzny wielojęzyczności].",
        "config-mssql-auth": "Typ uwierzytelniania:",
        "config-mssql-install-auth": "Wybierz typ uwierzytelniania, który będzie używany do łączenia się z bazą danych w trakcie procesu instalacji.\nJeśli wybierzesz „{{int:config-mssql-windowsauth}}”, będą wykorzystywane dane konta użytkownika, pod którym działa serwer www.",
        "config-mssql-web-auth": "Wybierz typ uwierzytelniania, który będzie używany przez serwer www do łączenia się z bazą danych podczas normalnego funkcjonowania wiki.\nJeśli wybierzesz „{{int:config-mssql-windowsauth}}”, użyte zostaną dane konta użytkownika, pod którym działa serwer www.",
        "config-profile-no-anon": "Wymagane utworzenie konta",
        "config-profile-fishbowl": "Wyłącznie zatwierdzeni edytorzy",
        "config-profile-private": "Prywatna wiki",
-       "config-profile-help": "Strony typu wiki działają najlepiej, gdy pozwolisz je edytować tak wielu osobom, jak to możliwie.\nW MediaWiki, można łatwo sprawdzić ostatnie zmiany i wycofać szkody, które są spowodowane przez naiwnych lub złośliwych użytkowników.\n\nJednakże wielu uznało MediaWiki użytecznym w różnorodnych rolach, a czasami nie jest łatwo przekonać wszystkich do korzyści ze sposobu działania wiki. Masz więc wybór.\n\nUstawienie '''{{int:config-profile-wiki}}''' pozwala każdemu na edycję, nawet bez logowania się.\nWiki z '''{{int:config-profile-no-anon}}''' zawiera dodatkowe możliwości ale może powstrzymywać potencjalnych edytorów.\n\nScenariusz '''{{int:config-profile-fishbowl}}''' umożliwia zatwierdzonym użytkownikom edycję, ale wyświetlanie stron jest powszechnie dostępne, włącznie z historią.\nUstawienie '''{{int:config-profile-private}}'' ' pozwala na wyświetlanie stron tylko zatwierdzonym użytkownikom, ta sama grupa może je edytować.\n\nBardziej skomplikowane konfiguracje uprawnień użytkowników są dostępne po zakończeniu instalacji, zobacz [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights odpowiednią część podręcznika].",
+       "config-profile-help": "Strony typu wiki działają najlepiej, gdy umożliwisz ich edytowanie jak największej liczbie osób.\nW MediaWiki można łatwo sprawdzić ostatnie zmiany i wycofać szkody, spowodowane przez naiwnych lub złośliwych użytkowników.\n\nPomimo, że wielu uznało MediaWiki jako przydatne do wielu zadań, nie jest łatwo przekonać wszystkich do korzyści ze sposobu działania wiki. Masz więc wybór.\n\nUstawienie <strong>{{int:config-profile-wiki}}</strong> pozwala każdemu na edycję, nawet bez logowania się.\nWiki z <strong>{{int:config-profile-no-anon}}</strong> dostarcza szersze możliwości związane z podziałem kont użytkowników, ale może zniechęcić okazjonalnych redaktorów.\n\nScenariusz <strong>{{int:config-profile-fishbowl}}</strong> umożliwia zatwierdzonym użytkownikom edycję, ale wyświetlanie stron jest powszechnie dostępne, włącznie z historią.\nUstawienie <strong>{{int:config-profile-private}}</strong> pozwala na wyświetlanie stron tylko zatwierdzonym użytkownikom, ta sama grupa może je edytować.\n\nBardziej złożone konfiguracje uprawnień użytkowników są dostępne po zakończeniu instalacji, zobacz [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights odpowiednią część podręcznika].",
        "config-license": "Prawa autorskie i licencja:",
        "config-license-none": "Brak stopki z licencją",
        "config-license-cc-by-sa": "Creative Commons – za uznaniem autora, na tych samych zasadach",
        "config-email-sender-help": "Wprowadź adres e-mail używany jako adres zwrotny wiadomości wychodzących.\nTo tam będą wysyłane szturchnięcia.\nWiele serwerów poczty wymaga, by co najmniej część nazwy domeny była prawidłowa.",
        "config-upload-settings": "Przesyłanie obrazków i plików",
        "config-upload-enable": "Włącz przesyłanie plików na serwer",
-       "config-upload-help": "Przesyłanie plików potencjalnie wystawia serwer na zagrożenia.\nWięcej informacji na ten temat można znaleźć w [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security sekcji zabezpieczeń] podręcznika.\n\nAby włączyć przesyłanie plików, zmień właściwości podkatalogu <code>images</code> katalogu głównego MediaWiki tak, aby serwer sieci web mógł zapisywać do niego.\nNastępnie włącz tę opcję.",
+       "config-upload-help": "Przesyłanie plików potencjalnie wystawia serwer na zagrożenia.\nWięcej informacji na ten temat można znaleźć w [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security sekcji zabezpieczeń] podręcznika.\n\nAby włączyć przesyłanie plików, zmień właściwości podkatalogu <code>images</code> katalogu głównego MediaWiki tak, aby serwer sieci web mógł zapisywać do niego.\nNastępnie włącz tę opcję.",
        "config-upload-deleted": "Katalog dla usuniętych plików",
        "config-upload-deleted-help": "Wybierz katalog, w którym będzie archiwum usuniętych plików.\nNajlepiej, aby nie był on dostępny z internetu.",
        "config-logo": "Adres URL logo:",
        "config-logo-help": "Domyślny motyw MediaWiki zawiera miejsce na logo wielkości 135 x 160 pikseli powyżej menu na pasku bocznym.\nPrześlij obrazek o odpowiednim rozmiarze, a następnie wpisz jego URL tutaj.\n\nMożesz użyć <code>$wgStylePath</code> lub <code>$wgScriptPath</code> jeżeli twoje logo jest relatywne do tych ścieżek.\n\nJeśli nie chcesz logo, pozostaw to pole puste.",
        "config-instantcommons": "Włącz Instant Commons",
-       "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons Instant Commons] jest funkcją, która pozwala wiki używać obrazów, dźwięków i innych mediów znalezionych na  witrynie [//commons.wikimedia.org/ Wikimedia Commons].\nAby to zrobić, MediaWiki wymaga dostępu do internetu.\n\nAby uzyskać więcej informacji na temat tej funkcji, w tym instrukcje dotyczące sposobu ustawiania go na wiki innych niż Wikimedia Commons, sprawdź w [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos podręczniku].",
+       "config-instantcommons-help": "[https://www.mediawiki.org/wiki/InstantCommons Instant Commons] jest funkcją, która pozwala wiki używać obrazów, dźwięków i innych mediów znalezionych na witrynie [https://commons.wikimedia.org/ Wikimedia Commons].\nAby to zrobić, MediaWiki wymaga dostępu do Internetu.\n\nAby uzyskać więcej informacji na temat tej funkcji, w tym instrukcje dotyczące sposobu ustawiania go na wiki innych niż Wikimedia Commons, sprawdź w [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos podręczniku].",
        "config-cc-error": "Wybieranie licencji Creative Commons nie dało wyniku.\nWpisz nazwę licencji ręcznie.",
        "config-cc-again": "Wybierz jeszcze raz...",
        "config-cc-not-chosen": "Wybierz, którą chcesz licencję Creative Commons i kliknij „proceed”.",
        "config-install-pg-plpgsql": "Sprawdzanie języka PL/pgSQL",
        "config-pg-no-plpgsql": "Musisz zainstalować język PL/pgSQL w bazie danych $1",
        "config-pg-no-create-privs": "Konto, które zostało określone dla instalacji nie ma wystarczających uprawnień, aby utworzyć konto.",
-       "config-pg-not-in-role": "Konto określone dla użytkownika sieci już istnieje.\nKonto określone dla instalacji nie ma uprawnień administratora ani nie jest przynależy do roli użytkownika sieci web, więc nie można utworzyć obiektów stanowiących własność użytkownika sieci.\n\nMediaWiki wymaga obecnie, by tabele były własnością konta zwykłego użytkownika. Podaj inną nazwę konta użytkownika, lub kliknij przycisk \"Wstecz\" i podaj nazwę konta użytkownika instalatora, które posiada odpowiednie uprawnienia.",
+       "config-pg-not-in-role": "Konto określone dla użytkownika sieci już istnieje.\nKonto określone dla instalacji nie ma uprawnień administratora, ani nie jest przynależy do roli użytkownika sieci web, więc nie można utworzyć obiektów stanowiących własność użytkownika sieci.\n\nMediaWiki obecnie wymaga, aby tabele były własnością konta zwykłego użytkownika. Podaj inną nazwę konta użytkownika albo kliknij przycisk „Wstecz” i podaj nazwę konta użytkownika instalatora, które posiada odpowiednie uprawnienia.",
        "config-install-user": "Tworzenie użytkownika bazy danych",
        "config-install-user-alreadyexists": "Konto użytkownika „$1” już istnieje",
        "config-install-user-create-failed": "Tworzenie użytkownika \"$1\" nie powiodło się: $2",
        "config-install-extension-tables": "Tworzenie tabel dla aktywnych rozszerzeń",
        "config-install-mainpage-failed": "Nie udało się wstawić strony głównej: $1",
        "config-install-done": "<strong>'''Gratulacje!</strong>\nUdało Ci się zainstalować MediaWiki.\n\nInstalator wygenerował plik konfiguracyjny <code>LocalSettings.php</code>.\n\nMusisz go pobrać i umieścić w katalogu głównym Twojej instalacji wiki (tym samym katalogu co index.php). Pobieranie powinno zacząć się automatycznie.\n\nJeżeli pobieranie nie zostało zaproponowane lub jeśli użytkownik je anulował, można ponownie uruchomić pobranie klikając poniższe łącze:\n\n$3\n\n<strong>Uwaga</strong>: Jeśli nie zrobisz tego teraz, wygenerowany plik konfiguracyjny nie będzie już dostępny po zakończeniu instalacji.\n\nPo załadowaniu pliku konfiguracyjnego możesz <strong>[$2 wejść na wiki]</strong>.",
+       "config-install-done-path": "<strong>Gratulacje!</strong>\nZainstalowałeś właśnie MediaWiki.\n\nInstalator wygenerował plik <code>LocalSettings.php</code>.\nZawiera całą Twoją konfigurację.\n\nMusisz go pobrać i umieścić w <code>$4</code>. Pobieranie powinno rozpocząć się automatycznie.\n\nJeżeli nie pojawiła się informacja o pobieraniu lub jeżeli ja anulowałeś, kliknij poniższy link:\n\n$3\n\n<strong>Uwaga:</strong> Jeżeli nie zrobisz tego teraz, wygenerowany plik konfiguracyjny nie będzie potem dostępny, jeżeli wyjdziesz z instalacji bez jego pobrania.\n\nGdy to będzie zrobione, możesz <strong>[$2 wejść na swoją wiki]</strong>.",
        "config-download-localsettings": "Pobierz <code>LocalSettings.php</code>",
        "config-help": "pomoc",
        "config-help-tooltip": "kliknij, aby rozwinąć",
        "config-nofile": "Nie udało się odnaleźć pliku \"$1\". Czy nie został usunięty?",
-       "config-extension-link": "Czy wiesz, że twoja wiki obsługuje [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions/pl rozszerzenia]?\n\nMożesz przejrzeć [//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category rozszerzenia według kategorii] lub [//www.mediawiki.org/wiki/Extension_Matrix Extension Matrix] aby zobaczyć pełną listę rozszerzeń.",
+       "config-extension-link": "Czy wiesz, że twoja wiki obsługuje [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions/pl rozszerzenia]?\n\nMożesz przejrzeć [https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category rozszerzenia według kategorii] lub [https://www.mediawiki.org/wiki/Extension_Matrix Extension Matrix] aby zobaczyć pełną listę rozszerzeń.",
        "mainpagetext": "<strong>Instalacja MediaWiki powiodła się.</strong>",
-       "mainpagedocfooter": "Zobacz [//meta.wikimedia.org/wiki/Help:Contents przewodnik użytkownika], aby uzyskać informacje o działaniu oprogramowania wiki.\n\n== Na początek ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings/pl Lista ustawień konfiguracyjnych]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/pl MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Komunikaty o nowych wersjach MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Przetłumacz MediaWiki na swój język]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam \nDowiedz się, jak walczyć ze spamem na swojej wiki]"
+       "mainpagedocfooter": "Zobacz [https://meta.wikimedia.org/wiki/Help:Contents przewodnik użytkownika], aby uzyskać informacje o działaniu oprogramowania wiki.\n\n== Na początek ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings/pl Lista ustawień konfiguracyjnych]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/pl MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Komunikaty o nowych wersjach MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Przetłumacz MediaWiki na swój język]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam \nDowiedz się, jak walczyć ze spamem na swojej wiki]"
 }
index 56886be..0747672 100644 (file)
        "config-restart": "É!, felo torna parte",
        "config-welcome": "=== Contròj d'ambient ===\nDle verìfiche ëd base a saran adess fàite për vëdde se st'ambient a va bin për l'instalassion ëd MediaWiki.\nCh'as visa d'anserì coste anformassion s'a sërca d'agiut su com completé l'instalassion.",
        "config-copyright": "=== Drit d'Autor e Condission ===\n\n$1\n\nCost-sì a l'é un programa lìber e a gràtis: a peul ridistribuilo e/o modifichelo sota le condission dla licensa pùblica general GNU com publicà da la Free Software Foundation; la version 2 dla Licensa, o (a toa sèrnìa) qualsëssìa version pi recenta.\n\nCost programa a l'é distribuì ant la speransa ch'a sia ùtil, ma '''sensa gnun-e garansìe'''; sensa gnanca la garansia implìssita ëd '''comersiabilità''' o '''d'esse adat a un but particolar'''.\n\nA dovrìa avèj arseivù <doclink href=Copying>na còpia ëd la licensa pùblica general GNU</doclink> ansema a sto programa; dësnò, ch'a scriva a la Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA opura [http://www.gnu.org/copyleft/gpl.html ch'a la lesa an linia].",
-       "config-sidebar": "* [//www.mediawiki.org Intrada MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Guida dl'Utent]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Guida dl'Aministrator]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Soens an ciamo]\n----\n* <doclink href=Readme>Ch'am lesa</doclink>\n* <doclink href=ReleaseNotes>Nòte ëd publicassion</doclink>\n* <doclink href=Copying>Còpia</doclink>\n* <doclink href=UpgradeDoc>Agiornament</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org Intrada MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Guida dl'Utent]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Guida dl'Aministrator]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Soens an ciamo]\n----\n* <doclink href=Readme>Ch'am lesa</doclink>\n* <doclink href=ReleaseNotes>Nòte ëd publicassion</doclink>\n* <doclink href=Copying>Còpia</doclink>\n* <doclink href=UpgradeDoc>Agiornament</doclink>",
        "config-env-good": "L'ambient a l'é stàit controlà.\nIt peule instalé MediaWiki.",
        "config-env-bad": "L'ambient a l'é stàit controlà.\nIt peule pa instalé MediaWiki.",
        "config-env-php": "PHP $1 a l'é instalà.",
        "config-env-hhvm": "HHVM $1 a l'é instalà.",
        "config-unicode-using-intl": "As deuvra l'[http://pecl.php.net/intl estension intl PECL] për la normalisassion Unicode.",
-       "config-unicode-pure-php-warning": "'''Avis:''' L'[http://pecl.php.net/intl estension intl PECL] a l'é pa disponìbil për gestì la normalisassion Unicode, da già che l'implementassion an PHP pur a faliss për lentëssa.\nS'a gestiss un sit a àut tràfich, a dovrìa lese cheicòs an sla [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalisassion Unicode].",
-       "config-unicode-update-warning": "'''Avis:''' La version instalà dlë spassiador ëd normalisassion Unicode a deuvra na version veja ëd la librarìa dël [http://site.icu-project.org/ proget ICU].\nA dovrìa fé n'[//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations agiornament] s'a l'é anteressà a dovré Unicode.",
+       "config-unicode-pure-php-warning": "'''Avis:''' L'[http://pecl.php.net/intl estension intl PECL] a l'é pa disponìbil për gestì la normalisassion Unicode, da già che l'implementassion an PHP pur a faliss për lentëssa.\nS'a gestiss un sit a àut tràfich, a dovrìa lese cheicòs an sla [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalisassion Unicode].",
+       "config-unicode-update-warning": "'''Avis:''' La version instalà dlë spassiador ëd normalisassion Unicode a deuvra na version veja ëd la librarìa dël [http://site.icu-project.org/ proget ICU].\nA dovrìa fé n'[https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations agiornament] s'a l'é anteressà a dovré Unicode.",
        "config-no-db": "Impossìbil trové un pilòta ëd base ëd dàit bon! A dev instalé un pilòta ëd base ëd dàit për PHP.\n{{PLURAL:$2|La sòrt ëd base ëd dàit mantnùa a l'é costa|Le sòrt ëd base ëd dàit mantùe a son coste}} sì-dapress: $1.\n\nS'a l'é compilasse PHP chiel-midem, ch'a lo configura torna con un client ëd base ëd dàit abilità, për esempi an dovrand <code>./configure --with-mysql</code>.\nS'a l'ha instalà PHP dai pachèt Debian o Ubuntu, antlora a dev ëdcò anstalé, për esempi, ël mòdul <code>php5-mysql</code>.",
        "config-outdated-sqlite": "'''Avis''': chiel a l'ha SQLite $1, che a l'é pi vej che la version mìnima dont a-i é damanca $2. SQLite a sarà pa disponìbil.",
        "config-no-fts3": "'''Avis''': SQLite a l'é compilà sensa ël mòdul [//sqlite.org/fts3.html FTS3], le funsion d'arserca a saran pa disponìbij su cost motor.",
-       "config-register-globals-error": "<strong>Eror: l'opsion <code>[http://php.net/register_globals register_globals]</code> dël PHP a l'é abilità.\nA dev esse disabilità për continué con l'instalassion.</strong>\nCh'a vëdda [https://www.mediawiki.org/wiki/register_globals https://www.mediawiki.org/wiki/register_globals] për avèj d'agiut an sla manera ëd felo.",
-       "config-magic-quotes-gpc": "<strong>Eror crìtich: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-gpc magic_quotes_gpc] a l'é ativ!</strong>\nCosta opsion a danegia ij dat d'intrada ëd fasson nen prevedìbil.\nA peul pa instalé o dovré MediaWiki fin-a a che st'opsion a sia nen disabilità.",
-       "config-magic-quotes-runtime": "'''Fatal: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] a l'é ativ!'''\nCosta opsion a danegia ij dat d'intrada an manera pa prevedìbil.\nA peul pa instalé o dovré MediaWiki se st'opsion a l'é pa disabilità.",
-       "config-magic-quotes-sybase": "'''Fatal: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] a l'é ativ!'''\nCosta opsion a danegia ij dat d'intrada an manera pa prevedìbil.\nA peul pa instalé o dovré MediaWiki se st'opsion a l'é pa disabilità.",
-       "config-mbstring": "'''Fatal: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] a l'é ativ!'''\nCosta opsion a càusa d'eror e a peul danegié ij dat d'intrada an manera pa prevedìbil.\nA peul pa instalé o dovré MediaWiki se st'opsion a l'é pa disabilità.",
-       "config-safe-mode": "'''Avis:''' [http://www.php.net/features.safe-mode Safe mode] ëd PHP a l'é ativ.\nA peul causé ëd problema, dzortut s'as deuvro ël cariament d'archivi e ël manteniment ëd <code>math</code>.",
-       "config-xml-bad": "Ël mòdol XML ed PHP a l'é mancant.\nMediaWiki a l'ha da manca dle funsion ant ës mòdul e a marcërà pa an costa configurassion.\nA dev instalé ël pachet php-xml RPM.",
        "config-pcre-no-utf8": "'''Fatal''': ël mòdul PCRE ëd PHP a smija esse compilà sensa l'apògg PCRE_UTF8.\nMediaWiki a ciama l'apògg d'UTF8 për marcé për da bin.",
        "config-memory-raised": "<code>memory_limit</code> ëd PHP a l'é $1, aussà a $2.",
        "config-memory-bad": "'''Avis:''' <code>memory_limit</code> ëd PHP a l'é $1.\nSossì a l'é probabilment tròp bass.\nL'instalassion a peul falì!",
-       "config-ctype": "'''Fatal''': PHP a dev esse compilà con l'apògg për l'[http://www.php.net/manual/en/ctype.installation.php extension Ctype].",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] a l'é instalà",
        "config-apc": "[http://www.php.net/apc APC] a l'é instalà",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache]  a l'é instalà",
-       "config-no-cache": "'''Avis:''' As treuva pa [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] o [http://www.iis.net/download/WinCacheForPhp WinCache]. Ël buté d'oget an memòria local a l'é pa abilità.",
        "config-mod-security": "'''Avis''': Sò servent për l'aragnà a l'ha [http://modsecurity.org/ mod_security] abilità. Se mal configurà, a peul causé dij problema për MediaWiki o d'àutri programa ch'a përmëtto a j'utent dë spedì un contnù qualsëssìa.\nCh'a fasa arferiment a la [http://modsecurity.org/documentation/ mod_security documentassion] o ch'a contata l'echip ëd sò servissi s'a-j rivo dj'eror casuaj.",
        "config-diff3-bad": "GNU diff3 pa trovà.",
        "config-imagemagick": "Trovà ImageMagick: <code>$1</code>.\nLa miniaturisassion ëd figure a sarà abilità s'it abìlite le carie.",
@@ -82,9 +73,9 @@
        "config-no-cli-uri": "'''Avis''': pa gnun <code>--scriptpath</code> specificà, a sarà dovrà ël predefinì: <code>$1</code>.",
        "config-using-server": "Utilisassion dël nòm ëd servent \"<nowiki>$1</nowiki>\".",
        "config-using-uri": "Utilisassion ëd l'anliura ëd servent «<nowiki>$1$2</nowiki>».",
-       "config-uploads-not-safe": "'''Avis:''' Sò dossié stàndard për carié <code>$1</code> a l'é vulneràbil a l'esecussion ëd qualsëssìa senari.\nBele che MediaWiki a contròla j'aspet ëd sicurëssa ëd tùit j'archivi carià, a l'é motobin arcomandà ëd [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security saré ës përtus ëd sicurëssa] prima d'abilité ij cariament.",
+       "config-uploads-not-safe": "'''Avis:''' Sò dossié stàndard për carié <code>$1</code> a l'é vulneràbil a l'esecussion ëd qualsëssìa senari.\nBele che MediaWiki a contròla j'aspet ëd sicurëssa ëd tùit j'archivi carià, a l'é motobin arcomandà ëd [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security saré ës përtus ëd sicurëssa] prima d'abilité ij cariament.",
        "config-no-cli-uploads-check": "'''Avis:''' Toa cartela predefinìa për j-amportassion (<code>$1</code>) a l'é nen controlà a propòsit ëd la vulnerabilità\nd'esecussion ëd senari arbitrari durant l'istalassion CLI.",
-       "config-brokenlibxml": "Sò sistema a l'ha na combinassion ëd version PHP e libxml2 che a l'ha dij bigat e a peul provoché la corussion ëd dat ëstërmà an MediaWiki e d'àutre aplicassion për l'aragnà.\nCh'a agiorna a PHP 5.2.9 o pi neuv e libxml2 2.7.3 o pi neuv ([//bugs.php.net/bug.php?id=45996 bug filed with PHP]).\nIstalassion abortìa.",
+       "config-brokenlibxml": "Sò sistema a l'ha na combinassion ëd version PHP e libxml2 che a l'ha dij bigat e a peul provoché la corussion ëd dat ëstërmà an MediaWiki e d'àutre aplicassion për l'aragnà.\nCh'a agiorna a PHP 5.2.9 o pi neuv e libxml2 2.7.3 o pi neuv ([https://bugs.php.net/bug.php?id=45996 bigat archivià con PHP]).\nAnstalassion abortìa.",
        "config-suhosin-max-value-length": "Suhosin a l'é instalà e a lìmita la longheur dël paràmetr GET a $1 byte. Ël component ResourceLoader ëd MediaWiki a travajerà an rispetand ës lìmit, ma sòn a degraderà le prestassion. Se possìbil, a dovrìa amposté suhosin.get.max_value_lenght a 1024 o pi àut an <code>php.ini</code>, e amposté <code>$wgResourceLoaderMaxQueryLength</code> al midem valor an LocalSettings.php .",
        "config-db-type": "Sòrt ëd base ëd dàit:",
        "config-db-host": "Ospitant ëd la base ëd dàit:",
        "config-db-wiki-help": "Ch'a anseriss lë stranòm d'utent e la ciav che a saran dovrà për coleghesse a la base ëd dàit durant j'operassion normaj dla wiki.\nS'ël cont a esist pa, e ël cont d'instalassion a l'ha ij privilegi ch'a-i van, sto cont utent a sarà creà con ij privilegi mìnin për fé marcé la wiki.",
        "config-db-prefix": "Prefiss dle tàule dla base ëd dàit:",
        "config-db-prefix-help": "S'a l'ha dabzògn ëd partagé na base ëd dàit an tra vàire wiki, o tra MediaWiki e n'àutra aplicassion dl'aragnà, a peul serne ëd gionté un prefiss a tùit ij nòm ëd le tàule për evité ëd conflit.\nCh'a deuvra pa dë spassi.\n\nCost camp a l'é lassà normalment veuid.",
-       "config-db-charset": "Ansema dij caràter dla base ëd dàit",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 binari",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "MySQL 4.0 compatìbil a l'andaré con UTF-8",
-       "config-charset-help": "'''Avis:''' S'a deuvra '''UTF-8 compatìbil a l'andaré''' su MySQL 4.1+, e peui a fa na còpia con <code>mysqldump</code>, a podrìa scancelé tùit ij caràter nen-ASCII, dësbland sensa speranse soe còpie!\n\nAn '''manera binaria''', MediaWiki a memorisa ël test UTF-8 an dij camp binari ant la base ëd dàit.\nSossì a l'é pi eficient che la manera UTF-8 ëd MySQL, e a përmët ëd dovré tut l'ansema ëd caràter Unicode.\nAn '''manera UTF-8''', MySQL a arconòss an che ansema ëd caràter a son ij sò dat, e a peul presenteje e convertije apropriatament, ma a-j lassrà pa memorisé ij caràter dzora al [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes pian multilenghe ëd base].",
        "config-mysql-old": "A-i é da manca ëd MySQL $1 o pi recent, chiel a l'ha $2.",
        "config-db-port": "Porta dla base ëd dàit:",
        "config-db-schema": "Schema për MediaWiki",
        "config-mysql-charset": "Ansem ëd caràter dla base ëd dàit:",
        "config-mysql-binary": "Binari",
        "config-mysql-utf8": "UTF-8",
-       "config-mysql-charset-help": "An '''manera binaria''', MediaWiki a memorisa ël test UTF-8 ant la base ëd dàit an camp binari.\nSòn a l'é pi eficient che la manera UTF-8 ëd MySQL, e a-j përmët ëd dovré l'ansema antregh ëd caràter Unicode.\n\nAn '''manera UTF-8''', MySQL a conossrà an che ansem ëd caràter a son ij sò dat, e a peul presenteje e convertije apropriatament, ma a-j lassa pa memorisé ij caràter ëdzora al [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes pian multilenghìstich ëd base].",
+       "config-mysql-charset-help": "An '''manera binaria''', MediaWiki a memorisa ël test UTF-8 ant la base ëd dàit an camp binari.\nSòn a l'é pi eficient che la manera UTF-8 ëd MySQL, e a-j përmët ëd dovré l'ansema antregh ëd caràter Unicode.\n\nAn '''manera UTF-8''', MySQL a conossrà an che ansem ëd caràter a son ij sò dat, e a peul presenteje e convertije apropriatament, ma a-j lassa pa memorisé ij caràter ëdzora al [https://en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes pian multilenghìstich ëd base].",
        "config-site-name": "Nòm ëd la wiki:",
        "config-site-name-help": "Sòn a comparirà ant la bara dël tìtol dël navigador e an vàire d'àutri pòst.",
        "config-site-name-blank": "Ch'a buta un nòm ëd sit.",
        "config-profile-no-anon": "A venta creé un cont",
        "config-profile-fishbowl": "Mach editor autorisà",
        "config-profile-private": "Wiki privà",
-       "config-profile-help": "Le wiki a marcio mej quand ch'a lassa che pì përsone possìbij a-j modìfico.\nAn MediaWiki, a l'é bel fé revisioné j'ùltime modìfiche, e buté andré qualsëssìa dann che a sia fàit da dj'utent noviss o malissios.\n\nAn tùit ij cas, an tanti a l'han trovà che MediaWiki a sia ùtil ant na gran varietà ëd manere, e dle vire a l'é pa bel fé convince cheidun dij vantagi dla wiki.\nParèj a l'ha doe possibilità.\n\nËl model '''{{int:config-profile-wiki}}''' a përmët a chicassìa ëd modifiché, bele sensa intré ant ël sistema.\nNa wiki con  '''{{int:config-profile-no-anon}}''' a dà pì 'd contròl, ma a peul slontané dij contributor ocasionaj.\n\nËl senari '''{{int:config-profile-fishbowl}}''' a përmët a j'utent aprovà ëd modifiché, ma ël pùblich a peul vëdde le pàgine, comprèisa la stòria.\nUn '''{{int:config-profile-private}}''' a përmët mach a j'utent aprovà ëd vëdde le pàgine, con la midema partìa ch'a peul modifiché.\n\nConfigurassion ëd drit d'utent pi complicà a son disponìbij apress l'instalassion, vëdde la [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights pàgina a pòsta dël manual].",
+       "config-profile-help": "Le wiki a marcio mej quand ch'a lassa che pì përsone possìbij a-j modìfico.\nAn MediaWiki, a l'é bel fé revisioné j'ùltime modìfiche, e buté andré qualsëssìa dann che a sia fàit da dj'utent noviss o malissios.\n\nAn tùit ij cas, an tanti a l'han trovà che MediaWiki a sia ùtil ant na gran varietà ëd manere, e dle vire a l'é pa bel fé convince cheidun dij vantagi dla wiki.\nParèj a l'ha doe possibilità.\n\nËl model '''{{int:config-profile-wiki}}''' a përmët a chicassìa ëd modifiché, bele sensa intré ant ël sistema.\nNa wiki con  '''{{int:config-profile-no-anon}}''' a dà pì 'd contròl, ma a peul slontané dij contributor ocasionaj.\n\nËl senari '''{{int:config-profile-fishbowl}}''' a përmët a j'utent aprovà ëd modifiché, ma ël pùblich a peul vëdde le pàgine, comprèisa la stòria.\nNa '''{{int:config-profile-private}}''' a përmët mach a j'utent aprovà ëd vëdde le pàgine, con la midema partìa ch'a peul modifiché.\n\nConfigurassion ëd drit d'utent pi complicà a son disponìbij apress l'instalassion, vëdde la [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights pàgina a pòsta dël manual].",
        "config-license": "Drit d'autor e licensa",
        "config-license-none": "Gnun-a licensa an nòta an bass",
        "config-license-cc-by-sa": "Creative Commons atribussion an part uguaj",
        "config-email-sender-help": "Ch'a anserissa l'adrëssa ëd pòsta eletrònica da dovré com adrëssa d'artorn dij mëssagi an surtìa.\nAmbelessì a l'é andova j'arspòste a saran mandà.\nMotobin ëd servent ëd pòsta a ciamo che almanch la part dël nòm ëd domini a sia bon-a.",
        "config-upload-settings": "Cariament ëd figure e archivi",
        "config-upload-enable": "Abilité ël cariament d'archivi",
-       "config-upload-help": "Carié d'archivi potensialment a espon sò servent a d'arzigh ëd sicurëssa.\nPer pi d'anformassion, ch'a lesa la [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security session ëd sicurëssa] d'ës manual.\n\nPër abilité ël cariament d'archivi, ch'a modìfica la manera dël sot-dossié dle <code>figure</code> sota al dossié rèis ëd MediaWiki an manera che ël servent dl'aragnà a peussa scrivlo.\nPeui ch'a abìlita costa opsion.",
+       "config-upload-help": "Carié d'archivi potensialment a espon sò servent a d'arzigh ëd sicurëssa.\nPer pi d'anformassion, ch'a lesa la [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security session ëd sicurëssa] d'ës manual.\n\nPër abilité ël cariament d'archivi, ch'a modìfica la manera dël sot-dossié dle <code>figure</code> sota al dossié rèis ëd MediaWiki an manera che ël servent dl'aragnà a peussa scrivlo.\nPeui ch'a abìlita costa opsion.",
        "config-upload-deleted": "Dossié për j'archivi scancelà:",
        "config-upload-deleted-help": "ch'a serna un dossié andova goerné j'archivi scancelà.\nIdealment, sòn a dovrìa pa esse acessìbil an sl'aragnà.",
        "config-logo": "Anliura dla marca:",
        "config-logo-help": "La pel dë stàndard ëd MediaWiki a comprend lë spassi për na marca ëd 135x160 pontin dzora la lista dla bara lateral.\nCh'a dëscaria na figura ëd la dimension aproprià, e ch'a anserissa l'anliura ambelessì.\n\nS'a veul gnun-e marche, ch'a lassa ës camp bianch.",
        "config-instantcommons": "Abìlita Instant Commons",
-       "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons Instant Commons] a l'é na funsion ch'a përmët a le wiki ëd dovré dle figure, dij son e d'àutri mojen trovà an sël sit [//commons.wikimedia.org/ Wikimedia Commons].\nPër dovré sossì, MediaWiki a l'ha da manca dl'acess a la ragnà.\n\nPër pi d'anformassion su sta funsion, comprèise j'istrussion ëd com ampostela për wiki diferente da Wikimedia Commons, ch'a consulta [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos ël manual].",
+       "config-instantcommons-help": "[https://www.mediawiki.org/wiki/InstantCommons Instant Commons] a l'é na funsion ch'a përmët a le wiki ëd dovré dle figure, dij son e d'àutri mojen trovà an sël sit [https://commons.wikimedia.org/ Wikimedia Commons].\nPër dovré sossì, MediaWiki a l'ha da manca dl'acess a la ragnà.\n\nPër pi d'anformassion su sta funsion, comprèise j'istrussion ëd com ampostela për wiki diferente da Wikimedia Commons, ch'a consulta [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos ël manual].",
        "config-cc-error": "La selession ëd la licensa Creative Commons a l'ha dàit gnun arzultà.\nCh'a anserissa ël nòm dla licensa a man.",
        "config-cc-again": "Torna cheuje...",
        "config-cc-not-chosen": "Sern che licensa Creative Commons it veule e sgnaca \"proceed\".",
        "config-help": "agiut",
        "config-nofile": "L'archivi «$1» as treuva nen. A l'é stàit ëscancelà?",
        "mainpagetext": "'''MediaWiki a l'é staita anstalà a la përfession.'''",
-       "mainpagedocfooter": "Che a varda la [//meta.wikimedia.org/wiki/Help:Contents User's Guide] për avèj dj'anformassion ant sël coma dovré ël programa dla wiki.\n\n== Për anandiesse a travajé ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista dij paràmeter ëd configurassion]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki Chestion frequente]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista ëd discussion an sla distribussion ëd MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localisa MediaWiki për toa lenga]"
+       "mainpagedocfooter": "Che a varda la [https://meta.wikimedia.org/wiki/Help:Contents User's Guide] për avèj dj'anformassion ant sël coma dovré ël programa dla wiki.\n\n== Për anandiesse a travajé ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista dij paràmeter ëd configurassion]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Chestion frequente su MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista ëd discussion an sla distribussion ëd MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Ch'a localisa MediaWiki për toa lenga]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Amprende coma combate contra la rumenta su soa wiki]"
 }
index cd9a3f9..a283fce 100644 (file)
@@ -5,5 +5,5 @@
                ]
        },
        "mainpagetext": "'''MediaWiki's instalaciōni izpalla.'''",
-       "mainpagedocfooter": "Wīdais [//meta.wikimedia.org/wiki/Help:Contents przewodnik użytkownika] kāi gaūlai infōrmaciōnei ezze wiki prōgramijas tērpausnan.\n\n== En pagaūseņu ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
+       "mainpagedocfooter": "Wīdais [https://meta.wikimedia.org/wiki/Help:Contents przewodnik użytkownika] kāi gaūlai infōrmaciōnei ezze wiki prōgramijas tērpausnan.\n\n== En pagaūseņu ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
 }
index 35835d2..5e8d7de 100644 (file)
@@ -44,8 +44,6 @@
        "config-db-name-oracle": "د اومتوکبنسټ طرحه:",
        "config-db-username": "د توکبنسټ کارن-نوم:",
        "config-db-password": "د توکبنسټ پټنوم:",
-       "config-charset-mysql5-binary": "مای اس کيو ال 4.1/5.0 دوييز",
-       "config-charset-mysql5": "مای اس کيو ال 4.1/5.0 يو ټي اف-8",
        "config-db-port": "د توکبنسټ ور:",
        "config-db-schema": "د مېډياويکي طرحه:",
        "config-type-mssql": "مايکروسافټ SQL پالنگر",
@@ -91,5 +89,5 @@
        "config-download-localsettings": "ښکته کول <code>LocalSettings.php</code>",
        "config-help": "لارښود",
        "mainpagetext": "<strong>MediaWiki نصب شو.</strong>",
-       "mainpagedocfooter": "د ويکي ساوترې د کارولو د  مالوماتو په اړه [//meta.wikimedia.org/wiki/Help:Contents د کارن لارښود] سره سلا وکړۍ.\n\n== پيلول ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings د امستنو د سازونې لړليک]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ د ميډياويکي ډېرځليزې پوښتنې]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce د مېډياويکي د برېښليکونو لړليک]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources خپلې ژبې لپاره MediaWiki ځايتابول]"
+       "mainpagedocfooter": "د ويکي ساوترې د کارولو د  مالوماتو په اړه [https://meta.wikimedia.org/wiki/Help:Contents د کارن لارښود] سره سلا وکړۍ.\n\n== پيلول ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings د امستنو د سازونې لړليک]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ د ميډياويکي ډېرځليزې پوښتنې]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce د مېډياويکي د برېښليکونو لړليک]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources خپلې ژبې لپاره MediaWiki ځايتابول]"
 }
index f1e4d4c..8cf22e2 100644 (file)
        "config-restart": "Sim, reiniciar",
        "config-welcome": "=== Verificações de ambiente ===\nSerão realizadas verificações básicas para determinar se este ambiente é apropriado para a instalação do MediaWiki.\nLembre-se de incluir estas informações se for procurar por suporte para como concluir a instalação.",
        "config-copyright": "=== Direitos autorais e Termos de uso ===\n\n$1\n\nEste programa é software livre; você pode redistribuí-lo e/ou modificá-lo nos termos da licença GNU General Public License tal como publicada pela Free Software Foundation; tanto a versão 2 da Licença, como (por opção sua) qualquer versão posterior.\n\nEste programa é distribuído na esperança de que seja útil, mas <strong>sem qualquer garantia</strong>; inclusive, sem a garantia implícita da <strong>possibilidade de ser comercializado</strong> ou de <strong>adequação para qualquer finalidade específica</strong>.\nConsulte a licença GNU General Public License para mais detalhes.\n\nEm conjunto com este programa você deve ter recebido <doclink href=Copying>uma cópia da licença GNU General Public License</doclink>; se não a recebeu, peça-a por escrito para Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA ou [http://www.gnu.org/copyleft/gpl.html leia-a na internet].",
-       "config-sidebar": "* [//www.mediawiki.org/wiki/MediaWiki Página principal do MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Manual do usuário]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Manual do administrador]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ]\n----\n* <doclink href=Readme>Leia-me</doclink>\n* <doclink href=ReleaseNotes>Notas de lançamento</doclink>\n* <doclink href=Copying>Licença</doclink>\n* <doclink href=UpgradeDoc>Atualizando</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org/wiki/MediaWiki Página principal do MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Manual do usuário]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Manual do administrador]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ]\n----\n* <doclink href=Readme>Leia-me</doclink>\n* <doclink href=ReleaseNotes>Notas de lançamento</doclink>\n* <doclink href=Copying>Licença</doclink>\n* <doclink href=UpgradeDoc>Atualizando</doclink>",
        "config-env-good": "O ambiente foi verificado.\nVocê pode instalar o MediaWiki.",
        "config-env-bad": "O ambiente foi verificado.\nVocê não pode instalar o MediaWiki.",
        "config-env-php": "O PHP $1 está instalado.",
        "config-env-hhvm": "HHVM $1 está instalado.",
        "config-unicode-using-intl": "Usando a [http://pecl.php.net/intl extensão intl PECL] para a normalização Unicode.",
-       "config-unicode-pure-php-warning": "<strong>Aviso</strong>: A [http://pecl.php.net/intl extensão intl PECL] não está disponível para efetuar a normalização Unicode, abortando e passando para a lenta implementação de PHP puro.\nSe o seu site tem um alto volume de tráfego, informe-se sobre a [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalização Unicode].",
-       "config-unicode-update-warning": "<strong>Aviso:</strong> A versão instalada do wrapper de normalização Unicode usa uma versão mais antiga da biblioteca do [//www.site.icu-project.org/projeto ICU].\nVocê deve [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations atualizar] se você tem quaisquer preocupações com o uso do Unicode.",
+       "config-unicode-pure-php-warning": "<strong>Aviso</strong>: A [http://pecl.php.net/intl extensão intl PECL] não está disponível para efetuar a normalização Unicode, abortando e passando para a lenta implementação de PHP puro.\nSe o seu site tem um alto volume de tráfego, informe-se sobre a [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalização Unicode].",
+       "config-unicode-update-warning": "<strong>Aviso:</strong> A versão instalada do wrapper de normalização Unicode usa uma versão mais antiga da biblioteca do [//www.site.icu-project.org/projeto ICU].\nVocê deve [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations atualizar] se você tem quaisquer preocupações com o uso do Unicode.",
        "config-no-db": "Não foi possível encontrar um driver apropriado para a banco de dados! Você precisa instalar um driver de banco de dados para PHP. {{PLURAL:$2|É aceite o seguinte tipo|São aceites os seguintes tipos}} de banco de dados: $1.\n\nSe compilou o PHP você mesmo, reconfigure-o com um cliente de banco de dados ativado, por exemplo, usando <code>./configure --with-mysqli</code>.\nSe instalou o PHP a partir de um pacote Debian ou Ubuntu, então também precisa instalar, por exemplo, o pacote <code>php5-mysql</code>.",
        "config-outdated-sqlite": "<strong>Aviso:</strong> você tem o SQLite versão $1, que é menor do que a versão mínima necessária $2. O SQLite não estará disponível.",
        "config-no-fts3": "<strong>Aviso</strong> O SQLite foi compilado sem o [//sqlite.org/fts3.html módulo FTS3], as funcionalidades de pesquisa não estarão disponíveis nesta instalação.",
-       "config-mbstring": "<strong>Erro fatal: A opção [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] está ativada!</strong>\nEsta opção causa erros e pode corromper os dados de forma imprevisível.\nVocê não pode instalar ou utilizar o MediaWiki a menos que esta opção seja desativada.",
-       "config-xml-bad": "Falta o módulo XML do PHP.\nO MediaWiki necessita de funções deste módulo e não funcionará com esta configuração.\nPode precisar de instalar o pacote RPM chamado php-xml.",
        "config-pcre-old": "<strong>Erro fatal:</strong> É necessário o PCRE $1 ou versão posterior.\nO binário do seu PHP foi vinculado com o PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Mais informações].",
        "config-pcre-no-utf8": "<strong>Erro fatal:</strong> O módulo PCRE do PHP parece ser compilado sem suporte a PCRE_UTF8.\nO MediaWiki requer suporte a UTF-8 para funcionar corretamente.",
        "config-memory-raised": "A configuração <code>memory_limit</code> do PHP era $1; foi aumentada para $2.",
        "config-memory-bad": "<strong>Aviso:</strong> A configuração <code>memory_limit</code> do PHP é $1.\nIsso provavelmente é muito baixo.\nA instalação pode falhar!",
-       "config-ctype": "<strong>Erro fatal:</strong> O PHP deve ser compilado com suporte para a [http://www.php.net/manual/en/ctype.installation.php extensão Ctype].",
-       "config-iconv": "<strong>Fatal:</strong> O PHP deve ser compilado com suporte para a [http://www.php.net/manual/en/iconv.installation.php extensão iconv].",
-       "config-json": "<strong>Erro fatal:</strong> O PHP foi compilado sem suporte a JSON.\nVocê deve instalar a extensão PHP JSON ou a extensão [http://pecl.php.net/package/jsonc PECL jsonc] antes de instalar o MediaWiki.\n* A extensão JSON do PHP já está incluída no Red Hat Enterprise Linux (CentOS) 5 e 6, mas deve ser habilitado no <code>/etc/php.ini</code> ou no <code>/etc/php.d/json.ini</code>.\n* Algumas distribuições Linux lançadas após maio de 2013 omitem a extensão PHP, oferecendo em seu lugar a extensão PECL como parte do pacote <code>php5-json</code> ou do <code>php-pecl-jsonc</code>.",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] está instalado",
        "config-apc": "[http://www.php.net/apc APC] está instalado",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] está instalado",
        "config-db-wiki-help": "Digite o nome de usuário e senha que será usada para se conectar ao banco de dados durante a operação normal wiki.\nSe a conta não existir, e a conta de instalação tiver privilégios suficientes, a conta do usuário será criada com os privilégios mínimos necessários para o funcionamento do wiki.",
        "config-db-prefix": "Prefixo da tabela de banco de dados:",
        "config-db-prefix-help": "Se você precisar compartilhar a base de dados entre várias wikis, ou entre o MediaWiki e uma outra aplicação web, você pode deve escolher adicionar um prefixo ao nome de todas as tabelas para evitar conflitos.\nNão utilize espaços.\n\nEste campo é habitualmente deixado em branco.",
-       "config-db-charset": "Conjunto de caracteres do banco de dados",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 binary",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "MySQL 4.0 compatível com versões anteriores UTF-8",
        "config-mysql-old": "MySQL $1 ou posterior é necessário. Você tem $2.",
        "config-db-port": "Porta da base de dados:",
        "config-db-schema": "Esquema para MediaWiki",
        "config-help": "ajuda",
        "config-help-tooltip": "clique para expandir",
        "config-nofile": "O arquivo \"$1\" não foi encontrado. Ele foi apagado?",
-       "config-extension-link": "Você sabia que sua wiki suporta [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions extensões]?\n\nVocê pode explorar as  [//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category extensões por categoria] ou visitar a [//www.mediawiki.org/wiki/Extension_Matrix Matriz de Extensões] para ver a lista completa.",
+       "config-extension-link": "Você sabia que sua wiki suporta [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions extensões]?\n\nVocê pode explorar as  [https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category extensões por categoria] ou visitar a [https://www.mediawiki.org/wiki/Extension_Matrix Matriz de Extensões] para ver a lista completa.",
        "mainpagetext": "<strong>O MediaWiki foi instalado com sucesso.</strong>",
-       "mainpagedocfooter": "Consulte o [//meta.wikimedia.org/wiki/Help:Contents Manual de Usuário] para informações de como usar o software wiki.\n\n== Começando ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista de opções de configuração]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ do MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de discussão com avisos de novas versões do MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Traduza o MediaWiki para seu idioma]"
+       "mainpagedocfooter": "Consulte o [https://meta.wikimedia.org/wiki/Help:Contents Manual de Usuário] para informações de como usar o software wiki.\n\n== Começando ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista de opções de configuração]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ do MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de discussão com avisos de novas versões do MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Traduza o MediaWiki para seu idioma]"
 }
index e0affaf..49f242a 100644 (file)
        "config-restart": "Sim, reiniciar",
        "config-welcome": "=== Verificações do ambiente ===\nSão realizadas verificações básicas para determinar se este ambiente é apropriado para instalação do MediaWiki.\nSe necessitar de pedir ajuda durante a instalação, deve fornecer os resultados destas verificações.",
        "config-copyright": "=== Direitos de autor e Condições de uso ===\n\n$1\n\nEste programa é software livre; pode redistribuí-lo e/ou modificá-lo nos termos da licença GNU General Public License, tal como publicada pela Free Software Foundation; tanto a versão 2 da Licença, como (por opção sua) qualquer versão posterior.\n\nEste programa é distribuído na esperança de que seja útil, mas '''sem qualquer garantia'''; inclusive, sem a garantia implícita da '''possibilidade de ser comercializado''' ou de '''adequação para qualquer finalidade específica'''.\nConsulte a licença GNU General Public License para mais detalhes.\n\nEm conjunto com este programa deve ter recebido <doclink href=Copying>uma cópia da licença GNU General Public License</doclink>; se não a recebeu, peça-a por escrito a Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA ou [http://www.gnu.org/copyleft/gpl.html leia-a na internet].",
-       "config-sidebar": "* [//www.mediawiki.org/wiki/MediaWiki/pt Página principal do MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents/pt Ajuda]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents/pt Manual técnico]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ]\n----\n* <doclink href=Readme>Leia-me</doclink>\n* <doclink href=ReleaseNotes>Notas de lançamento</doclink>\n* <doclink href=Copying>Cópia</doclink>\n* <doclink href=UpgradeDoc>Atualização</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org/wiki/MediaWiki/pt Página principal do MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents/pt Ajuda]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents/pt Manual técnico]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ]\n----\n* <doclink href=Readme>Leia-me</doclink>\n* <doclink href=ReleaseNotes>Notas de lançamento</doclink>\n* <doclink href=Copying>Cópia</doclink>\n* <doclink href=UpgradeDoc>Atualização</doclink>",
        "config-env-good": "O ambiente foi verificado.\nPode instalar o MediaWiki.",
        "config-env-bad": "O ambiente foi verificado.\nNão pode instalar o MediaWiki.",
        "config-env-php": "O PHP $1 está instalado.",
        "config-env-hhvm": "HHVM $1 está instalado.",
        "config-unicode-using-intl": "A usar a [http://pecl.php.net/intl extensão intl PECL] para a normalização Unicode.",
-       "config-unicode-pure-php-warning": "'''Aviso''': A [http://pecl.php.net/intl extensão intl PECL] não está disponível para efetuar a normalização Unicode. Irá recorrer-se à implementação em PHP puro, que é mais lenta.\nSe o seu site tem alto volume de tráfego, devia informar-se um pouco sobre a [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations/pt normalização Unicode].",
-       "config-unicode-update-warning": "'''Aviso''': A versão instalada do wrapper de normalização Unicode usa uma versão mais antiga da biblioteca do [http://site.icu-project.org/ projeto ICU].\nDevia [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations atualizá-la] se tem quaisquer preocupações sobre o uso do Unicode.",
+       "config-unicode-pure-php-warning": "'''Aviso''': A [http://pecl.php.net/intl extensão intl PECL] não está disponível para efetuar a normalização Unicode. Irá recorrer-se à implementação em PHP puro, que é mais lenta.\nSe o seu site tem alto volume de tráfego, devia informar-se um pouco sobre a [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations/pt normalização Unicode].",
+       "config-unicode-update-warning": "'''Aviso''': A versão instalada do wrapper de normalização Unicode usa uma versão mais antiga da biblioteca do [http://site.icu-project.org/ projeto ICU].\nDevia [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations atualizá-la] se tem quaisquer preocupações sobre o uso do Unicode.",
        "config-no-db": "Não foi possível encontrar um controlador apropriado da base de dados! Precisa de instalar um controlador da base de dados para o PHP. {{PLURAL:$2|É aceite o seguinte tipo|São aceites os seguintes tipos}} de base de dados: $1.\n\nSe fez a compilação do PHP, reconfigure-o com um cliente de base de dados ativado; por exemplo, usando <code>./configure --with-mysql</code>.\nSe instalou o PHP a partir de um pacote Debian ou Ubuntu, então precisa de instalar também, por exemplo, o pacote <code>php5-mysql</code>.",
        "config-outdated-sqlite": "'''Aviso''': Tem a versão $1 do SQLite, que é anterior à versão mínima necessária, a $2. O SQLite não estará disponível.",
        "config-no-fts3": "'''Aviso''': O SQLite foi compilado sem o módulo [//sqlite.org/fts3.html FTS3]; as funcionalidades de pesquisa não estarão disponíveis nesta instalação.",
-       "config-mbstring": "'''Erro fatal: A opção [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] está ativa!'''\nEsta opção causa erros e pode corromper os dados de uma forma imprevisível.\nNão pode instalar ou usar o MediaWiki a menos que esta opção seja desativada.",
-       "config-xml-bad": "Falta o módulo XML do PHP.\nO MediaWiki necessita de funções deste módulo e não funcionará com esta configuração.\nPode precisar de instalar o pacote RPM chamado php-xml.",
        "config-pcre-old": "<strong>Erro fatal:</strong> É necessário o PCRE $1 ou versão posterior.\nO <i>link</i> do seu binário PHP foi feito com o PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Mais informações].",
        "config-pcre-no-utf8": "'''Erro fatal''': O módulo PCRE do PHP parece ter sido compilado sem suporte PCRE_UTF8.\nO MediaWiki necessita do suporte UTF-8 para funcionar corretamente.",
        "config-memory-raised": "A configuração <code>memory_limit</code> do PHP era $1; foi aumentada para $2.",
        "config-memory-bad": "'''Aviso:''' A configuração <code>memory_limit</code> do PHP é $1.\nIsto é provavelmente demasiado baixo.\nA instalação poderá falhar!",
-       "config-ctype": "'''Erro fatal''': O PHP tem de ser compilado com suporte para a [http://www.php.net/manual/en/ctype.installation.php extensão Ctype].",
-       "config-iconv": "<strong>Erro fatal:</strong> O PHP deve ser compilado com suporte à [http://www.php.net/manual/en/iconv.installation.php extensão iconv].",
-       "config-json": "<strong>Erro fatal:</strong> O PHP foi compilado sem suporte de JSON.\nTem de instalar a extensão JSON do PHP (incluída no PHP 5.2 ou posterior) ou a extensão [http://pecl.php.net/package/jsonc PECL jsonc] antes de instalar o MediaWiki.\n* A extensão JSON do PHP está incluída nas distribuções 5 e 6 do Red Hat Enterprise Linux (CentOS), mas tem de estar ativa nos ficheiros <code>/etc/php.ini</code> ou <code>/etc/php.d/json.ini</code>.\n* Algumas distribuições do Linux posteriores a maio de 2013 omitem a extensão JSON do PHP e substituem-na pela extensão PECL chamando-lhe <code>php5-json</code> ou <code>php-pecl-jsonc</code>.",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] instalada",
        "config-apc": "[http://www.php.net/apc APC] instalada",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] instalada",
@@ -91,7 +86,7 @@
        "config-no-cli-uri": "'''Aviso''':  Não foi especificado um <code>--scriptpath</code>; por omissão, será usado: <code>$1</code>.",
        "config-using-server": "Será usado o nome do servidor \"<nowiki>$1</nowiki>\".",
        "config-using-uri": "Será usada a URL do servidor \"<nowiki>$1$2</nowiki>\".",
-       "config-uploads-not-safe": "'''Aviso:''' O diretório por omissão para carregamentos <code>$1</code>, está vulnerável à execução arbitrária de scripts.\nEmbora o MediaWiki verifique a existência de ameaças de segurança em todos os ficheiros enviados, é altamente recomendado que [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security vede esta vulnerabilidade de segurança] antes de possibilitar uploads.",
+       "config-uploads-not-safe": "'''Aviso:''' O diretório por omissão para carregamentos <code>$1</code>, está vulnerável à execução arbitrária de scripts.\nEmbora o MediaWiki verifique a existência de ameaças de segurança em todos os ficheiros enviados, é altamente recomendado que [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security vede esta vulnerabilidade de segurança] antes de possibilitar uploads.",
        "config-no-cli-uploads-check": "'''Aviso:''' O diretório por omissão para carregamentos, <code>$1</code>, não é verificado para determinar se é vulnerável à execução de código arbitrário durante a instalação por CLI (\"Command-line Interface\").",
        "config-brokenlibxml": "O seu sistema tem uma combinação de versões do PHP e do libxml2 conhecida por ser problemática, podendo causar corrupção de dados no MediaWiki e noutras aplicações da internet.\nAtualize para a versão 2.7.3 ou posterior do libxml2 ([https://bugs.php.net/bug.php?id=45996 incidência reportada no PHP]).\nInstalação cancelada.",
        "config-suhosin-max-value-length": "O Suhosin está instalado e limita o parâmetro GET <code>length</code> a $1 bytes.\nO componente ResourceLoader do MediaWiki consegue exceder este limite, mas prejudicando o desempenho.\nSe lhe for possível, deve atribuir ao parâmetro <code>suhosin.get.max_value_length</code> o valor 1024 ou maior no ficheiro <code>php.ini</code>, e definir o mesmo valor para <code>$wgResourceLoaderMaxQueryLength</code> no ficheiro LocalSettings.php.",
        "config-db-wiki-help": "Introduza o nome de utilizador e a palavra-chave que serão usados para aceder à base de dados durante a operação normal da wiki.\nSe o utilizador não existir na base de dados, mas a conta de instalação tiver privilégios suficientes, o utilizador que introduzir será criado na base de dados com os privilégios mínimos necessários para a operação normal da wiki.",
        "config-db-prefix": "Prefixo para as tabelas da base de dados:",
        "config-db-prefix-help": "Se necessitar de partilhar uma só base de dados entre várias wikis, ou entre o MediaWiki e outra aplicação, pode escolher adicionar um prefixo ao nome de todas as tabelas desta instalação, para evitar conflitos.\nNão use espaços.\n\nNormalmente, este campo deve ficar vazio.",
-       "config-db-charset": "Conjunto de caracteres da base de dados",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 binary",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "MySQL 4.0 backwards-compatible UTF-8",
-       "config-charset-help": "'''Aviso:''' Se usar '''backwards-compatible UTF-8''' (\"UTF-8 compatível com versões anteriores\") no MySQL 4.1+, e depois fizer cópias de segurança da base de dados usando <code>mysqldump</code>, poderá destruir todos os caracteres que não fazem parte do conjunto ASCII, corrompendo assim, de forma irreversível, as suas cópias de segurança!\n\nNo modo '''binary''' (\"binário\"), o MediaWiki armazena o texto UTF-8 na base de dados em campos binários.\nIsto é mais eficiente do que o modo UTF-8 do MySQL e permite que sejam usados todos os caracteres Unicode.\nNo modo '''UTF-8''', o MySQL saberá em que conjunto de caracteres os seus dados estão e pode apresentá-los e convertê-los da forma mais adequada,\nmas não lhe permitirá armazenar caracteres acima do [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Plano Multilingue Básico].",
        "config-mysql-old": "É necessário o MySQL $1 ou posterior; tem a versão $2.",
        "config-db-port": "Porta da base de dados:",
        "config-db-schema": "Esquema ''(schema)'' do MediaWiki",
        "config-mysql-charset": "Conjunto de caracteres da base de dados:",
        "config-mysql-binary": "Binário",
        "config-mysql-utf8": "UTF-8",
-       "config-mysql-charset-help": "No modo '''binary''' (\"binário\"), o MediaWiki armazena o texto UTF-8 na base de dados em campos binários.\nIsto é mais eficiente do que o modo UTF-8 do MySQL e permite que sejam usados todos os caracteres Unicode.\n\nNo modo '''UTF-8''', o MySQL saberá em que conjunto de caracteres os seus dados estão e pode apresentá-los e convertê-los da forma mais adequada,\nmas não lhe permitirá armazenar caracteres acima do [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Plano Multilingue Básico].",
+       "config-mysql-charset-help": "No modo '''binary''' (\"binário\"), o MediaWiki armazena o texto UTF-8 na base de dados em campos binários.\nIsto é mais eficiente do que o modo UTF-8 do MySQL e permite que sejam usados todos os caracteres Unicode.\n\nNo modo '''UTF-8''', o MySQL saberá em que conjunto de caracteres os seus dados estão e pode apresentá-los e convertê-los da forma mais adequada,\nmas não lhe permitirá armazenar caracteres acima do [https://en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Plano Multilingue Básico].",
        "config-mssql-auth": "Tipo de autenticação:",
        "config-mssql-install-auth": "Selecione o tipo de autenticação a usar para ligar à base de dados durante o processo de instalação.\nSe selecionar \"{{int:config-mssql-windowsauth}}\", serão usadas as credenciais do utilizador com que o servidor de Internet está a ser executado.",
        "config-mssql-web-auth": "Selecione o tipo de autenticação que o servidor de Internet irá usar para se ligar ao servidor da base de dados durante a operação normal da wiki.\nSe selecionar \"{{int:config-mssql-windowsauth}}\", serão usadas as credenciais do utilizador com que o servidor de Internet está a ser executado.",
        "config-profile-no-anon": "Criação de conta exigida",
        "config-profile-fishbowl": "Somente utilizadores autorizados",
        "config-profile-private": "Wiki privada",
-       "config-profile-help": "As wikis funcionam melhor quando se deixa tantas pessoas editá-las quanto possível.\nNo MediaWiki, é fácil rever as alterações recentes e reverter quaisquer estragos causados por utilizadores novatos ou maliciosos.\n\nNo entanto, muitas pessoas consideram o MediaWiki útil de variadas formas e nem sempre é fácil convencer todas as pessoas dos benefícios desta filosofia wiki.\nPor isso pode optar.\n\nUma '''{{int:config-profile-wiki}}''' permite que todos a editem, sem sequer necessitar de autenticação.\nUma wiki com '''{{int:config-profile-no-anon}}''' atribui mais responsabilidade, mas pode afastar os colaboradores ocasionais.\n\nUm cenário '''{{int:config-profile-fishbowl}}''' permite que os utilizadores aprovados editem, mas que o público visione as páginas, incluindo o historial das mesmas.\nUma '''{{int:config-profile-private}}''' só permite que os utilizadores aprovados visionem as páginas e as editem.\n\nApós a instalação, estarão disponíveis mais configurações de privilégios. Consulte [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights a entrada relevante no Manual].",
+       "config-profile-help": "As wikis funcionam melhor quando se deixa tantas pessoas editá-las quanto possível.\nNo MediaWiki, é fácil rever as alterações recentes e reverter quaisquer estragos causados por utilizadores novatos ou maliciosos.\n\nNo entanto, muitas pessoas consideram o MediaWiki útil de variadas formas e nem sempre é fácil convencer todas as pessoas dos benefícios desta filosofia wiki.\nPor isso pode optar.\n\nUma '''{{int:config-profile-wiki}}''' permite que todos a editem, sem sequer necessitar de autenticação.\nUma wiki com '''{{int:config-profile-no-anon}}''' atribui mais responsabilidade, mas pode afastar os colaboradores ocasionais.\n\nUm cenário '''{{int:config-profile-fishbowl}}''' permite que os utilizadores aprovados editem, mas que o público visione as páginas, incluindo o historial das mesmas.\nUma '''{{int:config-profile-private}}''' só permite que os utilizadores aprovados visionem as páginas e as editem.\n\nApós a instalação, estarão disponíveis mais configurações de privilégios. Consulte [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights a entrada relevante no Manual].",
        "config-license": "Direitos de autor e licença:",
        "config-license-none": "Sem rodapé com a licença",
        "config-license-cc-by-sa": "Creative Commons - Atribuição - Partilha nos Mesmos Termos",
        "config-email-sender-help": "Introduza o endereço de correio electrónico que será usado como endereço de retorno nas mensagens electrónicas de saída.\nÉ para este endereço que serão enviadas as mensagens que não podem ser entregues.\nMuitos servidores de correio electrónico exigem que pelo menos a parte do nome do domínio seja válida. \\",
        "config-upload-settings": "Carregamento de imagens e ficheiros",
        "config-upload-enable": "Possibilitar o carregamento de ficheiros",
-       "config-upload-help": "O carregamento de ficheiros expõe o seu servidor a riscos de segurança.\nPara mais informações, leia a [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security seção sobre segurança] do Manual Técnico.\n\nPara permitir o carregamento de ficheiros, altere as permissões do subdiretório <code>images</code> no diretório de raiz do MediaWiki para que o servidor de internet possa escrever nele.\nDepois ative esta opção.",
+       "config-upload-help": "O carregamento de ficheiros expõe o seu servidor a riscos de segurança.\nPara mais informações, leia a [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security secção sobre segurança] do Manual Técnico.\n\nPara permitir o carregamento de ficheiros, altere as permissões do subdiretório <code>images</code> no diretório de raiz do MediaWiki para que o servidor de Internet possa escrever nele.\nDepois ative esta opção.",
        "config-upload-deleted": "Diretório para os ficheiros apagados:",
        "config-upload-deleted-help": "Escolha um diretório onde serão arquivados os ficheiros apagados.\nO ideal é que este diretório não possa ser diretamente acedido a partir da internet.",
        "config-logo": "URL do logótipo:",
        "config-logo-help": "O tema padrão do MediaWiki inclui espaço para um logótipo de 135x160 pixels acima do menu da barra lateral.\nColoque na wiki uma imagem com estas dimensões e introduza aqui a URL dessa imagem.\n\nSe não pretende usar um logótipo, deixe este campo em branco.",
        "config-instantcommons": "Ativar Instant Commons",
-       "config-instantcommons-help": "O [//www.mediawiki.org/wiki/InstantCommons Instant Commons] é uma funcionalidade que permite que as wikis usem imagens, áudio e outros ficheiros multimédia disponíveis no site [//commons.wikimedia.org/ Wikimedia Commons].\nPara poder usá-los, o MediaWiki necessita de acesso à internet.\n\nPara mais informações sobre esta funcionalidade, incluindo instruções sobre como configurá-la para usar outras wikis em vez da Wikimedia Commons, consulte o [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos Manual Técnico].",
+       "config-instantcommons-help": "O [https://www.mediawiki.org/wiki/InstantCommons Instant Commons] é uma funcionalidade que permite que as wikis usem imagens, áudio e outros ficheiros multimédia disponíveis no sítio [https://commons.wikimedia.org/ Wikimedia Commons].\nPara poder usá-los, o MediaWiki necessita de acesso à Internet.\n\nPara mais informações sobre esta funcionalidade, incluindo instruções sobre como configurá-la para usar outras wikis em vez da Wikimedia Commons, consulte o [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos Manual Técnico].",
        "config-cc-error": "O auxiliar de escolha de licenças da Creative Commons não produziu resultados.\nIntroduza o nome da licença manualmente.",
        "config-cc-again": "Escolha outra vez...",
        "config-cc-not-chosen": "Escolha a licença da Creative Commons que pretende e clique \"proceed\".",
        "config-install-extension-tables": "A criar as tabelas das extensões ativadas",
        "config-install-mainpage-failed": "Não foi possível inserir a página principal: $1",
        "config-install-done": "<strong>Parabéns!</strong>\nTerminou a instalação do MediaWiki.\n\nO instalador gerou um ficheiro <code>LocalSettings.php</code>.\nEste ficheiro contém todas as configurações.\n\nPrecisa de fazer a descarga do ficheiro e colocá-lo no diretório de raiz da sua instalação (o mesmo diretório onde está o ficheiro index.php). Esta descarga deverá ter sido iniciada automaticamente.\n\nSe a descarga não foi iniciada, ou se o cancelou, pode recomeçá-la ao clicar na ligação abaixo:\n\n$3\n\n<strong>Nota</strong>: Se não fizer isto agora, o ficheiro que foi gerado deixará de estar disponível quando sair do processo de instalação.\n\nDepois de terminar o passo anterior, pode <strong>[$2 entrar na wiki]</strong>.",
+       "config-install-done-path": "<strong>Parabéns!</strong>\nTerminou a instalação do MediaWiki.\n\nO instalador gerou um ficheiro <code>LocalSettings.php</code>.\nEste ficheiro contém todas as configurações.\n\nPrecisa de fazer a descarga do ficheiro e colocá-lo no diretório <code>$4</code>. Esta descarga deverá ter sido iniciada automaticamente.\n\nSe a descarga não foi iniciada, ou se o cancelou, pode recomeçá-la ao clicar na ligação abaixo:\n\n$3\n\n<strong>Nota</strong>: Se não fizer isto agora, o ficheiro que foi gerado deixará de estar disponível quando sair do processo de instalação.\n\nDepois de terminar o passo anterior, pode <strong>[$2 entrar na wiki]</strong>.",
        "config-download-localsettings": "Descarga do <code>LocalSettings.php</code>",
        "config-help": "ajuda",
        "config-help-tooltip": "clique para expandir",
        "config-nofile": "Não foi possível encontrar o ficheiro \"$1\". Terá sido apagado?",
-       "config-extension-link": "Sabia que a sua wiki suporta [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions extensões]?\n\nPode procurar [//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category extensões por categoria].",
+       "config-extension-link": "Sabia que a sua wiki suporta [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions extensões]?\n\nPode procurar [https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category extensões por categoria].",
        "mainpagetext": "<strong>MediaWiki instalado.</strong>",
-       "mainpagedocfooter": "Consulte o [//meta.wikimedia.org/wiki/Help:Contents Guia de Utilizadores] para informações sobre o uso do software wiki.\n\n== Onde começar ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista de opções de configuração]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Perguntas e respostas frequentes sobre o MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Subscreva a lista de divulgação de novas versões do MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Regionalize o MediaWiki para seu idioma]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Aprenda a combater spam na sua wiki]"
+       "mainpagedocfooter": "Consulte o [https://meta.wikimedia.org/wiki/Help:Contents Guia de Utilizadores] para informações sobre o uso do software wiki.\n\n== Onde começar ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista de opções de configuração]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Perguntas e respostas frequentes sobre o MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Subscreva a lista de divulgação de novas versões do MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Regionalize o MediaWiki para seu idioma]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Aprenda a combater spam na sua wiki]"
 }
index b2ff103..69a6830 100644 (file)
        "config-no-db": "{{doc-important|Do not translate \"<code>./configure --with-mysqli</code>\" and \"<code>php5-mysql</code>\".}}\nParameters:\n* $1 is comma separated list of database types supported by MediaWiki.\n* $2 is the count of items in $1 - for use in plural.",
        "config-outdated-sqlite": "Used as warning. Parameters:\n* $1 - the version of SQLite that has been installed\n* $2 - minimum version",
        "config-no-fts3": "A \"[[:wikipedia:Front and back ends|backend]]\" is a system or component that ordinary users don't interact with directly and don't need to know about, and that is responsible for a distinct task or service - for example, a storage back-end is a generic system for storing data which other applications can use. Possible alternatives for back-end are \"system\" or \"service\", or (depending on context and language) even leave it untranslated.",
-       "config-mbstring": "{{Related|Config-fatal}}",
-       "config-xml-bad": "Status message in the MediaWiki installer environment checks.",
        "config-pcre-old": "Parameters:\n* $1 - minimum PCRE version number\n* $2 - the installed version of [[wikipedia:PCRE|PCRE]]\n{{Related|Config-fatal}}",
        "config-pcre-no-utf8": "PCRE is a name of a programmers' library for supporting regular expressions. It can probably be translated without change.\n{{Related|Config-fatal}}",
        "config-memory-raised": "Parameters:\n* $1 is the configured <code>memory_limit</code>.\n* $2 is the value to which <code>memory_limit</code> was raised.",
        "config-memory-bad": "Parameters:\n* $1 is the configured <code>memory_limit</code>.",
-       "config-ctype": "Message if support for [http://www.php.net/manual/en/ctype.installation.php Ctype] is missing from PHP.\n{{Related|Config-fatal}}",
-       "config-iconv": "Message if support for [http://www.php.net/manual/en/iconv.installation.php iconv] is missing from PHP.\n{{Related|Config-fatal}}",
-       "config-json": "Message if support for [[wikipedia:JSON|JSON]] is missing from PHP.\n* \"[[wikipedia:Red Hat Enterprise Linux|Red Hat Enterprise Linux]]\" (RHEL) and \"[[wikipedia:CentOS|CentOS]]\" refer to two almost-identical Linux distributions. \"5 and 6\" refers to version 5 or 6 of either distribution. Because RHEL 7 likely will not include the PHP extension, do not translate as \"5 or newer\".\n* \"The [http://www.php.net/json PHP extension]\" is the JSON extension included with PHP 5.2 and newer.\n* \"The [http://pecl.php.net/package/jsonc PECL extension]\" is based on the PHP extension, though excludes code some distributions have found unacceptable (see [[phab:T49431]]).\n{{Related|Config-fatal}}",
-       "config-mbstring-absent": "Message if support for [http://www.php.net/manual/en/mbstring.installation.php mbstring] is missing from PHP.\n{{Related|Config-fatal}}",
        "config-xcache": "Message indicates if this program is available",
        "config-apc": "Message indicates if this program is available",
        "config-wincache": "Message indicates if this program is available",
        "config-install-extension-tables": "Notice shown to the user during the install about progress.",
        "config-install-mainpage-failed": "Used as error message. Parameters:\n* $1 - detailed error message",
        "config-install-done": "Parameters:\n* $1 is the URL to LocalSettings download\n* $2 is a link to the wiki.\n* $3 is a download link with attached download icon. The config-download-localsettings message will be used as the link text.",
+       "config-install-done-path": "Parameters:\n* $1 is the URL to LocalSettings download\n* $2 is a link to the wiki.\n* $3 is a download link with attached download icon. The config-download-localsettings message will be used as the link text.\n* $4 is the filesystem location of where the LocalSettings.php file should be saved to.",
        "config-download-localsettings": "The link text used in the download link in config-install-done.",
        "config-help": "This is used in help boxes.\n{{Identical|Help}}",
        "config-help-tooltip": "Tooltip for the 'help' links ({{msg-mw|config-help}}), to make it clear they'll expand in place rather than open a new page",
index 2cdf74d..9f8e0a3 100644 (file)
@@ -16,5 +16,5 @@
        "config-help": "yanapay",
        "config-nofile": "\"$1\" sutiyuq willañiqiqa manam tarisqachu. Qullusqachu?",
        "mainpagetext": "'''MediaWiki nisqa llamp'u kaqqa aypaylla takyachisqañam.'''",
-       "mainpagedocfooter": "Wiki llamp'u kaqmanta willasunaykipaqqa [//meta.wikimedia.org/wiki/Help:Contents Ruraqpaq yanapana] ''(User's Guide)'' sutiyuq p'anqata qhaway.\n\n== Qallarichkaspa ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Kunphigurasyun churanamanta sutisuyu]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki nisqamanta pasaq tapuykuna]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki kachaykuy e-chaski sutisuyu]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources MediaWiki nisqata qampa rimaykiman t'ikray]"
+       "mainpagedocfooter": "Wiki llamp'u kaqmanta willasunaykipaqqa [https://meta.wikimedia.org/wiki/Help:Contents Ruraqpaq yanapana] ''(User's Guide)'' sutiyuq p'anqata qhaway.\n\n== Qallarichkaspa ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Kunphigurasyun churanamanta sutisuyu]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki nisqamanta pasaq tapuykuna]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki kachaykuy e-chaski sutisuyu]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources MediaWiki nisqata qampa rimaykiman t'ikray]"
 }
index debfaf1..61345ba 100644 (file)
@@ -5,5 +5,5 @@
                ]
        },
        "mainpagetext": "'''MediaWiki è vegnì installà cun success.'''",
-       "mainpagedocfooter": "Consultai il [//meta.wikimedia.org/wiki/Help:Contents manual per utilisaders] per infurmaziuns davart l'utilisaziun da questa software da wiki.\n\n== Cumenzar ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Glista da las opziuns per la configuraziun]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Glista da mail da MediaWiki cun annunzias da novas versiuns]"
+       "mainpagedocfooter": "Consultai il [https://meta.wikimedia.org/wiki/Help:Contents manual per utilisaders] per infurmaziuns davart l'utilisaziun da questa software da wiki.\n\n== Cumenzar ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Glista da las opziuns per la configuraziun]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Glista da mail da MediaWiki cun annunzias da novas versiuns]"
 }
index e0c78b7..14c60fe 100644 (file)
@@ -67,9 +67,6 @@
        "config-db-account-lock": "Folosește același nume de utilizator și parolă în timpul funcționării normale",
        "config-db-wiki-account": "Contul de utilizator pentru funcționarea normală",
        "config-db-prefix": "Prefixul tabelelor din baza de date:",
-       "config-db-charset": "Setul de caractere al bazei de date",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 binar",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
        "config-db-port": "Portul bazei de date:",
        "config-db-schema": "Schema pentru MediaWiki:",
        "config-sqlite-dir": "Director de date SQLite:",
        "config-help": "ajutor",
        "config-help-tooltip": "clic pentru a extinde",
        "mainpagetext": "'''Programul Wiki a fost instalat cu succes.'''",
-       "mainpagedocfooter": "Consultați [//meta.wikimedia.org/wiki/Help:Contents Ghidul utilizatorului (en)] pentru informații despre utilizarea software-ului wiki.\n\n== Primii pași ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista parametrilor configurabili (en)]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Întrebări frecvente despre MediaWiki (en)]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de discuții a MediaWiki (en)]"
+       "mainpagedocfooter": "Consultați [https://meta.wikimedia.org/wiki/Help:Contents Ghidul utilizatorului (en)] pentru informații despre utilizarea software-ului wiki.\n\n== Primii pași ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista parametrilor configurabili (en)]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Întrebări frecvente despre MediaWiki (en)]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de discuții a MediaWiki (en)]"
 }
index bf8da76..198422a 100644 (file)
        "config-db-type": "Tipe de database:",
        "config-db-host-oracle": "Database TNS:",
        "config-db-name-oracle": "Scheme d'u database:",
-       "config-db-charset": "'Nzieme de carattere d'u database",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 binary",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "MySQL 4.0 backwards-compatible UTF-8",
        "config-db-port": "Porte d'u database:",
        "config-db-schema": "Scheme pe MediaUicchi:",
        "config-type-mysql": "MySQL (o combatibbile)",
@@ -65,5 +61,5 @@
        "config-help": "ajute",
        "config-help-tooltip": "cazze pe spannere",
        "mainpagetext": "'''MediaUicchi ha state 'nstallete.'''",
-       "mainpagedocfooter": "Vè 'ndruche [//meta.wikimedia.org/wiki/Help:Contents User's Guide] pe l'mbormaziune sus a cumme s'ause 'u softuer uicchi.\n\n== Pe accumenzà ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Elenghe de le 'mbostaziune pa configurazione]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ de MediaUicchi]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Elenghe d'a poste de MediaUicchi]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localizzazzione de MediaUicchi pa lènga toje]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam 'Mbare accume combattere condre a 'u rummate sus 'a uicchi toje]"
+       "mainpagedocfooter": "Vè 'ndruche [https://meta.wikimedia.org/wiki/Help:Contents User's Guide] pe l'mbormaziune sus a cumme s'ause 'u softuer uicchi.\n\n== Pe accumenzà ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Elenghe de le 'mbostaziune pa configurazione]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ de MediaUicchi]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Elenghe d'a poste de MediaUicchi]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localizzazzione de MediaUicchi pa lènga toje]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam 'Mbare accume combattere condre a 'u rummate sus 'a uicchi toje]"
 }
index 21f0cb0..34ef3e8 100644 (file)
@@ -20,7 +20,8 @@
                        "Seb35",
                        "Striking Blue",
                        "Ильнар",
-                       "Macofe"
+                       "Macofe",
+                       "StasR"
                ]
        },
        "config-desc": "Инсталлятор MediaWiki",
@@ -32,7 +33,7 @@
        "config-localsettings-badkey": "Вы указали неправильный ключ обновления",
        "config-upgrade-key-missing": "Обнаружена существующая установленная копия MediaWiki.\nЧтобы обновить обнаруженную установку, пожалуйста, добавьте следующую строку в конец вашего файла <code>LocalSettings.php</code>:\n\n$1",
        "config-localsettings-incomplete": "Похоже, что существующий файл <code>LocalSettings.php</code> неполон.\nНе установлена переменная $1.\nПожалуйста, измените <code>LocalSettings.php</code> так, чтобы значение этой переменной было задано, затем нажмите «{{int:Config-continue}}».",
-       "config-localsettings-connection-error": "Ð\9fÑ\80оизоÑ\88ла Ð¾Ñ\88ибка Ð¿Ñ\80и Ð¿Ð¾Ð´ÐºÐ»Ñ\8eÑ\87ении Ðº Ð±Ð°Ð·Ðµ Ð´Ð°Ð½Ð½Ñ\8bÑ\85 Ñ\81 Ð¿Ð¾Ð¼Ð¾Ñ\89Ñ\8cÑ\8e Ð½Ð°Ñ\81Ñ\82Ñ\80оек, Ñ\83казаннÑ\8bÑ\85 Ð² <code>LocalSettings.php</code> Ð¸Ð»Ð¸ <code>AdminSettings.php</code>. Пожалуйста, исправьте эти настройки и повторите попытку.\n\n$1",
+       "config-localsettings-connection-error": "Ð\9fÑ\80оизоÑ\88ла Ð¾Ñ\88ибка Ð¿Ñ\80и Ð¿Ð¾Ð´ÐºÐ»Ñ\8eÑ\87ении Ðº Ð±Ð°Ð·Ðµ Ð´Ð°Ð½Ð½Ñ\8bÑ\85 Ñ\81 Ð¸Ñ\81полÑ\8cзованием Ð½Ð°Ñ\81Ñ\82Ñ\80оек, Ñ\83казаннÑ\8bÑ\85 Ð² <code>LocalSettings.php</code>. Пожалуйста, исправьте эти настройки и повторите попытку.\n\n$1",
        "config-session-error": "Ошибка при запуске сессии: $1",
        "config-session-expired": "Ваша сессия истекла.\nСессии настроены на длительность $1.\nВы её можете увеличить, изменив <code>session.gc_maxlifetime</code> в php.ini.\nПерезапустите процесс установки.",
        "config-no-session": "Данные сессии потеряны!\nПроверьте ваш php.ini и убедитесь, что <code>session.save_path</code> установлен в соответствующий каталог.",
@@ -43,7 +44,7 @@
        "config-back": "← Назад",
        "config-continue": "Далее →",
        "config-page-language": "Язык",
-       "config-page-welcome": "MediaWiki проектына рәхим итегез!",
+       "config-page-welcome": "Добро пожаловать в MediaWiki!",
        "config-page-dbconnect": "Подключение к базе данных",
        "config-page-upgrade": "Обновление существующей установки",
        "config-page-dbsettings": "Настройки базы данных",
        "config-restart": "Да, начать заново",
        "config-welcome": "=== Проверка окружения ===\nБудут проведены базовые проверки с целью определить, подходит ли данная система для установки MediaWiki.\nНе забудьте включить эту информацию, если вам потребуется помощь для завершения установки.",
        "config-copyright": "=== Авторские права и условия ===\n\n$1\n\nMediaWiki — свободное программное обеспечение, которое вы можете распространять и/или изменять в соответствии с условиями лицензии GNU General Public License, опубликованной фондом свободного программного обеспечения; второй версии, либо любой более поздней версии.\n\nMediaWiki распространяется в надежде, что она будет полезной, но <strong>без каких-либо гарантий</strong>, даже без подразумеваемых гарантий <strong>коммерческой ценности</strong> или <strong>пригодности для определённой цели</strong>. См. лицензию GNU General Public License для более подробной информации.\n\nВы должны были получить <doclink href=Copying>копию GNU General Public License</doclink> вместе с этой программой, если нет, то напишите Free Software Foundation, Inc., по адресу: 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA или [http://www.gnu.org/copyleft/gpl.html прочтите её онлайн].",
-       "config-sidebar": "* [//www.mediawiki.org Сайт MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents/ru Справка для пользователей]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents/ru Справка для администраторов]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/ru FAQ]\n----\n* <doclink href=Readme>Readme-файл</doclink>\n* <doclink href=ReleaseNotes>Информация о выпуске</doclink>\n* <doclink href=Copying>Лицензия</doclink>\n* <doclink href=UpgradeDoc>Обновление</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org Сайт MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents/ru Справка для пользователей]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents/ru Справка для администраторов]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/ru FAQ]\n----\n* <doclink href=Readme>Readme-файл</doclink>\n* <doclink href=ReleaseNotes>Информация о выпуске</doclink>\n* <doclink href=Copying>Лицензия</doclink>\n* <doclink href=UpgradeDoc>Обновление</doclink>",
        "config-env-good": "Проверка внешней среды была успешно проведена.\nВы можете установить MediaWiki.",
        "config-env-bad": "Была проведена проверка внешней среды.\nВы не можете установить MediaWiki.",
        "config-env-php": "Установленная версия PHP: $1.",
        "config-env-hhvm": "HHVM $1 установлена.",
        "config-unicode-using-intl": "Будет использовано [http://pecl.php.net/intl расширение «intl» для PECL] для нормализации Юникода.",
-       "config-unicode-pure-php-warning": "'''Внимание!''': [http://pecl.php.net/intl расширение intl из PECL] недоступно для нормализации Юникода, будет использоваться медленная реализация на чистом PHP.\nЕсли ваш сайт работает под высокой нагрузкой, вам следует больше узнать о [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations нормализации Юникода].",
-       "config-unicode-update-warning": "'''Предупреждение''': установленная версия обёртки нормализации Юникода использует старую версию библиотеки [http://site.icu-project.org/ проекта ICU].\nВы должны [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations обновить версию], если хотите полноценно использовать Юникод.",
+       "config-unicode-pure-php-warning": "'''Внимание!''': [http://pecl.php.net/intl расширение intl из PECL] недоступно для нормализации Юникода, будет использоваться медленная реализация на чистом PHP.\nЕсли ваш сайт работает под высокой нагрузкой, вам следует больше узнать о [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations нормализации Юникода].",
+       "config-unicode-update-warning": "'''Предупреждение''': установленная версия обёртки нормализации Юникода использует старую версию библиотеки [http://site.icu-project.org/ проекта ICU].\nВы должны [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations обновить версию], если хотите полноценно использовать Юникод.",
        "config-no-db": "Не удалось найти подходящие драйвера баз данных! Вам необходимо установить драйвера базы данных для PHP.\n{{PLURAL:$2|Поддерживается следующий тип|Поддерживаются следующие типы}} баз данных: $1.\n\nЕсли вы скомпилировали PHP сами, перенастройте его с включением клиента баз данных, например, с помощью <code>./configure --with-mysqli</code>.\nЕсли вы установили PHP из пакетов Debian или Ubuntu, то вам также необходимо установить, например, пакет <code>php5-mysql</code>.",
        "config-outdated-sqlite": "'''Предупреждение''': у Вас установлен SQLite  $1, версия которого ниже требуемой $2 . SQLite будет недоступен.",
        "config-no-fts3": "'''Внимание''': SQLite собран без модуля [//sqlite.org/fts3.html FTS3] — поиск не будет работать для этой базы данных.",
-       "config-mbstring": "'''Проблема: включена опция PHP [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload]!'''\nЭто приводит к ошибкам и непредсказуемой порче вводимых данных.\nУстановка и использование MediaWiki без выключения этой опции невозможно.",
-       "config-xml-bad": "Для РНР отсутствует XML-модуль.\nMediaWiki не будет работать в этой конфигурации, так как требуется функционал этого модуля.\nВозможно, вам понадобится установить RPM-пакет php-xml.",
        "config-pcre-old": "'''Фатальная ошибка:''' требуется PCRE версии $1 или более поздняя.\nВаш исполняемый файл PHP связан с PCRE версии $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Подробнее].",
        "config-pcre-no-utf8": "'''Фатальная ошибка'''. Модуль PCRE для PHP, похоже, собран без поддержки PCRE_UTF8.\nMediaWiki требует поддержки UTF-8 для корректной работы.",
        "config-memory-raised": "Ограничение на доступную PHP память (<code>memory_limit</code>) поднято с $1 до $2.",
        "config-memory-bad": "'''Внимание:''' размер PHP <code>memory_limit</code> составляет $1.\nВероятно, этого слишком мало.\nУстановка может потерпеть неудачу!",
-       "config-ctype": "'''Фатальная ошибка:''' PHP должен быть скомпилирован с поддержкой [http://www.php.net/manual/ru/ctype.installation.php расширения Ctype].",
-       "config-iconv": "<strong>Фатальная ошибка:</strong> PHP должен быть скомпилирован с поддержкой [http://www.php.net/manual/en/iconv.installation.php расширения iconv].",
-       "config-json": "'''Фатальная ошибка:''' PHP был скомпилирован без поддержка JSON.\nВам необходимо установить либо расширение PHP JSON, либо расширение [http://pecl.php.net/package/jsonc PECL jsonc] перед установкой MediaWiki.\n* PHP-расширение входит в состав Red Hat Enterprise Linux (CentOS) 5 и 6, хотя должна быть включено в <code>/etc/php.ini</code> или <code>/etc/php.d/json.ini</code>.\n* Некоторые дистрибутивы Linux, выпущенные после мая 2013 года, не включают расширение PHP, вместо того, чтобы упаковывать расширение PECL как <code>php5-json</code> или <code>php-pecl-jsonc</code>.",
-       "config-mbstring-absent": "<strong>Фатальная ошибка:</strong> PHP должен быть скомпилирован с поддержкой [http://www.php.net/manual/en/mbstring.setup.php расширения mbstring].",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] установлен",
        "config-apc": "[http://www.php.net/apc APC] установлен",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] установлен",
@@ -97,7 +92,7 @@
        "config-no-cli-uri": "'''Предупреждение''': нет задан параметр <code>--scriptpath</code>, используется по умолчанию: <code>$1</code> .",
        "config-using-server": "Используется имя сервера «<nowiki>$1</nowiki>».",
        "config-using-uri": "Используется имя сервера \"<nowiki>$1$2</nowiki>\".",
-       "config-uploads-not-safe": "'''Внимание:''' директория, используемая по умолчанию для загрузок (<code>$1</code>) уязвима к выполнению произвольных скриптов.\nХотя MediaWiki проверяет все загружаемые файлы на наличие угроз, настоятельно рекомендуется [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security закрыть данную уязвимость] перед включением загрузки файлов.",
+       "config-uploads-not-safe": "'''Внимание:''' директория, используемая по умолчанию для загрузок (<code>$1</code>) уязвима к выполнению произвольных скриптов.\nХотя MediaWiki проверяет все загружаемые файлы на наличие угроз, настоятельно рекомендуется [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security закрыть данную уязвимость] перед включением загрузки файлов.",
        "config-no-cli-uploads-check": "'''Предупреждение:''' каталог для загрузки по умолчанию ( <code>$1</code> ) не проверялся на уязвимости\n на выполнение произвольного сценария во время установки CLI.",
        "config-brokenlibxml": "В вашей системе имеется сочетание версий PHP и libxml2, которое может привести к скрытым повреждениям данных в MediaWiki и других веб-приложениях.\nОбновите libxml2 до версии 2.7.3 или старше ([https://bugs.php.net/bug.php?id=45996 сведения об ошибке]).\nУстановка прервана.",
        "config-suhosin-max-value-length": "Suhosin установлен и ограничивает параметр GET <code>length</code> до $1 байт. Компонент MediaWiki ResourceLoader будет обходить это ограничение, но это снизит производительность. Если это возможно, следует установить <code>suhosin.get.max_value_length</code> в значение 1024 или выше в <code>php.ini</code>, а также установить для <code>$wgResourceLoaderMaxQueryLength</code> такое же значение в LocalSettings.php.",
        "config-db-wiki-help": "Введите имя пользователя и пароль, которые будут использоваться для подключения к базе данных во время обычной работы вики.\nЕсли такой учётной записи не существует, а установочная учётная запись имеет достаточно привилегий, то обычная учётная запись будет создана с минимально необходимыми для работы вики привилегиями.",
        "config-db-prefix": "Префикс таблиц базы данных:",
        "config-db-prefix-help": "Если вам нужно делить одну базу данных между несколькими вики, или между MediaWiki и другими веб-приложениями, вы можете добавить префикс для всех имён таблиц.\nНе используйте пробелы.\n\nЭто поле обычно остаётся пустым.",
-       "config-db-charset": "Кодировка базы данных",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 бинарная",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "MySQL 4.0 обратно совместимая с UTF-8",
-       "config-charset-help": "'''Внимание.''' Если вы используете '''обратно совместый UTF-8''' на MySQL 4.1+ и создаёте резервные копии базы данных с помощью <code>mysqldump</code>, то все не-ASCII символы могут быть искажены, а резервная копия окажется негодной!\n\nВ '''бинарном режиме''' MediaWiki хранит юникодный текст в базе в виде двоичных полей.\nЭто более эффективно, чем MySQL в режиме UTF-8, позволяет использовать полный набор символов Юникода.\nВ '''режиме UTF-8''' MySQL будет знать к какому набору символу относятся ваши данные, сможет представлять и преобразовать их надлежащим образом (буква Ё окажется при сортировке после буквы Е, а не после буквы Я, как в бинарном режиме),\nно не позволит вам сохранять символы, выходящие за пределы [//ru.wikipedia.org/wiki/Символы,_представленные_в_Юникоде#.D0.91.D0.B0.D0.B7.D0.BE.D0.B2.D0.B0.D1.8F_.D0.BC.D0.BD.D0.BE.D0.B3.D0.BE.D1.8F.D0.B7.D1.8B.D0.BA.D0.BE.D0.B2.D0.B0.D1.8F_.D0.BF.D0.BB.D0.BE.D1.81.D0.BA.D0.BE.D1.81.D1.82.D1.8C BMP].",
        "config-mysql-old": "Необходим MySQL $1 или более поздняя версия. У вас установлен MySQL $2.",
        "config-db-port": "Порт базы данных:",
        "config-db-schema": "Схема для MediaWiki",
        "config-mysql-charset": "Кодировка базы данных:",
        "config-mysql-binary": "Двоичный",
        "config-mysql-utf8": "UTF-8",
-       "config-mysql-charset-help": "В '''двоичном режиме''' MediaWiki хранит UTF-8 текст в бинарных полях базы данных.\nЭто более эффективно, чем ''UTF-8 режим'' MySQL, и позволяет использовать полный набор символов Unicode.\n\nВ '''режиме UTF-8''' MySQL будет знать в какой кодировке находятся Ваши данные и может отображать и преобразовывать их соответствующим образом, но это не позволит вам хранить символы выше [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Базовой Многоязыковой Плоскости].",
+       "config-mysql-charset-help": "В '''двоичном режиме''' MediaWiki хранит UTF-8 текст в бинарных полях базы данных.\nЭто более эффективно, чем ''UTF-8 режим'' MySQL, и позволяет использовать полный набор символов Unicode.\n\nВ '''режиме UTF-8''' MySQL будет знать в какой кодировке находятся Ваши данные и может отображать и преобразовывать их соответствующим образом, но это не позволит вам хранить символы выше [https://en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Базовой Многоязыковой Плоскости].",
        "config-mssql-auth": "Тип аутентификации:",
        "config-mssql-install-auth": "Выберите тип проверки подлинности, который будет использоваться для подключения к базе данных во время процесса установки.\nЕсли вы выберите «{{int:config-mssql-windowsauth}}», будут использоваться учётные данные пользователя, под которым работает веб-сервер.",
        "config-mssql-web-auth": "Выберите тип проверки подлинности, который веб-сервер будет использовать для подключения к серверу базы данных во время обычного функционирования вики.\nЕсли вы выберите «{{int:config-mssql-windowsauth}}», будут использоваться учётные данные пользователя, под которым работает веб-сервер.",
        "config-profile-no-anon": "Требуется создание учётной записи",
        "config-profile-fishbowl": "Только для авторизованных редакторов",
        "config-profile-private": "Закрытая вики",
-       "config-profile-help": "Вики-технология лучше всего работает, когда вы позволяете редактировать сайт максимально широкому кругу лиц.\nВ MediaWiki легко просмотреть последних изменений и, при необходимости, откатить любой ущерб сделанный злоумышленниками или наивными пользователями.\n\nОднако, движок MediaWiki можно использовать и иными способами, и не далеко не всех удаётся убедить в преимуществах открытой вики-работы.\nТак что в вас есть выбор.\n\nМодель '''«{{int:config-profile-wiki}}»''' позволяет всем править страницы даже не регистрируясь на сайте. Конфигурация '''{{int:config-profile-no-anon}}''' обеспечивает дополнительный учёт, но может отсечь случайных участников.\n\nСценарий '''«{{int:config-profile-fishbowl}}»''' разрешает редактирование только определённым участникам, но общедоступным остаётся просмотр страниц, в том числе просмотр истории изменения. В режиме '''«{{int:config-profile-private}}»''' просмотр страниц разрешён только определённым пользователям, какая-то их часть может иметь также права на редактирование.\n\nБолее сложные схемы разграничения прав можно настроить после установки, см. [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights соответствующее руководство].",
+       "config-profile-help": "Вики-технология лучше всего работает, когда вы позволяете редактировать сайт максимально широкому кругу лиц.\nВ MediaWiki легко просмотреть последних изменений и, при необходимости, откатить любой ущерб сделанный злоумышленниками или наивными пользователями.\n\nОднако, движок MediaWiki можно использовать и иными способами, и не далеко не всех удаётся убедить в преимуществах открытой вики-работы.\nТак что в вас есть выбор.\n\nМодель '''«{{int:config-profile-wiki}}»''' позволяет всем править страницы даже не регистрируясь на сайте. Конфигурация '''{{int:config-profile-no-anon}}''' обеспечивает дополнительный учёт, но может отсечь случайных участников.\n\nСценарий '''«{{int:config-profile-fishbowl}}»''' разрешает редактирование только определённым участникам, но общедоступным остаётся просмотр страниц, в том числе просмотр истории изменения. В режиме '''«{{int:config-profile-private}}»''' просмотр страниц разрешён только определённым пользователям, какая-то их часть может иметь также права на редактирование.\n\nБолее сложные схемы разграничения прав можно настроить после установки, см. [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights соответствующее руководство].",
        "config-license": "Авторские права и лицензии:",
        "config-license-none": "Не указывать лицензию в колонтитуле внизу страницы",
        "config-license-cc-by-sa": "Creative Commons Attribution Share Alike",
        "config-email-sender-help": "Введите адрес электронной почты для использования в качестве обратного адреса исходящей электронной почты.\nНа него будут отправляться отказы.\nМногие почтовые серверы требуют, чтобы по крайней мере доменное имя в нём было правильным.",
        "config-upload-settings": "Загрузка изображений и файлов",
        "config-upload-enable": "Разрешить загрузку файлов",
-       "config-upload-help": "Разрешение загрузки файлов, потенциально, может привести к угрозе безопасности сервера.\nДля получения дополнительной информации, прочтите в руководстве [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security раздел, посвящённый безопасности].\n\nЧтобы разрешить загрузку файлов, необходимо изменить права на каталог <code>images</code>, в корневой директории MediaWiki так, чтобы веб-сервер мог записывать в него файлы.\nЗатем включите эту опцию.",
+       "config-upload-help": "Разрешение загрузки файлов, потенциально, может привести к угрозе безопасности сервера.\nДля получения дополнительной информации, прочтите в руководстве [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security раздел, посвящённый безопасности].\n\nЧтобы разрешить загрузку файлов, необходимо изменить права на каталог <code>images</code>, в корневой директории MediaWiki так, чтобы веб-сервер мог записывать в него файлы.\nЗатем включите эту опцию.",
        "config-upload-deleted": "Директория для удалённых файлов:",
        "config-upload-deleted-help": "Выберите каталог, в котором будут храниться архивы удалённых файлов.\nВ идеальном случае, в этот каталог не должно быть доступа из сети Интернет.",
        "config-logo": "URL логотипа:",
        "config-logo-help": "Стандартная тема оформления MediaWiki содержит над боковой панелью пространство для логотипа размером 135x160 пикселей.\nЗагрузите изображение соответствующего размера, и введите его URL здесь.\n\nВы можете использовать <code>$wgStylePath</code> или <code>$wgScriptPath</code>, если ваш логотип находится относительно к этим путям.\n\nЕсли вам не нужен логотип, оставьте это поле пустым.",
        "config-instantcommons": "Включить Instant Commons",
-       "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons Instant Commons] — это функция, позволяющая использовать изображения, звуки и другие медиафайлы с Викисклада ([//commons.wikimedia.org/ Wikimedia Commons]).\nДля работы этой функции MediaWiki необходим доступ к Интернету.\n\nДополнительную информацию об Instant Commons, в том числе указания о том, как её настроить для других вики, отличных от Викисклада, можно найти в [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos руководстве].",
+       "config-instantcommons-help": "[https://www.mediawiki.org/wiki/InstantCommons Instant Commons] — это функция, позволяющая использовать изображения, звуки и другие медиафайлы с Викисклада ([https://commons.wikimedia.org/ Wikimedia Commons]).\nДля работы этой функции MediaWiki необходим доступ к Интернету.\n\nДополнительную информацию об Instant Commons, в том числе указания о том, как её настроить для других вики, отличных от Викисклада, можно найти в [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos руководстве].",
        "config-cc-error": "Механизм выбора лицензии Creative Commons не вернул результата.\nВведите название лицензии вручную.",
        "config-cc-again": "Выберите ещё раз…",
        "config-cc-not-chosen": "Выберите, какую лицензию Creative Commons Вы хотите использовать, и нажмите кнопку \"proceed\".",
        "config-install-extension-tables": "Создание таблиц для включённых расширений",
        "config-install-mainpage-failed": "Не удаётся вставить главную страницу: $1",
        "config-install-done": "<strong>Поздравляем!</strong>\nВы установили MediaWiki.\n\nВо время установки был создан файл <code>LocalSettings.php</code>.\nОн содержит все ваши настройки.\n\nВам необходимо скачать его и положить в корневую директорию вашей вики (ту же директорию, где находится файл index.php). Его загрузка должна начаться автоматически.\n\nЕсли автоматическая загрузка не началась или вы её отменили, вы можете скачать по ссылке ниже:\n\n$3\n\n<strong>Примечание</strong>: Если вы не сделаете этого сейчас, то сгенерированный файл конфигурации не будет доступен вам в дальнейшем, если вы выйдете из установки, не скачивая его.\n\nПо окончании действий, описанных выше, вы сможете <strong>[$2 войти в вашу вики]</strong>.",
+       "config-install-done-path": "<strong>Поздравляем!</strong>\nВы установили MediaWiki.\n\nВо время установки был создан файл <code>LocalSettings.php</code>.\nОн содержит все ваши настройки.\n\nВам необходимо скачать его и положить в <code>$4</code>. Его загрузка должна начаться автоматически.\n\nЕсли автоматическая загрузка не началась или вы её отменили, вы можете скачать по ссылке ниже:\n\n$3\n\n<strong>Примечание</strong>: Если вы не сделаете этого сейчас, то сгенерированный файл конфигурации не будет доступен вам в дальнейшем, если вы выйдете из установки, не скачивая его.\n\nПо окончании действий, описанных выше, вы сможете <strong>[$2 войти в вашу вики]</strong>.",
        "config-download-localsettings": "Загрузить <code>LocalSettings.php</code>",
        "config-help": "справка",
        "config-help-tooltip": "нажмите, чтобы развернуть",
        "config-nofile": "Файл \"$1\" не удается найти. Он был удален?",
-       "config-extension-link": "Знаете ли вы, что ваш вики-проект поддерживает [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions расширения]?\n\nВы можете просмотреть [//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category расширения по категориям] или [//www.mediawiki.org/wiki/Extension_Matrix матрицу расширений], чтобы увидеть их полный список.",
+       "config-extension-link": "Знаете ли вы, что ваш вики-проект поддерживает [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions расширения]?\n\nВы можете просмотреть [https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category расширения по категориям] или [https://www.mediawiki.org/wiki/Extension_Matrix матрицу расширений], чтобы увидеть их полный список.",
        "mainpagetext": "<strong>MediaWiki успешно установлена.</strong>",
-       "mainpagedocfooter": "Информацию по работе с этой вики можно найти в [//meta.wikimedia.org/wiki/Help:Contents/ru справочном руководстве].\n\n== Некоторые полезные ресурсы ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Список возможных настроек];\n* [//www.mediawiki.org/wiki/Manual:FAQ/ru Часто задаваемые вопросы и ответы по MediaWiki];\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Рассылка уведомлений о выходе новых версий MediaWiki].\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Перевод MediaWiki на свой язык]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Узнайте, как бороться со спамом в вашей вики]"
+       "mainpagedocfooter": "Информацию по работе с этой вики можно найти в [https://meta.wikimedia.org/wiki/Help:Contents/ru справочном руководстве].\n\n== Некоторые полезные ресурсы ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Список возможных настроек];\n* [https://www.mediawiki.org/wiki/Manual:FAQ/ru Часто задаваемые вопросы и ответы по MediaWiki];\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Рассылка уведомлений о выходе новых версий MediaWiki].\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Перевод MediaWiki на свой язык]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Узнайте, как бороться со спамом в вашей вики]"
 }
index 787175f..c7a4f72 100644 (file)
@@ -5,5 +5,5 @@
                ]
        },
        "mainpagetext": "'''MediaWiki была успішно наіншталована.'''",
-       "mainpagedocfooter": "[//meta.wikimedia.org/wiki/Help:Contents Мануял хоснователя] Вам порадить, як хосновати MediaWiki.\n\n== Про початок ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Наставлїня конфіґурації]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Часты вопросы о MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Розосыланя повідомлїнь про новы верзії MediaWiki]"
+       "mainpagedocfooter": "[https://meta.wikimedia.org/wiki/Help:Contents Мануял хоснователя] Вам порадить, як хосновати MediaWiki.\n\n== Про початок ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Наставлїня конфіґурації]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Часты вопросы о MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Розосыланя повідомлїнь про новы верзії MediaWiki]"
 }
index ce49110..99610e3 100644 (file)
@@ -35,5 +35,5 @@
        "config-db-install-account": "Туруорууга анаммыт бэлиэ-аат",
        "config-db-username": "Билии олоҕун туһанааччы аата:",
        "mainpagetext": "'''«MediaWiki» сөпкө туруорулунна.'''",
-       "mainpagedocfooter": "Биики программатын туһунан [//meta.wikimedia.org/wiki/Help:Contents справочникка] көрүөххүн сөп.\n\n== Саҕаланыыта ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Конфигурация уларытыытын параметрдара]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki релизтарын почтовай испииһэгэ]"
+       "mainpagedocfooter": "Биики программатын туһунан [https://meta.wikimedia.org/wiki/Help:Contents справочникка] көрүөххүн сөп.\n\n== Саҕаланыыта ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Конфигурация уларытыытын параметрдара]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki релизтарын почтовай испииһэгэ]"
 }
index 31deb71..b9c049a 100644 (file)
@@ -1,5 +1,5 @@
 {
        "@metadata": [],
        "mainpagetext": "'''Nstallazzioni di MediaWiki cumplitata currettamenti.'''",
-       "mainpagedocfooter": "Pi favuri taliari [//meta.wikimedia.org/wiki/Help:Contents Guida utenti] pi aiutu supra l'usu e la cunfigurazzioni di stu software wiki.\n\n== P'accuminzari ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Alencu di mpustazzioni di cunfigurazzioni]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailing list dî rilassi di MediaWiki]"
+       "mainpagedocfooter": "Pi favuri taliari [https://meta.wikimedia.org/wiki/Help:Contents Guida utenti] pi aiutu supra l'usu e la cunfigurazzioni di stu software wiki.\n\n== P'accuminzari ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Alencu di mpustazzioni di cunfigurazzioni]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailing list dî rilassi di MediaWiki]"
 }
index e8e2cf6..c79c22d 100644 (file)
@@ -14,7 +14,7 @@
        "config-localsettings-upgrade": "Ae <code>LocalSettings.php</code> file haes been detectit.\nTae upgrade this installation, please enter the vailyie o <code>$wgUpgradeKey</code> in the kist ablo.\nYe'll fynd it in <code>LocalSettings.php</code>.",
        "config-localsettings-cli-upgrade": "Ae <code>LocalSettings.php</code> file haes been detectit.\nTae upgrade this installation, please rin <code>update.php</code> insteid",
        "config-localsettings-key": "The Upgrade key:",
-       "config-localsettings-badkey": "The key that ye gave is fause.",
+       "config-localsettings-badkey": "The upgrade key ye providit is incorrect.",
        "config-upgrade-key-missing": "Aen exeestin installation o MediaWiki haes been detectit.\nTae upgrade this installation, please pit the follaein line at the bottom o yer <code>LocalSettings.php</code>:\n\n$1",
        "config-localsettings-incomplete": "The exeestin <code>LocalSettings.php</code> appears tae be oncompleate.\nThe $1 variable isna set.\nPlease chynge <code>LocalSettings.php</code> sae that this variable is set, n clap \"{{int:Config-continue}}\".",
        "config-localsettings-connection-error": "Ae mistak wis encountered whan connectin til the database uisin the settins specified in <code>LocalSettings.php</code>. Please fix thir settins n try again.\n\n$1",
        "config-restart": "Ai, restart it",
        "config-welcome": "=== Environmêntal checks ===\nBasic checks will nou be performed tae see gif this environment is suitable fer MediaWiki installâtion.\nMynd tae inclæde this information gif ye seek heelp oan hou tae complete the installâtion.",
        "config-copyright": "=== Copiericht n Terms ===\n\n$1\n\nThis program is free saffware; ye can redistreebute it n/or modifie it unner the terms o the GNU General Public License aes published bi the Free Software Foundation; either version 2 o the License, or (yer optie) onie later version.\n\nThis program is distributed in the hope that it will be uiseful, but <strong>wioot onie warrantie</strong>; wioot even the implied warrantie o <strong>merchantabeelity</strong> or <strong>fitness fer ae parteecular purpose</strong>.\nSee the GNU General Public License fer mair details.\n\nYe shid hae receeved <doclink href=Copying> ae copie o the GNU General Publeec License</doclink> alang wi this program; gif naw, write til the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA, or [http://www.gnu.org/copyleft/gpl.html read it online].",
-       "config-sidebar": "* [//www.mediawiki.org MediaWiki home]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents User's Guide]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Administrator's Guide]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ]\n----\n* <doclink href=Readme>Read me</doclink>\n* <doclink href=ReleaseNotes>Release notes</doclink>\n* <doclink href=Copying>Copiein</doclink>\n* <doclink href=UpgradeDoc>Upgradin</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org MediaWiki home]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents User's Guide]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Administrator's Guide]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ]\n----\n* <doclink href=Readme>Read me</doclink>\n* <doclink href=ReleaseNotes>Release notes</doclink>\n* <doclink href=Copying>Copiein</doclink>\n* <doclink href=UpgradeDoc>Upgradin</doclink>",
        "config-env-good": "The environment haes been checked.\nYe can install MediaWiki.",
        "config-env-bad": "The environment haes been checked.\nYe canna install MediaWiki.",
        "config-env-php": "PHP $1 is instâlled.",
        "config-env-hhvm": "HHVM $1 is instawed.",
        "config-unicode-using-intl": "Uising the [http://pecl.php.net/intl intl PECL extension] fer Unicode normalization.",
-       "config-unicode-pure-php-warning": "<strong>Warnishment:</strong> The [http://pecl.php.net/intl intl PECL extension] is no available tae haunle Unicode normalisation, fawin back tae slaw pure-PHP implementation.\nGif ye rin ae hei-traffic steid, ye shid read ae wee bit oan [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode normalization].",
-       "config-unicode-update-warning": "<strong>Warnishment:</strong> The instawed version o the Unicode normalization wrapper uises aen aulder version o [http://site.icu-project.org/ the ICU project's] librie.\nYe shid [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations upgrade] gif ye'r concerned aneat uisin Unicode.",
-       "config-no-db": "Coudna fynd ae suitable database driver! Ye need tae instaw ae database driver fer PHP.\nThe follaein database types ar supported: $1.\n\nGif ye compiled PHP yersel, reconfeegure it wi ae database client enabled, fer example, uising <code>./confeegure --wi-mysqli</code>.\nGif ye installed PHP fae ae Debian or Ubuntu package, than ye need tae instaw forby, fer example, the <code>php5-mysql</code> package.",
+       "config-unicode-pure-php-warning": "<strong>Warnishment:</strong> The [http://pecl.php.net/intl intl PECL extension] is no available tae haunle Unicode normalisation, fawin back tae slaw pure-PHP implementation.\nGif ye rin ae hei-traffic steid, ye shid read ae wee bit oan [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode normalization].",
+       "config-unicode-update-warning": "<strong>Wairnin:</strong> The installed version o the Unicode normalisation wrapper uises an aulder version o [http://site.icu-project.org/ the ICU project's] library.\nYe shoud [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations upgrade] if ye are at aw concerned aboot uisin Unicode.",
+       "config-no-db": "Could nae find a suitable database driver! Ye need tae install a database driver for PHP.\nThe follaein database {{PLURAL:$2|type is|types are}} supportit: $1.\n\nIf you compiled PHP yersel, reconfigur it wi a database client enabled, for example, uisin <code>./configure --with-mysqli</code>.\nIf ye installed PHP frae a Debian or Ubuntu package, then ye an aa need tae install, for example, the <code>php5-mysql</code> package.",
        "config-outdated-sqlite": "<strong>Warnishment:</strong> ye have SQLite $1, this is lower than minimum required version $2. SQLite will be onavailable.",
        "config-no-fts3": "<strong>Warnishment:</strong> SQLite is compiled wioot the [//sqlite.org/fts3.html FTS3 module], rake features will be onavailable oan this backend.",
-       "config-register-globals-error": "<strong>Mistak: PHP's <code>[http://php.net/register_globals register_globals]</code> optie is enablit.\nIt maun be disablit tae keep gaun wi the instawation.</strong>\nSee [https://www.mediawiki.org/wiki/register_globals https://www.mediawiki.org/wiki/register_globals] fer help oan hou tae dae sae.",
-       "config-magic-quotes-gpc": "<strong>Fatal: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-gpc magic_quotes_gpc] is active!</strong>\nThis optie corrupts data input onpredeectablie.\nYe cannae install or uise MediaWiki onless this optie is disabled.",
-       "config-magic-quotes-runtime": "<strong>Fatal: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] is active!'</strong>\nThis optie rots data input onpredictably.\nYe canna install or uise MediaWiki onless this optie is disabled.",
-       "config-magic-quotes-sybase": "<strong>Fatal: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] is active!</strong>\nThis optie rots data input onpredictably.\nYe canna install or uise MediaWiki onless this optie is disabled.",
-       "config-mbstring": "<strong>Fatal: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] is active!</strong>\nThis optie causes mistaks an can rot data onpredictably.\nYe canna install or uise MediaWiki onless this optie is disabled.",
-       "config-safe-mode": "<strong>Warnishment:</strong> PHP's [http://www.php.net/features.safe-mode safe mode] is acteeve.\nIt micht cause problems, parteecularlie gif uisin file uplaids n <code>math</code> support.",
-       "config-xml-bad": "PHP's XML module is missin.\nMediaWiki needs functions in this module n will naw wairk in this confeeguration.\nGif ye'r rinnin Mandrake, instaw the php-xml package.",
        "config-pcre-old": "<strong>Fatal:</strong> PCRE $1 or later is required.\nYer PHP binary is link't wi PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Mair informâtion].",
        "config-pcre-no-utf8": "<strong>Fatal:</strong> PHP's PCRE module seems tae be compiled wioot PCRE_UTF8 support.\nMediaWiki requires UTF-8 support tae function correctly.",
        "config-memory-raised": "PHP's <code>memerie_limit</code> is $1, raised til $2.",
        "config-memory-bad": "<strong>Warnishment:</strong> PHP's <code>memerie_limit</code> is $1.\nThis is proably ower low.\nThe installation micht fail!",
-       "config-ctype": "<strong>Fatal:</strong> PHP maun be compiled wi support fer the [http://www.php.net/manual/en/ctype.installation.php Ctype extension].",
-       "config-iconv": "<strong>Fatal:</strong> PHP maun be compiled wi support fer the [http://www.php.net/manual/en/iconv.installation.php iconv extension].",
-       "config-json": "<strong>Fatal:</strong> PHP wis compiled wioot JSON support.\nYe maun instaw either the PHP JSON extension or the [http://pecl.php.net/package/jsonc PECL jsonc] extension afore instawin MediaWiki.\n* The PHP extension is incluided in Red Hat Enterprise Linux (CentOS) 5 n 6, thoogh it maun be enabled in <code>/etc/php.ini</code> or <code>/etc/php.d/json.ini</code>.\n* Some Linux distributions released efter Mey 2013 omit the PHP extension, instead packagin the PECL extension aes <code>php5-json</code> or <code>php-pecl-jsonc</code>.",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] is installed.",
        "config-apc": "[http://www.php.net/apc APC] is installed.",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] is instawed.",
-       "config-no-cache": "<strong>Warnishment:</strong> Coudna fynd [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] or [http://www.iis.net/download/WinCacheForPhp WinCache].\nObject cachin isna enabled.",
+       "config-no-cache-apcu": "<strong>Wairnin:</strong> Could nae find [http://www.php.net/apcu APCu], [http://xcache.lighttpd.net/ XCache] or [http://www.iis.net/download/WinCacheForPhp WinCache].\nObject cachin isna enabled.",
        "config-mod-security": "<strong>Warnishment:</strong> Yer wab server haes [http://modsecurity.org/ mod_security] enabled. Gif misconfeegured, it can cause problems fer MediaWiki or ither saffware that allous uisers tae post arbitrie content.\nRefer til [http://modsecurity.org/documentation/ mod_security documentation] or contact yer host's support gif ye encounter random mistaks.",
        "config-diff3-bad": "GNU diff3 naw foond.",
        "config-git": "Foond the Git version control saffware: <code>$1</code>.",
@@ -86,7 +76,7 @@
        "config-no-cli-uri": "<strong>Warnishment:</strong> Naw <code>--scriptpath</code> speceefied, uisin defaut: <code>$1</code>.",
        "config-using-server": "Uisin server name \"<nowiki>$1</nowiki>\".",
        "config-using-uri": "Uisin server URL \"<nowiki>$1$2</nowiki>\".",
-       "config-uploads-not-safe": "<strong>Warnishment:</strong> Yer defaut directerie fer uplaids <code>$1</code> is vulnerable til arbitrie scripts execution.\nAathough MediaWiki checks aw uplaided files fer securitie threats, it is heily recommended tae [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security close this security vulnerabeelitie] afore enablin uplaids.",
+       "config-uploads-not-safe": "<strong>Warnishment:</strong> Yer defaut directerie fer uplaids <code>$1</code> is vulnerable til arbitrie scripts execution.\nAathough MediaWiki checks aw uplaided files fer securitie threats, it is heily recommended tae [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security close this security vulnerabeelitie] afore enablin uplaids.",
        "config-no-cli-uploads-check": "<strong>Warnishment:</strong> Yer defaut directerie fer uplaids (<code>$1</code>) isna checkit fer vulnerabeelitie\ntae arbitrie script execution durin the CLI install.",
        "config-brokenlibxml": "Yer system haes ae combinâtion o PHP n libxml2 versions that's buggie n can cause skauk't data rottin in MediaWiki n ither wab applicâtions.\nUpgrade til libxml2 2.7.3 or later ([https://bugs.php.net/bug.php?id=45996 bug filed with PHP]).\nInstallâtion aborted.",
        "config-suhosin-max-value-length": "Suhosin is installed n limits the GET parameter <code>length</code> til $1 bytes.\nMediaWiki's ResoorceLaider component will wark aroonn this limit, but that will lawer performance.\nGif at aw possible, ye shid set <code>suhosin.get.max_value_length</code> til 1024 or heier in <code>php.ini</code>, n set <code>$wgResourceLoaderMaxQueryLength</code> til the same value in <code>LocalSettings.php</code>.",
        "config-db-wiki-help": "Enter the uisername n passwaird that will be uised tae connect til the database durin normal wiki operâtion.\nGif the accoont disna exeest, n the instawlation accoont haes suffeecient preevileges, this uiser accoont will be cræftit wi the least preevileges needed tae operate the wiki.",
        "config-db-prefix": "Database buird prefix:",
        "config-db-prefix-help": "Gif ye need tae shair yin database atween multiple wikis, or atween MediaWiki n anither wab appleecation, ye can chuise tae eik ae prefix til aw the buird names tae avoid confleects.\nDinna uise spaces.\n\nThis field is uisuallie left tuim.",
-       "config-db-charset": "Database chairacter set",
-       "config-charset-mysql5-binary": "MaSQL 4.1/5.0 binarie",
-       "config-charset-mysql5": "MaSQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "MaSQL 4.0 backwairds-compatible UTF-8",
-       "config-charset-help": "<strong>Warnishment:</strong> Gif ye uise <strong>backwairds-compatible UTF-8</strong> oan MySQL 4.1+, n subsequentlie back up the database wi <code>mysqldump</code>, it micht destroy aw non-ASCII chairacters, onreversiblie rotin yer backups!\n\nIn <strong>binarie mode</strong>, MediaWiki stores UTF-8 tex til the database in binarie fields.\nThis is mair effeecient than MySQL's UTF-8 mode, n permits ye tae uise the ful range o Unicode chairacters.\nIn <strong>UTF-8 mode</strong>, MySQL will ken whit chairacter set yer data is in, n can present n convert it appropriatelie,\nbut it will naw lat ye store chairacters abuin the [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
        "config-mysql-old": "MaSQL $1 or later is required. Ye hae $2.",
        "config-db-port": "Dâtabase port:",
        "config-db-schema": "Schema fer MediaWiki:",
        "config-mysql-charset": "Database chairacter set:",
        "config-mysql-binary": "Binarie",
        "config-mysql-utf8": "UTF-8",
-       "config-mysql-charset-help": "In <strong>binarie mode</strong>, MediaWiki stores UTF-8 tex til the database in binarie fields.\nThis is mair effeecient than MySQL's UTF-8 mode, n permits ye tae uise the ful range o Unicode chairacters.\n\nIn <strong>UTF-8 mode</strong>, MySQL will ken whit chairacter set yer data is in, n can present n convert it appropreeatelie, but it'll naw lat ye store chairacters abuin the [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
+       "config-mysql-charset-help": "In <strong>binarie mode</strong>, MediaWiki stores UTF-8 tex til the database in binarie fields.\nThis is mair effeecient than MySQL's UTF-8 mode, n permits ye tae uise the ful range o Unicode chairacters.\n\nIn <strong>UTF-8 mode</strong>, MySQL will ken whit chairacter set yer data is in, n can present n convert it appropreeatelie, but it'll naw lat ye store chairacters abuin the [https://en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
        "config-mssql-auth": "Authentication type:",
        "config-mssql-install-auth": "Select the authentication type that's tae be uised tae connect wi the database durin the installation process.\nGif ye select \"{{int:config-mssql-windowsauth}}\", the credeentials o whitever uiser the wabserver is rinnin aes will be uised.",
        "config-mssql-web-auth": "Select the authentication type that the wab server will uise tae connect wi the database server, durin ordinair operation o the wiki.\nGif ye select \"{{int:config-mssql-winowsauth}}\", the credeentials o whitever uiser the wabserver is rinnin aes will be uised.",
        "config-ns-site-name": "Same aes the wiki name: $1",
        "config-ns-other": "Ither (speceefie)",
        "config-ns-other-default": "MaWiki",
-       "config-project-namespace-help": "Follaein Wikipedia's example, moni wikis keep their policy pages separate fae thair content pages, in ae \"'''project namespace'''\".\nAw page titles in this namespace stert wi ae certain prefix, that ye can speceefie here.\nUisuallie, this prefix is derived fae the name o the wiki, but it canna contain punctuation chairacters sic like \"#\" or \":\".",
+       "config-project-namespace-help": "Follaein Wikipaedia's example, mony wikis keep thair policy pages separate frae thair content pages, in a '''project namespace'''.\nAw page teetles in this namespace stairt wi a certain prefix, which ye can specify here.\nUisually, this prefix is derived frae the name o the wiki, but it canna conteen punctuation characters such as \"#\" or \":\".",
        "config-ns-invalid": "The speceefied namespace \"<nowiki>$1</nowiki>\" is onvalid.\nSpeceefie ae different project namespace.",
        "config-ns-conflict": "The speceefied namespace \"<nowiki>$1</nowiki>\" conflicts wi ae defaut MediaWiki namespace.\nSpeceefie ae different project namespace.",
        "config-admin-box": "Admeenistrater accoont",
        "config-profile-no-anon": "Please mak aen accoont",
        "config-profile-fishbowl": "Permited eiditors yinly",
        "config-profile-private": "Private wiki",
-       "config-profile-help": "Wikis wark best whan ye lat aes monie fawk eedit thaim aes possible.\nIn MediaWiki, it's easie tae luik ower the recent chynges, n tae revert onie damage that's dun bi naeeve or maleecioos uisers.\n\nHouever, monie hae foond MediaWiki tae be uissful in ae wide varietie o roles, n sometimes it's na easie tae conveence awbodie o the beneefits o the wiki wa.\nSae ye hae the choice.\n\nThe <strong>{{int:config-profile-wiki}}</strong> model allous oniebdie tae eedit, wioot even loggin in.\nAe wiki wi <strong>{{int:config-profile-no-anon}}</strong> provides eextra accoontabeelitie, but micht deter casual contreebuters.\n\nThe <strong>{{int:config-profile-fishbowl}}</strong> scenario allous appruived uisers tae eedit, but the publeec can see the pages, incluidin histerie.\nA <strong>{{int:config-profile-private}}</strong> yinlie permits appruived uisers tae see pages, wi the same groop permited tae eedit.\n\nMair complex uiser richts confeegurations ar available efter instawation, see the [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights relevant manual entrie].",
+       "config-profile-help": "Wikis wark best whan ye lat aes monie fawk eedit thaim aes possible.\nIn MediaWiki, it's easie tae luik ower the recent chynges, n tae revert onie damage that's dun bi naeeve or maleecioos uisers.\n\nHouever, monie hae foond MediaWiki tae be uissful in ae wide varietie o roles, n sometimes it's na easie tae conveence awbodie o the beneefits o the wiki wa.\nSae ye hae the choice.\n\nThe <strong>{{int:config-profile-wiki}}</strong> model allous oniebdie tae eedit, wioot even loggin in.\nAe wiki wi <strong>{{int:config-profile-no-anon}}</strong> provides eextra accoontabeelitie, but micht deter casual contreebuters.\n\nThe <strong>{{int:config-profile-fishbowl}}</strong> scenario allous appruived uisers tae eedit, but the publeec can see the pages, incluidin histerie.\nA <strong>{{int:config-profile-private}}</strong> yinlie permits appruived uisers tae see pages, wi the same groop permited tae eedit.\n\nMair complex uiser richts confeegurations ar available efter instawation, see the [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights relevant manual entrie].",
        "config-license": "Copiericht n license:",
        "config-license-none": "Nae license fiter",
        "config-license-cc-by-sa": "Creative Commyns Attribution Share Alike",
        "config-email-sender-help": "Enter the wab-mail address tae uise aes the return address oan ootboond wab-mail.\nThis is whaur boonces will be sent.\nMonie mail servers need at least the domain name pairt tae be valid.",
        "config-upload-settings": "Eemages n file uplaids",
        "config-upload-enable": "Enable file uplaids",
-       "config-upload-help": "File uplaids potentiallie expose yer server til securitie risks.\nFer mair information, read the [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security securitie section] in the manual.\n\nTae enable file uplaids, chynge the mode oan the <code>eemages</code> subdirecterie unner MediaWiki's ruit directerie sae that the wab server can write til it.\nThan enable this optie.",
+       "config-upload-help": "File uplaids potentiallie expose yer server til securitie risks.\nFer mair information, read the [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security securitie section] in the manual.\n\nTae enable file uplaids, chynge the mode oan the <code>eemages</code> subdirecterie unner MediaWiki's ruit directerie sae that the wab server can write til it.\nThan enable this optie.",
        "config-upload-deleted": "Directerie fer delytit files:",
        "config-upload-deleted-help": "Chuise ae directerie tae archive delytit files in.\nIdeally, this shidna be accessible fae the wab.",
        "config-logo": "Logo URL:",
        "config-logo-help": "MediaWiki's defaut skin inclædes space fer ae 135x160 pixel logo abuin the sidebaur menu.\nUplaid aen eemage o the appropriate size, n enter the URL here.\n\nYe can uise <code>$wgStylePath</code> or <code>$wgScriptPath</code> gif yer logo is relative til thae paths.\n\nGif ye dinna want ae logo, lea this kist blank.",
        "config-instantcommons": "Enable Instant Commyns",
-       "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons Instant Commyns] is ae featur that allous wikis tae uise eemages, soonds n ither media foond oan the [//commons.wikimedia.org/ Wikimedia Commons] steid.\nIn order tae dae this, MediaWiki needs access til the Internet.\n\nFer mair information oan this featur, incluidin instructions oan hou tae set it up fer wikis ither than the Wikimedia Commons, consult [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos the manual].",
+       "config-instantcommons-help": "[https://www.mediawiki.org/wiki/InstantCommons Instant Commons] is a featur that allaes wikis tae uise images, soonds an ither media foond on the [https://commons.wikimedia.org/ Wikimedia Commons] steid.\nIn order tae dae this, MediaWiki requires access tae the Internet.\n\nFor mair information on this featur, includin instructions on hou tae set it up for wikis ither nir the Wikimedia Commons, consult [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos the manual].",
        "config-cc-error": "The Creative Commyns license chuiser gae naw result.\nEnter the license name manually.",
        "config-cc-again": "Pick again...",
        "config-cc-not-chosen": "Chuise whit Creative Commyns license ye want an clap oan \"proceed\".",
        "config-install-mainpage": "Cræftin main page wi defaut content",
        "config-install-extension-tables": "Makin buirds fer enabled extensions",
        "config-install-mainpage-failed": "Coudna insert main page: $1",
-       "config-install-done": "<strong>Congratulations!</strong>\nYe'v successfulie instawed MediaWiki.\n\nThe instawer haes generated ae <code>LocalSettings.php</code> file.\nIt contains aw yer confeeguration.\n\nYe'll need tae doonlaid it n pit it in the base o yer wiki instawation (the same directerie aes index.php). The doonlaid shid hae stairted autæmateeclie.\n\nGif the doonlaid wisna affered, or gif ye cancelled it, ye can restairt the doonlaid bi clapin oan the airtin ablo:\n\n$3\n\n<strong>Mynd:</strong> Gif ye dinna dae this the nou, this generated confeeguration file willna be available til ye laiter gif ye exit the instawation wioot doonlaidin it.\n\nWhan that haes been dun, ye can <strong>[$2 enter yer wiki]</strong>.",
+       "config-install-done": "<strong>Congratulations!</strong>\nYe hae installed MediaWiki.\n\nThe installer has generatit a <code>LocalSettings.php</code> file.\nIt conteens aw yer configuration.\n\nYe will need tae dounlaid it an put it in the base o yer wiki installation (the same directory as index.php). The dounlaid should hae stairtit automatically.\n\nIf the dounlaid wisna offered, or if ye cancelled it, ye can restairt the dounlaid bi clickin the airtin ablo:\n\n$3\n\n<strong>Note:</strong> If ye dinna dae this nou, this generatit configuration file will nae be available tae ye later if ye exit the installation wioot dounlaidin it.\n\nWhen that haes been duin, ye can <strong>[$2 enter yer wiki]</strong>.",
        "config-download-localsettings": "Dounlaid <code>LocalSettings.php</code>",
        "config-help": "heelp",
        "config-help-tooltip": "clap tae mak muckler",
        "config-nofile": "File \"$1\" coudna be foond. Haes it been delytit?",
-       "config-extension-link": "Did ye ken that yer wiki supports [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions extensions]?\n\nYe can brouse [//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category extensions bi categorie] or the [//www.mediawiki.org/wiki/Extension_Matrix Extension Matrix] tae see the full leet o extensions.",
-       "mainpagetext": "<strong>MediaWiki haes been installit wi speed.</strong>",
-       "mainpagedocfooter": "Consult the [//meta.wikimedia.org/wiki/Help:Contents/sco Uiser's Guide] fer information oan uisin the wiki saffware.\n\n== Gettin stairtit ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Confeeguration settins leet]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailin leet]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki fer yer leid]"
+       "config-extension-link": "Did ye ken that yer wiki supports [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions extensions]?\n\nYe can brouse [https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category extensions bi categorie] or the [https://www.mediawiki.org/wiki/Extension_Matrix Extension Matrix] tae see the full leet o extensions.",
+       "mainpagetext": "<strong>MediaWiki haes been installed.</strong>",
+       "mainpagedocfooter": "Consult the [https://meta.wikimedia.org/wiki/Help:Contents/sco Uiser's Guide] fer information oan uisin the wiki saffware.\n\n== Gettin stairtit ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Confeeguration settins leet]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailin leet]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki fer yer leid]"
 }
index 9d7835a..74cbeb2 100644 (file)
@@ -15,5 +15,5 @@
        "config-page-language": "Linga",
        "config-page-welcome": "Binvinuddi in MediaWiki!",
        "mainpagetext": "'''Isthallazioni di MediaWiki accabadda currentementi.'''",
-       "mainpagedocfooter": "Cunsultha la [//meta.wikimedia.org/wiki/Help:Contents Ghia utenti] pa maggiori infuimmazioni i l'usu di chisthu software wiki.\n\n== Pa ischuminzà ==\nLi sighenti cullegamenti so in linga ingrese:\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Impusthazioni di cunfigurazioni]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Prigonti friquenti i MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailing list annùnzii MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
+       "mainpagedocfooter": "Cunsultha la [https://meta.wikimedia.org/wiki/Help:Contents Ghia utenti] pa maggiori infuimmazioni i l'usu di chisthu software wiki.\n\n== Pa ischuminzà ==\nLi sighenti cullegamenti so in linga ingrese:\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Impusthazioni di cunfigurazioni]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Prigonti friquenti i MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailing list annùnzii MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
 }
index 0e6ecb9..f6850a4 100644 (file)
@@ -8,5 +8,5 @@
        },
        "config-admin-password": "Lozinka:",
        "mainpagetext": "<strong>MediaWiki je uspješno instaliran.</strong>",
-       "mainpagedocfooter": "Za informacije o korištenju wiki softvera konzultirajte [//meta.wikimedia.org/wiki/Help:Contents Vodič za korisnike].\n\n== Uvod u rad ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista konfiguracije postavki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista primatelja izdanja MediaWikija]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Lokalizirajte MediaWiki za svoj jezik]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Saznajte kako se boriti protiv spama na svojem wikiju]"
+       "mainpagedocfooter": "Za informacije o korištenju wiki softvera konzultirajte [https://meta.wikimedia.org/wiki/Help:Contents Vodič za korisnike].\n\n== Uvod u rad ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista konfiguracije postavki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista primatelja izdanja MediaWikija]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Lokalizirajte MediaWiki za svoj jezik]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Saznajte kako se boriti protiv spama na svojem wikiju]"
 }
index beecd24..60ef382 100644 (file)
@@ -6,5 +6,5 @@
                ]
        },
        "mainpagetext": "'''MediaWiki tǧizn (tsrbk) bla tamukrist.'''",
-       "mainpagedocfooter": "Ẓr taǧttnn  [//meta.wikimedia.org/wiki/Help:Contents/fr Guide de l’utilisateur] bac ad tawit inɣmisn yaḍn f manik sa tswwurt asɣẓan ad.\n\n== Izwir d MediaWiki ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Umuɣ n iɣwwarn n usgadda ]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/fr Isqqsitn f MidyWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Umuɣ n imsgdaln f imbḍitn n MidyaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
+       "mainpagedocfooter": "Ẓr taǧttnn  [https://meta.wikimedia.org/wiki/Help:Contents/fr Guide de l’utilisateur] bac ad tawit inɣmisn yaḍn f manik sa tswwurt asɣẓan ad.\n\n== Izwir d MediaWiki ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Umuɣ n iɣwwarn n usgadda ]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/fr Isqqsitn f MidyWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Umuɣ n imsgdaln f imbḍitn n MidyaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
 }
index 27b7b93..410f480 100644 (file)
        "config-db-password": "දත්ත සංචිතයේ මුරපදය:",
        "config-db-wiki-account": "සාමාන්‍ය ක්‍රියාකාරිත්වය සඳහා පරිශීලක ගිණුම",
        "config-db-prefix": "දත්ත සංචිත වගු උපසර්ගය:",
-       "config-db-charset": "දත්ත සංචිත අක්ෂර කට්ටලය",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 ද්විමය",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "MySQL 4.0 ආපස්සට-ගැළපෙන UTF-8",
        "config-db-port": "දත්ත සංචිතයේ කවුළුව:",
        "config-db-schema": "මාධ්‍යවිකි සඳහා සංක්ෂිප්ත නිරූපණය:",
        "config-pg-test-error": "'''$1''' දත්ත සංචිතය වෙත සම්බන්ධ විය නොහැක: $2",
        "config-help": "උදව්",
        "config-nofile": "\"$1\" ගොනුව සොයාගත නොහැක. එක මැකිලා ගියාවත්ද?",
        "mainpagetext": "'''මීඩියාවිකි සාර්ථක ලෙස ස්ථාපනය කරන ලදි.'''",
-       "mainpagedocfooter": "විකි මෘදුකාංග භාවිතා කිරීම පිළිබඳ තොරතුරු සඳහා  [//meta.wikimedia.org/wiki/Help:Contents පරිශීලකයන් සඳහා නියමුව] හදාරන්න.\n\n== ඇරඹුම ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings වින්‍යාස සැකසුම්]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ මීඩියාවිකි නිති-විමසන-පැන]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce මීඩියාවිකි නිකුතුව තැපැල් ලැයිස්තුව]"
+       "mainpagedocfooter": "විකි මෘදුකාංග භාවිතා කිරීම පිළිබඳ තොරතුරු සඳහා  [https://meta.wikimedia.org/wiki/Help:Contents පරිශීලකයන් සඳහා නියමුව] හදාරන්න.\n\n== ඇරඹුම ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings වින්‍යාස සැකසුම්]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ මීඩියාවිකි නිති-විමසන-පැන]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce මීඩියාවිකි නිකුතුව තැපැල් ලැයිස්තුව]"
 }
index aac1615..1dcd2c1 100644 (file)
@@ -11,7 +11,7 @@
        "config-title": "Inštalácia MediaWiki $1",
        "config-information": "Informácie",
        "config-localsettings-key": "Aktualizačný kľúč:",
-       "config-localsettings-badkey": "Zadaný kľúč je nesprávny.",
+       "config-localsettings-badkey": "Zadaný aktualizačný kľúč je nesprávny.",
        "config-your-language": "Váš jazyk:",
        "config-your-language-help": "Vyberte jazyk, ktorý chcete použiť počas inštalácie.",
        "config-wiki-language": "Wiki jazyk:",
@@ -51,6 +51,8 @@
        "config-missing-db-name": "Musíte zadať hodnotu pre \"{{int:config-db-name}}\".",
        "config-missing-db-host": "Musíte zadať hodnotu pre \"{{int:config-db-host}}\".",
        "config-missing-db-server-oracle": "Musíte zadať hodnotu pre \"{{int:config-db-host-oracle}}\".",
+       "config-site-name": "Názov wiki:",
+       "config-site-name-blank": "Zadajte názov stránky.",
        "config-ns-generic": "Projekt",
        "config-admin-box": "Účet správcu",
        "config-admin-name": "Vaše používateľské meno:",
@@ -76,7 +78,7 @@
        "config-download-localsettings": "Stiahnuť <code>LocalSettings.php</code>",
        "config-help": "nápoveda",
        "config-nofile": "Súbor \"$1\" sa nenašiel. Bol zmazaný?",
-       "config-extension-link": "Vedeli ste, že vaša wiki podporuje [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions rozšírenia]?\nMôžete hľadať rozšírenia [//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category podľa kategórie] alebo si pozrite [//www.mediawiki.org/wiki/Extension_Matrix Extension Matrix] -  kompletný zoznam rozšírení.",
+       "config-extension-link": "Vedeli ste, že vaša wiki podporuje [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions rozšírenia]?\nMôžete hľadať rozšírenia [https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category podľa kategórie] alebo si pozrite [https://www.mediawiki.org/wiki/Extension_Matrix Extension Matrix] -  kompletný zoznam rozšírení.",
        "mainpagetext": "'''Softvér MediaWiki bol úspešne nainštalovaný.'''",
-       "mainpagedocfooter": "Informácie ako používať wiki softvér nájdete v [//meta.wikimedia.org/wiki/Help:Contents Používateľskej príručke].\n\n== Začíname ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Zoznam konfiguračných nastavení]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Časté otázky o MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce E-poštová konferencia oznámení o MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Preklad MediaWiki do vášho jazyka]"
+       "mainpagedocfooter": "Informácie ako používať wiki softvér nájdete v [https://meta.wikimedia.org/wiki/Help:Contents Používateľskej príručke].\n\n== Začíname ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Zoznam konfiguračných nastavení]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Časté otázky o MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce E-poštová konferencia oznámení o MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Preklad MediaWiki do vášho jazyka]"
 }
index 25febaf..41be1ac 100644 (file)
@@ -43,7 +43,7 @@
        "config-help-restart": "Želite počistiti vse shranjene podatke, ki ste jih vnesti, in ponovno začeti s postopkom namestitve?",
        "config-restart": "Da, ponovno zaženi",
        "config-welcome": "=== Pregledi okolja ===\nIzvedli bomo osnovne preglede, da vidimo, če je okolje primerno za namestitev MediaWiki.\nPosredujte rezultate teh pregledov, če med namestitvijo potrebujete pomoč.",
-       "config-sidebar": "* [//www.mediawiki.org Domača stran MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Vodnik za uporabnike]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Vodnik za administratorje]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Pogosto zastavljena vprašanja]\n----\n* <doclink href=Readme>Beri me</doclink>\n* <doclink href=ReleaseNotes>Opombe ob izidu</doclink>\n* <doclink href=Copying>Kopiranje</doclink>\n* <doclink href=UpgradeDoc>Nadgrajevanje</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org Domača stran MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Vodnik za uporabnike]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Vodnik za administratorje]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Pogosto zastavljena vprašanja]\n----\n* <doclink href=Readme>Beri me</doclink>\n* <doclink href=ReleaseNotes>Opombe ob izidu</doclink>\n* <doclink href=Copying>Kopiranje</doclink>\n* <doclink href=UpgradeDoc>Nadgrajevanje</doclink>",
        "config-env-good": "Okolje je pregledano.\nLahko namestite MediaWiki.",
        "config-env-bad": "Okolje je pregledano.\nNe morete namestiti MediaWiki.",
        "config-env-php": "Nameščen je PHP $1.",
        "config-db-install-help": "Vnesite uporabniško ime in geslo za povezavo s podatkovno zbirko med postopkom nameščanja.",
        "config-db-account-lock": "Uporabite isto uporabniško ime in geslo tudi po namestitvi.",
        "config-db-prefix": "Predpona tabel zbirke podatkov:",
-       "config-db-charset": "Nabor znakov zbirke podatkov",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 dvojiško",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "MySQL 4.0 nazaj združljiv UTF-8",
        "config-mysql-old": "Potreben je MySQL $1 ali novejši; vi imate $2.",
        "config-db-port": "Vrata zbirke podatkov:",
        "config-db-schema": "Shema MediaWiki",
        "config-profile-no-anon": "Zahtevano je ustvarjanje računa",
        "config-profile-fishbowl": "Samo pooblaščeni urejevalci",
        "config-profile-private": "Zasebni wiki",
-       "config-profile-help": "Wikiji delujejo najbolje, kadar jih lahko ureja največje možno število ljudi.\nPregled nad zadnjimi spremembami in razveljavljanje škode, ki jo povzročijo neuki ali zlonamerni uporabniki, je v MediaWiki preprosto.\n\nVendar pa je MediaWiki uporaben v celi vrsti različnih vlog, pri čemer včasih ni lahko prepričati vseh o prednostih wiki načina. Zato imate izbiro.\n\nModel <strong>{{int:config-profile-wiki}}</strong> dovoljuje urejanje vsem, tudi brez prijavljanja.\nWiki, nastavljen na <strong>{{int:config-profile-no-anon}}</strong> nudi dodatno sledljivost, vendar lahko odvrne priložnostne urejevalce.\n\nScenarij <strong>{{int:config-profile-fishbowl}}</strong> dovoljuje urejanje odobrenim uporabnikom, pri čemer sta vsebina in zgodovina strani javni.\nV načinu <strong>{{int:config-profile-private}}</strong> lahko urejajo in pregledujejo strani le odobreni uporabniki.\n\nPodrobnejše konfiguriranje uporabniških pravic je možno po namestitvi, glejte [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights vnos v uporabniškem priročniku].",
+       "config-profile-help": "Wikiji delujejo najbolje, kadar jih lahko ureja največje možno število ljudi.\nPregled nad zadnjimi spremembami in razveljavljanje škode, ki jo povzročijo neuki ali zlonamerni uporabniki, je v MediaWiki preprosto.\n\nVendar pa je MediaWiki uporaben v celi vrsti različnih vlog, pri čemer včasih ni lahko prepričati vseh o prednostih wiki načina. Zato imate izbiro.\n\nModel <strong>{{int:config-profile-wiki}}</strong> dovoljuje urejanje vsem, tudi brez prijavljanja.\nWiki, nastavljen na <strong>{{int:config-profile-no-anon}}</strong> nudi dodatno sledljivost, vendar lahko odvrne priložnostne urejevalce.\n\nScenarij <strong>{{int:config-profile-fishbowl}}</strong> dovoljuje urejanje odobrenim uporabnikom, pri čemer sta vsebina in zgodovina strani javni.\nV načinu <strong>{{int:config-profile-private}}</strong> lahko urejajo in pregledujejo strani le odobreni uporabniki.\n\nPodrobnejše konfiguriranje uporabniških pravic je možno po namestitvi, glejte [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights vnos v uporabniškem priročniku].",
        "config-license": "Avtorske pravice in licenca:",
        "config-license-none": "Brez noge dovoljenja",
        "config-license-cc-by-sa": "Creative Commons Priznanje avtorstva-Deljenje pod enakimi pogoji",
        "config-download-localsettings": "Prenesi <code>LocalSettings.php</code>",
        "config-help": "pomoč",
        "mainpagetext": "<strong>Programje MediaWiki je bilo nameščeno.</strong>",
-       "mainpagedocfooter": "Oglejte si [//meta.wikimedia.org/wiki/Help:Contents Uporabniški priročnik] za informacije o uporabi programja wiki.\n\n== Kako začeti ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Seznam konfiguracijskih nastavitev]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Poogsto zastavljena vprašanja MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Poštni seznam izdaj MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Prevedite MediaWiki v svoj jezik]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Izvedite, kako se boriti proti smetju na svojem wikiju]"
+       "mainpagedocfooter": "Oglejte si [https://meta.wikimedia.org/wiki/Help:Contents Uporabniški priročnik] za informacije o uporabi programja wiki.\n\n== Kako začeti ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Seznam konfiguracijskih nastavitev]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Poogsto zastavljena vprašanja MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Poštni seznam izdaj MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Prevedite MediaWiki v svoj jezik]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Izvedite, kako se boriti proti smetju na svojem wikiju]"
 }
index c8fc25f..ddf0e7a 100644 (file)
@@ -5,5 +5,5 @@
                ]
        },
        "mainpagetext": "'''MediaWiki wourde erfolgreich installiert.'''",
-       "mainpagedocfooter": "Hilfe zur Benutzung und Konfiguration der Wiki-Software fendest du eim [//meta.wikimedia.org/wiki/Help:Contents Benutzerhandbichl].\n\n== Stoarthilfa ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Liste der Konfigurationsvariablen]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki-FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen]"
+       "mainpagedocfooter": "Hilfe zur Benutzung und Konfiguration der Wiki-Software fendest du eim [https://meta.wikimedia.org/wiki/Help:Contents Benutzerhandbichl].\n\n== Stoarthilfa ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Liste der Konfigurationsvariablen]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki-FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen]"
 }
index 95e3687..aebc697 100644 (file)
@@ -5,5 +5,5 @@
                ]
        },
        "mainpagetext": "'''MediaWiki Si fiican oo kuugu install gareeyay.'''",
-       "mainpagedocfooter": "Meeshaan ka akhriso sidii aad u isticmaali leheed brogramka wiki [//meta.wikimedia.org/wiki/Help:Contents User's Guide]  .\n== Bilaaw ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
+       "mainpagedocfooter": "Meeshaan ka akhriso sidii aad u isticmaali leheed brogramka wiki [https://meta.wikimedia.org/wiki/Help:Contents User's Guide]  .\n== Bilaaw ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
 }
index a6f0745..27636e4 100644 (file)
@@ -41,5 +41,5 @@
        "config-install-stats": "Nisja e statistikave",
        "config-help": "ndihmë",
        "mainpagetext": "'''MediaWiki software u instalua me sukses.'''",
-       "mainpagedocfooter": "Për më shumë informata rreth përdorimit të softwerit wiki , ju lutem shikoni [//meta.wikimedia.org/wiki/Help:Contents dokumentacionin përkatës].\n\n== Sa për fillim==\n* [//www.mediawiki.org/wiki/Help:Configuration_settings Parazgjedhjet e MediaWiki-t]\n* [//www.mediawiki.org/wiki/Help:FAQ Pyetjet e shpeshta rreth MediaWiki-t]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Njoftime rreth MediaWiki-t]"
+       "mainpagedocfooter": "Për më shumë informata rreth përdorimit të softwerit wiki , ju lutem shikoni [https://meta.wikimedia.org/wiki/Help:Contents dokumentacionin përkatës].\n\n== Sa për fillim==\n* [https://www.mediawiki.org/wiki/Help:Configuration_settings Parazgjedhjet e MediaWiki-t]\n* [https://www.mediawiki.org/wiki/Help:FAQ Pyetjet e shpeshta rreth MediaWiki-t]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Njoftime rreth MediaWiki-t]"
 }
index fc6997d..2c5b8ce 100644 (file)
@@ -85,5 +85,5 @@
        "config-help": "помоћ",
        "config-help-tooltip": "кликните да проширите",
        "mainpagetext": "<strong>Медијавики је успешно инсталиран.</strong>",
-       "mainpagedocfooter": "Погледајте [//meta.wikimedia.org/wiki/Help:Contents кориснички водич] за коришћење програма.\n\n== Увод ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Помоћ у вези са подешавањима]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Често постављена питања]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Дописна листа о издањима Медијавикија]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Научите како да се борете против спама на Вашој вики]"
+       "mainpagedocfooter": "Погледајте [https://meta.wikimedia.org/wiki/Help:Contents кориснички водич] за коришћење програма.\n\n== Увод ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Помоћ у вези са подешавањима]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Често постављена питања]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Дописна листа о издањима Медијавикија]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Научите како да се борете против спама на Вашој вики]"
 }
index 3e1faf9..20c2877 100644 (file)
@@ -36,5 +36,5 @@
        "config-license-cc-0": "Creative Commons Zero (javno vlasništvo)",
        "config-skins": "Teme",
        "mainpagetext": "<strong>Medijaviki je uspešno instaliran.</strong>",
-       "mainpagedocfooter": "Molimo vidite [//meta.wikimedia.org/wiki/Help:Contents korisnički vodič] za informacije o upotrebi viki softvera.\n\n== Za početak ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Pomoć u vezi sa podešavanjima]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Najčešće postavljena pitanja]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mejling lista o izdanjima MedijaVikija]"
+       "mainpagedocfooter": "Molimo vidite [https://meta.wikimedia.org/wiki/Help:Contents korisnički vodič] za informacije o upotrebi viki softvera.\n\n== Za početak ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Pomoć u vezi sa podešavanjima]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Najčešće postavljena pitanja]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mejling lista o izdanjima MedijaVikija]"
 }
index 5081d2a..643a925 100644 (file)
@@ -5,5 +5,5 @@
                ]
        },
        "mainpagetext": "'''MediaWiki seti kon bun.'''",
-       "mainpagedocfooter": "Luku na ini a [//meta.wikimedia.org/wiki/Help:Contents yepibuku] fu si fa fu kebrouki a wikisoftware.\n\n== Moro yepi ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Den seti]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Sani di ben aksi furu (FAQ)]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Boskopu grupu gi nyun meki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
+       "mainpagedocfooter": "Luku na ini a [https://meta.wikimedia.org/wiki/Help:Contents yepibuku] fu si fa fu kebrouki a wikisoftware.\n\n== Moro yepi ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Den seti]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Sani di ben aksi furu (FAQ)]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Boskopu grupu gi nyun meki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
 }
index 2455e0b..d75b9ea 100644 (file)
@@ -5,5 +5,5 @@
                ]
        },
        "mainpagetext": "'''Ju MediaWiki Software wuude mäd Ärfoulch installierd.'''",
-       "mainpagedocfooter": "Sjuch ju [//meta.wikimedia.org/wiki/MediaWiki_localization Dokumentation tou de Anpaasenge fon dän Benutseruurfläche] un dät [//meta.wikimedia.org/wiki/Help:Contents Benutserhondbouk] foar Hälpe tou ju Benutsenge un Konfiguration."
+       "mainpagedocfooter": "Sjuch ju [https://meta.wikimedia.org/wiki/MediaWiki_localization Dokumentation tou de Anpaasenge fon dän Benutseruurfläche] un dät [https://meta.wikimedia.org/wiki/Help:Contents Benutserhondbouk] foar Hälpe tou ju Benutsenge un Konfiguration."
 }
index ca4a5ef..46b920c 100644 (file)
@@ -12,5 +12,5 @@
        "config-localsettings-key": "Sandi apgréd:",
        "config-localsettings-badkey": "Sandi anu diasupkeun salah.",
        "mainpagetext": "<strong>MediaWiki geus réngsé diinstal.</strong>",
-       "mainpagedocfooter": "Mangga tingal ''[//meta.wikimedia.org/wiki/MediaWiki_localisation documentation on customizing the interface]'' jeung [//meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide Tungtunan Pamaké] pikeun pitulung maké jeung konfigurasi."
+       "mainpagedocfooter": "Mangga tingal ''[https://meta.wikimedia.org/wiki/MediaWiki_localisation documentation on customizing the interface]'' jeung [https://meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide Tungtunan Pamaké] pikeun pitulung maké jeung konfigurasi."
 }
index 3ab0c80..829aae4 100644 (file)
        "config-restart": "Ja, starta om",
        "config-welcome": "=== Miljökontroller ===\nGrundläggande kontroller kommer nu att utföras för att se om denna miljö är lämplig för installation av MediaWiki.\nKom ihåg att ta med denna information om du söker stöd för hur du skall slutföra installationen.",
        "config-copyright": "=== Upphovsrätt och Villkor ===\n\n$1\n\nDetta program är fri programvara; du kan vidaredistribuera den och/eller modifiera det enligt villkoren i GNU General Public License som publicerats av Free Software Foundation; antingen genom version 2 av licensen, eller (på ditt initiativ) någon senare version.\n\nDetta program är distribuerat i hopp om att det kommer att vara användbart, men '''utan någon garanti'''; utan att ens ha en underförstådd garanti om '''säljbarhet''' eller '''lämplighet för ett särskilt ändamål'''.\nSe GNU General Public License för mer detaljer.\n\nDu bör ha fått <doclink href=Copying>en kopia av GNU General Public License</doclink> tillsammans med detta program; om inte, skriv till Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA, eller [http://www.gnu.org/copyleft/gpl.html läs den online].",
-       "config-sidebar": "* [//www.mediawiki.org MediaWikis webbplats]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Användarguide]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Administratörguide]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Frågor och svar]\n----\n* <doclink href=Readme>Läs mig</doclink>\n* <doclink href=ReleaseNotes>Utgivningsanteckningar</doclink>\n* <doclink href=Copying>Kopiering</doclink>\n* <doclink href=UpgradeDoc>Uppgradering</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org MediaWikis webbplats]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Användarguide]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Administratörguide]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Frågor och svar]\n----\n* <doclink href=Readme>Läs mig</doclink>\n* <doclink href=ReleaseNotes>Utgivningsanteckningar</doclink>\n* <doclink href=Copying>Kopiering</doclink>\n* <doclink href=UpgradeDoc>Uppgradering</doclink>",
        "config-env-good": "Miljön har kontrollerats.\nDu kan installera MediaWiki.",
        "config-env-bad": "Miljön har kontrollerats.\nDu kan inte installera MediaWiki.",
        "config-env-php": "PHP $1 är installerat.",
        "config-env-hhvm": "HHVM $1 är installerat.",
        "config-unicode-using-intl": "Använder [http://pecl.php.net/intl intl PECL-tillägget] för Unicode-normalisering.",
-       "config-unicode-pure-php-warning": "'''Varning:''' [http://pecl.php.net/intl intl PECL-tillägget] är inte tillgängligt för att hantera Unicode-normalisering, faller tillbaka till en långsamt implementering i ren PHP.\nOm du driver en högtrafikerad webbplats bör du läsa lite om [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode-normalisering].",
-       "config-unicode-update-warning": "'''Varning:''' Den installerade versionen av Unicode-normaliserings \"wrappern\" använder en äldre version av [http://site.icu-project.org/ ICU projektets] bibliotek.\nDu bör [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations uppgradera] om är intresserad av att använda Unicode.",
+       "config-unicode-pure-php-warning": "'''Varning:''' [http://pecl.php.net/intl intl PECL-tillägget] är inte tillgängligt för att hantera Unicode-normalisering, faller tillbaka till en långsamt implementering i ren PHP.\nOm du driver en högtrafikerad webbplats bör du läsa lite om [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode-normalisering].",
+       "config-unicode-update-warning": "<strong>Varning:</strong> Den installerade versionen av Unicode-normaliserings \"wrappern\" använder en äldre version av [http://site.icu-project.org/ ICU projektets] bibliotek.\nDu bör [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations uppgradera] om är intresserad av att använda Unicode.",
        "config-no-db": "Kunde inte hitta en lämplig databasdrivrutin! Du måste installera en databasdrivrutin för PHP.\nFöljande databas{{PLURAL:$2|typ |typer}} stöds: $1.\n\nI du själv kompilerat din PHP, konfigurera den med en databasklient aktiverad genom att t.ex. använda <code>./configure --with-mysqli</code>.\nOm du installerade PHP från ett Debian- eller Ubuntupaket måste du även installera, t.ex. <code>php5-mysql</code>-paketet.",
        "config-outdated-sqlite": "'''Varning:''' du har SQLite $1, vilket är lägre än minimikravet version $2. SQLite kommer inte att vara tillgänglig.",
        "config-no-fts3": "'''Varning:''' SQLite kompileras utan [//sqlite.org/fts3.html FTS3-modulen], sökfunktioner kommer att vara otillgängliga på denna backend.",
-       "config-mbstring": "'''Kritiskt: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] är aktiv!'''\nDetta alternativ orsakar fel och kan korrumpera data oförutsägbart.\nDu kan inte installera eller använda MediaWiki om detta alternativ är aktiverat.",
-       "config-xml-bad": "PHP:s XML-modul saknas.\nMediaWiki kräver funktioner i denna modul och kommer inte att fungera i den här konfigurationen.\nDu kan behöva installera RPM-paketet för php-xml.",
        "config-pcre-old": "'''Kritiskt:''' PCRE $1 eller senare krävs.\nDin PHP-binär är länkad till PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Mer information].",
        "config-pcre-no-utf8": "'''Kritiskt:''' PHP:s PCRE-modul verkar vara kompilerat utan PCRE_UTF8-stöd.\nMediaWiki kräver stöd för UTF-8 för att fungera korrekt.",
        "config-memory-raised": "PHPs <code>memory_limit</code> är $1, ökad till $2.",
        "config-memory-bad": "''' Varning:''' PHP:s <code>memory_limit</code> är $1.\nDetta är förmodligen för lågt.\nInstallationen kan misslyckas!",
-       "config-ctype": "'''Kritiskt:''' PHP måste kompileras med stöd för [http://www.php.net/manual/en/ctype.installation.php Ctype-tillägget].",
-       "config-iconv": "<strong>Kritiskt:</strong> PHP måste kompileras med stöd för [http://www.php.net/manual/en/iconv.installation.php iconv-tillägget].",
-       "config-json": "'''Varning:''' PHP kompilerades utan JSON-stöd.\nDu måste antingen installera PHP JSON-tillägget eller [http://pecl.php.net/package/jsonc PECL jsonc]-tillägget före installationen av MediaWiki.\n* PHP-tillägget är inkluderat i Red Hat Enterprise Linux (CentOS) 5 och 6, men måste aktiveras i <code>/etc/php.ini</code> eller <code>/etc/php.d/json.ini</code>.\n* Vissa Linux-distributioner släppta efter maj 2013 har utelämnat PHP-tillägget och har istället inkluderat PECL-tillägget som <code>php5-json</code> eller <code>php-pecl-jsonc</code>.",
-       "config-mbstring-absent": "'''Kritiskt:''' PHP måste kompileras med stöd för tillägget [http://www.php.net/manual/en/mbstring.setup.php mbstring mbstring].",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] är installerat",
        "config-apc": "[http://www.php.net/apc APC] är installerat",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] är installerat",
@@ -86,7 +80,7 @@
        "config-no-cli-uri": "'''Varning:''' Ingen <code>--scriptpath</code> är angiven, använder standarden: <code>$1</code> .",
        "config-using-server": "Använder servernamn \"<nowiki>$1</nowiki>\".",
        "config-using-uri": "Använder server-URL \"<nowiki>$1$2</nowiki>\".",
-       "config-uploads-not-safe": "'''Varning:''' Din standardkatalog för uppladdningar <code>$1</code> är sårbar för körning av godtyckliga skript.\nÄven om MediaWiki kontrollerar alla uppladdade filer för säkerhetshot är det ändå starkt rekommenderat att [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security stänga detta säkerhetshål] innan du aktiverar uppladdningar.",
+       "config-uploads-not-safe": "<strong>Varning:</strong> Din standardkatalog för uppladdningar <code>$1</code> är sårbar för körning av godtyckliga skript.\nÄven om MediaWiki kontrollerar alla uppladdade filer för säkerhetshot är det ändå starkt rekommenderat att [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security stänga detta säkerhetshål] innan du aktiverar uppladdningar.",
        "config-no-cli-uploads-check": "'''Varning:''' Din standardkatalog för uppladdningar (<code>$1</code>) har inte kontrollerats för sårbarhet från körning av godtyckliga skript under CLI-installationen.",
        "config-brokenlibxml": "Ditt system har en kombination av PHP och libxml2 som är buggigt och kan orsaka datakorruption i MediaWiki och andra webbprogram.\nUppgradera till libxml2 2.7.3 eller senare ([https//bugs.php.net/bug.php?id=45996 buggfil med PHP]).\nInstallationen avbröts.",
        "config-suhosin-max-value-length": "Suhosin är installerat och begränsar GET-parametern <code>length</code> till $1 bytes.\nMediaWikis ResourceLoader-komponent kommer att arbeta runt denna begränsning, men det kommer att försämra prestandan.\nOm möjligt bör du sätta <code>suhosin.get.max_value_length</code> till 1024 eller högre i <code>php.ini</code>, och sätta <code>$wgResourceLoaderMaxQueryLength</code> till samma värde som i <code>LocalSettings.php</code>.",
        "config-db-wiki-help": "Ange det användarnamn och lösenorde som skall användas för att ansluta till databasen under normal wiki-drift. Om kontot inte existerar, och om installationskontot har tillräcklig behörighet, kommer detta användarkontot att skapas med de minimiprivilegier som krävs för att driva wikin.",
        "config-db-prefix": "Prefix för tabellerna i databasen:",
        "config-db-prefix-help": "Om du behöver dela en databas mellan flera olika wikis, eller mellan MediaWiki och en annan webbapplikation, kan du välja att lägga till ett prefix till alla tabellnamn för att undvika konflikter.\nAnvänd inte mellanslag.\n\nDet här fältet lämnas vanligtvis tomt.",
-       "config-db-charset": "Databasteckensuppsättning:",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 binär",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "MySQL 4.0 bakåtkompatibel UTF-8",
-       "config-charset-help": "'''Varning:''' Om du använder '''bakåtkompatibel UTF-8''' i MySQL 4.1+, och därefter säkerhetskopierar databasen med <code>mysqldump</code>, kan det förstöra alla icke-ASCII-tecken, vilket oåterkalleligt förstör dina säkerhetskopior!\n\nI '''binärt läge''' lagrar MediaWiki UTF-8-text till databasen i binära fält.\nDetta är mer effektivt än MySQLs UTF-8-läge, och tillåter dig att använda ett fullt utbud av Unicode-tecken.\nI '''UTF-8-läge''' kommer MySQL känna av vilken teckenuppsättning din data är i, och kan presentera och konvertera den på ett lämpligt sätt, men den kommer inte lagra tecken ovanför [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
        "config-mysql-old": "MySQL $1 eller senare krävs. Du har $2.",
        "config-db-port": "Databasport:",
        "config-db-schema": "Schema för MediaWiki",
        "config-mysql-charset": "Databasteckensuppsättning:",
        "config-mysql-binary": "Binär",
        "config-mysql-utf8": "UTF-8",
-       "config-mysql-charset-help": "I '''binärt läge''' lagrar MediaWiki UTF-8 text till databasen i binära fält.\nDetta är mer effektivt än MySQLs UTF-8-läge, och den tillåter dig att använda den fulla uppsättningen av Unicode-tecken.\n\nI '''UTF-8-läge''' vet MySQL vilket teckenuppsättning din data är i och kan presentera och konvertera den på ett lämpligt sätt, men den tillåter dig inte att lagra tecken över [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
+       "config-mysql-charset-help": "I '''binärt läge''' lagrar MediaWiki UTF-8 text till databasen i binära fält.\nDetta är mer effektivt än MySQLs UTF-8-läge, och den tillåter dig att använda den fulla uppsättningen av Unicode-tecken.\n\nI '''UTF-8-läge''' vet MySQL vilket teckenuppsättning din data är i och kan presentera och konvertera den på ett lämpligt sätt, men den tillåter dig inte att lagra tecken över [https://en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
        "config-mssql-auth": "Autentiseringstyp:",
        "config-mssql-install-auth": "Välj autentiseringstypen som kommer att användas för att ansluta till databasen under installationsprocessen.\nOm du väljer \"{{int:config-mssql-windowsauth}}\", kommer autentiseringsuppgifterna för den användare webbservern körs som att användas.",
        "config-mssql-web-auth": "Välj autentiseringstypen som kommer att användas för att ansluta till databasen under ordinarie drift av wikin.\nOm du väljer \"{{int:config-mssql-windowsauth}}\", kommer autentiseringsuppgifterna för den användare webbservern körs som att användas.",
        "config-profile-no-anon": "Kontoskapande krävs",
        "config-profile-fishbowl": "Endast auktoriserade redigerare",
        "config-profile-private": "Privat wiki",
-       "config-profile-help": "Wikier fungerar bäst när du låter som många människor som möjligt redigera dem.\nI MediaWiki är det lätt att granska de senaste ändringarna och återställa alla skador som utförs av naiva eller illvilliga användare.\n\nMen många har funnit MediaWiki användbart i en mängd olika roller, och ibland är det inte lätt att övertyga alla om fördelarna med wiki-sättet.\nSå valet är ditt.\n\nModellen <strong>{{int:config-profil-wiki}}</strong> tillåter vem som helst att redigera, utan att ens behöva logga in.\nEn wiki med <strong>{{int:config-profil-ingen-anon}}</strong> ger extra ansvarskänsla, men kan avskräcka tillfälliga bidragsgivare.\n\nScenariot <strong>{{int:config-profil-fishbowl}}</strong> tillåter godkända användare att redigera, men allmänheten kan se sidorna, inklusive historik.\nA <strong>{{int:config-profil-privat}}</strong> tillåter endast godkända användare att se sidor, samma grupp får även redigera.\n\nMer komplexa användarrättighetskonfigurationer finns tillgängliga efter installationen, se [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights avsnittet i manualen].",
+       "config-profile-help": "Wikier fungerar bäst när du låter som många människor som möjligt redigera dem.\nI MediaWiki är det lätt att granska de senaste ändringarna och återställa alla skador som utförs av naiva eller illvilliga användare.\n\nMen många har funnit MediaWiki användbart i en mängd olika roller, och ibland är det inte lätt att övertyga alla om fördelarna med wiki-sättet.\nSå valet är ditt.\n\nModellen <strong>{{int:config-profil-wiki}}</strong> tillåter vem som helst att redigera, utan att ens behöva logga in.\nEn wiki med <strong>{{int:config-profil-ingen-anon}}</strong> ger extra ansvarskänsla, men kan avskräcka tillfälliga bidragsgivare.\n\nScenariot <strong>{{int:config-profil-fishbowl}}</strong> tillåter godkända användare att redigera, men allmänheten kan se sidorna, inklusive historik.\nA <strong>{{int:config-profil-privat}}</strong> tillåter endast godkända användare att se sidor, samma grupp får även redigera.\n\nMer komplexa användarrättighetskonfigurationer finns tillgängliga efter installationen, se [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights avsnittet i manualen].",
        "config-license": "Upphovsrätt och licens:",
        "config-license-none": "Ingen licenssidfot",
        "config-license-cc-by-sa": "Creative Commons Erkännande-DelaLika",
        "config-email-sender-help": "Ange den e-postadressen som ska användas som returadress på utgående e-post.\nDetta är dit studsar skickas.\nMånga mailservrar kräver att minst domännamndelen är giltigt.",
        "config-upload-settings": "Bild- och filuppladdningar",
        "config-upload-enable": "Aktivera filuppladdningar",
-       "config-upload-help": "Filuppladdning utsätter potentiellt din server för säkerhetsrisker.\nFör mer information, Läs  [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security säkerhetsavsnittet] i manualen.\n\nFör att aktivera filuppladdning, ändra läget för <code>images</code>-underkatalogen under rotkatalogen för MediaWiki så att webbservern kan skriva till den.\nAktivera sedan detta alternativ.",
+       "config-upload-help": "Filuppladdning utsätter potentiellt din server för säkerhetsrisker.\nFör mer information, Läs  [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security säkerhetsavsnittet] i manualen.\n\nFör att aktivera filuppladdning, ändra läget för <code>images</code>-underkatalogen under rotkatalogen för MediaWiki så att webbservern kan skriva till den.\nAktivera sedan detta alternativ.",
        "config-upload-deleted": "Katalog för raderade filer:",
        "config-upload-deleted-help": "Välja en katalog i vilken raderade filer arkiveras.\nHelst bör denna inte vara tillgängliga från webben.",
        "config-logo": "Logotyp-URL:",
        "config-logo-help": "MediaWikis standardutseende innehåller ett mellanrum för en 135x160 bildpunkter stor logotyp ovanför sidofältsmenyn.\nLadda upp en bild med lämplig storlek och ange webbadressen här.\n\nDu kan använda <code>$wgStylePath</code> eller <code>$wgScriptPath</code> om din logotyp är relativ till dessa sökvägar.\n\nOm du inte vill ha en logotyp kan du lämna detta fält tomt.",
        "config-instantcommons": "Aktivera Instant Commons",
-       "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons Instant Commons] är en funktion som gör det möjligt för wikis att använda bilder, ljud och andra media som finns på [//commons.wikimedia.org/ Wikimedia Commons]-webbplatsen.\nFör att göra detta, kräver MediaWiki tillgång till Internet.\n\nFör mer information om denna funktion, inklusive instruktioner om hur man ställer in den för andra wikis än Wikimedia Commons, se [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos manualen].",
+       "config-instantcommons-help": "[https://www.mediawiki.org/wiki/InstantCommons Instant Commons] är en funktion som gör det möjligt för wikis att använda bilder, ljud och andra media som finns på [https://commons.wikimedia.org/ Wikimedia Commons]-webbplatsen.\nFör att göra detta, kräver MediaWiki tillgång till Internet.\n\nFör mer information om denna funktion, inklusive instruktioner om hur man ställer in den för andra wikis än Wikimedia Commons, se [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos manualen].",
        "config-cc-error": "Creative Commons-licens-väljaren gav inget resultat.\nAnge licensnamnet manuellt.",
        "config-cc-again": "Välj igen...",
        "config-cc-not-chosen": "Välj vilken Creative Commons-licens du vill ha och klicka på \"proceed\".",
        "config-install-extension-tables": "Skapar tabeller för aktiverade tillägg",
        "config-install-mainpage-failed": "Kunde inte infoga huvudsidan: $1",
        "config-install-done": "<strong>Grattis!</strong>\nDu har installerat MediaWiki.\n\nInstallationsprogrammet har genererat filen <code>LocalSettings.php</code>.\nDet innehåller alla dina konfigurationer.\n\nDu kommer att behöva ladda ner den och placera den i roten för din wiki-installation (samma katalog som index.php). Nedladdningen borde ha startats automatiskt.\n\nOm ingen nedladdning erbjöds, eller om du har avbrutit det kan du starta om nedladdningen genom att klicka på länken nedan:\n\n$3\n\n<strong>OBS</strong>: Om du inte gör detta nu, kommer denna genererade konfigurationsfil inte vara tillgänglig för dig senare om du avslutar installationen utan att ladda ned den.\n\nNär det är klart, kan du <strong>[$2 gå in på din wiki]</strong>",
+       "config-install-done-path": "<strong>Grattis!</strong>\nDu har installerat MediaWiki.\n\nInstallationsprogrammet har genererat filen <code>LocalSettings.php</code>.\nDet innehåller alla dina konfigurationer.\n\nDu kommer att behöva ladda ner den och placera den i <code>$4</code>. Nedladdningen borde ha startats automatiskt.\n\nOm ingen nedladdning erbjöds, eller om du har avbrutit det kan du starta om nedladdningen genom att klicka på länken nedan:\n\n$3\n\n<strong>OBS</strong>: Om du inte gör detta nu, kommer denna genererade konfigurationsfil inte vara tillgänglig för dig senare om du avslutar installationen utan att ladda ned den.\n\nNär det är klart, kan du <strong>[$2 gå in på din wiki]</strong>",
        "config-download-localsettings": "Ladda ner <code>LocalSettings.php</code>",
        "config-help": "hjälp",
        "config-help-tooltip": "klicka för att expandera",
        "config-nofile": "Filen \"$1\" kunde inte hittas. Har den raderats?",
-       "config-extension-link": "Visste du att din wiki stödjer [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions tillägg]?\n\nDu kan bläddra [//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category tillägg efter kategori].",
+       "config-extension-link": "Visste du att din wiki stödjer [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions tillägg]?\n\nDu kan bläddra [https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category tillägg efter kategori].",
        "mainpagetext": "<strong>MediaWiki har installerats utan problem.</strong>",
-       "mainpagedocfooter": "Information om hur wiki-programvaran används finns i [//meta.wikimedia.org/wiki/Help:Contents användarguiden].\n\n== Att komma igång ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista över konfigurationsinställningar]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce E-postlista för nya versioner av MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Lokalisera MediaWiki för ditt språk]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Läs om hur du bekämpar spam på din wiki]"
+       "mainpagedocfooter": "Information om hur wiki-programvaran används finns i [https://meta.wikimedia.org/wiki/Help:Contents användarguiden].\n\n== Att komma igång ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista över konfigurationsinställningar]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce E-postlista för nya versioner av MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Lokalisera MediaWiki för ditt språk]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Läs om hur du bekämpar spam på din wiki]"
 }
index aac7a0f..b39a1ed 100644 (file)
@@ -5,5 +5,5 @@
                ]
        },
        "mainpagetext": "'''MediaWiki imefanikiwa kuingizwa.'''",
-       "mainpagedocfooter": "Shauriana na [//meta.wikimedia.org/wiki/Help:Contents Mwongozo wa Mtumiaji] kwa habari juu ya utumiaji wa bidhaa pepe ya wiki.\n\n== Msaada wa kianzio ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Orodha ya mipangilio ya msingi]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ ya MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Orodha ya utoaji wa habari za MediaWiki]"
+       "mainpagedocfooter": "Shauriana na [https://meta.wikimedia.org/wiki/Help:Contents Mwongozo wa Mtumiaji] kwa habari juu ya utumiaji wa bidhaa pepe ya wiki.\n\n== Msaada wa kianzio ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Orodha ya mipangilio ya msingi]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ ya MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Orodha ya utoaji wa habari za MediaWiki]"
 }
index 68c13cc..2efcf0a 100644 (file)
@@ -5,5 +5,5 @@
                ]
        },
        "mainpagetext": "'''Sztalowańy MediaWiki śe udoło.'''",
-       "mainpagedocfooter": "Uobezdrzij [//meta.wikimedia.org/wiki/Help:Contents przewodńik sprowjacza], kaj sům informacyje uo dźołańu uoprogramowańo MediaWiki.\n\n== Na sztart ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista sztalowań konfiguracyje]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Komuńikaty uo nowych wersyjach MediaWiki]"
+       "mainpagedocfooter": "Uobezdrzij [https://meta.wikimedia.org/wiki/Help:Contents przewodńik sprowjacza], kaj sům informacyje uo dźołańu uoprogramowańo MediaWiki.\n\n== Na sztart ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista sztalowań konfiguracyje]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Komuńikaty uo nowych wersyjach MediaWiki]"
 }
index 361cde9..a531f4f 100644 (file)
@@ -31,7 +31,7 @@
        "config-page-upgradedoc": "தரமுயர்த்தப்படுகிறது",
        "config-page-existingwiki": "இருக்கின்ற விக்கி",
        "config-restart": "ஆம், மறுமுறை துவங்கு",
-       "config-sidebar": "* [//www.mediawiki.org மீடியாவிக்கி முகப்பு]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents பயனரின் கையேடு]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents மேலாளரின் கையேடு]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ அகேகே]\n----\n* <doclink href=Readme>என்னை வாசிக்கவும்</doclink>\n* <doclink href=ReleaseNotes>வெளியீட்டுக் குறிப்புகள்</doclink>\n* <doclink href=Copying>படியெடுத்தல்</doclink>\n* <doclink href=UpgradeDoc>நிகழ்நிலைப்படுத்தல்</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org மீடியாவிக்கி முகப்பு]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents பயனரின் கையேடு]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents மேலாளரின் கையேடு]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ அகேகே]\n----\n* <doclink href=Readme>என்னை வாசிக்கவும்</doclink>\n* <doclink href=ReleaseNotes>வெளியீட்டுக் குறிப்புகள்</doclink>\n* <doclink href=Copying>படியெடுத்தல்</doclink>\n* <doclink href=UpgradeDoc>நிகழ்நிலைப்படுத்தல்</doclink>",
        "config-db-type": "தரவுத்தள வகை:",
        "config-db-wiki-settings": "இந்த விக்கியைக் கண்டுபிடி",
        "config-db-name": "தரவுதளப் பெயர்:",
@@ -39,7 +39,6 @@
        "config-db-username": "தரவுத்தள பயனர்பெயர்:",
        "config-db-password": "தரவுத்தள கடவுச்சொல்:",
        "config-db-prefix": "தரவுத் தள வரிசைப் பட்டியல் முன்னொட்டு:",
-       "config-db-charset": "தரவுத் தள வரியுருத் தொகுதி",
        "config-invalid-db-type": "செல்லாத தரவுத்தள வகை",
        "config-upgrade-done-no-regenerate": "தரமுயர்த்தல் முழுமையடைந்தது.\nநீங்கள் தற்போது [$1 உங்கள் விக்கியைப் பயன்படுத்தத் துவங்கலாம்].",
        "config-db-web-account": "வலை அணுகலுக்கான தரவுத் தளக் கணக்கு",
@@ -86,5 +85,5 @@
        "config-download-localsettings": "<code>LocalSettings.php</code>ஐத் தரவிறக்கவும்",
        "config-help": "உதவி",
        "mainpagetext": "'''விக்கி மென்பொருள் வெற்றிகரமாக உள்ளிடப்பட்டது.'''",
-       "mainpagedocfooter": "விக்கி மென்பொருளைப் பயன்படுத்துவது தொடர்பாக [//meta.wikimedia.org/wiki/Help:Contents பயனர் வழிகாட்டியைப்] பார்க்க.\n\n== தொடக்கப்படிகள் ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings அமைப்புக்களை மாற்றம் செய்தல்]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ மிடியாவிக்கி பொதுவான கேள்விகள்]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce மீடியாவிக்கி வெளியீடு மின்னஞ்சல் பட்டியல்]"
+       "mainpagedocfooter": "விக்கி மென்பொருளைப் பயன்படுத்துவது தொடர்பாக [https://meta.wikimedia.org/wiki/Help:Contents பயனர் வழிகாட்டியைப்] பார்க்க.\n\n== தொடக்கப்படிகள் ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings அமைப்புக்களை மாற்றம் செய்தல்]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ மிடியாவிக்கி பொதுவான கேள்விகள்]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce மீடியாவிக்கி வெளியீடு மின்னஞ்சல் பட்டியல்]"
 }
index a71988e..6965a15 100644 (file)
@@ -43,5 +43,5 @@
        "config-install-extensions": "ವಿಸ್ತರಣೆಲೆನ್ ಸೇರಾದ್",
        "config-help": "ಸಹಾಯೊ",
        "mainpagetext": "'''ಮೀಡಿಯವಿಕಿ ಯಶಸ್ವಿಯಾದ್ ಸ್ಥಾಪನೆ ಆಂಡ್.'''",
-       "mainpagedocfooter": "ವಿಕಿ ತಂತ್ರಾಂಶನ್ ಉಪಗೋಗ ಮನ್ಪುನ ಬಗ್ಗೆ ಮಾಹಿತಿಗ್ [//meta.wikimedia.org/wiki/Help:Contents ಸದಸ್ಯೆರ್ನ ನಿರ್ದೇಶನ ಪುಟ] ತೂಲೆ.\n\n== ಎಂಚ ಶುರು ಮಲ್ಪುನಿ ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ ಮೀಡಿಯವಿಕಿ FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
+       "mainpagedocfooter": "ವಿಕಿ ತಂತ್ರಾಂಶನ್ ಉಪಗೋಗ ಮನ್ಪುನ ಬಗ್ಗೆ ಮಾಹಿತಿಗ್ [https://meta.wikimedia.org/wiki/Help:Contents ಸದಸ್ಯೆರ್ನ ನಿರ್ದೇಶನ ಪುಟ] ತೂಲೆ.\n\n== ಎಂಚ ಶುರು ಮಲ್ಪುನಿ ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ ಮೀಡಿಯವಿಕಿ FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
 }
index 9f3edef..1978af0 100644 (file)
@@ -45,7 +45,7 @@
        "config-restart": "ఔను, తిరిగి ప్రారంభించు",
        "config-welcome": "=== పర్యావరణ పరీక్షలు ===\nఈ పర్యావరణం MediaWiki స్థాపనకు అనుకూలంగా ఉందో లేదో చూసే ప్రాథమిక పరీక్షలు ఇపుడు చేస్తాం.\nస్థాపనను ఎలా పూర్తి చెయ్యాలనే విషయమై మీకు సహాయం అడిగేటపుడు, ఈ సమాచారాన్ని ఇవ్వాలని గుర్తుంచుకోండి.",
        "config-copyright": "=== కాపీహక్కు, నిబంధనలు===\n\n$1\n\nఇది ఉచిత సాఫ్ట్‌వేరు; ఫ్రీ సాఫ్ట్‌వేర్ ఫౌండేషన్ వారు ప్రచురించిన GNU జనరల్ పబ్లిక్ లైసెన్సును (2వ లేదా తరువాతి వర్షన్) అనుసరించి దీన్ని పంపిణీ చెయ్యవచ్చు లేదా మార్చుకోనూవచ్చు.\n\nదీని వలన ఉపయోగం ఉంటుందనే నమ్మకంతో ప్రచురింపబడింది. కానీ <strong>ఎటువంటి వారంటీ లేదు</strong>; <strong> వర్తకం చేయదగ్గ </strong>  లేదా <strong> ఒక అవసరానికి సరిపడే సామర్థ్యం</strong> ఉన్నదనే అంతరార్థ వారంటీ కూడా లేదు.\nమరిన్ని వివరాలకు GNU జనరల్ పబ్లిక్ లైసెన్స్ చూడండి.\n\nమీరు ఈ ప్రోగ్రాముతో పాటు <doclink href=Copying> GNU జనరల్ పబ్లిక్ లైసెన్స్ ప్రతిని </doclink> అందుకుని ఉండాలి; లేకపోతే, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA కు జాబు రాయండి లేదా [http://www.gnu.org/copyleft/gpl.html ఆన్‌లైన్‌లో చదివండి].",
-       "config-sidebar": "* [//www.mediawiki.org MediaWiki మొదటిపేజీ]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents వాడుకరుల మార్గదర్శి]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents అధికారుల మార్గదర్శి]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ]\n----\n* <doclink href=Readme>చదవాల్సినవి</doclink>\n* <doclink href=ReleaseNotes>విడుదల గమనికలు</doclink>\n* <doclink href=Copying>కాపీ చెయ్యడం</doclink>\n* <doclink href=UpgradeDoc>ఉన్నతీకరించడం</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org MediaWiki మొదటిపేజీ]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents వాడుకరుల మార్గదర్శి]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents అధికారుల మార్గదర్శి]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ]\n----\n* <doclink href=Readme>చదవాల్సినవి</doclink>\n* <doclink href=ReleaseNotes>విడుదల గమనికలు</doclink>\n* <doclink href=Copying>కాపీ చెయ్యడం</doclink>\n* <doclink href=UpgradeDoc>ఉన్నతీకరించడం</doclink>",
        "config-env-good": "పర్యావరణాన్ని పరీక్షించాం.\nఇక మీరు MediaWiki ని స్థాపించుకోవచ్చు.",
        "config-env-bad": "పర్యావరణాన్ని పరీక్షించాం.\nమీరు MediaWiki ని స్థాపించలేరు.",
        "config-env-php": "PHP $1 స్థాపించబడింది.",
        "config-db-wiki-help": "మామూలుగా వికీ పనిచేసేటపుడు వాడే డేటాబేసును కనెక్టయేందుకు వాడే వాడుకరిపేరును, సంకేతపదాన్నీ ఎంచుకోండి.\nఒకవేళ ఈ ఖాతా ఉనికిలో లేకపోతే, స్థాపన కోసం వాడుతున్న ఖాతాకు తగు విధమైన అనుమతులు ఉన్న పక్షంలో, ఈ ఖాతాను సృష్టిస్తాం. ఈ కొత్త ఖాతాకు వికీని నడిపేందుకు అవసరమైన అనుమతులను మాత్రం ఇస్తాం.",
        "config-db-prefix": "డేటాబేసు టెబులు ఆదిపదం:",
        "config-db-prefix-help": "ఒకటి కంటే ఎక్కువ వికీలను గానీ, లేదా మీడియావికీ తో పాటు మరో వెబ్ అప్లికేషన్ను గానీ ఒకే డేటాబేసు నుండి వాడదలిస్తే, టేబులు పేర్లకు ముందు ఓ ఆదిపదాన్ని (ప్రిఫిక్స్) ను ఎంచుకోండి. ఈ విధంగా పేర్ల ఘర్షణను నివారింవచ్చు. \nస్పేసులను వాడకండి.\n\nఈ ఫీల్డును సాధారణంగా ఖాళీగా ఉంచేస్తారు.",
-       "config-db-charset": "డేేటాబేసు కారెక్టరు సెట్",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 బైనరీ",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "MySQL 4.0 backwards-compatible UTF-8",
        "config-mysql-old": "MySQL $1 గానీ ఆ తరువాతిది గానీ కావాలి. మీకు $2 ఉంది.",
        "config-db-port": "డేటాబేసు పోర్టు:",
        "config-db-schema": "MediaWiki కొరకు స్కీమా:",
        "config-help": "సహాయం",
        "config-nofile": "\"$1\" ఫైలు దొరకలేదు. దాన్ని గానీ తొలగించారా?",
        "mainpagetext": "'''మీడియా వికీని విజయవంతంగా ప్రతిష్టించాం.'''",
-       "mainpagedocfooter": "వికీ సాఫ్టువేరును వాడటనికి కావలిసిన సమాచారం కోసం [//meta.wikimedia.org/wiki/Help:Contents వాడుకరుల గైడు]ను సందర్శించండి.\n\n== మొదలు పెట్టండి ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings మీడియావికీ పనితీరు, అమరిక మార్చుకునేందుకు వీలుకల్పించే చిహ్నాల జాబితా]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ మీడియావికీపై తరుచుగా అడిగే ప్రశ్నలు]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce మీడియావికీ సాఫ్టువేరు కొత్త వెర్షను విడుదలల గురించి తెలిపే మెయిలింగు లిస్టు]"
+       "mainpagedocfooter": "వికీ సాఫ్టువేరును వాడటనికి కావలిసిన సమాచారం కోసం [https://meta.wikimedia.org/wiki/Help:Contents వాడుకరుల గైడు]ను సందర్శించండి.\n\n== మొదలు పెట్టండి ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings మీడియావికీ పనితీరు, అమరిక మార్చుకునేందుకు వీలుకల్పించే చిహ్నాల జాబితా]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ మీడియావికీపై తరుచుగా అడిగే ప్రశ్నలు]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce మీడియావికీ సాఫ్టువేరు కొత్త వెర్షను విడుదలల గురించి తెలిపే మెయిలింగు లిస్టు]"
 }
index 98ac19c..6dfcbb7 100644 (file)
@@ -5,5 +5,5 @@
                ]
        },
        "mainpagetext": "'''Нармафзори МедиаВики бо муваффақият насб шуд.'''",
-       "mainpagedocfooter": "Барои иттилоот дар бораи истифода нармафзори вики аз //meta.wikimedia.org/wiki/Help:Contents User's Guide] истифода баред.\n\n== Оғоз ба кор ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Феҳристи танзимоти пайгирбандӣ]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Пурсишҳои МедиаВики]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Феҳристи роҳнамои МедиаВики]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Маҳалликунонии МедиаВики ба забони шумо]"
+       "mainpagedocfooter": "Барои иттилоот дар бораи истифода нармафзори вики аз //meta.wikimedia.org/wiki/Help:Contents User's Guide] истифода баред.\n\n== Оғоз ба кор ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Феҳристи танзимоти пайгирбандӣ]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Пурсишҳои МедиаВики]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Феҳристи роҳнамои МедиаВики]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Маҳалликунонии МедиаВики ба забони шумо]"
 }
index 41d148a..6c5390c 100644 (file)
@@ -5,5 +5,5 @@
                ]
        },
        "mainpagetext": "'''Narmafzori MediaViki bo muvaffaqijat nasb şud.'''",
-       "mainpagedocfooter": "Az [//meta.wikimedia.org/wiki/Help:Contents Rohnamoi Korbaron] baroi istifodai narmafzori viki kūmak bigired.\n\n== Oƣoz ba kor ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Fehristi tanzimoti pajgirbandī]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Pursişhoi MediaViki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Fehristi rojnomahoi nusxahoi MediaViki]"
+       "mainpagedocfooter": "Az [https://meta.wikimedia.org/wiki/Help:Contents Rohnamoi Korbaron] baroi istifodai narmafzori viki kūmak bigired.\n\n== Oƣoz ba kor ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Fehristi tanzimoti pajgirbandī]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Pursişhoi MediaViki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Fehristi rojnomahoi nusxahoi MediaViki]"
 }
index fd406a7..e68a079 100644 (file)
@@ -43,7 +43,7 @@
        "config-help-restart": "คุณต้องการล้างข้อมูลทั้งหมดที่คุณกรอกและเริ่มกระบวนการติดตั้งอีกครั้งหรือไม่?",
        "config-restart": "ใช่ เริ่มใหม่อีกครั้ง",
        "config-welcome": "=== การตรวจสอบสภาพแวดล้อม ===\nการตรวจสอบเบื้องต้นจะกระทำขึ้นเพื่อดูว่าสภาพแวดล้อมนี้เหมาะสมสำหรับการติดตั้งมีเดียวิกิหรือไม่\nจำไว้ว่าให้รวบรวมสารสนเทศนี้ ถ้าคุณแสวงหาการสนับสนุนเพื่อที่จะติดตั้งให้สมบูรณ์",
-       "config-sidebar": "* [//www.mediawiki.org โฮมเพจมีเดียวิกิ]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents แนวปฏิบัติของผู้ใช้]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents แนวปฏิบัติของผู้ดูแลระบบ]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ คำถามที่ถามบ่อย]\n----\n* <doclink href=Readme>อ่านเอกสารกำกับ</doclink>\n* <doclink href=ReleaseNotes>บันทึกการเผยแพร่</doclink>\n* <doclink href=Copying>การคัดลอก</doclink>\n* <doclink href=UpgradeDoc>การอัปเกรด</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org โฮมเพจมีเดียวิกิ]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents แนวปฏิบัติของผู้ใช้]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents แนวปฏิบัติของผู้ดูแลระบบ]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ คำถามที่ถามบ่อย]\n----\n* <doclink href=Readme>อ่านเอกสารกำกับ</doclink>\n* <doclink href=ReleaseNotes>บันทึกการเผยแพร่</doclink>\n* <doclink href=Copying>การคัดลอก</doclink>\n* <doclink href=UpgradeDoc>การอัปเกรด</doclink>",
        "config-env-good": "สภาพแวดล้อมถูกตรวจสอบแล้ว\nคุณสามารถติดตั้งมีเดียวิกิ",
        "config-env-bad": "สภาพแวดล้อมถูกตรวจสอบแล้ว\nคุณไม่สามารถติดตั้งมีเดียวิกิ",
        "config-env-php": "PHP $1 ติดตั้งแล้ว",
@@ -53,7 +53,6 @@
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] ติดตั้งแล้ว",
        "config-apc": "[http://www.php.net/apc APC] ติดตั้งแล้ว",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] ติดตั้งแล้ว",
-       "config-no-cache": "<strong>คำเตือน:</strong> ไม่พบ [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] หรือ [http://www.iis.net/download/WinCacheForPhp WinCache]\nการแคชอ็อบเจกต์จะไม่ถูกเปิดใช้งาน",
        "config-mod-security": "<strong>คำเตือน:</strong> เว็บเซิร์ฟเวอร์ของคุณมี [http://modsecurity.org/ mod_security]/mod_security2 เปิดใช้งานอยู่ การตั้งค่าทั่วไปหลายอย่างของสิ่งนี้จะก่อให้เกิดปัญหาสำหรับมีเดียวิกิ และซอฟต์แวร์อื่นที่อนุญาตให้ผู้ใช้สามารถโพสต์เนื้อหาได้ตามใจ\nหากเป็นไปได้ สิ่งนี้ควรปิดใช้งาน หรือมิฉะนั้นก็ อ้างไปยัง[http://modsecurity.org/documentation/ เอกสารกำกับการใช้งาน mod_security] หรือติดต่อการสนับสนุนจากโฮสต์ของคุณ ถ้าคุณพบความผิดพลาดโดยสุ่ม",
        "config-diff3-bad": "ไม่พบ GNU diff3",
        "config-git": "พบซอฟต์แวร์ควบคุมรุ่น Git: <code>$1</code>",
@@ -94,5 +93,5 @@
        "config-help-tooltip": "คลิกเพื่อขยาย",
        "config-nofile": "ไม่พบไฟล์ \"$1\" มันอาจถูกลบไปแล้วหรือไม่?",
        "mainpagetext": "<strong>ติดตั้งมีเดียวิกิสำเร็จ</strong>",
-       "mainpagedocfooter": "ศึกษา[//meta.wikimedia.org/wiki/Help:Contents คู่มือการใช้งาน] สำหรับเริ่มต้นใช้งานซอฟต์แวร์วิกิ\n\n== เริ่มต้น ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings รายการการปรับแต่งระบบ] (ภาษาอังกฤษ)\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ คำถามที่ถามบ่อยในมีเดียวิกิ] (ภาษาอังกฤษ)\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce เมลลิงลิสต์ของมีเดียวิกิ]"
+       "mainpagedocfooter": "ศึกษา[https://meta.wikimedia.org/wiki/Help:Contents คู่มือการใช้งาน] สำหรับเริ่มต้นใช้งานซอฟต์แวร์วิกิ\n\n== เริ่มต้น ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings รายการการปรับแต่งระบบ] (ภาษาอังกฤษ)\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ คำถามที่ถามบ่อยในมีเดียวิกิ] (ภาษาอังกฤษ)\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce เมลลิงลิสต์ของมีเดียวิกิ]"
 }
index 0292276..ba00162 100644 (file)
@@ -5,5 +5,5 @@
                ]
        },
        "mainpagetext": "'''MediaWiki şowlulyk bilen guruldy.'''",
-       "mainpagedocfooter": "Wiki programmasynyň ulanylyşy hakynda maglumat almak üçin [//meta.wikimedia.org/wiki/Help:Contents ulanyjy gollanmasyna] serediň.\n\n== Öwrenjeler ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Konfigurasiýa sazlamalary]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki SSS]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki e-poçta sanawy]"
+       "mainpagedocfooter": "Wiki programmasynyň ulanylyşy hakynda maglumat almak üçin [https://meta.wikimedia.org/wiki/Help:Contents ulanyjy gollanmasyna] serediň.\n\n== Öwrenjeler ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Konfigurasiýa sazlamalary]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki SSS]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki e-poçta sanawy]"
 }
index 0ca1aae..2ba2c27 100644 (file)
@@ -18,7 +18,7 @@
        "config-localsettings-badkey": "Hindi tama ang susing ibinigay mo.",
        "config-upgrade-key-missing": "Napansin ang isang umiiral na pagtatalaga ng MediaWiki.\nUpang isapanahon ang katalagahang ito, mangyaring ilagay ang sumusunod na guhit sa ilalim ng iyong <code>LocalSettings.php</code>:\n\n$1",
        "config-localsettings-incomplete": "Lumilitaw na hindi pa buo ang umiiral na <code>LocalSettings.php</code>.\nAng pabagu-bagong $1 ay hindi nakatakda.\nMangyaring baguhin ang  <code>LocalSettings.php</code> upang ang maitakda ang pagpapabagu-bagong ito, at pindutin ang \"{{int:Config-continue}}\".",
-       "config-localsettings-connection-error": "Isang kamalian ang nakatagpo noong kumakabit sa kalipunan ng dato na ginagamit ang tinukoy na mga katakdaan sa loob ng <code>LocalSettings.php</code> o\n<code>AdminSettings.php</code>. Paki kumpunihin ang mga katakdaang ito at subukang muli.\n\n$1",
+       "config-localsettings-connection-error": "Isang kamalian ang nakatagpo noong kumakabit sa kalipunan ng dato na ginagamit ang tinukoy na mga katakdaan sa loob ng <code>LocalSettings.php</code> o\n<code>LocalSettings.php</code>. Paki kumpunihin ang mga katakdaang ito at subukang muli.\n\n$1",
        "config-session-error": "Kamalian sa pagsisimula ng sesyon: $1",
        "config-session-expired": "Tila nagwakas na ang inilaan sa iyong panahon ng dato.\nAng inilaang mga panahon ay iniayos para sa isang panahon ng buhay na $1.\nMapapataas mo ito sa pamamagitan ng pagtatakda ng <code>session.gc_maxlifetime</code> sa loob ng php.ini.\nMuling simulan ang proseso ng pagluluklok.",
        "config-no-session": "Nawala ang iyong datos ng sesyon!\nSuriin ang iyong php.ini at tiyakin na ang <code>session.save_path</code> ay nakatakda sa angkop na direktoryo.",
        "config-restart": "Oo, muling simulan ito",
        "config-welcome": "=== Pagsusuring pangkapaligiran ===\nIsinasagawa ang payak na mga pagsusuri upang makita kung ang kapaligirang ito ay angkop para sa pagluluklok ng MediaWiki.\nDapat mong ibigay ang mga kinalabasan ng mga pagsusuring ito kung kailangan mo ng tulong habang nagluluklok.",
        "config-copyright": "=== Karapatang-ari at Tadhana ===\n\n$1\n\nAng programang ito ay malayang software; maaari mo itong ipamahagi at/o baguhin sa ilalim ng mga tadhana ng Pangkalahatang Pampublikong Lisensiyang GNU ayon sa pagkakalathala ng Free Software Foundation; na maaaring bersyong 2 ng Lisensiya, o (kung nais mo) anumang susunod na bersyon.\n\nIpinamamahagi ang programang ito na umaasang magiging gamitin, subaliut '''walang anumang katiyakan'''; na walang pahiwatig ng '''pagiging mabenta''' o '''kaangkupan para sa isang tiyak na layunin'''.\nTingnan ang Pangkalahatang Pampublikong Lisensiyang GNU para sa mas maraming detalye.\n\nDapat nakatanggap ka ng <doclink href=Copying>isang sipi ng Pangkalahatang Pampublikong Lisensiyang GNU</doclink> kasama ng programang ito; kung hindi, sumulat sa Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA, o [http://www.gnu.org/licenses//gpl.html basahin ito sa Internet].",
-       "config-sidebar": "* [//www.mediawiki.org Tahanan ng MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Gabay ng Tagagamit]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Gabay ng Tagapangasiwa]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Mga Malimit Itanong]\n----\n* <doclink href=Readme>Basahin ako</doclink>\n* <doclink href=ReleaseNotes>Mga tala ng paglalabas</doclink>\n* <doclink href=Copying>Pagkopya</doclink>\n* <doclink href=UpgradeDoc>Pagsasapanahon</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org Tahanan ng MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Gabay ng Tagagamit]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Gabay ng Tagapangasiwa]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Mga Malimit Itanong]\n----\n* <doclink href=Readme>Basahin ako</doclink>\n* <doclink href=ReleaseNotes>Mga tala ng paglalabas</doclink>\n* <doclink href=Copying>Pagkopya</doclink>\n* <doclink href=UpgradeDoc>Pagsasapanahon</doclink>",
        "config-env-good": "Nasuri na ang kapaligiran.\nMailuluklok mo ang MediaWiki.",
        "config-env-bad": "Nasuri na ang kapaligiran.\nHindi mo mailuklok ang MediaWiki.",
        "config-env-php": "Naitalaga ang PHP na $1.",
        "config-unicode-using-intl": "Ginagamit ang [http://pecl.php.net/intl intl dugtong na PECL] para sa pagsasanormal ng Unikodigo.",
-       "config-unicode-pure-php-warning": "'''Babala''': Ang [http://pecl.php.net/intl dugtong ng internasyunal na PECL] ay hindi makukuha upang makapanghawak ng pagpapanormal ng Unikodigo, na babagsak na pabalik sa mabagal na pagsasakatuparan ng dalisay na PHP.\nKapag nagpapatakbo ka ng isang pook na mataas ang trapiko, dapat kang bumasa ng kaunti hinggil sa [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations pagpapanormal ng Unikodigo].",
-       "config-unicode-update-warning": "'''Babala''': Ang nakaluklok na bersiyon ng pambalot ng pagpapanormal ng Unikodigo ay gumagamit ng isang mas matandang bersiyon ng aklatan ng [http://site.icu-project.org/ proyekto ng ICU].\nDapat kang [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations magtaas ng uri] kung may pag-aalala ka hinggil sa paggamit ng Unikodigo.",
+       "config-unicode-pure-php-warning": "'''Babala''': Ang [http://pecl.php.net/intl dugtong ng internasyunal na PECL] ay hindi makukuha upang makapanghawak ng pagpapanormal ng Unikodigo, na babagsak na pabalik sa mabagal na pagsasakatuparan ng dalisay na PHP.\nKapag nagpapatakbo ka ng isang pook na mataas ang trapiko, dapat kang bumasa ng kaunti hinggil sa [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations pagpapanormal ng Unikodigo].",
+       "config-unicode-update-warning": "'''Babala''': Ang nakaluklok na bersiyon ng pambalot ng pagpapanormal ng Unikodigo ay gumagamit ng isang mas matandang bersiyon ng aklatan ng [http://site.icu-project.org/ proyekto ng ICU].\nDapat kang [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations magtaas ng uri] kung may pag-aalala ka hinggil sa paggamit ng Unikodigo.",
        "config-no-db": "Hindi matagpuan ang isang angkop na tagapagmaneho ng kalipunan ng datos! Kailangan mong magluklok ng isang tagapagmaneho ng kalipunan ng dato para sa PHP.\nTinatangkilik ang sumusunod na mga uri ng kalipunan ng dato: $1.\n\nKung ikaw ay nasa isang pinagsasaluhang pagpapasinaya, hilingin sa iyong tagapagbigay ng pagpapasinaya na iluklok ang isang angkop na tagapagmaneho ng kalipunan ng dato.\nKung ikaw mismo ang nangalap ng PHP, muling isaayos ito na pinagagana ang isang kliyente ng kalipunan ng dato, halimbawa na ang paggamit ng <code>./configure --with-mysql</code>.\nKung iniluklok mo ang PHP mula sa isang pakete ng Debian o Ubuntu, kung gayon kailangan mo ring magluklok ng modyul na php5-mysql.",
        "config-outdated-sqlite": "'''Babala''': mayroong kang $1 ng SQLite, na mas mababa kaysa sa pinaka mababang kailangang bersiyon na $2. Magiging hindi makukuha ang SQLite.",
        "config-no-fts3": "'''Warning''': Ang SQLite ay hindi itinala at tinipon na wala ang [//sqlite.org/fts3.html modulong FTS3], ang mga tampok na panghanap ay magiging hindi makukuha sa ibabaw ng panlikod na dulong ito.",
-       "config-magic-quotes-runtime": "'''Malubha: Masigla ang [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime]!'''\nAng piniling ito ay hindi mahuhulaan na pipinsala sa lahok na dato.\nHindi mo maaaring iluklok o gamitin ang MediaWiki maliban na lamang kung hindi na gumagana ang pinili na ito.",
-       "config-magic-quotes-sybase": "'''Malubha: Masigla ang [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase]!'''\nHindi mahuhulaan na sinisira ng napiling ito ang lahok na dato.\nHindi mo maaaring iluklok o gamitin ang MediaWiki maliban na lamang kung hindi na pinagagana ang napiling ito.",
-       "config-mbstring": "'''Malubha: Masigla ang [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload]!'''\nAng napiling ito ay nagdurulot ng mga kamalian at maaaring sumira nang hindi nahuhulaan ang dato.\nHindi mo maaaring iluklok o gamitin ang MediaWiki maliban na lamang kung hindi na pinagagana ang napiling ito.",
-       "config-safe-mode": "'''Babala:''' Masigla ang [http://www.php.net/features.safe-mode safe mode] ng PHP.\nMaaari itong magdulot ng mga suliranin, partikular na kung gumagamit ng mga ikinargang paitaas na talaksan at ng suporta sa <code>math</code>.",
-       "config-xml-bad": "Nawawala ang modulong XML ng PHP.\nNangangailangan ang MediaWiki ng mga tungkulin sa loob ng modulong ito at hindi aandar sa loob ng ganitong pagkakaayos.\nKung pinapatakbo mo ang Mandrake, iluklok ang pakete ng php-xml.",
        "config-pcre-no-utf8": "'''Malubha''': Tila tinipon ang modyul na PCRE ng PHP na wala ang suporta ng PCRE_UTF8.\nNangangailangan ang MediaWiki ng suporta ng UTF-8 upang maging tama ang pag-andar.",
        "config-memory-raised": "Ang <code>hangganan_ng_alaala</code> ng PHP ay $1, itinaas sa $2.",
        "config-memory-bad": "'''Babala:''' Ang <code>hangganan_ng_alaala</code> ng PHP ay $1.\nIto ay maaaring napakababa.\nMaaaring mabigo ang pagluluklok!",
-       "config-ctype": "'''Maluba''': Dapat na tipunin ang PHP na mayroong suporta para sa [http://www.php.net/manual/en/ctype.installation.php dugtong Ctype].",
        "config-xcache": "Ininstala na ang [http://xcache.lighttpd.net/ XCache]",
        "config-apc": "Ininstala na ang [http://www.php.net/apc APC]",
        "config-wincache": "Ininstala na ang [http://www.iis.net/download/WinCacheForPhp WinCache]",
-       "config-no-cache": "'''Babala:''' Hindi mahanap ang [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] o [http://www.iis.net/download/WinCacheForPhp WinCache].\nHindi pinapagana ang pagbabaon ng mga bagay.",
        "config-mod-security": "'''Babala''': Ang tagapaghain mo ng sangkasaputan ay pinagana na mayroong [http://modsecurity.org/ mod_security]. Kung mali ang kaayusan, makapagdurulot ito ng mga suliranin para sa MediaWiki o ibang mga sopwer na nagpapahintulot sa mga tagagamit na magpaskil ng hindi makatwirang nilalaman.\nSumangguni sa [http://modsecurity.org/documentation/ mod_security kasulatan] o makipag-ugnayan sa suporta ng iyong tagapagpasinaya kapag nakatagpo ng alin mang mga kamalian.",
        "config-diff3-bad": "Hindi natagpuan ang GNU diff3.",
        "config-imagemagick": "Natagpuan ang ImageMagick: <code>$1</code>.\nPapaganahin ang pagkakagyat ng larawan kapag pinagana mo ang mga pagkakargang paitaas.",
@@ -79,9 +72,9 @@
        "config-no-cli-uri": "'''Babala''': Walang tinukoy na --landas ng panitik, ginagamit ang likas na katakdaan: <code>$1</code>.",
        "config-using-server": "Ginagamit ang pangalan ng tagapaghain na \"<nowiki>$1</nowiki>\".",
        "config-using-uri": "Ginagamit ang URL ng tagapaghain na \"<nowiki>$1$2</nowiki>\".",
-       "config-uploads-not-safe": "'''Babala:''' Ang iyong likas na nakatakdang direktoryo para sa paitaas na mga pagkakarga na <code>$1</code> ay may kahinaan laban sa pagsasagawa ng mga panitiki na hindi makatwiran. Bagaman sinisiyasat ng MediaWiki ang lahat ng paitaas na naikargang mga talaksan para sa mga panganib na pangkatiwasayan, mataas na iminumungkahi na [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security isara ang kahinaang ito na pangkatiwasayan] bago paganahin ang paitaas na mga pagkakarga.",
+       "config-uploads-not-safe": "'''Babala:''' Ang iyong likas na nakatakdang direktoryo para sa paitaas na mga pagkakarga na <code>$1</code> ay may kahinaan laban sa pagsasagawa ng mga panitiki na hindi makatwiran. Bagaman sinisiyasat ng MediaWiki ang lahat ng paitaas na naikargang mga talaksan para sa mga panganib na pangkatiwasayan, mataas na iminumungkahi na [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security isara ang kahinaang ito na pangkatiwasayan] bago paganahin ang paitaas na mga pagkakarga.",
        "config-no-cli-uploads-check": "'''Babala:''' Ang iyong likas na nakatakdang direktoryo para sa paitaas na mga pagkakarga (<code>$1</code>) ay hindi nasuri para sa kahinaan laban sa pagsasagawa ng panitik na hindi makatwiran habang iniluluklok ang Ugnayang Mukha ng Guhit ng Kaataasan o Command-Line Interface (CLI).",
-       "config-brokenlibxml": "Ang sistema mo ay mayroong isang pagsasama ng mga bersiyon ng PHP at libxml2 na maaaring masurot at maaaring makapagsanhi ng pagkasira ng datong nakakubli sa loob ng MediaWiki at iba pang mga aplikasyon ng sangkasaputan.\nMagtaas ng uri upang maging PHP 5.2.9 o mas lalong huli at libxml2 2.7.3 o mas lalong huli ([//bugs.php.net/bug.php?id=45996 isinalansan ang surot o ''bug'' na mayroong PHP]). Binigo ang pagluluklok.",
+       "config-brokenlibxml": "Ang sistema mo ay mayroong isang pagsasama ng mga bersiyon ng PHP at libxml2 na maaaring masurot at maaaring makapagsanhi ng pagkasira ng datong nakakubli sa loob ng MediaWiki at iba pang mga aplikasyon ng sangkasaputan.\nMagtaas ng uri upang maging PHP 5.2.9 o mas lalong huli at libxml2 2.7.3 o mas lalong huli ([https://bugs.php.net/bug.php?id=45996 isinalansan ang surot o ''bug'' na mayroong PHP]). Binigo ang pagluluklok.",
        "config-suhosin-max-value-length": "Nakaluklok ang Suhosin at hinahanggahan ang haba ng parametro ng GET sa $1 mga byte. Ang sangkap na ResourceLoader ng MediaWiki ay gagana sa paligid ng hangganang ito, subalit pasasamain nito ang pagganap. Kung talagang maaari, dapat mong itakda ang <code>suhosin.get.max_value_length</code> upang maging 1024 o mas mataas sa loob ng <code>php.ini</code>, at itakda ang <code>$wgResourceLoaderMaxQueryLength</code> sa katulad na halaga sa loob ng LocalSettings.php.",
        "config-db-type": "Uri ng kalipunan ng datos:",
        "config-db-host": "Tagapagpasinaya ng kalipunan ng datos:",
        "config-db-wiki-help": "Ipasok ang pangalan ng tagagamit at password na gagamitin upang kumabit sa database habang nasa karaniwang pagtakbo ng wiki.\nKung hindi umiiral ang account, at ang pag-install ng account ay mayroong sapat na mga pribilehiyo, ang account na ito ng tagagamit ay lilikhain na mayroong pinaka mababang mga pribilehiyo na kailangan upang mapatakbo ang wiki.",
        "config-db-prefix": "Unlapi ng talahanayan ng kalipunan ng dato:",
        "config-db-prefix-help": "Kung kailangan mong ibahagi ang isang kalipunan ng dato sa pagitan ng maramihang mga wiki, o sa pagitan ng MediaWiki at ibang aplikasyon ng kasaputan, maaaring piliin mo na magdagdag ng isang unlapi sa lahat ng mga pangalan ng talahanayan upang maiwasan ang mga salungatan.\nHuwag gumamit ng mga patlang.\n\nAng hanay na ito ay karaniwang iniiwanang walang laman.",
-       "config-db-charset": "Pangkat ng panitik ng kalipunan ng dato",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 binaryo",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "MySQL 4.0 paurong-kabagay UTF-8",
-       "config-charset-help": "'''Babala:''' Kapag ginamit mo ang '''backwards-compatible UTF-8''' o \"nauukol na pabalik na UTF-8\" sa MySQL 4.1+, at may kasunod na pagtatabi ng pansalong kopya ng kalipunan ng dato na mayroong <code>mysqldump</code>, maaaring wasakin nito ang lahat ng mga panitik na hindi ASCII, na hindi na mababawi pa ang mga pansalong kopya.\n\nSa '''gawi na nakahalo sa dalawa (binaryo)''', itinatabi ng MediaWiki ang tekstong UTF-8 sa kalipunan ng dato sa loob ng mga kahanayang binaryo.\nMas kapaki-pakinabang ito kaysa sa gawi na UTF-8 ng MySQL, at nagpapahintulot sa iyo na gamitin ang buong kasaklawan ng mga panitik na Unikodigo.\nSa '''gawi ng UTF-8''', malalaman ng MySQL kung anong pangkat ng panitik ang kinapapalooban ng iyong dato, at may kaangkupang maihaharap at mapapalitan ito, ngunit hindi ka nito papayagan na mag-imbak ng mga panitik sa ibabaw ng [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane] o Saligang Patag na Kayas na Pangmaramihang Wika.",
        "config-mysql-old": "Hindi kailangan ang MySQL na $1 o mas bago, mayroon kang $2.",
        "config-db-port": "Daungan ng kalipunan ng dato:",
        "config-db-schema": "Panukala para sa MediaWiki",
        "config-mysql-charset": "Pangkat ng panitik ng kalipunan ng dato:",
        "config-mysql-binary": "Binaryo",
        "config-mysql-utf8": "UTF-8",
-       "config-mysql-charset-help": "Sa '''gawi na binaryo''', iniimbak ng MediaWiki ang tekstong UTF-8 sa kalipunan ng dato sa loob ng mga hanay na binaryo.\nMas kapaki-pakinabang ito kaysa sa gawi na UTF-8 ng MySQL, at nagpapahintulot sa iyo upang magamit ang buong kasaklawan ng mga panitik ng Unikodigo.\n\nSa ''gawi na UTF-8''', malalaman ng MySQL kung sa anong pangkat ng panitik nakapaloob ang iyong dato, at angkop na makakapagharap at makapapagpalit nito, subalit hindi ka nito papayagan na mag-imbak ng mga panitik na nasa itaas ng [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane] o Saligang Tapyas na Pangmaramihang Wika.",
+       "config-mysql-charset-help": "Sa '''gawi na binaryo''', iniimbak ng MediaWiki ang tekstong UTF-8 sa kalipunan ng dato sa loob ng mga hanay na binaryo.\nMas kapaki-pakinabang ito kaysa sa gawi na UTF-8 ng MySQL, at nagpapahintulot sa iyo upang magamit ang buong kasaklawan ng mga panitik ng Unikodigo.\n\nSa ''gawi na UTF-8''', malalaman ng MySQL kung sa anong pangkat ng panitik nakapaloob ang iyong dato, at angkop na makakapagharap at makapapagpalit nito, subalit hindi ka nito papayagan na mag-imbak ng mga panitik na nasa itaas ng [https://en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane] o Saligang Tapyas na Pangmaramihang Wika.",
        "config-site-name": "Pangalan ng wiki:",
        "config-site-name-help": "Lilitaw ito sa bareta ng pamagat ng pantingin-tingin at sa samu't saring ibang mga lugar.",
        "config-site-name-blank": "Magpasok ng isang pangalan ng sityo.",
        "config-profile-no-anon": "Kailangan ang paglikha ng account",
        "config-profile-fishbowl": "Pinahintulutang mga patnugot lamang",
        "config-profile-private": "Pribadong wiki",
-       "config-profile-help": "Pinaka mahusay ang pagtakbo ng mga Wiki kapag pinapahintulutan mo ang pinaka maraming mga tao na makapamatnugot ng mga ito hanggang sa maaari.\nSa loob ng MediaWiki, maginhawang masusuring muli ang kamakailang mga pagbabago, at mapanauli sa dati ang anumang nasira na nagawa ng isang walang muwang o may masamang hangarin na mga tagagamit.\n\nSubalit, marami ang nakatagpo na nagagamit ang MediaWiki sa loob ng malawak na sari-saring mga gampanin, at kung minsan ay hindi madaling makumbinsi ang lahat ng mga tao hinggil sa kapakinabangan ng kaparaanan ng wiki.\nKung kaya't nasa iyo ang pagpili.\n\nAng isang '''{{int:config-profile-wiki}}''' ay nagpapahintulot sa sinuman upang makapagbago, na hindi kailangan ang paglagdang papasok.\nAng isang wiki na mayroong '''{{int:config-profile-no-anon}}''' ay nagbibigay ng karagdagang pananagutan, subalit maaaring pumigil sa nagkataon lamang na mga tagapag-ambag.\n\nAng tagpo na '''{{int:config-profile-fishbowl}}''' ay nagpapahintulot lamang sa pinayagang mga tagagamit na makatingin ng mga pahina, na kapiling ang pangkat na pinayagang  makapamatnugot.\nAng isang '''{{int:config-profile-private}}''' ay nagpapahintulot lamang sa pinayagang mga tagagamit na makatingin ng mga pahina, na kapiling ang pangkat na pinayagang makapamatnugot.\n\nAng mas masasalimuot na mga kaayusan ng mga karapatan ng tagagamit ay makukuha pagkaraan ng pagluluklok, tingnan ang [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights may kaugnayang kinamay na lahok].",
+       "config-profile-help": "Pinaka mahusay ang pagtakbo ng mga Wiki kapag pinapahintulutan mo ang pinaka maraming mga tao na makapamatnugot ng mga ito hanggang sa maaari.\nSa loob ng MediaWiki, maginhawang masusuring muli ang kamakailang mga pagbabago, at mapanauli sa dati ang anumang nasira na nagawa ng isang walang muwang o may masamang hangarin na mga tagagamit.\n\nSubalit, marami ang nakatagpo na nagagamit ang MediaWiki sa loob ng malawak na sari-saring mga gampanin, at kung minsan ay hindi madaling makumbinsi ang lahat ng mga tao hinggil sa kapakinabangan ng kaparaanan ng wiki.\nKung kaya't nasa iyo ang pagpili.\n\nAng isang '''{{int:config-profile-wiki}}''' ay nagpapahintulot sa sinuman upang makapagbago, na hindi kailangan ang paglagdang papasok.\nAng isang wiki na mayroong '''{{int:config-profile-no-anon}}''' ay nagbibigay ng karagdagang pananagutan, subalit maaaring pumigil sa nagkataon lamang na mga tagapag-ambag.\n\nAng tagpo na '''{{int:config-profile-fishbowl}}''' ay nagpapahintulot lamang sa pinayagang mga tagagamit na makatingin ng mga pahina, na kapiling ang pangkat na pinayagang  makapamatnugot.\nAng isang '''{{int:config-profile-private}}''' ay nagpapahintulot lamang sa pinayagang mga tagagamit na makatingin ng mga pahina, na kapiling ang pangkat na pinayagang makapamatnugot.\n\nAng mas masasalimuot na mga kaayusan ng mga karapatan ng tagagamit ay makukuha pagkaraan ng pagluluklok, tingnan ang [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights may kaugnayang kinamay na lahok].",
        "config-license": "Karapatang-ari at lisensiya:",
        "config-license-none": "Walang talababa ng lisensiya",
        "config-license-cc-by-sa": "Malikhaing Pangkaraniwang Pagtukoy Pamamahaging Magkatulad",
        "config-email-sender-help": "Ipasok ang tirahan ng e-liham na gagamitin bilang tirahang pagsasaulian ng e-liham na papalabas.\nDito ang kung saan ipapadala ang mga pagtalbog.\nMaraming mga tagapaghain ng liham ang nangangailangan ng kahit na bahagi lamang ng pangalan ng nasasakupan upang maging katanggap-tanggap.",
        "config-upload-settings": "Mga pagkakarga ng mga larawan at talaksan",
        "config-upload-enable": "Paganahin ang pagkakarga ng talaksan",
-       "config-upload-help": "Ang paitaas na mga pagkakarga ng mga talaksan ay maaaring makapaglantad ng iyong tagapaghain sa mga panganib na pangkatiwasayan.\nPara sa mas marami pang kabatiran, basahin ang [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security seksiyon ng katiwasayan] sa loob ng gabay.\n\nUpang mapagana ang paitaas na mga pagkakarga ng talaksan, baguhin ang gawi roon sa subdirektoryo ng <code>mga imahe</code> sa ilalim ng ugat na direktoryo ng MediaWiki upang ang tagapaghain ng kasaputan ay makapagsulat dito.\nPagkaraan ay paganahin ang pipiliing ito.",
+       "config-upload-help": "Ang paitaas na mga pagkakarga ng mga talaksan ay maaaring makapaglantad ng iyong tagapaghain sa mga panganib na pangkatiwasayan.\nPara sa mas marami pang kabatiran, basahin ang [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security seksiyon ng katiwasayan] sa loob ng gabay.\n\nUpang mapagana ang paitaas na mga pagkakarga ng talaksan, baguhin ang gawi roon sa subdirektoryo ng <code>mga imahe</code> sa ilalim ng ugat na direktoryo ng MediaWiki upang ang tagapaghain ng kasaputan ay makapagsulat dito.\nPagkaraan ay paganahin ang pipiliing ito.",
        "config-upload-deleted": "Direktoryo para sa binurang mga talaksan:",
        "config-upload-deleted-help": "Pumili ng isang direktoryong pagsusupnayan ng naburang mga talaksan.\nIdeyal na dapat itong  hindi mapupuntahan mula sa web.",
        "config-logo": "URL ng logo:",
        "config-logo-help": "Ang likas na nakatakdang pabalat ng MediaWiki ay nagsasama ng puwang para sa isang logong 135x160 ang piksel na nasa itaas ng menu ng panggilid na bareta.\nMagkargang papaitaas ng isang imahe na mayroong naaangkop na sukat, at ipasok dito ang URL.\n\nKung ayaw mo ng isang logo, iwanang walang laman ang kahong ito.",
        "config-instantcommons": "Paganahin ang Mga Pangkaraniwang Biglaan",
-       "config-instantcommons-help": "Ang [//www.mediawiki.org/wiki/InstantCommons Instant Commons] ay isang tampok na nagpapahintulot sa mga wiki upang gumamit ng mga imahe, mga tunog at iba pang mga midyang matatagpuan sa pook ng [//commons.wikimedia.org/ Wikimedia Commons].\nUpang magawa ito, nangangailangan ang MediaWiki ng pagka nakakapunta sa Internet.\n\nPara sa mas marami pang kabatiran hinggil sa tampok na ito, kabilang na ang mga tagubilin sa kung paano ito itakda para sa mga wiki na bukod pa kaysa sa Wikimedia Commons, sumangguni sa [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos gabay].",
+       "config-instantcommons-help": "Ang [https://www.mediawiki.org/wiki/InstantCommons Instant Commons] ay isang tampok na nagpapahintulot sa mga wiki upang gumamit ng mga imahe, mga tunog at iba pang mga midyang matatagpuan sa pook ng [https://commons.wikimedia.org/ Wikimedia Commons].\nUpang magawa ito, nangangailangan ang MediaWiki ng pagka nakakapunta sa Internet.\n\nPara sa mas marami pang kabatiran hinggil sa tampok na ito, kabilang na ang mga tagubilin sa kung paano ito itakda para sa mga wiki na bukod pa kaysa sa Wikimedia Commons, sumangguni sa [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos gabay].",
        "config-cc-error": "Hindi nagbigay ng resulta ang pampili ng lisensiya ng Malikhaing Pangkaraniwan.\nIpasok na kinakamay ang pangalan ng lisensiya.",
        "config-cc-again": "Pumili uli...",
        "config-cc-not-chosen": "Piliin kung anong lisensiya ng Malikhaing mga Pangkaraniwan ang nais mo at pindutin ang \"proceed\".",
        "config-help": "saklolo",
        "config-nofile": "Hindi matagpuan ang talaksang \"$1\". Binura na ba ito?",
        "mainpagetext": "'''Matagumpay na ininstala ang MediaWiki.'''",
-       "mainpagedocfooter": "Silipin ang [//meta.wikimedia.org/wiki/Help:Contents Patnubay sa Tagagamit] (''\"User's Guide\"'') para sa kaalaman sa paggamit ng wiking ''software''.\n\n== Pagsisimula ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Tala ng mga nakatakdang kumpigurasyon]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Mga malimit itanong sa MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Tala ng mga pinadadalhan ng liham ng MediaWiki]"
+       "mainpagedocfooter": "Silipin ang [https://meta.wikimedia.org/wiki/Help:Contents Patnubay sa Tagagamit] (''\"User's Guide\"'') para sa kaalaman sa paggamit ng wiking ''software''.\n\n== Pagsisimula ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Tala ng mga nakatakdang kumpigurasyon]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Mga malimit itanong sa MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Tala ng mga pinadadalhan ng liham ng MediaWiki]"
 }
index 757688f..823b1ba 100644 (file)
        "config-restart": "Evet, yeniden başlat",
        "config-welcome": "===Ortam Kontrolleri===\nOrtamın Mediawiki kurulumuna uygun olup olmadığını anlamak için basit kontroller yapılacak.\nKurulumu nasıl tamamlayacağınız konusunda destek isterken bu bilgileri eklemeyi unutmayın.",
        "config-copyright": "=== Telif Hakları ve Koşulları ===\n\n$1\n\nBu program ücretsiz bir yazılımdır; yeniden dağıtabilir veya Özgür Yazılım Kuruluşu tarafından yayınlanan (GNU) Genel Kamu Lisansı koşulları altında değiştirebilirsiniz; isterseniz ikinci lisans sürümünü veya (sizin seçeneğiniz) herhangi bir sonraki lisans sürümünü kullanabilirsiniz.\n\nBu program, faydalı olacağı umuduyla dağıtılmaktadır, ancak ''' herhangi bir garantisi yoktur '''; ''' uygunluk ''' veya ''' belirli bir amaca uygunluk ''' gibi dolaylı garantileri bile yoktur.\nDaha fazla ayrıntı için (GNU) Genel Kamu Lisansına bakınız.\n\nBu program ile birlikte <doclink href=\"Copying\">bir (GNU) Genel Kamu Lisansının bir kopyasını </doclink> almış olmanız gerekir; bu program (GNU) Genel Kamu Lisansı ile dağıtılmadıysa, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, ABD adresine yazın veya [http://www.gnu.org/copyleft/gpl.html online olarak okuyun].",
-       "config-sidebar": "* [//www.mediawiki.org MediaWiki ana sayfa]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Kullanıcı Rehberi]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Yetkili Rehberi]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ SSS]\n----\n* <doclink href=Readme>Beni oku</doclink>\n* <doclink href=ReleaseNotes>Sürüm notları</doclink>\n* <doclink href=Copying>Kopyalama</doclink>\n* <doclink href=UpgradeDoc>Yükseltme</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org MediaWiki ana sayfa]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Kullanıcı Rehberi]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Yetkili Rehberi]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ SSS]\n----\n* <doclink href=Readme>Beni oku</doclink>\n* <doclink href=ReleaseNotes>Sürüm notları</doclink>\n* <doclink href=Copying>Kopyalama</doclink>\n* <doclink href=UpgradeDoc>Yükseltme</doclink>",
        "config-env-good": "Ortam kontrol edildi.\nMediaWiki'yi kurabilirsiniz.",
        "config-env-bad": "Ortam kontrol edildi.\nMediaWiki'yi kuramazsınız.",
        "config-env-php": "PHP $1 kurulu.",
        "config-env-hhvm": "HHVM $1 kuruldu",
        "config-unicode-using-intl": "Unikod normalleştirmesi için [http://pecl.php.net/intl intl PECL uzantısı] kullanılıyor.",
-       "config-unicode-pure-php-warning": "<strong>Uyarı:</strong> [http://pecl.php.net/intl intl PECL uzantısı] Unicode normalizasyonunu kaldırabilecek şekilde müsait değil; bu yüzden sayfa saf PHP uygulamasına dönüyor. Yüksek trafik alan bir sayfa çalıştırıyorsanız, [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode normalizasyonu] ile ilgili biraz bilgi almalısınız.",
+       "config-unicode-pure-php-warning": "<strong>Uyarı:</strong> [http://pecl.php.net/intl intl PECL uzantısı] Unicode normalizasyonunu kaldırabilecek şekilde müsait değil; bu yüzden sayfa saf PHP uygulamasına dönüyor. Yüksek trafik alan bir sayfa çalıştırıyorsanız, [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode normalizasyonu] ile ilgili biraz bilgi almalısınız.",
        "config-outdated-sqlite": "<strong>Uyarı:</strong> Elinizde SQLite $1 var. Gerekli minimum sürüm: $2. SQLite kullanılamayacaktır.",
        "config-no-fts3": "<strong>Uyarı:</strong> SQLite [//sqlite.org/fts3.html FTS3 modülü] olmadan derlendi, bu arkayüzde arama özellikleri kullanılamayacaktır.",
-       "config-safe-mode": "<strong>Uyarı:</strong> PHP'nin [http://www.php.net/features.safe-mode güvenli modu] aktif.\nDosya yüklemesi kullanılıyorsa veya <code>matematik kodu</code> desteğinde sıkıntı çıkarabilir.",
-       "config-xml-bad": "PHP 'nin XML modülü eksik.\nMediaWiki bu modüldeki fonksiyonlara ihtiyaç duyar ve şimdiki kurulumda çalışmayacaktır.\nPhp-xml RPM paketini yüklemeniz gerekebilir.",
        "config-pcre-old": "<strong>Ağır hata:</strong> PCRE $1 veya daha üst versiyon gerekli.\nSizin PHP kurulumunuz PCRE $2 ile bağlı.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Daha fazla bilgi].",
        "config-memory-raised": "PHP'nin <code>memory_limit</code> (hafıza sınırı) değeri $1, $2'ye yükseltildi.",
        "config-memory-bad": "<strong>Uyarı:</strong> PHP'nin <code>memory_limit</code> (hafıza sınırı) değeri $1.\nBu büyük ihtimalle çok düşük.\nKurulum başarısız olabilir!",
-       "config-ctype": "<strong>Ölümcül:</strong> PHP [http://www.php.net/manual/en/ctype.installation.php Ctype uzantısı] desteği ile beraber derlenmelidir.",
-       "config-iconv": "<strong>Ölümcül:</strong> PHP [http://www.php.net/manual/en/iconv.installation.php iconv uzantısı] desteği ile beraber derlenmelidir.",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] kurulu",
        "config-apc": "[http://www.php.net/apc APC] kurulu",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] kurulu",
-       "config-no-cache": "'''Uyarı:''' [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] ya da [http://www.iis.net/download/WinCacheForPhp WinCache] bulunamadı.\nNesne önbelleğe alma etkinleştirilmedi.",
        "config-mod-security": "'''Uyarı:''' Web sunucunuz [http://modsecurity.org/ mod_security] etkin. Eğer yanlış yapılandırılmış ise, bu MediaWiki ve kullanıcılara isteğe bağlı içerik göndermesine izin veren diğer yazılımlar için sorun oluşturabilir.\nRastgele hatalar alırsanız [http://modsecurity.org/documentation/ mod_security belgelemesine] bakın ya da sunucunuzun desteğine başvurun.",
        "config-diff3-bad": "GNU diff3 bulunamadı.",
        "config-git": "Sürüm kontrol yazılımı Git bulundu: <code>$1</code>.",
        "config-db-account-lock": "Normal çalışma sırasında aynı kullanıcı adı ve şifreyi kullanınız.",
        "config-db-wiki-account": "Kullanıcı hesabı için normal işlem",
        "config-db-prefix": "Veritabanı Tablo öneki:",
-       "config-db-charset": "Veritabanı karakter seti",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 binary",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "MySQL 4.0 geriye doğru uyumlu UTF-8",
        "config-mysql-old": "MySQL  $1  veya daha yenisi gerekir. Sende bulunan  $2 .",
        "config-db-port": "Veritabanı bağlantı noktası:",
        "config-db-schema": "MediaWiki için şema:",
        "config-profile-no-anon": "Hesap oluşturmak gerekli",
        "config-profile-fishbowl": "Yalnızca yetkili editörler",
        "config-profile-private": "Özel wiki",
-       "config-profile-help": "Vikiler, mümkün olan en fazla kişiye değişiklik imkânı verdiğinizde, en iyi şekilde çalışır.\nMediaWiki'de son değişiklikleri incelemek ve tecrübesiz veya kötü niyetli kullanıcıların verdiği zararları geri almak kolaydır.\n\nAncak birçok kişi MediaWiki'yi farklı şekillerde kullanışlı bulmaktadır ve bazen herkesi viki yolunun faydalarına ikna etmek zordur.\nYani seçim sizin.\n\n<strong>{{int:config-profile-wiki}}</strong> modeli, giriş yapmamış olsa bile herkese değişiklik izni verir.\n\n<strong>{{int:config-profile-no-anon}}</strong> kullanan bir viki ise daha izlenebilirdir ancak sıradan, basit, gündelik katkı yapan kullanıcıları caydırabilir.\n\n<strong>{{int:config-profile-fishbowl}}</strong> onaylanmış kullanıcıların değişikliklerine izin verir ama herkes sayfaları ve sayfa geçmişlerini görebilir.\n\n<strong>{{int:config-profile-private}}</strong> sadece onaylanmış kullanıcıları değişiklik yapma ve sayfaları görme imkânı tanır.\n\nDaha karmaşık kullanıcı hakkı ayarları, yüklemeden sonra görülebilir; [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights ilgili kılavuza] bakınız.",
+       "config-profile-help": "Vikiler, mümkün olan en fazla kişiye değişiklik imkânı verdiğinizde, en iyi şekilde çalışır.\nMediaWiki'de son değişiklikleri incelemek ve tecrübesiz veya kötü niyetli kullanıcıların verdiği zararları geri almak kolaydır.\n\nAncak birçok kişi MediaWiki'yi farklı şekillerde kullanışlı bulmaktadır ve bazen herkesi viki yolunun faydalarına ikna etmek zordur.\nYani seçim sizin.\n\n<strong>{{int:config-profile-wiki}}</strong> modeli, giriş yapmamış olsa bile herkese değişiklik izni verir.\n\n<strong>{{int:config-profile-no-anon}}</strong> kullanan bir viki ise daha izlenebilirdir ancak sıradan, basit, gündelik katkı yapan kullanıcıları caydırabilir.\n\n<strong>{{int:config-profile-fishbowl}}</strong> onaylanmış kullanıcıların değişikliklerine izin verir ama herkes sayfaları ve sayfa geçmişlerini görebilir.\n\n<strong>{{int:config-profile-private}}</strong> sadece onaylanmış kullanıcıları değişiklik yapma ve sayfaları görme imkânı tanır.\n\nDaha karmaşık kullanıcı hakkı ayarları, yüklemeden sonra görülebilir; [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights ilgili kılavuza] bakınız.",
        "config-license": "Telif Hakkı ve Lisans",
        "config-license-gfdl": "GNU Free Documentation License 1.3 veya üstü",
        "config-license-pd": "Kamu Malı",
        "config-help": "Yardım",
        "config-help-tooltip": "genişletmek için tıklayın",
        "config-nofile": "\"$1\" dosyası bulunamadı. Silindi mi?",
-       "config-extension-link": "Vikinizin [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions eklentileri] desteklediğini biliyor musunuz?\n\n[//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category Eklentileri kategorilerine göre] inceleyebilir ya da tüm eklentilerin listesini görmek için [//www.mediawiki.org/wiki/Extension_Matrix Eklenti Matrisine] bakabilirsiniz.",
+       "config-extension-link": "Vikinizin [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions eklentileri] desteklediğini biliyor musunuz?\n\n[https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category Eklentileri kategorilerine göre] inceleyebilir ya da tüm eklentilerin listesini görmek için [https://www.mediawiki.org/wiki/Extension_Matrix Eklenti Matrisine] bakabilirsiniz.",
        "mainpagetext": "'''MediaWiki başarı ile kuruldu.'''",
-       "mainpagedocfooter": "Viki yazılımının kullanımı hakkında bilgi almak için [//meta.wikimedia.org/wiki/Help:Contents kullanıcı rehberine] bakınız.\n\n== Yeni Başlayanlar ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Yapılandırma ayarlarının listesi]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki SSS]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki e-posta listesi]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Kendi diliniz için MediaWiki yerelleştirmesi]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Kendi vikinizde spam ile nasıl savaşılacağını öğrennin]"
+       "mainpagedocfooter": "Viki yazılımının kullanımı hakkında bilgi almak için [https://meta.wikimedia.org/wiki/Help:Contents kullanıcı rehberine] bakınız.\n\n== Yeni Başlayanlar ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Yapılandırma ayarlarının listesi]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki SSS]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki e-posta listesi]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Kendi diliniz için MediaWiki yerelleştirmesi]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Kendi vikinizde spam ile nasıl savaşılacağını öğrennin]"
 }
index 785c90b..3a96701 100644 (file)
@@ -38,9 +38,6 @@
        "config-db-name-oracle": "Мәгълүмат базасы төзелеше:",
        "config-db-username": "Мәгълүмат базасын кулланучы исеме:",
        "config-db-password": "Мәгълүмат базасының серсүзе:",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 бинарлы",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "MySQL 4.0 һәм UTF-8 үзара бәйләнешле",
        "config-db-port": "Мәгълүмат базасы порты:",
        "config-db-schema": "MediaWiki өчен төзелеш:",
        "config-mysql-innodb": "InnoDB",
@@ -70,5 +67,5 @@
        "config-install-step-failed": "булмады",
        "config-help": "ярдәм",
        "mainpagetext": "<strong>«MediaWiki» куелды.</strong>",
-       "mainpagedocfooter": "Бу вики турында мәгълүматны [//meta.wikimedia.org/wiki/Help:Contents биредә] табып була.\n\n== Кайбер файдалы ресурслар ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Көйләнмәләр исемлеге (инг.)];\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki турында еш бирелгән сораулар һәм җаваплар (инг.)];\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki'ның яңа версияләре турында хәбәрләр яздырып алу];\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language].\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your wiki]"
+       "mainpagedocfooter": "Бу вики турында мәгълүматны [https://meta.wikimedia.org/wiki/Help:Contents/ru биредә] табып була.\n\n== Кайбер файдалы ресурслар ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Көйләнмәләр исемлеге (рус.)];\n* [https://www.mediawiki.org/wiki/Manual:FAQ/ru MediaWiki турында еш бирелгән сораулар һәм җаваплар (рус.)];\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki сәхифәсенең яңа юрамалары турында хәбәрләр яздырып алу].\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources MediaWiki сәхифәсен туган телегезгә тәрҗемә итү]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Үзегезнең викида ничек спам белән көрәшү турында мәгълүмат]"
 }
index b0ee3d4..5680a1e 100644 (file)
@@ -6,5 +6,5 @@
                ]
        },
        "mainpagetext": "«MediaWiki» uñışlı quyıldı.",
-       "mainpagedocfooter": "Bu wiki turında mäğlümatnı [//meta.wikimedia.org/wiki/Help:Contents biredä] tabıp bula.\n\n== Qayber faydalı resurslar ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Köylänmälär isemlege (ing.)];\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki turında yış birelgän sorawlar häm cawaplar (ing.)];\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki'nıñ yaña versiäläre turında xäbärlär yazdırıp alu];\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]."
+       "mainpagedocfooter": "Bu wiki turında mäğlümatnı [https://meta.wikimedia.org/wiki/Help:Contents biredä] tabıp bula.\n\n== Qayber faydalı resurslar ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Köylänmälär isemlege (ing.)];\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki turında yış birelgän sorawlar häm cawaplar (ing.)];\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki'nıñ yaña versiäläre turında xäbärlär yazdırıp alu];\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]."
 }
index b8d708f..7c187f7 100644 (file)
@@ -5,5 +5,5 @@
                ]
        },
        "mainpagetext": "'''MediaWiki مۇۋەپپەقىيەتلىك قاچىلاندى.'''",
-       "mainpagedocfooter": "[//meta.wikimedia.org/wiki/Help:Contents ئىشلەتكۈچى قوللانمىسى] نى زىيارەت قىلىپ wiki يۇمشاق دېتالىنى ئىشلىتىش ئۇچۇرىغا ئېرىشىڭ.\n\n== دەسلەپكى ساۋات ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings سەپلىمە تەڭشەك تىزىملىكى]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki كۆپ ئۇچرايدىغان مەسىلىلەرگە جاۋاب]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki تارقاتقان ئېلخەت تىزىملىكى]"
+       "mainpagedocfooter": "[https://meta.wikimedia.org/wiki/Help:Contents ئىشلەتكۈچى قوللانمىسى] نى زىيارەت قىلىپ wiki يۇمشاق دېتالىنى ئىشلىتىش ئۇچۇرىغا ئېرىشىڭ.\n\n== دەسلەپكى ساۋات ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings سەپلىمە تەڭشەك تىزىملىكى]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki كۆپ ئۇچرايدىغان مەسىلىلەرگە جاۋاب]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki تارقاتقان ئېلخەت تىزىملىكى]"
 }
index 991e7c3..8bc18b0 100644 (file)
        "config-restart": "Так, перезапустити установку",
        "config-welcome": "=== Перевірка оточення ===\nБудуть проведені базові перевірки, щоб виявити, чи можлива установка MediaWiki у даній системі.\nНе забудьте включити цю інформацію, якщо ви звернетеся по підтримку, як завершити установку.",
        "config-copyright": "=== Авторське право і умови ===\n\n$1\n\nЦя програма є вільним програмним забезпеченням; Ви можете розповсюджувати та/або змінювати її під ліцензією GNU General Public License, опублікованою Фондом вільного програмного забезпечення; версією 2 цієї ліцензії або будь-якою пізнішою на Ваш вибір.\n\nЦя програма поширюється з надією на те, що вона буде корисною, однак '''без жодних гарантій'''; навіть без неявної гарантії '''комерційної цінності''' або '''придатності для певних цілей'''.\nДив. GNU General Public License для детальної інформації.\n\nВи повинні були отримати <doclink href=Copying>копію GNU General Public License</doclink> разом із цією програмою; якщо ж ні, зверніться до Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. або [http://www.gnu.org/copyleft/gpl.html ознайомтесь з нею онлайн].",
-       "config-sidebar": "* [//www.mediawiki.org Сайт MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Посібник користувача]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Посібник адміністратора]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ]\n----\n* <doclink href=Readme>Read me</doclink>\n* <doclink href=ReleaseNotes>Інформація про випуск</doclink>\n* <doclink href=Copying>Ліцензія</doclink>\n* <doclink href=UpgradeDoc>Оновлення</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org Сайт MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Посібник користувача]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Посібник адміністратора]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ]\n----\n* <doclink href=Readme>Read me</doclink>\n* <doclink href=ReleaseNotes>Інформація про випуск</doclink>\n* <doclink href=Copying>Ліцензія</doclink>\n* <doclink href=UpgradeDoc>Оновлення</doclink>",
        "config-env-good": "Перевірку середовища успішно завершено.\nВи можете встановити MediaWiki.",
        "config-env-bad": "Було проведено перевірку середовища. Ви не можете встановити MediaWiki.",
        "config-env-php": "Встановлено версію PHP: $1.",
        "config-env-hhvm": "HHVM $1  встановлено.",
        "config-unicode-using-intl": "Використовувати [http://pecl.php.net/intl міжнародне розширення PECL] для нормалізації Юнікоду.",
-       "config-unicode-pure-php-warning": "'''Увага''': [http://pecl.php.net/intl міжнародне розширення PECL] не може провести нормалізацію Юнікоду.\nЯкщо ваш сайт має високий трафік, вам варто почитати про [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations нормалізацію Юнікоду].",
-       "config-unicode-update-warning": "'''Увага''': Встановлена версія обгортки нормалізації Юнікоду використовує стару версію бібліотеки [http://site.icu-project.org/ проекту ICU].\nВи маєте [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations оновити версію], якщо плануєте повноцінно використовувати Юнікод.",
+       "config-unicode-pure-php-warning": "'''Увага''': [http://pecl.php.net/intl міжнародне розширення PECL] не може провести нормалізацію Юнікоду.\nЯкщо ваш сайт має високий трафік, вам варто почитати про [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations нормалізацію Юнікоду].",
+       "config-unicode-update-warning": "'''Увага''': Встановлена версія обгортки нормалізації Юнікоду використовує стару версію бібліотеки [http://site.icu-project.org/ проекту ICU].\nВи маєте [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations оновити версію], якщо плануєте повноцінно використовувати Юнікод.",
        "config-no-db": "Не вдалося знайти потрібний драйвер бази даних! Вам необхідно встановити драйвер бази даних для PHP. Підтримуються {{PLURAL:$2|такий тип|такі типи}} баз даних: $1.\n\nЯкщо ви скомпілювали PHP самостійно, переналаштуйте його з увімкненим клієнтом бази даних, наприклад за допомогою <code>./configure --with-mysqli</code>.\n\nЯкщо установлено PHP з пакетів Debian або Ubuntu, тоді ви також повинні встановити, наприклад, пакунок <code>php5-mysql</code>.",
        "config-outdated-sqlite": "'''Увага''': у Вас встановлена версія SQLite $1, а це нижче, ніж мінімально необхідна версія $2. SQLite буде недоступним.",
        "config-no-fts3": "'''Увага''': SQLite зібраний без [//sqlite.org/fts3.html модуля FTS3], функції пошуку не будуть працювати у цій системі.",
-       "config-mbstring": "'''Проблема: Опція PHP [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] увімкнена!'''\nЦя опція призводить до непередбачуваного пошкодження даних.\nВи не можете встановити і використовувати MediaWiki, поки не буде вимкнено цю опцію.",
-       "config-xml-bad": "XML-модуть PHP відсутній.\nMediaWiki необхідні його функції, без цього модуля вона працювати не буде.\nВам може знадобитися встановити php-xml RPM пакет.",
        "config-pcre-old": "'''Фатальна помилка:''' потрібно PCRE версії $1 або пізнішої.\nВаш виконуваний файл PHP пов'язаний з PCRE версії $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Подробиці].",
        "config-pcre-no-utf8": "'''Помилка''': PCRE-модуть PHP, вочевидь, було зібрано без підтримки PCRE_UTF8.\nMediaWiki вимагає підтримку UTF-8 для коректної роботи.",
        "config-memory-raised": "Обмеження пам'яті PHP (<code>memory_limit</code>) $1, піднято до $2.",
        "config-memory-bad": "'''Увага:''' Розмір пам'яті PHP (<code>memory_limit</code>) становить $1.\nІмовірно, це замало.\nВстановлення може не вдатись!",
-       "config-ctype": "'''Помилка''': PHP має бути зібраним з підтримкою [http://www.php.net/manual/en/ctype.installation.php розширення Ctype].",
-       "config-iconv": "'''Фатальна помилка''': PHP має бути зібраним з підтримкою [http://www.php.net/manual/en/iconv.installation.php розширення iconv].",
-       "config-json": "'''Fatal:''' PHP був скомпільований без підтримки JSON.\nВам потрібно встановити або розширення PHP JSON або розширення[http://pecl.php.net/package/jsonc PECL jsonc] перед встановлення Медіавікі.\n* Розширення PHP включено у Red Hat Enterprise Linux (CentOS) 5 та 6, хоча має бути доступним у  <code>/etc/php.ini</code> або <code>/etc/php.d/json.ini</code>.\n* Деякі дистрибутиви Лінукса, випущені після травня 2013, пропустили розширення PHP, натомість упакували розширення  PECL як <code>php5-json</code> або <code>php-pecl-jsonc</code>.",
-       "config-mbstring-absent": "<strong>Фатальна помилка:</strong> PHP має бути скомпільовано з підтримкою [http://www.php.net/manual/en/mbstring.setup.php розширення mbstring].",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] встановлено",
        "config-apc": "[http://www.php.net/apc APC] встановлено",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] встановлено",
@@ -89,7 +83,7 @@
        "config-no-cli-uri": "'''Увага''': Не задано параметр <code>--scriptpath</code>, використовується за замовчуванням: <code>$1</code>.",
        "config-using-server": "Використовується ім'я сервера \"<nowiki>$1</nowiki>\".",
        "config-using-uri": "Використовується URL сервера \"<nowiki>$1$2</nowiki>\".",
-       "config-uploads-not-safe": "'''Увага:''' Ваша типова папка для завантажень <code>$1</code> вразлива до виконання довільних скриптів.\nХоча MediaWiki перевіряє усі завантажені файли на наявність загроз, наполегливо рекомендується [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security закрити дану вразливість] перед тим, як дозволяти завантаження файлів.",
+       "config-uploads-not-safe": "'''Увага:''' Ваша типова папка для завантажень <code>$1</code> вразлива до виконання довільних скриптів.\nХоча MediaWiki перевіряє усі завантажені файли на наявність загроз, наполегливо рекомендується [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security закрити дану вразливість] перед тим, як дозволяти завантаження файлів.",
        "config-no-cli-uploads-check": "'''Увага:''' Ваша типова папка для завантажень (<code>$1</code>) не перевірялась на вразливість до виконання довільних скриптів під час встановлення CLI.",
        "config-brokenlibxml": "У Вашій системі невдале поєднання версій PHP і libxml2, яке може спричинити пошкодження прихованих даних у MediaWiki та інших веб-застосунках.\nОновіть libxml2 до версії 2.7.3 або пізнішої  ([https://bugs.php.net/bug.php?id=45996 відомості про помилку]).\nВстановлення перервано.",
        "config-suhosin-max-value-length": "Suhosin встановлено і обмежує параметра GET  <code>length</code> до $1 байта. Компонент MediaWiki ResourceLoader буде обходити це обмеження, однак це зменшить продуктивність. Якщо це можливо, Вам варто встановити значення <code>suhosin.get.max_value_length</code> як 1024 і більше у <code>php.ini</code> і встановити таке ж значення <code>$wgResourceLoaderMaxQueryLength</code> у LocalSettings.php .",
        "config-db-wiki-help": "Введіть ім'я користувача і пароль, які будуть використовуватись для з'єднання з базою даних під час звичайної роботи.\nЯкщо обліковий запис не існує, а в облікового запису інсталяції є достатні повноваження, цей обліковий запис користувача буде створено з мінімальними правами, що необхідні для роботи з вікі.",
        "config-db-prefix": "Префікс таблиць бази даних:",
        "config-db-prefix-help": "Якщо треба ділити одну базу даних між декількома вікі або між MediaWiki та іншим веб-застосунком, Ви можете додати префікс до усіх назв таблиць для уникнення конфліктів.\nНе використовуйте пробіли.\n\nЦе поле зазвичай залишають пустим.",
-       "config-db-charset": "Кодування бази даних",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 binary",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "MySQL 4.0 зворотно сумісна з UTF-8",
-       "config-charset-help": "'''Увага:''' Якщо Ви використовуєте '''зворотно сумісну UTF-8''' на MySQL 4.1+ і створюєте резервні копії бази даних з допомогою <code>mysqldump</code>, це може викривити усі не-ASCII символи, незворотно пошкодивши резервні копії!\n\nУ '''бінарному режимі''' MediaWiki зберігає текст UTF-8 у базі даних з бінарними полями.\nЦе більш ефективно, ніж UTF-8 режим MySQL, і дозволяє використовувати увесь набір символів Юнікоду.\nУ '''режимі UTF-8''' MySQL буде знати, якого символу стосуються Ваші дані, і могтиме відображати та конвертувати їх належним чином,\nале не дозволятиме зберігати символи, що виходять за межі [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
        "config-mysql-old": "Необхідна MySQL $1 або пізніша, а у Вас $2.",
        "config-db-port": "Порт бази даних:",
        "config-db-schema": "Схема для MediaWiki",
        "config-mysql-charset": "Кодування бази даних:",
        "config-mysql-binary": "Двійкове",
        "config-mysql-utf8": "UTF-8",
-       "config-mysql-charset-help": "У '''бінарному режимі''' MediaWiki зберігає текст UTF-8 у базі даних з бінарними полями.\nЦе більш ефективно, ніж UTF-8 режим MySQL, і дозволяє використовувати увесь набір символів Юнікоду.\n\nУ '''режимі UTF-8''' MySQL буде знати, якого символу стосуються Ваші дані, і могтиме відображати та конвертувати їх належним чином, але не дозволятиме зберігати символи, що виходять за межі [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
+       "config-mysql-charset-help": "У '''бінарному режимі''' MediaWiki зберігає текст UTF-8 у базі даних з бінарними полями.\nЦе більш ефективно, ніж UTF-8 режим MySQL, і дозволяє використовувати увесь набір символів Юнікоду.\n\nУ '''режимі UTF-8''' MySQL буде знати, якого символу стосуються Ваші дані, і могтиме відображати та конвертувати їх належним чином, але не дозволятиме зберігати символи, що виходять за межі [https://en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
        "config-mssql-auth": "Тип автентифікації:",
        "config-mssql-install-auth": "Виберіть тип перевірки автентичності, який буде використовуватися для підключення до бази даних під час процесу установки. \nЯкщо ви оберете \"{{int:config-mssql-windowsauth}}\", будуть використовуватися облікові дані користувача, під яким працює веб-сервер.",
        "config-mssql-web-auth": "Виберіть тип перевірки автентичності, який веб-сервер буде використовувати для підключення до сервера бази даних під час звичайного функціонування вікі. \nЯкщо ви оберете \"{{int:config-mssql-windowsauth}}\", будуть використовуватися облікові дані користувача, під яким працює веб-сервер.",
        "config-profile-no-anon": "Необхідно створити обліковий запис",
        "config-profile-fishbowl": "Тільки для авторизованих редакторів",
        "config-profile-private": "Приватна вікі",
-       "config-profile-help": "Вікі краще працюють, коли Ви дозволяєте їх редагувати якомога ширшому колу людей.\nУ MediaWiki легко переглядати останні зміни і відкочувати будь-яку шкоду, спричинену недосвідченими або зловмисними користувачами.\n\nОдначе, MediaWiki може бути корисна по-різному, й інколи важко переконати у вигідності відкритої вікі-роботи.\nТож у Вас є вибір.\n\nМодель '''{{int:config-profile-wiki}}''' дозволяє редагувати будь-кому, навіть без входження в систему.\nВікі з вимогою \"'''{{int:config-profile-no-anon}}'''\" дає певний облік, але може відвернути випадкових дописувачів.\nСпосіб \"'''{{int:config-profile-fishbowl}}'''\" дозволяє редагувати підтвердженим користувачам, а переглядати сторінки і історію можуть усі.\n'''{{int:config-profile-private}}''' дозволяє переглядати сторінки і редагувати лише підтвердженим користувачам.\n\nДетальніші конфігурації прав користувачів доступні після встановлення, див. [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights відповідний розділ посібника].",
+       "config-profile-help": "Вікі краще працюють, коли Ви дозволяєте їх редагувати якомога ширшому колу людей.\nУ MediaWiki легко переглядати останні зміни і відкочувати будь-яку шкоду, спричинену недосвідченими або зловмисними користувачами.\n\nОдначе, MediaWiki може бути корисна по-різному, й інколи важко переконати у вигідності відкритої вікі-роботи.\nТож у Вас є вибір.\n\nМодель '''{{int:config-profile-wiki}}''' дозволяє редагувати будь-кому, навіть без входження в систему.\nВікі з вимогою \"'''{{int:config-profile-no-anon}}'''\" дає певний облік, але може відвернути випадкових дописувачів.\nСпосіб \"'''{{int:config-profile-fishbowl}}'''\" дозволяє редагувати підтвердженим користувачам, а переглядати сторінки і історію можуть усі.\n'''{{int:config-profile-private}}''' дозволяє переглядати сторінки і редагувати лише підтвердженим користувачам.\n\nДетальніші конфігурації прав користувачів доступні після встановлення, див. [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights відповідний розділ посібника].",
        "config-license": "Авторські права і ліцензія:",
        "config-license-none": "Без ліцензії у нижньому колонтитулі",
        "config-license-cc-by-sa": "Creative Commons Attribution Share Alike",
        "config-email-sender-help": "Введіть адресу електронної пошти, що буде використовуватись як зворотна адреса для вихідної пошти.\nНа неї будуть надсилатись відмови.\nЧимало поштових серверів вимагають, щоб принаймні доменне ім'я було допустимим.",
        "config-upload-settings": "Завантаження зображень і файлів",
        "config-upload-enable": "Дозволити завантаження файлів",
-       "config-upload-help": "Завантаження файлів підставляє Ваш сервер під потенційні загрози.\nДетальнішу інформацію можна почитати у посібнику, [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security розділ про безпеку].\n\nЩоб дозволити завантаження файлів, змініть режим підпапки <code>images</code> у кореневій папці MediaWiki так, щоб сервер міг у неї записувати.\nПотім увімкніть цю опцію.",
+       "config-upload-help": "Завантаження файлів підставляє Ваш сервер під потенційні загрози.\nДетальнішу інформацію можна почитати у посібнику, [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security розділ про безпеку].\n\nЩоб дозволити завантаження файлів, змініть режим підпапки <code>images</code> у кореневій папці MediaWiki так, щоб сервер міг у неї записувати.\nПотім увімкніть цю опцію.",
        "config-upload-deleted": "Каталог для вилучених файлів:",
        "config-upload-deleted-help": "Оберіть папку для архівації видалених файлів.\nВ ідеалі, вона не має бути доступною через інтернет.",
        "config-logo": "URL логотипу:",
        "config-logo-help": "Стандартна схема оформлення MediaWiki містить вільне для логотипу місце над бічною панеллю розміром 135x160 пікселів.\n\nЗавантажте зображення відповідного розміру і введіть тут його URL.\n\nВи можете використати <code>$wgStylePath</code> або <code>$wgScriptPath</code>, якщо ваш логотип пов'язаний з цими шляхами.\n\nЯкщо Вам не потрібен логотип, залиште це поле пустим.",
        "config-instantcommons": "Увімкнути Instant Commons",
-       "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons Instant Commons] це функція, що дозволяє вікі використовувати зображення, звуки та інші медіа, розміщені на [//commons.wikimedia.org/ Вікісховищі].\nДля цього MediaWiki необхідний доступ до інтернету.\n\nДодаткову інформацію стосовно цієї функції, включаючи інструкції, як її увімкнути у вікі, відмінних від Вікісховища, дивіться у [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos посібнику].",
+       "config-instantcommons-help": "[https://www.mediawiki.org/wiki/InstantCommons Instant Commons] — це функція, що дозволяє вікі використовувати зображення, звуки та інші медіа, розміщені у [https://commons.wikimedia.org/ Вікісховищі].\nДля цього MediaWiki необхідний доступ до інтернету.\n\nДодаткову інформацію стосовно цієї функції, включаючи інструкції, як її увімкнути у вікі, відмінних від Вікісховища, дивіться у [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos посібнику].",
        "config-cc-error": "Механізм вибору ліцензії Creative Commons не дав результатів.\nВведіть назву ліцензії вручну.",
        "config-cc-again": "Виберіть знову ...",
        "config-cc-not-chosen": "Оберіть, яку ліцензію Creative Commons Ви хочете використовувати, і натисніть \"proceed\".",
        "config-install-extension-tables": "Створення таблиць для увімкнених розширень",
        "config-install-mainpage-failed": "Не вдається вставити головну сторінку: $1",
        "config-install-done": "<strong>Вітаємо!</strong>\nВи успішно встановили MediaWiki.\n\nІнсталятор згенерував файл <code>LocalSettings.php</code>, який містить усі Ваші налаштування.\n\nВам необхідно завантажити його і помістити у кореневу папку Вашої вікі (туди ж, де index.php). Завантаження мало початись автоматично.\n\nЯкщо завантаження не почалось або Ви його скасували, можете заново його почати, натиснувши на посилання внизу:\n\n$3\n\n<strong>Примітка</strong>: Якщо Ви не зробите цього зараз, цей файл не буде доступним пізніше, коли Ви вийдете з встановлення, не скачавши його.\n\nПісля виконання дій, описаних вище, Ви зможете <strong>[$2 увійти у свою вікі]</strong>.",
+       "config-install-done-path": "<strong>Вітаємо!</strong>\nВи встановили Медіавікі.\n\nІнсталятор створив файл <code>LocalSettings.php</code>.\nУ ньому містяться всі Ваші налаштування.\n\nВам потрібно завантажити його й помістити в <code>$4</code>. Завантаження повинно було автоматично розпочатись.\n\nЯкщо завантаження не було запропоновано, або Ви його скасували, Ви можете перезапустити завантаження натиснувши на посилання нижче:\n\n$3\n\n<strong>Зверніть увагу:</strong> Якщо Ви не зробите це зараз, цей згенерований файл налаштувань не буде доступним для Вас пізніше якщо Ви вийдете зі встановлення не завантаживши його.\n\nКоли це було зроблено Ви можете <strong>[$2 зайти до своєї вікі]</strong>.",
        "config-download-localsettings": "Завантажити <code>LocalSettings.php</code>",
        "config-help": "допомога",
        "config-help-tooltip": "натисніть, щоб розгорнути",
        "config-nofile": "Файл \"$1\" не знайдено. Його видалено?",
-       "config-extension-link": "Чи знаєте ви, що ваше вікі підтримує [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions розширення]?\n\nВи можете переглядати [//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category розширення по категорії] або в [//www.mediawiki.org/wiki/Extension_Matrix матрицю розширень] щоб побачити повний список розширень.",
+       "config-extension-link": "Чи знаєте ви, що ваше вікі підтримує [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions розширення]?\n\nВи можете переглядати [https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category розширення по категорії] або в [https://www.mediawiki.org/wiki/Extension_Matrix матрицю розширень] щоб побачити повний список розширень.",
        "mainpagetext": "<strong>Програмне забезпечення «MediaWiki» встановлено.</strong>",
-       "mainpagedocfooter": "Інформацію про роботу з цією вікі можна знайти в [//meta.wikimedia.org/wiki/Help:Contents посібнику користувача].\n\n== Деякі корисні ресурси ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Список налаштувань];\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Часті питання з приводу MediaWiki];\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Розсилка повідомлень про появу нових версій MediaWiki];\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Локалізуйте MediaWiki своєю мовою]"
+       "mainpagedocfooter": "Інформацію про роботу з цією вікі можна знайти в [https://meta.wikimedia.org/wiki/Help:Contents посібнику користувача].\n\n== Деякі корисні ресурси ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Список налаштувань];\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Часті питання з приводу MediaWiki];\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Розсилка повідомлень про появу нових версій MediaWiki];\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Локалізувати MediaWiki своєю мовою]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Дізнатися, як боротися зі спамом у своїй вікі]"
 }
index d040fde..c51656a 100644 (file)
@@ -6,5 +6,5 @@
        },
        "config-admin-password-blank": "Administrator hisob yozuvi uchun maxfiy soʻz kiriting.",
        "mainpagetext": "'''MediaWiki muvaffaqiyatli o'rnatildi.'''",
-       "mainpagedocfooter": "Wiki dasturini ishlatish haqida ma'lumot olish uchun  [//meta.wikimedia.org/wiki/Help:Contents Foydalanuvchi qo'llanmasi] sahifasiga murojaat qiling.\n\n== Dastlabki qadamlar ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Moslamalar ro'yxati]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki haqida ko'p so'raladigan savollar]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki yangi versiyasi chiqqanda xabar berish ro'yxati]"
+       "mainpagedocfooter": "Wiki dasturini ishlatish haqida ma'lumot olish uchun  [https://meta.wikimedia.org/wiki/Help:Contents Foydalanuvchi qo'llanmasi] sahifasiga murojaat qiling.\n\n== Dastlabki qadamlar ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Moslamalar ro'yxati]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki haqida ko'p so'raladigan savollar]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki yangi versiyasi chiqqanda xabar berish ro'yxati]"
 }
index dd65180..3f496d8 100644 (file)
@@ -6,5 +6,5 @@
                ]
        },
        "mainpagetext": "'''Instałasion de MediaWiki conpletà coretamente.'''",
-       "mainpagedocfooter": "Varda ła [//meta.wikimedia.org/wiki/Help:Contents Guida utente] par majori informasion so l'uso de sto software wiki.\n\n== Par scumisiar ==\n\nI seguenti cołegamenti i xé en łengua inglese:\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Inpostasion de configurasion]\n* [//www.mediawiki.org/wiki/Manual:FAQ/it Domande frequenti so MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailing list anunsi MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
+       "mainpagedocfooter": "Varda ła [https://meta.wikimedia.org/wiki/Help:Contents Guida utente] par majori informasion so l'uso de sto software wiki.\n\n== Par scumisiar ==\n\nI seguenti cołegamenti i xé en łengua inglese:\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Inpostasion de configurasion]\n* [https://www.mediawiki.org/wiki/Manual:FAQ/it Domande frequenti so MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailing list anunsi MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
 }
index 78c3b7b..586c647 100644 (file)
@@ -6,5 +6,5 @@
                ]
        },
        "mainpagetext": "'''MediaWiki-likutim om seižutadud jügedusita.'''",
-       "mainpagedocfooter": "Kc. [//meta.wikimedia.org/wiki/Help:Contents Kävutajan kirj], miše sada informacijad wikin kävutamižes.\n\n== Erased tarbhaižed resursad ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Järgendusiden nimikirjutez]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce počtnimikirjutez]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
+       "mainpagedocfooter": "Kc. [https://meta.wikimedia.org/wiki/Help:Contents Kävutajan kirj], miše sada informacijad wikin kävutamižes.\n\n== Erased tarbhaižed resursad ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Järgendusiden nimikirjutez]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce počtnimikirjutez]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
 }
index aabf541..f2f56d0 100644 (file)
        "config-restart": "Có, khởi động lại nó",
        "config-welcome": "=== Kiểm tra môi trường ===\nBây giờ sẽ kiểm tra sơ qua môi trường này có phù hợp cho việc cài đặt MediaWiki.\nHãy nhớ bao gồm thông tin này khi nào xin hỗ trợ hoàn thành việc cài đặt.",
        "config-copyright": "=== Bản quyền và Điều khoản ===\n\n$1\n\nChương trình này là phần mềm tự do; bạn có thể phân phối lại và/hoặc chỉnh sửa nó dưới điều khoản của Giấy phép Công cộng GNU (GNU General Public License) do Quỹ Phần mềm Tự do (Free Software Foundation) xuất bản; hoặc phiên bản 2 của giấy phép đó, hoặc (tùy theo ý bạn) bất kỳ phiên bản nào sau này.\n\nChương trình này được phân phối với hy vọng rằng nó sẽ hữu ích, nhưng <strong>không có bất kỳ bảo hành nào</strong>; không có thậm chí bảo hành bao hàm về <strong>khả năng thương mại</strong> hoặc <strong>sự thích hợp với một mục đích cụ thể</strong>.\nXem Giấy phép Công cộng GNU để biết thêm chi tiết.\n\nBạn phải nhận <doclink href=Copying>một bản sao của Giấy phép Công cộng GNU</doclink> đi kèm chương trình này; nếu không, hãy viết thư cho Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, Hoa Kỳ, hoặc [http://www.gnu.org/copyleft/gpl.html đọc nó trên mạng].",
-       "config-sidebar": "* [//www.mediawiki.org/wiki/Special:MyLanguage/MediaWiki Trang chủ MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Hướng dẫn sử dụng]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Hướng dẫn quản lý]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Câu thường hỏi]\n----\n* <doclink href=Readme>Cần đọc trước</doclink>\n* <doclink href=ReleaseNotes>Ghi chú phát hành</doclink>\n* <doclink href=Copying>Sao chép</doclink>\n* <doclink href=UpgradeDoc>Nâng cấp</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org/wiki/Special:MyLanguage/MediaWiki Trang chủ MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Hướng dẫn sử dụng]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Hướng dẫn quản lý]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Câu thường hỏi]\n----\n* <doclink href=Readme>Cần đọc trước</doclink>\n* <doclink href=ReleaseNotes>Ghi chú phát hành</doclink>\n* <doclink href=Copying>Sao chép</doclink>\n* <doclink href=UpgradeDoc>Nâng cấp</doclink>",
        "config-env-good": "Đã kiểm tra môi trường.\nBạn có thể cài đặt MediaWiki.",
        "config-env-bad": "Đã kiểm tra môi trường.\nBạn không thể cài đặt MediaWiki.",
        "config-env-php": "PHP $1 đã được cài đặt.",
        "config-env-hhvm": "HHVM $1 được cài đặt.",
        "config-unicode-using-intl": "Sẽ sử dụng [http://pecl.php.net/intl phần mở rộng PECL intl] để chuẩn hóa Unicode.",
-       "config-unicode-pure-php-warning": "<strong>Cảnh báo:</strong>  [http://pecl.php.net/intl intl PECL extension] không được phép xử lý Unicode chuẩn hóa, trả lại thực thi PHP-gốc chậm.\nNếu bạn chạy một site lưu lượng lớn, bạn phải để ý qua một chút trên  [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode normalization].",
-       "config-unicode-update-warning": "<strong>Cảnh báo:</strong> Phiên bản cài đặt của gói Unicode chuẩn hóa sử dụng một phiên bản cũ của thư viện [http://site.icu-project.org/ the ICU project].\nBạn phải [//www.mediawiki.org/wiki/Special:MyLanguage/nâng cấp Unicode_normalization_considerations] nếu bạn quan tâm đến việc sử dụng Unicode.",
+       "config-unicode-pure-php-warning": "<strong>Cảnh báo:</strong>  [http://pecl.php.net/intl intl PECL extension] không được phép xử lý Unicode chuẩn hóa, trả lại thực thi PHP-gốc chậm.\nNếu bạn chạy một site lưu lượng lớn, bạn phải để ý qua một chút trên  [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode normalization].",
+       "config-unicode-update-warning": "<strong>Cảnh báo:</strong> Phiên bản cài đặt của gói Unicode chuẩn hóa sử dụng một phiên bản cũ của thư viện [http://site.icu-project.org/ the ICU project].\nBạn phải [https://www.mediawiki.org/wiki/Special:MyLanguage/nâng cấp Unicode_normalization_considerations] nếu bạn quan tâm đến việc sử dụng Unicode.",
        "config-no-db": "Không tìm thấy một trình điều khiển cơ sở dữ liệu phù hợp! Bạn cần phải cài một trình điều khiển cơ sở dữ liệu cho PHP.\n{{PLURAL:$2|Loại|Các loại}} cơ sở dữ liệu sau đây được hỗ trợ: $1.\n\nNếu bạn đã biên dịch PHP lấy, cấu hình lại nó mà kích hoạt một trình khách cơ sở dữ liệu, ví dụ bằng lệnh <code>./configure --with-mysqli</code>.\nNếu bạn đã cài PHP từ một gói Debian hoặc Ubuntu, thì bạn cũng cần phải cài ví dụ gói <code>php5-mysql</code>.",
        "config-outdated-sqlite": "<strong>Chú ý:</strong> Bạn có SQLite $1, phiên bản này thấp hơn phiên bản yêu câu tối thiểu $2. SQLite sẽ không có tác dụng.",
        "config-no-fts3": "<strong>Chú ý:</strong> SQLite được biên dịch mà không có [//sqlite.org/fts3.html mô đun FTS3], nên các chức năng tìm kiếm sẽ bị vô hiệu trên hệ thống phía sau này.",
-       "config-mbstring": "<strong>Lỗi chí tử: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] được kích hoạt!</strong>\nTùy chọn này gây lỗi và có thể làm hỏng dữ liệu một cách không thể đoán trước.\nBạn không thể cài đặt hoặc sử dụng MediaWiki trừ phi tùy chọn này bị vô hiệu.",
-       "config-xml-bad": "Mô đun XML của PHP đang bị thiếu.\nMediaWiki yêu cầu các hàm trong mô đun này và sẽ không hoạt động trong cấu hình này.\nBạn có thể cần cài đặt gói RPM php-xml.",
        "config-pcre-old": "<strong>Lỗi chí tử:</strong> PCRE $1 trở lên được yêu cầu phải có.\nBản nhị phân PHP của bạn dang được liên kết với PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Thông tin bổ sung].",
        "config-pcre-no-utf8": "<strong>Lỗi chí tử:</strong> Mô đun PCRE của PHP dường như được biên dịch mà không có hỗ trợ PCRE_UTF8.\nMediaWiki yêu cầu phải có hỗ trợ UTF-8 để hoạt động chính xác.",
        "config-memory-raised": "<code>memory_limit</code> của PHP là $1, tăng lên $2.",
        "config-memory-bad": "<strong>Cảnh báo:</strong> <code>memory_limit</code> của PHP là $1.\nGiá trị này có lẽ quá thấp.\nCài đặt có thể bị thất bại!",
-       "config-ctype": "<strong>Lỗi chí tử:</strong> PHP phải được biên dịch với hỗ trợ cho [http://www.php.net/manual/en/ctype.installation.php phần mở rộng Ctype].",
-       "config-iconv": "<strong>Lỗi chí tử:</strong> PHP phải được biên dịch với hỗ trợ cho [http://www.php.net/manual/en/iconv.installation.php phần mở rộng iconv].",
-       "config-json": "<strong>Lỗi chí tử:</strong> PHP được biên dịch mà không có hỗ trợ cho JSON.\nBạn phải cài đặt hoặc phần mở rộng JSON PHP hoặc phần mở rộng [http://pecl.php.net/package/jsonc PECL jsonc] trước khi cài đặt MediaWiki.\n* Phần mở rộng PHP có sẵn trong Red Hat Enterprise Linux (CentOS) 5 và 6 nhưng phải được kích hoạt trong <code>/etc/php.ini</code> hoặc <code>/etc/php.d/json.ini</code>.\n* Một số phiên bản Linux được phát hành sau tháng 5 năm 2013 bỏ qua phần mở rộng PHP và gói lại phần mở rộng PECL là <code>php5-json</code> hoặc <code>php-pecl-jsonc</code> thay thế.",
-       "config-mbstring-absent": "<strong>Lỗi chí tử:</strong> PHP phải được biên dịch với hỗ trợ cho [http://www.php.net/manual/en/mbstring.setup.php phần mở rộng mbstring].",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] đã được cài đặt",
        "config-apc": "[http://www.php.net/apc APC] đã được cài đặt",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] đã được cài đặt",
@@ -83,7 +77,7 @@
        "config-no-cli-uri": "<strong>Cảnh báo:</strong> Không có <code>--scriptpath</code> nào được xác định, nên sử dụng mặc định: <code>$1</code>.",
        "config-using-server": "Sẽ sử dụng tên máy chủ “<nowiki>$1</nowiki>”.",
        "config-using-uri": "Sẽ sử dụng URL máy chủ “<nowiki>$1$2</nowiki>”.",
-       "config-uploads-not-safe": "<strong>Cảnh báo:</strong> Thư mục tải lên mặc định của bạn, <code>$1</code>, đang có lỗ hỏng bảo mật, dễ bị khai thác bởi các đoạn mã thực thi xấu.\nMặc dù MediaWiki kiểm tra tất cả các tập tin tải lên để tránh nguy cơ bảo mật, chúng tôi đặc biệt khuyến cáo [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security đóng lỗ hỏng bảo mật này lại] trước khi kích hoạt tính năng tải lên.",
+       "config-uploads-not-safe": "<strong>Cảnh báo:</strong> Thư mục tải lên mặc định của bạn, <code>$1</code>, đang có lỗ hỏng bảo mật, dễ bị khai thác bởi các đoạn mã thực thi xấu.\nMặc dù MediaWiki kiểm tra tất cả các tập tin tải lên để tránh nguy cơ bảo mật, chúng tôi đặc biệt khuyến cáo [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security đóng lỗ hỏng bảo mật này lại] trước khi kích hoạt tính năng tải lên.",
        "config-no-cli-uploads-check": "<strong>Cảnh báo:</strong> Thư mục tải lên mặc định của bạn (<code>$1</code>) không được kiểm tra lỗ hỏng bảo mật dễ bị khai thác bởi các đoạn mã thực thi xấu trong quá trình cài đặt giao diện dòng lệnh.",
        "config-brokenlibxml": "Hệ thống của bạn có kết hợp các phiên bản lỗi lầm của PHP và libxml2, điều này có thể gây ra tổn thương không nhìn thấy được đối với dữ liệu trong MediaWiki và các ứng dụng Web khác.\nHãy nâng cấp lên phiên bản libxml2 2.7.3 trở lên ([https://bugs.php.net/bug.php?id=45996 lỗi nộp PHP]).\nCài đặt bị hủy bỏ.",
        "config-suhosin-max-value-length": "Suhosin được cài đặt và hạn chế tham số GET <code>length</code> (độ dài) không thể vượt quá $1 byte.\nThành phần ResourceLoader của MediaWiki sẽ khắc phục giới hạn này, nhưng điều này sẽ làm giảm hiệu suất.\nNếu có thể, bạn nên tăng <code>suhosin.get.max_value_length</code> lên 1024 trở lên trong <code>php.ini</code>, và đặt <code>$wgResourceLoaderMaxQueryLength</code> cùng giá trị trong <code>LocalSettings.php</code>.",
        "config-db-wiki-help": "Nhập tên người dùng và mật khẩu sẽ được sử dụng để kết nối với cơ sở dữ liệu trong quá trình hoạt động bình thường của wiki.\nNếu tài khoản không tồn tại và tài khoản cài đặt có đủ quyền hạn, tài khoản người dùng này sẽ được tạo ra với những đặc quyền tối thiểu cần thiết để vận hành wiki.",
        "config-db-prefix": "Tiền tố bảng cơ sở dữ liệu:",
        "config-db-prefix-help": "Nếu bạn cần phải chia sẻ một cơ sở dữ liệu chung với nhiều wiki, hay giữa MediaWiki và một ứng dụng Web, bạn có thể quyết định thêm một tiền tố cho tất cả các tên bảng để tránh xung đột.\nKhông sử dụng dấu cách.\n\nTrường này thường được bỏ trống.",
-       "config-db-charset": "Bảng mã cơ sở dữ liệu",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 nhị phân",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "MySQL 4.0 UTF-8 tương thích ngược",
-       "config-charset-help": "<strong>Cảnh báo:</strong> Nếu bạn sử dụng <strong>UTF-8 tương thích ngược</strong> trên MySQL 4.1+ và sau đó sao lưu cơ sở dữ liệu với <code>mysqldump</code>, việc này có thể phá hủy tất cả các ký tự không phải ASCII, không thể phục hồi sao lưu bị hỏng của bạn!\n\nTrong <strong>chế độ nhị phân</strong>, MediaWiki lưu trữ văn bản UTF-8 vào cơ sở dữ liệu trong các trường nhị phân.\nĐiều này hiệu quả hơn so với chế độ UTF-8 của MySQL và cho phép bạn sử dụng đầy đủ các ký tự của Unicode.\nTrong <strong>chế độ UTF-8</strong>, MySQL sẽ biết bảng mã của dữ liệu và có thể trình bày và chuyển đổi nó chính xác,\nnhưng nó sẽ không cho phép lưu các ký tự nằm cao hơn [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Mặt phẳng đa ngôn ngữ căn bản].",
        "config-mysql-old": "Cần MySQL $1 trở lên; bạn có $2.",
        "config-db-port": "Cổng cơ sở dữ liệu:",
        "config-db-schema": "Giản đồ cho MediaWiki:",
        "config-mysql-charset": "Bảng mã cơ sở dữ liệu:",
        "config-mysql-binary": "Nhị phân",
        "config-mysql-utf8": "UTF-8",
-       "config-mysql-charset-help": "Trong <strong>chế độ nhị phân</strong>, MediaWiki lưu văn bản UTF-8 vào cơ sở dữ liệu trong các trường nhị phân.\nĐiều này hiệu quả hơn so với chế độ UTF-8 của MySQL, và cho phép bạn sử dụng đầy đủ các ký tự Unicode.\n\nTrong <strong>chế độ UTF-8 </strong>, MySQL sẽ biết những ký tự nào thiết lập dữ liệu của bạn, và có thể trình bày và chuyển đổi nó một cách thích hợp, nhưng nó sẽ không cho phép bạn lưu trữ các ký tự nằm trên [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
+       "config-mysql-charset-help": "Trong <strong>chế độ nhị phân</strong>, MediaWiki lưu văn bản UTF-8 vào cơ sở dữ liệu trong các trường nhị phân.\nĐiều này hiệu quả hơn so với chế độ UTF-8 của MySQL, và cho phép bạn sử dụng đầy đủ các ký tự Unicode.\n\nTrong <strong>chế độ UTF-8 </strong>, MySQL sẽ biết những ký tự nào thiết lập dữ liệu của bạn, và có thể trình bày và chuyển đổi nó một cách thích hợp, nhưng nó sẽ không cho phép bạn lưu trữ các ký tự nằm trên [https://en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
        "config-mssql-auth": "Kiểu xác thực:",
        "config-mssql-install-auth": "Chọn loại xác thực sẽ được sử dụng để kết nối với cơ sở dữ liệu trong quá trình cài đặt.\nNếu bạn chọn “{{int:config-mssql-windowsauth}}”, thông tin của bất cứ người sử dụng nào mà máy chủ web đang chạy sẽ được sử dụng.",
        "config-mssql-web-auth": "Chọn kiểu xác thực mà máy chủ web sẽ sử dụng để kết nối đến máy chủ cơ sở dữ liệu, trong quá trình hoạt động bình thường của wiki.\nNếu bạn chọn “{{int:config-mssql-windowsauth}}”, thông tin của bất cứ người sử dụng nào mà máy chủ web đang hoạt động sẽ được sử dụng.",
        "config-profile-no-anon": "Bắt buộc mở tài khoản",
        "config-profile-fishbowl": "Chỉ những người dùng được phép",
        "config-profile-private": "Wiki riêng tư",
-       "config-profile-help": "Wiki hoạt động tốt nhất khi có càng nhiều người sửa đổi nó nhất có thể.\nTrong MediaWiki, có thể rất dễ dàng xem lại các thay đổi gần đây và lùi lại bất kỳ thiệt hại nào được thực hiện bởi người dùng vô tình hoặc người dùng có dụng ý xấu.\n\nTuy nhiên, nhiều người thấy là MediaWiki rất hữu ích trong chừng mực nào đó, và đôi khi thật không phải dễ dàng để thuyết phục mọi người về những lợi ích theo cách thức mà wiki mang lại.\nVì vậy, bạn có sự lựa chọn của riêng bạn.\n\nMô hình <strong>{{int:config-profile-wiki}}</strong> cho phép bất cứ ai tham gia sửa đổi, thậm chí không cần đăng nhập.\nMột wiki với <strong>{{int:config-profile-no-anon}}</strong> cung cấp thêm trách nhiệm, nhưng có thể ngăn chặn những người đóng góp thông thường.\n\nTùy chọn <strong>{{int:config-profile-fishbowl}}</strong> cho phép người dùng được duyệt sửa đổi, nhưng công chúng có thể xem các trang, bao gồm cả lịch sử.\nMột <strong>{{int:config-profile-private}}</strong> chỉ cho phép được duyệt xem các trang, với cùng nhóm được phép sửa đổi.\n\nNhiều cấu hình quyền sử dụng phức tạp có sẵn sau khi cài đặt, xin xem [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights mục liên quan trong sách hướng dẫn].",
+       "config-profile-help": "Wiki hoạt động tốt nhất khi có càng nhiều người sửa đổi nó nhất có thể.\nTrong MediaWiki, có thể rất dễ dàng xem lại các thay đổi gần đây và lùi lại bất kỳ thiệt hại nào được thực hiện bởi người dùng vô tình hoặc người dùng có dụng ý xấu.\n\nTuy nhiên, nhiều người thấy là MediaWiki rất hữu ích trong chừng mực nào đó, và đôi khi thật không phải dễ dàng để thuyết phục mọi người về những lợi ích theo cách thức mà wiki mang lại.\nVì vậy, bạn có sự lựa chọn của riêng bạn.\n\nMô hình <strong>{{int:config-profile-wiki}}</strong> cho phép bất cứ ai tham gia sửa đổi, thậm chí không cần đăng nhập.\nMột wiki với <strong>{{int:config-profile-no-anon}}</strong> cung cấp thêm trách nhiệm, nhưng có thể ngăn chặn những người đóng góp thông thường.\n\nTùy chọn <strong>{{int:config-profile-fishbowl}}</strong> cho phép người dùng được duyệt sửa đổi, nhưng công chúng có thể xem các trang, bao gồm cả lịch sử.\nMột <strong>{{int:config-profile-private}}</strong> chỉ cho phép được duyệt xem các trang, với cùng nhóm được phép sửa đổi.\n\nNhiều cấu hình quyền sử dụng phức tạp có sẵn sau khi cài đặt, xin xem [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights mục liên quan trong sách hướng dẫn].",
        "config-license": "Bản quyền và giấy phép:",
        "config-license-none": "Không hiển thị giấy phép ở chân trang",
        "config-license-cc-by-sa": "Creative Commons Ghi công–Chia sẻ tương tự",
        "config-email-sender-help": "Nhập địa chỉ thư điện tử để làm địa chỉ trở về trong thư gửi đi.\nĐây là nơi mà thư từ chối sẽ được gửi đi.\nNhiều máy chủ thư điện tử yêu cầu phải có ít nhất là phần tên miền để đảm bảo tính hợp lệ.",
        "config-upload-settings": "Hình ảnh và tập tin tải lên",
        "config-upload-enable": "Cho phép tải lên tập tin",
-       "config-upload-help": "Tập tin tải lên có khả năng làm lộ các nguy cơ bảo mật của máy chủ của bạn.\nĐể biết thêm thông tin, xin đọc [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security phần bảo mật] trong tài liệu hướng dẫn.\n\nĐể kích hoạt tính năng tải tập tin lên, thay đổi chế độ trên thư mục con <code>hình ảnh</code> trong thư mục gốc (root) của MediaWiki để máy chủ web có thể lưu dữ liệu vào đó.\nSau đó kích hoạt tùy chọn này.",
+       "config-upload-help": "Tập tin tải lên có khả năng làm lộ các nguy cơ bảo mật của máy chủ của bạn.\nĐể biết thêm thông tin, xin đọc [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security phần bảo mật] trong tài liệu hướng dẫn.\n\nĐể kích hoạt tính năng tải tập tin lên, thay đổi chế độ trên thư mục con <code>hình ảnh</code> trong thư mục gốc (root) của MediaWiki để máy chủ web có thể lưu dữ liệu vào đó.\nSau đó kích hoạt tùy chọn này.",
        "config-upload-deleted": "Thư mục chứa các tập tin đã xóa:",
        "config-upload-deleted-help": "Chọn một thư mục trong đó lưu trữ các tập tin đã bị xóa.\nLý tưởng nhất, thư mục này không nên được truy cập từ trang web.",
        "config-logo": "URL biểu trưng:",
        "config-logo-help": "Giao diện mặc định của MediaWiki bao gồm không gian cho một logo 135x160 điểm ảnh trên menu sidebar (thanh bên).\nTải lên một hình ảnh kích thước thích hợp, và nhập URL hình ảnh đó vào đây.\n\nBạn có thể sử dụng <code>$wgStylePath</code> hoặc <code>$wgScriptPath</code> nếu logo của bạn liên quan đường những đường dẫn ở đây.\n\nNếu bạn không muốn có một logo, hãy bỏ trống ô này.",
        "config-instantcommons": "Kích hoạt Instant Commons",
-       "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons Instant Commons] là một tính năng cho phép wiki sử dụng hình ảnh, âm thanh và tập tin đa phương tiện khác được tìm thấy trong trang web [//commons.wikimedia.org/ Wikimedia Commons].\nĐể làm được điều này, MediaWiki yêu cầu phải truy cập vào Internet.\n\nĐể biết thêm thông tin về tính năng này, trong đó có hướng dẫn về cách thiết lập cho các wiki khác với Wikimedia Commons, tham khảo thêm tại [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos tài liệu hướng dẫn].",
+       "config-instantcommons-help": "[https://www.mediawiki.org/wiki/InstantCommons Instant Commons] là một tính năng cho phép wiki sử dụng hình ảnh, âm thanh và tập tin đa phương tiện khác được tìm thấy trong trang web [https://commons.wikimedia.org/ Wikimedia Commons].\nĐể làm được điều này, MediaWiki yêu cầu phải truy cập vào Internet.\n\nĐể biết thêm thông tin về tính năng này, trong đó có hướng dẫn về cách thiết lập cho các wiki khác với Wikimedia Commons, tham khảo thêm tại [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos tài liệu hướng dẫn].",
        "config-cc-error": "Người chọn giấy phép Creative Commons đã không đưa ra kết quả nào.\nNhập tên giấy phép bằng tay.",
        "config-cc-again": "Chọn một lần nữa…",
        "config-cc-not-chosen": "Chọn một giấy phép Creative Commons và bấm “proceed”.",
        "config-install-extension-tables": "Đang tạo bảng cho các phần mở rộng được kích hoạt",
        "config-install-mainpage-failed": "Không thể chèn trang đầu: $1",
        "config-install-done": "<strong>Xin chúc mừng!</strong>\nBạn đã cài đặt MediaWiki.\n\nBộ cài đặt đã tạo ra một tập tin <code>LocalSettings.php</code>.\nTập tin này chứa tất cả các cấu hình của bạn.\n\nBạn sẽ cần phải tải nó về và đặt nó trong thư mục cài đặt wiki của bạn (cùng thư mục với index.php). Việc tải về có lẽ sẽ được khởi động tự động.\n\nNếu bản tải về không được cung cấp, hoặc nếu bạn hủy bỏ nó, bạn có thể khởi động lại tải về bằng cách nhấn vào liên kết dưới đây:\n\n$3\n\n<strong>Lưu ý:</strong> Nếu bạn không làm điều này ngay bây giờ, điều này sẽ tạo ra tập tin cấu hình sẽ không có giá trị cho bạn sau này nếu bạn thoát khỏi trình cài đặt mà không tải nó về.\n\nKhi đã việc tải về đã hoàn thành, bạn có thể <strong>[$2 truy cập trang wiki của bạn]</strong>.",
+       "config-install-done-path": "<strong>Xin chúc mừng!</strong>\nBạn đã cài đặt MediaWiki.\n\nBộ cài đặt đã tạo ra một tập tin <code>LocalSettings.php</code>.\nTập tin này chứa tất cả các cấu hình của bạn.\n\nBạn sẽ cần phải tải nó về và đặt nó tại <code>$4</code>. Việc tải về có lẽ sẽ được khởi động tự động.\n\nNếu bản tải về không được cung cấp, hoặc nếu bạn hủy bỏ nó, bạn có thể khởi động lại tải về bằng cách nhấn vào liên kết dưới đây:\n\n$3\n\n<strong>Lưu ý:</strong> Nếu bạn không làm điều này ngay bây giờ, điều này sẽ tạo ra tập tin cấu hình sẽ không có giá trị cho bạn sau này nếu bạn thoát khỏi trình cài đặt mà không tải nó về.\n\nKhi đã việc tải về đã hoàn thành, bạn có thể <strong>[$2 truy cập trang wiki của bạn]</strong>.",
        "config-download-localsettings": "Tải về <code>LocalSettings.php</code>",
        "config-help": "Trợ giúp",
        "config-help-tooltip": "nhấn chuột để mở rộng",
        "config-nofile": "Không tìm thấy tập tin “$1”. Nó có phải bị xóa không?",
-       "config-extension-link": "Bạn có biết rằng wiki của bạn có hỗ trợ [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions mở rộng]?\n\nBạn có thể truy cập [//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category phần mở rộng theo thể loại] hoặc [//www.mediawiki.org/wiki/Extension_Matrix Ma trận Mở rộng] để xem danh sách đầy đủ các phần mở rộng.",
+       "config-extension-link": "Bạn có biết rằng wiki của bạn có hỗ trợ [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions mở rộng]?\n\nBạn có thể truy cập [https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category phần mở rộng theo thể loại] hoặc [https://www.mediawiki.org/wiki/Extension_Matrix Ma trận Mở rộng] để xem danh sách đầy đủ các phần mở rộng.",
        "mainpagetext": "'''MediaWiki đã được cài đặt.'''",
-       "mainpagedocfooter": "Xin đọc [//meta.wikimedia.org/wiki/Help:Contents Hướng dẫn sử dụng] để biết thêm thông tin về cách sử dụng phần mềm wiki.\n\n== Để bắt đầu ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Danh sách các thiết lập cấu hình]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Các câu hỏi thường gặp MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Danh sách gửi thư về việc phát hành MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Tìm hiểu cách chống spam tại wiki của bạn]"
+       "mainpagedocfooter": "Xin đọc [https://meta.wikimedia.org/wiki/Help:Contents Hướng dẫn sử dụng] để biết thêm thông tin về cách sử dụng phần mềm wiki.\n\n== Để bắt đầu ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Danh sách các thiết lập cấu hình]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Các câu hỏi thường gặp MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Danh sách gửi thư về việc phát hành MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Tìm hiểu cách chống spam tại wiki của bạn]"
 }
index 62d5040..2c38512 100644 (file)
@@ -1,5 +1,5 @@
 {
        "@metadata": [],
        "mainpagetext": "'''El MediaWiki pestiton benosekiko.'''",
-       "mainpagedocfooter": "Konsultolös [//meta.wikimedia.org/wiki/Help:Contents Gebanageidian] ad tuvön nünis dö geb programema vükik.\n\n== Nüdugot ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Parametalised]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki: SSP]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Potalised tefü fomams nulik ela MediaWiki]"
+       "mainpagedocfooter": "Konsultolös [https://meta.wikimedia.org/wiki/Help:Contents Gebanageidian] ad tuvön nünis dö geb programema vükik.\n\n== Nüdugot ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Parametalised]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki: SSP]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Potalised tefü fomams nulik ela MediaWiki]"
 }
index 39acc02..4ee179d 100644 (file)
@@ -1,5 +1,5 @@
 {
        "@metadata": [],
        "mainpagetext": "'''MediaWiki tarkvara paika säet.'''",
-       "mainpagedocfooter": "Vikitarkvara pruukmisõ kotsilõ loeq mano:\n* [//meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide MediaWiki pruukmisoppus (inglüse keelen)].\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Säädmiisi oppus (inglüse keelen)]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki kõgõ küsütümbäq küsümiseq (inglüse keelen)]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce E-postilist, minka andas teedäq MediaWiki vahtsist kujõst]."
+       "mainpagedocfooter": "Vikitarkvara pruukmisõ kotsilõ loeq mano:\n* [https://meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide MediaWiki pruukmisoppus (inglüse keelen)].\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Säädmiisi oppus (inglüse keelen)]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki kõgõ küsütümbäq küsümiseq (inglüse keelen)]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce E-postilist, minka andas teedäq MediaWiki vahtsist kujõst]."
 }
index bbecf18..a3c3d24 100644 (file)
@@ -32,7 +32,7 @@
        "config-env-php": "Gin-install an PHP $1.",
        "config-env-hhvm": "Gin-install an HHVM $1.",
        "config-unicode-using-intl": "Gamita an [http://pecl.php.net/intl intl PECL extension] para han normalisasyon han Unicode.",
-       "config-unicode-pure-php-warning": "<strong>Pahimatngon:</strong> An [http://pecl.php.net/intl intl PECL extension] in waray akos kumapot hin Unicode normalization, tungod hini mabalik ha mahinay nga puro-PHP nga implementasyon.\nKun nagpapadalagan ka hin high-traffic site, alayon pagbasa hin guti han [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode normalization].",
+       "config-unicode-pure-php-warning": "<strong>Pahimatngon:</strong> An [http://pecl.php.net/intl intl PECL extension] in waray akos kumapot hin Unicode normalization, tungod hini mabalik ha mahinay nga puro-PHP nga implementasyon.\nKun nagpapadalagan ka hin high-traffic site, alayon pagbasa hin guti han [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode normalization].",
        "config-no-db": "Diri nakakabiling hin naaangay nga database driver! Kinahanglan mo magtaod hin uska database driver para han PHP. An masunod nga mga klase hin database in ginsusuporatahan: $1.\n\nKun ikaw mismo an nag-compile han PHP, kinahanglan ma-reconfigure iton nga para maapandar an database client, pananglitan, han paggamit han <code>./configure --with-mysqli</code>.\nKun gintaod mo an PHP tikang ha uska Debian o Ubuntu nga pakete, kinahanglan nimo magtaod liwat, pananglitan, hiton an <code>php5-mysql</code> nga pakete.",
        "config-pcre-old": "<strong>Nangangarat-an:</strong> Nagkikinahanglan hin PCRE $1 o mas urhi pa.\nAn imo PHP nga binaryo in nakasumpay hin PCRE $2. [https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE More information].",
        "config-db-name": "Ngaran han database:",
@@ -40,9 +40,6 @@
        "config-db-name-oracle": "Schema han database:",
        "config-db-username": "Agnay-gumaramit para ha database:",
        "config-db-password": "Password para ha database:",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 binary",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "MySQL 4.0 backwards-compatible UTF-8",
        "config-db-port": "Database port:",
        "config-type-mysql": "MySQL (o compatible)",
        "config-type-mssql": "Microsoft SQL Server",
        "config-help-tooltip": "igpidlit para dumako",
        "config-nofile": "An paypay nga \"$1\" in diri nabibilngan. Ginpara na ini?",
        "mainpagetext": "'''Malinamposon an pag-instalar han MediaWiki.'''",
-       "mainpagedocfooter": "Kitaa an [//meta.wikimedia.org/wiki/Help:Contents User's Guide] para hin impormasyon ha paggamit han wiki nga softweyr.\n\n== Ha pagtikang==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
+       "mainpagedocfooter": "Kitaa an [https://meta.wikimedia.org/wiki/Help:Contents User's Guide] para hin impormasyon ha paggamit han wiki nga softweyr.\n\n== Ha pagtikang==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
 }
index 5cee276..f53ba9f 100644 (file)
@@ -5,5 +5,5 @@
                ]
        },
        "mainpagetext": "'''Campug MediaWiki gi sotti na . '''",
-       "mainpagedocfooter": "Saytul [//meta.wikimedia.org/wiki/Help:Contents Gindikaayu jëfandikukat bi] ngir yeneeni xibaar ci jëfandiku gu tëriin gi.\n\n== Tambali ak MediaWiki ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Limu jumtukaayi kocc-koccal gi]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Limu waxtaan ci liy-génn ci MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
+       "mainpagedocfooter": "Saytul [https://meta.wikimedia.org/wiki/Help:Contents Gindikaayu jëfandikukat bi] ngir yeneeni xibaar ci jëfandiku gu tëriin gi.\n\n== Tambali ak MediaWiki ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Limu jumtukaayi kocc-koccal gi]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Limu waxtaan ci liy-génn ci MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
 }
index 1443452..8b8d02d 100644 (file)
@@ -8,6 +8,6 @@
        },
        "config-information": "信息",
        "config-page-language": "闲话",
-       "mainpagetext": "'''MediaWiki安装成功哉!'''",
-       "mainpagedocfooter": "请访问[//meta.wikimedia.org/wiki/Help:Contents 用户手册]以获得使用此维基软件个信息!\n\n== 入门 ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings MediaWiki 配置设置列表]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki 常见问题解答]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki 发布邮件列表]"
+       "mainpagetext": "<strong>MediaWiki安装好哉。</strong>",
+       "mainpagedocfooter": "请访问[https://meta.wikimedia.org/wiki/Help:Contents 用户手册]以获得使用此维基软件个信息!\n\n== 入门 ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings MediaWiki 配置设置列表]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki 常见问题解答]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki 发布邮件列表]"
 }
index 14ea95b..fc7917b 100644 (file)
@@ -5,5 +5,5 @@
                ]
        },
        "mainpagetext": "Йовудта Mediawiki гүүлһүдә тәвллһн.'''",
-       "mainpagedocfooter": "Тер бики закллһна теткүл ю кеһәд олзлх туск [//meta.wikimedia.org/wiki/Help:Contents көтлвр] дастн.\n\n== Туста заавр ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Көгүдә бүрткл]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki туск ЮмБи]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki шинҗллһнә бүрткл]"
+       "mainpagedocfooter": "Тер бики закллһна теткүл ю кеһәд олзлх туск [https://meta.wikimedia.org/wiki/Help:Contents көтлвр] дастн.\n\n== Туста заавр ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Көгүдә бүрткл]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki туск ЮмБи]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki шинҗллһнә бүрткл]"
 }
index 60133f7..4a24408 100644 (file)
@@ -70,5 +70,5 @@
        "config-help": "הילף",
        "config-nofile": "מ'האט נישט געקענט טרעפן די טעקע \"$1\". צי האט מען זי אויסגעמעקט?",
        "mainpagetext": "<strong> מעדיעוויקי אינסטאלירט.</strong>",
-       "mainpagedocfooter": "גיט זיך אן עצה מיט [//meta.wikimedia.org/wiki/Help:Contents באניצער'ס וועגווײַזער] פֿאר אינפֿארמאציע וויאזוי זיך באנוצן מיט וויקי ווייכוואַרג.\n\n== נוצליכע וועבלינקען פֿאַר אנהייבערס ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings רשימה פון קאנפֿיגוראציעס]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ אפֿט געפֿרעגטע שאלות]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce מעדיעוויקי באפֿרײַאונג פאסטליסטע]* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources איבערזעצן מעדיעוויקי אין אײַער שפראך]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam לערנט וויאזוי צו באקעמפן בפעם אויף אייער וויקי]"
+       "mainpagedocfooter": "גיט זיך אן עצה מיט [https://meta.wikimedia.org/wiki/Help:Contents באניצער'ס וועגווײַזער] פֿאר אינפֿארמאציע וויאזוי זיך באנוצן מיט וויקי ווייכוואַרג.\n\n== נוצליכע וועבלינקען פֿאַר אנהייבערס ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings רשימה פון קאנפֿיגוראציעס]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ אפֿט געפֿרעגטע שאלות]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce מעדיעוויקי באפֿרײַאונג פאסטליסטע]* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources איבערזעצן מעדיעוויקי אין אײַער שפראך]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam לערנט וויאזוי צו באקעמפן בפעם אויף אייער וויקי]"
 }
index 84f3848..aee9b84 100644 (file)
@@ -15,5 +15,5 @@
        "config-db-type": "Irú ibùdó dátà:",
        "config-db-host": "Agbàlejò ibùdó dátà:",
        "mainpagetext": "'''MediaWiki ti jẹ́ gbígbékọ́sínú láyọrísírere.'''",
-       "mainpagedocfooter": "Ẹ ṣàbẹ̀wò sí [//meta.wikimedia.org/wiki/Help:Contents User's Guide] fún ìfitólétí nípa líló atòlànà wíkì.\n\n== Láti bẹ̀rẹ̀ ==\n*  [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
+       "mainpagedocfooter": "Ẹ ṣàbẹ̀wò sí [https://meta.wikimedia.org/wiki/Help:Contents User's Guide] fún ìfitólétí nípa líló atòlànà wíkì.\n\n== Láti bẹ̀rẹ̀ ==\n*  [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
 }
index bc8df1a..44bcb0e 100644 (file)
@@ -1,5 +1,5 @@
 {
        "@metadata": [],
        "mainpagetext": "'''MediaWiki已經裝好。'''",
-       "mainpagedocfooter": "參閱[//meta.wikimedia.org/wiki/Help:Contents 用戶指引](英),裏面有資料講點用wiki軟件。\n\n==開始使用==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings 配置設定清單](英)\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki 常見問題](英)\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki 發佈郵件名單](英)"
+       "mainpagedocfooter": "參閱[https://meta.wikimedia.org/wiki/Help:Contents 用戶指引](英),裏面有資料講點用wiki軟件。\n\n==開始使用==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings 配置設定清單](英)\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki 常見問題](英)\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki 發佈郵件名單](英)"
 }
index d545ed6..df13fdf 100644 (file)
@@ -5,5 +5,5 @@
                ]
        },
        "mainpagetext": "'''De installaotie van MediaWiki is geslaegd.'''",
-       "mainpagedocfooter": "Raedpleeg de [//meta.wikimedia.org/wiki/Help:Contents Inhoudsopgaeve andleidieng] voe informatie over 't gebruuk van de wikisoftware.\n\n== Meer ulpe over MediaWiki ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lieste mie instelliengen]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Veehestelde vraehen (FAQ)]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailienglieste voe ankondigiengen van nieuwe versies]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
+       "mainpagedocfooter": "Raedpleeg de [https://meta.wikimedia.org/wiki/Help:Contents Inhoudsopgaeve andleidieng] voe informatie over 't gebruuk van de wikisoftware.\n\n== Meer ulpe over MediaWiki ==\n\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lieste mie instelliengen]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Veehestelde vraehen (FAQ)]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailienglieste voe ankondigiengen van nieuwe versies]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
 }
index 59968e2..07e1fc3 100644 (file)
        "config-restart": "是的,重启吧",
        "config-welcome": "=== 环境检查 ===\n将简单检查当前环境是否适合安装MediaWiki。如果您要寻求安装过程的支持,请记得附上此信息。",
        "config-copyright": "=== 版权和条款 ===\n\n$1\n\n本程序为自由软件;您可依据自由软件基金会所发表的GNU通用公共授权条款规定,就本程序再为发布与/或修改;无论您依据的是本授权的第二版或(您自行选择的)任一日后发行的版本。\n\n本程序是基于使用目的而加以发布,然而'''不负任何担保责任''';亦无对'''适售性'''或'''特定目的适用性'''所为的默示性担保。详情请参照GNU通用公共授权。\n\n您应已收到附随于本程序的<doclink href=\"Copying\">GNU通用公共授权的副本</doclink>;如果没有,请写信至自由软件基金会:59 Temple Place - Suite 330, Boston, Ma 02111-1307, USA,或[http://www.gnu.org/copyleft/gpl.html 在线阅读]。",
-       "config-sidebar": "* [//www.mediawiki.org/wiki/MediaWiki/zh-hans MediaWiki首页]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents/zh-hans 用户指南]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents 管理员指南]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/zh-hans 常见问题解答]\n----\n* <doclink href=Readme>自述文件</doclink>\n* <doclink href=ReleaseNotes>发行说明</doclink>\n* <doclink href=Copying>协议副本</doclink>\n* <doclink href=UpgradeDoc>升级</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org/wiki/MediaWiki/zh-hans MediaWiki首页]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents/zh-hans 用户指南]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents 管理员指南]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/zh-hans 常见问题解答]\n----\n* <doclink href=Readme>自述文件</doclink>\n* <doclink href=ReleaseNotes>发行说明</doclink>\n* <doclink href=Copying>协议副本</doclink>\n* <doclink href=UpgradeDoc>升级</doclink>",
        "config-env-good": "环境检查已经完成。您可以安装MediaWiki。",
        "config-env-bad": "环境检查已经完成。您不能安装MediaWiki。",
        "config-env-php": "PHP $1已安装。",
        "config-env-hhvm": "HHVM $1已安装。",
        "config-unicode-using-intl": "使用[http://pecl.php.net/intl intl PECL扩展程序]标准化Unicode。",
-       "config-unicode-pure-php-warning": "<strong>警告:</strong>因为尚未安装 [http://pecl.php.net/intl intl PECL 扩展]以处理 Unicode 正常化,故只能退而采用运行较慢的纯 PHP 实现的方法。\n如果您运行着一个高流量的网站,请参阅 [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode标准化]一文。",
-       "config-unicode-update-warning": "'''警告''':Unicode正常化封装器的已安装版本使用了旧版本的[http://site.icu-project.org/ ICU项目]库。如果您需要使用Unicode,请将其[//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations 升级]。",
+       "config-unicode-pure-php-warning": "<strong>警告:</strong>因为尚未安装 [http://pecl.php.net/intl intl PECL 扩展]以处理 Unicode 正常化,故只能退而采用运行较慢的纯 PHP 实现的方法。如果您运行着一个高流量的网站,请参阅 [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode标准化]一文。",
+       "config-unicode-update-warning": "<strong>警告:</strong>Unicode正常化封装器的已安装版本使用了旧版本的[http://site.icu-project.org/ ICU项目]库。如果您需要使用Unicode,请将其[https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations 升级]。",
        "config-no-db": "无法找到合适的数据库驱动!您需要为PHP安装数据库驱动。目前支持以下数据库{{PLURAL:$2|类型}}:$1。\n\n如果您自己编译了PHP,请通过启用数据库客户端重新配置它,例如使用 <code>./configure --with-mysqli</code>。如果您从 Debian 或 Ubuntu 安装包安装了PHP,那么您也需要安装,例如 <code>php5-mysql</code> 安装包。",
        "config-outdated-sqlite": "<strong>警告:</strong>您已安装SQLite $1,但是它的版本低于最低要求版本$2。因此您无法选择SQLite。",
        "config-no-fts3": "<strong>警告:</strong>已编译的SQLite不包含[//sqlite.org/fts3.html FTS3模块],后台搜索功能将不可用。",
-       "config-mbstring": "<strong>致命错误:[http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload]已启用!</strong>\n此选项会导致错误并不可预测地破坏数据,请将其禁用,否则您将不能安装或使用MediaWiki。",
-       "config-xml-bad": "缺少PHP的XML模块。MediaWiki需要使用该模块提供的函数,在当前配置下将无法工作。您可能需要安装php-xml RPM包。",
        "config-pcre-old": "<strong>致命错误:</strong>需要PCRE $1 或更高版本。\n您的 PHP 二进制文件与 PCRE $2 链接。\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE 详细信息]。",
        "config-pcre-no-utf8": "<strong>致命错误:</strong>PHP的PCRE模块在编译时可能没有包含PCRE_UTF8支持。\nMediaWiki需要UTF-8支持才能正常工作。",
        "config-memory-raised": "PHP的内存使用上限<code>memory_limit</code>为$1,自动提升到$2。",
        "config-memory-bad": "<strong>警告:</strong>PHP的内存使用上限<code>memory_limit</code>为$1。\n该设定可能过低,并导致安装失败!",
-       "config-ctype": "<strong>致命错误:</strong>PHP必须有[http://www.php.net/manual/en/ctype.installation.php Ctype 扩展]来支持编译。",
-       "config-iconv": "<strong>致命错误:</strong>PHP必须编译支持[http://www.php.net/manual/en/iconv.installation.php iconv拓展]。",
-       "config-json": "<strong>致命错误:</strong>PHP编译没有附带JSON支持。\n在安装MediaWiki前,你必须安装PHP JSON扩展或者[http://pecl.php.net/package/jsonc PECL jsonc]扩展。\n* PHP扩展已包含在Red Hat Enterprise Linux (CentOS) 5和6中,但必须在<code>/etc/php.ini</code>或<code>/etc/php.d/json.ini</code>中启用。\n* 部分在2013年5月后发行的Linux发行版省略了PHP扩展,而将PECL扩展打包成了<code>php5-json</code>或<code>php-pecl-jsonc</code>。",
-       "config-mbstring-absent": "<strong>致命错误:</strong>PHP必须有[http://www.php.net/manual/en/mbstring.setup.php mbstring扩展]来支持编译。",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache]已安装",
        "config-apc": "[http://www.php.net/apc APC]已安装",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache]已安装",
@@ -99,7 +93,7 @@
        "config-no-cli-uri": "<strong>警告:</strong>未指定<code>--scriptpath</code>参数,使用默认值:<code>$1</code>。",
        "config-using-server": "使用服务器名“<nowiki>$1</nowiki>”。",
        "config-using-uri": "使用服务器URL“<nowiki>$1$2</nowiki>”。",
-       "config-uploads-not-safe": "<strong>警告:</strong>您的默认上传目录<code>$1</code>存在允许执行任意脚本的漏洞。\n尽管MediaWiki会对所有已上传的文件进行安全检查,但我们仍然强烈建议您在启用上传功能前[//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security 关闭该安全漏洞]。",
+       "config-uploads-not-safe": "<strong>警告:</strong>您的默认上传目录<code>$1</code>存在允许执行任意脚本的漏洞。尽管MediaWiki会对所有已上传的文件进行安全检查,但我们仍然强烈建议您在启用上传功能前[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security 关闭该安全漏洞]。",
        "config-no-cli-uploads-check": "<strong>警告:</strong>在CLI安装过程中,没有对您的默认上传目录(<code>$1</code>)进行执行任意脚本的漏洞检查。",
        "config-brokenlibxml": "您的系统安装的PHP和libxml2版本组合存在故障,并可能在MediaWiki和其他web应用程序中造成隐藏的数据损坏。请将libxml2升级到2.7.3或以上([https://bugs.php.net/bug.php?id=45996 PHP的故障报告])。安装已中断。",
        "config-suhosin-max-value-length": "Suhosin已经安装并将GET请求的参数长度限制在$1字节。MediaWiki的ResourceLoader部件可以在此限制下正常工作,但其性能会被降低。如果可能,请在<code>php.ini</code>中将<code>suhosin.get.max_value_length</code>设为1024或更高值,并在LocalSettings.php中将<code>$wgResourceLoaderMaxQueryLength</code>设为同一值。",
        "config-db-wiki-help": "输入在普通的wiki操作中(安装完成后)将用于连接数据库的用户名和密码。如果该帐号并不存在,而安装帐号具有足够的权限,该用户帐号会被自动创建,并被赋予足以运行此wiki的最低权限。",
        "config-db-prefix": "数据库表前缀:",
        "config-db-prefix-help": "如果您需要在多个wiki之间(或在MediaWiki与其他web应用程序之间)共享一个数据库,您可以通过添加前缀的方式来避免出现表名称的冲突。请勿使用空格。\n\n此字段通常可留空。",
-       "config-db-charset": "数据库字符集",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 二进制",
-       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
-       "config-charset-mysql4": "MySQL 4.0 UTF-8(向后兼容)",
-       "config-charset-help": "<strong>警告:</strong>如果您在MySQL 4.1+中使用<strong>向后兼容的UTF-8</strong>字符集,并在之后使用<code>mysqldump</code>备份了数据库,则可能损坏所有的非ASCII字符,从而不可逆地破坏您的备份!\n\n在<strong>二进制模式</strong>下,MediaWiki会将UTF-8编码的文本存于数据库的二进制字段中。相对于MySQL的UTF-8模式,这种方法效率更高,并允许您使用全范围的Unicode字符。\n\n在<strong>UTF-8模式</strong>下,MySQL将知道您数据使用的字符集,并能适当地提供和转换内容。但这样做您将无法在数据库中存储[//zh.wikipedia.org/wiki/基本多文种平面 基本多文种平面]以外的字符。",
        "config-mysql-old": "需要MySQL $1或更新的版本,您的版本为$2。",
        "config-db-port": "数据库端口:",
        "config-db-schema": "MediaWiki的数据库模式",
        "config-mysql-charset": "数据库字符集:",
        "config-mysql-binary": "二进制",
        "config-mysql-utf8": "UTF-8",
-       "config-mysql-charset-help": "在<strong>二进制模式</strong>下,MediaWiki会将UTF-8编码的文本存于数据库的二进制字段中。相对于MySQL的UTF-8模式,这种方法效率更高,并允许您使用全范围的Unicode字符。\n\n在<strong>UTF-8模式</strong>下,MySQL将知道您数据使用的字符集,并能适当地提供和转换内容。但这样做您将无法在数据库中存储[//zh.wikipedia.org/wiki/基本多文种平面 基本多文种平面]以外的字符。",
+       "config-mysql-charset-help": "在<strong>二进制模式</strong>下,MediaWiki会将UTF-8编码的文本存于数据库的二进制字段中。相对于MySQL的UTF-8模式,这种方法效率更高,并允许您使用全范围的Unicode字符。\n\n在<strong>UTF-8模式</strong>下,MySQL将知道您数据使用的字符集,并能适当地提供和转换内容。但这样做您将无法在数据库中存储[https://zh.wikipedia.org/wiki/基本多文种平面 基本多文种平面]以外的字符。",
        "config-mssql-auth": "身份验证类型:",
        "config-mssql-install-auth": "选择安装过程中链接数据库时将采用的身份验证方式。\n如果您选择“{{int:config-mssql-windowsauth}}”,将使用运行服务器的用户的身份凭据。",
        "config-mssql-web-auth": "选择Web服务器在通常wiki操作期间用来连接数据库服务器的身份验证方式。\n如果您选择“{{int:config-mssql-windowsauth}}”,将使用运行Web服务器的用户的凭据。",
        "config-profile-no-anon": "需要注册帐号",
        "config-profile-fishbowl": "编辑受限",
        "config-profile-private": "非公开wiki",
-       "config-profile-help": "如果您允许尽量多的人编写wiki,网站上的内容会更加丰富。在MediaWiki中,您可以轻松地审查最近更改,并轻易回退掉新手或破坏者造成的损害。\n\n然而,许多人觉得让MediaWiki存在多种角色将更加好用;同时,要说服所有人都愿以wiki的方式作贡献并非一件易事。因此,您可以有以下选择:\n\n<strong>{{int:config-profile-wiki}}</strong>模式允许包括未登录用户在内的所有人编辑。<strong>{{int:config-profile-no-anon}}</strong>的wiki需要额外的注册流程,这有可能会阻碍随意贡献者。\n\n<strong>{{int:config-profile-fishbowl}}</strong>方案只允许获批准的用户编辑,但对公众开放页面浏览(包括历史记录)。<strong>{{int:config-profile-private}}</strong>则只允许获批准的用户浏览、编辑页面。\n\n安装完成后,您还可以对用户权限进行更多、更复杂的配置,参见[//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights 相关的使用手册]。",
+       "config-profile-help": "如果您允许尽量多的人编写wiki,网站上的内容会更加丰富。在MediaWiki中,您可以轻松地审查最近更改,并轻易回退掉新手或破坏者造成的损害。\n\n然而,许多人觉得让MediaWiki存在多种角色将更加好用;同时,要说服所有人都愿以wiki的方式作贡献并非一件易事。因此,您可以有以下选择:\n\n<strong>{{int:config-profile-wiki}}</strong>模式允许包括未登录用户在内的所有人编辑。<strong>{{int:config-profile-no-anon}}</strong>的wiki需要额外的注册流程,这有可能会阻碍随意贡献者。\n\n<strong>{{int:config-profile-fishbowl}}</strong>方案只允许获批准的用户编辑,但对公众开放页面浏览(包括历史记录)。<strong>{{int:config-profile-private}}</strong>则只允许获批准的用户浏览、编辑页面。\n\n安装完成后,您还可以对用户权限进行更多、更复杂的配置,参见[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights 相关的使用手册]。",
        "config-license": "版权和许可证:",
        "config-license-none": "页脚无许可证",
        "config-license-cc-by-sa": "知识共享“署名-相同方式共享”",
        "config-email-sender-help": "输入要用来发送出站电子邮件的地址,该地址将会收到被拒收的邮件。许多邮件服务器要求域名部分必须有效。",
        "config-upload-settings": "图像和文件上传",
        "config-upload-enable": "启用文件上传",
-       "config-upload-help": "文件上传可能会将您的服务器暴露在安全风险下。有关更多的信息,请参阅手册的[//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security 安全部分]。\n\n要启用文件上传,请先将MediaWiki根目录下的<code>images</code>子目录更改为对web服务器可写,然后再启用此选项。",
+       "config-upload-help": "文件上传可能会将您的服务器暴露在安全风险下。有关更多的信息,请参阅手册的[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security 安全部分]。\n\n要启用文件上传,请先将MediaWiki根目录下的<code>images</code>子目录更改为对web服务器可写,然后再启用此选项。",
        "config-upload-deleted": "已删除文件的目录:",
        "config-upload-deleted-help": "指定用于存放被删除文件的目录。理想情况下,该目录不应能通过web访问。",
        "config-logo": "标志URL:",
        "config-logo-help": "在MediaWiki的默认外观中,左侧栏菜单之上有一块135x160像素的标志区。请上传一幅相应大小的图像,并在此输入URL。\n\n您可以用<code>$wgStylePath</code>或<code>$wgScriptPath</code>来表示相对于这些位置的路径。\n\n如果您不希望使用标志,请将本处留空。",
        "config-instantcommons": "启用即时共享资源",
-       "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons 即时共享资源]可以让wiki使用来自[//commons.wikimedia.org/ 维基共享资源]网站的图像、音频和其他媒体文件。要启用该功能,MediaWiki必须能够访问互联网。\n\n有关此功能的详细信息,包括如何将其他wiki网站设为具有类似共享功能的方法,请参考[//www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos 手册]。",
+       "config-instantcommons-help": "[https://www.mediawiki.org/wiki/InstantCommons 即时共享资源]可以让wiki使用来自[https://commons.wikimedia.org/ 维基共享资源]网站的图像、音频和其他媒体文件。要启用该功能,MediaWiki必须能够访问互联网。\n\n有关此功能的详细信息,包括如何将其他wiki网站设为具有类似共享功能的方法,请参考[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos 手册]。",
        "config-cc-error": "知识共享许可证挑选器无法找到结果,请手动输入许可证的名称。",
        "config-cc-again": "重新挑选……",
        "config-cc-not-chosen": "选择您想要的知识共享许可协议并单击“proceed”。",
        "config-install-extensions": "正在包含扩展程序",
        "config-install-database": "正在配置数据库",
        "config-install-schema": "创建架构",
-       "config-install-pg-schema-not-exist": "PostgreSQL 架构不存在",
+       "config-install-pg-schema-not-exist": "PostgreSQL 架构不存在",
        "config-install-pg-schema-failed": "创建数据表失败。请确保用户“$1”拥有写入模式“$2”的权限。",
        "config-install-pg-commit": "正在提交更改",
        "config-install-pg-plpgsql": "正在检查PL/pgSQL语言",
        "config-install-extension-tables": "正在创建已启用扩展程序表",
        "config-install-mainpage-failed": "无法插入首页:$1",
        "config-install-done": "<strong>恭喜!</strong>\n您已经安装了MediaWiki。\n\n安装程序已经生成了<code>LocalSettings.php</code>文件,其中包含了您所有的配置。\n\n您需要下载该文件,并将其放在您wiki的根目录(index.php的同级目录)中。稍后下载将自动开始。\n\n如果浏览器没有提示您下载,或者您取消了下载,您可以点击下面的链接重新开始下载:\n\n$3\n\n<strong>注意:</strong>如果您现在不完成本步骤,而是没有下载便退出了安装过程,此后您将无法获得自动生成的配置文件。\n\n当本步骤完成后,您可以<strong>[$2 进入您的wiki]</strong>。",
+       "config-install-done-path": "<strong>祝贺!</strong>您已经安装了MediaWiki。\n\n安装程序已经生成了<code>LocalSettings.php</code>文件。它包含您所有的配置。\n\n您需要下载该文件,并将其放在<code>$4</code>。下载应已自动开始。\n\n如果没有提供下载,或者您取消了下载,您可以点击下面的链接重新开始下载:\n\n$3\n\n<strong>注意:</strong>如果您现在不完成本步骤,而是没有下载便退出了安装过程,此后您将无法获得自动生成的配置文件。\n\n当本步骤完成后,您可以<strong>[$2 进入您的wiki]</strong>。",
        "config-download-localsettings": "下载<code>LocalSettings.php</code>",
        "config-help": "帮助",
        "config-help-tooltip": "单击展开",
        "config-nofile": "找不到文件“$1”。它是否已被删除?",
-       "config-extension-link": "您是否知道您的wiki支持[//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions 扩展]?\n\n您可以浏览[//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category 扩展分类]或[//www.mediawiki.org/wiki/Extension_Matrix 扩展矩阵]以查看完整的扩展列表。",
+       "config-extension-link": "您是否知道您的wiki支持[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions 扩展]?\n\n您可以浏览[https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category 扩展分类]或[https://www.mediawiki.org/wiki/Extension_Matrix 扩展矩阵]以查看完整的扩展列表。",
        "mainpagetext": "<strong>已安装MediaWiki。</strong>",
-       "mainpagedocfooter": "请查阅[//meta.wikimedia.org/wiki/Help:Contents 用户指南]以获取使用本wiki软件的信息!\n\n== 入门 ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings MediaWiki配置设置列表]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/zh-hans MediaWiki常见问题]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki发布邮件列表]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources 本地化MediaWiki到您的语言]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam 了解如何在您的wiki上打击破坏]"
+       "mainpagedocfooter": "请查阅[https://meta.wikimedia.org/wiki/Help:Contents 用户指南]以获取使用本wiki软件的信息!\n\n== 入门 ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings MediaWiki配置设置列表]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/zh-hans MediaWiki常见问题]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki发布邮件列表]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources 本地化MediaWiki到您的语言]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam 了解如何在您的wiki上打击破坏]"
 }
index 4f96f4b..53d001e 100644 (file)
        "config-restart": "是的,重新開始",
        "config-welcome": "=== 環境檢查 ===\n現在會做基本的檢查,檢查環境是否符合 MediaWiki 安裝所需。\n若您要尋求如何完成安裝的協助,請記得提供以下訊息。",
        "config-copyright": "=== 版權聲明與授權條款 ===\n\n$1\n\n本程式為自由軟體;您可依據自由軟體基金會所發表的 GNU 通用公共授權條款規定,將本程式重新發佈與/或修改;無論您依據的是本授權條款的第二版或 (您可自行選擇) 之後的任何版本。\n\n本程式發佈的目的是希望可以提供幫助,但 <strong>不負任何擔保責任</strong>;亦無隱含對 <strong>適售性</strong> 或 <strong>特定用途的適用性</strong> 的情形擔保。詳情請參照 GNU 通用公共授權。\n\n您應已隨本程式收到 <doclink href=\"Copying\">GNU 通用公共授權條款的副本</doclink>;如果沒有,請信件通知自由軟體基金會,51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA,或 [http://www.gnu.org/copyleft/gpl.html 線上閱讀]。",
-       "config-sidebar": "* [//www.mediawiki.org/wiki/MediaWiki/zh-hant MediaWiki 首頁]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents/zh 使用者指南]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents/zh 管理員指南]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/zh 常見問題集]\n----\n* <doclink href=Readme>讀我說明</doclink>\n* <doclink href=ReleaseNotes>發行說明</doclink>\n* <doclink href=Copying>版權聲明</doclink>\n* <doclink href=UpgradeDoc>升級</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org/wiki/MediaWiki/zh-hant MediaWiki 首頁]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents/zh 使用者指南]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents/zh 管理員指南]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/zh 常見問題集]\n----\n* <doclink href=Readme>讀我說明</doclink>\n* <doclink href=ReleaseNotes>發行說明</doclink>\n* <doclink href=Copying>版權聲明</doclink>\n* <doclink href=UpgradeDoc>升級</doclink>",
        "config-env-good": "環境檢查已完成。\n您可以安裝 MediaWiki。",
        "config-env-bad": "環境檢查已完成。\n您無法安裝 MediaWiki。",
        "config-env-php": "PHP $1 已安裝。",
        "config-env-hhvm": "HHVM $1 已安裝。",
        "config-unicode-using-intl": "使用 [http://pecl.php.net/intl intl PECL 擴充套件] 做 Unicode 正規化。",
-       "config-unicode-pure-php-warning": "<strong>警告:</strong> 無法使用 [http://pecl.php.net/intl intl PECL 擴充套件] 處理 Unicode 正規化,故回退使用純 PHP 實作的正規化程式,此方式處理速度較緩慢。\n\n如果您的網站瀏覽人次很高,您應先閱讀 [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations/zh Unicode 正規化]。",
-       "config-unicode-update-warning": "<strong>警告</strong>:目前安裝的 Unicode 正規化包裝程式使用了舊版 [http://site.icu-project.org/ ICU 計劃] 的程式庫。\n若您需要使用 Unicode,您應先進行 [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations 升級]。",
+       "config-unicode-pure-php-warning": "<strong>警告:</strong> 無法使用 [http://pecl.php.net/intl intl PECL 擴充套件] 處理 Unicode 正規化,故回退使用純 PHP 實作的正規化程式,此方式處理速度較緩慢。\n\n如果您的網站瀏覽人次很高,您應先閱讀 [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations/zh Unicode 正規化]。",
+       "config-unicode-update-warning": "<strong>警告</strong>:目前安裝的 Unicode 正規化包裝程式使用了舊版 [http://site.icu-project.org/ ICU 計劃] 的程式庫。\n若您需要使用 Unicode,您應先進行 [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations 升級]。",
        "config-no-db": "找不到合適的資料庫驅動程式!您需要安裝 PHP 資料庫驅動程式。\n目前支援以下{{PLURAL:$2|類型|類型}}的資料庫: $1 。\n\n如果您是自行編譯 PHP,您必須重新設定並開啟資料庫客戶端,例:使用 <code>./configure --with-mysqli</code> 指令參數。\n如果您是使用 Debian 或 Ubuntu 的套件安裝 PHP ,您則需要額外安裝,例:<code>php5-mysql</code> 套件。",
        "config-outdated-sqlite": "<strong>警告:</strong>您已安裝 SQLite $1,但是它的版本低於最低需求版本 $2。 因此您無法使用 SQLite。",
        "config-no-fts3": "<strong>警告:</strong> SQLite 編譯時未包含 [//sqlite.org/fts3.html FTS3 模組],後台搜尋功能將無法使用。",
-       "config-mbstring": "<strong>嚴重:[http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] 選項被開啟!</strong>\n此選項會導致資料在無法預測的情況下損壞。\n您必須將開選項關閉方可繼續安裝 MediaWiki。",
-       "config-xml-bad": "PHP 缺少的 XML 模組。\nMediaWiki 需要使用此模組中所提供的函數,且在目前的設定下將無法繼續作業。\n您可能需要安裝 php-xml RPM 套件。",
        "config-pcre-old": "<strong>嚴重:</strong> 需要使用 PCRE $1 或更新的版本。\n您的 PHP 執行檔使用的是 PCRE $2。\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE 詳細資訊]。",
        "config-pcre-no-utf8": "<strong>嚴重:</strong> PHP 的 PCRE 模組在編譯時未包含 PCRE_UTF8 支援。\nMediaWiki 需要支援 UTF-8 才可正常運作。",
        "config-memory-raised": "PHP 的記憶體使用上限 <code>memory_limit</code> 目前為 $1,自動提高到 $2。",
        "config-memory-bad": "<strong>警告:</strong>PHP 的記憶體使用上限 <code>memory_limit</code> 為 $1。\n該設定值可能過低。\n這可能導致後續的安裝失敗!",
-       "config-ctype": "<strong>嚴重:</strong> PHP 編譯時必須包含 [http://www.php.net/manual/en/ctype.installation.php Ctype 擴充套件]。",
-       "config-iconv": "<strong>嚴重:</strong>PHP 編譯時必須包含 [http://www.php.net/manual/en/iconv.installation.php iconv 擴充套件]。",
-       "config-json": "<strong>嚴重:</strong> PHP 編譯時並未包含 JSON 擴充套件。\n在 MediaWiki 繼續安裝之前您必須先安裝 PHP JSON 擴充套件或 [http://pecl.php.net/package/jsonc PECL jsonc] 擴充套件。\n* 此 PHP 擴充套件在 Red Hat Enterprice Linux (CentOS) 5 版與 6 版以有內含,須於 <code>/etc/php.ini</code> 或 <code>/etc/php.d/json.ini</code> 設定檔將該項目開啟。\n* 部分於 2013 年 5 月以後發佈的 Linux 並沒有此 PHP 擴充套件,可透過安裝 PECL 擴充套件 <code>php5-json</code> 或 <code>php-pecl-jsonc</code> 替代。",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] 已安裝",
        "config-apc": "[http://www.php.net/apc APC] 已安裝",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] 已安裝",
@@ -90,7 +85,7 @@
        "config-no-cli-uri": "<strong>警告:</strong>:未指定 <code>--scriptpath</code> 指令參數,使用預設值:<code>$1</code>。",
        "config-using-server": "使用伺服器名稱 \"<nowiki>$1</nowiki>\"。",
        "config-using-uri": "使用伺服器 URL  \"<nowiki>$1$2</nowiki>\"。",
-       "config-uploads-not-safe": "<strong>警告:</strong>您預設的上傳目錄 <code>$1</code> 有可被任意執行 Script 的漏洞。\n雖然 MediaWiki 會對所有上傳的檔案進行安全檢查,但我們仍強烈建議您在開啟上傳功能前了解如何 [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security 關閉此安全漏洞]。",
+       "config-uploads-not-safe": "<strong>警告:</strong>您預設的上傳目錄 <code>$1</code> 有可被任意執行 Script 的漏洞。\n雖然 MediaWiki 會對所有上傳的檔案進行安全檢查,但我們仍強烈建議您在開啟上傳功能前了解如何 [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security 關閉此安全漏洞]。",
        "config-no-cli-uploads-check": "<strong>警告:</strong>透過指令介面安不會檢查您預設的上傳目錄 (<code>$1</code>) 是否有可任意執行 Script 的安全性漏洞。",
        "config-brokenlibxml": "您的系統使用了可能造成 MediaWiki 或其他網頁應用程式資料損毀問題的 PHP 與 limbxml2 版本。\n請升級 libxml2 2.7.3 或更新的版本 ([https://bugs.php.net/bug.php?id=45996 PHP 問題報告])。\n安裝已中止。",
        "config-suhosin-max-value-length": "Suhosin 已安裝並且限制 GET 參數的長度 <code>length</code> 為 $1 位元組。\nMediaWiki 的 ResourceLoader 元件可以在此限制下正常運作,但仍會降低執行的效能。\n如果可能的情況下,您應該設定 <code>php.ini</code> 設定檔中的項目  <code>suhosin.get.max_value_length</code> 為 1024 或者更高的數值,並且將\n<code>LocalSettings.php</code> 中的設定項目  <code>$wgResourceLoaderMaxQueryLength</code> 設為相同的數值。",
        "config-db-wiki-help": "請輸入一般操作用來連線資料庫的使用者名稱及密碼。\n若您安裝使用的資料庫帳號有足夠的權限,您可以輸入新的帳號,系統會自動幫您以最低權限建立一組專門做為 Wiki 一般操作的帳號。",
        "config-db-prefix": "資料庫資料表名稱的字首:",
        "config-db-prefix-help": "如果您需要讓多個 Wiki 共用同一個資料庫,或者與其他網頁應用程式共用一個資料庫,您也許會需要在所有資料表的名稱前面加上字首,可以避免資料表名稱的衝突。\n請勿使用空格。\n\n此欄位可不填。",
-       "config-db-charset": "資料庫字元集",
-       "config-charset-mysql5-binary": "MySQL 4.1/5.0 可用的二進制",
-       "config-charset-mysql5": "MySQL 4.1/5.0 可用的 UTF-8",
-       "config-charset-mysql4": "向下相容 MySQL 4.0 的 UTF-8",
-       "config-charset-help": "<strong>警告:</strong>如果您在 MySQL 4.1+ 使用了<strong>可向下相容的 UTF-8</strong>,並且透過 <code>mysqldump</code> 指令備份資料庫,可能會破壞所有非 ASCII 字元集的文字,這會導致不可還原的資料破壞!\n\n在 <strong>二進制模式</strong> 下,MediaWiki 將 UTF-8 的文字儲存在二進位型態的欄位。\n這個模式比 MySQL 的 UTF-8 模式還要更有效,並且可以讓您使用完整的 Unicode 字元集。\n在 <storng>UTF-8 模式</strong> 下,MySQL 可以知道您的資料使用何種編碼儲存,您可以正常的取得與轉換內容,但此個模式只支援到 Unicode 中的  [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes 基本多文種平面] 字元。",
        "config-mysql-old": "需要使用 MySQL $1 或更新的版本,您的版本為 $2。",
        "config-db-port": "資料庫埠號:",
        "config-db-schema": "MediaWiki 的 Schema:",
        "config-mysql-charset": "資料庫字元集:",
        "config-mysql-binary": "二進制",
        "config-mysql-utf8": "UTF-8",
-       "config-mysql-charset-help": "在 <strong>二進制模式</strong> 下,MediaWiki 將 UTF-8 的文字儲存在二進位型態的欄位。\n這個模式比 MySQL 的 UTF-8 模式還要更有效,並且可以讓您使用完整的 Unicode 字元集。\n\n在 <strong>UTF-8 模式</strong> 下,MySQL 可以知道您的資料使用何種編碼儲存,您可以正常的取得與轉換內容,但此個模式只支援到 Unicode 中的  [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes 基本多文種平面] 字元。",
+       "config-mysql-charset-help": "在 <strong>二進制模式</strong> 下,MediaWiki 將 UTF-8 的文字儲存在二進位型態的欄位。\n這個模式比 MySQL 的 UTF-8 模式還要更有效,並且可以讓您使用完整的 Unicode 字元集。\n\n在 <strong>UTF-8 模式</strong> 下,MySQL 可以知道您的資料使用何種編碼儲存,您可以正常的取得與轉換內容,但此個模式只支援到 Unicode 中的  [https://en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes 基本多文種平面] 字元。",
        "config-mssql-auth": "身份驗證類型:",
        "config-mssql-install-auth": "請選擇安裝程序中要用來連線資料庫使用的身份驗證類型。\n若您選擇 \"{{int:config-mssql-windowsauth}}\",不論網頁伺服器是使用何種身份執行都會使用這組驗證資料。",
        "config-mssql-web-auth": "請選擇一般操作中要用來連線資料庫使用的身份驗證類型。\n若您選擇 \"{{int:config-mssql-windowsauth}}\",不論網頁伺服器是使用何種身份執行都會使用這組驗證資料。",
        "config-profile-no-anon": "需要註冊帳號",
        "config-profile-fishbowl": "僅授權的編輯者",
        "config-profile-private": "私人 wiki",
-       "config-profile-help": "Wiki 最佳的運作方式是盡可能讓大家都可以編輯文件。\n在 MediaWiki,可以很輕易的審查最近做的所有變更動作,並且可以還原由新手或惡意使用者造成的損害。\n\n不論如何,很多人發現 MediaWiki 可以廣泛的運用在各種地方,但並不是很容易可以說服每個人都遵守對 Wiki 有益的方式。\n所以您必須做出以下選擇。\n\n使用 <strong>{{int:config-profile-wiki}}</strong> 模式,允許所有人編輯文章,包含未匿名使用者。\n使用 <strong>{{int:config-profile-no-anon}}</strong> 模式,允許所有人編輯文章,不包含未登入的使用者。此模式較能管理所有使用者的言論,但會扼殺臨時使用者的貢獻機會。\n\n使用 <strong>{{int:config-profile-fishbowl}}</strong> 模式,僅經核准的使用者可以編輯,所有人可以檢視頁面,包含修訂的記錄。\n使用 <strong>{{int:config-profile-private}}</strong> 模式,僅經核准的使用者可以編輯、檢視頁面。\n\n有關更多複雜的使用者權限設定可在安裝程序結束後設定,請參考 [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights 相關文件說明]。",
+       "config-profile-help": "Wiki 最佳的運作方式是盡可能讓大家都可以編輯文件。\n在 MediaWiki,可以很輕易的審查最近做的所有變更動作,並且可以還原由新手或惡意使用者造成的損害。\n\n不論如何,很多人發現 MediaWiki 可以廣泛的運用在各種地方,但並不是很容易可以說服每個人都遵守對 Wiki 有益的方式。\n所以您必須做出以下選擇。\n\n使用 <strong>{{int:config-profile-wiki}}</strong> 模式,允許所有人編輯文章,包含未匿名使用者。\n使用 <strong>{{int:config-profile-no-anon}}</strong> 模式,允許所有人編輯文章,不包含未登入的使用者。此模式較能管理所有使用者的言論,但會扼殺臨時使用者的貢獻機會。\n\n使用 <strong>{{int:config-profile-fishbowl}}</strong> 模式,僅經核准的使用者可以編輯,所有人可以檢視頁面,包含修訂的記錄。\n使用 <strong>{{int:config-profile-private}}</strong> 模式,僅經核准的使用者可以編輯、檢視頁面。\n\n有關更多複雜的使用者權限設定可在安裝程序結束後設定,請參考 [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights 相關文件說明]。",
        "config-license": "版權聲明與授權條款:",
        "config-license-none": "無授權條款頁腳",
        "config-license-cc-by-sa": "創作共用 姓名標示-相同方式分享",
        "config-email-sender-help": "請輸入要用來做為外寄郵件的電子郵件回覆地址。\n該郵件地址會收到被拒收的信件。\n許多郵件伺服器會要求使用有效的網域名稱。",
        "config-upload-settings": "圖片和檔案上傳",
        "config-upload-enable": "開啟檔案上傳",
-       "config-upload-help": "檔案上傳功能會讓您的伺服器暴露在潛藏的安全性風險之下。\n要取得更多相關的資訊,請參考 [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security 安全性章節]。\n\n要開啟檔案上傳需要將 MediaWiki 根目錄底下的 <code>images</code> 目錄開啟網頁伺服器的寫入權,\n然後再啟動選項。",
+       "config-upload-help": "檔案上傳功能會讓您的伺服器暴露在潛藏的安全性風險之下。\n要取得更多相關的資訊,請參考 [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security 安全性章節]。\n\n要開啟檔案上傳需要將 MediaWiki 根目錄底下的 <code>images</code> 目錄開啟網頁伺服器的寫入權,\n然後再啟動選項。",
        "config-upload-deleted": "已刪除檔案的目錄:",
        "config-upload-deleted-help": "請選擇用來存放已刪除檔案的目錄。\n理想情況下,此目錄不可被網頁直接存取。",
        "config-logo": "Logo 網址:",
        "config-logo-help": "在 MediaWiki 的預設介面,側欄選單上方有一塊 135x160 像素用來放置標誌的區域。\n請上傳合適大小的圖片並在此輸入 URL 網址。\n\n您可以透過 <code>$wgStylePath</code> 或者 <code>$wgScriptPath</code> 來表示您的圖片與這些路徑的相對位置。\n\n如果您不想使用標誌,可略過此欄位。",
        "config-instantcommons": "開啟即時共享資源",
-       "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons 即時共享資源] 是允許 Wiki 使用來自 [//commons.wikimedia.org/ Wikimedia Commons] 網站上的圖片、聲音以及其他媒體的一項功能。\n若要開啟此功能,您的 MediaWiki 必須能夠連線網際網路。\n更多有關此功能的訊息,包含如何存除了 Wikimedia Commons 之外其他網站的說明,請參考 \n[//www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos 操作手冊]。",
+       "config-instantcommons-help": "[https://www.mediawiki.org/wiki/InstantCommons 即時共享資源] 是允許 Wiki 使用來自 [https://commons.wikimedia.org/ Wikimedia Commons] 網站上的圖片、聲音以及其他媒體的一項功能。\n若要開啟此功能,您的 MediaWiki 必須能夠連線網際網路。\n更多有關此功能的訊息,包含如何存除了 Wikimedia Commons 之外其他網站的說明,請參考 \n[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos 操作手冊]。",
        "config-cc-error": "查無該創作共用授權條款,\n請手動輸入您的授權條款名稱。",
        "config-cc-again": "請重新選取...",
        "config-cc-not-chosen": "請選擇您要使用的創作共享授權條款,然後點選 \"proceed\"。",
        "config-help": "說明",
        "config-help-tooltip": "點選以展開",
        "config-nofile": "查無檔案 \"$1\",是否已被刪除?",
-       "config-extension-link": "您是否了解您的 Wiki 支援 [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions 擴充套件]?\n\n\n您可以瀏覽 [//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category 擴充套件分類] 或 [//www.mediawiki.org/wiki/Extension_Matrix 擴充套件資料表] 以取得相關的資訊。",
+       "config-extension-link": "您是否了解您的 Wiki 支援 [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions 擴充套件]?\n\n\n您可以瀏覽 [https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category 擴充套件分類] 或 [https://www.mediawiki.org/wiki/Extension_Matrix 擴充套件資料表] 以取得相關的資訊。",
        "mainpagetext": "<strong>已成功安裝 MediaWiki。</strong>",
-       "mainpagedocfooter": "請參閱 [//meta.wikimedia.org/wiki/Help:Contents 使用者手冊] 以取得使用 Wiki 的相關訊息!\n\n== 新手入門 ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings MediaWiki 系統設定]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki 常見問答集]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki 發佈郵寄清單]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources MediaWiki 介面在地化]"
+       "mainpagedocfooter": "請參閱 [https://meta.wikimedia.org/wiki/Help:Contents 使用者手冊] 以取得使用 Wiki 的相關訊息!\n\n== 新手入門 ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings MediaWiki 系統設定]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki 常見問答集]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki 發佈郵寄清單]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources MediaWiki 介面在地化]"
 }
index 36880f4..dfffd68 100644 (file)
@@ -4,5 +4,5 @@
             "Mark85296341"
         ]
     },
-    "mainpagedocfooter": "請參閱[//meta.wikimedia.org/wiki/Help:Contents 用戶手冊]以獲得使用此 wiki 軟件的訊息!\n\n== 入門 ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings MediaWiki 配置設定清單]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki 常見問題解答]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki 發佈郵件清單]"
+    "mainpagedocfooter": "請參閱[https://meta.wikimedia.org/wiki/Help:Contents 用戶手冊]以獲得使用此 wiki 軟件的訊息!\n\n== 入門 ==\n* [https://www.mediawiki.org/wiki/Manual:Configuration_settings MediaWiki 配置設定清單]\n* [https://www.mediawiki.org/wiki/Manual:FAQ MediaWiki 常見問題解答]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki 發佈郵件清單]"
 }
index 3926c3b..51a1f62 100644 (file)
@@ -1,4 +1,4 @@
 {
     "@metadata": [],
-    "mainpagedocfooter": "請參閱 [//meta.wikimedia.org/wiki/Help:Contents 使用者手冊] 以獲得使用此 wiki 軟體的訊息!\n\n== 入門 ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings MediaWiki 配置設定清單]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki 常見問題解答]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki 發佈郵件清單]"
+    "mainpagedocfooter": "請參閱 [https://meta.wikimedia.org/wiki/Help:Contents 使用者手冊] 以獲得使用此 wiki 軟體的訊息!\n\n== 入門 ==\n\n* [https://www.mediawiki.org/wiki/Manual:Configuration_settings MediaWiki 配置設定清單]\n* [https://www.mediawiki.org/wiki/Manual:FAQ MediaWiki 常見問題解答]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki 發佈郵件清單]"
 }
index e5357ce..ca5d534 100644 (file)
@@ -48,8 +48,10 @@ class DeleteLinksJob extends Job {
                        return false;
                }
 
+               $timestamp = isset( $this->params['timestamp'] ) ? $this->params['timestamp'] : null;
+
                $page = WikiPage::factory( $this->title ); // title when deleted
-               $update = new LinksDeletionUpdate( $page, $pageId );
+               $update = new LinksDeletionUpdate( $page, $pageId, $timestamp );
                DataUpdate::runUpdates( [ $update ] );
 
                return true;
index 617c32b..3cd3448 100644 (file)
@@ -167,7 +167,8 @@ class DoubleRedirectJob extends Job {
                $reason = wfMessage( 'double-redirect-fixed-' . $this->reason,
                        $this->redirTitle->getPrefixedText(), $newTitle->getPrefixedText()
                )->inContentLanguage()->text();
-               $article->doEditContent( $newContent, $reason, EDIT_UPDATE | EDIT_SUPPRESS_RC, false, $user );
+               $flags = EDIT_UPDATE | EDIT_SUPPRESS_RC | EDIT_INTERNAL;
+               $article->doEditContent( $newContent, $reason, $flags, false, $user );
                $wgUser = $oldUser;
 
                return true;
@@ -178,7 +179,8 @@ class DoubleRedirectJob extends Job {
         *
         * @param Title $title
         *
-        * @return bool If the specified title is not a redirect, or if it is a circular redirect
+        * @return Title|bool The final Title after following all redirects, or false if
+        *  the page is not a redirect or the redirect loops.
         */
        public static function getFinalDestination( $title ) {
                $dbw = wfGetDB( DB_MASTER );
index 7acbdf2..a14cdd7 100644 (file)
@@ -102,18 +102,15 @@ class HTMLCacheUpdateJob extends Job {
                        return;
                }
 
-               // The page_touched field will need to be bumped for these pages.
-               // Only bump it to the present time if no "rootJobTimestamp" was known.
-               // If it is known, it can be used instead, which avoids invalidating output
-               // that was in fact generated *after* the relevant dependency change time
-               // (e.g. template edit). This is particularily useful since refreshLinks jobs
-               // save back parser output and usually run along side htmlCacheUpdate jobs;
-               // their saved output would be invalidated by using the current timestamp.
-               if ( isset( $this->params['rootJobTimestamp'] ) ) {
-                       $touchTimestamp = $this->params['rootJobTimestamp'];
-               } else {
-                       $touchTimestamp = wfTimestampNow();
-               }
+               // Bump page_touched to the current timestamp. This used to use the root job timestamp
+               // (e.g. template/file edit time), which was a bit more efficient when template edits are
+               // rare and don't effect the same pages much. However, this way allows for better
+               // de-duplication, which is much more useful for wikis with high edit rates. Note that
+               // RefreshLinksJob, which is enqueued alongside HTMLCacheUpdateJob, saves the parser output
+               // since it has to parse anyway. We assume that vast majority of the cache jobs finish
+               // before the link jobs, so using the current timestamp instead of the root timestamp is
+               // not expected to invalidate these cache entries too often.
+               $touchTimestamp = wfTimestampNow();
 
                $dbw = wfGetDB( DB_MASTER );
                // Update page_touched (skipping pages already touched since the root job).
index 9711496..c76ea4f 100644 (file)
@@ -40,13 +40,13 @@ class RefreshLinksJob extends Job {
        const PARSE_THRESHOLD_SEC = 1.0;
        /** @var integer Lag safety margin when comparing root job times to last-refresh times */
        const CLOCK_FUDGE = 10;
+       /** @var integer How many seconds to wait for slaves to catch up */
+       const LAG_WAIT_TIMEOUT = 15;
 
        function __construct( Title $title, array $params ) {
                parent::__construct( 'refreshLinks', $title, $params );
                // Avoid the overhead of de-duplication when it would be pointless
                $this->removeDuplicates = (
-                       // Master positions won't match
-                       !isset( $params['masterPos'] ) &&
                        // Ranges rarely will line up
                        !isset( $params['range'] ) &&
                        // Multiple pages per job make matches unlikely
@@ -83,20 +83,22 @@ class RefreshLinksJob extends Job {
 
                // Job to update all (or a range of) backlink pages for a page
                if ( !empty( $this->params['recursive'] ) ) {
+                       // When the base job branches, wait for the slaves to catch up to the master.
+                       // From then on, we know that any template changes at the time the base job was
+                       // enqueued will be reflected in backlink page parses when the leaf jobs run.
+                       if ( !isset( $params['range'] ) ) {
+                               try {
+                                       wfGetLBFactory()->waitForReplication( [
+                                               'wiki'    => wfWikiID(),
+                                               'timeout' => self::LAG_WAIT_TIMEOUT
+                                       ] );
+                               } catch ( DBReplicationWaitError $e ) { // only try so hard
+                                       $stats = MediaWikiServices::getInstance()->getStatsdDataFactory();
+                                       $stats->increment( 'refreshlinks.lag_wait_failed' );
+                               }
+                       }
                        // Carry over information for de-duplication
                        $extraParams = $this->getRootJobParams();
-                       // Avoid slave lag when fetching templates.
-                       // When the outermost job is run, we know that the caller that enqueued it must have
-                       // committed the relevant changes to the DB by now. At that point, record the master
-                       // position and pass it along as the job recursively breaks into smaller range jobs.
-                       // Hopefully, when leaf jobs are popped, the slaves will have reached that position.
-                       if ( isset( $this->params['masterPos'] ) ) {
-                               $extraParams['masterPos'] = $this->params['masterPos'];
-                       } elseif ( wfGetLB()->getServerCount() > 1 ) {
-                               $extraParams['masterPos'] = wfGetLB()->getMasterPos();
-                       } else {
-                               $extraParams['masterPos'] = false;
-                       }
                        $extraParams['triggeredRecursive'] = true;
                        // Convert this into no more than $wgUpdateRowsPerJob RefreshLinks per-title
                        // jobs and possibly a recursive RefreshLinks job for the rest of the backlinks
@@ -109,35 +111,25 @@ class RefreshLinksJob extends Job {
                        JobQueueGroup::singleton()->push( $jobs );
                // Job to update link tables for a set of titles
                } elseif ( isset( $this->params['pages'] ) ) {
-                       $this->waitForMasterPosition();
                        foreach ( $this->params['pages'] as $pageId => $nsAndKey ) {
                                list( $ns, $dbKey ) = $nsAndKey;
                                $this->runForTitle( Title::makeTitleSafe( $ns, $dbKey ) );
                        }
                // Job to update link tables for a given title
                } else {
-                       $this->waitForMasterPosition();
                        $this->runForTitle( $this->title );
                }
 
                return true;
        }
 
-       protected function waitForMasterPosition() {
-               if ( !empty( $this->params['masterPos'] ) && wfGetLB()->getServerCount() > 1 ) {
-                       // Wait for the current/next slave DB handle to catch up to the master.
-                       // This way, we get the correct page_latest for templates or files that just
-                       // changed milliseconds ago, having triggered this job to begin with.
-                       wfGetLB()->waitFor( $this->params['masterPos'] );
-               }
-       }
-
        /**
         * @param Title $title
         * @return bool
         */
        protected function runForTitle( Title $title ) {
                $page = WikiPage::factory( $title );
+               $page->loadPageData( WikiPage::READ_LATEST );
                if ( !empty( $this->params['triggeringRevisionId'] ) ) {
                        // Fetch the specified revision; lockAndGetLatest() below detects if the page
                        // was edited since and aborts in order to avoid corrupting the link tables
@@ -156,7 +148,7 @@ class RefreshLinksJob extends Job {
                        $stats->increment( 'refreshlinks.rev_not_found' );
                        $this->setLastError( "Revision not found for {$title->getPrefixedDBkey()}" );
                        return false; // just deleted?
-               } elseif ( !$revision->isCurrent() ) {
+               } elseif ( !$revision->isCurrent() || $revision->getPage() != $page->getId() ) {
                        // If the revision isn't current, there's no point in doing a bunch
                        // of work just to fail at the lockAndGetLatest() check later.
                        $stats->increment( 'refreshlinks.rev_not_current' );
index 331f2d5..0371f24 100644 (file)
@@ -104,7 +104,7 @@ class MultiHttpClient {
         *   - reqTimeout     : post-connection timeout per request (seconds)
         * @return array Response array for request
         */
-       final public function run( array $req, array $opts = [] ) {
+       public function run( array $req, array $opts = [] ) {
                return $this->runMulti( [ $req ], $opts )[0]['response'];
        }
 
diff --git a/includes/libs/ReverseArrayIterator.php b/includes/libs/ReverseArrayIterator.php
new file mode 100644 (file)
index 0000000..37b68c3
--- /dev/null
@@ -0,0 +1,76 @@
+<?php
+/**
+ * Convenience class for iterating over an array in reverse order.
+ *
+ * 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
+ * @since 1.27
+ */
+
+/**
+ * Convenience class for iterating over an array in reverse order.
+ *
+ * @since 1.27
+ */
+class ReverseArrayIterator implements Iterator, Countable {
+       /** @var array $array */
+       protected $array;
+
+       /**
+        * Creates an iterator which will visit the keys in $array in
+        * reverse order.  If given an object, will visit the properties
+        * of the object in reverse order.  (Note that the default order
+        * for PHP arrays and objects is declaration/assignment order.)
+        *
+        * @param array|object $array
+        */
+       public function __construct( $array = [] ) {
+               if ( is_array( $array ) ) {
+                       $this->array = $array;
+               } elseif ( is_object( $array ) ) {
+                       $this->array = get_object_vars( $array );
+               } else {
+                       throw new InvalidArgumentException( __METHOD__ . ' requires an array or object' );
+               }
+
+               $this->rewind();
+       }
+
+        public function current() {
+               return current( $this->array );
+        }
+
+        public function key() {
+               return key( $this->array );
+        }
+
+        public function next() {
+               prev( $this->array );
+        }
+
+        public function rewind() {
+               end( $this->array );
+        }
+
+        public function valid() {
+               return key( $this->array ) !== null;
+        }
+
+        public function count() {
+               return count( $this->array );
+        }
+}
index dd22d91..1a2711a 100644 (file)
@@ -267,11 +267,7 @@ abstract class BagOStuff implements IExpiringStore, LoggerAwareInterface {
         * @return bool Success
         * @throws InvalidArgumentException
         */
-       public function merge( $key, $callback, $exptime = 0, $attempts = 10, $flags = 0 ) {
-               if ( !is_callable( $callback ) ) {
-                       throw new InvalidArgumentException( "Got invalid callback." );
-               }
-
+       public function merge( $key, callable $callback, $exptime = 0, $attempts = 10, $flags = 0 ) {
                return $this->mergeViaLock( $key, $callback, $exptime, $attempts, $flags );
        }
 
index 4321b25..408212a 100644 (file)
@@ -39,7 +39,7 @@ class EmptyBagOStuff extends BagOStuff {
                return true;
        }
 
-       public function merge( $key, $callback, $exptime = 0, $attempts = 10, $flags = 0 ) {
+       public function merge( $key, callable $callback, $exptime = 0, $attempts = 10, $flags = 0 ) {
                return true; // faster
        }
 }
index 7a36214..ba8c736 100644 (file)
@@ -75,11 +75,7 @@ class MemcachedBagOStuff extends BagOStuff {
                        $this->fixExpiry( $exptime ) );
        }
 
-       public function merge( $key, $callback, $exptime = 0, $attempts = 10, $flags = 0 ) {
-               if ( !is_callable( $callback ) ) {
-                       throw new Exception( "Got invalid callback." );
-               }
-
+       public function merge( $key, callable $callback, $exptime = 0, $attempts = 10, $flags = 0 ) {
                return $this->mergeViaCas( $key, $callback, $exptime, $attempts );
        }
 
diff --git a/includes/libs/objectcache/RESTBagOStuff.php b/includes/libs/objectcache/RESTBagOStuff.php
new file mode 100644 (file)
index 0000000..1bbfc56
--- /dev/null
@@ -0,0 +1,127 @@
+<?php
+
+/**
+ * Interface to key-value storage on HTTP RESTful server, such as RESTBase.
+ * Uses URL of the form URL/{KEY} to store/fetch/delete.
+ * E.g., when base URL is /v1/sessions/ then the store would do:
+ * PUT /v1/sessions/12345758
+ * and fetch would do:
+ * GET /v1/sessions/12345758
+ * delete would do:
+ * DELETE /v1/sessions/12345758
+ *
+ * Configure with:
+ * @code
+ * $wgObjectCaches['sessions'] = array(
+ *     'class' => 'RESTBagOStuff',
+ *     'url' => 'http://localhost:7231/wikimedia.org/v1/sessions/'
+ * );
+ * @endcode
+ */
+class RESTBagOStuff extends BagOStuff {
+
+       /**
+        * @var MultiHttpClient
+        */
+       private $client;
+
+       /**
+        * REST URL to use for storage.
+        * @var string
+        */
+       private $url;
+
+       public function __construct( $params ) {
+               if ( empty( $params['url'] ) ) {
+                       throw new InvalidArgumentException( 'URL parameter is required' );
+               }
+               parent::__construct( $params );
+               if ( empty( $params['client'] ) ) {
+                       $this->client = new MultiHttpClient( [] );
+               } else {
+                       $this->client = $params['client'];
+               }
+               // Make sure URL ends with /
+               $this->url = rtrim( $params['url'], '/' ) . '/';
+       }
+
+       /**
+        * @param string  $key
+        * @param integer $flags Bitfield of BagOStuff::READ_* constants [optional]
+        * @return mixed Returns false on failure and if the item does not exist
+        */
+       protected function doGet( $key, $flags = 0 ) {
+               $req = [
+                       'method' => 'GET',
+                   'url' => $this->url . rawurlencode( $key ),
+
+               ];
+               list( $rcode, $rdesc, $rhdrs, $rbody, $rerr ) = $this->client->run( $req );
+               if ( $rcode === 200 ) {
+                       if ( is_string( $rbody ) ) {
+                               return unserialize( $rbody );
+                       }
+                       return false;
+               }
+               if ( $rcode === 0 || ( $rcode >= 400 && $rcode != 404 ) ) {
+                       return $this->handleError( "Failed to fetch $key", $rcode, $rerr );
+               }
+               return false;
+       }
+
+       /**
+        * Handle storage error
+        * @param string $msg Error message
+        * @param int    $rcode Error code from client
+        * @param string $rerr Error message from client
+        * @return false
+        */
+       protected function handleError( $msg, $rcode, $rerr ) {
+               $this->logger->error( "$msg : ({code}) {error}", [
+                       'code' => $rcode,
+                       'error' => $rerr
+               ] );
+               $this->setLastError( $rcode === 0 ? self::ERR_UNREACHABLE : self::ERR_UNEXPECTED );
+               return false;
+       }
+
+       /**
+        * Set an item
+        *
+        * @param string $key
+        * @param mixed  $value
+        * @param int    $exptime Either an interval in seconds or a unix timestamp for expiry
+        * @param int    $flags Bitfield of BagOStuff::WRITE_* constants
+        * @return bool Success
+        */
+       public function set( $key, $value, $exptime = 0, $flags = 0 ) {
+               $req = [
+                       'method' => 'PUT',
+                       'url' => $this->url . rawurlencode( $key ),
+                       'body' => serialize( $value )
+               ];
+               list( $rcode, $rdesc, $rhdrs, $rbody, $rerr ) = $this->client->run( $req );
+               if ( $rcode === 200 || $rcode === 201 ) {
+                       return true;
+               }
+               return $this->handleError( "Failed to store $key", $rcode, $rerr );
+       }
+
+       /**
+        * Delete an item.
+        *
+        * @param string $key
+        * @return bool True if the item was deleted or not found, false on failure
+        */
+       public function delete( $key ) {
+               $req = [
+                       'method' => 'DELETE',
+                       'url' => $this->url . rawurlencode( $key ),
+               ];
+               list( $rcode, $rdesc, $rhdrs, $rbody, $rerr ) = $this->client->run( $req );
+               if ( $rcode === 200 || $rcode === 204 || $rcode === 205 ) {
+                       return true;
+               }
+               return $this->handleError( "Failed to delete $key", $rcode, $rerr );
+       }
+}
index 40ac1bb..5f2c509 100644 (file)
@@ -112,7 +112,7 @@ class ReplicatedBagOStuff extends BagOStuff {
                return $this->writeStore->unlock( $key );
        }
 
-       public function merge( $key, $callback, $exptime = 0, $attempts = 10, $flags = 0 ) {
+       public function merge( $key, callable $callback, $exptime = 0, $attempts = 10, $flags = 0 ) {
                return $this->writeStore->merge( $key, $callback, $exptime, $attempts, $flags );
        }
 
index 470a38c..ab702d5 100644 (file)
@@ -58,7 +58,7 @@ use Psr\Log\NullLogger;
  * to avoid collisions with keys that are not wrapped as metadata arrays. The
  * prefixes are as follows:
  *   - a) "WANCache:v" : used for regular value keys
- *   - b) "WANCache:s" : used for temporarily storing values of tombstoned keys
+ *   - b) "WANCache:i" : used for temporarily storing values of tombstoned keys
  *   - c) "WANCache:t" : used for storing timestamp "check" keys
  *
  * @ingroup Cache
@@ -127,11 +127,14 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
        const ERR_RELAY = 4; // relay broadcast failed
 
        const VALUE_KEY_PREFIX = 'WANCache:v:';
-       const STASH_KEY_PREFIX = 'WANCache:s:';
+       const INTERIM_KEY_PREFIX = 'WANCache:i:';
        const TIME_KEY_PREFIX = 'WANCache:t:';
 
        const PURGE_VAL_PREFIX = 'PURGED:';
 
+       const VFLD_DATA = 'WOC:d'; // key to the value of versioned data
+       const VFLD_VERSION = 'WOC:v'; // key to the version of the value present
+
        const MAX_PC_KEYS = 1000; // max keys to keep in process cache
 
        const DEFAULT_PURGE_CHANNEL = 'wancache-purge';
@@ -207,14 +210,17 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
         * That method has cache slam avoiding features for hot/expensive keys.
         *
         * @param string $key Cache key
-        * @param mixed $curTTL Approximate TTL left on the key if present [returned]
+        * @param mixed $curTTL Approximate TTL left on the key if present/tombstoned [returned]
         * @param array $checkKeys List of "check" keys
+        * @param float &$asOf UNIX timestamp of cached value; null on failure [returned]
         * @return mixed Value of cache key or false on failure
         */
-       final public function get( $key, &$curTTL = null, array $checkKeys = [] ) {
+       final public function get( $key, &$curTTL = null, array $checkKeys = [], &$asOf = null ) {
                $curTTLs = [];
-               $values = $this->getMulti( [ $key ], $curTTLs, $checkKeys );
+               $asOfs = [];
+               $values = $this->getMulti( [ $key ], $curTTLs, $checkKeys, $asOfs );
                $curTTL = isset( $curTTLs[$key] ) ? $curTTLs[$key] : null;
+               $asOf = isset( $asOfs[$key] ) ? $asOfs[$key] : null;
 
                return isset( $values[$key] ) ? $values[$key] : false;
        }
@@ -228,13 +234,15 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
         * @param array $curTTLs Map of (key => approximate TTL left) for existing keys [returned]
         * @param array $checkKeys List of check keys to apply to all $keys. May also apply "check"
         *  keys to specific cache keys only by using cache keys as keys in the $checkKeys array.
+        * @param float[] &$asOfs Map of (key =>  UNIX timestamp of cached value; null on failure)
         * @return array Map of (key => value) for keys that exist
         */
        final public function getMulti(
-               array $keys, &$curTTLs = [], array $checkKeys = []
+               array $keys, &$curTTLs = [], array $checkKeys = [], array &$asOfs = []
        ) {
                $result = [];
                $curTTLs = [];
+               $asOfs = [];
 
                $vPrefixLen = strlen( self::VALUE_KEY_PREFIX );
                $valueKeys = self::prefixCacheKeys( $keys, self::VALUE_KEY_PREFIX );
@@ -297,6 +305,7 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
                                }
                        }
                        $curTTLs[$key] = $curTTL;
+                       $asOfs[$key] = ( $value !== false ) ? $wrappedValues[$vKey][self::FLD_TIME] : null;
                }
 
                return $result;
@@ -761,13 +770,18 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
         *      higher this is set, the higher the worst-case staleness can be.
         *      Use WANObjectCache::TSE_NONE to disable this logic.
         *      Default: WANObjectCache::TSE_NONE.
-        *   - pcTTL : process cache the value in this PHP instance with this TTL. This avoids
+        *   - pcTTL: Process cache the value in this PHP instance with this TTL. This avoids
         *      network I/O when a key is read several times. This will not cache if the callback
         *      returns false however. Note that any purges will not be seen while process cached;
         *      since the callback should use slave DBs and they may be lagged or have snapshot
         *      isolation anyway, this should not typically matter.
         *      Default: WANObjectCache::TTL_UNCACHEABLE.
-        * @return mixed Value to use for the key
+        *   - version: Integer version number. This allows for callers to make breaking changes to
+        *      how values are stored while maintaining compatability and correct cache purges. New
+        *      versions are stored alongside older versions concurrently. Avoid storing class objects
+        *      however, as this reduces compatibility (due to serialization).
+        *      Default: null.
+        * @return mixed Value found or written to the key
         */
        final public function getWithSetCallback( $key, $ttl, $callback, array $opts = [] ) {
                $pcTTL = isset( $opts['pcTTL'] ) ? $opts['pcTTL'] : self::TTL_UNCACHEABLE;
@@ -776,8 +790,51 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
                $value = ( $pcTTL >= 0 ) ? $this->procCache->get( $key ) : false;
 
                if ( $value === false ) {
+                       unset( $opts['minTime'] ); // not a public feature
+
                        // Fetch the value over the network
-                       $value = $this->doGetWithSetCallback( $key, $ttl, $callback, $opts );
+                       if ( isset( $opts['version'] ) ) {
+                               $version = $opts['version'];
+                               $asOf = null;
+                               $cur = $this->doGetWithSetCallback(
+                                       $key,
+                                       $ttl,
+                                       function ( $oldValue, &$ttl, &$setOpts ) use ( $callback, $version ) {
+                                               if ( is_array( $oldValue )
+                                                       && array_key_exists( self::VFLD_DATA, $oldValue )
+                                               ) {
+                                                       $oldData = $oldValue[self::VFLD_DATA];
+                                               } else {
+                                                       // VFLD_DATA is not set if an old, unversioned, key is present
+                                                       $oldData = false;
+                                               }
+
+                                               return [
+                                                       self::VFLD_DATA => $callback( $oldData, $ttl, $setOpts ),
+                                                       self::VFLD_VERSION => $version
+                                               ];
+                                       },
+                                       $opts,
+                                       $asOf
+                               );
+                               if ( $cur[self::VFLD_VERSION] === $version ) {
+                                       // Value created or existed before with version; use it
+                                       $value = $cur[self::VFLD_DATA];
+                               } else {
+                                       // Value existed before with a different version; use variant key.
+                                       // Reflect purges to $key by requiring that this key value be newer.
+                                       $value = $this->doGetWithSetCallback(
+                                               'cache-variant:' . md5( $key ) . ":$version",
+                                               $ttl,
+                                               $callback,
+                                               // Regenerate value if not newer than $key
+                                               [ 'version' => null, 'minTime' => $asOf ] + $opts
+                                       );
+                               }
+                       } else {
+                               $value = $this->doGetWithSetCallback( $key, $ttl, $callback, $opts );
+                       }
+
                        // Update the process cache if enabled
                        if ( $pcTTL >= 0 && $value !== false ) {
                                $this->procCache->set( $key, $value, $pcTTL );
@@ -795,21 +852,29 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
         * @param string $key
         * @param integer $ttl
         * @param callback $callback
-        * @param array $opts
+        * @param array $opts Options map for getWithSetCallback() which also includes:
+        *   - minTime: Treat values older than this UNIX timestamp as not existing. Default: null.
+        * @param float &$asOf Cache generation timestamp of returned value [returned]
         * @return mixed
         */
-       protected function doGetWithSetCallback( $key, $ttl, $callback, array $opts ) {
+       protected function doGetWithSetCallback( $key, $ttl, $callback, array $opts, &$asOf = null ) {
                $lowTTL = isset( $opts['lowTTL'] ) ? $opts['lowTTL'] : min( self::LOW_TTL, $ttl );
                $lockTSE = isset( $opts['lockTSE'] ) ? $opts['lockTSE'] : self::TSE_NONE;
                $checkKeys = isset( $opts['checkKeys'] ) ? $opts['checkKeys'] : [];
+               $minTime = isset( $opts['minTime'] ) ? $opts['minTime'] : 0.0;
+               $versioned = isset( $opts['version'] );
 
                // Get the current key value
                $curTTL = null;
-               $cValue = $this->get( $key, $curTTL, $checkKeys ); // current value
+               $cValue = $this->get( $key, $curTTL, $checkKeys, $asOf ); // current value
                $value = $cValue; // return value
 
                // Determine if a regeneration is desired
-               if ( $value !== false && $curTTL > 0 && !$this->worthRefresh( $curTTL, $lowTTL ) ) {
+               if ( $value !== false
+                       && $curTTL > 0
+                       && $this->isValid( $value, $versioned, $asOf, $minTime )
+                       && !$this->worthRefresh( $curTTL, $lowTTL )
+               ) {
                        return $value;
                }
 
@@ -829,15 +894,18 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
                        if ( $this->cache->lock( $key, 0, self::LOCK_TTL ) ) {
                                // Lock acquired; this thread should update the key
                                $lockAcquired = true;
-                       } elseif ( $value !== false ) {
+                       } elseif ( $value !== false && $this->isValid( $value, $versioned, $asOf, $minTime ) ) {
                                // If it cannot be acquired; then the stale value can be used
                                return $value;
                        } else {
-                               // Use the stash value for tombstoned keys to reduce regeneration load.
+                               // Use the INTERIM value for tombstoned keys to reduce regeneration load.
                                // For hot keys, either another thread has the lock or the lock failed;
-                               // use the stash value from the last thread that regenerated it.
-                               $value = $this->cache->get( self::STASH_KEY_PREFIX . $key );
-                               if ( $value !== false ) {
+                               // use the INTERIM value from the last thread that regenerated it.
+                               $wrapped = $this->cache->get( self::INTERIM_KEY_PREFIX . $key );
+                               list( $value ) = $this->unwrap( $wrapped, microtime( true ) );
+                               if ( $value !== false && $this->isValid( $value, $versioned, $asOf, $minTime ) ) {
+                                       $asOf = $wrapped[self::FLD_TIME];
+
                                        return $value;
                                }
                        }
@@ -850,11 +918,13 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
                // Generate the new value from the callback...
                $setOpts = [];
                $value = call_user_func_array( $callback, [ $cValue, &$ttl, &$setOpts ] );
+               $asOf = microtime( true );
                // When delete() is called, writes are write-holed by the tombstone,
-               // so use a special stash key to pass the new value around threads.
+               // so use a special INTERIM key to pass the new value around threads.
                if ( $useMutex && $value !== false && $ttl >= 0 ) {
                        $tempTTL = max( 1, (int)$lockTSE ); // set() expects seconds
-                       $this->cache->set( self::STASH_KEY_PREFIX . $key, $value, $tempTTL );
+                       $wrapped = $this->wrap( $value, $tempTTL, $asOf );
+                       $this->cache->set( self::INTERIM_KEY_PREFIX . $key, $wrapped, $tempTTL );
                }
 
                if ( $lockAcquired ) {
@@ -1005,6 +1075,25 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
                return mt_rand( 1, 1e9 ) <= 1e9 * $chance;
        }
 
+       /**
+        * Check whether $value is appropriately versioned and not older than $minTime (if set)
+        *
+        * @param array $value
+        * @param bool $versioned
+        * @param float $asOf The time $value was generated
+        * @param float $minTime The last time the main value was generated (0.0 if unknown)
+        * @return bool
+        */
+       protected function isValid( $value, $versioned, $asOf, $minTime ) {
+               if ( $versioned && !isset( $value[self::VFLD_VERSION] ) ) {
+                       return false;
+               } elseif ( $minTime > 0 && $asOf < $minTime ) {
+                       return false;
+               }
+
+               return true;
+       }
+
        /**
         * Do not use this method outside WANObjectCache
         *
index 3d72abe..19cc66a 100644 (file)
@@ -64,11 +64,7 @@ class WinCacheBagOStuff extends BagOStuff {
                return true;
        }
 
-       public function merge( $key, $callback, $exptime = 0, $attempts = 10, $flags = 0 ) {
-               if ( !is_callable( $callback ) ) {
-                       throw new Exception( "Got invalid callback." );
-               }
-
+       public function merge( $key, callable $callback, $exptime = 0, $attempts = 10, $flags = 0 ) {
                return $this->mergeViaCas( $key, $callback, $exptime, $attempts );
        }
 }
index 012d53c..c205626 100644 (file)
@@ -54,12 +54,14 @@ class DeleteLogFormatter extends LogFormatter {
                        // 'filearchive' for file versions, or a comma-separated list of log_ids for log
                        // entries. $subtype here is 'revision' for page revisions and file
                        // versions, or 'event' for log entries.
-                       if ( ( $subtype === 'event' && count( $params ) === 6 )
-                               || ( $subtype === 'revision' && isset( $params[3] )
-                                       && ( $params[3] === 'revision' || $params[3] === 'oldimage'
-                                               || $params[3] === 'archive' || $params[3] === 'filearchive' )
+                       if (
+                               ( $subtype === 'event' && count( $params ) === 6 )
+                               || (
+                                       $subtype === 'revision' && isset( $params[3] )
+                                       && in_array( $params[3], [ 'revision', 'archive', 'oldimage', 'filearchive' ] )
                                )
                        ) {
+                               // See RevDelList::getLogParams()/RevDelLogList::getLogParams()
                                $paramStart = $subtype === 'revision' ? 4 : 3;
 
                                $old = $this->parseBitField( $params[$paramStart + 1] );
@@ -70,7 +72,8 @@ class DeleteLogFormatter extends LogFormatter {
                                foreach ( $hid as $v ) {
                                        $changes[] = $this->msg( "$v-hid" )->plain();
                                }
-                               // messages used: revdelete-content-unhid, revdelete-summary-unhid, revdelete-uname-unhid
+                               // messages used: revdelete-content-unhid, revdelete-summary-unhid,
+                               // revdelete-uname-unhid
                                foreach ( $unhid as $v ) {
                                        $changes[] = $this->msg( "$v-unhid" )->plain();
                                }
index f392bd1..78b0296 100644 (file)
@@ -418,12 +418,12 @@ class FormatMetadata extends ContextSource {
 
                                        case 'Flash':
                                                $flashDecode = [
-                                                       'fired' => $val & bindec( '00000001' ),
-                                                       'return' => ( $val & bindec( '00000110' ) ) >> 1,
-                                                       'mode' => ( $val & bindec( '00011000' ) ) >> 3,
-                                                       'function' => ( $val & bindec( '00100000' ) ) >> 5,
-                                                       'redeye' => ( $val & bindec( '01000000' ) ) >> 6,
-//                                             'reserved' => ($val & bindec( '10000000' )) >> 7,
+                                                       'fired' => $val & 0b00000001,
+                                                       'return' => ( $val & 0b00000110 ) >> 1,
+                                                       'mode' => ( $val & 0b00011000 ) >> 3,
+                                                       'function' => ( $val & 0b00100000 ) >> 5,
+                                                       'redeye' => ( $val & 0b01000000 ) >> 6,
+                                                       // 'reserved' => ( $val & 0b10000000 ) >> 7,
                                                ];
                                                $flashMsgs = [];
                                                # We do not need to handle unknown values since all are used.
index a1394c1..98b6eb9 100644 (file)
@@ -459,11 +459,7 @@ class SqlBagOStuff extends BagOStuff {
                return $newValue;
        }
 
-       public function merge( $key, $callback, $exptime = 0, $attempts = 10, $flags = 0 ) {
-               if ( !is_callable( $callback ) ) {
-                       throw new Exception( "Got invalid callback." );
-               }
-
+       public function merge( $key, callable $callback, $exptime = 0, $attempts = 10, $flags = 0 ) {
                $ok = $this->mergeViaCas( $key, $callback, $exptime, $attempts );
                if ( ( $flags & self::WRITE_SYNC ) == self::WRITE_SYNC ) {
                        $ok = $ok && $this->waitForSlaves();
index eccf36f..2a6f88c 100644 (file)
@@ -467,7 +467,7 @@ class Article implements Page {
         * page of the given title.
         */
        public function view() {
-               global $wgUseFileCache, $wgUseETag, $wgDebugToolbar, $wgMaxRedirects;
+               global $wgUseFileCache, $wgDebugToolbar, $wgMaxRedirects;
 
                # Get variables from query string
                # As side effect this will load the revision and update the title
@@ -520,10 +520,6 @@ class Article implements Page {
 
                # Try client and file cache
                if ( !$wgDebugToolbar && $oldid === 0 && $this->mPage->checkTouched() ) {
-                       if ( $wgUseETag ) {
-                               $outputPage->setETag( $parserCache->getETag( $this->mPage, $parserOptions ) );
-                       }
-
                        # Use the greatest of the page's timestamp or the timestamp of any
                        # redirect in the chain (bug 67849)
                        $timestamp = $this->mPage->getTouched();
@@ -2601,8 +2597,8 @@ class Article implements Page {
         * Call to WikiPage function for backwards compatibility.
         * @see WikiPage::updateCategoryCounts
         */
-       public function updateCategoryCounts( array $added, array $deleted ) {
-               return $this->mPage->updateCategoryCounts( $added, $deleted );
+       public function updateCategoryCounts( array $added, array $deleted, $id = 0 ) {
+               return $this->mPage->updateCategoryCounts( $added, $deleted, $id );
        }
 
        /**
index 106911c..1396685 100644 (file)
@@ -222,11 +222,12 @@ class ImagePage extends Article {
                                $out->addStyle( $css );
                        }
                }
-               // always show the local local Filepage.css, bug 29277
-               $out->addModuleStyles( 'filepage' );
 
-               // Add MediaWiki styles for a file page
-               $out->addModuleStyles( 'mediawiki.action.view.filepage' );
+               $out->addModuleStyles( [
+                       'filepage', // always show the local local Filepage.css, bug 29277
+                       'mediawiki.action.view.filepage', // Add MediaWiki styles for a file page
+               ] );
+
        }
 
        /**
index cf533d6..b06b519 100644 (file)
@@ -20,6 +20,8 @@
  * @file
  */
 
+use \MediaWiki\Logger\LoggerFactory;
+
 /**
  * Class representing a MediaWiki article and history.
  *
@@ -1480,6 +1482,8 @@ class WikiPage implements Page, IDBAccessObject {
         *          Mark the edit a "bot" edit regardless of user rights
         *      EDIT_AUTOSUMMARY
         *          Fill in blank summaries with generated text where possible
+        *      EDIT_INTERNAL
+        *          Signal that the page retrieve/save cycle happened entirely in this request.
         *
         * If neither EDIT_NEW nor EDIT_UPDATE is specified, the status of the
         * article will be detected. If EDIT_UPDATE is specified and the article
@@ -1540,6 +1544,8 @@ class WikiPage implements Page, IDBAccessObject {
         *          Mark the edit a "bot" edit regardless of user rights
         *      EDIT_AUTOSUMMARY
         *          Fill in blank summaries with generated text where possible
+        *      EDIT_INTERNAL
+        *          Signal that the page retrieve/save cycle happened entirely in this request.
         *
         * If neither EDIT_NEW nor EDIT_UPDATE is specified, the status of the
         * article will be detected. If EDIT_UPDATE is specified and the article
@@ -1627,8 +1633,15 @@ class WikiPage implements Page, IDBAccessObject {
                        $summary = $handler->getAutosummary( $old_content, $content, $flags );
                }
 
+               // Avoid statsd noise and wasted cycles check the edit stash (T136678)
+               if ( ( $flags & EDIT_INTERNAL ) || ( $flags & EDIT_FORCE_BOT ) ) {
+                       $useCache = false;
+               } else {
+                       $useCache = true;
+               }
+
                // Get the pre-save transform content and final parser output
-               $editInfo = $this->prepareContentForEdit( $content, null, $user, $serialFormat );
+               $editInfo = $this->prepareContentForEdit( $content, null, $user, $serialFormat, $useCache );
                $pstContent = $editInfo->pstContent; // Content object
                $meta = [
                        'bot' => ( $flags & EDIT_FORCE_BOT ),
@@ -1783,8 +1796,12 @@ class WikiPage implements Page, IDBAccessObject {
                        $this->mTimestamp = $now;
                } else {
                        // Bug 32948: revision ID must be set to page {{REVISIONID}} and
-                       // related variables correctly
+                       // related variables correctly. Likewise for {{REVISIONUSER}} (T135261).
                        $revision->setId( $this->getLatest() );
+                       $revision->setUserIdAndName(
+                               $this->getUser( Revision::RAW ),
+                               $this->getUserText( Revision::RAW )
+                       );
                }
 
                if ( $changed ) {
@@ -2060,7 +2077,7 @@ class WikiPage implements Page, IDBAccessObject {
                } else {
                        $edit->timestamp = wfTimestampNow();
                }
-               // @note: $cachedEdit is not used if the rev ID was referenced in the text
+               // @note: $cachedEdit is safely not used if the rev ID was referenced in the text
                $edit->revid = $revid;
 
                if ( $cachedEdit ) {
@@ -2091,6 +2108,16 @@ class WikiPage implements Page, IDBAccessObject {
                                                }
                                        }
                                );
+                       } else {
+                               // Try to avoid a second parse if {{REVISIONID}} is used
+                               $edit->popts->setSpeculativeRevIdCallback( function () {
+                                       return 1 + (int)wfGetDB( DB_MASTER )->selectField(
+                                               'revision',
+                                               'MAX(rev_id)',
+                                               [],
+                                               __METHOD__
+                                       );
+                               } );
                        }
                        $edit->output = $edit->pstContent
                                ? $edit->pstContent->getParserOutput( $this->mTitle, $revid, $edit->popts )
@@ -2153,17 +2180,32 @@ class WikiPage implements Page, IDBAccessObject {
                ];
                $content = $revision->getContent();
 
-               // Parse the text
-               // Be careful not to do pre-save transform twice: $text is usually
-               // already pre-save transformed once.
-               if ( !$this->mPreparedEdit || $this->mPreparedEdit->output->getFlag( 'vary-revision' ) ) {
-                       wfDebug( __METHOD__ . ": No prepared edit or vary-revision is set...\n" );
-                       $editInfo = $this->prepareContentForEdit( $content, $revision, $user );
+               $logger = LoggerFactory::getInstance( 'SaveParse' );
+
+               // See if the parser output before $revision was inserted is still valid
+               $editInfo = false;
+               if ( !$this->mPreparedEdit ) {
+                       $logger->debug( __METHOD__ . ": No prepared edit...\n" );
+               } elseif ( $this->mPreparedEdit->output->getFlag( 'vary-revision' ) ) {
+                       $logger->info( __METHOD__ . ": Prepared edit has vary-revision...\n" );
+               } elseif ( $this->mPreparedEdit->output->getFlag( 'vary-revision-id' )
+                       && $this->mPreparedEdit->output->getSpeculativeRevIdUsed() !== $revision->getId()
+               ) {
+                       $logger->info( __METHOD__ . ": Prepared edit has vary-revision-id with wrong ID...\n" );
+               } elseif ( $this->mPreparedEdit->output->getFlag( 'vary-user' ) && !$options['changed'] ) {
+                       $logger->info( __METHOD__ . ": Prepared edit has vary-user and is null...\n" );
                } else {
-                       wfDebug( __METHOD__ . ": No vary-revision, using prepared edit...\n" );
+                       wfDebug( __METHOD__ . ": Using prepared edit...\n" );
                        $editInfo = $this->mPreparedEdit;
                }
 
+               if ( !$editInfo ) {
+                       // Parse the text again if needed. Be careful not to do pre-save transform twice:
+                       // $text is usually already pre-save transformed once. Avoid using the edit stash
+                       // as any prepared content from there or in doEditContent() was already rejected.
+                       $editInfo = $this->prepareContentForEdit( $content, $revision, $user, null, false );
+               }
+
                // Save it to the parser cache.
                // Make sure the cache time matches page_touched to avoid double parsing.
                ParserCache::singleton()->save(
@@ -3141,7 +3183,7 @@ class WikiPage implements Page, IDBAccessObject {
                $summary = $wgContLang->truncate( $summary, 255 );
 
                // Save
-               $flags = EDIT_UPDATE;
+               $flags = EDIT_UPDATE | EDIT_INTERNAL;
 
                if ( $guser->isAllowed( 'minoredit' ) ) {
                        $flags |= EDIT_MINOR;
@@ -3403,16 +3445,16 @@ class WikiPage implements Page, IDBAccessObject {
         *
         * @param array $added The names of categories that were added
         * @param array $deleted The names of categories that were deleted
+        * @param integer $id Page ID (this should be the original deleted page ID)
         */
-       public function updateCategoryCounts( array $added, array $deleted ) {
-               $that = $this;
-               $method = __METHOD__;
+       public function updateCategoryCounts( array $added, array $deleted, $id = 0 ) {
+               $id = $id ?: $this->getId();
                $dbw = wfGetDB( DB_MASTER );
-
+               $method = __METHOD__;
                // Do this at the end of the commit to reduce lock wait timeouts
                $dbw->onTransactionPreCommitOrIdle(
-                       function () use ( $dbw, $that, $method, $added, $deleted ) {
-                               $ns = $that->getTitle()->getNamespace();
+                       function () use ( $dbw, $added, $deleted, $id, $method ) {
+                               $ns = $this->getTitle()->getNamespace();
 
                                $addFields = [ 'cat_pages = cat_pages + 1' ];
                                $removeFields = [ 'cat_pages = cat_pages - 1' ];
@@ -3429,7 +3471,7 @@ class WikiPage implements Page, IDBAccessObject {
                                                'category',
                                                'cat_title',
                                                [ 'cat_title' => $added ],
-                                               __METHOD__
+                                               $method
                                        );
 
                                        // For category rows that already exist, do a plain
@@ -3440,7 +3482,7 @@ class WikiPage implements Page, IDBAccessObject {
                                                        'category',
                                                        $addFields,
                                                        [ 'cat_title' => $existingAdded ],
-                                                       __METHOD__
+                                                       $method
                                                );
                                        }
 
@@ -3476,12 +3518,12 @@ class WikiPage implements Page, IDBAccessObject {
 
                                foreach ( $added as $catName ) {
                                        $cat = Category::newFromName( $catName );
-                                       Hooks::run( 'CategoryAfterPageAdded', [ $cat, $that ] );
+                                       Hooks::run( 'CategoryAfterPageAdded', [ $cat, $this ] );
                                }
 
                                foreach ( $deleted as $catName ) {
                                        $cat = Category::newFromName( $catName );
-                                       Hooks::run( 'CategoryAfterPageRemoved', [ $cat, $that ] );
+                                       Hooks::run( 'CategoryAfterPageRemoved', [ $cat, $this, $id ] );
                                }
                        }
                );
index 2451390..05bcebe 100644 (file)
@@ -79,12 +79,15 @@ class CacheTime {
 
        /**
         * Sets the number of seconds after which this object should expire.
+        *
         * This value is used with the ParserCache.
         * If called with a value greater than the value provided at any previous call,
         * the new call has no effect. The value returned by getCacheExpiry is smaller
         * or equal to the smallest number that was provided as an argument to
         * updateCacheExpiry().
         *
+        * Avoid using 0 if at all possible. Consider JavaScript for highly dynamic content.
+        *
         * @param int $seconds
         */
        public function updateCacheExpiry( $seconds ) {
index 6b847e5..01cce02 100644 (file)
@@ -460,14 +460,14 @@ class CoreParserFunctions {
                                return '';
                        }
                } else {
-                       $parser->addTrackingCategory( 'restricted-displaytitle-ignored' );
                        $converter = $parser->getConverterLanguage()->getConverter();
-                       return '<span class="error">' .
+                       $parser->getOutput()->addWarning(
                                wfMessage( 'restricted-displaytitle',
                                        // Message should be parsed, but this param should only be escaped.
                                        $converter->markNoConversion( wfEscapeWikiText( $text ) )
-                               )->inContentLanguage()->text() .
-                               '</span>';
+                               )->text()
+                       );
+                       $parser->addTrackingCategory( 'restricted-displaytitle-ignored' );
                }
        }
 
index bdf3efb..32d8373 100644 (file)
@@ -51,24 +51,6 @@ class MWTidy {
                return $driver->tidy( $text );
        }
 
-       /**
-        * Get CSS modules needed if HTML from the current driver is to be displayed.
-        *
-        * This is just a migration tool to allow some changes expected as part of
-        * Tidy replacement (T89331) to be exposed on the client side via user
-        * scripts, without actually replacing tidy. See T49673.
-        *
-        * @return array
-        */
-       public static function getModuleStyles() {
-               $driver = self::singleton();
-               if ( $driver && $driver instanceof MediaWiki\Tidy\RaggettBase ) {
-                       return [ 'mediawiki.raggett' ];
-               } else {
-                       return [];
-               }
-       }
-
        /**
         * Check HTML for errors, used if $wgValidateAllHtml = true.
         *
@@ -132,6 +114,11 @@ class MWTidy {
                                case 'Html5Depurate':
                                        self::$instance = new MediaWiki\Tidy\Html5Depurate( $config );
                                        break;
+                               case 'Html5Internal':
+                                       self::$instance = new MediaWiki\Tidy\Html5Internal( $config );
+                                       break;
+                               case 'disabled':
+                                       return false;
                                default:
                                        throw new MWException( "Invalid tidy driver: \"{$config['driver']}\"" );
                        }
index 17098f7..a765450 100644 (file)
@@ -1264,7 +1264,9 @@ class Parser {
                        $text,
                        [ &$this, 'attributeStripCallback' ],
                        false,
-                       array_keys( $this->mTransparentTagHooks )
+                       array_keys( $this->mTransparentTagHooks ),
+                       [],
+                       [ &$this, 'addTrackingCategory' ]
                );
                Hooks::run( 'InternalParseBeforeLinks', [ &$this, &$text, &$this->mStripState ] );
 
@@ -1355,7 +1357,6 @@ class Parser {
 
                if ( MWTidy::isEnabled() && $this->mOptions->getTidy() ) {
                        $text = MWTidy::tidy( $text );
-                       $this->mOutput->addModuleStyles( MWTidy::getModuleStyles() );
                } else {
                        # attempt to sanitize at least some nesting problems
                        # (bug #2702 and quite a few others)
@@ -1459,7 +1460,7 @@ class Parser {
                                        substr( $m[0], 0, 20 ) . '"' );
                        }
                        $url = wfMessage( $urlmsg, $id )->inContentLanguage()->text();
-                       return Linker::makeExternalLink( $url, "{$keyword} {$id}", true, $cssClass );
+                       return Linker::makeExternalLink( $url, "{$keyword} {$id}", true, $cssClass, [], $this->mTitle );
                } elseif ( isset( $m[6] ) && $m[6] !== '' ) {
                        # ISBN
                        $isbn = $m[6];
@@ -1470,10 +1471,14 @@ class Parser {
                                ' ' => '',
                                'x' => 'X',
                        ] );
-                       $titleObj = SpecialPage::getTitleFor( 'Booksources', $num );
-                       return '<a href="' .
-                               htmlspecialchars( $titleObj->getLocalURL() ) .
-                               "\" class=\"internal mw-magiclink-isbn\">ISBN $isbn</a>";
+                       return $this->getLinkRenderer()->makeKnownLink(
+                               SpecialPage::getTitleFor( 'Booksources', $num ),
+                               "ISBN $isbn",
+                               [
+                                       'class' => 'internal mw-magiclink-isbn',
+                                       'title' => false // suppress title attribute
+                               ]
+                       );
                } else {
                        return $m[0];
                }
@@ -1547,7 +1552,7 @@ class Parser {
                        $text = Linker::makeExternalLink( $url,
                                $this->getConverterLanguage()->markNoConversion( $url, true ),
                                true, 'free',
-                               $this->getExternalLinkAttribs( $url ) );
+                               $this->getExternalLinkAttribs( $url ), $this->mTitle );
                        # Register it in the output object...
                        # Replace unnecessary URL escape codes with their equivalent characters
                        $pasteurized = self::normalizeLinkUrl( $url );
@@ -1844,7 +1849,7 @@ class Parser {
                        # Funny characters like ö aren't valid in URLs anyway
                        # This was changed in August 2004
                        $s .= Linker::makeExternalLink( $url, $text, false, $linktype,
-                               $this->getExternalLinkAttribs( $url ) ) . $dtrail . $trail;
+                               $this->getExternalLinkAttribs( $url ), $this->mTitle ) . $dtrail . $trail;
 
                        # Register link in the output object.
                        # Replace unnecessary URL escape codes with the referenced character
@@ -1882,11 +1887,11 @@ class Parser {
         * (depending on configuration, namespace, and the URL's domain) and/or a
         * target attribute (depending on configuration).
         *
-        * @param string|bool $url Optional URL, to extract the domain from for rel =>
+        * @param string $url URL to extract the domain from for rel =>
         *   nofollow if appropriate
         * @return array Associative array of HTML attributes
         */
-       public function getExternalLinkAttribs( $url = false ) {
+       public function getExternalLinkAttribs( $url ) {
                $attribs = [];
                $rel = self::getExternalLinkRel( $url, $this->mTitle );
 
@@ -2296,13 +2301,9 @@ class Parser {
                                                # cloak any absolute URLs inside the image markup, so replaceExternalLinks() won't touch them
                                                $s .= $prefix . $this->armorLinks(
                                                        $this->makeImage( $nt, $text, $holders ) ) . $trail;
-                                       } else {
-                                               $s .= $prefix . $trail;
+                                               continue;
                                        }
-                                       continue;
-                               }
-
-                               if ( $ns == NS_CATEGORY ) {
+                               } elseif ( $ns == NS_CATEGORY ) {
                                        $s = rtrim( $s . "\n" ); # bug 87
 
                                        if ( $wasblank ) {
@@ -2600,9 +2601,13 @@ class Parser {
                        case 'revisionid':
                                # Let the edit saving system know we should parse the page
                                # *after* a revision ID has been assigned.
-                               $this->mOutput->setFlag( 'vary-revision' );
-                               wfDebug( __METHOD__ . ": {{REVISIONID}} used, setting vary-revision...\n" );
+                               $this->mOutput->setFlag( 'vary-revision-id' );
+                               wfDebug( __METHOD__ . ": {{REVISIONID}} used, setting vary-revision-id...\n" );
                                $value = $this->mRevisionId;
+                               if ( !$value && $this->mOptions->getSpeculativeRevIdCallback() ) {
+                                       $value = call_user_func( $this->mOptions->getSpeculativeRevIdCallback() );
+                                       $this->mOutput->setSpeculativeRevIdUsed( $value );
+                               }
                                break;
                        case 'revisionday':
                                # Let the edit saving system know we should parse the page
@@ -2648,16 +2653,12 @@ class Parser {
                                break;
                        case 'revisionuser':
                                # Let the edit saving system know we should parse the page
-                               # *after* a revision ID has been assigned. This is for null edits.
-                               $this->mOutput->setFlag( 'vary-revision' );
-                               wfDebug( __METHOD__ . ": {{REVISIONUSER}} used, setting vary-revision...\n" );
+                               # *after* a revision ID has been assigned for null edits.
+                               $this->mOutput->setFlag( 'vary-user' );
+                               wfDebug( __METHOD__ . ": {{REVISIONUSER}} used, setting vary-user...\n" );
                                $value = $this->getRevisionUser();
                                break;
                        case 'revisionsize':
-                               # Let the edit saving system know we should parse the page
-                               # *after* a revision ID has been assigned. This is for null edits.
-                               $this->mOutput->setFlag( 'vary-revision' );
-                               wfDebug( __METHOD__ . ": {{REVISIONSIZE}} used, setting vary-revision...\n" );
                                $value = $this->getRevisionSize();
                                break;
                        case 'namespace':
@@ -3129,6 +3130,7 @@ class Parser {
                                        && $this->mOptions->getAllowSpecialInclusion()
                                        && $this->ot['html']
                                ) {
+                                       $specialPage = SpecialPageFactory::getPage( $title->getDBkey() );
                                        // Pass the template arguments as URL parameters.
                                        // "uselang" will have no effect since the Language object
                                        // is forced to the one defined in ParserOptions.
@@ -3147,15 +3149,22 @@ class Parser {
                                        $context = new RequestContext;
                                        $context->setTitle( $title );
                                        $context->setRequest( new FauxRequest( $pageArgs ) );
-                                       $context->setUser( $this->getUser() );
+                                       if ( $specialPage && $specialPage->maxIncludeCacheTime() === 0 ) {
+                                               $context->setUser( $this->getUser() );
+                                       } else {
+                                               // If this page is cached, then we better not be per user.
+                                               $context->setUser( User::newFromName( '127.0.0.1', false ) );
+                                       }
                                        $context->setLanguage( $this->mOptions->getUserLangObj() );
-                                       $ret = SpecialPageFactory::capturePath( $title, $context );
+                                       $ret = SpecialPageFactory::capturePath( $title, $context, $this->getLinkRenderer() );
                                        if ( $ret ) {
                                                $text = $context->getOutput()->getHTML();
                                                $this->mOutput->addOutputPageMetadata( $context->getOutput() );
                                                $found = true;
                                                $isHTML = true;
-                                               $this->disableCache();
+                                               if ( $specialPage && $specialPage->maxIncludeCacheTime() !== false ) {
+                                                       $this->mOutput->updateCacheExpiry( $specialPage->maxIncludeCacheTime() );
+                                               }
                                        }
                                } elseif ( MWNamespace::isNonincludable( $title->getNamespace() ) ) {
                                        $found = false; # access denied
@@ -5298,6 +5307,7 @@ class Parser {
        /**
         * Set a flag in the output object indicating that the content is dynamic and
         * shouldn't be cached.
+        * @deprecated since 1.28; use getOutput()->updateCacheExpiry()
         */
        public function disableCache() {
                wfDebug( "Parser output marked as uncacheable.\n" );
@@ -5637,7 +5647,7 @@ class Parser {
                        # will change the size.
                        if ( $revObject ) {
                                $this->mRevisionSize = $revObject->getSize();
-                       } elseif ( $this->ot['wiki'] || $this->mOptions->getIsPreview() ) {
+                       } else {
                                $this->mRevisionSize = $this->mInputSize;
                        }
                }
index 91cd0f4..891c4dd 100644 (file)
@@ -117,17 +117,22 @@ class ParserOptions {
        private $mRemoveComments = true;
 
        /**
-        * Callback for current revision fetching. Used as first argument to call_user_func().
+        * @var callable Callback for current revision fetching; first argument to call_user_func().
         */
        private $mCurrentRevisionCallback =
                [ 'Parser', 'statelessFetchRevision' ];
 
        /**
-        * Callback for template fetching. Used as first argument to call_user_func().
+        * @var callable Callback for template fetching; first argument to call_user_func().
         */
        private $mTemplateCallback =
                [ 'Parser', 'statelessFetchTemplate' ];
 
+       /**
+        * @var callable|null Callback to generate a guess for {{REVISIONID}}
+        */
+       private $mSpeculativeRevIdCallback;
+
        /**
         * Enable limit report in an HTML comment on output
         */
@@ -302,6 +307,11 @@ class ParserOptions {
                return $this->mTemplateCallback;
        }
 
+       /** @since 1.28 */
+       public function getSpeculativeRevIdCallback() {
+               return $this->mSpeculativeRevIdCallback;
+       }
+
        public function getEnableLimitReport() {
                return $this->mEnableLimitReport;
        }
@@ -483,6 +493,11 @@ class ParserOptions {
                return wfSetVar( $this->mCurrentRevisionCallback, $x );
        }
 
+       /** @since 1.28 */
+       public function setSpeculativeRevIdCallback( $x ) {
+               return wfSetVar( $this->mSpeculativeRevIdCallback, $x );
+       }
+
        public function setTemplateCallback( $x ) {
                return wfSetVar( $this->mTemplateCallback, $x );
        }
index 6c7ad4e..3462d10 100644 (file)
@@ -208,6 +208,9 @@ class ParserOutput extends CacheTime {
         */
        private $mFlags = [];
 
+       /** @var integer|null Assumed rev ID for {{REVISIONID}} if no revision is set */
+       private $mSpeculativeRevId;
+
        const EDITSECTION_REGEX =
                '#<(?:mw:)?editsection page="(.*?)" section="(.*?)"(?:/>|>(.*?)(</(?:mw:)?editsection>))#';
 
@@ -272,6 +275,19 @@ class ParserOutput extends CacheTime {
                return $text;
        }
 
+       /**
+        * @param integer $id
+        * @since 1.28
+        */
+       public function setSpeculativeRevIdUsed( $id ) {
+               $this->mSpeculativeRevId = $id;
+       }
+
+       /** @since 1.28 */
+       public function getSpeculativeRevIdUsed() {
+               return $this->mSpeculativeRevId;
+       }
+
        public function &getLanguageLinks() {
                return $this->mLanguageLinks;
        }
index 78f9370..12218ce 100644 (file)
@@ -10,11 +10,12 @@ class ExtensionProcessor implements Processor {
        protected static $globalSettings = [
                'ResourceLoaderSources',
                'ResourceLoaderLESSVars',
-               'ResourceLoaderLESSImportPaths',
                'DefaultUserOptions',
                'HiddenPrefs',
                'GroupPermissions',
                'RevokePermissions',
+               'GrantPermissions',
+               'GrantPermissionGroups',
                'ImplicitGroups',
                'GroupsAddToSelf',
                'GroupsRemoveFromSelf',
@@ -26,6 +27,8 @@ class ExtensionProcessor implements Processor {
                'SessionProviders',
                'AuthManagerAutoConfig',
                'CentralIdLookupProviders',
+               'ChangeCredentialsBlacklist',
+               'RemoveCredentialsBlacklist',
                'RateLimits',
                'RecentChangesFlags',
                'MediaHandlers',
@@ -61,6 +64,7 @@ class ExtensionProcessor implements Processor {
        protected static $mergeStrategies = [
                'wgGroupPermissions' => 'array_plus_2d',
                'wgRevokePermissions' => 'array_plus_2d',
+               'wgGrantPermissions' => 'array_plus_2d',
                'wgHooks' => 'array_merge_recursive',
                'wgExtensionCredits' => 'array_merge_recursive',
                'wgExtraGenderNamespaces' => 'array_plus',
@@ -105,6 +109,7 @@ class ExtensionProcessor implements Processor {
                'MessagesDirs',
                'type',
                'config',
+               'config_prefix',
                'ParserTestFiles',
                'AutoloadClasses',
                'manifest_version',
@@ -157,7 +162,12 @@ class ExtensionProcessor implements Processor {
         * @return array
         */
        public function extractInfo( $path, array $info, $version ) {
-               $this->extractConfig( $info );
+               if ( $version === 2 ) {
+                       $this->extractConfig2( $info );
+               } else {
+                       // $version === 1
+                       $this->extractConfig1( $info );
+               }
                $this->extractHooks( $info );
                $dir = dirname( $path );
                $this->extractExtensionMessagesFiles( $dir, $info );
@@ -345,12 +355,12 @@ class ExtensionProcessor implements Processor {
        }
 
        /**
-        * Set configuration settings
+        * Set configuration settings for manifest_version == 1
         * @todo In the future, this should be done via Config interfaces
         *
         * @param array $info
         */
-       protected function extractConfig( array $info ) {
+       protected function extractConfig1( array $info ) {
                if ( isset( $info['config'] ) ) {
                        if ( isset( $info['config']['_prefix'] ) ) {
                                $prefix = $info['config']['_prefix'];
@@ -366,6 +376,29 @@ class ExtensionProcessor implements Processor {
                }
        }
 
+       /**
+        * Set configuration settings for manifest_version == 2
+        * @todo In the future, this should be done via Config interfaces
+        *
+        * @param array $info
+        */
+       protected function extractConfig2( array $info ) {
+               if ( isset( $info['config_prefix'] ) ) {
+                       $prefix = $info['config_prefix'];
+               } else {
+                       $prefix = 'wg';
+               }
+               if ( isset( $info['config'] ) ) {
+                       foreach ( $info['config'] as $key => $data ) {
+                               $value = $data['value'];
+                               if ( isset( $value['merge_strategy'] ) ) {
+                                       $value[ExtensionRegistry::MERGE_STRATEGY] = $value['merge_strategy'];
+                               }
+                               $this->globals["$prefix$key"] = $value;
+                       }
+               }
+       }
+
        protected function extractParserTestFiles( $dir, array $info ) {
                if ( isset( $info['ParserTestFiles'] ) ) {
                        foreach ( $info['ParserTestFiles'] as $path ) {
index dc53ca4..3bec457 100644 (file)
@@ -19,7 +19,7 @@ class ExtensionRegistry {
        /**
         * Version of the highest supported manifest version
         */
-       const MANIFEST_VERSION = 1;
+       const MANIFEST_VERSION = 2;
 
        /**
         * Version of the oldest supported manifest version
index 086ab17..ccf764b 100644 (file)
@@ -313,6 +313,7 @@ class ResourceLoader implements LoggerAwareInterface {
         *   not registered
         */
        public function register( $name, $info = null ) {
+               $moduleSkinStyles = $this->config->get( 'ResourceModuleSkinStyles' );
 
                // Allow multiple modules to be registered in one call
                $registrations = is_array( $name ) ? $name : [ $name => $info ];
@@ -351,7 +352,7 @@ class ResourceLoader implements LoggerAwareInterface {
 
                        // Apply custom skin-defined styles to existing modules.
                        if ( $this->isFileModule( $name ) ) {
-                               foreach ( $this->config->get( 'ResourceModuleSkinStyles' ) as $skinName => $skinStyles ) {
+                               foreach ( $moduleSkinStyles as $skinName => $skinStyles ) {
                                        // If this module already defines skinStyles for this skin, ignore $wgResourceModuleSkinStyles.
                                        if ( isset( $this->moduleInfos[$name]['skinStyles'][$skinName] ) ) {
                                                continue;
@@ -600,10 +601,8 @@ class ResourceLoader implements LoggerAwareInterface {
         * @return string Hash
         */
        public static function makeHash( $value ) {
-               // Use base64 to output more entropy in a more compact string (default hex is only base16).
-               // The first 8 chars of a base64 encoded digest represent the same binary as
-               // the first 12 chars of a hex encoded digest.
-               return substr( base64_encode( sha1( $value, true ) ), 0, 8 );
+               $hash = hash( 'fnv132', $value );
+               return Wikimedia\base_convert( $hash, 16, 36, 7 );
        }
 
        /**
index 1e7329a..6b755d7 100644 (file)
@@ -468,7 +468,7 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
                if ( !file_exists( $localPath ) ) {
                        throw new MWException( __METHOD__ . ": skip function file not found: \"$localPath\"" );
                }
-               $contents = file_get_contents( $localPath );
+               $contents = $this->stripBom( file_get_contents( $localPath ) );
                if ( $this->getConfig()->get( 'ResourceLoaderValidateStaticJS' ) ) {
                        $contents = $this->validateScriptFile( $localPath, $contents );
                }
@@ -810,7 +810,7 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
                        if ( !file_exists( $localPath ) ) {
                                throw new MWException( __METHOD__ . ": script file not found: \"$localPath\"" );
                        }
-                       $contents = file_get_contents( $localPath );
+                       $contents = $this->stripBom( file_get_contents( $localPath ) );
                        if ( $this->getConfig()->get( 'ResourceLoaderValidateStaticJS' ) ) {
                                // Static files don't really need to be checked as often; unlike
                                // on-wiki module they shouldn't change unexpectedly without
@@ -882,7 +882,7 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
                        $style = $this->compileLessFile( $localPath, $context );
                        $this->hasGeneratedStyles = true;
                } else {
-                       $style = file_get_contents( $localPath );
+                       $style = $this->stripBom( file_get_contents( $localPath ) );
                }
 
                if ( $flip ) {
@@ -922,6 +922,28 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
                return $this->targets;
        }
 
+       /**
+        * Get the module's load type.
+        *
+        * @since 1.28
+        * @return string
+        */
+       public function getType() {
+               $canBeStylesOnly = !(
+                       // All options except 'styles', 'skinStyles' and 'debugRaw'
+                       $this->scripts
+                       || $this->debugScripts
+                       || $this->templates
+                       || $this->languageScripts
+                       || $this->skinScripts
+                       || $this->dependencies
+                       || $this->messages
+                       || $this->skipFunction
+                       || $this->raw
+               );
+               return $canBeStylesOnly ? self::LOAD_STYLES : self::LOAD_GENERAL;
+       }
+
        /**
         * Compile a LESS file into CSS.
         *
@@ -990,7 +1012,7 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
                        $localPath = $this->getLocalPath( $templatePath );
                        if ( file_exists( $localPath ) ) {
                                $content = file_get_contents( $localPath );
-                               $templates[$alias] = $content;
+                               $templates[$alias] = $this->stripBom( $content );
                        } else {
                                $msg = __METHOD__ . ": template file not found: \"$localPath\"";
                                wfDebugLog( 'resourceloader', $msg );
@@ -999,4 +1021,20 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
                }
                return $templates;
        }
+
+       /**
+        * Takes an input string and removes the UTF-8 BOM character if present
+        *
+        * We need to remove these after reading a file, because we concatenate our files and
+        * the BOM character is not valid in the middle of a string.
+        * We already assume UTF-8 everywhere, so this should be safe.
+        *
+        * @return string input minus the intial BOM char
+        */
+       protected function stripBom( $input ) {
+               if ( substr_compare( "\xef\xbb\xbf", $input, 0, 3 ) === 0 ) {
+                       return substr( $input, 3 );
+               }
+               return $input;
+       }
 }
index 121a6c9..3adadff 100644 (file)
@@ -35,6 +35,12 @@ abstract class ResourceLoaderModule implements LoggerAwareInterface {
        const TYPE_STYLES = 'styles';
        const TYPE_COMBINED = 'combined';
 
+       # Desired load type
+       // Module only has styles (loaded via <style> or <link rel=stylesheet>)
+       const LOAD_STYLES = 'styles';
+       // Module may have other resources (loaded via mw.loader from a script)
+       const LOAD_GENERAL = 'general';
+
        # sitewide core module like a skin file or jQuery component
        const ORIGIN_CORE_SITEWIDE = 1;
 
@@ -343,6 +349,16 @@ abstract class ResourceLoaderModule implements LoggerAwareInterface {
                return $this->targets;
        }
 
+       /**
+        * Get the module's load type.
+        *
+        * @since 1.28
+        * @return string ResourceLoaderModule LOAD_* constant
+        */
+       public function getType() {
+               return self::LOAD_GENERAL;
+       }
+
        /**
         * Get the skip function.
         *
diff --git a/includes/resourceloader/ResourceLoaderSiteStylesModule.php b/includes/resourceloader/ResourceLoaderSiteStylesModule.php
new file mode 100644 (file)
index 0000000..46808a1
--- /dev/null
@@ -0,0 +1,53 @@
+<?php
+/**
+ * ResourceLoader module for site style customizations.
+ *
+ * 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
+ * @author Trevor Parscal
+ * @author Roan Kattouw
+ */
+
+/**
+ * Module for site style customizations
+ */
+class ResourceLoaderSiteStylesModule extends ResourceLoaderWikiModule {
+
+       /**
+        * Get list of pages used by this module
+        *
+        * @param ResourceLoaderContext $context
+        * @return array List of pages
+        */
+       protected function getPages( ResourceLoaderContext $context ) {
+               $pages = [];
+               if ( $this->getConfig()->get( 'UseSiteCss' ) ) {
+                       $pages['MediaWiki:Common.css'] = [ 'type' => 'style' ];
+                       $pages['MediaWiki:' . ucfirst( $context->getSkin() ) . '.css'] = [ 'type' => 'style' ];
+                       $pages['MediaWiki:Print.css'] = [ 'type' => 'style', 'media' => 'print' ];
+
+               }
+               return $pages;
+       }
+
+       /**
+        * @return string
+        */
+       public function getType() {
+               return self::LOAD_STYLES;
+       }
+}
index 34866f3..7b2d532 100644 (file)
@@ -217,7 +217,7 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
                        }
 
                        $versionHash = $module->getVersionHash( $context );
-                       if ( strlen( $versionHash ) !== 8 ) {
+                       if ( strlen( $versionHash ) !== 7 ) {
                                $context->getLogger()->warning(
                                        "Module '{module}' produced an invalid version hash: '{version}'.",
                                        [
index 9c198d1..4d0bff7 100644 (file)
@@ -83,4 +83,11 @@ class ResourceLoaderUserCSSPrefsModule extends ResourceLoaderModule {
        public function getGroup() {
                return 'private';
        }
+
+       /**
+        * @return string
+        */
+       public function getType() {
+               return self::LOAD_STYLES;
+       }
 }
index a3f8825..82051b1 100644 (file)
@@ -321,7 +321,21 @@ class ResourceLoaderWikiModule extends ResourceLoaderModule {
                return $this->titleInfo[$key];
        }
 
+       /**
+        * @return string
+        */
        public function getPosition() {
                return $this->position;
        }
+
+       /**
+        * @since 1.28
+        * @return string
+        */
+       public function getType() {
+               // Check both because subclasses don't always pass pages via the constructor,
+               // they may also override getPages() instead, in which case we should keep
+               // defaulting to LOAD_GENERAL and allow them to override getType() separately.
+               return ( $this->styles && !$this->scripts ) ? self::LOAD_STYLES : self::LOAD_GENERAL;
+       }
 }
index 72c460e..ad9259b 100644 (file)
@@ -77,7 +77,7 @@ class RevDelArchiveList extends RevDelRevisionList {
                return Status::newGood();
        }
 
-       public function doPostCommitUpdates() {
+       public function doPostCommitUpdates( array $visibilityChangeMap ) {
                return Status::newGood();
        }
 }
index 75e1885..00cb2e1 100644 (file)
@@ -104,7 +104,7 @@ class RevDelFileList extends RevDelList {
                return $status;
        }
 
-       public function doPostCommitUpdates() {
+       public function doPostCommitUpdates( array $visibilityChangeMap ) {
                $file = wfLocalFile( $this->title );
                $file->purgeCache();
                $file->purgeDescription();
index b555592..0a86e94 100644 (file)
@@ -125,6 +125,17 @@ abstract class RevDelList extends RevisionListBase {
                        $status->itemStatuses = [];
                }
 
+               // For multi-item deletions, set the old/new bitfields in log_params such that "hid X"
+               // shows in logs if field X was hidden from ANY item and likewise for "unhid Y". Note the
+               // form does not let the same field get hidden and unhidden in different items at once.
+               $virtualOldBits = 0;
+               $virtualNewBits = 0;
+               $logType = 'delete';
+
+               // Will be filled with id => [old, new bits] information and
+               // passed to doPostCommitUpdates().
+               $visibilityChangeMap = [];
+
                // @codingStandardsIgnoreStart Generic.CodeAnalysis.ForLoopWithTestFunctionCall.NotAllowed
                for ( $this->reset(); $this->current(); $this->next() ) {
                        // @codingStandardsIgnoreEnd
@@ -144,7 +155,8 @@ abstract class RevDelList extends RevisionListBase {
                        $newBits = RevisionDeleter::extractBitfield( $bitPars, $oldBits );
 
                        if ( $oldBits == $newBits ) {
-                               $itemStatus->warning( 'revdelete-no-change', $item->formatDate(), $item->formatTime() );
+                               $itemStatus->warning(
+                                       'revdelete-no-change', $item->formatDate(), $item->formatTime() );
                                $status->failCount++;
                                continue;
                        } elseif ( $oldBits == 0 && $newBits != 0 ) {
@@ -157,21 +169,21 @@ abstract class RevDelList extends RevisionListBase {
 
                        if ( $item->isHideCurrentOp( $newBits ) ) {
                                // Cannot hide current version text
-                               $itemStatus->error( 'revdelete-hide-current', $item->formatDate(), $item->formatTime() );
+                               $itemStatus->error(
+                                       'revdelete-hide-current', $item->formatDate(), $item->formatTime() );
                                $status->failCount++;
                                continue;
-                       }
-                       if ( !$item->canView() ) {
+                       } elseif ( !$item->canView() ) {
                                // Cannot access this revision
                                $msg = ( $opType == 'show' ) ?
                                        'revdelete-show-no-access' : 'revdelete-modify-no-access';
                                $itemStatus->error( $msg, $item->formatDate(), $item->formatTime() );
                                $status->failCount++;
                                continue;
-                       }
                        // Cannot just "hide from Sysops" without hiding any fields
-                       if ( $newBits == Revision::DELETED_RESTRICTED ) {
-                               $itemStatus->warning( 'revdelete-only-restricted', $item->formatDate(), $item->formatTime() );
+                       } elseif ( $newBits == Revision::DELETED_RESTRICTED ) {
+                               $itemStatus->warning(
+                                       'revdelete-only-restricted', $item->formatDate(), $item->formatTime() );
                                $status->failCount++;
                                continue;
                        }
@@ -181,14 +193,32 @@ abstract class RevDelList extends RevisionListBase {
 
                        if ( $ok ) {
                                $idsForLog[] = $item->getId();
+                               // If any item field was suppressed or unsupressed
+                               if ( ( $oldBits | $newBits ) & $this->getSuppressBit() ) {
+                                       $logType = 'suppress';
+                               }
+                               // Track which fields where (un)hidden for each item
+                               $addedBits = ( $oldBits ^ $newBits ) & $newBits;
+                               $removedBits = ( $oldBits ^ $newBits ) & $oldBits;
+                               $virtualNewBits |= $addedBits;
+                               $virtualOldBits |= $removedBits;
+
                                $status->successCount++;
                                if ( $item->getAuthorId() > 0 ) {
                                        $authorIds[] = $item->getAuthorId();
                                } elseif ( IP::isIPAddress( $item->getAuthorName() ) ) {
                                        $authorIPs[] = $item->getAuthorName();
                                }
+
+                               // Save the old and new bits in $visibilityChangeMap for
+                               // later use.
+                               $visibilityChangeMap[$item->getId()] = [
+                                       'oldBits' => $oldBits,
+                                       'newBits' => $newBits,
+                               ];
                        } else {
-                               $itemStatus->error( 'revdelete-concurrent-change', $item->formatDate(), $item->formatTime() );
+                               $itemStatus->error(
+                                       'revdelete-concurrent-change', $item->formatDate(), $item->formatTime() );
                                $status->failCount++;
                        }
                }
@@ -220,22 +250,24 @@ abstract class RevDelList extends RevisionListBase {
                }
 
                // Log it
-               // @FIXME: $newBits/$oldBits set in for loop, makes IDE warnings too
-               $this->updateLog( [
-                       'title' => $this->title,
-                       'count' => $successCount,
-                       'newBits' => $newBits,
-                       'oldBits' => $oldBits,
-                       'comment' => $comment,
-                       'ids' => $idsForLog,
-                       'authorIds' => $authorIds,
-                       'authorIPs' => $authorIPs
-               ] );
+               $this->updateLog(
+                       $logType,
+                       [
+                               'title' => $this->title,
+                               'count' => $successCount,
+                               'newBits' => $virtualNewBits,
+                               'oldBits' => $virtualOldBits,
+                               'comment' => $comment,
+                               'ids' => $idsForLog,
+                               'authorIds' => $authorIds,
+                               'authorIPs' => $authorIPs
+                       ]
+               );
 
                // Clear caches
                $that = $this;
-               $dbw->onTransactionIdle( function() use ( $that ) {
-                       $that->doPostCommitUpdates();
+               $dbw->onTransactionIdle( function() use ( $that, $visibilityChangeMap ) {
+                       $that->doPostCommitUpdates( $visibilityChangeMap );
                } );
 
                $dbw->endAtomic( __METHOD__ );
@@ -254,6 +286,7 @@ abstract class RevDelList extends RevisionListBase {
 
        /**
         * Record a log entry on the action
+        * @param string $logType One of (delete,suppress)
         * @param array $params Associative array of parameters:
         *     newBits:         The new value of the *_deleted bitfield
         *     oldBits:         The old value of the *_deleted bitfield.
@@ -264,18 +297,12 @@ abstract class RevDelList extends RevisionListBase {
         *     authorsIPs:      The array of the IP/anon user offenders
         * @throws MWException
         */
-       protected function updateLog( $params ) {
+       private function updateLog( $logType, $params ) {
                // Get the URL param's corresponding DB field
                $field = RevisionDeleter::getRelationType( $this->getType() );
                if ( !$field ) {
                        throw new MWException( "Bad log URL param type!" );
                }
-               // Put things hidden from sysops in the suppression log
-               if ( ( $params['newBits'] | $params['oldBits'] ) & $this->getSuppressBit() ) {
-                       $logType = 'suppress';
-               } else {
-                       $logType = 'delete';
-               }
                // Add params for affected page and ids
                $logParams = $this->getLogParams( $params );
                // Actually add the deletion log entry
@@ -335,9 +362,10 @@ abstract class RevDelList extends RevisionListBase {
        /**
         * A hook for setVisibility(): do any necessary updates post-commit.
         * STUB
+        * @param array [id => ['oldBits' => $oldBits, 'newBits' => $newBits], ... ]
         * @return Status
         */
-       public function doPostCommitUpdates() {
+       public function doPostCommitUpdates( array $visibilityChangeMap ) {
                return Status::newGood();
        }
 
index 27e5148..3486645 100644 (file)
@@ -170,10 +170,10 @@ class RevDelRevisionList extends RevDelList {
                return Status::newGood();
        }
 
-       public function doPostCommitUpdates() {
+       public function doPostCommitUpdates( array $visibilityChangeMap ) {
                $this->title->purgeSquid();
                // Extensions that require referencing previous revisions may need this
-               Hooks::run( 'ArticleRevisionVisibilitySet', [ $this->title, $this->ids ] );
+               Hooks::run( 'ArticleRevisionVisibilitySet', [ $this->title, $this->ids, $visibilityChangeMap ] );
                return Status::newGood();
        }
 }
diff --git a/includes/search/NullIndexField.php b/includes/search/NullIndexField.php
new file mode 100644 (file)
index 0000000..933e0ad
--- /dev/null
@@ -0,0 +1,45 @@
+<?php
+
+/**
+ * Null index field - means search engine does not implement this field.
+ */
+class NullIndexField implements SearchIndexField {
+
+       /**
+        * Get mapping for specific search engine
+        * @param SearchEngine $engine
+        * @return array|null Null means this field does not map to anything
+        */
+       public function getMapping( SearchEngine $engine ) {
+               return null;
+       }
+
+       /**
+        * Set global flag for this field.
+        *
+        * @param int  $flag Bit flag to set/unset
+        * @param bool $unset True if flag should be unset, false by default
+        * @return $this
+        */
+       public function setFlag( $flag, $unset = false ) {
+       }
+
+       /**
+        * Check if flag is set.
+        * @param $flag
+        * @return int 0 if unset, !=0 if set
+        */
+       public function checkFlag( $flag ) {
+               return 0;
+       }
+
+       /**
+        * Merge two field definitions if possible.
+        *
+        * @param SearchIndexField $that
+        * @return SearchIndexField|false New definition or false if not mergeable.
+        */
+       public function merge( SearchIndexField $that ) {
+               return $that;
+       }
+}
index dcef95c..9168d64 100644 (file)
@@ -54,6 +54,12 @@ abstract class SearchEngine {
        /** @var array Feature values */
        protected $features = [];
 
+       /** @const string profile type for completionSearch */
+       const COMPLETION_PROFILE_TYPE = 'completionSearchProfile';
+
+       /** @const string profile type for query independent ranking features */
+       const FT_QUERY_INDEP_PROFILE_TYPE = 'fulltextQueryIndepProfile';
+
        /**
         * Perform a full text search query and return a result set.
         * If full text searches are not supported or disabled, return null.
@@ -631,6 +637,64 @@ abstract class SearchEngine {
                return MediaWikiServices::getInstance()->getSearchEngineConfig()->getSearchTypes();
        }
 
+       /**
+        * Get a list of supported profiles.
+        * Some search engine implementations may expose specific profiles to fine-tune
+        * its behaviors.
+        * The profile can be passed as a feature data with setFeatureData( $profileType, $profileName )
+        * The array returned by this function contains the following keys:
+        * - name: the profile name to use with setFeatureData
+        * - desc-message: the i18n description
+        * - default: set to true if this profile is the default
+        *
+        * @since 1.28
+        * @param $profileType the type of profiles
+        * @return array|null the list of profiles or null if none available
+        */
+       public function getProfiles( $profileType ) {
+               return null;
+       }
+
+       /**
+        * Create a search field definition.
+        * Specific search engines should override this method to create search fields.
+        * @param string $name
+        * @param int    $type
+        * @return SearchIndexField
+        * @since 1.28
+        */
+       public function makeSearchFieldMapping( $name, $type ) {
+               return new NullIndexField();
+       }
+
+       /**
+        * Get fields for search index
+        * @since 1.28
+        * @return SearchIndexField[] Index field definitions for all content handlers
+        */
+       public function getSearchIndexFields() {
+               $models = ContentHandler::getContentModels();
+               $fields = [];
+               foreach ( $models as $model ) {
+                       $handler = ContentHandler::getForModelID( $model );
+                       $handlerFields = $handler->getFieldsForSearchIndex( $this );
+                       foreach ( $handlerFields as $fieldName => $fieldData ) {
+                               if ( empty( $fields[$fieldName] ) ) {
+                                       $fields[$fieldName] = $fieldData;
+                               } else {
+                                       // TODO: do we allow some clashes with the same type or reject all of them?
+                                       $mergeDef = $fields[$fieldName]->merge( $fieldData );
+                                       if ( !$mergeDef ) {
+                                               throw new InvalidArgumentException( "Duplicate field $fieldName for model $model" );
+                                       }
+                                       $fields[$fieldName] = $mergeDef;
+                               }
+                       }
+               }
+               // Hook to allow extensions to produce search mapping fields
+               Hooks::run( 'SearchIndexFields', [ &$fields, $this ] );
+               return $fields;
+       }
 }
 
 /**
diff --git a/includes/search/SearchIndexField.php b/includes/search/SearchIndexField.php
new file mode 100644 (file)
index 0000000..7499853
--- /dev/null
@@ -0,0 +1,65 @@
+<?php
+/**
+ * Definition of a mapping for the search index field.
+ * @since 1.28
+ */
+interface SearchIndexField {
+       /**
+        * Field types
+        */
+       const INDEX_TYPE_TEXT = 0;
+       const INDEX_TYPE_KEYWORD = 1;
+       const INDEX_TYPE_INTEGER = 2;
+       const INDEX_TYPE_NUMBER = 3;
+       const INDEX_TYPE_DATETIME = 4;
+       const INDEX_TYPE_NESTED = 5;
+       const INDEX_TYPE_BOOL = 6;
+       /**
+        * Generic field flags.
+        */
+       /**
+        * This field is case-insensitive.
+        */
+       const FLAG_CASEFOLD = 1;
+       /**
+        * This field contains secondary information, which is
+        * already present in other fields, but can be used for
+        * scoring.
+        */
+       const FLAG_SCORING = 2;
+       /**
+        * This field does not need highlight handling.
+        */
+       const FLAG_NO_HIGHLIGHT = 4;
+       /**
+        * Do not index this field, just store it.
+        */
+       const FLAG_NO_INDEX = 8;
+       /**
+        * Get mapping for specific search engine
+        * @param SearchEngine $engine
+        * @return array|null Null means this field does not map to anything
+        */
+       public function getMapping( SearchEngine $engine );
+       /**
+        * Set global flag for this field.
+        *
+        * @param int  $flag Bit flag to set/unset
+        * @param bool $unset True if flag should be unset, false by default
+        * @return $this
+        */
+       public function setFlag( $flag, $unset = false );
+       /**
+        * Check if flag is set.
+        * @param $flag
+        * @return int 0 if unset, !=0 if set
+        */
+       public function checkFlag( $flag );
+       /**
+        * Merge two field definitions if possible.
+        *
+        * @param SearchIndexField $that
+        * @return SearchIndexField|false New definition or false if not mergeable.
+        */
+       public function merge( SearchIndexField $that );
+}
diff --git a/includes/search/SearchIndexFieldDefinition.php b/includes/search/SearchIndexFieldDefinition.php
new file mode 100644 (file)
index 0000000..3a86c82
--- /dev/null
@@ -0,0 +1,118 @@
+<?php
+
+/**
+ * Basic infrastructure of the field definition.
+ * Specific engines will need to override it at least for getMapping,
+ * but can reuse other parts.
+ * @since 1.28
+ */
+abstract class SearchIndexFieldDefinition implements SearchIndexField {
+       /**
+        * Name of the field
+        *
+        * @var string
+        */
+       protected $name;
+       /**
+        * Type of the field, one of the constants above
+        *
+        * @var int
+        */
+       protected $type;
+       /**
+        * Bit flags for the field.
+        *
+        * @var int
+        */
+       protected $flags = 0;
+       /**
+        * Subfields
+        * @var SearchIndexFieldDefinition[]
+        */
+       protected $subfields = [];
+
+       /**
+        * SearchIndexFieldDefinition constructor.
+        * @param string $name Field name
+        * @param int    $type Index type
+        */
+       public function __construct( $name, $type ) {
+               $this->name = $name;
+               $this->type = $type;
+       }
+
+       /**
+        * Get field name
+        * @return string
+        */
+       public function getName() {
+               return $this->name;
+       }
+
+       /**
+        * Get index type
+        * @return int
+        */
+       public function getIndexType() {
+               return $this->type;
+       }
+
+       /**
+        * Set global flag for this field.
+        *
+        * @param int  $flag Bit flag to set/unset
+        * @param bool $unset True if flag should be unset, false by default
+        * @return $this
+        */
+       public function setFlag( $flag, $unset = false ) {
+               if ( $unset ) {
+                       $this->flags &= ~$flag;
+               } else {
+                       $this->flags |= $flag;
+               }
+               return $this;
+       }
+
+       /**
+        * Check if flag is set.
+        * @param $flag
+        * @return int 0 if unset, !=0 if set
+        */
+       public function checkFlag( $flag ) {
+               return $this->flags & $flag;
+       }
+
+       /**
+        * Merge two field definitions if possible.
+        *
+        * @param SearchIndexField $that
+        * @return SearchIndexField|false New definition or false if not mergeable.
+        */
+       public function merge( SearchIndexField $that ) {
+               // TODO: which definitions may be compatible?
+               if ( ( $that instanceof self ) && $this->type === $that->type &&
+                    $this->flags === $that->flags && $this->type !== self::INDEX_TYPE_NESTED
+               ) {
+                       return $that;
+               }
+               return false;
+       }
+
+       /**
+        * Get subfields
+        * @return SearchIndexFieldDefinition[]
+        */
+       public function getSubfields() {
+               return $this->subfields;
+       }
+
+       /**
+        * Set subfields
+        * @param SearchIndexFieldDefinition[] $subfields
+        * @return $this
+        */
+       public function setSubfields( array $subfields ) {
+               $this->subfields = $subfields;
+               return $this;
+       }
+}
index 3df0dae..79fc720 100644 (file)
@@ -221,7 +221,7 @@ class CookieSessionProvider extends SessionProvider {
                        if ( $value === false ) {
                                $response->clearCookie( $key, $options );
                        } else {
-                               $expirationDuration = $this->getLoginCookieExpiration( $key );
+                               $expirationDuration = $this->getLoginCookieExpiration( $key, $session->shouldRememberUser() );
                                $expiration = $expirationDuration ? $expirationDuration + time() : null;
                                $response->setCookie( $key, (string)$value, $expiration, $options );
                        }
@@ -271,7 +271,10 @@ class CookieSessionProvider extends SessionProvider {
                $response = $request->response();
                if ( $set ) {
                        if ( $backend->shouldRememberUser() ) {
-                               $expirationDuration = $this->getLoginCookieExpiration( 'forceHTTPS' );
+                               $expirationDuration = $this->getLoginCookieExpiration(
+                                       'forceHTTPS',
+                                       true
+                               );
                                $expiration = $expirationDuration ? $expirationDuration + time() : null;
                        } else {
                                $expiration = null;
@@ -397,23 +400,40 @@ class CookieSessionProvider extends SessionProvider {
        }
 
        public function getRememberUserDuration() {
-               return min( $this->getLoginCookieExpiration( 'UserID' ),
-                       $this->getLoginCookieExpiration( 'Token' ) ) ?: null;
+               return min( $this->getLoginCookieExpiration( 'UserID', true ),
+                       $this->getLoginCookieExpiration( 'Token', true ) ) ?: null;
+       }
+
+       /**
+        * Gets the list of cookies that must be set to the 'remember me' duration,
+        * if $wgExtendedLoginCookieExpiration is in use.
+        *
+        * @return string[] Array of unprefixed cookie keys
+        */
+       protected function getExtendedLoginCookies() {
+               return [ 'UserID', 'UserName', 'Token' ];
        }
 
        /**
         * Returns the lifespan of the login cookies, in seconds. 0 means until the end of the session.
+        *
+        * Cookies that are session-length do not call this function.
+        *
         * @param string $cookieName
+        * @param boolean $shouldRememberUser Whether the user should be remembered
+        *   long-term
         * @return int Cookie expiration time in seconds; 0 for session cookies
         */
-       protected function getLoginCookieExpiration( $cookieName ) {
+       protected function getLoginCookieExpiration( $cookieName, $shouldRememberUser ) {
+               $extendedCookies = $this->getExtendedLoginCookies();
                $normalExpiration = $this->config->get( 'CookieExpiration' );
-               $extendedExpiration = $this->config->get( 'ExtendedLoginCookieExpiration' );
-               $extendedCookies = $this->config->get( 'ExtendedLoginCookies' );
 
-               if ( !in_array( $cookieName, $extendedCookies, true ) ) {
+               if ( $shouldRememberUser && in_array( $cookieName, $extendedCookies, true ) ) {
+                       $extendedExpiration = $this->config->get( 'ExtendedLoginCookieExpiration' );
+
+                       return ( $extendedExpiration !== null ) ? (int)$extendedExpiration : (int)$normalExpiration;
+               } else {
                        return (int)$normalExpiration;
                }
-               return ( $extendedExpiration !== null ) ? (int)$extendedExpiration : (int)$normalExpiration;
        }
 }
index 29878d4..719f905 100644 (file)
@@ -384,7 +384,7 @@ final class Session implements \Countable, \Iterator, \ArrayAccess {
         * @return string[] Encryption key, HMAC key
         */
        private function getSecretKeys() {
-               global $wgSessionSecret, $wgSecretKey;
+               global $wgSessionSecret, $wgSecretKey, $wgSessionPbkdf2Iterations;
 
                $wikiSecret = $wgSessionSecret ?: $wgSecretKey;
                $userSecret = $this->get( 'wsSessionSecret', null );
@@ -392,14 +392,51 @@ final class Session implements \Countable, \Iterator, \ArrayAccess {
                        $userSecret = \MWCryptRand::generateHex( 32 );
                        $this->set( 'wsSessionSecret', $userSecret );
                }
+               $iterations = $this->get( 'wsSessionPbkdf2Iterations', null );
+               if ( $iterations === null ) {
+                       $iterations = $wgSessionPbkdf2Iterations;
+                       $this->set( 'wsSessionPbkdf2Iterations', $iterations );
+               }
 
-               $keymats = hash_pbkdf2( 'sha256', $wikiSecret, $userSecret, 10001, 64, true );
+               $keymats = hash_pbkdf2( 'sha256', $wikiSecret, $userSecret, $iterations, 64, true );
                return [
                        substr( $keymats, 0, 32 ),
                        substr( $keymats, 32, 32 ),
                ];
        }
 
+       /**
+        * Decide what type of encryption to use, based on system capabilities.
+        * @return array
+        */
+       private function getEncryptionAlgorithm() {
+               global $wgSessionInsecureSecrets;
+
+               if (
+                       function_exists( 'openssl_encrypt' )
+                       && in_array( 'aes-256-ctr', openssl_get_cipher_methods(), true )
+               ) {
+                       return [ 'openssl', 'aes-256-ctr' ];
+               } elseif (
+                       function_exists( 'mcrypt_encrypt' )
+                       && in_array( 'rijndael-128', mcrypt_list_algorithms(), true )
+                       && in_array( 'ctr', mcrypt_list_modes(), true )
+               ) {
+                       return [ 'mcrypt', 'rijndael-128', 'ctr' ];
+               } elseif ( $wgSessionInsecureSecrets ) {
+                       // @todo: import a pure-PHP library for AES instead of this
+                       return [ 'insecure' ];
+               } else {
+                       throw new \BadMethodCallException(
+                               'Encryption is not available. You really should install the PHP OpenSSL extension, ' .
+                               'or failing that the mcrypt extension. But if you really can\'t and you\'re willing ' .
+                               'to accept insecure storage of sensitive session data, set ' .
+                               '$wgSessionInsecureSecrets = true in LocalSettings.php to make this exception go away.'
+                       );
+               }
+
+       }
+
        /**
         * Set a value in the session, encrypted
         *
@@ -409,8 +446,6 @@ final class Session implements \Countable, \Iterator, \ArrayAccess {
         * @param mixed $value
         */
        public function setSecret( $key, $value ) {
-               global $wgSessionInsecureSecrets;
-
                list( $encKey, $hmacKey ) = $this->getSecretKeys();
                $serialized = serialize( $value );
 
@@ -420,27 +455,27 @@ final class Session implements \Countable, \Iterator, \ArrayAccess {
                // Encrypt
                // @todo: import a pure-PHP library for AES instead of doing $wgSessionInsecureSecrets
                $iv = \MWCryptRand::generate( 16, true );
-               if ( function_exists( 'openssl_encrypt' ) ) {
-                       $ciphertext = openssl_encrypt( $serialized, 'aes-256-ctr', $encKey, OPENSSL_RAW_DATA, $iv );
-                       if ( $ciphertext === false ) {
-                               throw new UnexpectedValueException( 'Encryption failed: ' . openssl_error_string() );
-                       }
-               } elseif ( function_exists( 'mcrypt_encrypt' ) ) {
-                       $ciphertext = mcrypt_encrypt( 'rijndael-128', $encKey, $serialized, 'ctr', $iv );
-                       if ( $ciphertext === false ) {
-                               throw new UnexpectedValueException( 'Encryption failed' );
-                       }
-               } elseif ( $wgSessionInsecureSecrets ) {
-                       $ex = new \Exception( 'No encryption is available, storing data as plain text' );
-                       $this->logger->warning( $ex->getMessage(), [ 'exception' => $ex ] );
-                       $ciphertext = $serialized;
-               } else {
-                       throw new \BadMethodCallException(
-                               'Encryption is not available. You really should install the PHP OpenSSL extension, ' .
-                               'or failing that the mcrypt extension. But if you really can\'t and you\'re willing ' .
-                               'to accept insecure storage of sensitive session data, set ' .
-                               '$wgSessionInsecureSecrets = true in LocalSettings.php to make this exception go away.'
-                       );
+               $algorithm = $this->getEncryptionAlgorithm();
+               switch ( $algorithm[0] ) {
+                       case 'openssl':
+                               $ciphertext = openssl_encrypt( $serialized, $algorithm[1], $encKey, OPENSSL_RAW_DATA, $iv );
+                               if ( $ciphertext === false ) {
+                                       throw new \UnexpectedValueException( 'Encryption failed: ' . openssl_error_string() );
+                               }
+                               break;
+                       case 'mcrypt':
+                               $ciphertext = mcrypt_encrypt( $algorithm[1], $encKey, $serialized, $algorithm[2], $iv );
+                               if ( $ciphertext === false ) {
+                                       throw new \UnexpectedValueException( 'Encryption failed' );
+                               }
+                               break;
+                       case 'insecure':
+                               $ex = new \Exception( 'No encryption is available, storing data as plain text' );
+                               $this->logger->warning( $ex->getMessage(), [ 'exception' => $ex ] );
+                               $ciphertext = $serialized;
+                               break;
+                       default:
+                               throw new \LogicException( 'invalid algorithm' );
                }
 
                // Seal
@@ -459,8 +494,6 @@ final class Session implements \Countable, \Iterator, \ArrayAccess {
         * @return mixed
         */
        public function getSecret( $key, $default = null ) {
-               global $wgSessionInsecureSecrets;
-
                // Fetch
                $encrypted = $this->get( $key, null );
                if ( $encrypted === null ) {
@@ -488,38 +521,35 @@ final class Session implements \Countable, \Iterator, \ArrayAccess {
                }
 
                // Decrypt
-               // @todo: import a pure-PHP library for AES instead of doing $wgSessionInsecureSecrets
-               if ( function_exists( 'openssl_decrypt' ) ) {
-                       $serialized = openssl_decrypt(
-                               base64_decode( $ciphertext ), 'aes-256-ctr', $encKey, OPENSSL_RAW_DATA, base64_decode( $iv )
-                       );
-                       if ( $serialized === false ) {
-                               $ex = new \Exception( 'Decyption failed: ' . openssl_error_string() );
-                               $this->logger->debug( $ex->getMessage(), [ 'exception' => $ex ] );
-                               return $default;
-                       }
-               } elseif ( function_exists( 'mcrypt_decrypt' ) ) {
-                       $serialized = mcrypt_decrypt(
-                               'rijndael-128', $encKey, base64_decode( $ciphertext ), 'ctr', base64_decode( $iv )
-                       );
-                       if ( $serialized === false ) {
-                               $ex = new \Exception( 'Decyption failed' );
-                               $this->logger->debug( $ex->getMessage(), [ 'exception' => $ex ] );
-                               return $default;
-                       }
-               } elseif ( $wgSessionInsecureSecrets ) {
-                       $ex = new \Exception(
-                               'No encryption is available, retrieving data that was stored as plain text'
-                       );
-                       $this->logger->warning( $ex->getMessage(), [ 'exception' => $ex ] );
-                       $serialized = base64_decode( $ciphertext );
-               } else {
-                       throw new \BadMethodCallException(
-                               'Encryption is not available. You really should install the PHP OpenSSL extension, ' .
-                               'or failing that the mcrypt extension. But if you really can\'t and you\'re willing ' .
-                               'to accept insecure storage of sensitive session data, set ' .
-                               '$wgSessionInsecureSecrets = true in LocalSettings.php to make this exception go away.'
-                       );
+               $algorithm = $this->getEncryptionAlgorithm();
+               switch ( $algorithm[0] ) {
+                       case 'openssl':
+                               $serialized = openssl_decrypt( base64_decode( $ciphertext ), $algorithm[1], $encKey,
+                                       OPENSSL_RAW_DATA, base64_decode( $iv ) );
+                               if ( $serialized === false ) {
+                                       $ex = new \Exception( 'Decyption failed: ' . openssl_error_string() );
+                                       $this->logger->debug( $ex->getMessage(), [ 'exception' => $ex ] );
+                                       return $default;
+                               }
+                               break;
+                       case 'mcrypt':
+                               $serialized = mcrypt_decrypt( $algorithm[1], $encKey, base64_decode( $ciphertext ),
+                                       $algorithm[2], base64_decode( $iv ) );
+                               if ( $serialized === false ) {
+                                       $ex = new \Exception( 'Decyption failed' );
+                                       $this->logger->debug( $ex->getMessage(), [ 'exception' => $ex ] );
+                                       return $default;
+                               }
+                               break;
+                       case 'insecure':
+                               $ex = new \Exception(
+                                       'No encryption is available, retrieving data that was stored as plain text'
+                               );
+                               $this->logger->warning( $ex->getMessage(), [ 'exception' => $ex ] );
+                               $serialized = base64_decode( $ciphertext );
+                               break;
+                       default:
+                               throw new \LogicException( 'invalid algorithm' );
                }
 
                $value = unserialize( $serialized );
index 50794d0..4d57ad9 100644 (file)
@@ -456,7 +456,7 @@ abstract class SessionProvider implements SessionProviderInterface, LoggerAwareI
         * @warning This will be called early during MediaWiki startup. Do not
         *  use $wgUser, $wgLang, $wgOut, $wgParser, or their equivalents via
         *  RequestContext from this method!
-        * @return Message
+        * @return \Message
         */
        protected function describeMessage() {
                return wfMessage(
index 2f71736..1a079b4 100644 (file)
@@ -34,6 +34,22 @@ use UtfNormal\Validator;
  */
 class MediaWikiPageNameNormalizer {
 
+       /**
+        * @var Http
+        */
+       private $http;
+
+       /**
+        * @param Http|null $http
+        */
+       public function __construct( Http $http = null ) {
+               if ( !$http ) {
+                       $http = new Http();
+               }
+
+               $this->http = $http;
+       }
+
        /**
         * Returns the normalized form of the given page title, using the
         * normalization rules of the given site. If the given title is a redirect,
@@ -85,7 +101,7 @@ class MediaWikiPageNameNormalizer {
 
                // Go on call the external site
                // @todo we need a good way to specify a timeout here.
-               $ret = Http::get( $url, [], __METHOD__ );
+               $ret = $this->http->get( $url, [], __METHOD__ );
 
                if ( $ret === false ) {
                        wfDebugLog( "MediaWikiSite", "call to external site failed: $url" );
index af2d5da..e5d272c 100644 (file)
@@ -103,7 +103,6 @@ abstract class QuickTemplate {
        /**
         * @private
         * @param string $str
-        * @return string
         */
        function text( $str ) {
                echo htmlspecialchars( $this->data[$str] );
@@ -112,7 +111,6 @@ abstract class QuickTemplate {
        /**
         * @private
         * @param string $str
-        * @return string
         */
        function html( $str ) {
                echo $this->data[$str];
@@ -121,7 +119,6 @@ abstract class QuickTemplate {
        /**
         * @private
         * @param string $str
-        * @return string
         */
        function msg( $str ) {
                echo htmlspecialchars( $this->translator->translate( $str ) );
@@ -130,7 +127,6 @@ abstract class QuickTemplate {
        /**
         * @private
         * @param string $str
-        * @return string
         */
        function msgHtml( $str ) {
                echo $this->translator->translate( $str );
@@ -140,7 +136,6 @@ abstract class QuickTemplate {
         * An ugly, ugly hack.
         * @private
         * @param string $str
-        * @return string
         */
        function msgWiki( $str ) {
                global $wgOut;
index d70a6b9..64d2f8b 100644 (file)
@@ -141,10 +141,8 @@ abstract class Skin extends ContextSource {
        /**
         * @param OutputPage $out
         */
-       function initPage( OutputPage $out ) {
-
+       public function initPage( OutputPage $out ) {
                $this->preloadExistence();
-
        }
 
        /**
@@ -199,30 +197,29 @@ abstract class Skin extends ContextSource {
        /**
         * Preload the existence of three commonly-requested pages in a single query
         */
-       function preloadExistence() {
+       protected function preloadExistence() {
                $titles = [];
 
-               $user = $this->getUser();
-               $title = $this->getRelevantTitle();
-
                // User/talk link
+               $user = $this->getUser();
                if ( $user->isLoggedIn() ) {
                        $titles[] = $user->getUserPage();
                        $titles[] = $user->getTalkPage();
                }
 
                // Check, if the page can hold some kind of content, otherwise do nothing
-               if ( !$title->canExist() ) {
-                       // nothing
-               } elseif ( $title->isTalkPage() ) {
-                       $titles[] = $title->getSubjectPage();
-               } else {
-                       $titles[] = $title->getTalkPage();
+               $title = $this->getRelevantTitle();
+               if ( $title->canExist() ) {
+                       if ( $title->isTalkPage() ) {
+                               $titles[] = $title->getSubjectPage();
+                       } else {
+                               $titles[] = $title->getTalkPage();
+                       }
                }
 
                Hooks::run( 'SkinPreloadExistence', [ &$titles, $this ] );
 
-               if ( count( $titles ) ) {
+               if ( $titles ) {
                        $lb = new LinkBatch( $titles );
                        $lb->setCaller( __METHOD__ );
                        $lb->execute();
@@ -649,19 +646,23 @@ abstract class Skin extends ContextSource {
        }
 
        /**
+        * @param OutputPage $out Defaults to $this->getOutput() if left as null
         * @return string
         */
-       function subPageSubtitle() {
-               $out = $this->getOutput();
+       function subPageSubtitle( $out = null ) {
+               if ( $out === null ) {
+                       $out = $this->getOutput();
+               }
+               $title = $out->getTitle();
                $subpages = '';
 
                if ( !Hooks::run( 'SkinSubPageSubtitle', [ &$subpages, $this, $out ] ) ) {
                        return $subpages;
                }
 
-               if ( $out->isArticle() && MWNamespace::hasSubpages( $out->getTitle()->getNamespace() ) ) {
-                       $ptext = $this->getTitle()->getPrefixedText();
-                       if ( preg_match( '/\//', $ptext ) ) {
+               if ( $out->isArticle() && MWNamespace::hasSubpages( $title->getNamespace() ) ) {
+                       $ptext = $title->getPrefixedText();
+                       if ( strpos( $ptext, '/' ) !== false ) {
                                $links = explode( '/', $ptext );
                                array_pop( $links );
                                $c = 0;
@@ -1240,6 +1241,8 @@ abstract class Skin extends ContextSource {
                $lines = explode( "\n", $text );
 
                $heading = '';
+               $messageTitle = $this->getConfig()->get( 'EnableSidebarCache' )
+                       ? Title::newMainPage() : $this->getTitle();
 
                foreach ( $lines as $line ) {
                        if ( strpos( $line, '*' ) !== 0 ) {
@@ -1256,7 +1259,7 @@ abstract class Skin extends ContextSource {
                                $line = trim( $line, '* ' );
 
                                if ( strpos( $line, '|' ) !== false ) { // sanity check
-                                       $line = MessageCache::singleton()->transform( $line, false, null, $this->getTitle() );
+                                       $line = MessageCache::singleton()->transform( $line, false, null, $messageTitle );
                                        $line = array_map( 'trim', explode( '|', $line, 2 ) );
                                        if ( count( $line ) !== 2 ) {
                                                // Second sanity check, could be hit by people doing
@@ -1266,7 +1269,7 @@ abstract class Skin extends ContextSource {
 
                                        $extraAttribs = [];
 
-                                       $msgLink = $this->msg( $line[0] )->inContentLanguage();
+                                       $msgLink = $this->msg( $line[0] )->title( $messageTitle )->inContentLanguage();
                                        if ( $msgLink->exists() ) {
                                                $link = $msgLink->text();
                                                if ( $link == '-' ) {
@@ -1275,7 +1278,7 @@ abstract class Skin extends ContextSource {
                                        } else {
                                                $link = $line[0];
                                        }
-                                       $msgText = $this->msg( $line[1] );
+                                       $msgText = $this->msg( $line[1] )->title( $messageTitle );
                                        if ( $msgText->exists() ) {
                                                $text = $msgText->text();
                                        } else {
index 7866c12..c889b73 100644 (file)
@@ -4,7 +4,6 @@ use MediaWiki\Auth\AuthenticationRequest;
 use MediaWiki\Auth\AuthenticationResponse;
 use MediaWiki\Auth\AuthManager;
 use MediaWiki\Logger\LoggerFactory;
-use MediaWiki\Session\SessionManager;
 use MediaWiki\Session\Token;
 
 /**
@@ -375,7 +374,7 @@ abstract class AuthManagerSpecialPage extends SpecialPage {
                                $req = reset( $requests );
                                $status = $authManager->allowsAuthenticationDataChange( $req );
                                Hooks::run( 'ChangeAuthenticationDataAudit', [ $req, $status ] );
-                               if ( !$status->isOK() ) {
+                               if ( !$status->isGood() ) {
                                        return AuthenticationResponse::newFail( $status->getMessage() );
                                }
                                $authManager->changeAuthenticationData( $req );
@@ -570,7 +569,8 @@ abstract class AuthManagerSpecialPage extends SpecialPage {
                        } elseif ( array_key_exists( 'type', $item ) ) {
                                $class = HTMLForm::$typeMappings[$item['type']];
                        }
-                       return !in_array( $class, [ 'HTMLInfoField', 'HTMLSubmitField' ], true );
+                       return !is_a( $class, \HTMLInfoField::class, true ) &&
+                               !is_a( $class, \HTMLSubmitField::class, true );
                } );
        }
 
index 0966f80..60f1dd8 100644 (file)
@@ -368,7 +368,7 @@ abstract class ChangesListSpecialPage extends SpecialPage {
        /**
         * Build and output the actual changes list.
         *
-        * @param array $rows Database rows
+        * @param ResultWrapper $rows Database rows
         * @param FormOptions $opts
         */
        abstract public function outputChangesList( $rows, $opts );
@@ -475,7 +475,10 @@ abstract class ChangesListSpecialPage extends SpecialPage {
        protected function addModules() {
                $out = $this->getOutput();
                // Styles and behavior for the legend box (see makeLegend())
-               $out->addModuleStyles( 'mediawiki.special.changeslist.legend' );
+               $out->addModuleStyles( [
+                       'mediawiki.special.changeslist.legend',
+                       'mediawiki.special.changeslist',
+               ] );
                $out->addModules( 'mediawiki.special.changeslist.legend.js' );
        }
 
index bd6b08f..5dab221 100644 (file)
@@ -27,7 +27,6 @@ use MediaWiki\Auth\AuthManager;
 use MediaWiki\Auth\Throttler;
 use MediaWiki\Logger\LoggerFactory;
 use MediaWiki\Session\SessionManager;
-use Psr\Log\LogLevel;
 
 /**
  * Holds shared logic for login and account creation pages.
@@ -47,6 +46,7 @@ abstract class LoginSignupSpecialPage extends AuthManagerSpecialPage {
        protected $mEntryErrorType = 'error';
 
        protected $mLoaded = false;
+       protected $mLoadedRequest = false;
        protected $mSecureLoginUrl;
 
        /** @var string */
@@ -89,19 +89,20 @@ abstract class LoginSignupSpecialPage extends AuthManagerSpecialPage {
                $wgUseMediaWikiUIEverywhere = true;
        }
 
+       protected function setRequest( array $data, $wasPosted = null ) {
+               parent::setRequest( $data, $wasPosted );
+               $this->mLoadedRequest = false;
+       }
+
        /**
-        * Load data from request.
-        * @private
-        * @param string $subPage Subpage of Special:Userlogin
+        * Load basic request parameters for this Special page.
+        * @param $subPage
         */
-       protected function load( $subPage ) {
-               global $wgSecureLogin;
-
-               if ( $this->mLoaded ) {
+       private function loadRequestParameters( $subPage ) {
+               if ( $this->mLoadedRequest ) {
                        return;
                }
-               $this->mLoaded = true;
-
+               $this->mLoadedRequest = true;
                $request = $this->getRequest();
 
                $this->mPosted = $request->wasPosted();
@@ -114,6 +115,22 @@ abstract class LoginSignupSpecialPage extends AuthManagerSpecialPage {
                $this->mLanguage = $request->getText( 'uselang' );
                $this->mReturnTo = $request->getVal( 'returnto', '' );
                $this->mReturnToQuery = $request->getVal( 'returntoquery', '' );
+       }
+
+       /**
+        * Load data from request.
+        * @private
+        * @param string $subPage Subpage of Special:Userlogin
+        */
+       protected function load( $subPage ) {
+               global $wgSecureLogin;
+
+               $this->loadRequestParameters( $subPage );
+               if ( $this->mLoaded ) {
+                       return;
+               }
+               $this->mLoaded = true;
+               $request = $this->getRequest();
 
                $securityLevel = $this->getRequest()->getText( 'force' );
                if (
@@ -185,6 +202,12 @@ abstract class LoginSignupSpecialPage extends AuthManagerSpecialPage {
                return $params;
        }
 
+       protected function beforeExecute( $subPage ) {
+               // finish initializing the class before processing the request - T135924
+               $this->loadRequestParameters( $subPage );
+               return parent::beforeExecute( $subPage );
+       }
+
        /**
         * @param string|null $subPage
         */
@@ -596,7 +619,7 @@ abstract class LoginSignupSpecialPage extends AuthManagerSpecialPage {
                // add pre/post text
                // header used by ConfirmEdit, CondfirmAccount, Persona, WikimediaIncubator, SemanticSignup
                // should be above the error message but HTMLForm doesn't support that
-               $form->addHeaderText( $fakeTemplate->html( 'header' ) );
+               $form->addHeaderText( $fakeTemplate->get( 'header' ) );
 
                // FIXME the old form used this for error/warning messages which does not play well with
                // HTMLForm (maybe it could with a subclass?); for now only display it for signups
@@ -609,7 +632,7 @@ abstract class LoginSignupSpecialPage extends AuthManagerSpecialPage {
                }
 
                // header used by MobileFrontend
-               $form->addHeaderText( $fakeTemplate->html( 'formheader' ) );
+               $form->addHeaderText( $fakeTemplate->get( 'formheader' ) );
 
                // blank signup footer for site customization
                if ( $this->isSignup() && $this->showExtraInformation() ) {
@@ -652,37 +675,26 @@ abstract class LoginSignupSpecialPage extends AuthManagerSpecialPage {
                                if ( $wgLoginLanguageSelector && $this->mLanguage ) {
                                        $linkq .= '&uselang=' . $this->mLanguage;
                                }
-                               $createOrLoginHref = $linkTitle->getLocalURL( $linkq );
-
-                               if ( $this->getUser()->isLoggedIn() ) {
-                                       $createOrLoginHtml = Html::rawElement( 'div',
-                                               [ 'class' => 'mw-ui-vform-field' ],
-                                               Html::element( 'a',
-                                                       [
-                                                               'id' => 'mw-createaccount-join',
-                                                               'href' => $createOrLoginHref,
-                                                               // put right after all auth inputs in the tab order
-                                                               'tabindex' => 100,
-                                                       ],
-                                                       $this->msg( 'userlogin-createanother' )->escaped()
-                                               )
-                                       );
-                               } else {
-                                       $createOrLoginHtml = Html::rawElement( 'div',
-                                               [ 'id' => 'mw-createaccount-cta',
-                                                       'class' => 'mw-ui-vform-field' ],
-                                               $this->msg( 'userlogin-noaccount' )->escaped()
-                                               . Html::element( 'a',
-                                                       [
-                                                               'id' => 'mw-createaccount-join',
-                                                               'href' => $createOrLoginHref,
-                                                               'class' => 'mw-ui-button',
-                                                               'tabindex' => 100,
-                                                       ],
-                                                       $this->msg( 'userlogin-joinproject' )->escaped()
-                                               )
-                                       );
-                               }
+
+                               $loggedIn = $this->getUser()->isLoggedIn();
+                               $createOrLoginHtml = Html::rawElement( 'div',
+                                       [ 'id' => 'mw-createaccount' . ( !$loggedIn ? '-cta' : '' ),
+                                               'class' => ( $loggedIn ? 'mw-form-related-link-container' : 'mw-ui-vform-field' ) ],
+                                       ( $loggedIn ? '' : $this->msg( 'userlogin-noaccount' )->escaped() )
+                                       . Html::element( 'a',
+                                               [
+                                                       'id' => 'mw-createaccount-join' . ( $loggedIn ? '-loggedin' : '' ),
+                                                       'href' => $linkTitle->getLocalURL( $linkq ),
+                                                       'class' => ( $loggedIn ? '' : 'mw-ui-button' ),
+                                                       'tabindex' => 100,
+                                               ],
+                                               $this->msg(
+                                                       ( $this->getUser()->isLoggedIn() ?
+                                                               'userlogin-createanother' :
+                                                               'userlogin-joinproject'
+                                                       ) )->escaped()
+                                       )
+                               );
                                $form->addFooterText( $createOrLoginHtml );
                        }
                }
@@ -841,7 +853,7 @@ abstract class LoginSignupSpecialPage extends AuthManagerSpecialPage {
                                        !isset( $coreField['baseField'] )
                                        || !isset( $fieldInfo[$coreField['baseField']] )
                                ) && !in_array( $fieldName, $specialFields, true )
-                               && $coreField['type'] !== 'submit'
+                               && ( !isset( $coreField['type'] ) || $coreField['type'] !== 'submit' )
                        ) {
                                $coreFieldDescriptors[$fieldName] = null;
                                continue;
@@ -1012,6 +1024,7 @@ abstract class LoginSignupSpecialPage extends AuthManagerSpecialPage {
                                'rememberMe' => [
                                        // option for saving the user token to a cookie
                                        'type' => 'check',
+                                       'name' => 'wpRemember',
                                        'label-message' => $this->msg( 'userlogin-remembermypassword' )
                                                ->numParams( $expirationDays ),
                                        'id' => 'wpRemember',
@@ -1019,7 +1032,6 @@ abstract class LoginSignupSpecialPage extends AuthManagerSpecialPage {
                                'loginattempt' => [
                                        // submit button
                                        'type' => 'submit',
-                                       'name' => 'wpRemember',
                                        'default' => $this->msg( 'pt-login-' . $continuePart . 'button' )->text(),
                                        'id' => 'wpLoginAttempt',
                                        'weight' => 100,
@@ -1037,6 +1049,11 @@ abstract class LoginSignupSpecialPage extends AuthManagerSpecialPage {
                                        ], $this->msg( 'userlogin-helplink2' )->text() ),
                                        'weight' => 200,
                                ],
+                               // button for ResetPasswordSecondaryAuthenticationProvider
+                               'skipReset' => [
+                                       'weight' => 110,
+                                       'flags' => [],
+                               ],
                        ];
                }
                $fieldDefinitions['username'] += [
index 408c726..35ecc6e 100644 (file)
@@ -1,6 +1,4 @@
 <?php
-use MediaWiki\MediaWikiServices;
-
 /**
  * Parent class for all special pages.
  *
@@ -24,6 +22,8 @@ use MediaWiki\MediaWikiServices;
  */
 
 use MediaWiki\Auth\AuthManager;
+use MediaWiki\Linker\LinkRenderer;
+use MediaWiki\MediaWikiServices;
 
 /**
  * Parent class for all special pages.
@@ -60,6 +60,11 @@ class SpecialPage {
         */
        protected $mContext;
 
+       /**
+        * @var LinkRenderer|null
+        */
+       private $linkRenderer;
+
        /**
         * Get a localised Title object for a specified special page name
         *
@@ -175,6 +180,27 @@ class SpecialPage {
                return $this->mIncludable;
        }
 
+       /**
+        * How long to cache page when it is being included.
+        *
+        * @note If cache time is not 0, then the current user becomes an anon
+        *   if you want to do any per-user customizations, than this method
+        *   must be overriden to return 0.
+        * @since 1.26
+        * @return int Time in seconds, 0 to disable caching altogether,
+        *  false to use the parent page's cache settings
+        */
+       public function maxIncludeCacheTime() {
+               return $this->getConfig()->get( 'MiserMode' ) ? $this->getCacheTTL() : 0;
+       }
+
+       /**
+        * @return int Seconds that this page can be cached
+        */
+       protected function getCacheTTL() {
+               return 60 * 60;
+       }
+
        /**
         * Whether the special page is being evaluated via transclusion
         * @param bool $x
@@ -805,4 +831,24 @@ class SpecialPage {
                        wfTransactionalTimeLimit();
                }
        }
+
+       /**
+        * @since 1.28
+        * @return LinkRenderer
+        */
+       protected function getLinkRenderer() {
+               if ( $this->linkRenderer ) {
+                       return $this->linkRenderer;
+               } else {
+                       return MediaWikiServices::getInstance()->getLinkRenderer();
+               }
+       }
+
+       /**
+        * @since 1.28
+        * @param LinkRenderer $linkRenderer
+        */
+       public function setLinkRenderer( LinkRenderer $linkRenderer ) {
+               $this->linkRenderer = $linkRenderer;
+       }
 }
index 73efa4e..b69b28a 100644 (file)
@@ -21,6 +21,7 @@
  * @ingroup SpecialPage
  * @defgroup SpecialPage SpecialPage
  */
+use MediaWiki\Linker\LinkRenderer;
 
 /**
  * Factory for handling the special page list and generating SpecialPage objects.
@@ -523,10 +524,13 @@ class SpecialPageFactory {
         * @param Title $title
         * @param IContextSource $context
         * @param bool $including Bool output is being captured for use in {{special:whatever}}
+        * @param LinkRenderer|null $linkRenderer (since 1.28)
         *
         * @return bool
         */
-       public static function executePath( Title &$title, IContextSource &$context, $including = false ) {
+       public static function executePath( Title &$title, IContextSource &$context, $including = false,
+               LinkRenderer $linkRenderer = null
+       ) {
                // @todo FIXME: Redirects broken due to this call
                $bits = explode( '/', $title->getDBkey(), 2 );
                $name = $bits[0];
@@ -586,6 +590,9 @@ class SpecialPageFactory {
                }
 
                $page->including( $including );
+               if ( $linkRenderer ) {
+                       $page->setLinkRenderer( $linkRenderer );
+               }
 
                // Execute special page
                $page->run( $par );
@@ -605,9 +612,12 @@ class SpecialPageFactory {
         *
         * @param Title $title
         * @param IContextSource $context
+        * @param LinkRenderer|null $linkRenderer (since 1.28)
         * @return string HTML fragment
         */
-       public static function capturePath( Title $title, IContextSource $context ) {
+       public static function capturePath(
+               Title $title, IContextSource $context, LinkRenderer $linkRenderer = null
+       ) {
                global $wgTitle, $wgOut, $wgRequest, $wgUser, $wgLang;
                $main = RequestContext::getMain();
 
@@ -640,7 +650,7 @@ class SpecialPageFactory {
                $main->setLanguage( $context->getLanguage() );
 
                // The useful part
-               $ret = self::executePath( $title, $context, true );
+               $ret = self::executePath( $title, $context, true, $linkRenderer );
 
                // Restore old globals and context
                $wgTitle = $glob['title'];
index fcadede..ce7d24e 100644 (file)
@@ -645,8 +645,10 @@ class SpecialBlock extends FormSpecialPage {
                                return [ 'ipb-blockingself', 'ipb-confirmaction' ];
                        }
                } elseif ( $type == Block::TYPE_RANGE ) {
+                       $user = null;
                        $userId = 0;
                } elseif ( $type == Block::TYPE_IP ) {
+                       $user = null;
                        $target = $target->getName();
                        $userId = 0;
                } else {
@@ -729,6 +731,7 @@ class SpecialBlock extends FormSpecialPage {
                        return $reason;
                }
 
+               $priorBlock = null;
                # Try to insert block. Is there a conflicting block?
                $status = $block->insert();
                if ( !$status ) {
@@ -748,17 +751,16 @@ class SpecialBlock extends FormSpecialPage {
                                # This returns direct blocks before autoblocks/rangeblocks, since we should
                                # be sure the user is blocked by now it should work for our purposes
                                $currentBlock = Block::newFromTarget( $target );
-
                                if ( $block->equals( $currentBlock ) ) {
                                        return [ [ 'ipb_already_blocked', $block->getTarget() ] ];
                                }
-
                                # If the name was hidden and the blocking user cannot hide
                                # names, then don't allow any block changes...
                                if ( $currentBlock->mHideName && !$performer->isAllowed( 'hideuser' ) ) {
                                        return [ 'cant-see-hidden-user' ];
                                }
 
+                               $priorBlock = clone $currentBlock;
                                $currentBlock->isHardblock( $block->isHardblock() );
                                $currentBlock->prevents( 'createaccount', $block->prevents( 'createaccount' ) );
                                $currentBlock->mExpiry = $block->mExpiry;
@@ -786,7 +788,7 @@ class SpecialBlock extends FormSpecialPage {
                        $logaction = 'block';
                }
 
-               Hooks::run( 'BlockIpComplete', [ $block, $performer ] );
+               Hooks::run( 'BlockIpComplete', [ $block, $performer, $priorBlock ] );
 
                # Set *_deleted fields if requested
                if ( $data['HideUser'] ) {
index dbbee71..7c7f017 100644 (file)
@@ -46,7 +46,7 @@ class SpecialBlockList extends SpecialPage {
                $out = $this->getOutput();
                $lang = $this->getLanguage();
                $out->setPageTitle( $this->msg( 'ipblocklist' ) );
-               $out->addModuleStyles( [ 'mediawiki.special', 'mediawiki.special.blocklist' ] );
+               $out->addModuleStyles( [ 'mediawiki.special' ] );
 
                $request = $this->getRequest();
                $par = $request->getVal( 'ip', $par );
index 1027f1f..7e330aa 100644 (file)
@@ -162,6 +162,7 @@ class SpecialBotPasswords extends FormSpecialPage {
                        ];
 
                } else {
+                       $linkRenderer = $this->getLinkRenderer();
                        $dbr = BotPassword::getDB( DB_SLAVE );
                        $res = $dbr->select(
                                'bot_passwords',
@@ -174,12 +175,9 @@ class SpecialBotPasswords extends FormSpecialPage {
                                        'section' => 'existing',
                                        'type' => 'info',
                                        'raw' => true,
-                                       'default' => Linker::link(
+                                       'default' => $linkRenderer->makeKnownLink(
                                                $this->getPageTitle( $row->bp_app_id ),
-                                               htmlspecialchars( $row->bp_app_id ),
-                                               [],
-                                               [],
-                                               [ 'known' ]
+                                               $row->bp_app_id
                                        ),
                                ];
                        }
index d7d338c..84d1f7c 100644 (file)
  */
 class SpecialCategories extends SpecialPage {
 
-       /**
-        * @var PageLinkRenderer
-        */
-       protected $linkRenderer = null;
-
        public function __construct() {
                parent::__construct( 'Categories' );
 
@@ -39,42 +34,18 @@ class SpecialCategories extends SpecialPage {
                // using the initServices() method.
        }
 
-       /**
-        * Initialize or override the PageLinkRenderer SpecialCategories collaborates with.
-        * Useful mainly for testing.
-        *
-        * @todo the pager should also be injected, and de-coupled from the rendering logic.
-        *
-        * @param PageLinkRenderer $linkRenderer
-        */
-       public function setPageLinkRenderer(
-               PageLinkRenderer $linkRenderer
-       ) {
-               $this->linkRenderer = $linkRenderer;
-       }
-
-       /**
-        * Initialize any services we'll need (unless it has already been provided via a setter).
-        * This allows for dependency injection even though we don't control object creation.
-        */
-       private function initServices() {
-               if ( !$this->linkRenderer ) {
-                       $lang = $this->getContext()->getLanguage();
-                       $titleFormatter = new MediaWikiTitleCodec( $lang, GenderCache::singleton() );
-                       $this->linkRenderer = new MediaWikiPageLinkRenderer( $titleFormatter );
-               }
-       }
-
        public function execute( $par ) {
-               $this->initServices();
-
                $this->setHeaders();
                $this->outputHeader();
                $this->getOutput()->allowClickjacking();
 
                $from = $this->getRequest()->getText( 'from', $par );
 
-               $cap = new CategoryPager( $this->getContext(), $from, $this->linkRenderer );
+               $cap = new CategoryPager(
+                       $this->getContext(),
+                       $from,
+                       $this->getLinkRenderer()
+               );
                $cap->doQuery();
 
                $this->getOutput()->addHTML(
index c7a650c..ccbb275 100644 (file)
@@ -192,6 +192,7 @@ class SpecialChangeContentModel extends FormSpecialPage {
                        $newContent = ContentHandler::getForModelID( $data['model'] )->makeEmptyContent();
                }
                $flags = $this->oldRevision ? EDIT_UPDATE : EDIT_NEW;
+               $flags |= EDIT_INTERNAL;
                if ( $user->isAllowed( 'bot' ) ) {
                        $flags |= EDIT_FORCE_BOT;
                }
index 382dac7..4da8049 100644 (file)
@@ -81,12 +81,6 @@ class SpecialChangeCredentials extends AuthManagerSpecialPage {
                        return;
                }
 
-               if ( $this->getRequest()->getCheck( 'wpCancel' ) ) {
-                       $returnUrl = $this->getReturnUrl() ?: Title::newMainPage()->getFullURL();
-                       $this->getOutput()->redirect( $returnUrl );
-                       return;
-               }
-
                if ( !$this->authRequests ) {
                        // messages used: changecredentials-invalidsubpage, removecredentials-invalidsubpage
                        $this->showSubpageList( $this->msg( static::$messagePrefix . '-invalidsubpage', $subPage ) );
@@ -149,12 +143,8 @@ class SpecialChangeCredentials extends AuthManagerSpecialPage {
                );
 
                // messages used: changecredentials-submit removecredentials-submit
-               // changecredentials-submit-cancel removecredentials-submit-cancel
                $form->setSubmitTextMsg( static::$messagePrefix . '-submit' );
-               $form->addButton( [
-                       'name' => 'wpCancel',
-                       'value' => $this->msg( static::$messagePrefix . '-submit-cancel' )->text()
-               ] );
+               $form->showCancel()->setCancelTarget( $this->getReturnUrl() ?: Title::newMainPage() );
 
                return $form;
        }
index 431b556..cce88b9 100644 (file)
@@ -37,7 +37,10 @@ class SpecialContributions extends IncludableSpecialPage {
                $this->setHeaders();
                $this->outputHeader();
                $out = $this->getOutput();
-               $out->addModuleStyles( 'mediawiki.special' );
+               $out->addModuleStyles( [
+                       'mediawiki.special',
+                       'mediawiki.special.changeslist',
+               ] );
                $this->addHelpLink( 'Help:User contributions' );
 
                $this->opts = [];
@@ -72,6 +75,7 @@ class SpecialContributions extends IncludableSpecialPage {
                $this->opts['target'] = $target;
                $this->opts['topOnly'] = $request->getBool( 'topOnly' );
                $this->opts['newOnly'] = $request->getBool( 'newOnly' );
+               $this->opts['hideMinor'] = $request->getBool( 'hideMinor' );
 
                $nt = Title::makeTitleSafe( NS_USER, $target );
                if ( !$nt ) {
@@ -142,6 +146,9 @@ class SpecialContributions extends IncludableSpecialPage {
                if ( $this->opts['newOnly'] ) {
                        $feedParams['newonly'] = true;
                }
+               if ( $this->opts['hideMinor'] ) {
+                       $feedParams['hideminor'] = true;
+               }
                if ( $this->opts['deletedOnly'] ) {
                        $feedParams['deletedonly'] = true;
                }
@@ -188,6 +195,7 @@ class SpecialContributions extends IncludableSpecialPage {
                                'deletedOnly' => $this->opts['deletedOnly'],
                                'topOnly' => $this->opts['topOnly'],
                                'newOnly' => $this->opts['newOnly'],
+                               'hideMinor' => $this->opts['hideMinor'],
                                'nsInvert' => $this->opts['nsInvert'],
                                'associated' => $this->opts['associated'],
                        ] );
@@ -441,6 +449,10 @@ class SpecialContributions extends IncludableSpecialPage {
                        $this->opts['newOnly'] = false;
                }
 
+               if ( !isset( $this->opts['hideMinor'] ) ) {
+                       $this->opts['hideMinor'] = false;
+               }
+
                $form = Html::openElement(
                        'form',
                        [
@@ -461,6 +473,7 @@ class SpecialContributions extends IncludableSpecialPage {
                        'month',
                        'topOnly',
                        'newOnly',
+                       'hideMinor',
                        'associated',
                        'tagfilter'
                ];
@@ -609,6 +622,17 @@ class SpecialContributions extends IncludableSpecialPage {
                                [ 'class' => 'mw-input' ]
                        )
                );
+               $filters[] = Html::rawElement(
+                       'span',
+                       [ 'class' => 'mw-input-with-label' ],
+                       Xml::checkLabel(
+                               $this->msg( 'sp-contributions-hideminor' )->text(),
+                               'hideMinor',
+                               'mw-hide-minor-edits',
+                               $this->opts['hideMinor'],
+                               [ 'class' => 'mw-input' ]
+                       )
+               );
 
                Hooks::run(
                        'SpecialContributions::getForm::filters',
index b046bf9..d01751e 100644 (file)
@@ -23,7 +23,6 @@
 
 use MediaWiki\Auth\AuthManager;
 use MediaWiki\Logger\LoggerFactory;
-use Psr\Log\LogLevel;
 
 /**
  * Implements Special:CreateAccount
@@ -160,7 +159,7 @@ class SpecialCreateAccount extends LoginSignupSpecialPage {
        }
 
        protected function logAuthResult( $success, $status = null ) {
-               LoggerFactory::getInstance( 'authmanager-stats' )->info( 'Account creation attempt', [
+               LoggerFactory::getInstance( 'authmanager' )->info( 'Account creation attempt', [
                        'event' => 'accountcreation',
                        'successful' => $success,
                        'status' => $status,
index 1ecbee0..d4886f0 100644 (file)
@@ -30,11 +30,6 @@ class LinkSearchPage extends QueryPage {
        /** @var array|bool */
        private $mungedQuery = false;
 
-       /**
-        * @var PageLinkRenderer
-        */
-       protected $linkRenderer = null;
-
        function setParams( $params ) {
                $this->mQuery = $params['query'];
                $this->mNs = $params['namespace'];
@@ -49,39 +44,11 @@ class LinkSearchPage extends QueryPage {
                // using the setServices() method.
        }
 
-       /**
-        * Initialize or override the PageLinkRenderer LinkSearchPage collaborates with.
-        * Useful mainly for testing.
-        *
-        * @todo query logic and rendering logic should be split and also injected
-        *
-        * @param PageLinkRenderer $linkRenderer
-        */
-       public function setPageLinkRenderer(
-               PageLinkRenderer $linkRenderer
-       ) {
-               $this->linkRenderer = $linkRenderer;
-       }
-
-       /**
-        * Initialize any services we'll need (unless it has already been provided via a setter).
-        * This allows for dependency injection even though we don't control object creation.
-        */
-       private function initServices() {
-               global $wgContLang;
-               if ( !$this->linkRenderer ) {
-                       $titleFormatter = new MediaWikiTitleCodec( $wgContLang, GenderCache::singleton() );
-                       $this->linkRenderer = new MediaWikiPageLinkRenderer( $titleFormatter );
-               }
-       }
-
        function isCacheable() {
                return false;
        }
 
        public function execute( $par ) {
-               $this->initServices();
-
                $this->setHeaders();
                $this->outputHeader();
 
@@ -277,7 +244,7 @@ class LinkSearchPage extends QueryPage {
         */
        function formatResult( $skin, $result ) {
                $title = new TitleValue( (int)$result->namespace, $result->title );
-               $pageLink = $this->linkRenderer->renderHtmlLink( $title );
+               $pageLink = $this->getLinkRenderer()->makeLink( $title );
 
                $url = $result->url;
                $urlLink = Linker::makeExternalLink( $url, $url );
index ace6d02..d034a6c 100644 (file)
@@ -83,7 +83,10 @@ class ListredirectsPage extends QueryPage {
                $batch = new LinkBatch;
                foreach ( $res as $row ) {
                        $batch->add( $row->namespace, $row->title );
-                       $batch->addObj( $this->getRedirectTarget( $row ) );
+                       $redirTarget = $this->getRedirectTarget( $row );
+                       if ( $redirTarget ) {
+                               $batch->addObj( $redirTarget );
+                       }
                }
                $batch->execute();
 
@@ -91,6 +94,10 @@ class ListredirectsPage extends QueryPage {
                $res->seek( 0 );
        }
 
+       /**
+        * @param stdClass $row
+        * @return Title|null
+        */
        protected function getRedirectTarget( $row ) {
                if ( isset( $row->rd_title ) ) {
                        return Title::makeTitle( $row->rd_namespace,
@@ -111,9 +118,10 @@ class ListredirectsPage extends QueryPage {
         * @return string
         */
        function formatResult( $skin, $result ) {
+               $linkRenderer = $this->getLinkRenderer();
                # Make a link to the redirect itself
                $rd_title = Title::makeTitle( $result->namespace, $result->title );
-               $rd_link = Linker::link(
+               $rd_link = $linkRenderer->makeLink(
                        $rd_title,
                        null,
                        [],
@@ -126,7 +134,7 @@ class ListredirectsPage extends QueryPage {
                        # Make a link to the destination page
                        $lang = $this->getLanguage();
                        $arr = $lang->getArrow() . $lang->getDirMark();
-                       $targetLink = Linker::link( $target );
+                       $targetLink = $linkRenderer->makeLink( $target );
 
                        return "$rd_link $arr $targetLink";
                } else {
index af087a6..533a331 100644 (file)
@@ -37,6 +37,7 @@ class SpecialLog extends SpecialPage {
                $this->setHeaders();
                $this->outputHeader();
                $this->getOutput()->addModules( 'mediawiki.userSuggest' );
+               $this->addHelpLink( 'Help:Log' );
 
                $opts = new FormOptions;
                $opts->add( 'type', '' );
index 162ef60..b916c1f 100644 (file)
  * @ingroup SpecialPage
  */
 class SpecialMergeHistory extends SpecialPage {
-       /** @var FormOptions */
-       protected $mOpts;
+       /** @var string */
+       protected $mAction;
 
-       /** @var Status */
-       protected $mStatus;
+       /** @var string */
+       protected $mTarget;
 
-       /** @var Title|null */
-       protected $mTargetObj, $mDestObj;
+       /** @var string */
+       protected $mDest;
+
+       /** @var string */
+       protected $mTimestamp;
+
+       /** @var int */
+       protected $mTargetID;
+
+       /** @var int */
+       protected $mDestID;
+
+       /** @var string */
+       protected $mComment;
+
+       /** @var bool Was posted? */
+       protected $mMerge;
+
+       /** @var bool Was submitted? */
+       protected $mSubmitted;
+
+       /** @var Title */
+       protected $mTargetObj;
+
+       /** @var Title */
+       protected $mDestObj;
 
        /** @var int[] */
        public $prevId;
@@ -48,107 +72,124 @@ class SpecialMergeHistory extends SpecialPage {
                return true;
        }
 
+       /**
+        * @return void
+        */
+       private function loadRequestParams() {
+               $request = $this->getRequest();
+               $this->mAction = $request->getVal( 'action' );
+               $this->mTarget = $request->getVal( 'target' );
+               $this->mDest = $request->getVal( 'dest' );
+               $this->mSubmitted = $request->getBool( 'submitted' );
+
+               $this->mTargetID = intval( $request->getVal( 'targetID' ) );
+               $this->mDestID = intval( $request->getVal( 'destID' ) );
+               $this->mTimestamp = $request->getVal( 'mergepoint' );
+               if ( !preg_match( '/[0-9]{14}/', $this->mTimestamp ) ) {
+                       $this->mTimestamp = '';
+               }
+               $this->mComment = $request->getText( 'wpComment' );
+
+               $this->mMerge = $request->wasPosted()
+                       && $this->getUser()->matchEditToken( $request->getVal( 'wpEditToken' ) );
+
+               // target page
+               if ( $this->mSubmitted ) {
+                       $this->mTargetObj = Title::newFromText( $this->mTarget );
+                       $this->mDestObj = Title::newFromText( $this->mDest );
+               } else {
+                       $this->mTargetObj = null;
+                       $this->mDestObj = null;
+               }
+       }
+
        public function execute( $par ) {
                $this->useTransactionalTimeLimit();
 
                $this->checkPermissions();
                $this->checkReadOnly();
 
+               $this->loadRequestParams();
+
                $this->setHeaders();
                $this->outputHeader();
 
-               $this->addHelpLink( 'Help:Merge history' );
-
-               $opts = new FormOptions();
-
-               $opts->add( 'target', '' );
-               $opts->add( 'dest', '' );
-               $opts->add( 'target', '' );
-               $opts->add( 'mergepoint', '' );
-               $opts->add( 'reason', '' );
-               $opts->add( 'merge', false );
-
-               $opts->fetchValuesFromRequest( $this->getRequest() );
-
-               $target = $opts->getValue( 'target' );
-               $dest = $opts->getValue( 'dest' );
-               $targetObj = Title::newFromText( $target );
-               $destObj = Title::newFromText( $dest );
-               $status = Status::newGood();
-
-               $this->mOpts = $opts;
-               $this->mTargetObj = $targetObj;
-               $this->mDestObj = $destObj;
-
-               if ( $opts->getValue( 'merge' ) && $targetObj &&
-                       $destObj && $opts->getValue( 'mergepoint' ) !== '' ) {
+               if ( $this->mTargetID && $this->mDestID && $this->mAction == 'submit' && $this->mMerge ) {
                        $this->merge();
 
                        return;
                }
 
-               if ( $target === '' && $dest === '' ) {
+               if ( !$this->mSubmitted ) {
                        $this->showMergeForm();
 
                        return;
                }
 
-               if ( !$targetObj instanceof Title ) {
-                       $status->merge( Status::newFatal( 'mergehistory-invalid-source' ) );
-               } elseif ( !$targetObj->exists() ) {
-                       $status->merge( Status::newFatal( 'mergehistory-no-source',
-                               wfEscapeWikiText( $targetObj->getPrefixedText() )
-                       ) );
+               $errors = [];
+               if ( !$this->mTargetObj instanceof Title ) {
+                       $errors[] = $this->msg( 'mergehistory-invalid-source' )->parseAsBlock();
+               } elseif ( !$this->mTargetObj->exists() ) {
+                       $errors[] = $this->msg( 'mergehistory-no-source',
+                               wfEscapeWikiText( $this->mTargetObj->getPrefixedText() )
+                       )->parseAsBlock();
                }
 
-               if ( !$destObj instanceof Title ) {
-                       $status->merge( Status::newFatal( 'mergehistory-invalid-destination' ) );
-               } elseif ( !$destObj->exists() ) {
-                       $status->merge( Status::newFatal( 'mergehistory-no-destination',
-                               wfEscapeWikiText( $destObj->getPrefixedText() )
-                       ) );
+               if ( !$this->mDestObj instanceof Title ) {
+                       $errors[] = $this->msg( 'mergehistory-invalid-destination' )->parseAsBlock();
+               } elseif ( !$this->mDestObj->exists() ) {
+                       $errors[] = $this->msg( 'mergehistory-no-destination',
+                               wfEscapeWikiText( $this->mDestObj->getPrefixedText() )
+                       )->parseAsBlock();
                }
 
-               if ( $targetObj && $destObj && $targetObj->equals( $destObj ) ) {
-                       $status->merge( Status::newFatal( 'mergehistory-same-destination' ) );
+               if ( $this->mTargetObj && $this->mDestObj && $this->mTargetObj->equals( $this->mDestObj ) ) {
+                       $errors[] = $this->msg( 'mergehistory-same-destination' )->parseAsBlock();
                }
 
-               $this->mStatus = $status;
-
-               $this->showMergeForm();
-
-               if ( $status->isOK() ) {
+               if ( count( $errors ) ) {
+                       $this->showMergeForm();
+                       $this->getOutput()->addHTML( implode( "\n", $errors ) );
+               } else {
                        $this->showHistory();
                }
        }
 
        function showMergeForm() {
-               $formDescriptor = [
-                       'target' => [
-                               'type' => 'title',
-                               'name' => 'target',
-                               'label-message' => 'mergehistory-from',
-                               'required' => true,
-                       ],
-
-                       'dest' => [
-                               'type' => 'title',
-                               'name' => 'dest',
-                               'label-message' => 'mergehistory-into',
-                               'required' => true,
-                       ],
-               ];
-
-               $form = HTMLForm::factory( 'ooui', $formDescriptor, $this->getContext() )
-                       ->setIntro( $this->msg( 'mergehistory-header' ) )
-                       ->setWrapperLegendMsg( 'mergehistory-box' )
-                       ->setSubmitTextMsg( 'mergehistory-go' )
-                       ->setMethod( 'post' )
-                       ->prepareForm()
-                       ->displayForm( $this->mStatus );
+               $out = $this->getOutput();
+               $out->addWikiMsg( 'mergehistory-header' );
+
+               $out->addHTML(
+                       Xml::openElement( 'form', [
+                               'method' => 'get',
+                               'action' => wfScript() ] ) .
+                               '<fieldset>' .
+                               Xml::element( 'legend', [],
+                                       $this->msg( 'mergehistory-box' )->text() ) .
+                               Html::hidden( 'title', $this->getPageTitle()->getPrefixedDBkey() ) .
+                               Html::hidden( 'submitted', '1' ) .
+                               Html::hidden( 'mergepoint', $this->mTimestamp ) .
+                               Xml::openElement( 'table' ) .
+                               '<tr>
+                               <td>' . Xml::label( $this->msg( 'mergehistory-from' )->text(), 'target' ) . '</td>
+                               <td>' . Xml::input( 'target', 30, $this->mTarget, [ 'id' => 'target' ] ) . '</td>
+                       </tr><tr>
+                               <td>' . Xml::label( $this->msg( 'mergehistory-into' )->text(), 'dest' ) . '</td>
+                               <td>' . Xml::input( 'dest', 30, $this->mDest, [ 'id' => 'dest' ] ) . '</td>
+                       </tr><tr><td>' .
+                               Xml::submitButton( $this->msg( 'mergehistory-go' )->text() ) .
+                               '</td></tr>' .
+                               Xml::closeElement( 'table' ) .
+                               '</fieldset>' .
+                               '</form>'
+               );
+
+               $this->addHelpLink( 'Help:Merge history' );
        }
 
        private function showHistory() {
+               $this->showMergeForm();
+
                # List all stored revisions
                $revisions = new MergeHistoryPager(
                        $this, [], $this->mTargetObj, $this->mDestObj
@@ -156,46 +197,62 @@ class SpecialMergeHistory extends SpecialPage {
                $haveRevisions = $revisions && $revisions->getNumRows() > 0;
 
                $out = $this->getOutput();
-               $header = '<h2 id="mw-mergehistory">' .
-                       $this->msg( 'mergehistory-list' )->escaped() . "</h2>\n";
+               $titleObj = $this->getPageTitle();
+               $action = $titleObj->getLocalURL( [ 'action' => 'submit' ] );
+               # Start the form here
+               $top = Xml::openElement(
+                       'form',
+                       [
+                               'method' => 'post',
+                               'action' => $action,
+                               'id' => 'merge'
+                       ]
+               );
+               $out->addHTML( $top );
+
+               if ( $haveRevisions ) {
+                       # Format the user-visible controls (comment field, submission button)
+                       # in a nice little table
+                       $table =
+                               Xml::openElement( 'fieldset' ) .
+                                       $this->msg( 'mergehistory-merge', $this->mTargetObj->getPrefixedText(),
+                                               $this->mDestObj->getPrefixedText() )->parse() .
+                                       Xml::openElement( 'table', [ 'id' => 'mw-mergehistory-table' ] ) .
+                                       '<tr>
+                                               <td class="mw-label">' .
+                                       Xml::label( $this->msg( 'mergehistory-reason' )->text(), 'wpComment' ) .
+                                       '</td>
+                                       <td class="mw-input">' .
+                                       Xml::input( 'wpComment', 50, $this->mComment, [ 'id' => 'wpComment' ] ) .
+                                       '</td>
+                                       </tr>
+                                       <tr>
+                                               <td>&#160;</td>
+                                               <td class="mw-submit">' .
+                                       Xml::submitButton(
+                                               $this->msg( 'mergehistory-submit' )->text(),
+                                               [ 'name' => 'merge', 'id' => 'mw-merge-submit' ]
+                                       ) .
+                                       '</td>
+                                       </tr>' .
+                                       Xml::closeElement( 'table' ) .
+                                       Xml::closeElement( 'fieldset' );
+
+                       $out->addHTML( $table );
+               }
+
+               $out->addHTML(
+                       '<h2 id="mw-mergehistory">' .
+                               $this->msg( 'mergehistory-list' )->escaped() . "</h2>\n"
+               );
 
                if ( $haveRevisions ) {
-                       $hiddenFields = [
-                               'merge' => true,
-                               'target' => $this->mOpts->getValue( 'target' ),
-                               'dest' => $this->mOpts->getValue( 'dest' ),
-                       ];
-
-                       $formDescriptor = [
-                               'reason' => [
-                                       'type' => 'text',
-                                       'name' => 'reason',
-                                       'label-message' => 'mergehistory-reason',
-                               ],
-                       ];
-
-                       $mergeText = $this->msg( 'mergehistory-merge',
-                               $this->mTargetObj->getPrefixedText(),
-                               $this->mDestObj->getPrefixedText()
-                       )->parse();
-
-                       $history = $header .
-                               $revisions->getNavigationBar() .
-                               '<ul>' .
-                               $revisions->getBody() .
-                               '</ul>' .
-                               $revisions->getNavigationBar();
-
-                       $form = HTMLForm::factory( 'ooui', $formDescriptor, $this->getContext() )
-                               ->addHiddenFields( $hiddenFields )
-                               ->setPreText( $mergeText )
-                               ->setFooterText( $history )
-                               ->setSubmitTextMsg( 'mergehistory-submit' )
-                               ->setMethod( 'post' )
-                               ->prepareForm()
-                               ->displayForm( false );
+                       $out->addHTML( $revisions->getNavigationBar() );
+                       $out->addHTML( '<ul>' );
+                       $out->addHTML( $revisions->getBody() );
+                       $out->addHTML( '</ul>' );
+                       $out->addHTML( $revisions->getNavigationBar() );
                } else {
-                       $out->addHTML( $header );
                        $out->addWikiMsg( 'mergehistory-empty' );
                }
 
@@ -203,6 +260,18 @@ class SpecialMergeHistory extends SpecialPage {
                $mergeLogPage = new LogPage( 'merge' );
                $out->addHTML( '<h2>' . $mergeLogPage->getName()->escaped() . "</h2>\n" );
                LogEventsList::showLogExtract( $out, 'merge', $this->mTargetObj );
+
+               # When we submit, go by page ID to avoid some nasty but unlikely collisions.
+               # Such would happen if a page was renamed after the form loaded, but before submit
+               $misc = Html::hidden( 'targetID', $this->mTargetObj->getArticleID() );
+               $misc .= Html::hidden( 'destID', $this->mDestObj->getArticleID() );
+               $misc .= Html::hidden( 'target', $this->mTarget );
+               $misc .= Html::hidden( 'dest', $this->mDest );
+               $misc .= Html::hidden( 'wpEditToken', $this->getUser()->getEditToken() );
+               $misc .= Xml::closeElement( 'form' );
+               $out->addHTML( $misc );
+
+               return true;
        }
 
        function formatRevisionRow( $row ) {
@@ -212,7 +281,7 @@ class SpecialMergeHistory extends SpecialPage {
                $last = $this->msg( 'last' )->escaped();
 
                $ts = wfTimestamp( TS_MW, $row->rev_timestamp );
-               $checkBox = Xml::radio( 'mergepoint', $ts, ( $this->mOpts->getValue( 'mergepoint' ) === $ts ) );
+               $checkBox = Xml::radio( 'mergepoint', $ts, ( $this->mTimestamp === $ts ) );
 
                $user = $this->getUser();
 
@@ -267,24 +336,23 @@ class SpecialMergeHistory extends SpecialPage {
         * @return bool Success
         */
        function merge() {
-               $opts = $this->mOpts;
-
                # Get the titles directly from the IDs, in case the target page params
                # were spoofed. The queries are done based on the IDs, so it's best to
                # keep it consistent...
-               $targetObj = $this->mTargetObj;
-               $destObj = $this->mDestObj;
-
-               if ( is_null( $targetObj ) || is_null( $destObj ) ||
-                       $targetObj->getArticleID() == $destObj->getArticleID() ) {
+               $targetTitle = Title::newFromID( $this->mTargetID );
+               $destTitle = Title::newFromID( $this->mDestID );
+               if ( is_null( $targetTitle ) || is_null( $destTitle ) ) {
+                       return false; // validate these
+               }
+               if ( $targetTitle->getArticleID() == $destTitle->getArticleID() ) {
                        return false;
                }
 
                // MergeHistory object
-               $mh = new MergeHistory( $targetObj, $destObj, $opts->getValue( 'mergepoint' ) );
+               $mh = new MergeHistory( $targetTitle, $destTitle, $this->mTimestamp );
 
                // Merge!
-               $mergeStatus = $mh->merge( $this->getUser(), $opts->getValue( 'reason' ) );
+               $mergeStatus = $mh->merge( $this->getUser(), $this->mComment );
                if ( !$mergeStatus->isOK() ) {
                        // Failed merge
                        $this->getOutput()->addWikiMsg( $mergeStatus->getMessage() );
@@ -292,7 +360,7 @@ class SpecialMergeHistory extends SpecialPage {
                }
 
                $targetLink = Linker::link(
-                       $targetObj,
+                       $targetTitle,
                        null,
                        [],
                        [ 'redirect' => 'no' ]
@@ -300,7 +368,7 @@ class SpecialMergeHistory extends SpecialPage {
 
                $this->getOutput()->addWikiMsg( $this->msg( 'mergehistory-done' )
                        ->rawParams( $targetLink )
-                       ->params( $destObj->getPrefixedText() )
+                       ->params( $destTitle->getPrefixedText() )
                        ->numParams( $mh->getMergedRevisionCount() )
                );
 
index f49d730..20a508d 100644 (file)
@@ -601,13 +601,14 @@ class MovePageForm extends UnlistedSpecialPage {
                $out = $this->getOutput();
                $out->setPageTitle( $this->msg( 'pagemovedsub' ) );
 
-               $oldLink = Linker::link(
+               $linkRenderer = $this->getLinkRenderer();
+               $oldLink = $linkRenderer->makeLink(
                        $ot,
                        null,
                        [ 'id' => 'movepage-oldlink' ],
                        [ 'redirect' => 'no' ]
                );
-               $newLink = Linker::linkKnown(
+               $newLink = $linkRenderer->makeKnownLink(
                        $nt,
                        null,
                        [ 'id' => 'movepage-newlink' ]
@@ -723,7 +724,7 @@ class MovePageForm extends UnlistedSpecialPage {
                        # be longer than 255 characters.
                        $newSubpage = Title::makeTitleSafe( $newNs, $newPageName );
                        if ( !$newSubpage ) {
-                               $oldLink = Linker::linkKnown( $oldSubpage );
+                               $oldLink = $linkRenderer->makeKnownLink( $oldSubpage );
                                $extraOutput[] = $this->msg( 'movepage-page-unmoved' )->rawParams( $oldLink )
                                        ->params( Title::makeName( $newNs, $newPageName ) )->escaped();
                                continue;
@@ -731,7 +732,7 @@ class MovePageForm extends UnlistedSpecialPage {
 
                        # This was copy-pasted from Renameuser, bleh.
                        if ( $newSubpage->exists() && !$oldSubpage->isValidMoveTarget( $newSubpage ) ) {
-                               $link = Linker::linkKnown( $newSubpage );
+                               $link = $linkRenderer->makeKnownLink( $newSubpage );
                                $extraOutput[] = $this->msg( 'movepage-page-exists' )->rawParams( $link )->escaped();
                        } else {
                                $success = $oldSubpage->moveTo( $newSubpage, true, $this->reason, $createRedirect );
@@ -740,14 +741,14 @@ class MovePageForm extends UnlistedSpecialPage {
                                        if ( $this->fixRedirects ) {
                                                DoubleRedirectJob::fixRedirects( 'move', $oldSubpage, $newSubpage );
                                        }
-                                       $oldLink = Linker::link(
+                                       $oldLink = $linkRenderer->makeLink(
                                                $oldSubpage,
                                                null,
                                                [],
                                                [ 'redirect' => 'no' ]
                                        );
 
-                                       $newLink = Linker::linkKnown( $newSubpage );
+                                       $newLink = $linkRenderer->makeKnownLink( $newSubpage );
                                        $extraOutput[] = $this->msg( 'movepage-page-moved' )
                                                ->rawParams( $oldLink, $newLink )->escaped();
                                        ++$count;
@@ -759,8 +760,8 @@ class MovePageForm extends UnlistedSpecialPage {
                                                break;
                                        }
                                } else {
-                                       $oldLink = Linker::linkKnown( $oldSubpage );
-                                       $newLink = Linker::link( $newSubpage );
+                                       $oldLink = $linkRenderer->makeKnownLink( $oldSubpage );
+                                       $newLink = $linkRenderer->makeLink( $newSubpage );
                                        $extraOutput[] = $this->msg( 'movepage-page-unmoved' )
                                                ->rawParams( $oldLink, $newLink )->escaped();
                                }
@@ -804,8 +805,9 @@ class MovePageForm extends UnlistedSpecialPage {
                $out->addWikiMsg( 'movesubpagetext', $this->getLanguage()->formatNum( $count ) );
                $out->addHTML( "<ul>\n" );
 
+               $linkRenderer = $this->getLinkRenderer();
                foreach ( $subpages as $subpage ) {
-                       $link = Linker::link( $subpage );
+                       $link = $linkRenderer->makeLink( $subpage );
                        $out->addHTML( "<li>$link</li>\n" );
                }
                $out->addHTML( "</ul>\n" );
index c24b054..718a6dc 100644 (file)
@@ -188,9 +188,13 @@ class SpecialNewpages extends IncludableSpecialPage {
                unset( $changed['offset'] ); // Reset offset if query type changes
 
                $self = $this->getPageTitle();
+               $linkRenderer = $this->getLinkRenderer();
                foreach ( $filters as $key => $msg ) {
                        $onoff = 1 - $this->opts->getValue( $key );
-                       $link = Linker::link( $self, $showhide[$onoff], [],
+                       $link = $linkRenderer->makeLink(
+                               $self,
+                               new HtmlArmor( $showhide[$onoff] ),
+                               [],
                                [ $key => $onoff ] + $changed
                        );
                        $links[$key] = $this->msg( $msg )->rawParams( $link )->escaped();
@@ -307,28 +311,25 @@ class SpecialNewpages extends IncludableSpecialPage {
                $spanTime = Html::element( 'span', [ 'class' => 'mw-newpages-time' ],
                        $lang->userTimeAndDate( $result->rc_timestamp, $this->getUser() )
                );
-               $time = Linker::linkKnown(
+               $linkRenderer = $this->getLinkRenderer();
+               $time = $linkRenderer->makeKnownLink(
                        $title,
-                       $spanTime,
+                       new HtmlArmor( $spanTime ),
                        [],
-                       [ 'oldid' => $result->rc_this_oldid ],
-                       []
+                       [ 'oldid' => $result->rc_this_oldid ]
                );
 
                $query = $title->isRedirect() ? [ 'redirect' => 'no' ] : [];
 
-               // Linker::linkKnown() uses 'known' and 'noclasses' options.
-               // This breaks the colouration for stubs.
-               $plink = Linker::link(
+               $plink = $linkRenderer->makeKnownLink(
                        $title,
                        null,
                        [ 'class' => 'mw-newpages-pagename' ],
-                       $query,
-                       [ 'known' ]
+                       $query
                );
-               $histLink = Linker::linkKnown(
+               $histLink = $linkRenderer->makeKnownLink(
                        $title,
-                       $this->msg( 'hist' )->escaped(),
+                       $this->msg( 'hist' )->text(),
                        [],
                        [ 'action' => 'history' ]
                );
@@ -478,4 +479,8 @@ class SpecialNewpages extends IncludableSpecialPage {
        protected function getGroupName() {
                return 'changes';
        }
+
+       protected function getCacheTTL() {
+               return 60 * 5;
+       }
 }
index 6db4f2c..87a5b27 100644 (file)
@@ -166,6 +166,8 @@ class SpecialPrefixindex extends SpecialAllPages {
                $prefixList = $this->getNamespaceKeyAndText( $namespace, $prefix );
                $namespaces = $wgContLang->getNamespaces();
                $res = null;
+               $n = 0;
+               $nextRow = null;
 
                if ( !$prefixList || !$fromList ) {
                        $out = $this->msg( 'allpagesbadtitle' )->parseAsBlock();
@@ -207,7 +209,6 @@ class SpecialPrefixindex extends SpecialAllPages {
 
                        // @todo FIXME: Side link to previous
 
-                       $n = 0;
                        if ( $res->numRows() > 0 ) {
                                $out = Html::openElement( 'ul', [ 'class' => 'mw-prefixindex-list' ] );
                                $linkCache = MediaWikiServices::getInstance()->getLinkCache();
@@ -215,6 +216,7 @@ class SpecialPrefixindex extends SpecialAllPages {
                                $prefixLength = strlen( $prefix );
                                foreach ( $res as $row ) {
                                        if ( $n >= $this->maxPerPage ) {
+                                               $nextRow = $row;
                                                break;
                                        }
                                        $title = Title::newFromRow( $row );
@@ -259,9 +261,9 @@ class SpecialPrefixindex extends SpecialAllPages {
 
                $topOut = $this->namespacePrefixForm( $namespace, $prefix );
 
-               if ( $res && ( $n == $this->maxPerPage ) && ( $s = $res->fetchObject() ) ) {
+               if ( $res && ( $n == $this->maxPerPage ) && $nextRow ) {
                        $query = [
-                               'from' => $s->page_title,
+                               'from' => $nextRow->page_title,
                                'prefix' => $prefix,
                                'hideredirects' => $this->hideRedirects,
                                'stripprefix' => $this->stripPrefix,
@@ -275,7 +277,7 @@ class SpecialPrefixindex extends SpecialAllPages {
 
                        $nextLink = Linker::linkKnown(
                                $this->getPageTitle(),
-                               $this->msg( 'nextpage', str_replace( '_', ' ', $s->page_title ) )->escaped(),
+                               $this->msg( 'nextpage', str_replace( '_', ' ', $nextRow->page_title ) )->escaped(),
                                [],
                                $query
                        );
index efb1748..a5e538f 100644 (file)
  * @ingroup SpecialPage
  */
 class SpecialRandomInCategory extends FormSpecialPage {
+       /** @var string[] */
        protected $extra = []; // Extra SQL statements
+       /** @var Title|false */
        protected $category = false; // Title object of category
+       /** @var int */
        protected $maxOffset = 30; // Max amount to fudge randomness by.
+       /** @var int|null */
        private $maxTimestamp = null;
+       /** @var int|null */
        private $minTimestamp = null;
 
        public function __construct( $name = 'RandomInCategory' ) {
index b6398cb..d4fb72c 100644 (file)
@@ -310,7 +310,7 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
        /**
         * Build and output the actual changes list.
         *
-        * @param array $rows Database rows
+        * @param ResultWrapper $rows Database rows
         * @param FormOptions $opts
         */
        public function outputChangesList( $rows, $opts ) {
@@ -794,4 +794,9 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
        public function isIncludable() {
                return true;
        }
+
+       protected function getCacheTTL() {
+               return 60 * 5;
+       }
+
 }
index d474ba5..aed2fa6 100644 (file)
@@ -105,7 +105,7 @@ class SpecialSearch extends SpecialPage {
                $out = $this->getOutput();
                $out->allowClickjacking();
                $out->addModuleStyles( [
-                       'mediawiki.special', 'mediawiki.special.search', 'mediawiki.ui', 'mediawiki.ui.button',
+                       'mediawiki.special', 'mediawiki.special.search.styles', 'mediawiki.ui', 'mediawiki.ui.button',
                        'mediawiki.ui.input', 'mediawiki.widgets.SearchInputWidget.styles',
                ] );
                $this->addHelpLink( 'Help:Searching' );
@@ -485,7 +485,9 @@ class SpecialSearch extends SpecialPage {
        protected function getDidYouMeanHtml( SearchResultSet $textMatches ) {
                # mirror Go/Search behavior of original request ..
                $params = [ 'search' => $textMatches->getSuggestionQuery() ];
-               if ( $this->fulltext != null ) {
+               if ( $this->fulltext === null ) {
+                       $params['fulltext'] = 'Search';
+               } else {
                        $params['fulltext'] = $this->fulltext;
                }
                $stParams = array_merge( $params, $this->powerSearchOptions() );
@@ -519,7 +521,9 @@ class SpecialSearch extends SpecialPage {
                // Search instead for '$orig'
 
                $params = [ 'search' => $textMatches->getQueryAfterRewrite() ];
-               if ( $this->fulltext != null ) {
+               if ( $this->fulltext === null ) {
+                       $params['fulltext'] = 'Search';
+               } else {
                        $params['fulltext'] = $this->fulltext;
                }
                $stParams = array_merge( $params, $this->powerSearchOptions() );
@@ -716,7 +720,7 @@ class SpecialSearch extends SpecialPage {
 
                $out .= "<ul class='mw-search-results'>\n";
                while ( $result ) {
-                       $out .= $this->showHit( $result, $terms, ++$pos );
+                       $out .= $this->showHit( $result, $terms, $pos++ );
                        $result = $matches->next();
                }
                $out .= "</ul>\n";
@@ -1162,7 +1166,8 @@ class SpecialSearch extends SpecialPage {
         * @return string
         */
        protected function searchProfileTabs( $term ) {
-               $out = Xml::openElement( 'div', [ 'class' => 'mw-search-profile-tabs' ] );
+               $out = Html::element( 'div', [ 'class' => 'visualClear' ] ) .
+                       Xml::openElement( 'div', [ 'class' => 'mw-search-profile-tabs' ] );
 
                $bareterm = $term;
                if ( $this->startsWithImage( $term ) ) {
@@ -1241,16 +1246,19 @@ class SpecialSearch extends SpecialPage {
                        'dataLocation' => 'content',
                ] );
 
+               $layout = new OOUI\ActionFieldLayout( $searchWidget, new OOUI\ButtonInputWidget( [
+                       'type' => 'submit',
+                       'label' => $this->msg( 'searchbutton' )->text(),
+                       'flags' => [ 'progressive', 'primary' ],
+               ] ), [
+                       'align' => 'top',
+               ] );
+
                $out =
                        Html::hidden( 'title', $this->getPageTitle()->getPrefixedText() ) .
                        Html::hidden( 'profile', $this->profile ) .
                        Html::hidden( 'fulltext', 'Search' ) .
-                       $searchWidget .
-                       new OOUI\ButtonInputWidget( [
-                               'type' => 'submit',
-                               'label' => $this->msg( 'searchbutton' )->text(),
-                               'flags' => [ 'progressive', 'primary' ],
-                       ] );
+                       $layout;
 
                // Results-info
                if ( $totalNum > 0 && $this->offset < $totalNum ) {
@@ -1258,8 +1266,7 @@ class SpecialSearch extends SpecialPage {
                                ->numParams( $this->offset + 1, $this->offset + $resultsShown, $totalNum )
                                ->numParams( $resultsShown )
                                ->parse();
-                       $out .= Xml::tags( 'div', [ 'class' => 'results-info' ], $top ) .
-                               Xml::element( 'div', [ 'style' => 'clear:both' ], '', false );
+                       $out .= Xml::tags( 'div', [ 'class' => 'results-info' ], $top );
                }
 
                return $out;
index f2eb88d..4c892b2 100644 (file)
@@ -53,6 +53,7 @@ class SpecialTrackingCategories extends SpecialPage {
                'node-count-exceeded-category',
                'expansion-depth-exceeded-category',
                'restricted-displaytitle-ignored',
+               'deprecated-self-close-category',
        ];
 
        function execute( $par ) {
index b0a2579..f73be43 100644 (file)
@@ -71,16 +71,17 @@ class UnusedtemplatesPage extends QueryPage {
         * @return string
         */
        function formatResult( $skin, $result ) {
+               $linkRenderer = $this->getLinkRenderer();
                $title = Title::makeTitle( NS_TEMPLATE, $result->title );
-               $pageLink = Linker::linkKnown(
+               $pageLink = $linkRenderer->makeKnownLink(
                        $title,
                        null,
                        [],
                        [ 'redirect' => 'no' ]
                );
-               $wlhLink = Linker::linkKnown(
+               $wlhLink = $linkRenderer->makeKnownLink(
                        SpecialPage::getTitleFor( 'Whatlinkshere', $title->getPrefixedText() ),
-                       $this->msg( 'unusedtemplateswlh' )->escaped()
+                       $this->msg( 'unusedtemplateswlh' )->text()
                );
 
                return $this->getLanguage()->specialList( $pageLink, $wlhLink );
index 09111f6..0ef6af1 100644 (file)
@@ -368,7 +368,7 @@ class SpecialUpload extends SpecialPage {
                $sessionKey = $this->mUpload->stashSession();
 
                // Add styles for the warning, reused from the live preview
-               $this->getOutput()->addModuleStyles( 'mediawiki.special.upload' );
+               $this->getOutput()->addModuleStyles( 'mediawiki.special.upload.styles' );
 
                $warningHtml = '<h2>' . $this->msg( 'uploadwarning' )->escaped() . "</h2>\n"
                        . '<div class="mw-destfile-warning"><ul>';
@@ -535,7 +535,7 @@ class SpecialUpload extends SpecialPage {
                );
 
                if ( !$status->isGood() ) {
-                       $this->showUploadError( $this->getOutput()->parse( $status->getWikiText() ) );
+                       $this->showRecoverableUploadError( $this->getOutput()->parse( $status->getWikiText() ) );
 
                        return;
                }
index 28c68aa..db20d87 100644 (file)
@@ -23,7 +23,6 @@
 
 use MediaWiki\Auth\AuthManager;
 use MediaWiki\Logger\LoggerFactory;
-use Psr\Log\LogLevel;
 
 /**
  * Implements Special:UserLogin
@@ -154,7 +153,7 @@ class SpecialUserLogin extends LoginSignupSpecialPage {
        }
 
        protected function logAuthResult( $success, $status = null ) {
-               LoggerFactory::getInstance( 'authmanager-stats' )->info( 'Login attempt', [
+               LoggerFactory::getInstance( 'authmanager' )->info( 'Login attempt', [
                        'event' => 'login',
                        'successful' => $success,
                        'status' => $status,
index ce5cbeb..6f71a51 100644 (file)
@@ -184,7 +184,7 @@ class SpecialVersion extends SpecialPage {
                                wfMessage( 'version-poweredby-others' )->text() . ']]';
                }
 
-               $translatorsLink = '[//translatewiki.net/wiki/Translating:MediaWiki/Credits ' .
+               $translatorsLink = '[https://translatewiki.net/wiki/Translating:MediaWiki/Credits ' .
                        wfMessage( 'version-poweredby-translators' )->text() . ']';
 
                $authorList = [
index 8e4fbaa..60f642d 100644 (file)
@@ -306,9 +306,8 @@ class AllMessagesTablePager extends TablePager {
                                                'title' => 'Special:SearchTranslations',
                                                'group' => 'mediawiki',
                                                'grouppath' => 'mediawiki',
-                                               'query' => 'language:' . $this->getLanguage()->getCode() . '^25 ' .
-                                                       'messageid:"MediaWiki:' . $value . '"^10 "' .
-                                                       $this->msg( $value )->inLanguage( 'en' )->plain() . '"'
+                                               'language' => $this->getLanguage()->getCode(),
+                                               'query' => $value . ' ' . $this->msg( $value )->plain()
                                        ] ),
                                        $this->msg( 'allmessages-filter-translate' )->text()
                                );
index cba4952..b78fed8 100644 (file)
@@ -18,6 +18,7 @@
  * @file
  * @ingroup Pager
  */
+use MediaWiki\Linker\LinkRenderer;
 
 /**
  * @ingroup Pager
 class CategoryPager extends AlphabeticPager {
 
        /**
-        * @var PageLinkRenderer
+        * @var LinkRenderer
         */
        protected $linkRenderer;
 
        /**
         * @param IContextSource $context
         * @param string $from
-        * @param PageLinkRenderer $linkRenderer
+        * @param LinkRenderer $linkRenderer
         */
-       public function __construct( IContextSource $context, $from, PageLinkRenderer $linkRenderer
+       public function __construct( IContextSource $context, $from, LinkRenderer $linkRenderer
        ) {
                parent::__construct( $context );
                $from = str_replace( ' ', '_', $from );
@@ -74,7 +75,7 @@ class CategoryPager extends AlphabeticPager {
                $this->mResult->rewind();
 
                foreach ( $this->mResult as $row ) {
-                       $batch->addObj( Title::makeTitleSafe( NS_CATEGORY, $row->cat_title ) );
+                       $batch->addObj( new TitleValue( NS_CATEGORY, $row->cat_title ) );
                }
                $batch->execute();
                $this->mResult->rewind();
@@ -85,7 +86,7 @@ class CategoryPager extends AlphabeticPager {
        function formatRow( $result ) {
                $title = new TitleValue( NS_CATEGORY, $result->cat_title );
                $text = $title->getText();
-               $link = $this->linkRenderer->renderHtmlLink( $title, $text );
+               $link = $this->linkRenderer->makeLink( $title, $text );
 
                $count = $this->msg( 'nmembers' )->numParams( $result->cat_pages )->escaped();
                return Html::rawElement( 'li', null, $this->getLanguage()->specialList( $link, $count ) ) . "\n";
index d90c37b..fe0b4fe 100644 (file)
@@ -64,6 +64,7 @@ class ContribsPager extends ReverseChronologicalPager {
                $this->deletedOnly = !empty( $options['deletedOnly'] );
                $this->topOnly = !empty( $options['topOnly'] );
                $this->newOnly = !empty( $options['newOnly'] );
+               $this->hideMinor = !empty( $options['hideMinor'] );
 
                $year = isset( $options['year'] ) ? $options['year'] : false;
                $month = isset( $options['month'] ) ? $options['month'] : false;
@@ -246,6 +247,10 @@ class ContribsPager extends ReverseChronologicalPager {
                        $condition[] = 'rev_parent_id = 0';
                }
 
+               if ( $this->hideMinor ) {
+                       $condition[] = 'rev_minor_edit = 0';
+               }
+
                return [ $tables, $index, $condition, $join_conds ];
        }
 
@@ -366,8 +371,9 @@ class ContribsPager extends ReverseChronologicalPager {
                        # Mark current revisions
                        $topmarktext = '';
                        $user = $this->getUser();
-                       if ( $row->rev_id == $row->page_latest ) {
+                       if ( $row->rev_id === $row->page_latest ) {
                                $topmarktext .= '<span class="mw-uctop">' . $this->messages['uctop'] . '</span>';
+                               $classes[] = 'mw-contributions-current';
                                # Add rollback link
                                if ( !$row->page_is_new && $page->quickUserCan( 'rollback', $user )
                                        && $page->quickUserCan( 'edit', $user )
@@ -447,16 +453,13 @@ class ContribsPager extends ReverseChronologicalPager {
                                $userlink = '';
                        }
 
+                       $flags = [];
                        if ( $rev->getParentId() === 0 ) {
-                               $nflag = ChangesList::flag( 'newpage' );
-                       } else {
-                               $nflag = '';
+                               $flags[] = ChangesList::flag( 'newpage' );
                        }
 
                        if ( $rev->isMinor() ) {
-                               $mflag = ChangesList::flag( 'minor' );
-                       } else {
-                               $mflag = '';
+                               $flags[] = ChangesList::flag( 'minor' );
                        }
 
                        $del = Linker::getRevDeleteLink( $user, $rev, $page );
@@ -467,15 +470,6 @@ class ContribsPager extends ReverseChronologicalPager {
                        $diffHistLinks = $this->msg( 'parentheses' )
                                ->rawParams( $difftext . $this->messages['pipe-separator'] . $histlink )
                                ->escaped();
-                       $ret = "{$del}{$d} {$diffHistLinks}{$chardiff}{$nflag}{$mflag} ";
-                       $ret .= "{$link}{$userlink} {$comment} {$topmarktext}";
-
-                       # Denote if username is redacted for this edit
-                       if ( $rev->isDeleted( Revision::DELETED_USER ) ) {
-                               $ret .= " <strong>" .
-                                       $this->msg( 'rev-deleted-user-contribs' )->escaped() .
-                                       "</strong>";
-                       }
 
                        # Tags, if any.
                        list( $tagSummary, $newClasses ) = ChangeTags::formatSummaryRow(
@@ -484,20 +478,49 @@ class ContribsPager extends ReverseChronologicalPager {
                                $this->getContext()
                        );
                        $classes = array_merge( $classes, $newClasses );
-                       $ret .= " $tagSummary";
+
+                       Hooks::run( 'SpecialContributions::formatRow::flags', [ $this->getContext(), $row, &$flags ] );
+
+                       $templateParams = [
+                               'del' => $del,
+                               'timestamp' => $d,
+                               'diffHistLinks' => $diffHistLinks,
+                               'charDifference' => $chardiff,
+                               'flags' => $flags,
+                               'articleLink' => $link,
+                               'userlink' => $userlink,
+                               'logText' => $comment,
+                               'topmarktext' => $topmarktext,
+                               'tagSummary' => $tagSummary,
+                       ];
+
+                       # Denote if username is redacted for this edit
+                       if ( $rev->isDeleted( Revision::DELETED_USER ) ) {
+                               $templateParams['rev-deleted-user-contribs'] =
+                                       $this->msg( 'rev-deleted-user-contribs' )->escaped();
+                       }
+
+                       $templateParser = new TemplateParser();
+                       $ret = $templateParser->processTemplate(
+                               'SpecialContributionsLine',
+                               $templateParams
+                       );
                }
 
                // Let extensions add data
                Hooks::run( 'ContributionsLineEnding', [ $this, &$ret, $row, &$classes ] );
 
+               // TODO: Handle exceptions in the catch block above.  Do any extensions rely on
+               // receiving empty rows?
+
                if ( $classes === [] && $ret === '' ) {
                        wfDebug( "Dropping Special:Contribution row that could not be formatted\n" );
-                       $ret = "<!-- Could not format Special:Contribution row. -->\n";
-               } else {
-                       $ret = Html::rawElement( 'li', [ 'class' => $classes ], $ret ) . "\n";
+                       return "<!-- Could not format Special:Contribution row. -->\n";
                }
 
-               return $ret;
+               // FIXME: The signature of the ContributionsLineEnding hook makes it
+               // very awkward to move this LI wrapper into the template.
+               return Html::rawElement( 'li', [ 'class' => $classes ], $ret ) . "\n";
        }
 
        /**
index e745129..951cb52 100644 (file)
@@ -699,7 +699,7 @@ class LoginFormPreAuthManager extends SpecialPage {
 
                $u->setEmail( $this->mEmail );
                $u->setRealName( $this->mRealName );
-               SessionManager::singleton()->invalidateSessionsForUser( $u );
+               $u->setToken();
 
                Hooks::run( 'LocalUserCreated', [ $u, $autocreate ] );
                $oldUser = $u;
@@ -1718,6 +1718,7 @@ class LoginFormPreAuthManager extends SpecialPage {
                }
 
                SessionManager::getGlobalSession()->resetId();
+               SessionManager::getGlobalSession()->resetAllTokens();
        }
 
        /**
diff --git a/includes/templates/SpecialContributionsLine.mustache b/includes/templates/SpecialContributionsLine.mustache
new file mode 100644 (file)
index 0000000..7a33401
--- /dev/null
@@ -0,0 +1,6 @@
+{{{ del }}}{{{ timestamp }}}
+{{{ diffHistLinks }}}{{{ charDifference }}}{{# flags }}{{{ . }}}{{/ flags }}
+{{{ articleLink }}}{{{ userlink }}}
+{{{ logText }}}
+{{{ topmarktext }}}{{# rev-deleted-user-contribs }} <strong>{{{ . }}}</strong>{{/ rev-deleted-user-contribs }}
+{{{ tagSummary }}}
diff --git a/includes/tidy/Balancer.php b/includes/tidy/Balancer.php
new file mode 100644 (file)
index 0000000..9e96b14
--- /dev/null
@@ -0,0 +1,3221 @@
+<?php
+/**
+ * An implementation of the tree building portion of the HTML5 parsing
+ * spec.
+ *
+ * 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 Parser
+ * @since 1.27
+ * @author C. Scott Ananian, 2016
+ */
+namespace MediaWiki\Tidy;
+
+use Wikimedia\Assert\Assert;
+use Wikimedia\Assert\ParameterAssertionException;
+use \ExplodeIterator;
+use \IteratorAggregate;
+use \ReverseArrayIterator;
+use \Sanitizer;
+
+# A note for future librarization[1] -- this file is a good candidate
+# for splitting into an independent library, except that it is currently
+# highly optimized for MediaWiki use.  It only implements the portions
+# of the HTML5 tree builder used by tags supported by MediaWiki, and
+# does not contain a true tokenizer pass, instead relying on
+# comment stripping, attribute normalization, and escaping done by
+# the MediaWiki Sanitizer.  It also deliberately avoids building
+# a true DOM in memory, instead serializing elements to an output string
+# as soon as possible (usually as soon as the tag is closed) to reduce
+# its memory footprint.
+
+# On the other hand, I've been pretty careful to note with comments in the
+# code the places where this implementation omits features of the spec or
+# depends on the MediaWiki Sanitizer.  Perhaps in the future we'll want to
+# implement the missing pieces and make this a standalone PHP HTML5 parser.
+# In order to do so, some sort of MediaWiki-specific API will need
+# to be added to (a) allow the Balancer to bypass the tokenizer,
+# and (b) support on-the-fly flattening instead of DOM node creation.
+
+# [1]: https://www.mediawiki.org/wiki/Library_infrastructure_for_MediaWiki
+
+/**
+ * Utility constants and sets for the HTML5 tree building algorithm.
+ * Sets are associative arrays indexed first by namespace and then by
+ * lower-cased tag name.
+ *
+ * @ingroup Parser
+ * @since 1.27
+ */
+class BalanceSets {
+       const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';
+       const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';
+       const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';
+
+       public static $unsupportedSet = [
+               self::HTML_NAMESPACE => [
+                       'html' => true, 'head' => true, 'body' => true, 'frameset' => true,
+                       'form' => true, 'frame' => true,
+                       'plaintext' => true, 'isindex' => true, 'textarea' => true,
+                       'xmp' => true, 'iframe' => true, 'noembed' => true,
+                       'noscript' => true, 'select' => true, 'script' => true,
+                       'title' => true
+               ]
+       ];
+
+       public static $emptyElementSet = [
+               self::HTML_NAMESPACE => [
+                       'area' => true, 'base' => true, 'basefont' => true,
+                       'bgsound' => true, 'br' => true, 'col' => true, 'command' => true,
+                       'embed' => true, 'frame' => true, 'hr' => true, 'img' => true,
+                       'input' => true, 'keygen' => true, 'link' => true, 'meta' => true,
+                       'param' => true, 'source' => true, 'track' => true, 'wbr' => true
+               ]
+       ];
+
+       public static $headingSet = [
+               self::HTML_NAMESPACE => [
+                       'h1' => true, 'h2' => true, 'h3' => true,
+                       'h4' => true, 'h5' => true, 'h6' => true
+               ]
+       ];
+
+       public static $specialSet = [
+               self::HTML_NAMESPACE => [
+                       'address' => true, 'applet' => true, 'area' => true,
+                       'article' => true, 'aside' => true, 'base' => true,
+                       'basefont' => true, 'bgsound' => true, 'blockquote' => true,
+                       'body' => true, 'br' => true, 'button' => true, 'caption' => true,
+                       'center' => true, 'col' => true, 'colgroup' => true, 'dd' => true,
+                       'details' => true, 'dir' => true, 'div' => true, 'dl' => true,
+                       'dt' => true, 'embed' => true, 'fieldset' => true,
+                       'figcaption' => true, 'figure' => true, 'footer' => true,
+                       'form' => true, 'frame' => true, 'frameset' => true, 'h1' => true,
+                       'h2' => true, 'h3' => true, 'h4' => true, 'h5' => true,
+                       'h6' => true, 'head' => true, 'header' => true, 'hgroup' => true,
+                       'hr' => true, 'html' => true, 'iframe' => true, 'img' => true,
+                       'input' => true, 'isindex' => true, 'li' => true, 'link' => true,
+                       'listing' => true, 'main' => true, 'marquee' => true,
+                       'menu' => true, 'menuitem' => true, 'meta' => true, 'nav' => true,
+                       'noembed' => true, 'noframes' => true, 'noscript' => true,
+                       'object' => true, 'ol' => true, 'p' => true, 'param' => true,
+                       'plaintext' => true, 'pre' => true, 'script' => true,
+                       'section' => true, 'select' => true, 'source' => true,
+                       'style' => true, 'summary' => true, 'table' => true,
+                       'tbody' => true, 'td' => true, 'template' => true,
+                       'textarea' => true, 'tfoot' => true, 'th' => true, 'thead' => true,
+                       'title' => true, 'tr' => true, 'track' => true, 'ul' => true,
+                       'wbr' => true, 'xmp' => true
+               ],
+               self::SVG_NAMESPACE => [
+                       'foreignobject' => true, 'desc' => true, 'title' => true
+               ],
+               self::MATHML_NAMESPACE => [
+                       'mi' => true, 'mo' => true, 'mn' => true, 'ms' => true,
+                       'mtext' => true, 'annotation-xml' => true
+               ]
+       ];
+
+       public static $addressDivPSet = [
+               self::HTML_NAMESPACE => [
+                       'address' => true, 'div' => true, 'p' => true
+               ]
+       ];
+
+       public static $tableSectionRowSet = [
+               self::HTML_NAMESPACE => [
+                       'table' => true, 'thead' => true, 'tbody' => true,
+                       'tfoot' => true, 'tr' => true
+               ]
+       ];
+
+       public static $impliedEndTagsSet = [
+               self::HTML_NAMESPACE => [
+                       'dd' => true, 'dt' => true, 'li' => true, 'optgroup' => true,
+                       'option' => true, 'p' => true, 'rb' => true, 'rp' => true,
+                       'rt' => true, 'rtc' => true
+               ]
+       ];
+
+       public static $thoroughImpliedEndTagsSet = [
+               self::HTML_NAMESPACE => [
+                       'caption' => true, 'colgroup' => true, 'dd' => true, 'dt' => true,
+                       'li' => true, 'optgroup' => true, 'option' => true, 'p' => true,
+                       'rb' => true, 'rp' => true, 'rt' => true, 'rtc' => true,
+                       'tbody' => true, 'td' => true, 'tfoot' => true, 'th' => true,
+                       'thead' => true, 'tr' => true
+               ]
+       ];
+
+       public static $tableCellSet = [
+               self::HTML_NAMESPACE => [
+                       'td' => true, 'th' => true
+               ]
+       ];
+       public static $tableContextSet = [
+               self::HTML_NAMESPACE => [
+                       'table' => true, 'template' => true, 'html' => true
+               ]
+       ];
+
+       public static $tableBodyContextSet = [
+               self::HTML_NAMESPACE => [
+                       'tbody' => true, 'tfoot' => true, 'thead' => true,
+                       'template' => true, 'html' => true
+               ]
+       ];
+
+       public static $tableRowContextSet = [
+               self::HTML_NAMESPACE => [
+                       'tr' => true, 'template' => true, 'html' => true
+               ]
+       ];
+
+       # OMITTED: formAssociatedSet, since we don't allow <form>
+
+       public static $inScopeSet = [
+               self::HTML_NAMESPACE => [
+                       'applet' => true, 'caption' => true, 'html' => true,
+                       'marquee' => true, 'object' => true,
+                       'table' => true, 'td' => true, 'template' => true,
+                       'th' => true
+               ],
+               self::SVG_NAMESPACE => [
+                       'foreignobject' => true, 'desc' => true, 'title' => true
+               ],
+               self::MATHML_NAMESPACE => [
+                       'mi' => true, 'mo' => true, 'mn' => true, 'ms' => true,
+                       'mtext' => true, 'annotation-xml' => true
+               ]
+       ];
+
+       private static $inListItemScopeSet = null;
+       public static function inListItemScopeSet() {
+               if ( self::$inListItemScopeSet === null ) {
+                       self::$inListItemScopeSet = self::$inScopeSet;
+                       self::$inListItemScopeSet[self::HTML_NAMESPACE]['ol'] = true;
+                       self::$inListItemScopeSet[self::HTML_NAMESPACE]['ul'] = true;
+               }
+               return self::$inListItemScopeSet;
+       }
+
+       private static $inButtonScopeSet = null;
+       public static function inButtonScopeSet() {
+               if ( self::$inButtonScopeSet === null ) {
+                       self::$inButtonScopeSet = self::$inScopeSet;
+                       self::$inButtonScopeSet[self::HTML_NAMESPACE]['button'] = true;
+               }
+               return self::$inButtonScopeSet;
+       }
+
+       public static $inTableScopeSet = [
+               self::HTML_NAMESPACE => [
+                       'html' => true, 'table' => true, 'template' => true
+               ]
+       ];
+
+       public static $mathmlTextIntegrationPointSet = [
+               self::MATHML_NAMESPACE => [
+                       'mi' => true, 'mo' => true, 'mn' => true, 'ms' => true,
+                       'mtext' => true
+               ]
+       ];
+
+       public static $htmlIntegrationPointSet = [
+               self::SVG_NAMESPACE => [
+                       'foreignobject' => true,
+                       'desc' => true,
+                       'title' => true
+               ]
+       ];
+
+       // For tidy compatibility.
+       public static $tidyPWrapSet = [
+               self::HTML_NAMESPACE => [
+                       'body' => true, 'blockquote' => true,
+                       // We parse with <body> as the fragment context, but the top-level
+                       // element on the stack is actually <html>.  We could use the
+                       // "adjusted current node" everywhere to work around this, but it's
+                       // easier just to add <html> to the p-wrap set.
+                       'html' => true,
+               ],
+       ];
+       public static $tidyInlineSet = [
+               self::HTML_NAMESPACE => [
+                       'a' => true, 'abbr' => true, 'acronym' => true, 'applet' => true,
+                       'b' => true, 'basefont' => true, 'bdo' => true, 'big' => true,
+                       'br' => true, 'button' => true, 'cite' => true, 'code' => true,
+                       'dfn' => true, 'em' => true, 'font' => true, 'i' => true,
+                       'iframe' => true, 'img' => true, 'input' => true, 'kbd' => true,
+                       'label' => true, 'legend' => true, 'map' => true, 'object' => true,
+                       'param' => true, 'q' => true, 'rb' => true, 'rbc' => true,
+                       'rp' => true, 'rt' => true, 'rtc' => true, 'ruby' => true,
+                       's' => true, 'samp' => true, 'select' => true, 'small' => true,
+                       'span' => true, 'strike' => true, 'strong' => true, 'sub' => true,
+                       'sup' => true, 'textarea' => true, 'tt' => true, 'u' => true,
+                       'var' => true,
+               ],
+       ];
+}
+
+/**
+ * A BalanceElement is a simplified version of a DOM Node.  The main
+ * difference is that we only keep BalanceElements around for nodes
+ * currently on the BalanceStack of open elements.  As soon as an
+ * element is closed, with some minor exceptions relating to the
+ * tree builder "adoption agency algorithm", the element and all its
+ * children are serialized to a string using the flatten() method.
+ * This keeps our memory usage low.
+ *
+ * @ingroup Parser
+ * @since 1.27
+ */
+class BalanceElement {
+       /**
+        * The namespace of the element.
+        * @var string $namespaceURI
+        */
+       public $namespaceURI;
+       /**
+        * The lower-cased name of the element.
+        * @var string $localName
+        */
+       public $localName;
+       /**
+        * Attributes for the element, in array form
+        * @var array $attribs
+        */
+       public $attribs;
+
+       /**
+        * Parent of this element, or the string "flat" if this element has
+        * already been flattened into its parent.
+        * @var string|null $parent
+        */
+       public $parent;
+
+       /**
+        * An array of children of this element.  Typically only the last
+        * child will be an actual BalanceElement object; the rest will
+        * be strings, representing either text nodes or flattened
+        * BalanceElement objects.
+        * @var array $children
+        */
+       public $children;
+
+       /**
+        * A unique string identifier for Noah's Ark purposes, lazy initialized
+        */
+       private $noahKey;
+
+       /**
+        * The next active formatting element in the list, or null if this is the
+        * end of the AFE list or if the element is not in the AFE list.
+        */
+       public $nextAFE;
+
+       /**
+        * The previous active formatting element in the list, or null if this is
+        * the start of the list or if the element is not in the AFE list.
+        */
+       public $prevAFE;
+
+       /**
+        * The next element in the Noah's Ark species bucket.
+        */
+       public $nextNoah;
+
+       /**
+        * Make a new BalanceElement corresponding to the HTML DOM Element
+        * with the given localname, namespace, and attributes.
+        *
+        * @param string $namespaceURI The namespace of the element.
+        * @param string $localName The lowercased name of the tag.
+        * @param array $attribs Attributes of the element
+        */
+       public function __construct( $namespaceURI, $localName, array $attribs ) {
+               $this->localName = $localName;
+               $this->namespaceURI = $namespaceURI;
+               $this->attribs = $attribs;
+               $this->contents = '';
+               $this->parent = null;
+               $this->children = [];
+       }
+
+       /**
+        * Remove the given child from this element.
+        * @param BalanceElement $elt
+        */
+       private function removeChild( BalanceElement $elt ) {
+               Assert::precondition(
+                       $this->parent !== 'flat', "Can't removeChild after flattening $this"
+               );
+               Assert::parameter(
+                       $elt->parent === $this, 'elt', 'must have $this as a parent'
+               );
+               $idx = array_search( $elt, $this->children, true );
+               Assert::parameter( $idx !== false, '$elt', 'must be a child of $this' );
+               $elt->parent = null;
+               array_splice( $this->children, $idx, 1 );
+       }
+
+       /**
+        * Find $a in the list of children and insert $b before it.
+        * @param BalanceElement $a
+        * @param BalanceElement|string $b
+        */
+       public function insertBefore( BalanceElement $a, $b ) {
+               Assert::precondition(
+                       $this->parent !== 'flat', "Can't insertBefore after flattening."
+               );
+               $idx = array_search( $a, $this->children, true );
+               Assert::parameter( $idx !== false, '$a', 'must be a child of $this' );
+               if ( is_string( $b ) ) {
+                       array_splice( $this->children, $idx, 0, [ $b ] );
+               } else {
+                       Assert::parameter( $b->parent !== 'flat', '$b', "Can't be flat" );
+                       if ( $b->parent !== null ) {
+                               $b->parent->removeChild( $b );
+                       }
+                       array_splice( $this->children, $idx, 0, [ $b ] );
+                       $b->parent = $this;
+               }
+       }
+
+       /**
+        * Append $elt to the end of the list of children.
+        * @param BalanceElement|string $elt
+        */
+       public function appendChild( $elt ) {
+               Assert::precondition(
+                       $this->parent !== 'flat', "Can't appendChild after flattening."
+               );
+               if ( is_string( $elt ) ) {
+                       array_push( $this->children, $elt );
+                       return;
+               }
+               // Remove $elt from parent, if it had one.
+               if ( $elt->parent !== null ) {
+                       $elt->parent->removeChild( $elt );
+               }
+               array_push( $this->children, $elt );
+               $elt->parent = $this;
+       }
+
+       /**
+        * Transfer all of the children of $elt to $this.
+        * @param BalanceElement $elt
+        */
+       public function adoptChildren( BalanceElement $elt ) {
+               Assert::precondition(
+                       $elt->parent !== 'flat', "Can't adoptChildren after flattening."
+               );
+               foreach ( $elt->children as $child ) {
+                       if ( !is_string( $child ) ) {
+                               // This is an optimization which avoids an O(n^2) set of
+                               // array_splice operations.
+                               $child->parent = null;
+                       }
+                       $this->appendChild( $child );
+               }
+               $elt->children = [];
+       }
+
+       /**
+        * Flatten this node and all of its children into a string, as specified
+        * by the HTML serialization specification, and replace this node
+        * in its parent by that string.
+        *
+        * @see __toString()
+        */
+       public function flatten( $tidyCompat = false ) {
+               Assert::parameter( $this->parent !== null, '$this', 'must be a child' );
+               Assert::parameter( $this->parent !== 'flat', '$this', 'already flat' );
+               $idx = array_search( $this, $this->parent->children, true );
+               Assert::parameter(
+                       $idx !== false, '$this', 'must be a child of its parent'
+               );
+               if ( $tidyCompat ) {
+                       $blank = true;
+                       foreach ( $this->children as $elt ) {
+                               if ( !is_string( $elt ) ) {
+                                       $elt = $elt->flatten( $tidyCompat );
+                               }
+                               if ( $blank && preg_match( '/[^\t\n\f\r ]/', $elt ) ) {
+                                       $blank = false;
+                               }
+                       }
+                       if ( $this->isHtmlNamed( 'mw:p-wrap' ) ) {
+                               $this->localName = 'p';
+                       } elseif ( $blank ) {
+                               // Add 'mw-empty-elt' class so elements can be hidden via CSS
+                               // for compatibility with legacy tidy.
+                               if ( !count( $this->attribs ) &&
+                                       ( $this->localName === 'tr' || $this->localName === 'li' )
+                               ) {
+                                       $this->attribs = [ 'class' => "mw-empty-elt" ];
+                               }
+                               $blank = false;
+                       }
+                       $flat = $blank ? '' : "{$this}";
+               } else {
+                       $flat = "{$this}";
+               }
+               $this->parent->children[$idx] = $flat;
+               $this->parent = 'flat'; # for assertion checking
+               return $flat;
+       }
+
+       /**
+        * Serialize this node and all of its children to a string, as specified
+        * by the HTML serialization specification.
+        *
+        * @return string The serialization of the BalanceElement
+        * @see https://html.spec.whatwg.org/multipage/syntax.html#serialising-html-fragments
+        */
+       public function __toString() {
+               $encAttribs = '';
+               foreach ( $this->attribs as $name => $value ) {
+                       $encValue = Sanitizer::encodeAttribute( $value );
+                       $encAttribs .= " $name=\"$encValue\"";
+               }
+               if ( !$this->isA( BalanceSets::$emptyElementSet ) ) {
+                       $out = "<{$this->localName}{$encAttribs}>";
+                       // flatten children
+                       foreach ( $this->children as $elt ) {
+                               $out .= "{$elt}";
+                       }
+                       $out .= "</{$this->localName}>";
+               } else {
+                       $out = "<{$this->localName}{$encAttribs} />";
+                       Assert::invariant(
+                               count( $this->children ) === 0,
+                               "Empty elements shouldn't have children."
+                       );
+               }
+               return $out;
+       }
+
+       # Utility functions on BalanceElements.
+
+       /**
+        * Determine if $this represents a specific HTML tag, is a member of
+        * a tag set, or is equal to another BalanceElement.
+        *
+        * @param BalanceElement|array|string $set The target BalanceElement,
+        *   set (from the BalanceSets class), or string (HTML tag name).
+        * @return bool
+        */
+       public function isA( $set ) {
+               if ( $set instanceof BalanceElement ) {
+                       return $this === $set;
+               } elseif ( is_array( $set ) ) {
+                       return isset( $set[$this->namespaceURI] ) &&
+                               isset( $set[$this->namespaceURI][$this->localName] );
+               } else {
+                       # assume this is an HTML element name.
+                       return $this->isHtml() && $this->localName === $set;
+               }
+       }
+
+       /**
+        * Determine if this element is an HTML element with the specified name
+        * @param string $tagName
+        * @return bool
+        */
+       public function isHtmlNamed( $tagName ) {
+               return $this->namespaceURI === BalanceSets::HTML_NAMESPACE
+                       && $this->localName === $tagName;
+       }
+
+       /**
+        * Determine if $this represents an element in the HTML namespace.
+        *
+        * @return bool
+        */
+       public function isHtml() {
+               return $this->namespaceURI === BalanceSets::HTML_NAMESPACE;
+       }
+
+       /**
+        * Determine if $this represents a MathML text integration point,
+        * as defined in the HTML5 specification.
+        *
+        * @return bool
+        * @see https://html.spec.whatwg.org/multipage/syntax.html#mathml-text-integration-point
+        */
+       public function isMathmlTextIntegrationPoint() {
+               return $this->isA( BalanceSets::$mathmlTextIntegrationPointSet );
+       }
+
+       /**
+        * Determine if $this represents an HTML integration point,
+        * as defined in the HTML5 specification.
+        *
+        * @return bool
+        * @see https://html.spec.whatwg.org/multipage/syntax.html#html-integration-point
+        */
+       public function isHtmlIntegrationPoint() {
+               if ( $this->isA( BalanceSets::$htmlIntegrationPointSet ) ) {
+                       return true;
+               }
+               if (
+                       $this->namespaceURI === BalanceSets::MATHML_NAMESPACE &&
+                       $this->localName === 'annotation-xml' &&
+                       isset( $this->attribs['encoding'] ) &&
+                       ( strcasecmp( $this->attribs['encoding'], 'text/html' ) == 0 ||
+                       strcasecmp( $this->attribs['encoding'], 'application/xhtml+xml' ) == 0 )
+               ) {
+                       return true;
+               }
+               return false;
+       }
+
+       /**
+        * Get a string key for the Noah's Ark algorithm
+        */
+       public function getNoahKey() {
+               if ( $this->noahKey === null ) {
+                       $attribs = $this->attribs;
+                       ksort( $attribs );
+                       $this->noahKey = serialize( [ $this->namespaceURI, $this->localName, $attribs ] );
+               }
+               return $this->noahKey;
+       }
+}
+
+/**
+ * The "stack of open elements" as defined in the HTML5 tree builder
+ * spec.  This contains methods to ensure that content (start tags, text)
+ * are inserted at the correct place in the output string, and to
+ * flatten BalanceElements are they are closed to avoid holding onto
+ * a complete DOM tree for the document in memory.
+ *
+ * The stack defines a PHP iterator to traverse it in "reverse order",
+ * that is, the most-recently-added element is visited first in a
+ * foreach loop.
+ *
+ * @ingroup Parser
+ * @since 1.27
+ * @see https://html.spec.whatwg.org/multipage/syntax.html#the-stack-of-open-elements
+ */
+class BalanceStack implements IteratorAggregate {
+       /**
+        * Backing storage for the stack.
+        * @var array $elements
+        */
+       private $elements = [];
+       /**
+        * Foster parent mode determines how nodes are inserted into the
+        * stack.
+        * @var bool $fosterParentMode
+        * @see https://html.spec.whatwg.org/multipage/syntax.html#foster-parent
+        */
+       public $fosterParentMode = false;
+       /**
+        * Tidy compatibility mode, determines behavior of body/blockquote
+        */
+       public $tidyCompat = false;
+       /**
+        * Reference to the current element
+        */
+       public $currentNode;
+
+       /**
+        * Create a new BalanceStack with a single BalanceElement on it,
+        * representing the root &lt;html&gt; node.
+        */
+       public function __construct() {
+               # always a root <html> element on the stack
+               array_push(
+                       $this->elements,
+                       new BalanceElement( BalanceSets::HTML_NAMESPACE, 'html', [] )
+               );
+               $this->currentNode = $this->elements[0];
+       }
+
+       /**
+        * Return a string representing the output of the tree builder:
+        * all the children of the root &lt;html&gt; node.
+        * @return string
+        */
+       public function getOutput() {
+               // Don't include the outer '<html>....</html>'
+               $out = '';
+               foreach ( $this->elements[0]->children as $elt ) {
+                       $out .= is_string( $elt ) ? $elt :
+                               $elt->flatten( $this->tidyCompat );
+               }
+               return $out;
+       }
+
+       /**
+        * Insert text at the appropriate place for inserting a node.
+        * @param string $value
+        * @see https://html.spec.whatwg.org/multipage/syntax.html#appropriate-place-for-inserting-a-node
+        */
+       public function insertText( $value ) {
+               if (
+                       $this->fosterParentMode &&
+                       $this->currentNode->isA( BalanceSets::$tableSectionRowSet )
+               ) {
+                       $this->fosterParent( $value );
+               } elseif (
+                       $this->tidyCompat &&
+                       $this->currentNode->isA( BalanceSets::$tidyPWrapSet )
+               ) {
+                       $this->insertHTMLELement( 'mw:p-wrap', [] );
+                       return $this->insertText( $value );
+               } else {
+                       $this->currentNode->appendChild( $value );
+               }
+       }
+
+       /**
+        * Insert a BalanceElement at the appropriate place, pushing it
+        * on to the open elements stack.
+        * @param string $namespaceURI The element namespace
+        * @param string $tag The tag name
+        * @param string $attribs Normalized attributes, as a string.
+        * @return BalanceElement
+        * @see https://html.spec.whatwg.org/multipage/syntax.html#insert-a-foreign-element
+        */
+       public function insertForeignElement( $namespaceURI, $tag, $attribs ) {
+               return $this->insertElement(
+                       new BalanceElement( $namespaceURI, $tag, $attribs )
+               );
+       }
+
+       /**
+        * Insert an HTML element at the appropriate place, pushing it on to
+        * the open elements stack.
+        * @param string $tag The tag name
+        * @param string $attribs Normalized attributes, as a string.
+        * @return BalanceElement
+        * @see https://html.spec.whatwg.org/multipage/syntax.html#insert-an-html-element
+        */
+       public function insertHTMLElement( $tag, $attribs ) {
+               return $this->insertForeignElement(
+                       BalanceSets::HTML_NAMESPACE, $tag, $attribs
+               );
+       }
+
+       /**
+        * Insert an element at the appropriate place and push it on to the
+        * open elements stack.
+        * @param BalanceElement $elt
+        * @return BalanceElement
+        * @see https://html.spec.whatwg.org/multipage/syntax.html#appropriate-place-for-inserting-a-node
+        */
+       public function insertElement( BalanceElement $elt ) {
+               if (
+                       $this->currentNode->isHtmlNamed( 'mw:p-wrap' ) &&
+                       !$elt->isA( BalanceSets::$tidyInlineSet )
+               ) {
+                       // Tidy compatibility.
+                       $this->pop();
+               }
+               if (
+                       $this->fosterParentMode &&
+                       $this->currentNode->isA( BalanceSets::$tableSectionRowSet )
+               ) {
+                       $elt = $this->fosterParent( $elt );
+               } else {
+                       $this->currentNode->appendChild( $elt );
+               }
+               Assert::invariant( $elt->parent !== null, "$elt must be in tree" );
+               Assert::invariant( $elt->parent !== 'flat', "$elt must not have been previous flattened" );
+               array_push( $this->elements, $elt );
+               $this->currentNode = $elt;
+               return $elt;
+       }
+
+       /**
+        * Determine if the stack has $tag in scope.
+        * @param BalanceElement|array|string $tag
+        * @return bool
+        * @see https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope
+        */
+       public function inScope( $tag ) {
+               return $this->inSpecificScope( $tag, BalanceSets::$inScopeSet );
+       }
+
+       /**
+        * Determine if the stack has $tag in button scope.
+        * @param BalanceElement|array|string $tag
+        * @return bool
+        * @see https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-button-scope
+        */
+       public function inButtonScope( $tag ) {
+               return $this->inSpecificScope( $tag, BalanceSets::inButtonScopeSet() );
+       }
+
+       /**
+        * Determine if the stack has $tag in list item scope.
+        * @param BalanceElement|array|string $tag
+        * @return bool
+        * @see https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-list-item-scope
+        */
+       public function inListItemScope( $tag ) {
+               return $this->inSpecificScope( $tag, BalanceSets::inListItemScopeSet() );
+       }
+
+       /**
+        * Determine if the stack has $tag in table scope.
+        * @param BalanceElement|array|string $tag
+        * @return bool
+        * @see https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-table-scope
+        */
+       public function inTableScope( $tag ) {
+               return $this->inSpecificScope( $tag, BalanceSets::$inTableScopeSet );
+       }
+
+       /**
+        * Determine if the stack has $tag in a specific scope, $set.
+        * @param BalanceElement|array|string $tag
+        * @param BalanceElement|array|string $set
+        * @return bool
+        * @see https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-the-specific-scope
+        */
+       public function inSpecificScope( $tag, $set ) {
+               foreach ( $this as $elt ) {
+                       if ( $elt->isA( $tag ) ) {
+                               return true;
+                       }
+                       if ( $elt->isA( $set ) ) {
+                               return false;
+                       }
+               }
+               return false;
+       }
+
+       /**
+        * Generate implied end tags.
+        * @param string $butnot
+        * @param bool $thorough True if we should generate end tags thoroughly.
+        * @see https://html.spec.whatwg.org/multipage/syntax.html#generate-implied-end-tags
+        */
+       public function generateImpliedEndTags( $butnot = null, $thorough = false ) {
+               $endTagSet = $thorough ?
+                       BalanceSets::$thoroughImpliedEndTagsSet :
+                       BalanceSets::$impliedEndTagsSet;
+               while ( $this->currentNode ) {
+                       if ( $butnot !== null && $this->currentNode->isHtmlNamed( $butnot ) ) {
+                               break;
+                       }
+                       if ( !$this->currentNode->isA( $endTagSet ) ) {
+                               break;
+                       }
+                       $this->pop();
+               }
+       }
+
+       /**
+        * Return the adjusted current node.
+        */
+       public function adjustedCurrentNode( $fragmentContext ) {
+               return ( $fragmentContext && count( $this->elements ) === 1 ) ?
+                       $fragmentContext : $this->currentNode;
+       }
+
+       /**
+        * Return an iterator over this stack which visits the current node
+        * first, and the root node last.
+        * @return Iterator
+        */
+       public function getIterator() {
+               return new ReverseArrayIterator( $this->elements );
+       }
+
+       /**
+        * Return the BalanceElement at the given position $idx, where
+        * position 0 represents the root element.
+        * @param int $idx
+        * @return BalanceElement
+        */
+       public function node( $idx ) {
+               return $this->elements[ $idx ];
+       }
+
+       /**
+        * Replace the element at position $idx in the BalanceStack with $elt.
+        * @param int $idx
+        * @param BalanceElement $elt
+        */
+       public function replaceAt( $idx, BalanceElement $elt ) {
+               Assert::precondition(
+                       $this->elements[$idx]->parent !== 'flat',
+                       'Replaced element should not have already been flattened.'
+               );
+               Assert::precondition(
+                       $elt->parent !== 'flat',
+                       'New element should not have already been flattened.'
+               );
+               $this->elements[$idx] = $elt;
+               if ( $idx === count( $this->elements ) - 1 ) {
+                       $this->currentNode = $elt;
+               }
+       }
+
+       /**
+        * Return the position of the given BalanceElement, set, or
+        * HTML tag name string in the BalanceStack.
+        * @param BalanceElement|array|string $tag
+        * @return int
+        */
+       public function indexOf( $tag ) {
+               for ( $i = count( $this->elements ) - 1; $i >= 0; $i-- ) {
+                       if ( $this->elements[$i]->isA( $tag ) ) {
+                               return $i;
+                       }
+               }
+               return -1;
+       }
+
+       /**
+        * Return the number of elements currently in the BalanceStack.
+        * @return int
+        */
+       public function length() {
+               return count( $this->elements );
+       }
+
+       /**
+        * Remove the current node from the BalanceStack, flattening it
+        * in the process.
+        */
+       public function pop() {
+               $elt = array_pop( $this->elements );
+               if ( count( $this->elements ) ) {
+                       $this->currentNode = $this->elements[ count( $this->elements ) - 1 ];
+               } else {
+                       $this->currentNode = null;
+               }
+               if ( !$elt->isHtmlNamed( 'mw:p-wrap' ) ) {
+                       $elt->flatten( $this->tidyCompat );
+               }
+       }
+
+       /**
+        * Remove all nodes up to and including position $idx from the
+        * BalanceStack, flattening them in the process.
+        * @param int $idx
+        */
+       public function popTo( $idx ) {
+               $length = count( $this->elements );
+               for ( $length = count( $this->elements ); $length > $idx; $length-- ) {
+                       $this->pop();
+               }
+       }
+
+       /**
+        * Pop elements off the stack up to and including the first
+        * element with the specified HTML tagname (or matching the given
+        * set).
+        * @param BalanceElement|array|string $tag
+        */
+       public function popTag( $tag ) {
+               while ( $this->currentNode ) {
+                       if ( $this->currentNode->isA( $tag ) ) {
+                               $this->pop();
+                               break;
+                       }
+                       $this->pop();
+               }
+       }
+
+       /**
+        * Pop elements off the stack *not including* the first element
+        * in the specified set.
+        * @param BalanceElement|array|string $set
+        */
+       public function clearToContext( $set ) {
+               // Note that we don't loop to 0. Never pop the <html> elt off.
+               for ( $length = count( $this->elements ); $length > 1; $length-- ) {
+                       if ( $this->currentNode->isA( $set ) ) {
+                               break;
+                       }
+                       $this->pop();
+               }
+       }
+
+       /**
+        * Remove the given $elt from the BalanceStack, optionally
+        * flattening it in the process.
+        * @param BalanceElement $elt The element to remove.
+        * @param bool $flatten Whether to flatten the removed element.
+        */
+       public function removeElement( BalanceElement $elt, $flatten = true ) {
+               Assert::parameter(
+                       $elt->parent !== 'flat',
+                       '$elt',
+                       '$elt should not already have been flattened.'
+               );
+               Assert::parameter(
+                       $elt->parent->parent !== 'flat',
+                       '$elt',
+                       'The parent of $elt should not already have been flattened.'
+               );
+               $idx = array_search( $elt, $this->elements, true );
+               Assert::parameter( $idx !== false, '$elt', 'must be in stack' );
+               array_splice( $this->elements, $idx, 1 );
+               if ( $idx === count( $this->elements ) ) {
+                       $this->currentNode = $this->elements[$idx - 1];
+               }
+               if ( $flatten ) {
+                       // serialize $elt into its parent
+                       // otherwise, it will eventually serialize when the parent
+                       // is serialized, we just hold onto the memory for its
+                       // tree of objects a little longer.
+                       $elt->flatten( $this->tidyCompat );
+               }
+               Assert::postcondition(
+                       array_search( $elt, $this->elements, true ) === false,
+                       '$elt should no longer be in open elements stack'
+               );
+       }
+
+       /**
+        * Find $a in the BalanceStack and insert $b after it.
+        * @param BalanceElement $a
+        * @param BalanceElement $b
+        */
+       public function insertAfter( BalanceElement $a, BalanceElement $b ) {
+               $idx = $this->indexOf( $a );
+               Assert::parameter( $idx !== false, '$a', 'must be in stack' );
+               if ( $idx === count( $this->elements ) - 1 ) {
+                       array_push( $this->elements, $b );
+                       $this->currentNode = $b;
+               } else {
+                       array_splice( $this->elements, $idx + 1, 0, [ $b ] );
+               }
+       }
+
+       # Fostering and adoption.
+
+       /**
+        * Foster parent the given $elt in the stack of open elements.
+        * @param BalanceElement|string $elt
+        * @see https://html.spec.whatwg.org/multipage/syntax.html#foster-parent
+        */
+       private function fosterParent( $elt ) {
+               $lastTable = $this->indexOf( 'table' );
+               $lastTemplate = $this->indexOf( 'template' );
+               $parent = null;
+               $before = null;
+
+               if ( $lastTemplate >= 0 && ( $lastTable < 0 || $lastTemplate > $lastTable ) ) {
+                       $parent = $this->elements[$lastTemplate];
+               } elseif ( $lastTable >= 0 ) {
+                       $parent = $this->elements[$lastTable]->parent;
+                       # Assume all tables have parents, since we're not running scripts!
+                       Assert::invariant(
+                               $parent !== null, "All tables should have parents"
+                       );
+                       $before = $this->elements[$lastTable];
+               } else {
+                       $parent = $this->elements[0]; // the `html` element.
+               }
+
+               if ( $this->tidyCompat ) {
+                       if ( is_string( $elt ) ) {
+                               // We're fostering text: do we need a p-wrapper?
+                               if ( $parent->isA( BalanceSets::$tidyPWrapSet ) ) {
+                                       $this->insertHTMLElement( 'mw:p-wrap', [] );
+                                       $this->insertText( $elt );
+                                       return $elt;
+                               }
+                       } else {
+                               // We're fostering an element; do we need to merge p-wrappers?
+                               if ( $elt->isHtmlNamed( 'mw:p-wrap' ) ) {
+                                       $idx = $before ?
+                                               array_search( $before, $parent->children, true ) :
+                                               count( $parent->children );
+                                       $after = $idx > 0 ? $parent->children[$idx - 1] : '';
+                                       if (
+                                               $after instanceof BalanceElement &&
+                                               $after->isHtmlNamed( 'mw:p-wrap' )
+                                       ) {
+                                               return $after; // Re-use existing p-wrapper.
+                                       }
+                               }
+                       }
+               }
+
+               if ( $before ) {
+                       $parent->insertBefore( $before, $elt );
+               } else {
+                       $parent->appendChild( $elt );
+               }
+               return $elt;
+       }
+
+       /**
+        * Run the "adoption agency algoritm" (AAA) for the given subject
+        * tag name.
+        * @param string $tag The subject tag name.
+        * @param BalanceActiveFormattingElements $afe The current
+        *   active formatting elements list.
+        * @return true if the adoption agency algorithm "did something", false
+        *   if more processing is required by the caller.
+        * @see https://html.spec.whatwg.org/multipage/syntax.html#adoption-agency-algorithm
+        */
+       public function adoptionAgency( $tag, $afe ) {
+               // If the current node is an HTML element whose tag name is subject,
+               // and the current node is not in the list of active formatting
+               // elements, then pop the current node off the stack of open
+               // elements and abort these steps.
+               if (
+                       $this->currentNode->isHtmlNamed( $tag ) &&
+                       !$afe->isInList( $this->currentNode )
+               ) {
+                       $this->pop();
+                       return true; // no more handling required
+               }
+
+               // Let outer loop counter be zero.
+               $outer = 0;
+
+               // Outer loop: If outer loop counter is greater than or
+               // equal to eight, then abort these steps.
+               while ( $outer < 8 ) {
+                       // Increment outer loop counter by one.
+                       $outer++;
+
+                       // Let the formatting element be the last element in the list
+                       // of active formatting elements that: is between the end of
+                       // the list and the last scope marker in the list, if any, or
+                       // the start of the list otherwise, and has the same tag name
+                       // as the token.
+                       $fmtelt = $afe->findElementByTag( $tag );
+
+                       // If there is no such node, then abort these steps and instead
+                       // act as described in the "any other end tag" entry below.
+                       if ( !$fmtelt ) {
+                               return false; // false means handle by the default case
+                       }
+
+                       // Otherwise, if there is such a node, but that node is not in
+                       // the stack of open elements, then this is a parse error;
+                       // remove the element from the list, and abort these steps.
+                       $index = $this->indexOf( $fmtelt );
+                       if ( $index < 0 ) {
+                               $afe->remove( $fmtelt );
+                               return true;   // true means no more handling required
+                       }
+
+                       // Otherwise, if there is such a node, and that node is also in
+                       // the stack of open elements, but the element is not in scope,
+                       // then this is a parse error; ignore the token, and abort
+                       // these steps.
+                       if ( !$this->inScope( $fmtelt ) ) {
+                               return true;
+                       }
+
+                       // Let the furthest block be the topmost node in the stack of
+                       // open elements that is lower in the stack than the formatting
+                       // element, and is an element in the special category. There
+                       // might not be one.
+                       $furthestblock = null;
+                       $furthestblockindex = -1;
+                       $stacklen = $this->length();
+                       for ( $i = $index+1; $i < $stacklen; $i++ ) {
+                               if ( $this->node( $i )->isA( BalanceSets::$specialSet ) ) {
+                                       $furthestblock = $this->node( $i );
+                                       $furthestblockindex = $i;
+                                       break;
+                               }
+                       }
+
+                       // If there is no furthest block, then the UA must skip the
+                       // subsequent steps and instead just pop all the nodes from the
+                       // bottom of the stack of open elements, from the current node
+                       // up to and including the formatting element, and remove the
+                       // formatting element from the list of active formatting
+                       // elements.
+                       if ( !$furthestblock ) {
+                               $this->popTag( $fmtelt );
+                               $afe->remove( $fmtelt );
+                               return true;
+                       } else {
+                               // Let the common ancestor be the element immediately above
+                               // the formatting element in the stack of open elements.
+                               $ancestor = $this->node( $index-1 );
+
+                               // Let a bookmark note the position of the formatting
+                               // element in the list of active formatting elements
+                               // relative to the elements on either side of it in the
+                               // list.
+                               $BOOKMARK = new BalanceElement( '[bookmark]', '[bookmark]', [] );
+                               $afe->insertAfter( $fmtelt, $BOOKMARK );
+
+                               // Let node and last node be the furthest block.
+                               $node = $furthestblock;
+                               $lastnode = $furthestblock;
+                               $nodeindex = $furthestblockindex;
+                               $isAFE = false;
+
+                               // Let inner loop counter be zero.
+                               $inner = 0;
+
+                               while ( true ) {
+
+                                       // Increment inner loop counter by one.
+                                       $inner++;
+
+                                       // Let node be the element immediately above node in
+                                       // the stack of open elements, or if node is no longer
+                                       // in the stack of open elements (e.g. because it got
+                                       // removed by this algorithm), the element that was
+                                       // immediately above node in the stack of open elements
+                                       // before node was removed.
+                                       $node = $this->node( --$nodeindex );
+
+                                       // If node is the formatting element, then go
+                                       // to the next step in the overall algorithm.
+                                       if ( $node === $fmtelt ) break;
+
+                                       // If the inner loop counter is greater than three and node
+                                       // is in the list of active formatting elements, then remove
+                                       // node from the list of active formatting elements.
+                                       $isAFE = $afe->isInList( $node );
+                                       if ( $inner > 3 && $isAFE ) {
+                                               $afe->remove( $node );
+                                               $isAFE = false;
+                                       }
+
+                                       // If node is not in the list of active formatting
+                                       // elements, then remove node from the stack of open
+                                       // elements and then go back to the step labeled inner
+                                       // loop.
+                                       if ( !$isAFE ) {
+                                               // Don't flatten here, since we're about to relocate
+                                               // parts of this $node.
+                                               $this->removeElement( $node, false );
+                                               continue;
+                                       }
+
+                                       // Create an element for the token for which the
+                                       // element node was created with common ancestor as
+                                       // the intended parent, replace the entry for node
+                                       // in the list of active formatting elements with an
+                                       // entry for the new element, replace the entry for
+                                       // node in the stack of open elements with an entry for
+                                       // the new element, and let node be the new element.
+                                       $newelt = new BalanceElement(
+                                               $node->namespaceURI, $node->localName, $node->attribs );
+                                       $afe->replace( $node, $newelt );
+                                       $this->replaceAt( $nodeindex, $newelt );
+                                       $node = $newelt;
+
+                                       // If last node is the furthest block, then move the
+                                       // aforementioned bookmark to be immediately after the
+                                       // new node in the list of active formatting elements.
+                                       if ( $lastnode === $furthestblock ) {
+                                               $afe->remove( $BOOKMARK );
+                                               $afe->insertAfter( $newelt, $BOOKMARK );
+                                       }
+
+                                       // Insert last node into node, first removing it from
+                                       // its previous parent node if any.
+                                       $node->appendChild( $lastnode );
+
+                                       // Let last node be node.
+                                       $lastnode = $node;
+                               }
+
+                               // If the common ancestor node is a table, tbody, tfoot,
+                               // thead, or tr element, then, foster parent whatever last
+                               // node ended up being in the previous step, first removing
+                               // it from its previous parent node if any.
+                               if (
+                                       $this->fosterParentMode &&
+                                       $ancestor->isA( BalanceSets::$tableSectionRowSet )
+                               ) {
+                                       $this->fosterParent( $lastnode );
+                               } else {
+                                       // Otherwise, append whatever last node ended up being in
+                                       // the previous step to the common ancestor node, first
+                                       // removing it from its previous parent node if any.
+                                       $ancestor->appendChild( $lastnode );
+                               }
+
+                               // Create an element for the token for which the
+                               // formatting element was created, with furthest block
+                               // as the intended parent.
+                               $newelt2 = new BalanceElement(
+                                       $fmtelt->namespaceURI, $fmtelt->localName, $fmtelt->attribs );
+
+                               // Take all of the child nodes of the furthest block and
+                               // append them to the element created in the last step.
+                               $newelt2->adoptChildren( $furthestblock );
+
+                               // Append that new element to the furthest block.
+                               $furthestblock->appendChild( $newelt2 );
+
+                               // Remove the formatting element from the list of active
+                               // formatting elements, and insert the new element into the
+                               // list of active formatting elements at the position of
+                               // the aforementioned bookmark.
+                               $afe->remove( $fmtelt );
+                               $afe->replace( $BOOKMARK, $newelt2 );
+
+                               // Remove the formatting element from the stack of open
+                               // elements, and insert the new element into the stack of
+                               // open elements immediately below the position of the
+                               // furthest block in that stack.
+                               $this->removeElement( $fmtelt );
+                               $this->insertAfter( $furthestblock, $newelt2 );
+                       }
+               }
+
+               return true;
+       }
+
+       /**
+        * Return the contents of the open elements stack as a string for
+        * debugging.
+        * @return string
+        */
+       public function __toString() {
+               $r = [];
+               foreach ( $this->elements as $elt ) {
+                       array_push( $r, $elt->localName );
+               }
+               return implode( $r, ' ' );
+       }
+}
+
+/**
+ * A pseudo-element used as a marker in the list of active formatting elements
+ *
+ * @ingroup Parser
+ * @since 1.27
+ */
+class BalanceMarker {
+       public $nextAFE;
+       public $prevAFE;
+}
+
+/**
+ * The list of active formatting elements, which is used to handle
+ * mis-nested formatting element tags in the HTML5 tree builder
+ * specification.
+ *
+ * @ingroup Parser
+ * @since 1.27
+ * @see https://html.spec.whatwg.org/multipage/syntax.html#list-of-active-formatting-elements
+ */
+class BalanceActiveFormattingElements {
+       /** The last (most recent) element in the list */
+       private $tail;
+
+       /** The first (least recent) element in the list */
+       private $head;
+
+       /**
+        * An array of arrays representing the population of elements in each bucket
+        * according to the Noah's Ark clause. The outer array is stack-like, with each
+        * integer-indexed element representing a segment of the list, bounded by
+        * markers. The first element represents the segment of the list before the
+        * first marker.
+        *
+        * The inner arrays are indexed by "Noah key", which is a string which uniquely
+        * identifies each bucket according to the rules in the spec. The value in
+        * the inner array is the first (least recently inserted) element in the bucket,
+        * and subsequent members of the bucket can be found by iterating through the
+        * singly-linked list via $node->nextNoah.
+        *
+        * This is optimised for the most common case of inserting into a bucket
+        * with zero members, and deleting a bucket containing one member. In the
+        * worst case, iteration through the list is still O(1) in the document
+        * size, since each bucket can have at most 3 members.
+        */
+       private $noahTableStack = [ [] ];
+
+       public function __destruct() {
+               for ( $node = $this->head; $node; $node = $next ) {
+                       $next = $node->nextAFE;
+                       $node->prevAFE = $node->nextAFE = $node->nextNoah = null;
+               }
+               $this->head = $this->tail = $this->noahTableStack = null;
+       }
+
+       public function insertMarker() {
+               $elt = new BalanceMarker;
+               if ( $this->tail ) {
+                       $this->tail->nextAFE = $elt;
+                       $elt->prevAFE = $this->tail;
+               } else {
+                       $this->head = $elt;
+               }
+               $this->tail = $elt;
+               $this->noahTableStack[] = [];
+       }
+
+       /**
+        * Follow the steps required when the spec requires us to "push onto the
+        * list of active formatting elements".
+        * @param BalanceElement $elt
+        */
+       public function push( BalanceElement $elt ) {
+               // Must not be in the list already
+               if ( $elt->prevAFE !== null || $this->head === $elt ) {
+                       throw new ParameterAssertionException( '$elt',
+                               'Cannot insert a node into the AFE list twice' );
+               }
+
+               // "Noah's Ark clause" -- if there are already three copies of
+               // this element before we encounter a marker, then drop the last
+               // one.
+               $noahKey = $elt->getNoahKey();
+               $table =& $this->noahTableStack[ count( $this->noahTableStack ) - 1 ];
+               if ( !isset( $table[$noahKey] ) ) {
+                       $table[$noahKey] = $elt;
+               } else {
+                       $count = 1;
+                       $head = $tail = $table[$noahKey];
+                       while ( $tail->nextNoah ) {
+                               $tail = $tail->nextNoah;
+                               $count++;
+                       }
+                       if ( $count >= 3 ) {
+                               $this->remove( $head );
+                       }
+                       $tail->nextNoah = $elt;
+               }
+               // Add to the main AFE list
+               if ( $this->tail ) {
+                       $this->tail->nextAFE = $elt;
+                       $elt->prevAFE = $this->tail;
+               } else {
+                       $this->head = $elt;
+               }
+               $this->tail = $elt;
+       }
+
+       /**
+        * Follow the steps required when the spec asks us to "clear the list of
+        * active formatting elements up to the last marker".
+        */
+       public function clearToMarker() {
+               // Iterate back through the list starting from the tail
+               $tail = $this->tail;
+               while ( $tail && !( $tail instanceof BalanceMarker ) ) {
+                       // Unlink the element
+                       $prev = $tail->prevAFE;
+                       $tail->prevAFE = null;
+                       if ( $prev ) {
+                               $prev->nextAFE = null;
+                       }
+                       $tail->nextNoah = null;
+                       $tail = $prev;
+               }
+               // If we finished on a marker, unlink it and pop it off the Noah table stack
+               if ( $tail ) {
+                       $prev = $tail->prevAFE;
+                       if ( $prev ) {
+                               $prev->nextAFE = null;
+                       }
+                       $tail = $prev;
+                       array_pop( $this->noahTableStack );
+               } else {
+                       // No marker: wipe the top-level Noah table (which is the only one)
+                       $this->noahTableStack[0] = [];
+               }
+               // If we removed all the elements, clear the head pointer
+               if ( !$tail ) {
+                       $this->head = null;
+               }
+               $this->tail = $tail;
+       }
+
+       /**
+        * Find and return the last element with the specified tag between the
+        * end of the list and the last marker on the list.
+        * Used when parsing &lt;a&gt; "in body mode".
+        */
+       public function findElementByTag( $tag ) {
+               $elt = $this->tail;
+               while ( $elt && !( $elt instanceof BalanceMarker ) ) {
+                       if ( $elt->localName === $tag ) {
+                               return $elt;
+                       }
+                       $elt = $elt->prevAFE;
+               }
+               return null;
+       }
+
+       /**
+        * Determine whether an element is in the list of formatting elements.
+        * @return boolean
+        */
+       public function isInList( BalanceElement $elt ) {
+               return $this->head === $elt || $elt->prevAFE;
+       }
+
+       /**
+        * Find the element $elt in the list and remove it.
+        * Used when parsing &lt;a&gt; in body mode.
+        */
+       public function remove( BalanceElement $elt ) {
+               if ( $this->head !== $elt && !$elt->prevAFE ) {
+                       throw new ParameterAssertionException( '$elt',
+                               "Attempted to remove an element which is not in the AFE list" );
+               }
+               // Update head and tail pointers
+               if ( $this->head === $elt ) {
+                       $this->head = $elt->nextAFE;
+               }
+               if ( $this->tail === $elt ) {
+                       $this->tail = $elt->prevAFE;
+               }
+               // Update previous element
+               if ( $elt->prevAFE ) {
+                       $elt->prevAFE->nextAFE = $elt->nextAFE;
+               }
+               // Update next element
+               if ( $elt->nextAFE ) {
+                       $elt->nextAFE->prevAFE = $elt->prevAFE;
+               }
+               // Clear pointers so that isInList() etc. will work
+               $elt->prevAFE = $elt->nextAFE = null;
+               // Update Noah list
+               $this->removeFromNoahList( $elt );
+       }
+
+       private function addToNoahList( BalanceElement $elt ) {
+               $noahKey = $elt->getNoahKey();
+               $table =& $this->noahTableStack[ count( $this->noahTableStack ) - 1 ];
+               if ( !isset( $table[$noahKey] ) ) {
+                       $table[$noahKey] = $elt;
+               } else {
+                       $tail = $table[$noahKey];
+                       while ( $tail->nextNoah ) {
+                               $tail = $tail->nextNoah;
+                       }
+                       $tail->nextNoah = $elt;
+               }
+       }
+
+       private function removeFromNoahList( BalanceElement $elt ) {
+               $table =& $this->noahTableStack[ count( $this->noahTableStack ) - 1 ];
+               $key = $elt->getNoahKey();
+               $noahElt = $table[$key];
+               if ( $noahElt === $elt ) {
+                       if ( $noahElt->nextNoah ) {
+                               $table[$key] = $noahElt->nextNoah;
+                               $noahElt->nextNoah = null;
+                       } else {
+                               unset( $table[$key] );
+                       }
+               } else {
+                       do {
+                               $prevNoahElt = $noahElt;
+                               $noahElt = $prevNoahElt->nextNoah;
+                               if ( $noahElt === $elt ) {
+                                       // Found it, unlink
+                                       $prevNoahElt->nextNoah = $elt->nextNoah;
+                                       $elt->nextNoah = null;
+                                       break;
+                               }
+                       } while ( $noahElt );
+               }
+       }
+
+       /**
+        * Find element $a in the list and replace it with element $b
+        */
+       public function replace( BalanceElement $a, BalanceElement $b ) {
+               if ( $this->head !== $a && !$a->prevAFE ) {
+                       throw new ParameterAssertionException( '$a',
+                               "Attempted to replace an element which is not in the AFE list" );
+               }
+               // Update head and tail pointers
+               if ( $this->head === $a ) {
+                       $this->head = $b;
+               }
+               if ( $this->tail === $a ) {
+                       $this->tail = $b;
+               }
+               // Update previous element
+               if ( $a->prevAFE ) {
+                       $a->prevAFE->nextAFE = $b;
+               }
+               // Update next element
+               if ( $a->nextAFE ) {
+                       $a->nextAFE->prevAFE = $b;
+               }
+               $b->prevAFE = $a->prevAFE;
+               $b->nextAFE = $a->nextAFE;
+               $a->nextAFE = $a->prevAFE = null;
+               // Update Noah list
+               $this->removeFromNoahList( $a );
+               $this->addToNoahList( $b );
+       }
+
+       /**
+        * Find $a in the list and insert $b after it.
+        */
+       public function insertAfter( BalanceElement $a, BalanceElement $b ) {
+               if ( $this->head !== $a && !$a->prevAFE ) {
+                       throw new ParameterAssertionException( '$a',
+                               "Attempted to insert after an element which is not in the AFE list" );
+               }
+               if ( $this->tail === $a ) {
+                       $this->tail = $b;
+               }
+               if ( $a->nextAFE ) {
+                       $a->nextAFE->prevAFE = $b;
+               }
+               $b->nextAFE = $a->nextAFE;
+               $b->prevAFE = $a;
+               $a->nextAFE = $b;
+               $this->addToNoahList( $b );
+       }
+
+       // @codingStandardsIgnoreStart Generic.Files.LineLength.TooLong
+       /**
+        * Reconstruct the active formatting elements.
+        * @param BalanceStack $stack The open elements stack
+        * @see https://html.spec.whatwg.org/multipage/syntax.html#reconstruct-the-active-formatting-elements
+        */
+       // @codingStandardsIgnoreEnd
+       public function reconstruct( $stack ) {
+               $entry = $this->tail;
+               // If there are no entries in the list of active formatting elements,
+               // then there is nothing to reconstruct
+               if ( !$entry ) {
+                       return;
+               }
+               // If the last is a marker, do nothing.
+               if ( $entry instanceof BalanceMarker ) {
+                       return;
+               }
+               // Or if it is an open element, do nothing.
+               if ( $stack->indexOf( $entry ) >= 0 ) {
+                       return;
+               }
+
+               // Loop backward through the list until we find a marker or an
+               // open element
+               while ( $entry->prevAFE ) {
+                       $entry = $entry->prevAFE;
+                       if ( $entry instanceof BalanceMarker || $stack->indexOf( $entry ) >= 0 ) {
+                               break;
+                       }
+               }
+
+               // Now loop forward, starting from the element after the current one (or
+               // the first element if we didn't find a marker or open element),
+               // recreating formatting elements and pushing them back onto the list
+               // of open elements.
+               if ( $entry->prevAFE ) {
+                       $entry = $entry->nextAFE;
+               }
+               do {
+                       $newElement = $stack->insertHTMLElement(
+                               $entry->localName,
+                               $entry->attribs );
+                       $this->replace( $entry, $newElement );
+                       $entry = $newElement->nextAFE;
+               } while ( $entry );
+       }
+
+       /**
+        * Get a string representation of the AFE list, for debugging
+        */
+       public function __toString() {
+               $prev = null;
+               $s = '';
+               for ( $node = $this->head; $node; $prev = $node, $node = $node->nextAFE ) {
+                       if ( $node instanceof BalanceMarker ) {
+                               $s .= "MARKER\n";
+                               continue;
+                       }
+                       $s .= $node->localName . '#' . substr( md5( spl_object_hash( $node ) ), 0, 8 );
+                       if ( $node->nextNoah ) {
+                               $s .= " (noah sibling: {$node->nextNoah->localName}#" .
+                                       substr( md5( spl_object_hash( $node->nextNoah ) ), 0, 8 ) .
+                                       ')';
+                       }
+                       if ( $node->nextAFE && $node->nextAFE->prevAFE !== $node ) {
+                               $s .= " (reverse link is wrong!)";
+                       }
+                       $s .= "\n";
+               }
+               if ( $prev !== $this->tail ) {
+                       $s .= "(tail pointer is wrong!)\n";
+               }
+               return $s;
+       }
+}
+
+/**
+ * An implementation of the tree building portion of the HTML5 parsing
+ * spec.
+ *
+ * This is used to balance and tidy output so that the result can
+ * always be cleanly serialized/deserialized by an HTML5 parser.  It
+ * does *not* guarantee "conforming" output -- the HTML5 spec contains
+ * a number of constraints which are not enforced by the HTML5 parsing
+ * process.  But the result will be free of gross errors: misnested or
+ * unclosed tags, for example, and will be unchanged by spec-complient
+ * parsing followed by serialization.
+ *
+ * The tree building stage is structured as a state machine.
+ * When comparing the implementation to
+ * https://www.w3.org/TR/html5/syntax.html#tree-construction
+ * note that each state is implemented as a function with a
+ * name ending in `Mode` (because the HTML spec refers to them
+ * as insertion modes).  The current insertion mode is held by
+ * the $parseMode property.
+ *
+ * The following simplifications have been made:
+ * - We handle body content only (ie, we start `in body`.)
+ * - The document is never in "quirks mode".
+ * - All occurrences of < and > have been entity escaped, so we
+ *   can parse tags by simply splitting on those two characters.
+ *   Similarly, all attributes have been "cleaned" and are double-quoted
+ *   and escaped.
+ * - All comments and null characters are assumed to have been removed.
+ * - We don't alter linefeeds after <pre>/<listing>.
+ * - The following elements are disallowed: <html>, <head>, <body>, <frameset>,
+ *   <form>, <frame>, <plaintext>, <isindex>, <textarea>, <xmp>, <iframe>,
+ *   <noembed>, <noscript>, <select>, <script>, <title>.  As a result,
+ *   further simplifications can be made:
+ *   - `frameset-ok` is not tracked.
+ *   - `form element pointer` is not tracked.
+ *   - `head element pointer` is not tracked (but presumed non-null)
+ *   - Tokenizer has only a single mode.
+ *
+ *   We generally mark places where we omit cases from the spec due to
+ *   disallowed elements with a comment: `# OMITTED: <element-name>`.
+ *
+ *   The HTML spec keeps a flag during the parsing process to track
+ *   whether or not a "parse error" has been encountered.  We don't
+ *   bother to track that flag, we just implement the error-handling
+ *   process as specified.
+ *
+ * @ingroup Parser
+ * @since 1.27
+ * @see https://html.spec.whatwg.org/multipage/syntax.html#tree-construction
+ */
+class Balancer {
+       private $parseMode;
+       private $bitsIterator;
+       private $allowedHtmlElements;
+       private $afe;
+       private $stack;
+       private $strict;
+       private $tidyCompat;
+
+       private $textIntegrationMode = false;
+       private $pendingTableText;
+       private $originalInsertionMode;
+       private $fragmentContext;
+
+       /**
+        * Create a new Balancer.
+        * @param array $config Balancer configuration.  Includes:
+        *     'strict' : boolean, defaults to false.
+        *         When true, enforces syntactic constraints on input:
+        *         all non-tag '<' must be escaped, all attributes must be
+        *         separated by a single space and double-quoted.  This is
+        *         consistent with the output of the Sanitizer.
+        *     'allowedHtmlElements' : array, defaults to null.
+        *         When present, the keys of this associative array give
+        *         the acceptable HTML tag names.  When not present, no
+        *         tag sanitization is done.
+        *     'tidyCompat' : boolean, defaults to false.
+        *         When true, the serialization algorithm is tweaked to
+        *         provide historical compatibility with the old "tidy"
+        *         program: <p>-wrapping is done to the children of
+        *         <body> and <blockquote> elements, and empty elements
+        *         are removed.
+        */
+       public function __construct( array $config = [] ) {
+               $config = $config + [
+                       'strict' => false,
+                       'allowedHtmlElements' => null,
+                       'tidyCompat' => false,
+               ];
+               $this->allowedHtmlElements = $config['allowedHtmlElements'];
+               $this->strict = $config['strict'];
+               $this->tidyCompat = $config['tidyCompat'];
+               if ( $this->allowedHtmlElements !== null ) {
+                       # Sanity check!
+                       $bad = array_uintersect_assoc(
+                               $this->allowedHtmlElements,
+                               BalanceSets::$unsupportedSet[BalanceSets::HTML_NAMESPACE],
+                               function( $a, $b ) {
+                                       // Ignore the values (just intersect the keys) by saying
+                                       // all values are equal to each other.
+                                       return 0;
+                               }
+                       );
+                       if ( count( $bad ) > 0 ) {
+                               $badstr = implode( array_keys( $bad ), ',' );
+                               throw new ParameterAssertionException(
+                                       '$config',
+                                       'Balance attempted with sanitization including ' .
+                                       "unsupported elements: {$badstr}"
+                               );
+                       }
+               }
+       }
+
+       /**
+        * Return a balanced HTML string for the HTML fragment given by $text,
+        * subject to the caveats listed in the class description.  The result
+        * will typically be idempotent -- that is, rebalancing the output
+        * would result in no change.
+        *
+        * @param string $text The markup to be balanced
+        * @param callable $processingCallback Callback to do any variable or
+        *   parameter replacements in HTML attributes values
+        * @param array|bool $processingArgs Arguments for the processing callback
+        * @return string The balanced markup
+        */
+       public function balance( $text, $processingCallback = null, $processingArgs = [] ) {
+               $this->parseMode = 'inBodyMode';
+               $this->bitsIterator = new ExplodeIterator( '<', $text );
+               $this->afe = new BalanceActiveFormattingElements();
+               $this->stack = new BalanceStack();
+               $this->stack->tidyCompat = $this->tidyCompat;
+               $this->processingCallback = $processingCallback;
+               $this->processingArgs = $processingArgs;
+
+               # The stack is constructed with an <html> element already on it.
+               # Set this up as a fragment parsed with <body> as the context.
+               $this->fragmentContext =
+                       new BalanceElement( BalanceSets::HTML_NAMESPACE, 'body', [] );
+               $this->resetInsertionMode();
+
+               // First element is text not tag
+               $x = $this->bitsIterator->current();
+               $this->bitsIterator->next();
+               $this->insertToken( 'text', str_replace( '>', '&gt;', $x ) );
+               // Now process each tag.
+               while ( $this->bitsIterator->valid() ) {
+                       $this->advance();
+               }
+               $this->insertToken( 'eof', null );
+               $result = $this->stack->getOutput();
+               // Free memory before returning.
+               $this->bitsIterator = null;
+               $this->afe = null;
+               $this->stack = null;
+               $this->fragmentContext = null;
+               return $result;
+       }
+
+       /**
+        * Pass a token to the tree builder.  The $token will be one of the
+        * strings "tag", "endtag", or "text".
+        */
+       private function insertToken( $token, $value, $attribs = null, $selfclose = false ) {
+               // validate tags against $unsupportedSet
+               if ( $token === 'tag' || $token === 'endtag' ) {
+                       if ( isset( BalanceSets::$unsupportedSet[BalanceSets::HTML_NAMESPACE][$value] ) ) {
+                               # As described in "simplifications" above, these tags are
+                               # not supported in the balancer.
+                               Assert::invariant(
+                                       !$this->strict,
+                                       "Unsupported $token <$value> found."
+                               );
+                               return false;
+                       }
+               } elseif ( $token === 'text' && $value === '' ) {
+                       # Don't actually inject the empty string as a text token.
+                       return true;
+               }
+               // Some hoops we have to jump through
+               $adjusted = $this->stack->adjustedCurrentNode( $this->fragmentContext );
+
+               $isForeign = true;
+               if (
+                       $this->stack->length() === 0 ||
+                       $adjusted->isHtml() ||
+                       $token === 'eof'
+               ) {
+                       $isForeign = false;
+               } elseif ( $adjusted->isMathmlTextIntegrationPoint() ) {
+                       if ( $token === 'text' ) {
+                               $isForeign = false;
+                       } elseif (
+                               $token === 'tag' &&
+                               $value !== 'mglyph' && $value !== 'malignmark'
+                       ) {
+                               $isForeign = false;
+                       }
+               } elseif (
+                       $adjusted->namespaceURI === BalanceSets::MATHML_NAMESPACE &&
+                       $adjusted->localName === 'annotation-xml' &&
+                       $token === 'tag' && $value === 'svg'
+               ) {
+                       $isForeign = false;
+               } elseif (
+                       $adjusted->isHtmlIntegrationPoint() &&
+                       ( $token === 'tag' || $token === 'text' )
+               ) {
+                       $isForeign = false;
+               }
+               if ( $isForeign ) {
+                       return $this->insertForeignToken( $token, $value, $attribs, $selfclose );
+               } else {
+                       $func = $this->parseMode;
+                       return $this->$func( $token, $value, $attribs, $selfclose );
+               }
+       }
+
+       private function insertForeignToken( $token, $value, $attribs = null, $selfclose = false ) {
+               if ( $token === 'text' ) {
+                       $this->stack->insertText( $value );
+                       return true;
+               } elseif ( $token === 'tag' ) {
+                       switch ( $value ) {
+                       case 'font':
+                               if ( isset( $attribs['color'] )
+                                       || isset( $attribs['face'] )
+                                       || isset( $attribs['size'] )
+                               ) {
+                                       break;
+                               }
+                               /* otherwise, fall through */
+                       case 'b':
+                       case 'big':
+                       case 'blockquote':
+                       case 'body':
+                       case 'br':
+                       case 'center':
+                       case 'code':
+                       case 'dd':
+                       case 'div':
+                       case 'dl':
+                       case 'dt':
+                       case 'em':
+                       case 'embed':
+                       case 'h1':
+                       case 'h2':
+                       case 'h3':
+                       case 'h4':
+                       case 'h5':
+                       case 'h6':
+                       case 'head':
+                       case 'hr':
+                       case 'i':
+                       case 'img':
+                       case 'li':
+                       case 'listing':
+                       case 'menu':
+                       case 'meta':
+                       case 'nobr':
+                       case 'ol':
+                       case 'p':
+                       case 'pre':
+                       case 'ruby':
+                       case 's':
+                       case 'small':
+                       case 'span':
+                       case 'strong':
+                       case 'strike':
+                       case 'sub':
+                       case 'sup':
+                       case 'table':
+                       case 'tt':
+                       case 'u':
+                       case 'ul':
+                       case 'var':
+                               if ( $this->fragmentContext ) {
+                                       break;
+                               }
+                               while ( true ) {
+                                       $this->stack->pop();
+                                       $node = $this->stack->currentNode;
+                                       if (
+                                               $node->isMathmlTextIntegrationPoint() ||
+                                               $node->isHtmlIntegrationPoint() ||
+                                               $node->isHtml()
+                                       ) {
+                                               break;
+                                       }
+                               }
+                               return $this->insertToken( $token, $value, $attribs, $selfclose );
+                       }
+                       // "Any other start tag"
+                       $adjusted = ( $this->fragmentContext && $this->stack->length()===1 ) ?
+                               $this->fragmentContext : $this->stack->currentNode;
+                       $this->stack->insertForeignElement(
+                               $adjusted->namespaceURI, $value, $attribs
+                       );
+                       if ( $selfclose ) {
+                               $this->stack->pop();
+                       }
+                       return true;
+               } elseif ( $token === 'endtag' ) {
+                       $first = true;
+                       foreach ( $this->stack as $i => $node ) {
+                               if ( $node->isHtml() && !$first ) {
+                                       // process the end tag as HTML
+                                       $func = $this->parseMode;
+                                       return $this->$func( $token, $value, $attribs, $selfclose );
+                               } elseif ( $i === 0 ) {
+                                       return true;
+                               } elseif ( $node->localName === $value ) {
+                                       $this->stack->popTag( $node );
+                                       return true;
+                               }
+                               $first = false;
+                       }
+               }
+       }
+
+       /**
+        * Grab the next "token" from $bitsIterator.  This is either a open/close
+        * tag or text, depending on whether the Sanitizer approves.
+        */
+       private function advance() {
+               $x = $this->bitsIterator->current();
+               $this->bitsIterator->next();
+               $regs = [];
+               # $slash: Does the current element start with a '/'?
+               # $t: Current element name
+               # $attribStr: String between element name and >
+               # $brace: Ending '>' or '/>'
+               # $rest: Everything until the next element from the $bitsIterator
+               if ( preg_match( Sanitizer::ELEMENT_BITS_REGEX, $x, $regs ) ) {
+                       list( /* $qbar */, $slash, $t, $attribStr, $brace, $rest ) = $regs;
+                       $t = strtolower( $t );
+                       if ( $this->strict ) {
+                               /* Verify that attributes are all properly double-quoted */
+                               Assert::invariant(
+                                       preg_match(
+                                               '/^( [:_A-Z0-9][-.:_A-Z0-9]*="[^"]*")*[ ]*$/i', $attribStr
+                                       ),
+                                       "Bad attribute string found"
+                               );
+                       }
+               } else {
+                       Assert::invariant(
+                               !$this->strict, "< found which does not start a valid tag"
+                       );
+                       $slash = $t = $attribStr = $brace = $rest = null;
+               }
+               $goodtag = $t;
+               $sanitize = $this->allowedHtmlElements !== null;
+               if ( $sanitize ) {
+                       $goodtag = $t && isset( $this->allowedHtmlElements[$t] );
+               }
+               if ( $goodtag ) {
+                       if ( is_callable( $this->processingCallback ) ) {
+                               call_user_func_array( $this->processingCallback, [ &$attribStr, $this->processingArgs ] );
+                       }
+                       if ( $sanitize ) {
+                               $goodtag = Sanitizer::validateTag( $attribStr, $t );
+                       }
+               }
+               if ( $goodtag ) {
+                       if ( $sanitize ) {
+                               $attribs = Sanitizer::decodeTagAttributes( $attribStr );
+                               $attribs = Sanitizer::validateTagAttributes( $attribs, $t );
+                       } else {
+                               $attribs = Sanitizer::decodeTagAttributes( $attribStr );
+                       }
+                       $goodtag = $this->insertToken(
+                               $slash ? 'endtag' : 'tag', $t, $attribs, $brace === '/>'
+                       );
+               }
+               if ( $goodtag ) {
+                       $rest = str_replace( '>', '&gt;', $rest );
+                       $this->insertToken( 'text', str_replace( '>', '&gt;', $rest ) );
+               } else {
+                       # bad tag; serialize entire thing as text.
+                       $this->insertToken( 'text', '&lt;' . str_replace( '>', '&gt;', $x ) );
+               }
+       }
+
+       private function switchMode( $mode ) {
+               Assert::parameter(
+                       substr( $mode, -4 )==='Mode', '$mode', 'should end in Mode'
+               );
+               $oldMode = $this->parseMode;
+               $this->parseMode = $mode;
+               return $oldMode;
+       }
+
+       private function switchModeAndReprocess( $mode, $token, $value, $attribs, $selfclose ) {
+               $this->switchMode( $mode );
+               return $this->insertToken( $token, $value, $attribs, $selfclose );
+       }
+
+       private function resetInsertionMode() {
+               $last = false;
+               foreach ( $this->stack as $i => $node ) {
+                       if ( $i === 0 ) {
+                               $last = true;
+                               if ( $this->fragmentContext ) {
+                                       $node = $this->fragmentContext;
+                               }
+                       }
+                       if ( $node->isHtml() ) {
+                               switch ( $node->localName ) {
+                               # OMITTED: <select>
+                               /*
+                               case 'select':
+                                       $stacklen = $this->stack->length();
+                                       for ( $j = $i + 1; $j < $stacklen-1; $j++ ) {
+                                               $ancestor = $this->stack->node( $stacklen-$j-1 );
+                                               if ( $ancestor->isHtmlNamed( 'template' ) ) {
+                                                       break;
+                                               }
+                                               if ( $ancestor->isHtmlNamed( 'table' ) ) {
+                                                       $this->switchMode( 'inSelectInTableMode' );
+                                                       return;
+                                               }
+                                       }
+                                       $this->switchMode( 'inSelectMode' );
+                                       return;
+                               */
+                               case 'tr':
+                                       $this->switchMode( 'inRowMode' );
+                                       return;
+                               case 'tbody':
+                               case 'tfoot':
+                               case 'thead':
+                                       $this->switchMode( 'inTableBodyMode' );
+                                       return;
+                               case 'caption':
+                                       $this->switchMode( 'inCaptionMode' );
+                                       return;
+                               case 'colgroup':
+                                       $this->switchMode( 'inColumnGroupMode' );
+                                       return;
+                               case 'table':
+                                       $this->switchMode( 'inTableMode' );
+                                       return;
+                               case 'template':
+                                       $this->switchMode(
+                                               array_slice( $this->templateInsertionModes, -1 )[0]
+                                       );
+                                       return;
+                               case 'body':
+                                       $this->switchMode( 'inBodyMode' );
+                                       return;
+                               # OMITTED: <frameset>
+                               # OMITTED: <html>
+                               # OMITTED: <head>
+                               default:
+                                       if ( !$last ) {
+                                               # OMITTED: <head>
+                                               if ( $node->isA( BalanceSets::$tableCellSet ) ) {
+                                                       $this->switchMode( 'inCellMode' );
+                                                       return;
+                                               }
+                                       }
+                               }
+                       }
+                       if ( $last ) {
+                               $this->switchMode( 'inBodyMode' );
+                               return;
+                       }
+               }
+       }
+
+       private function stopParsing() {
+               # Most of the spec methods are inapplicable, other than step 2:
+               # "pop all the nodes off the stack of open elements".
+               # We're going to keep the top-most <html> element on the stack, though.
+
+               # Clear the AFE list first, otherwise the element objects will stay live
+               # during serialization, potentially using O(N^2) memory. Note that
+               # popping the stack will never result in reconstructing the active
+               # formatting elements.
+               $this->afe = null;
+               $this->stack->popTo( 1 );
+       }
+
+       private function parseRawText( $value, $attribs = null ) {
+               $this->stack->insertHTMLElement( $value, $attribs );
+               // XXX switch tokenizer to rawtext state?
+               $this->originalInsertionMode = $this->switchMode( 'inTextMode' );
+               return true;
+       }
+
+       private function inTextMode( $token, $value, $attribs = null, $selfclose = false ) {
+               if ( $token === 'text' ) {
+                       $this->stack->insertText( $value );
+                       return true;
+               } elseif ( $token === 'eof' ) {
+                       $this->stack->pop();
+                       return $this->switchModeAndReprocess(
+                               $this->originalInsertionMode, $token, $value, $attribs, $selfclose
+                       );
+               } elseif ( $token === 'endtag' ) {
+                       $this->stack->pop();
+                       $this->switchMode( $this->originalInsertionMode );
+                       return true;
+               }
+               return true;
+       }
+
+       private function inHeadMode( $token, $value, $attribs = null, $selfclose = false ) {
+               if ( $token === 'text' ) {
+                       if ( preg_match( '/^[\x09\x0A\x0C\x0D\x20]+/', $value, $matches ) ) {
+                               $this->stack->insertText( $matches[0] );
+                               $value = substr( $value, strlen( $matches[0] ) );
+                       }
+                       if ( strlen( $value ) === 0 ) {
+                               return true; // All text handled.
+                       }
+                       // Fall through to handle non-whitespace below.
+               } elseif ( $token === 'tag' ) {
+                       switch ( $value ) {
+                       case 'meta':
+                               # OMITTED: in a full HTML parser, this might change the encoding.
+                               /* falls through */
+                       # OMITTED: <html>
+                       case 'base':
+                       case 'basefont':
+                       case 'bgsound':
+                       case 'link':
+                               $this->stack->insertHTMLElement( $value, $attribs );
+                               $this->stack->pop();
+                               return true;
+                       # OMITTED: <title>
+                       # OMITTED: <noscript>
+                       case 'noframes':
+                       case 'style':
+                               return $this->parseRawText( $value, $attribs );
+                       # OMITTED: <script>
+                       case 'template':
+                               $this->stack->insertHTMLElement( $value, $attribs );
+                               $this->afe->insertMarker();
+                               # OMITTED: frameset_ok
+                               $this->switchMode( 'inTemplateMode' );
+                               $this->templateInsertionModes[] = $this->parseMode;
+                               return true;
+                       # OMITTED: <head>
+                       }
+               } elseif ( $token === 'endtag' ) {
+                       switch ( $value ) {
+                       # OMITTED: <head>
+                       # OMITTED: <body>
+                       # OMITTED: <html>
+                       case 'br':
+                               break; // handle at the bottom of the function
+                       case 'template':
+                               if ( $this->stack->indexOf( $value ) < 0 ) {
+                                       return true; // Ignore the token.
+                               }
+                               $this->stack->generateImpliedEndTags( null, true /* thorough */ );
+                               $this->stack->popTag( $value );
+                               $this->afe->clearToMarker();
+                               array_pop( $this->templateInsertionModes );
+                               $this->resetInsertionMode();
+                               return true;
+                       default:
+                               // ignore any other end tag
+                               return true;
+                       }
+               }
+
+               // If not handled above
+               $this->inHeadMode( 'endtag', 'head' ); // synthetic </head>
+               // Then redo this one
+               return $this->insertToken( $token, $value, $attribs, $selfclose );
+       }
+
+       private function inBodyMode( $token, $value, $attribs = null, $selfclose = false ) {
+               if ( $token === 'text' ) {
+                       $this->afe->reconstruct( $this->stack );
+                       $this->stack->insertText( $value );
+                       return true;
+               } elseif ( $token === 'eof' ) {
+                       if ( !empty( $this->templateInsertionModes ) ) {
+                               return $this->inTemplateMode( $token, $value, $attribs, $selfclose );
+                       }
+                       $this->stopParsing();
+                       return true;
+               } elseif ( $token === 'tag' ) {
+                       switch ( $value ) {
+                       # OMITTED: <html>
+                       case 'base':
+                       case 'basefont':
+                       case 'bgsound':
+                       case 'link':
+                       case 'meta':
+                       case 'noframes':
+                       # OMITTED: <script>
+                       case 'style':
+                       case 'template':
+                       # OMITTED: <title>
+                               return $this->inHeadMode( $token, $value, $attribs, $selfclose );
+                       # OMITTED: <body>
+                       # OMITTED: <frameset>
+
+                       case 'address':
+                       case 'article':
+                       case 'aside':
+                       case 'blockquote':
+                       case 'center':
+                       case 'details':
+                       case 'dialog':
+                       case 'dir':
+                       case 'div':
+                       case 'dl':
+                       case 'fieldset':
+                       case 'figcaption':
+                       case 'figure':
+                       case 'footer':
+                       case 'header':
+                       case 'hgroup':
+                       case 'main':
+                       case 'menu':
+                       case 'nav':
+                       case 'ol':
+                       case 'p':
+                       case 'section':
+                       case 'summary':
+                       case 'ul':
+                               if ( $this->stack->inButtonScope( 'p' ) ) {
+                                       $this->inBodyMode( 'endtag', 'p' );
+                               }
+                               $this->stack->insertHTMLElement( $value, $attribs );
+                               return true;
+
+                       case 'h1':
+                       case 'h2':
+                       case 'h3':
+                       case 'h4':
+                       case 'h5':
+                       case 'h6':
+                               if ( $this->stack->inButtonScope( 'p' ) ) {
+                                       $this->inBodyMode( 'endtag', 'p' );
+                               }
+                               if ( $this->stack->currentNode->isA( BalanceSets::$headingSet ) ) {
+                                       $this->stack->pop();
+                               }
+                               $this->stack->insertHTMLElement( $value, $attribs );
+                               return true;
+
+                       case 'pre':
+                       case 'listing':
+                               if ( $this->stack->inButtonScope( 'p' ) ) {
+                                       $this->inBodyMode( 'endtag', 'p' );
+                               }
+                               $this->stack->insertHTMLElement( $value, $attribs );
+                               # As described in "simplifications" above:
+                               # 1. We don't touch the next token, even if it's a linefeed.
+                               # 2. OMITTED: frameset_ok
+                               return true;
+
+                       # OMITTED: <form>
+
+                       case 'li':
+                               # OMITTED: frameset_ok
+                               foreach ( $this->stack as $node ) {
+                                       if ( $node->isHtmlNamed( 'li' ) ) {
+                                               $this->inBodyMode( 'endtag', 'li' );
+                                               break;
+                                       }
+                                       if (
+                                               $node->isA( BalanceSets::$specialSet ) &&
+                                               !$node->isA( BalanceSets::$addressDivPSet )
+                                       ) {
+                                               break;
+                                       }
+                               }
+                               if ( $this->stack->inButtonScope( 'p' ) ) {
+                                       $this->inBodyMode( 'endtag', 'p' );
+                               }
+                               $this->stack->insertHTMLElement( $value, $attribs );
+                               return true;
+
+                       case 'dd':
+                       case 'dt':
+                               # OMITTED: frameset_ok
+                               foreach ( $this->stack as $node ) {
+                                       if ( $node->isHtmlNamed( 'dd' ) ) {
+                                               $this->inBodyMode( 'endtag', 'dd' );
+                                               break;
+                                       }
+                                       if ( $node->isHtmlNamed( 'dt' ) ) {
+                                               $this->inBodyMode( 'endtag', 'dt' );
+                                               break;
+                                       }
+                                       if (
+                                               $node->isA( BalanceSets::$specialSet ) &&
+                                               !$node->isA( BalanceSets::$addressDivPSet )
+                                       ) {
+                                               break;
+                                       }
+                               }
+                               if ( $this->stack->inButtonScope( 'p' ) ) {
+                                       $this->inBodyMode( 'endtag', 'p' );
+                               }
+                               $this->stack->insertHTMLElement( $value, $attribs );
+                               return true;
+
+                       # OMITTED: <plaintext>
+
+                       case 'button':
+                               if ( $this->stack->inScope( 'button' ) ) {
+                                       $this->inBodyMode( 'endtag', 'button' );
+                                       return $this->insertToken( $token, $value, $attribs, $selfclose );
+                               }
+                               $this->afe->reconstruct( $this->stack );
+                               $this->stack->insertHTMLElement( $value, $attribs );
+                               return true;
+
+                       case 'a':
+                               $activeElement = $this->afe->findElementByTag( 'a' );
+                               if ( $activeElement ) {
+                                       $this->inBodyMode( 'endtag', 'a' );
+                                       if ( $this->afe->isInList( $activeElement ) ) {
+                                               $this->afe->remove( $activeElement );
+                                               // Don't flatten here, since when we fall
+                                               // through below we might foster parent
+                                               // the new <a> tag inside this one.
+                                               $this->stack->removeElement( $activeElement, false );
+                                       }
+                               }
+                               /* Falls through */
+                       case 'b':
+                       case 'big':
+                       case 'code':
+                       case 'em':
+                       case 'font':
+                       case 'i':
+                       case 's':
+                       case 'small':
+                       case 'strike':
+                       case 'strong':
+                       case 'tt':
+                       case 'u':
+                               $this->afe->reconstruct( $this->stack );
+                               $this->afe->push( $this->stack->insertHTMLElement( $value, $attribs ), $attribs );
+                               return true;
+
+                       case 'nobr':
+                               $this->afe->reconstruct( $this->stack );
+                               if ( $this->stack->inScope( 'nobr' ) ) {
+                                       $this->inBodyMode( 'endtag', 'nobr' );
+                                       $this->afe->reconstruct( $this->stack );
+                               }
+                               $this->afe->push( $this->stack->insertHTMLElement( $value, $attribs ), $attribs );
+                               return true;
+
+                       case 'applet':
+                       case 'marquee':
+                       case 'object':
+                               $this->afe->reconstruct( $this->stack );
+                               $this->stack->insertHTMLElement( $value, $attribs );
+                               $this->afe->insertMarker();
+                               # OMITTED: frameset_ok
+                               return true;
+
+                       case 'table':
+                               # The document is never in "quirks mode"; see simplifications
+                               # above.
+                               if ( $this->stack->inButtonScope( 'p' ) ) {
+                                       $this->inBodyMode( 'endtag', 'p' );
+                               }
+                               $this->stack->insertHTMLElement( $value, $attribs );
+                               # OMITTED: frameset_ok
+                               $this->switchMode( 'inTableMode' );
+                               return true;
+
+                       case 'area':
+                       case 'br':
+                       case 'embed':
+                       case 'img':
+                       case 'keygen':
+                       case 'wbr':
+                               $this->afe->reconstruct( $this->stack );
+                               $this->stack->insertHTMLElement( $value, $attribs );
+                               $this->stack->pop();
+                               # OMITTED: frameset_ok
+                               return true;
+
+                       case 'input':
+                               $this->afe->reconstruct( $this->stack );
+                               $this->stack->insertHTMLElement( $value, $attribs );
+                               $this->stack->pop();
+                               # OMITTED: frameset_ok
+                               # (hence we don't need to examine the tag's "type" attribute)
+                               return true;
+
+                       case 'menuitem':
+                       case 'param':
+                       case 'source':
+                       case 'track':
+                               $this->stack->insertHTMLElement( $value, $attribs );
+                               $this->stack->pop();
+                               return true;
+
+                       case 'hr':
+                               if ( $this->stack->inButtonScope( 'p' ) ) {
+                                       $this->inBodyMode( 'endtag', 'p' );
+                               }
+                               $this->stack->insertHTMLElement( $value, $attribs );
+                               $this->stack->pop();
+                               return true;
+
+                       case 'image':
+                               # warts!
+                               return $this->inBodyMode( $token, 'img', $attribs, $selfclose );
+
+                       # OMITTED: <isindex>
+                       # OMITTED: <textarea>
+                       # OMITTED: <xmp>
+                       # OMITTED: <iframe>
+                       # OMITTED: <noembed>
+                       # OMITTED: <noscript>
+
+                       # OMITTED: <select>
+                       /*
+                       case 'select':
+                               $this->afe->reconstruct( $this->stack );
+                               $this->stack->insertHTMLElement( $value, $attribs );
+                               switch ( $this->parseMode ) {
+                               case 'inTableMode':
+                               case 'inCaptionMode':
+                               case 'inTableBodyMode':
+                               case 'inRowMode':
+                               case 'inCellMode':
+                                       $this->switchMode( 'inSelectInTableMode' );
+                                       return true;
+                               default:
+                                       $this->switchMode( 'inSelectMode' );
+                                       return true;
+                               }
+                       */
+
+                       case 'optgroup':
+                       case 'option':
+                               if ( $this->stack->currentNode->isHtmlNamed( 'option' ) ) {
+                                       $this->inBodyMode( 'endtag', 'option' );
+                               }
+                               $this->afe->reconstruct( $this->stack );
+                               $this->stack->insertHTMLElement( $value, $attribs );
+                               return true;
+
+                       case 'rb':
+                       case 'rtc':
+                               if ( $this->stack->inScope( 'ruby' ) ) {
+                                       $this->stack->generateImpliedEndTags();
+                               }
+                               $this->stack->insertHTMLElement( $value, $attribs );
+                               return true;
+
+                       case 'rp':
+                       case 'rt':
+                               if ( $this->stack->inScope( 'ruby' ) ) {
+                                       $this->stack->generateImpliedEndTags( 'rtc' );
+                               }
+                               $this->stack->insertHTMLElement( $value, $attribs );
+                               return true;
+
+                       case 'math':
+                               $this->afe->reconstruct( $this->stack );
+                               # We skip the spec's "adjust MathML attributes" and
+                               # "adjust foreign attributes" steps, since the browser will
+                               # do this later when it parses the output and it doesn't affect
+                               # balancing.
+                               $this->stack->insertForeignElement(
+                                       BalanceSets::MATHML_NAMESPACE, $value, $attribs
+                               );
+                               if ( $selfclose ) {
+                                       # emit explicit </math> tag.
+                                       $this->stack->pop();
+                               }
+                               return true;
+
+                       case 'svg':
+                               $this->afe->reconstruct( $this->stack );
+                               # We skip the spec's "adjust SVG attributes" and
+                               # "adjust foreign attributes" steps, since the browser will
+                               # do this later when it parses the output and it doesn't affect
+                               # balancing.
+                               $this->stack->insertForeignElement(
+                                       BalanceSets::SVG_NAMESPACE, $value, $attribs
+                               );
+                               if ( $selfclose ) {
+                                       # emit explicit </svg> tag.
+                                       $this->stack->pop();
+                               }
+                               return true;
+
+                       case 'caption':
+                       case 'col':
+                       case 'colgroup':
+                       # OMITTED: <frame>
+                       case 'head':
+                       case 'tbody':
+                       case 'td':
+                       case 'tfoot':
+                       case 'th':
+                       case 'thead':
+                       case 'tr':
+                               // Ignore table tags if we're not inTableMode
+                               return true;
+                       }
+
+                       // Handle any other start tag here
+                       $this->afe->reconstruct( $this->stack );
+                       $this->stack->insertHTMLElement( $value, $attribs );
+                       return true;
+               } elseif ( $token === 'endtag' ) {
+                       switch ( $value ) {
+                       # </body>,</html> are unsupported.
+
+                       case 'template':
+                               return $this->inHeadMode( $token, $value, $attribs, $selfclose );
+
+                       case 'address':
+                       case 'article':
+                       case 'aside':
+                       case 'blockquote':
+                       case 'button':
+                       case 'center':
+                       case 'details':
+                       case 'dialog':
+                       case 'dir':
+                       case 'div':
+                       case 'dl':
+                       case 'fieldset':
+                       case 'figcaption':
+                       case 'figure':
+                       case 'footer':
+                       case 'header':
+                       case 'hgroup':
+                       case 'listing':
+                       case 'main':
+                       case 'menu':
+                       case 'nav':
+                       case 'ol':
+                       case 'pre':
+                       case 'section':
+                       case 'summary':
+                       case 'ul':
+                               // Ignore if there is not a matching open tag
+                               if ( !$this->stack->inScope( $value ) ) {
+                                       return true;
+                               }
+                               $this->stack->generateImpliedEndTags();
+                               $this->stack->popTag( $value );
+                               return true;
+
+                       # OMITTED: <form>
+
+                       case 'p':
+                               if ( !$this->stack->inButtonScope( 'p' ) ) {
+                                       $this->inBodyMode( 'tag', 'p', [] );
+                                       return $this->insertToken( $token, $value, $attribs, $selfclose );
+                               }
+                               $this->stack->generateImpliedEndTags( $value );
+                               $this->stack->popTag( $value );
+                               return true;
+
+                       case 'li':
+                               if ( !$this->stack->inListItemScope( $value ) ) {
+                                       return true; # ignore
+                               }
+                               $this->stack->generateImpliedEndTags( $value );
+                               $this->stack->popTag( $value );
+                               return true;
+
+                       case 'dd':
+                       case 'dt':
+                               if ( !$this->stack->inScope( $value ) ) {
+                                       return true; # ignore
+                               }
+                               $this->stack->generateImpliedEndTags( $value );
+                               $this->stack->popTag( $value );
+                               return true;
+
+                       case 'h1':
+                       case 'h2':
+                       case 'h3':
+                       case 'h4':
+                       case 'h5':
+                       case 'h6':
+                               if ( !$this->stack->inScope( BalanceSets::$headingSet ) ) {
+                                       return;
+                               }
+                               $this->stack->generateImpliedEndTags();
+                               $this->stack->popTag( BalanceSets::$headingSet );
+                               return true;
+
+                       case 'sarcasm':
+                               # Take a deep breath, then:
+                               break;
+
+                       case 'a':
+                       case 'b':
+                       case 'big':
+                       case 'code':
+                       case 'em':
+                       case 'font':
+                       case 'i':
+                       case 'nobr':
+                       case 's':
+                       case 'small':
+                       case 'strike':
+                       case 'strong':
+                       case 'tt':
+                       case 'u':
+                               if ( $this->stack->adoptionAgency( $value, $this->afe ) ) {
+                                       return true; # If we did something, we're done.
+                               }
+                               break; # Go to the "any other end tag" case.
+
+                       case 'applet':
+                       case 'marquee':
+                       case 'object':
+                               if ( !$this->stack->inScope( $value ) ) {
+                                       return true; # ignore
+                               }
+                               $this->stack->generateImpliedEndTags();
+                               $this->stack->popTag( $value );
+                               $this->afe->clearToMarker();
+                               return true;
+
+                       case 'br':
+                               # Turn </br> into <br>
+                               return $this->inBodyMode( 'tag', $value, [] );
+                       }
+
+                       // Any other end tag goes here
+                       foreach ( $this->stack as $i => $node ) {
+                               if ( $node->isHtmlNamed( $value ) ) {
+                                       $this->stack->generateImpliedEndTags( $value );
+                                       $this->stack->popTo( $i ); # including $i
+                                       break;
+                               } elseif ( $node->isA( BalanceSets::$specialSet ) ) {
+                                       return true; // ignore this close token.
+                               }
+                       }
+                       return true;
+               } else {
+                       Assert::invariant( false, "Bad token type: $token" );
+               }
+       }
+
+       private function inTableMode( $token, $value, $attribs = null, $selfclose = false ) {
+               if ( $token === 'text' ) {
+                       if ( $this->textIntegrationMode ) {
+                               return $this->inBodyMode( $token, $value, $attribs, $selfclose );
+                       } elseif ( $this->stack->currentNode->isA( BalanceSets::$tableSectionRowSet ) ) {
+                               $this->pendingTableText = '';
+                               $this->originalInsertionMode = $this->parseMode;
+                               return $this->switchModeAndReprocess( 'inTableTextMode', $token, $value, $attribs, $selfclose );
+                       }
+                       // fall through to default case.
+               } elseif ( $token === 'eof' ) {
+                       $this->stopParsing();
+                       return true;
+               } elseif ( $token === 'tag' ) {
+                       switch ( $value ) {
+                       case 'caption':
+                               $this->afe->insertMarker();
+                               $this->stack->insertHTMLElement( $value, $attribs );
+                               $this->switchMode( 'inCaptionMode' );
+                               return true;
+                       case 'colgroup':
+                               $this->stack->clearToContext( BalanceSets::$tableContextSet );
+                               $this->stack->insertHTMLElement( $value, $attribs );
+                               $this->switchMode( 'inColumnGroupMode' );
+                               return true;
+                       case 'col':
+                               $this->inTableMode( 'tag', 'colgroup', [] );
+                               return $this->insertToken( $token, $value, $attribs, $selfclose );
+                       case 'tbody':
+                       case 'tfoot':
+                       case 'thead':
+                               $this->stack->clearToContext( BalanceSets::$tableContextSet );
+                               $this->stack->insertHTMLElement( $value, $attribs );
+                               $this->switchMode( 'inTableBodyMode' );
+                               return true;
+                       case 'td':
+                       case 'th':
+                       case 'tr':
+                               $this->inTableMode( 'tag', 'tbody', [] );
+                               return $this->insertToken( $token, $value, $attribs, $selfclose );
+                       case 'table':
+                               if ( !$this->stack->inTableScope( $value ) ) {
+                                       return true; // Ignore this tag.
+                               }
+                               $this->inTableMode( 'endtag', $value );
+                               return $this->insertToken( $token, $value, $attribs, $selfclose );
+
+                       case 'style':
+                       # OMITTED: <script>
+                       case 'template':
+                               return $this->inHeadMode( $token, $value, $attribs, $selfclose );
+
+                       case 'input':
+                               if ( !isset( $attribs['type'] ) || strcasecmp( $attribs['type'], 'hidden' ) !== 0 ) {
+                                       break; // Handle this as "everything else"
+                               }
+                               $this->stack->insertHTMLElement( $value, $attribs );
+                               $this->stack->pop();
+                               return true;
+
+                       # OMITTED: <form>
+                       }
+                       // Fall through for "anything else" clause.
+               } elseif ( $token === 'endtag' ) {
+                       switch ( $value ) {
+                       case 'table':
+                               if ( !$this->stack->inTableScope( $value ) ) {
+                                       return true; // Ignore.
+                               }
+                               $this->stack->popTag( $value );
+                               $this->resetInsertionMode();
+                               return true;
+                       # OMITTED: <body>
+                       case 'caption':
+                       case 'col':
+                       case 'colgroup':
+                       # OMITTED: <html>
+                       case 'tbody':
+                       case 'td':
+                       case 'tfoot':
+                       case 'th':
+                       case 'thead':
+                       case 'tr':
+                               return true; // Ignore the token.
+                       case 'template':
+                               return $this->inHeadMode( $token, $value, $attribs, $selfclose );
+                       }
+                       // Fall through for "anything else" clause.
+               }
+               // This is the "anything else" case:
+               $this->stack->fosterParentMode = true;
+               $this->inBodyMode( $token, $value, $attribs, $selfclose );
+               $this->stack->fosterParentMode = false;
+               return true;
+       }
+
+       private function inTableTextMode( $token, $value, $attribs = null, $selfclose = false ) {
+               if ( $token === 'text' ) {
+                       $this->pendingTableText .= $value;
+                       return true;
+               }
+               // Non-text token:
+               $text = $this->pendingTableText;
+               $this->pendingTableText = '';
+               if ( preg_match( '/[^\x09\x0A\x0C\x0D\x20]/', $text ) ) {
+                       // This should match the "anything else" case inTableMode
+                       $this->stack->fosterParentMode = true;
+                       $this->inBodyMode( 'text', $text );
+                       $this->stack->fosterParentMode = false;
+               } else {
+                       // Pending text is just whitespace.
+                       $this->stack->insertText( $text );
+               }
+               return $this->switchModeAndReprocess(
+                       $this->originalInsertionMode, $token, $value, $attribs, $selfclose
+               );
+       }
+
+       // helper for inCaptionMode
+       private function endCaption() {
+               if ( !$this->stack->inTableScope( 'caption' ) ) {
+                       return false;
+               }
+               $this->stack->generateImpliedEndTags();
+               $this->stack->popTag( 'caption' );
+               $this->afe->clearToMarker();
+               $this->switchMode( 'inTableMode' );
+               return true;
+       }
+
+       private function inCaptionMode( $token, $value, $attribs = null, $selfclose = false ) {
+               if ( $token === 'tag' ) {
+                       switch ( $value ) {
+                       case 'caption':
+                       case 'col':
+                       case 'colgroup':
+                       case 'tbody':
+                       case 'td':
+                       case 'tfoot':
+                       case 'th':
+                       case 'thead':
+                       case 'tr':
+                               if ( $this->endCaption() ) {
+                                       $this->insertToken( $token, $value, $attribs, $selfclose );
+                               }
+                               return true;
+                       }
+                       // Fall through to "anything else" case.
+               } elseif ( $token === 'endtag' ) {
+                       switch ( $value ) {
+                       case 'caption':
+                               $this->endCaption();
+                               return true;
+                       case 'table':
+                               if ( $this->endCaption() ) {
+                                       $this->insertToken( $token, $value, $attribs, $selfclose );
+                               }
+                               return true;
+                       case 'body':
+                       case 'col':
+                       case 'colgroup':
+                       # OMITTED: <html>
+                       case 'tbody':
+                       case 'td':
+                       case 'tfoot':
+                       case 'th':
+                       case 'thead':
+                       case 'tr':
+                               // Ignore the token
+                               return true;
+                       }
+                       // Fall through to "anything else" case.
+               }
+               // The Anything Else case
+               return $this->inBodyMode( $token, $value, $attribs, $selfclose );
+       }
+
+       private function inColumnGroupMode( $token, $value, $attribs = null, $selfclose = false ) {
+               if ( $token === 'text' ) {
+                       if ( preg_match( '/^[\x09\x0A\x0C\x0D\x20]+/', $value, $matches ) ) {
+                               $this->stack->insertText( $matches[0] );
+                               $value = substr( $value, strlen( $matches[0] ) );
+                       }
+                       if ( strlen( $value ) === 0 ) {
+                               return true; // All text handled.
+                       }
+                       // Fall through to handle non-whitespace below.
+               } elseif ( $token === 'tag' ) {
+                       switch ( $value ) {
+                       # OMITTED: <html>
+                       case 'col':
+                               $this->stack->insertHTMLElement( $value, $attribs );
+                               $this->stack->pop();
+                               return true;
+                       case 'template':
+                               return $this->inHeadMode( $token, $value, $attribs, $selfclose );
+                       }
+                       // Fall through for "anything else".
+               } elseif ( $token === 'endtag' ) {
+                       switch ( $value ) {
+                       case 'colgroup':
+                               if ( !$this->stack->currentNode->isHtmlNamed( 'colgroup' ) ) {
+                                       return true; // Ignore the token.
+                               }
+                               $this->stack->pop();
+                               $this->switchMode( 'inTableMode' );
+                               return true;
+                       case 'col':
+                               return true; // Ignore the token.
+                       case 'template':
+                               return $this->inHeadMode( $token, $value, $attribs, $selfclose );
+                       }
+                       // Fall through for "anything else".
+               } elseif ( $token === 'eof' ) {
+                       return $this->inBodyMode( $token, $value, $attribs, $selfclose );
+               }
+
+               // Anything else
+               if ( !$this->stack->currentNode->isHtmlNamed( 'colgroup' ) ) {
+                       return true; // Ignore the token.
+               }
+               $this->inColumnGroupMode( 'endtag', 'colgroup' );
+               return $this->insertToken( $token, $value, $attribs, $selfclose );
+       }
+
+       // Helper function for inTableBodyMode
+       private function endSection() {
+               if ( !(
+                       $this->stack->inTableScope( 'tbody' ) ||
+                       $this->stack->inTableScope( 'thead' ) ||
+                       $this->stack->inTableScope( 'tfoot' )
+               ) ) {
+                       return false;
+               }
+               $this->stack->clearToContext( BalanceSets::$tableBodyContextSet );
+               $this->stack->pop();
+               $this->switchMode( 'inTableMode' );
+               return true;
+       }
+       private function inTableBodyMode( $token, $value, $attribs = null, $selfclose = false ) {
+               if ( $token === 'tag' ) {
+                       switch ( $value ) {
+                       case 'tr':
+                               $this->stack->clearToContext( BalanceSets::$tableBodyContextSet );
+                               $this->stack->insertHTMLElement( $value, $attribs );
+                               $this->switchMode( 'inRowMode' );
+                               return true;
+                       case 'th':
+                       case 'td':
+                               $this->inTableBodyMode( 'tag', 'tr', [] );
+                               $this->insertToken( $token, $value, $attribs, $selfclose );
+                               return true;
+                       case 'caption':
+                       case 'col':
+                       case 'colgroup':
+                       case 'tbody':
+                       case 'tfoot':
+                       case 'thead':
+                               if ( $this->endSection() ) {
+                                       $this->insertToken( $token, $value, $attribs, $selfclose );
+                               }
+                               return true;
+                       }
+               } elseif ( $token === 'endtag' ) {
+                       switch ( $value ) {
+                       case 'table':
+                               if ( $this->endSection() ) {
+                                       $this->insertToken( $token, $value, $attribs, $selfclose );
+                               }
+                               return true;
+                       case 'tbody':
+                       case 'tfoot':
+                       case 'thead':
+                               if ( $this->stack->inTableScope( $value ) ) {
+                                       $this->endSection();
+                               }
+                               return true;
+                       # OMITTED: <body>
+                       case 'caption':
+                       case 'col':
+                       case 'colgroup':
+                       # OMITTED: <html>
+                       case 'td':
+                       case 'th':
+                       case 'tr':
+                               return true; // Ignore the token.
+                       }
+               }
+               // Anything else:
+               return $this->inTableMode( $token, $value, $attribs, $selfclose );
+       }
+
+       // Helper function for inRowMode
+       private function endRow() {
+               if ( !$this->stack->inTableScope( 'tr' ) ) {
+                       return false;
+               }
+               $this->stack->clearToContext( BalanceSets::$tableRowContextSet );
+               $this->stack->pop();
+               $this->switchMode( 'inTableBodyMode' );
+               return true;
+       }
+       private function inRowMode( $token, $value, $attribs = null, $selfclose = false ) {
+               if ( $token === 'tag' ) {
+                       switch ( $value ) {
+                       case 'th':
+                       case 'td':
+                               $this->stack->clearToContext( BalanceSets::$tableRowContextSet );
+                               $this->stack->insertHTMLElement( $value, $attribs );
+                               $this->switchMode( 'inCellMode' );
+                               $this->afe->insertMarker();
+                               return true;
+                       case 'caption':
+                       case 'col':
+                       case 'colgroup':
+                       case 'tbody':
+                       case 'tfoot':
+                       case 'thead':
+                       case 'tr':
+                               if ( $this->endRow() ) {
+                                       $this->insertToken( $token, $value, $attribs, $selfclose );
+                               }
+                               return true;
+                       }
+               } elseif ( $token === 'endtag' ) {
+                       switch ( $value ) {
+                       case 'tr':
+                               $this->endRow();
+                               return true;
+                       case 'table':
+                               if ( $this->endRow() ) {
+                                       $this->insertToken( $token, $value, $attribs, $selfclose );
+                               }
+                               return true;
+                       case 'tbody':
+                       case 'tfoot':
+                       case 'thead':
+                               if (
+                                       $this->stack->inTableScope( $value ) &&
+                                       $this->endRow()
+                               ) {
+                                       $this->insertToken( $token, $value, $attribs, $selfclose );
+                               }
+                               return true;
+                       # OMITTED: <body>
+                       case 'caption':
+                       case 'col':
+                       case 'colgroup':
+                       # OMITTED: <html>
+                       case 'td':
+                       case 'th':
+                               return true; // Ignore the token.
+                       }
+               }
+               // Anything else:
+               return $this->inTableMode( $token, $value, $attribs, $selfclose );
+       }
+
+       // Helper for inCellMode
+       private function endCell() {
+               if ( $this->stack->inTableScope( 'td' ) ) {
+                       $this->inCellMode( 'endtag', 'td' );
+                       return true;
+               } elseif ( $this->stack->inTableScope( 'th' ) ) {
+                       $this->inCellMode( 'endtag', 'th' );
+                       return true;
+               } else {
+                       return false;
+               }
+       }
+       private function inCellMode( $token, $value, $attribs = null, $selfclose = false ) {
+               if ( $token === 'tag' ) {
+                       switch ( $value ) {
+                       case 'caption':
+                       case 'col':
+                       case 'colgroup':
+                       case 'tbody':
+                       case 'td':
+                       case 'tfoot':
+                       case 'th':
+                       case 'thead':
+                       case 'tr':
+                               if ( $this->endCell() ) {
+                                       $this->insertToken( $token, $value, $attribs, $selfclose );
+                               }
+                               return true;
+                       }
+               } elseif ( $token === 'endtag' ) {
+                       switch ( $value ) {
+                       case 'td':
+                       case 'th':
+                               if ( $this->stack->inTableScope( $value ) ) {
+                                       $this->stack->generateImpliedEndTags();
+                                       $this->stack->popTag( $value );
+                                       $this->afe->clearToMarker();
+                                       $this->switchMode( 'inRowMode' );
+                               }
+                               return true;
+                       # OMITTED: <body>
+                       case 'caption':
+                       case 'col':
+                       case 'colgroup':
+                       # OMITTED: <html>
+                               return true;
+
+                       case 'table':
+                       case 'tbody':
+                       case 'tfoot':
+                       case 'thead':
+                       case 'tr':
+                               if ( $this->stack->inTableScope( $value ) ) {
+                                       $this->stack->generateImpliedEndTags();
+                                       $this->stack->popTag( BalanceSets::$tableCellSet );
+                                       $this->afe->clearToMarker();
+                                       $this->switchMode( 'inRowMode' );
+                                       $this->insertToken( $token, $value, $attribs, $selfclose );
+                               }
+                               return true;
+                       }
+               }
+               // Anything else:
+               return $this->inBodyMode( $token, $value, $attribs, $selfclose );
+       }
+
+       # OMITTED: <select>
+       /*
+       private function inSelectMode( $token, $value, $attribs = null, $selfclose = false ) {
+               Assert::invariant( false, 'Unimplemented' );
+       }
+
+       private function inSelectInTableMode( $token, $value, $attribs = null, $selfclose = false ) {
+               Assert::invariant( false, 'Unimplemented' );
+       }
+       */
+
+       private function inTemplateMode( $token, $value, $attribs = null, $selfclose = false ) {
+               if ( $token === 'text' ) {
+                       return $this->inBodyMode( $token, $value, $attribs, $selfclose );
+               } elseif ( $token === 'eof' ) {
+                       if ( $this->stack->indexOf( 'template' ) < 0 ) {
+                               $this->stopParsing();
+                       } else {
+                               $this->stack->popTag( 'template' );
+                               $this->afe->clearToMarker();
+                               array_pop( $this->templateInsertionModes );
+                               $this->resetInsertionMode();
+                               $this->insertToken( $token, $value, $attribs, $selfclose );
+                       }
+                       return true;
+               } elseif ( $token === 'tag' ) {
+                       switch ( $value ) {
+                       case 'base':
+                       case 'basefont':
+                       case 'bgsound':
+                       case 'link':
+                       case 'meta':
+                       case 'noframes':
+                       # OMITTED: <script>
+                       case 'style':
+                       case 'template':
+                       # OMITTED: <title>
+                               return $this->inHeadMode( $token, $value, $attribs, $selfclose );
+
+                       case 'caption':
+                       case 'colgroup':
+                       case 'tbody':
+                       case 'tfoot':
+                       case 'thead':
+                               return $this->switchModeAndReprocess(
+                                       'inTableMode', $token, $value, $attribs, $selfclose
+                               );
+
+                       case 'col':
+                               return $this->switchModeAndReprocess(
+                                       'inColumnGroupMode', $token, $value, $attribs, $selfclose
+                               );
+
+                       case 'tr':
+                               return $this->switchModeAndReprocess(
+                                       'inTableBodyMode', $token, $value, $attribs, $selfclose
+                               );
+
+                       case 'td':
+                       case 'th':
+                               return $this->switchModeAndReprocess(
+                                       'inRowMode', $token, $value, $attribs, $selfclose
+                               );
+                       }
+                       return $this->switchModeAndReprocess(
+                               'inBodyMode', $token, $value, $attribs, $selfclose
+                       );
+               } elseif ( $token === 'endtag' ) {
+                       switch ( $value ) {
+                       case 'template':
+                               return $this->inHeadMode( $token, $value, $attribs, $selfclose );
+                       }
+                       return true;
+               } else {
+                       Assert::invariant( false, "Bad token type: $token" );
+               }
+       }
+}
diff --git a/includes/tidy/Html5Internal.php b/includes/tidy/Html5Internal.php
new file mode 100644 (file)
index 0000000..4ad8200
--- /dev/null
@@ -0,0 +1,18 @@
+<?php
+
+namespace MediaWiki\Tidy;
+
+class Html5Internal extends TidyDriverBase {
+       private $balancer;
+       public function __construct( array $config ) {
+               parent::__construct( $config + [
+                       'strict' => true,
+                       'tidyCompat' => true,
+               ] );
+               $this->balancer = new Balancer( $this->config );
+       }
+
+       public function tidy( $text ) {
+               return $this->balancer->balance( $text );
+       }
+}
index 2a3986d..bb83d6a 100644 (file)
@@ -14,7 +14,7 @@ class RaggettInternalHHVM extends RaggettBase {
         */
        protected function cleanWrapped( $text, $stderr = false, &$retval = null ) {
                if ( $stderr ) {
-                       throw new Exception( "\$stderr cannot be used with RaggettInternalHHVM" );
+                       throw new \Exception( "\$stderr cannot be used with RaggettInternalHHVM" );
                }
                $cleansource = tidy_repair_string( $text, $this->config['tidyConfigFile'], 'utf8' );
                if ( $cleansource === false ) {
index ab19142..56d5ce7 100644 (file)
@@ -54,7 +54,7 @@ class RaggettWrapper {
                // Preserve empty li elements (T49673) by abusing Tidy's datafld hack
                // The whitespace class is as in TY_(InitMap)
                $wrappedtext = preg_replace( "!<li>([ \r\n\t\f]*)</li>!",
-                       '<li datafld="" class="mw-empty-li">\1</li>', $wrappedtext );
+                       '<li datafld="" class="mw-empty-elt">\1</li>', $wrappedtext );
 
                // Wrap the whole thing in a doctype and body for Tidy.
                $wrappedtext = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"' .
index 06775ef..96ee8c3 100644 (file)
@@ -27,7 +27,7 @@ abstract class TidyDriverBase {
         * @return bool Whether the HTML is valid
         */
        public function validate( $text, &$errorStr ) {
-               throw new MWException( get_class( $this ) . " does not support validate()" );
+               throw new \MWException( get_class( $this ) . " does not support validate()" );
        }
 
        /**
diff --git a/includes/title/MediaWikiPageLinkRenderer.php b/includes/title/MediaWikiPageLinkRenderer.php
deleted file mode 100644 (file)
index a565271..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-<?php
-/**
- * A service for generating links from page titles
- *
- * 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
- * @license GPL 2+
- * @author Daniel Kinzler
- */
-use MediaWiki\Linker\LinkTarget;
-
-/**
- * A service for generating links from page titles.
- *
- * @see https://www.mediawiki.org/wiki/Requests_for_comment/TitleValue
- * @since 1.23
- */
-class MediaWikiPageLinkRenderer implements PageLinkRenderer {
-       /**
-        * @var TitleFormatter
-        */
-       protected $formatter;
-
-       /**
-        * @var string
-        */
-       protected $baseUrl;
-
-       /**
-        * @note $formatter and $baseUrl are currently not used for generating links,
-        * since we still rely on the Linker class to generate the actual HTML.
-        * Once this is reversed so that  Linker becomes a legacy interface to
-        * HtmlPageLinkRenderer, we will be using them, so it seems prudent to
-        * already declare the dependency and inject them.
-        *
-        * @param TitleFormatter $formatter Formatter for generating the target title string
-        * @param string $baseUrl (currently unused, pending refactoring of Linker).
-        *        Defaults to $wgArticlePath.
-        */
-       public function __construct( TitleFormatter $formatter, $baseUrl = null ) {
-               if ( $baseUrl === null ) {
-                       $baseUrl = $GLOBALS['wgArticlePath'];
-               }
-
-               $this->formatter = $formatter;
-               $this->baseUrl = $baseUrl;
-       }
-
-       /**
-        * Returns the (partial) URL for the given page (including any section identifier).
-        *
-        * @param LinkTarget $page The link's target
-        * @param array $params Any additional URL parameters.
-        *
-        * @return string
-        */
-       public function getPageUrl( LinkTarget $page, $params = [] ) {
-               // TODO: move the code from Linker::linkUrl here!
-               // The below is just a rough estimation!
-
-               $name = $this->formatter->getPrefixedText( $page );
-               $name = str_replace( ' ', '_', $name );
-               $name = wfUrlencode( $name );
-
-               $url = $this->baseUrl . $name;
-
-               if ( $params ) {
-                       $separator = ( strpos( $url, '?' ) ) ? '&' : '?';
-                       $url .= $separator . wfArrayToCgi( $params );
-               }
-
-               $fragment = $page->getFragment();
-               if ( $fragment !== '' ) {
-                       $url = $url . '#' . wfUrlencode( $fragment );
-               }
-
-               return $url;
-       }
-
-       /**
-        * Returns an HTML link to the given page, using the given surface text.
-        *
-        * @param LinkTarget $linkTarget The link's target
-        * @param string $text The link's surface text (will be derived from $page if not given).
-        *
-        * @return string
-        */
-       public function renderHtmlLink( LinkTarget $linkTarget, $text = null ) {
-               if ( $text === null ) {
-                       $text = $this->formatter->getFullText( $linkTarget );
-               }
-
-               // TODO: move the logic implemented by Linker here,
-               // using $this->formatter and $this->baseUrl, and
-               // re-implement Linker to use a HtmlPageLinkRenderer.
-
-               $title = Title::newFromLinkTarget( $linkTarget );
-               $link = Linker::link( $title, htmlspecialchars( $text ) );
-
-               return $link;
-       }
-
-       /**
-        * Returns a wikitext link to the given page, using the given surface text.
-        *
-        * @param LinkTarget $page The link's target
-        * @param string $text The link's surface text (will be derived from $page if not given).
-        *
-        * @return string
-        */
-       public function renderWikitextLink( LinkTarget $page, $text = null ) {
-               if ( $text === null ) {
-                       $text = $this->formatter->getFullText( $page );
-               }
-
-               $name = $this->formatter->getFullText( $page );
-
-               return '[[:' . $name . '|' . wfEscapeWikiText( $text ) . ']]';
-       }
-}
diff --git a/includes/title/PageLinkRenderer.php b/includes/title/PageLinkRenderer.php
deleted file mode 100644 (file)
index e26fe1a..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-/**
- * Represents a link rendering service for %MediaWiki.
- *
- * 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
- * @license GPL 2+
- * @author Daniel Kinzler
- */
-use MediaWiki\Linker\LinkTarget;
-
-/**
- * Represents a link rendering service for %MediaWiki.
- *
- * This is designed to encapsulate the knowledge about how page titles map to
- * URLs, and how links are encoded in a given output format.
- *
- * @see https://www.mediawiki.org/wiki/Requests_for_comment/TitleValue
- * @since 1.23
- */
-interface PageLinkRenderer {
-       /**
-        * Returns the URL for the given page.
-        *
-        * @todo expand this to cover the functionality of Linker::linkUrl
-        *
-        * @param LinkTarget $page The link's target
-        * @param array $params Any additional URL parameters.
-        *
-        * @return string
-        */
-       public function getPageUrl( LinkTarget $page, $params = [] );
-
-       /**
-        * Returns an HTML link to the given page, using the given surface text.
-        *
-        * @todo expand this to cover the functionality of Linker::link
-        *
-        * @param LinkTarget $page The link's target
-        * @param string $text The link's surface text (will be derived from $page if not given).
-        *
-        * @return string
-        */
-       public function renderHtmlLink( LinkTarget $page, $text = null );
-
-       /**
-        * Returns a wikitext link to the given page, using the given surface text.
-        *
-        * @param LinkTarget $page The link's target
-        * @param string $text The link's surface text (will be derived from $page if not given).
-        *
-        * @return string
-        */
-       public function renderWikitextLink( LinkTarget $page, $text = null );
-}
index ba5171f..71d032f 100644 (file)
@@ -353,7 +353,7 @@ abstract class UploadBase {
 
                $error = '';
                if ( !Hooks::run( 'UploadVerification',
-                       [ $this->mDestName, $this->mTempPath, &$error ] )
+                       [ $this->mDestName, $this->mTempPath, &$error ], '1.28' )
                ) {
                        return [ 'status' => self::HOOK_ABORTED, 'error' => $error ];
                }
@@ -467,9 +467,13 @@ abstract class UploadBase {
                        }
                }
 
-               Hooks::run( 'UploadVerifyFile', [ $this, $mime, &$status ] );
-               if ( $status !== true ) {
-                       return $status;
+               $error = true;
+               Hooks::run( 'UploadVerifyFile', [ $this, $mime, &$error ] );
+               if ( $error !== true ) {
+                       if ( !is_array( $error ) ) {
+                               $error = [ $error ];
+                       }
+                       return $error;
                }
 
                wfDebug( __METHOD__ . ": all clear; passing.\n" );
@@ -717,13 +721,23 @@ abstract class UploadBase {
         */
        public function performUpload( $comment, $pageText, $watch, $user, $tags = [] ) {
                $this->getLocalFile()->load( File::READ_LATEST );
+               $props = $this->mFileProps;
+
+               $error = null;
+               Hooks::run( 'UploadVerifyUpload', [ $this, $user, $props, $comment, $pageText, &$error ] );
+               if ( $error ) {
+                       if ( !is_array( $error ) ) {
+                               $error = [ $error ];
+                       }
+                       return call_user_func_array( 'Status::newFatal', $error );
+               }
 
                $status = $this->getLocalFile()->upload(
                        $this->mTempPath,
                        $comment,
                        $pageText,
                        File::DELETE_SOURCE,
-                       $this->mFileProps,
+                       $props,
                        false,
                        $user,
                        $tags
@@ -1416,7 +1430,10 @@ abstract class UploadBase {
                                return [ 'uploaded-event-handler-on-svg', $attrib, $value ];
                        }
 
-                       # href with non-local target (don't allow http://, javascript:, etc)
+                       # Do not allow relative links, or unsafe url schemas.
+                       # For <a> tags, only data:, http: and https: and same-document
+                       # fragment links are allowed. For all other tags, only data:
+                       # and fragment are allowed.
                        if ( $stripped == 'href'
                                && strpos( $value, 'data:' ) !== 0
                                && strpos( $value, '#' ) !== 0
index 60144bb..bc87cd0 100644 (file)
@@ -153,7 +153,7 @@ class PasswordReset {
                        'Capture' => $displayPassword ? '1' : null,
                ];
                if ( !Hooks::run( 'SpecialPasswordResetOnSubmit', [ &$users, $data, &$error ] ) ) {
-                       return StatusValue::newFatal( wfMessage( $error ) );
+                       return StatusValue::newFatal( Message::newFromSpecifier( $error ) );
                }
 
                if ( !$users ) {
index 70adc32..a774aba 100644 (file)
@@ -198,12 +198,6 @@ class User implements IDBAccessObject {
         */
        protected static $mAllRights = false;
 
-       /**
-        * An in-process cache for user data lookup
-        * @var HashBagOStuff
-        */
-       protected static $inProcessCache;
-
        /** Cache variables */
        // @{
        /** @var int */
@@ -425,6 +419,7 @@ class User implements IDBAccessObject {
         */
        public function loadFromId( $flags = self::READ_NORMAL ) {
                if ( $this->mId == 0 ) {
+                       // Anonymous users are not in the database (don't need cache)
                        $this->loadDefaults();
                        return false;
                }
@@ -432,17 +427,13 @@ class User implements IDBAccessObject {
                // Try cache (unless this needs data from the master DB).
                // NOTE: if this thread called saveSettings(), the cache was cleared.
                $latest = DBAccessObjectUtils::hasFlags( $flags, self::READ_LATEST );
-               if ( $latest || !$this->loadFromCache() ) {
-                       wfDebug( "User: cache miss for user {$this->mId}\n" );
-                       // Load from DB (make sure this thread sees its own changes)
-                       if ( wfGetLB()->hasOrMadeRecentMasterChanges() ) {
-                               $flags |= self::READ_LATEST;
-                       }
+               if ( $latest ) {
                        if ( !$this->loadFromDatabase( $flags ) ) {
-                               // Can't load from ID, user is anonymous
+                               // Can't load from ID
                                return false;
                        }
-                       $this->saveToCache();
+               } else {
+                       $this->loadFromCache();
                }
 
                $this->mLoadedItems = true;
@@ -458,10 +449,8 @@ class User implements IDBAccessObject {
         */
        public static function purge( $wikiId, $userId ) {
                $cache = ObjectCache::getMainWANInstance();
-               $processCache = self::getInProcessCache();
                $key = $cache->makeGlobalKey( 'user', 'id', $wikiId, $userId );
                $cache->delete( $key );
-               $processCache->delete( $key );
        }
 
        /**
@@ -473,81 +462,42 @@ class User implements IDBAccessObject {
                return $cache->makeGlobalKey( 'user', 'id', wfWikiID(), $this->mId );
        }
 
-       /**
-        * @since 1.27
-        * @return HashBagOStuff
-        */
-       protected static function getInProcessCache() {
-               if ( !self::$inProcessCache ) {
-                       self::$inProcessCache = new HashBagOStuff( [ 'maxKeys' => 10 ] );
-               }
-               return self::$inProcessCache;
-       }
-
        /**
         * Load user data from shared cache, given mId has already been set.
         *
-        * @return bool false if the ID does not exist or data is invalid, true otherwise
+        * @return bool True
         * @since 1.25
         */
        protected function loadFromCache() {
-               if ( $this->mId == 0 ) {
-                       $this->loadDefaults();
-                       return false;
-               }
-
                $cache = ObjectCache::getMainWANInstance();
-               $processCache = self::getInProcessCache();
-               $key = $this->getCacheKey( $cache );
-               $data = $processCache->get( $key );
-               if ( !is_array( $data ) ) {
-                       $data = $cache->get( $key );
-                       if ( !is_array( $data )
-                               || !isset( $data['mVersion'] )
-                               || $data['mVersion'] < self::VERSION
-                       ) {
-                               // Object is expired
-                               return false;
-                       }
-                       $processCache->set( $key, $data );
-               }
-               wfDebug( "User: got user {$this->mId} from cache\n" );
+               $data = $cache->getWithSetCallback(
+                       $this->getCacheKey( $cache ),
+                       $cache::TTL_HOUR,
+                       function ( $oldValue, &$ttl, array &$setOpts ) {
+                               $setOpts += Database::getCacheSetOptions( wfGetDB( DB_SLAVE ) );
+                               wfDebug( "User: cache miss for user {$this->mId}\n" );
 
-               // Restore from cache
-               foreach ( self::$mCacheVars as $name ) {
-                       $this->$name = $data[$name];
-               }
+                               $this->loadFromDatabase( self::READ_NORMAL );
+                               $this->loadGroups();
+                               $this->loadOptions();
 
-               return true;
-       }
+                               $data = [];
+                               foreach ( self::$mCacheVars as $name ) {
+                                       $data[$name] = $this->$name;
+                               }
 
-       /**
-        * Save user data to the shared cache
-        *
-        * This method should not be called outside the User class
-        */
-       public function saveToCache() {
-               $this->load();
-               $this->loadGroups();
-               $this->loadOptions();
+                               return $data;
 
-               if ( $this->isAnon() ) {
-                       // Anonymous users are uncached
-                       return;
-               }
+                       },
+                       [ 'pcTTL' => $cache::TTL_PROC_LONG, 'version' => self::VERSION ]
+               );
 
-               $data = [];
+               // Restore from cache
                foreach ( self::$mCacheVars as $name ) {
-                       $data[$name] = $this->$name;
+                       $this->$name = $data[$name];
                }
-               $data['mVersion'] = self::VERSION;
-               $opts = Database::getCacheSetOptions( wfGetDB( DB_SLAVE ) );
 
-               $cache = ObjectCache::getMainWANInstance();
-               $processCache = self::getInProcessCache();
-               $key = $this->getCacheKey( $cache );
-               $cache->set( $key, $data, $cache::TTL_HOUR, $opts );
-               $processCache->set( $key, $data );
+               return true;
        }
 
        /** @name newFrom*() static factory methods */
@@ -822,15 +772,15 @@ class User implements IDBAccessObject {
                        return self::$idCacheByName[$name];
                }
 
-               $db = ( $flags & self::READ_LATEST )
-                       ? wfGetDB( DB_MASTER )
-                       : wfGetDB( DB_SLAVE );
+               list( $index, $options ) = DBAccessObjectUtils::getDBOptions( $flags );
+               $db = wfGetDB( $index );
 
                $s = $db->selectRow(
                        'user',
                        [ 'user_id' ],
                        [ 'user_name' => $nt->getText() ],
-                       __METHOD__
+                       __METHOD__,
+                       $options
                );
 
                if ( $s === false ) {
@@ -856,7 +806,7 @@ class User implements IDBAccessObject {
        }
 
        /**
-        * Does the string match an anonymous IPv4 address?
+        * Does the string match an anonymous IP address?
         *
         * This function exists for username validation, in order to reject
         * usernames which are similar in form to IP addresses. Strings such
@@ -1269,8 +1219,8 @@ class User implements IDBAccessObject {
                // Paranoia
                $this->mId = intval( $this->mId );
 
-               // Anonymous user
                if ( !$this->mId ) {
+                       // Anonymous users are not in the database
                        $this->loadDefaults();
                        return false;
                }
@@ -1574,16 +1524,19 @@ class User implements IDBAccessObject {
                global $wgNamespacesToBeSearchedDefault, $wgDefaultUserOptions, $wgContLang, $wgDefaultSkin;
 
                static $defOpt = null;
-               if ( !defined( 'MW_PHPUNIT_TEST' ) && $defOpt !== null ) {
-                       // Disabling this for the unit tests, as they rely on being able to change $wgContLang
-                       // mid-request and see that change reflected in the return value of this function.
-                       // Which is insane and would never happen during normal MW operation
+               static $defOptLang = null;
+
+               if ( $defOpt !== null && $defOptLang === $wgContLang->getCode() ) {
+                       // $wgContLang does not change (and should not change) mid-request,
+                       // but the unit tests change it anyway, and expect this method to
+                       // return values relevant to the current $wgContLang.
                        return $defOpt;
                }
 
                $defOpt = $wgDefaultUserOptions;
                // Default language setting
-               $defOpt['language'] = $wgContLang->getCode();
+               $defOptLang = $wgContLang->getCode();
+               $defOpt['language'] = $defOptLang;
                foreach ( LanguageConverter::$languagesWithVariants as $langCode ) {
                        $defOpt[$langCode == $wgContLang->getCode() ? 'variant' : "variant-$langCode"] = $langCode;
                }
@@ -2396,16 +2349,13 @@ class User implements IDBAccessObject {
                }
 
                $cache = ObjectCache::getMainWANInstance();
-               $processCache = self::getInProcessCache();
                $key = $this->getCacheKey( $cache );
                if ( $mode === 'refresh' ) {
                        $cache->delete( $key, 1 );
-                       $processCache->delete( $key );
                } else {
                        wfGetDB( DB_MASTER )->onTransactionPreCommitOrIdle(
-                               function() use ( $cache, $processCache, $key ) {
+                               function() use ( $cache, $key ) {
                                        $cache->delete( $key );
-                                       $processCache->delete( $key );
                                }
                        );
                }
@@ -2613,23 +2563,16 @@ class User implements IDBAccessObject {
                                throw new LogicException( 'Cannot set a password for a user that is not in the database.' );
                        }
 
-                       $data = [
+                       $status = $this->changeAuthenticationData( [
                                'username' => $this->getName(),
                                'password' => $str,
                                'retype' => $str,
-                       ];
-                       $reqs = $manager->getAuthenticationRequests( AuthManager::ACTION_CHANGE, $this );
-                       $reqs = AuthenticationRequest::loadRequestsFromSubmission( $reqs, $data );
-                       foreach ( $reqs as $req ) {
-                               $status = $manager->allowsAuthenticationDataChange( $req );
-                               if ( !$status->isOk() ) {
-                                       \MediaWiki\Logger\LoggerFactory::getInstance( 'authentication' )
-                                               ->info( __METHOD__ . ': Password change rejected: ' . $status->getWikiText() );
-                                       return false;
-                               }
-                       }
-                       foreach ( $reqs as $req ) {
-                               $manager->changeAuthenticationData( $req );
+                       ] );
+                       if ( !$status->isGood() ) {
+                               \MediaWiki\Logger\LoggerFactory::getInstance( 'authentication' )
+                                       ->info( __METHOD__ . ': Password change rejected: '
+                                               . $status->getWikiText( null, null, 'en' ) );
+                               return false;
                        }
 
                        $this->setOption( 'watchlisttoken', false );
@@ -2640,6 +2583,45 @@ class User implements IDBAccessObject {
                return true;
        }
 
+       /**
+        * Changes credentials of the user.
+        *
+        * This is a convenience wrapper around AuthManager::changeAuthenticationData.
+        * Note that this can return a status that isOK() but not isGood() on certain types of failures,
+        * e.g. when no provider handled the change.
+        *
+        * @param array $data A set of authentication data in fieldname => value format. This is the
+        *   same data you would pass the changeauthenticationdata API - 'username', 'password' etc.
+        * @return Status
+        * @since 1.27
+        */
+       public function changeAuthenticationData( array $data ) {
+               global $wgDisableAuthManager;
+               if ( $wgDisableAuthManager ) {
+                       throw new LogicException( __METHOD__ . ' cannot be called when $wgDisableAuthManager '
+                               . 'is true' );
+               }
+
+               $manager = AuthManager::singleton();
+               $reqs = $manager->getAuthenticationRequests( AuthManager::ACTION_CHANGE, $this );
+               $reqs = AuthenticationRequest::loadRequestsFromSubmission( $reqs, $data );
+
+               $status = Status::newGood( 'ignored' );
+               foreach ( $reqs as $req ) {
+                       $status->merge( $manager->allowsAuthenticationDataChange( $req ), true );
+               }
+               if ( $status->getValue() === 'ignored' ) {
+                       $status->warning( 'authenticationdatachange-ignored' );
+               }
+
+               if ( $status->isGood() ) {
+                       foreach ( $reqs as $req ) {
+                               $manager->changeAuthenticationData( $req );
+                       }
+               }
+               return $status;
+       }
+
        /**
         * Get the user's current token.
         * @param bool $forceCreation Force the generation of a new token if the
@@ -3904,6 +3886,7 @@ class User implements IDBAccessObject {
                        $session->setLoggedOutTimestamp( time() );
                        $session->setUser( new User );
                        $session->set( 'wsUserID', 0 ); // Other code expects this
+                       $session->resetAllTokens();
                        ScopedCallback::consume( $delay );
                        $error = false;
                }
index 3bd3a4c..419ee47 100644 (file)
@@ -136,8 +136,9 @@ class BatchRowIterator implements RecursiveIterator {
         */
        public function extractPrimaryKeys( $row ) {
                $pk = [];
-               foreach ( $this->primaryKey as $column ) {
-                       $pk[$column] = $row->$column;
+               foreach ( $this->primaryKey as $alias => $column ) {
+                       $name = is_numeric( $alias ) ? $column : $alias;
+                       $pk[$name] = $row->{$name};
                }
                return $pk;
        }
@@ -228,8 +229,9 @@ class BatchRowIterator implements RecursiveIterator {
 
                $maxRow = end( $this->current );
                $maximumValues = [];
-               foreach ( $this->primaryKey as $column ) {
-                       $maximumValues[$column] = $this->db->addQuotes( $maxRow->$column );
+               foreach ( $this->primaryKey as $alias => $column ) {
+                       $name = is_numeric( $alias ) ? $column : $alias;
+                       $maximumValues[$column] = $this->db->addQuotes( $maxRow->{$name} );
                }
 
                $pkConditions = [];
index 4a2205e..8676baf 100644 (file)
@@ -53,7 +53,7 @@ define( 'RE_IPV6_BLOCK', RE_IPV6_ADD . '\/' . RE_IPV6_PREFIX );
 define( 'RE_IPV6_GAP', ':(?:0+:)*(?::(?:0+:)*)?' );
 define( 'RE_IPV6_V4_PREFIX', '0*' . RE_IPV6_GAP . '(?:ffff:)?' );
 
-// This might be useful for regexps used elsewhere, matches any IPv6 or IPv6 address or network
+// This might be useful for regexps used elsewhere, matches any IPv4 or IPv6 address or network
 define( 'IP_ADDRESS_STRING',
        '(?:' .
                RE_IP_ADD . '(?:\/' . RE_IP_PREFIX . ')?' . // IPv4
index 9469c41..1376fa7 100644 (file)
@@ -156,7 +156,7 @@ class MWCryptHKDF {
 
        /**
         * Return a singleton instance, based on the global configs.
-        * @return HKDF
+        * @return self
         * @throws MWException
         */
        protected static function singleton() {
old mode 100755 (executable)
new mode 100644 (file)
index 6baaff0..dcd5415
@@ -48,7 +48,7 @@ class SearchInputWidget extends TitleInputWidget {
                        $this->performSearchOnClick = $config['performSearchOnClick'];
                }
 
-               if ( $config['dataLocation'] ) {
+               if ( isset( $config['dataLocation'] ) ) {
                        // identifies the location of the search bar for tracking purposes
                        $this->dataLocation = $config['dataLocation'];
                }
index 0a6ccd3..37f4137 100644 (file)
@@ -30,8 +30,6 @@ if ( !defined( 'MEDIAWIKI' ) ) {
        exit( 1 );
 }
 
-mb_internal_encoding( 'UTF-8' );
-
 use CLDRPluralRuleParser\Evaluator;
 
 /**
@@ -1089,7 +1087,7 @@ class Language {
         * @throws MWException
         * @return string
         */
-       public function sprintfDate( $format, $ts, DateTimeZone $zone = null, &$ttl = null ) {
+       public function sprintfDate( $format, $ts, DateTimeZone $zone = null, &$ttl = 'unused' ) {
                $s = '';
                $raw = false;
                $roman = false;
@@ -1454,7 +1452,9 @@ class Language {
                        }
                }
 
-               if ( $usedSecond ) {
+               if ( $ttl === 'unused' ) {
+                       // No need to calculate the TTL, the caller wont use it anyway.
+               } elseif ( $usedSecond ) {
                        $ttl = 1;
                } elseif ( $usedMinute ) {
                        $ttl = 60 - substr( $ts, 12, 2 );
index a7de1f9..836fb86 100644 (file)
@@ -78,6 +78,7 @@ class Names {
                'az' => 'azərbaycanca', # Azerbaijani
                'azb' => 'تۆرکجه', # South Azerbaijani
                'ba' => 'башҡортса', # Bashkir
+               'ban' => 'Basa Bali', # Balinese
                'bar' => 'Boarisch', # Bavarian (Austro-Bavarian and South Tyrolean)
                'bat-smg' => 'žemaitėška', # Samogitian (deprecated code, 'sgs' in ISO 693-3 since 2010-06-30 )
                'bbc' => 'Batak Toba', # Batak Toba (falls back to bbc-latn)
@@ -373,6 +374,7 @@ class Names {
                'shi' => 'Tašlḥiyt/ⵜⴰⵛⵍⵃⵉⵜ', # Tachelhit (multiple scripts - defaults to Latin)
                'shi-tfng' => 'ⵜⴰⵛⵍⵃⵉⵜ', # Tachelhit (Tifinagh script)
                'shi-latn' => 'Tašlḥiyt', # Tachelhit (Latin script)
+               'shn' => 'ၽႃႇသႃႇတႆး ', # Shan
                'si' => 'සිංහල', # Sinhalese
                'simple' => 'Simple English', # Simple English
                'sk' => 'slovenčina', # Slovak
index e4998fc..37a0584 100644 (file)
@@ -421,7 +421,6 @@ public static $zh2Hant = [
 '埘' => '塒',
 '埙' => '塤',
 '埚' => '堝',
-'埯' => '垵',
 '堑' => '塹',
 '堕' => '墮',
 '墙' => '牆',
@@ -3205,7 +3204,7 @@ public static $zh2Hant = [
 '不好干预' => '不好干預',
 '不嫌母丑' => '不嫌母醜',
 '不寒而栗' => '不寒而慄',
-'不吊' => '不弔',
+'不吊,' => '不弔,',
 '不卷' => '不捲',
 '不采' => '不採',
 '不斗胆' => '不斗膽',
@@ -3567,6 +3566,8 @@ public static $zh2Hant = [
 '于康震' => '于康震',
 '于广洲' => '于廣洲',
 '于廣洲' => '于廣洲',
+'于建嵘' => '于建嶸',
+'于建嶸' => '于建嶸',
 '于式枚' => '于式枚',
 '于从濂' => '于從濂',
 '于從濂' => '于從濂',
@@ -3815,12 +3816,12 @@ public static $zh2Hant = [
 '并入' => '併入',
 '并兼' => '併兼',
 '并到' => '併到',
+'并力' => '併力',
 '并合' => '併合',
 '并名' => '併名',
 '并吞' => '併吞',
 '并拢' => '併攏',
 '并案' => '併案',
-'并火' => '併火',
 '并为一家' => '併為一家',
 '并为一体' => '併為一體',
 '并叠' => '併疊',
@@ -4035,7 +4036,7 @@ public static $zh2Hant = [
 '其次辟地' => '其次辟地',
 '其余' => '其餘',
 '典范' => '典範',
-'兼并' => '兼',
+'兼并' => '兼',
 '冉有仆' => '冉有僕',
 '冗余' => '冗餘',
 '冤仇' => '冤讎',
@@ -4422,6 +4423,7 @@ public static $zh2Hant = [
 '吟游' => '吟遊',
 '吧台' => '吧檯',
 '含齿戴发' => '含齒戴髮',
+'吸干' => '吸乾',
 '吹干' => '吹乾',
 '吹发' => '吹髮',
 '吹胡' => '吹鬍',
@@ -4498,7 +4500,6 @@ public static $zh2Hant = [
 '嘴里' => '嘴裡',
 '恶心' => '噁心',
 '噙齿戴发' => '噙齒戴髮',
-'喷洒' => '噴洒',
 '当啷' => '噹啷',
 '当当' => '噹噹',
 '噜苏' => '嚕囌',
@@ -4966,7 +4967,6 @@ public static $zh2Hant = [
 '嶒棱' => '嶒稜',
 '岳岳' => '嶽嶽',
 '岳麓' => '嶽麓',
-'川谷' => '川穀',
 '巡回医疗' => '巡回醫療',
 '巡回' => '巡迴',
 '巡游' => '巡遊',
@@ -5009,7 +5009,6 @@ public static $zh2Hant = [
 '年谷' => '年穀',
 '年里' => '年裡',
 '年鉴' => '年鑑',
-'并力' => '并力',
 '并州' => '并州',
 '并日而食' => '并日而食',
 '并迭' => '并迭',
@@ -5120,7 +5119,6 @@ public static $zh2Hant = [
 '吊孝' => '弔孝',
 '吊客' => '弔客',
 '吊宴' => '弔宴',
-'吊带' => '弔帶',
 '吊影' => '弔影',
 '吊恤' => '弔恤',
 '吊慰' => '弔慰',
@@ -5129,7 +5127,6 @@ public static $zh2Hant = [
 '吊撒' => '弔撒',
 '吊文' => '弔文',
 '吊旗' => '弔旗',
-'吊死' => '弔死',
 '吊民' => '弔民',
 '吊祭' => '弔祭',
 '吊纸' => '弔紙',
@@ -5143,6 +5140,7 @@ public static $zh2Hant = [
 '吊贺迎送' => '弔賀迎送',
 '吊头' => '弔頭',
 '吊鹤' => '弔鶴',
+'引发' => '引發',
 '引斗' => '引鬥',
 '弘历' => '弘曆',
 '弘历史' => '弘歷史',
@@ -5156,6 +5154,7 @@ public static $zh2Hant = [
 '张柏芝' => '張栢芝',
 '张乐于张徐' => '張樂于張徐',
 '張樂于張徐' => '張樂于張徐',
+'強制' => '強制',
 '强制' => '強制',
 '强制作用' => '強制作用',
 '强奸' => '強姦',
@@ -5264,8 +5263,6 @@ public static $zh2Hant = [
 '心系一' => '心繫一',
 '心系世' => '心繫世',
 '心系中' => '心繫中',
-'心系乔' => '心繫乔',
-'心繫乔' => '心繫乔',
 '心系五' => '心繫五',
 '心系京' => '心繫京',
 '心系人' => '心繫人',
@@ -5290,6 +5287,7 @@ public static $zh2Hant = [
 '心系和' => '心繫和',
 '心系哪' => '心繫哪',
 '心系唐' => '心繫唐',
+'心系乔' => '心繫喬',
 '心系嘱' => '心繫囑',
 '心系四' => '心繫四',
 '心系困' => '心繫困',
@@ -5507,6 +5505,7 @@ public static $zh2Hant = [
 '所有只' => '所有只',
 '所托' => '所託',
 '扁拟谷盗虫' => '扁擬穀盜蟲',
+'手冢治虫' => '手塚治虫',
 '手塚治虫' => '手塚治虫',
 '手折' => '手摺',
 '手表态' => '手表態',
@@ -5579,6 +5578,7 @@ public static $zh2Hant = [
 '抱素怀朴' => '抱素懷樸',
 '抵御' => '抵禦',
 '抹干' => '抹乾',
+'抽干' => '抽乾',
 '抽公签' => '抽公籤',
 '抽签' => '抽籤',
 '抿发' => '抿髮',
@@ -5626,7 +5626,6 @@ public static $zh2Hant = [
 '挌斗' => '挌鬥',
 '挑大梁' => '挑大樑',
 '挑斗' => '挑鬥',
-'振荡' => '振蕩',
 '捉奸徒' => '捉奸徒',
 '捉奸细' => '捉奸細',
 '捉奸贼' => '捉奸賊',
@@ -5697,6 +5696,8 @@ public static $zh2Hant = [
 '扫荡' => '掃蕩',
 '授勋' => '授勳',
 '掌柜' => '掌柜',
+'排干' => '排乾',
+'排干部' => '排幹部',
 '排骨面' => '排骨麵',
 '挂名' => '掛名',
 '挂历' => '掛曆',
@@ -6071,9 +6072,8 @@ public static $zh2Hant = [
 '李連杰' => '李連杰',
 '材干' => '材幹',
 '村落发' => '村落發',
-'村里' => '村裡',
-'村里長' => '村里長',
-'村里长' => '村里長',
+'村里有' => '村裡有',
+'村里的' => '村裡的',
 '杜老志道' => '杜老誌道',
 '杞宋无征' => '杞宋無徵',
 '束发' => '束髮',
@@ -6336,15 +6336,9 @@ public static $zh2Hant = [
 '洄游' => '洄遊',
 '洋河大曲' => '洋河大麯',
 '洒家' => '洒家',
-'洒扫' => '洒掃',
-'洒水' => '洒水',
-'洒洒' => '洒洒',
 '洒淅' => '洒淅',
-'洒涤' => '洒滌',
-'洒滌' => '洒滌',
 '洒濯' => '洒濯',
 '洒然' => '洒然',
-'洒脱' => '洒脫',
 '洗炼' => '洗鍊',
 '洗练' => '洗鍊',
 '洗发' => '洗髮',
@@ -6570,7 +6564,6 @@ public static $zh2Hant = [
 '沈阳' => '瀋陽',
 '泸州大曲' => '瀘州大麯',
 '沥干' => '瀝乾',
-'潇洒' => '瀟洒',
 '弥山遍野' => '瀰山遍野',
 '弥漫' => '瀰漫',
 '弥弥' => '瀰瀰',
@@ -6635,7 +6628,7 @@ public static $zh2Hant = [
 '营干' => '營幹',
 '烩面' => '燴麵',
 '烬余' => '燼餘',
-'爆发指数' => '爆發指數',
+'爆发' => '爆發',
 '争奇斗妍' => '爭奇鬥妍',
 '争奇斗异' => '爭奇鬥異',
 '争奇斗艳' => '爭奇鬥豔',
@@ -6874,7 +6867,6 @@ public static $zh2Hant = [
 '着眼于' => '着眼於',
 '着眼於' => '着眼於',
 '困乏' => '睏乏',
-'困了' => '睏了',
 '困倦' => '睏倦',
 '困觉' => '睏覺',
 '睡游病' => '睡遊病',
@@ -6998,6 +6990,7 @@ public static $zh2Hant = [
 '谷保家商' => '穀保家商',
 '谷仓' => '穀倉',
 '谷圭' => '穀圭',
+'谷城县' => '穀城縣',
 '谷场' => '穀場',
 '谷子' => '穀子',
 '谷日' => '穀日',
@@ -7592,6 +7585,7 @@ public static $zh2Hant = [
 '姜老辣' => '薑老辣',
 '姜茶' => '薑茶',
 '姜蓉' => '薑蓉',
+'姜还是老的辣' => '薑還是老的辣',
 '姜饼' => '薑餅',
 '姜黄' => '薑黃',
 '薙发' => '薙髮',
@@ -7628,6 +7622,7 @@ public static $zh2Hant = [
 '药面儿' => '藥麵兒',
 '苏崑' => '蘇崑',
 '苏昆' => '蘇崑',
+'苹婆' => '蘋婆',
 '苹果' => '蘋果',
 '苹果干' => '蘋果乾',
 '兰溪市' => '蘭谿市',
@@ -8442,7 +8437,6 @@ public static $zh2Hant = [
 '里海茨' => '里海茨',
 '里铺' => '里舖',
 '重回' => '重回',
-'重折' => '重摺',
 '重于' => '重於',
 '重罗面' => '重羅麵',
 '重制' => '重製',
@@ -8521,6 +8515,7 @@ public static $zh2Hant = [
 '炼金术' => '鍊金術',
 '锲而不舍' => '鍥而不捨',
 '镰仓' => '鎌倉',
+'镇里' => '鎮裡',
 '镜图里' => '鏡圖裡',
 '锈病' => '鏽病',
 '锈菌' => '鏽菌',
@@ -8683,6 +8678,7 @@ public static $zh2Hant = [
 '陈杰' => '陳杰',
 '陳杰' => '陳杰',
 '陈炼' => '陳鍊',
+'陶制' => '陶製',
 '阳春面' => '陽春麵',
 '阳历' => '陽曆',
 '阳历史' => '陽歷史',
@@ -8734,6 +8730,7 @@ public static $zh2Hant = [
 '雪里红' => '雪裡紅',
 '雪里蕻' => '雪裡蕻',
 '云吞' => '雲吞',
+'云吞面' => '雲吞麵',
 '云笈七签' => '雲笈七籤',
 '云里雾里' => '雲裡霧裡',
 '云游' => '雲遊',
@@ -9433,7 +9430,6 @@ public static $zh2Hant = [
 '龜山庄' => '龜山庄',
 '龟鉴' => '龜鑑',
 ',并力' => ',並力',
-',并力攻' => ',并力攻',
 ',并力討' => ',并力討',
 ',并力讨' => ',并力討',
 ',个中' => ',箇中',
@@ -9868,9 +9864,7 @@ public static $zh2Hans = [
 '圞' => '𪢮',
 '坿' => '附',
 '垜' => '垛',
-'垵' => '埯',
 '埡' => '垭',
-'埰' => '采',
 '執' => '执',
 '堅' => '坚',
 '堊' => '垩',
@@ -9883,6 +9877,7 @@ public static $zh2Hans = [
 '塏' => '垲',
 '塒' => '埘',
 '塗' => '涂',
+'塚' => '冢',
 '塟' => '葬',
 '塢' => '坞',
 '塤' => '埙',
@@ -10094,7 +10089,6 @@ public static $zh2Hans = [
 '廵' => '巡',
 '廹' => '迫',
 '廻' => '回',
-'廼' => '乃',
 '弒' => '弑',
 '弔' => '吊',
 '弳' => '弪',
@@ -13774,6 +13768,7 @@ public static $zh2Hans = [
 '甦醒' => '苏醒',
 '苧烯' => '苧烯',
 '薴烯' => '苧烯',
+'蘋婆' => '苹婆',
 '蘋果' => '苹果',
 '荠苧' => '荠苧',
 '榮陞' => '荣升',
@@ -14093,7 +14088,6 @@ public static $zh2TW = [
 '威士顿康星' => '威斯康辛',
 '威尔士' => '威爾斯',
 '威爾士' => '威爾斯',
-'字库' => '字型檔',
 '存盘' => '存檔',
 '孟德爾遜' => '孟德爾頌',
 '门德尔松' => '孟德爾頌',
@@ -14282,8 +14276,8 @@ public static $zh2TW = [
 '法属圭亚那' => '法屬蓋亞那',
 '波斯尼亚' => '波士尼亞',
 '波斯尼亞' => '波士尼亞',
-'波斯尼亚和黑塞哥维那' => '波士尼亞赫塞哥維納',
-'波斯尼亞黑塞哥維那' => '波士尼亞赫塞哥維納',
+'æ³¢æ\96¯å°¼äº\9aå\92\8cé»\91å¡\9eå\93¥ç»´é\82£' => '波士尼äº\9eè\88\87赫å¡\9eå\93¥ç¶­ç´\8d',
+'波斯尼亞和黑塞哥維那' => '波士尼亞與赫塞哥維納',
 '博茨瓦納' => '波札那',
 '博茨瓦纳' => '波札那',
 '波黑' => '波赫',
@@ -14296,6 +14290,7 @@ public static $zh2TW = [
 '鼠标' => '滑鼠',
 '汉诺威' => '漢諾瓦',
 '漢诺威' => '漢諾瓦',
+'乌冬面' => '烏龍麵',
 '烤烟' => '烤菸',
 '烤煙' => '烤菸',
 '无烟日' => '無菸日',
@@ -14531,6 +14526,7 @@ public static $zh2TW = [
 '分辨率' => '解析度',
 '解像度' => '解析度',
 '译码' => '解碼',
+'触摸屏' => '觸控螢幕',
 '出租车' => '計程車',
 '约翰逊' => '詹森',
 '诺曼底' => '諾曼第',
@@ -15014,6 +15010,7 @@ public static $zh2HK = [
 '來著述' => '來著述',
 '來著錄' => '來著錄',
 '侵占' => '侵佔',
+'促著' => '促着',
 '俄占' => '俄佔',
 '保障著' => '保障着',
 '保障著作' => '保障著作',
@@ -15093,8 +15090,6 @@ public static $zh2HK = [
 '凶殘' => '兇殘',
 '凶殺' => '兇殺',
 '先占' => '先佔',
-'雪鐵龍' => '先進',
-'雪铁龙' => '先進',
 '光著' => '光着',
 '光著作' => '光著作',
 '光著名' => '光著名',
@@ -15283,6 +15278,7 @@ public static $zh2HK = [
 '咖哩' => '咖喱',
 '麥克風' => '咪高峰',
 '麦克风' => '咪高峰',
+'咬著' => '咬着',
 '哥特式' => '哥德式',
 '哥斯大黎加' => '哥斯達黎加',
 '哪里' => '哪裏',
@@ -16113,7 +16109,8 @@ public static $zh2HK = [
 '本著述' => '本著述',
 '本著錄' => '本著錄',
 '里瓦尔多' => '李華度',
-'村里' => '村裏',
+'村里有' => '村裏有',
+'村里的' => '村裏的',
 '杜塞道夫' => '杜塞爾多夫',
 '迪拜' => '杜拜',
 '東協助' => '東協助',
@@ -16240,7 +16237,7 @@ public static $zh2HK = [
 '法里,' => '法裏,',
 '玻里尼西亞' => '波利尼西亞',
 '波士尼亞' => '波斯尼亞',
-'波士尼äº\9e赫å¡\9eå\93¥ç¶­ç´\8d' => 'æ³¢æ\96¯å°¼äº\9e黑塞哥維那',
+'波士尼äº\9eè\88\87赫å¡\9eå\93¥ç¶­ç´\8d' => 'æ³¢æ\96¯å°¼äº\9eå\92\8c黑塞哥維那',
 '宝莱坞' => '波里活',
 '寶萊塢' => '波里活',
 '幫浦' => '泵',
@@ -16351,6 +16348,7 @@ public static $zh2HK = [
 '為著者' => '為著者',
 '為著述' => '為著述',
 '為著錄' => '為著錄',
+'烏龍麵' => '烏冬麵',
 '菸' => '煙',
 '照占' => '照佔',
 '照著' => '照着',
@@ -17058,7 +17056,10 @@ public static $zh2HK = [
 '見著述' => '見著述',
 '見著錄' => '見著錄',
 '視著' => '視着',
+'視著作' => '視著作',
 '視著名' => '視著名',
+'視著稱' => '視著稱',
+'視著者' => '視著者',
 '角落里' => '角落裏',
 '分辨率' => '解像度',
 '解析度' => '解像度',
@@ -17390,6 +17391,7 @@ public static $zh2HK = [
 '鋪著者' => '鋪著者',
 '鋪著述' => '鋪著述',
 '鋪著錄' => '鋪著錄',
+'镇里' => '鎮裏',
 '镜图里' => '鏡圖裏',
 '钟在寺里' => '鐘在寺裏',
 '狄托' => '鐵托',
@@ -17776,6 +17778,7 @@ public static $zh2CN = [
 '麗著者' => '丽著者',
 '麗著述' => '丽著述',
 '麼著' => '么着',
+'烏龍麵' => '乌冬面',
 '樂著' => '乐着',
 '樂著書' => '乐著书',
 '樂著作' => '乐著作',
@@ -17905,7 +17908,9 @@ public static $zh2CN = [
 '側著述' => '侧著述',
 '可攜式' => '便携式',
 '攜帶型' => '便携式',
+'促著' => '促着',
 '保護著' => '保护着',
+'保鑣' => '保镖',
 '保障著' => '保障着',
 '保障著書' => '保障著书',
 '保障著作' => '保障著作',
@@ -18241,6 +18246,7 @@ public static $zh2CN = [
 '味著述' => '味著述',
 '咖哩' => '咖喱',
 '諮' => '咨',
+'咬著' => '咬着',
 '響著' => '响着',
 '響著書' => '响著书',
 '響著作' => '响著作',
@@ -18391,7 +18397,6 @@ public static $zh2CN = [
 '威爾斯' => '威尔士',
 '威斯伐倫' => '威斯特法伦',
 '字型大小' => '字号',
-'字型檔' => '字库',
 '欄位' => '字段',
 '位元組' => '字节',
 '存在著' => '存在着',
@@ -19150,7 +19155,7 @@ public static $zh2CN = [
 '沿著述' => '沿著述',
 '玻里尼西亞' => '波利尼西亚',
 '波士尼亞' => '波斯尼亚',
-'波士尼亞赫塞哥維納' => '波斯尼亚和黑塞哥维那',
+'波士尼äº\9eè\88\87赫å¡\9eå\93¥ç¶­ç´\8d' => 'æ³¢æ\96¯å°¼äº\9aå\92\8cé»\91å¡\9eå\93¥ç»´é\82£',
 '鐵達尼號' => '泰坦尼克号',
 '幫浦' => '泵',
 '辛巴威' => '津巴布韦',
@@ -19849,7 +19854,10 @@ public static $zh2CN = [
 '見著述' => '见著述',
 '規畫' => '规划',
 '視著' => '视着',
+'視著作' => '视著作',
 '視著名' => '视著名',
+'視著稱' => '视著称',
+'視著者' => '视著者',
 '占士邦' => '詹姆斯·邦德',
 '警戒著' => '警戒着',
 '計畫' => '计划',
index 0455740..699185e 100644 (file)
        "protectedpagetext": "Laman nyoe ka geupeulindông mangat bèk jeuet geuandam",
        "viewsourcetext": "Droëneuh  jeuët neu’eu",
        "viewyourtext": "Droëneuh meuidzin kalön ngön neucok nè andam droëneuh u laman nyoë",
-       "protectedinterface": "Halaman nyoe na tèks muka keu muka keu peukakaih leumiëk ngön geupeulindông mangat bek jeuet jipeureuloh.\nKeu neuk tamah atawa ubah teujeumah keu ban dum wiki, neungui [//translatewiki.net/ translatewiki.net], proyek lokalisasi MediaWiki.",
+       "protectedinterface": "Halaman nyoe na tèks muka keu muka keu peukakaih leumiëk ngön geupeulindông mangat bek jeuet jipeureuloh.\nKeu neuk tamah atawa ubah teujeumah keu ban dum wiki, neungui [https://translatewiki.net/ translatewiki.net], proyek lokalisasi MediaWiki.",
        "mycustomcssprotected": "Droëneuh hana hak neuandam halaman CSS nyoe.",
        "mycustomjsprotected": "Droëneuh hana idin neuandam halaman JavaScript nyoe.",
        "mypreferencesprotected": "Droeneuh hana izin keu neuandam geunalak droeneuh.",
        "newarticle": "(Barô)",
        "newarticletext": "Droëneuh ka neuseutöt peunawôt u laman nyang goh na.\nKeu neupeugöt laman nyan, neukeutik lam plôk di yup (eu [$1 laman beunantu] keu haba leubèh le).\nMeunyö droëneuh trôk keunoë hana neusaja, neuteugön tèk '''back''' bak ''browser'''droëneuh.",
        "anontalkpagetext": "----''Nyoe nakeuh ôn marit ureueng ngui nyang hana tamöng atawa hana geungui.''\nSaweub nyan, kamoe payah meukubah alamat IP-geuh keu meuparéksa. \nAlamat IP mungkén jingui lé padum-padum droe ureueng.\nMeunyoe droeneuh ureueng nyang hana tamöng nyan, tulông [[Special:CreateAccount|peugöt nan ureueng ngui]] atawa [[Special:UserLogin|tamöng log]] mangat meuteugah nibak bhah nyang hana meuphôm bak uroe la'én.",
-       "noarticletext": "Hana naseukah jinoë lam laman nyoë.\nJi Droëneuh jeuët [[Special:Search/{{PAGENAME}}|neumita keu nan ôn nyoë]] bak ôn-ôn la’én, <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} log nyang na hubôngan], atawa [{{fullurl:{{FULLPAGENAME}}|action=edit}} neu'andam ôn nyoë]</span>.",
+       "noarticletext": "Hana naseukah jinoë lam miëng nyoë.\nDroëneuh jeuët [[Special:Search/{{PAGENAME}}|neuseutöt nan miëng nyoë]] bak miëng-miëng la’én, <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} neuseutöt log nyang na hubôngan], atawa [{{fullurl:{{FULLPAGENAME}}|action=edit}} neupeugöt miëng nyoë]</span>.",
        "noarticletext-nopermission": "Hana asoë bak laman nyoë jinoë.\nDroëneuh jeuët [[Special:Search/{{PAGENAME}}|neumita keu nan ôn nyoë]] bak laman-laman la'én,\natawa <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} neumita log nyang na meuhubông]</span>, tapi Droëneuh hana idin keu neupeugöt laman nyoë",
        "userpage-userdoesnotexist-view": "Ureueng ngui \"$1\" hana teudapeuta.",
        "updated": "(Seubarô)",
        "recentchanges-label-minor": "Nyoe neuandam ubeut",
        "recentchanges-label-bot": "Neuandam nyoe geupubuet le bot",
        "recentchanges-label-unpatrolled": "Neuandam nyoe goh lom geukalon",
+       "recentchanges-label-plusminus": "Seunipat miëng geugantoë lé jeumeulah bita nyoë",
        "recentchanges-legend-heading": "<strong>Hareutoë:</strong>",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (eu cit [[Special:NewPages|dapeuta laman barô]])",
        "rcnotefrom": "Di yup nyoë nakeuh neuubah yôh <strong>$2</strong> (geupeudeuh trôh ‘an <strong>$1</strong> neuubah).",
        "undelete-search-submit": "Mita",
        "namespace": "Ruweuëng nan:",
        "invert": "Peubalék peuniléh",
+       "tooltip-invert": "Neuceuë kutak nyoë keu neupeusom neuubah miëng lam ruweuëng nan nyang neupiléh (ngön ruweuëng nan teukaw`èt meunyö neuceuë)",
        "namespace_association": "Ruweuëng nan meuhubông",
+       "tooltip-namespace_association": "Neuceuë kutak nyoë keu neupeurôh ruweuëng nan marit atawa bhaih nyang teukaw`èt ngön ruweuëng nan teupiléh",
        "blanknamespace": "(Keuë)",
        "contributions": "Beuneuri {{GENDER:$1|ureuëng ngui}}",
        "contributions-title": "Beuneuri ureuëng ngui keu $1",
        "tags": "Tag neuubah nyang sah",
        "tag-filter": "Saréng [[Special:Tags|tag]]:",
        "tag-filter-submit": "Saréng",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Tag}}]]: $2)",
        "logentry-newusers-create": "$1 {{GENDER:$2|geupeugöt}} akun ureuëng ngui",
        "searchsuggest-search": "Mita",
        "duration-seconds": "{{PLURAL:$1|deutik}}",
index 05e0c7c..eb15a0e 100644 (file)
        "protectedpagetext": "ЕIэзэнхэм ыкIи нэмыкI шIэнмэ яягъэ къэмыкIынэу мы нэкIубгъор ухъумагъэу щыт.",
        "viewsourcetext": "Мы нэкIубгъом ылъапсэм уеплъын и копи пшIышъущт.",
        "viewyourtext": "<strong>Уэ уи еIэзэнхэм</strong> я лъапсэ уеплъын е копи пшIын плъэкIыыщт мы нэкIубгъом.",
-       "translateinterface": "ЗэкIэ викимэ язэдзэкIмэ ахэбгъэхъон е еIэзэн пшIоигъомэ, [//translatewiki.net/ translatewiki.net] гъэфед, MediaWiki и хьанэгъуналъэ сайт.",
+       "translateinterface": "ЗэкIэ викимэ язэдзэкIмэ ахэбгъэхъон е еIэзэн пшIоигъомэ, [https://translatewiki.net/ translatewiki.net] гъэфед, MediaWiki и хьанэгъуналъэ сайт.",
        "namespaceprotected": "<strong>$1</strong> цIэчIыпIэм и нэкIубгъомэ уяIэзэнэу фитыныгъэ уиIэп.",
        "mycustomcssprotected": "Мы CSS-нэкIубгъом уеIэзэн уфитэп.",
        "mycustomjsprotected": "Мы JavaScript нэкIубгъом уеIэзэн уфитэп.",
        "allpagessubmit": "KӀо",
        "cachedspecial-refresh-now": "Ыуждэдэм еплъын.",
        "categories": "Категориехэр",
-       "special-categories-sort-count": "гъэзаф пчъагъэкIэ",
-       "special-categories-sort-abc": "гъэзаф алфыбэкIэ",
        "sp-deletedcontributions-contribs": "лэжьыгъэ",
        "linksearch-pat": "Лъыхъун шапхъ:",
        "linksearch-ns": "ЦӀэчӀыпӀ:",
index 13f4fb1..f63f7c3 100644 (file)
@@ -9,7 +9,8 @@
                        "Aħmedbaɛl",
                        "GeekEmad",
                        "Nemo bis",
-                       "Shbib Al-Subaie"
+                       "Shbib Al-Subaie",
+                       "Macofe"
                ]
        },
        "tog-usenewrc": ")جمّع التعديلات حسب الصفحة في أحدث التغييرات وقائمة المراقبة (يتطلب جافاسكربت",
        "viewsourcetext": "يمكنك رؤية ونسخ مصدر هذه الصفحة:",
        "viewyourtext": "يمكنك رؤية ونسخ مصدر ''' تعديلاتك ''' في هذه الصفحة:",
        "protectedinterface": "هذه الصفحة توفر نص الواجهة للبرنامج، وهي مقفلة لمنع التخريب.",
-       "editinginterface": "'''تحذير:''' أنت تقوم بتحرير صفحة تستخدم في الواجهة النصية للبرنامج.\nسوف تؤثر التغييرات على هذه الصفحة على مظهر واجهة المستخدم للمستخدمين الآخرين.\nللترجمات، من فضلك استخدم مشروع ترجمة ميدياويكي [//translatewiki.net/wiki/Main_Page?setlang=ar translatewiki.net].",
+       "editinginterface": "'''تحذير:''' أنت تقوم بتحرير صفحة تستخدم في الواجهة النصية للبرنامج.\nسوف تؤثر التغييرات على هذه الصفحة على مظهر واجهة المستخدم للمستخدمين الآخرين.\nللترجمات، من فضلك استخدم مشروع ترجمة ميدياويكي [https://translatewiki.net/wiki/Main_Page?setlang=ar translatewiki.net].",
        "cascadeprotected": "تمت حماية هذه الصفحة من التعديل لأنها مدمجة في {{PLURAL:$1||الصفحة التالية، والتي|الصفحتين التاليتين، واللتين|الصفحات التالية، والتي}} تم استعمال خاصية \"حماية الصفحات المدمجة\" {{PLURAL:$1||بها|بهما|بها}}:\n$2",
        "namespaceprotected": "لا تمتلك الصلاحية لتعديل الصفحات في نطاق '''$1'''.",
        "customcssprotected": "أنت لا تمتلك السماح لتعديل صفحة الCSS هذه، لأنها تحتوي على الإعدادات الشخصية لمستخدم آخر.",
        "customjsprotected": "أنت لا تمتلك السماح لتعديل صفحة الجافاسكريبت هذه، لأنها تحتوي على الإعدادات الشخصية لمستخدم آخر.",
        "ns-specialprotected": "الصفحات الخاصة لا يمكن تعديلها.",
-       "titleprotected": "{{GENDER:$1|حمى|حمت}} [[User:$1|$1]] هذا العنوان من الإنشاء.\nالسبب المعطى هو ''$2''.",
+       "titleprotected": "{{GENDER:$1|حمى|حمت}} [[User:$1|$1]] هذا العنوان من الإنشاء.\nالسبب المعطى هو <em>$2</em>.",
        "filereadonlyerror": "تعذر تعديل الملف \"$1\" لأن مستودع الملف \"$2\" في وضع القراءة فقط. \n\nالمدير الذي قام بغلقه قدم التفسير التالي: \"$3\".",
        "invalidtitle-knownnamespace": "عنوان غير صالح في النطاق «$2» مع نص «$3»",
        "invalidtitle-unknownnamespace": "عنوان غير صالح ذو نطاق غير معروف رقم $1 ونص «$2»",
        "noname": "لم تحدد اسم مستخدم صحيح.",
        "loginsuccesstitle": "تم الدخول بشكل صحيح",
        "loginsuccess": "'''لقد قمت بتسجيل الدخول ل{{SITENAME}} باسم \"$1\".'''",
-       "nosuchuser": "لا يوجد مستخدم بالاسم \"$1\".\nأسماء المستخدمين حساسة لحالة الحروف.\nتأكد من إملاء الاسم، أو [[Special:UserLogin/signup|قم بإنشاء حساب جديد]].",
+       "nosuchuser": "لا يوجد مستخدم بالاسم \"$1\".\nأسماء المستخدمين حساسة لحالة الحروف.\nتأكد من إملاء الاسم، أو [[Special:CreateAccount|قم بإنشاء حساب جديد]].",
        "nosuchusershort": "لا يوجد مستخدم باسم $1\".\nتأكد من إملاء الاسم.",
        "nouserspecified": "يجب عليك تحديد اسم مستخدم.",
        "login-userblocked": "هذا المستخدم ممنوع. لا يسمح بالولوج.",
        "passwordreset-emailtext-ip": "احد ما (قد يكون انت$1)طلب مذكرة تفاصيل الحساب ل{{SITENAME}} ($4).المستخدم الاتي {{PLURAL:$3|الحساب هو|الحسابات هي}} قد قرن بهذا العنوان :\n\n$2\n\n{{PLURAL:$3|كلمة المرور المؤقتة|كلمات المرور المؤقة}}سينتهي في {{PLURAL:$5|يوم|ايام$5 }}\nمن الافضل ان تسجل الدخول وتختار كلمة مرور جديدة الان .\nإذا قام شخص آخر بهذا الطلب، أو إذا  تذكرت كلمة المرور الأصلية الخاصة بك،ولم تعد ترغب في تغييره، يمكنك تجاهل هذه الرسالة ومتابعة استخدام  كلمة المرورالقديمة.",
        "passwordreset-emailtext-user": "احد ما (قد يكون انت$1)طلب مذكرة تفاصيل الحساب ل{{SITENAME}} ($4).المستخدم الاتي {{PLURAL:$3|الحساب هو|الحسابات هي}} قد قرن بهذا العنوان :\n\n$2\n\n{{PLURAL:$3|كلمة المرور المؤقتة|كلمات المرور المؤقة}}سينتهي في {{PLURAL:$5|يوم|ايام$5 }}\nمن الافضل ان تسجل الدخول وتختار كلمة مرور جديدة الان .\nإذا قام شخص آخر بهذا الطلب، أو إذا  تذكرت كلمة المرور الأصلية الخاصة بك،ولم تعد ترغب في تغييره، يمكنك تجاهل هذه الرسالة ومتابعة استخدام  كلمة المرورالقديمة.",
        "passwordreset-emailelement": "اسم المستخدم: \n$1\n\nكلمة السر المؤقتة: \n$2",
-       "passwordreset-emailsent": "أرسل بريد إلكتروني تذكيري",
+       "passwordreset-emailsentemail": "أرسل بريد إلكتروني تذكيري",
        "passwordreset-emailsent-capture": "أرسل بريد إلكتروني تذكيري وهو معروض بالأسفل.",
        "passwordreset-emailerror-capture": "ولّد بريد إلكتروني تذكيري وهو معروض بالأسفل لكن فشل إرساله للمستخدم: $1",
        "changeemail": "تغيير عنوان البريد الإلكتروني",
-       "changeemail-text": "أكمل هذا النموذج لتغيير عنوان البريد الإلكتروني. سوف تحتاج إلى إدخال كلمة السر الخاصة بك لتأكيد هذا التغيير.",
+       "changeemail-header": "تغيير عنوان البريد الإلكتروني للحساب",
        "changeemail-no-info": "يجب تسجيل الدخول للوصول إلى هذه الصفحة مباشرة.",
        "changeemail-oldemail": "عنوان البريد الإلكتروني الحالي:",
        "changeemail-newemail": "عنوان البريد الإلكتروني الجديد:",
        "accmailtext": "كلمة سر مولدة عشوائيا ل [[User talk:$1|$1]] تم إرسالها إلى $2.\n\nكلمة السر لهذا الحساب الجديد يمكن تغييرها في صفحة ''[[Special:ChangePassword|تغيير كلمة السر]]'' عند تسجيل الدخول.",
        "newarticle": "(جديد)",
        "newarticletext": "لقد تبعت وصلة لصفحة لم يتم إنشائها بعد.\nلإنشاء هذه الصفحة ابدأ الكتابة في الصندوق بالأسفل (انظر في [$1 صفحة المساعدة] للمزيد من المعلومات).\nإذا كانت زيارتك لهذه الصفحة بالخطأ، اضغط على زر ''رجوع'' في متصفح الإنترنت لديك.",
-       "anontalkpagetext": "----''هذه صفحة نقاش لمستخدم مجهول لم يقم بإنشاء حساب بعد أو لا يستعمل ذلك الحساب.\nلذا فيجب علينا استعمال رقم الأيبي للتعرف عليه/عليها.\nمثل هذا العنوان يمكن أن يشترك فيه عدة مستخدمين.\nلو كنت مستخدما مجهولا وتشعر بأن تعليقات لا تخصك تم توجيهها إليك، من فضلك [[Special:UserLogin/signup|أنشئ حسابا]] أو [[Special:UserLogin|سجل الدخول]] لتجنب الارتباك المستقبلي مع مستخدمين مجهولين آخرين.''",
+       "anontalkpagetext": "----''هذه صفحة نقاش لمستخدم مجهول لم يقم بإنشاء حساب بعد أو لا يستعمل ذلك الحساب.\nلذا فيجب علينا استعمال رقم الأيبي للتعرف عليه/عليها.\nمثل هذا العنوان يمكن أن يشترك فيه عدة مستخدمين.\nلو كنت مستخدما مجهولا وتشعر بأن تعليقات لا تخصك تم توجيهها إليك، من فضلك [[Special:CreateAccount|أنشئ حسابا]] أو [[Special:UserLogin|سجل الدخول]] لتجنب الارتباك المستقبلي مع مستخدمين مجهولين آخرين.''",
        "noarticletext-nopermission": "لا يوجد حاليا أي نص في هذه الصفحة.يمكنك [[Special:Search/{{PAGENAME}}|البحث عن عنوان هذه الصفحة]] في الصفحات الأخرى,أو <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} بحث السجلات المتصلة]</span>.",
        "userpage-userdoesnotexist": "حساب المستخدم \"<nowiki>$1</nowiki>\" غير مسجل.\nمن فضلك تأكد أنك تريد إنشاء/تعديل هذه الصفحة.",
        "userpage-userdoesnotexist-view": "حساب المستخدم \"$1\" غير مسجل.",
index fac0302..7bdc097 100644 (file)
        "october-date": "$1 Oktober",
        "november-date": "$1 November",
        "december-date": "$1 Desember",
+       "period-am": "AM",
+       "period-pm": "PM",
        "pagecategories": "{{PLURAL:$1|Kategorie|Kategorieë}}",
        "category_header": "Bladsye in kategorie \"$1\"",
        "subcategories": "Subkategorieë",
        "morenotlisted": "Die lys is nie volledig nie.",
        "mypage": "Gebruikersblad",
        "mytalk": "Bespreking",
-       "anontalk": "Besprekingsblad vir hierdie IP",
+       "anontalk": "Bespreking",
        "navigation": "Navigasie",
        "and": "&#32;en",
        "qbfind": "Vind",
        "protectedpagetext": "Hierdie bladsy is beskerm om wysigings en ander aksies te verhoed.",
        "viewsourcetext": "U mag die bronteks van hierdie bladsy lees en kopieer:",
        "viewyourtext": "U kan '''u wysigings''' aan die bronteks van hierdie bladsy bekyk en kopieer:",
-       "protectedinterface": "Hierdie bladsy verskaf teks vir die koppelvlak van die sagteware, en is beskerm om misbruik te voorkom.\nGebruik asseblief [//translatewiki.net/ translatewiki.net] om vertalings by te voeg of te wysig.",
-       "editinginterface": "'''Waarskuwing:''' U is besig om 'n bladsy te redigeer wat koppelvlakinligting aan die programmatuur voorsien. Wysigings aan hierdie bladsy sal die voorkoms van die gebruikerskoppelvlak vir ander gebruikers beïnvloed. Vir vertalings, oorweeg om eerder [//translatewiki.net/wiki/Main_Page?setlang=af translatewiki.net] (die vertalingsprojek vir MediaWiki) te gebruik.",
+       "protectedinterface": "Hierdie bladsy verskaf teks vir die koppelvlak van die sagteware, en is beskerm om misbruik te voorkom.\nGebruik asseblief [https://translatewiki.net/ translatewiki.net] om vertalings by te voeg of te wysig.",
+       "editinginterface": "'''Waarskuwing:''' U is besig om 'n bladsy te redigeer wat koppelvlakinligting aan die programmatuur voorsien. Wysigings aan hierdie bladsy sal die voorkoms van die gebruikerskoppelvlak vir ander gebruikers beïnvloed. Vir vertalings, oorweeg om eerder [https://translatewiki.net/wiki/Main_Page?setlang=af translatewiki.net] (die vertalingsprojek vir MediaWiki) te gebruik.",
        "cascadeprotected": "Hierdie bladsy is beskerm teen redigering omdat dit ingesluit is in die volgende {{PLURAL:$1|bladsy|bladsye}} wat beskerm is met die \"kaskade\" opsie aangeskakel: $2",
        "namespaceprotected": "U het nie toestemming om bladsye in die '''$1'''-naamruimte te wysig nie.",
        "customcssprotected": "U het nie toestemming om hierdie CSS-bladsy te redigeer nie, want dit bevat 'n ander gebruiker se persoonlike verstellings.",
        "retypenew": "Tik nuwe wagwoord weer in",
        "resetpass_submit": "Stel wagwoord en meld aan",
        "changepassword-success": "U wagwoord is suksesvol gewysig!",
+       "botpasswords-label-create": "Skep",
+       "botpasswords-label-update": "Opdateer",
+       "botpasswords-label-cancel": "Kanselleer",
+       "botpasswords-label-delete": "Skrap",
+       "botpasswords-label-resetpassword": "Herstel wagwoord",
+       "botpasswords-label-grants": "Toepaslike regte:",
        "resetpass_forbidden": "Wagwoorde kannie gewysig word nie.",
        "resetpass-no-info": "U moet ingeteken wees om hierdie bladsy direk te kan gebruik.",
        "resetpass-submit-loggedin": "Verander wagwoord",
        "sig_tip": "Handtekening met datum",
        "hr_tip": "Horisontale streep (selde nodig)",
        "summary": "Opsomming:",
-       "subject": "Onderwerp/opskrif:",
+       "subject": "Onderwerp:",
        "minoredit": "Klein wysiging",
        "watchthis": "Hou bladsy dop",
        "savearticle": "Stoor bladsy",
+       "savechanges": "Stoor wysigings",
+       "publishpage": "Publiseer bladsy",
+       "publishchanges": "Publiseer wysigings",
        "preview": "Voorskou",
        "showpreview": "Wys voorskou",
        "showdiff": "Wys veranderings",
        "recentchanges-label-plusminus": "Bladsy is met die aantal grepe gewysig",
        "recentchanges-legend-heading": "<strong>Sleutel:</strong>",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (sien ook die [[Special:NewPages|lys van nuwe bladsye]])",
+       "recentchanges-submit": "Wys",
        "rcnotefrom": "Wysigings sedert <strong>$2</strong> (maksimum van <strong>$1</strong> word gewys).",
        "rclistfrom": "Vertoon wysigings vanaf $3 $2",
        "rcshowhideminor": "$1 klein wysigings",
        "mostrevisions": "Artikels met meeste wysigings",
        "prefixindex": "Alle bladsye (voorvoegselindeks)",
        "prefixindex-namespace": "Alle bladsye met die voorvoegsel (naamruimte $1)",
+       "prefixindex-submit": "Wys",
        "shortpages": "Kort bladsye",
        "longpages": "Lang bladsye",
        "deadendpages": "Doodloopbladsye",
        "apihelp-no-such-module": "Module \"$1\" nie gevind nie.",
        "apisandbox": "API-sandput",
        "apisandbox-api-disabled": "API is afgeskakel op hierdie webwerf.",
-       "apisandbox-intro": "Gebruik hierdie bladsy om te eksperimenteer met die '''MediaWiki-API'''.\nSien die [//www.mediawiki.org/wiki/API:Main_page API-dokumentasie] vir verdere details oor die gebruik van die API. Voorbeeld: [//www.mediawiki.org/wiki/API#A_simple_example hoe die inhoud van 'n Tuisblad te laai]. Kies 'n handeling om meer voorbeelde te sien.",
+       "apisandbox-intro": "Gebruik hierdie bladsy om te eksperimenteer met die '''MediaWiki-API'''.\nSien die [https://www.mediawiki.org/wiki/API:Main_page API-dokumentasie] vir verdere details oor die gebruik van die API. Voorbeeld: [https://www.mediawiki.org/wiki/API#A_simple_example hoe die inhoud van 'n Tuisblad te laai]. Kies 'n handeling om meer voorbeelde te sien.",
+       "apisandbox-unfullscreen": "Wys bladsy",
        "apisandbox-submit": "Maak versoek",
        "apisandbox-reset": "Vee uit",
+       "apisandbox-retry": "Herprobeer",
        "apisandbox-examples": "Voorbeeld",
        "apisandbox-results": "Resultaat",
        "apisandbox-request-url-label": "Versoek-URL:",
        "specialloguserlabel": "Uitvoerende gebruiker:",
        "speciallogtitlelabel": "Teiken (bladsy of gebruiker):",
        "log": "Logboeke",
+       "logeventslist-submit": "Wys",
        "all-logs-page": "Alle openbare logboeke",
        "alllogstext": "Vertoon 'n samestelling van alle boekstawings van {{SITENAME}}.\nU kan die resultate vernou deur 'n boekstaaftipe, gebruikersnaam (kas-sensitief) of spesifieke blad (ook kas-sensitief) te kies.",
        "logempty": "Geen inskrywings in die logboek voldoen aan die kriteria nie.",
        "log-title-wildcard": "Soek bladsye wat met die naam begin",
        "showhideselectedlogentries": "Wys/versteek gekose logboekreëls",
+       "checkbox-select": "Selekteer: $1",
+       "checkbox-all": "Alle",
+       "checkbox-none": "Geen",
+       "checkbox-invert": "Omkeer",
        "allpages": "Alle bladsye",
        "nextpage": "Volgende blad ($1)",
        "prevpage": "Vorige bladsye ($1)",
        "cachedspecial-viewing-cached-ts": "U kyk na 'n gekasde weergawe ban die bladsy, wat moontlik nie volledig bygewerk is nie.",
        "cachedspecial-refresh-now": "Wys nuutste.",
        "categories": "Kategorieë",
+       "categories-submit": "Wys",
        "categoriespagetext": "Die volgende {{PLURAL:$1|kategorie|kategorieë}} bevat bladsye of media.\n[[Special:UnusedCategories|Ongebruikte kategorieë]] word nie gewys nie.\nSien ook [[Special:WantedCategories|nie-bestaande kategorieë met verwysings]].",
        "categoriesfrom": "Wys kategorieë vanaf:",
        "deletedcontributions": "Geskrapte gebruikersbydraes",
        "wlnote": "Hier volg die laaste {{PLURAL:$1|verandering|'''$1''' veranderings}} binne die laaste {{PLURAL:$2|uur|'''$2''' ure}}, soos vanaf $3 om $4.",
        "wlshowlast": "Wys afgelope $1 ure, $2 dae of",
        "watchlist-hide": "Versteek",
+       "watchlist-submit": "Wys",
        "wlshowtime": "Wys laaste:",
        "wlshowhideminor": "klein wysigings",
        "wlshowhidebots": "robotte",
        "delete-confirm": "Skrap \"$1\"",
        "delete-legend": "Skrap",
        "historywarning": "'''Waarskuwing:''' Die bladsy wat u wil verwyder het 'n geskiedenis met ongeveer $1 {{PLURAL:$1|weergawe|weergawes}}:",
+       "historyaction-submit": "Wys",
        "confirmdeletetext": "U staan op die punt om 'n bladsy of prent, insluitende hul geskiedenis, uit die databasis te skrap.\nBevestig asseblief dat u dit wil doen, dat u die gevolge verstaan en dat u dit doen in ooreenstemming met die [[{{MediaWiki:Policy-url}}|beleid]].",
        "actioncomplete": "Aksie uitgevoer",
        "actionfailed": "Aksie het gefaal",
        "sessionfailure-title": "Sessie het gefaal",
        "sessionfailure": "Dit lyk of daar 'n probleem met u sessie is.\nHierdie aksie is gekanselleer omdat dit 'n veiligheidsrisiko is (moontlike kaping van u sessie).\nGaan een bladsy terug, herlaai die bladsy en probeer dan weer.",
        "changecontentmodel-reason-label": "Rede:",
+       "changecontentmodel-submit": "Wysig",
        "protectlogpage": "Beskermingboekstaaf",
        "protectlogtext": "Hieronder is 'n lys van veranderinge wat aan die beveilig van bladsye aangebring is.\nSien die [[Special:ProtectedPages|lys van beveiligde bladsye]] vir alle bladsye wat tans operasioneel beveilig is.",
        "protectedarticle": "het [[$1]] beskerm",
        "allmessagesname": "Naam",
        "allmessagesdefault": "Verstekteks",
        "allmessagescurrent": "Huidige teks",
-       "allmessagestext": "Hier is 'n lys boodskappe wat in die ''MediaWiki''-naamruimte teenwoordig is.\nGaan na [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki-lokalisasie] en [//translatewiki.net translatewiki.net] as u wil help om MediaWiki te vertaal.",
+       "allmessagestext": "Hier is 'n lys boodskappe wat in die ''MediaWiki''-naamruimte teenwoordig is.\nGaan na [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki-lokalisasie] en [https://translatewiki.net translatewiki.net] as u wil help om MediaWiki te vertaal.",
        "allmessagesnotsupportedDB": "Daar is geen ondersteuning vir '''{{ns:special}}:Allmessages''' omdat '''$wgUseDatabaseMessages''' uitgeskakel is.",
        "allmessages-filter-legend": "Filter",
        "allmessages-filter": "Filtreer op staat van verandering:",
        "confirm-watch-top": "Voeg hierdie bladsy by u dophoulys?",
        "confirm-unwatch-button": "OK",
        "confirm-unwatch-top": "Verwyder hierdie bladsy van u dophoulys?",
+       "confirm-rollback-button": "OK",
        "quotation-marks": "\"$1\"",
        "imgmultipageprev": "← vorige bladsy",
        "imgmultipagenext": "volgende bladsy →",
        "watchlisttools-edit": "Bekyk en wysig dophoulys",
        "watchlisttools-raw": "Wysig bronkode",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|kontak]])",
+       "timezone-local": "Lokaal",
        "duplicate-defaultsort": "Waarskuwing: Die standaardsortering \"$2\" kry voorrang voor die sortering \"$1\".",
        "version": "Weergawe",
        "version-extensions": "Uitbreidings geïnstalleer",
        "tags-activate-reason": "Rede:",
        "tags-activate-submit": "Aktiveer",
        "tags-deactivate-reason": "Rede:",
+       "tags-deactivate-submit": "Deaktiveer",
        "tags-edit-existing-tags-none": "''Geen''",
        "tags-edit-reason": "Rede:",
        "comparepages": "Vergelyk bladsye",
        "pagelang-language": "Taal",
        "pagelang-use-default": "Gebruik standaard taal",
        "pagelang-select-lang": "Kies taal",
+       "pagelang-submit": "Dien in",
        "right-pagelang": "Wysig die taal van die bladsy",
        "log-name-pagelang": "Logboek van taalwysigings",
        "log-description-pagelang": "Hierdie is 'n logboek van wysigings van die taal van bladsye.",
        "logentry-pagelang-pagelang": "$1 wysig die taal van bladsy '$3' van $4 na $5.",
+       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 (<strong>afgeskakel</strong>)",
        "mediastatistics": "Mediastatistieke",
        "mediastatistics-nbytes": "{{PLURAL:$1|$1 greep|$1 grepe}} ($2; $3%)",
        "mediastatistics-table-mimetype": "MIME-tipe",
        "mediastatistics-header-text": "Tekslêers",
        "mediastatistics-header-executable": "Uitvoerbare lêers",
        "mediastatistics-header-archive": "Gekompakteerde lêers",
+       "mediastatistics-header-total": "Alle lêers",
        "json-error-syntax": "Sintaksfout",
        "headline-anchor-title": "Skakel na die afdeling",
        "special-characters-group-latin": "Latyns",
        "mw-widgets-dateinput-placeholder-month": "JJJJ-MM",
        "mw-widgets-titleinput-description-new-page": "bladsy bestaan nog nie",
        "mw-widgets-titleinput-description-redirect": "aanstuur na $1",
-       "api-error-blacklisted": "Kies asseblief 'n ander, beskrywende titel."
+       "log-action-filter-all": "Alle",
+       "authprovider-resetpass-skip-label": "Slaan oor"
 }
index dde3a06..23da0fa 100644 (file)
        "protectedpagetext": "Kjo faqe âsht mbyllë për redaktim.",
        "viewsourcetext": "Mundeni me pâ dhe kopjue kodin burimor të kësaj faqeje:",
        "protectedinterface": "Kjo faqe përmban tekst të interfaceit të softwareit dhe âsht e mbrojtun për me pengue keqpërdorimin.",
-       "editinginterface": "'''Kujdes:''' Po redaktoni nji faqe që përdoret për me ofrue tekst të interfaceit të softwareit.\nNdryshimet në këtë faqe do të prekin pamjen e interfaceit për të gjithë përdoruesit tjerë.\nPër përkthim, konsideroni ju lutem përdorimin e [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], projektin e MediaWiki për përshtatje gjuhësore.",
+       "editinginterface": "'''Kujdes:''' Po redaktoni nji faqe që përdoret për me ofrue tekst të interfaceit të softwareit.\nNdryshimet në këtë faqe do të prekin pamjen e interfaceit për të gjithë përdoruesit tjerë.\nPër përkthim, konsideroni ju lutem përdorimin e [https://translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], projektin e MediaWiki për përshtatje gjuhësore.",
        "cascadeprotected": "Kjo faqe âsht e mbrojtun prej redaktimit, për shkak se âsht e përfshime në {{PLURAL:$1|faqen, e cila âsht e mbrojtun|faqet, të cilat janë të mbrojtuna}} me opcionin \"zinxhir\" të zgjedhun:\n$2",
        "namespaceprotected": "Nuk keni tagër me redaktue faqe në hapësinën '''$1'''.",
        "ns-specialprotected": "Faqet speciale nuk mujnë me u redaktue.",
index 65400e2..712dc1f 100644 (file)
        "protectedpagetext": "ይኸው ገጽ እንዳይታረም ተጠብቋል።",
        "viewsourcetext": "የዚህን ገጽ ምንጭ ማየትና መቅዳት ይችላሉ።",
        "protectedinterface": "ይህ ገጽ ለስልቱ ገጽታ ጽሑፍን ያቀርባል፣፡ ስለዚህ እንዳይበላሽ ተጠብቋል።",
-       "editinginterface": "'''ማስጠንቀቂያ፦''' ይህ ገጽ ለድረገጹ መልክ ጽሕፈት ይሰጣል። በዊኪ ሁሉ ላይ መላውን የድረገጽ መልክ በቀላል ለማስተርጎም [//translatewiki.net/wiki/Main_Page?setlang=am translatewiki.net] ይጎብኙ።",
+       "editinginterface": "'''ማስጠንቀቂያ፦''' ይህ ገጽ ለድረገጹ መልክ ጽሕፈት ይሰጣል። በዊኪ ሁሉ ላይ መላውን የድረገጽ መልክ በቀላል ለማስተርጎም [https://translatewiki.net/wiki/Main_Page?setlang=am translatewiki.net] ይጎብኙ።",
        "cascadeprotected": "'''ማስጠንቀቂያ፦''' ይህ አርእስት ሊፈጠር ወይም ሊቀየር አይቻልም። ምክንያቱም ወደ {{PLURAL:$1|ተከታተለው አርዕስት|ተከታተሉት አርእስቶች}} ተጨምሯል።\n$2",
        "namespaceprotected": "በ'''$1''' ክፍለ-ዊኪ ያሉትን ገጾች ለማዘጋጀት ፈቃድ የለዎም።",
        "ns-specialprotected": "ልዩ ገጾችን ማረም አይፈቀድም።",
        "allmessagesname": "የመልእክት ስም",
        "allmessagesdefault": "የቆየው ጽሕፈት",
        "allmessagescurrent": "ያሁኑ ጽሕፈት",
-       "allmessagestext": "በ«MediaWiki» ክፍለ-ዊኪ ያሉት የድረገጽ መልክ መልእክቶች ሙሉ ዝርዝር ይህ ነው።\nPlease visit [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] and [//translatewiki.net translatewiki.net] if you wish to contribute to the generic MediaWiki localisation.",
+       "allmessagestext": "በ«MediaWiki» ክፍለ-ዊኪ ያሉት የድረገጽ መልክ መልእክቶች ሙሉ ዝርዝር ይህ ነው።\nPlease visit [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] and [https://translatewiki.net translatewiki.net] if you wish to contribute to the generic MediaWiki localisation.",
        "allmessagesnotsupportedDB": "'''$wgUseDatabaseMessages''' ስለ ተዘጋ '''{{ns:special}}:Allmessages''' ሊጠቀም አይችልም።",
        "allmessages-filter-legend": "ማጣሪያ",
        "allmessages-filter-all": "ሁሉ",
index 05000b1..515dc79 100644 (file)
        "viewsourcetext": "Puede veyer y copiar o codigo fuent d'ista pachina:",
        "viewyourtext": "Puet veyer y copiar o codigo d''''as suyas edicions''' en ista pachina:",
        "protectedinterface": "Ista pachina furne o texto d'a interfaz ta o software. Ye protechita ta privar o vandalismo. Si creye que bi ha bella error, contacte con un administrador.",
-       "editinginterface": "'''Pare cuenta:''' Ye editando una pachina emplegata ta furnir o texto d'a interfaz de {{SITENAME}}. Os cambeos en ista pachina tendrán efecto en l'aparencia d'a interfaz ta os atros usuarios. Ta fer traduccions d'a interfaz, puede considerar fer servir [//translatewiki.net/wiki/Main_Page?setlang=an translatewiki.net], o prochecto de localización de MediaWiki.",
+       "editinginterface": "'''Pare cuenta:''' Ye editando una pachina emplegata ta furnir o texto d'a interfaz de {{SITENAME}}. Os cambeos en ista pachina tendrán efecto en l'aparencia d'a interfaz ta os atros usuarios. Ta fer traduccions d'a interfaz, puede considerar fer servir [https://translatewiki.net/wiki/Main_Page?setlang=an translatewiki.net], o prochecto de localización de MediaWiki.",
        "cascadeprotected": "Ista pachina ye protechita y no se puede editar porque ye incluyita en {{PLURAL:$1|a siguient pachina|as siguients pachinas}}, que son protechitas con a opción de \"cascada\": $2",
        "namespaceprotected": "No tiene premiso ta editar as pachinas d'o espacio de nombres '''$1'''.",
        "customcssprotected": "No tiene permisos ta editar a pachina CSS porque contién parametros personal de belatro usuario.",
        "allmessagesname": "Nombre",
        "allmessagesdefault": "texto por defecto",
        "allmessagescurrent": "texto actual",
-       "allmessagestext": "Ista ye una lista de totz os mensaches disponibles en o espacio de nombres MediaWiki.\nVesite por favor [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation a pachina sobre localización de MediaWiki] y  [//translatewiki.net translatewiki.net] si deseya contrebuyir t'a localización cheneral de MediaWiki.",
+       "allmessagestext": "Ista ye una lista de totz os mensaches disponibles en o espacio de nombres MediaWiki.\nVesite por favor [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation a pachina sobre localización de MediaWiki] y  [https://translatewiki.net translatewiki.net] si deseya contrebuyir t'a localización cheneral de MediaWiki.",
        "allmessagesnotsupportedDB": "Ista pachina no ye disponible porque wgUseDatabaseMessages ye desactivato.",
        "allmessages-filter-legend": "Filtro",
        "allmessages-filter": "Filtrar por estau de personalización:",
index 29cfc34..5a3781b 100644 (file)
        "protectedpagetext": "इ पन्ना संपादन आरू अन्य कार्यो स॑ सुरक्षित रखलऽ गेलऽ छै.",
        "viewsourcetext": "आपनै इ पन्ना केरौ स्त्रोत क देखै आरू कापी करै सकै छियै.",
        "viewyourtext": "आपन॑ इ पन्ना मं॑ आपनऽ करलऽ गेलऽ स्रोत देख॑ सकै छियै आरू ओकरऽ कॉपी करै सकै छियै.",
-       "protectedinterface": "इ पन्ना इ विकी के सॉफ़्टवेयर क॑ इंटरफ़ेस पाठ दै छै, आरू एखरऽ गलत प्रयोग स॑ बचाबै लेली सुरक्षित करी देलऽ गेलऽ छै.\nसब्भे विकि लेली अनुवाद जोड़ै या बदलै लेली कृपया मीडियाविकि केरऽ क्षेत्रीयकरण प्रकल्प [//translatewiki.net/ translatewiki.net] केर प्रयोग करऽ.",
+       "protectedinterface": "इ पन्ना इ विकी के सॉफ़्टवेयर क॑ इंटरफ़ेस पाठ दै छै, आरू एखरऽ गलत प्रयोग स॑ बचाबै लेली सुरक्षित करी देलऽ गेलऽ छै.\nसब्भे विकि लेली अनुवाद जोड़ै या बदलै लेली कृपया मीडियाविकि केरऽ क्षेत्रीयकरण प्रकल्प [https://translatewiki.net/ translatewiki.net] केर प्रयोग करऽ.",
        "editinginterface": "<strong>चेतावनी:</strong> आपनै एगो ऐसनौ पन्ना क बदली रहलौ छियै जे सॉफ़्टवेयर केरौ इंटरफ़ेस पाठ प्रदान करै छै।\nइ पन्ना क॑ बदलला स अन्य सदस्यो केरौ प्रदर्शित इंटरफ़ेस केरौ शक्लोसूरत म बदलाव ऐतै ।",
-       "translateinterface": "सब्भे विकियऽ लेली अनुवाद जोड़ै या बदलै लेली मीडियाविकि क्षेत्रीयकरण परियोजना [//translatewiki.net/ translatewiki.net] केरऽ प्रयोग करऽ।",
+       "translateinterface": "सब्भे विकियऽ लेली अनुवाद जोड़ै या बदलै लेली मीडियाविकि क्षेत्रीयकरण परियोजना [https://translatewiki.net/ translatewiki.net] केरऽ प्रयोग करऽ।",
        "namespaceprotected": "आपनेक॑ '''$1''' नामस्थान मं॑ समाविष्ट पृष्ठऽ क॑ बदलै के अनुमति नै छै.",
        "customcssprotected": "आपन॑क॑ इ CSS पृष्ठ क॑ संपादित करै के अनुमति नै छै, कैन्हेंकि एकरा म॑ आरू सदस्य केरऽ व्यक्तिगत सेटिंग्स शामिल छै।",
        "yourname": "सदस्यनाम:",
index 60e998c..06a8abc 100644 (file)
                        "ASammour",
                        "Maroen1990",
                        "Sonic N800",
-                       "Jdforrester"
+                       "Jdforrester",
+                       "Alaa",
+                       "Izoozo",
+                       "علاء"
                ]
        },
        "tog-underline": "سطر تحت الوصلات:",
@@ -89,7 +92,7 @@
        "tog-enotifrevealaddr": "أظهر عنوان بريدي الإلكتروني في إشعارات البريد الإلكتروني",
        "tog-shownumberswatching": "اعرض عدد المستخدمين المراقبين",
        "tog-oldsig": "التوقيع الحالي:",
-       "tog-fancysig": "وضع الوصلة يدويا واستعمال نص الويكي",
+       "tog-fancysig": "وضع الوصلة يدوياً واستعمال نص الويكي",
        "tog-uselivepreview": "استعمال المعاينة المباشرة",
        "tog-forceeditsummary": "نبهني عند عدم إدخال ملخص تعديل",
        "tog-watchlisthideown": "أخف تعديلاتي من قائمة المراقبة",
        "tog-ccmeonemails": "أرسل إلي نسخا من الرسائل الإلكترونية التي أرسلها إلى المستخدمين الآخرين",
        "tog-diffonly": "لا تعرض محتوى الصفحة أسفل الفرق",
        "tog-showhiddencats": "أظهر التصنيفات المخفية",
-       "tog-norollbackdiff": "أزÙ\84 Ø§Ù\84Ù\81رÙ\82 Ø¨Ø¹Ø¯ Ø¥Ø­Ø¯Ø§Ø« Ø§Ø³ØªØ±Ø¬Ø§ع",
+       "tog-norollbackdiff": "عدÙ\85 Ø¥Ø¸Ù\87ار Ø§Ù\84اختÙ\84اÙ\81ات Ø¨Ø¹Ø¯ ØªÙ\86Ù\81Ù\8aØ° Ø§Ù\84تراجع",
        "tog-useeditwarning": "حذّرني عندما أغادر تحرير صفحة فيها تغييرات لم أحفظها",
        "tog-prefershttps": "دائما استخدم اتصالا آمنا بعد الدخول",
        "underline-always": "دائما",
        "protectedpagetext": "هذه الصفحة تمت حمايتها لمنع التعديل أو أية عمليات أخرى.",
        "viewsourcetext": "يمكنك مطالعة و نسخ مصدر هذه الصفحة.",
        "viewyourtext": "يمكنك رؤية و نسخ مصدر <strong>تعديلاتك</strong> لهذه الصفحة.",
-       "protectedinterface": "توفر هذه الصفحة نص الواجهة للبرنامج على هذا الويكي، وهي محمية لمنع سوء أستخدامها.\nلإضافة أو تغيير الترجمات لجميع مشاريع الويكي، رجاءً أستخدم [//translatewiki.net/ translatewiki.net]، مشروع الترجمة الخاص بميدياويكي.",
-       "editinginterface": "<strong>تنبيه:</strong> تعديل هذه الصفحة سيحفظ في هذا الويكي فقط. لتعميم التعديل على جميع مشاريع ميدياويكي، عدلها في [//translatewiki.net/ مشروع ترجمة الويكي].",
-       "translateinterface": "من أجل إضافة أو تعديل ترجمات في كل مشاريع الويكي يرجى استخدم [//translatewiki.net/ translatewiki.net]، مشروع ميدياويكي لترجمة الواجهة.",
+       "protectedinterface": "توفر هذه الصفحة نص الواجهة للبرنامج على هذا الويكي، وهي محمية لمنع سوء أستخدامها.\nلإضافة أو تغيير الترجمات لجميع مشاريع الويكي، رجاءً أستخدم [https://translatewiki.net/ translatewiki.net]، مشروع الترجمة الخاص بميدياويكي.",
+       "editinginterface": "<strong>تنبيه:</strong> تعديل هذه الصفحة سيحفظ في هذا الويكي فقط. لتعميم التعديل على جميع مشاريع ميدياويكي، عدلها في [https://translatewiki.net/ مشروع ترجمة الويكي].",
+       "translateinterface": "من أجل إضافة أو تعديل ترجمات في كل مشاريع الويكي يرجى استخدم [https://translatewiki.net/ translatewiki.net]، مشروع ميدياويكي لترجمة الواجهة.",
        "cascadeprotected": "تمت حماية هذه الصفحة من التعديل لأنها مدمجة في {{PLURAL:$1||الصفحة التالية، والتي|الصفحتين التاليتين، واللتين|الصفحات التالية، والتي}} تم استعمال خاصية \"حماية الصفحات المدمجة\" {{PLURAL:$1||بها|بهما|بها}}:\n$2",
        "namespaceprotected": "لا تمتلك الصلاحية لتعديل الصفحات في نطاق '''$1'''.",
        "customcssprotected": "أنت لا تمتلك السماح لتعديل صفحة الCSS هذه، لأنها تحتوي على الإعدادات الشخصية لمستخدم آخر.",
        "password-change-forbidden": "أنت لا يمكنك تغيير كلمات السر على هذا الويكي.",
        "externaldberror": "هناك إما خطأ في دخول قاعدة البيانات الخارجية أو أنه غير مسموح لك بتحديث حسابك الخارجي.",
        "login": "تسجيل الدخول",
+       "login-security": "توكيد هويتك",
        "nav-login-createaccount": "دخول / إنشاء حساب",
        "userlogin": "دخول / إنشاء حساب",
        "userloginnocreate": "تسجيل الدخول",
        "userlogin-resetpassword-link": "نسيت كلمة مرورك؟",
        "userlogin-helplink2": "المساعدة في الدخول",
        "userlogin-loggedin": "أنت {{GENDER:$1|مسجل|مسجلة}} الدخول مسبقًا باسم $1. {{GENDER:$1|استخدم|استخدمي}} النموذج بالأسفل لتسجيل الدخول بحساب آخر.",
+       "userlogin-reauth": "عليك الدخول مرة أخرى لتؤكد أنك {{GENDER:$1|$1}}.",
        "userlogin-createanother": "إنشاء حساب آخر",
        "createacct-emailrequired": "عنوان البريد الإلكتروني",
        "createacct-emailoptional": "البريد الإلكتروني (اختياري)",
        "createacct-reason-ph": "لماذا تقوم بإنشاء حساب آخر",
        "createacct-submit": "افتح الحساب",
        "createacct-another-submit": "أنشئ حسابا",
+       "createacct-continue-submit": "مواصلة إنشاء الحساب",
+       "createacct-another-continue-submit": "مواصلة إنشاء الحساب",
        "createacct-benefit-heading": "{{SITENAME}} موقع يساهم فيه أشخاص مثلك.",
        "createacct-benefit-body1": "{{PLURAL:$1|تحريرا|تحريرات}}",
        "createacct-benefit-body2": "{{PLURAL:$1|صفحة}}",
        "createacct-another-realname-tip": "الاسم الحقيقي اختياري.\nإذا اخترت توفيره فسيستخدم لنسبة عمل المستخدم إليه.",
        "pt-login": "دخول",
        "pt-login-button": "دخول",
+       "pt-login-continue-button": "مواصلة تسجيل الدخول",
        "pt-createaccount": "إنشاء حساب",
        "pt-userlogout": "خروج",
        "php-mail-error-unknown": "خطأ غير معروف في وظيفة البريد PHP's mail()",
        "resetpass-abort-generic": "منعت مُلحقة إتمام صيرورة تغيير كلمة السّر.",
        "resetpass-expired": "انتهت مدة صلاحية كلمة السر الخاصة بك. الرجاء تعيين كلمة سر جديدة لتسجيل الدخول.",
        "resetpass-expired-soft": "انتهت مدة صلاحية كلمة السر الخاصة بك. الرجاء تعيين كلمة سر جديدة الآن أو النقر على زر إلغاء لإعادة تعيين كلمة السر لاحقاً.",
-       "resetpass-validity-soft": "كلمة السر الخاصة بك غير مقبولة :  $1 \n\nرجاءا اختر كلمة سر جديدة الآن، أو انقر فوق \"{{int:resetpass-submit-cancel}}\" لتغييرها في وقت لاحق.",
+       "resetpass-validity-soft": "كلمة السر الخاصة بك غير صالحة :  $1 \n\nرجاءا اختر كلمة سر جديدة الآن، أو انقر فوق \"{{int:authprovider-resetpass-skip-label}}\" لتغييرها في وقت لاحق.",
        "passwordreset": "إعادة ضبط كلمة السر",
        "passwordreset-text-one": "أكمل هذا النموذج لإعادة ضبط كلمة السر الخاصة بك.",
        "passwordreset-text-many": "{{PLURAL:$1||املأ الحقل لتستعيد كلمة السر|املأ أحد الحقلين لتستعيد كلمة السر|املأ أحد الحقول لتستعيد كلمة السر}}.",
        "passwordreset-emailsentusername": "إذا كان هناك عنوان بريد إلكتروني مرتبط بهذا المستخدم، ثم سيتم إرسال بريد إلكتروني لإعادة تعيين كلمة السر.",
        "passwordreset-emailsent-capture": "أُرسل بريد إلكتروني لإعادة ضبط كلمة السر، وهو معروض بالأسفل.",
        "passwordreset-emailerror-capture": "تم توليد رسالة بريد إلكتروني لتصفير كلمة السر نصّه التالي، إلا أنه تعذّر إرسال الرّسالة إلى {{GENDER:$2|المستخدم|المستخدمة}}: $1",
+       "passwordreset-invalideamil": "عنوان بريد إلكتروني غير صالح",
        "changeemail": "تغيير أو إزالة عنوان البريد الإلكتروني",
        "changeemail-header": "إكمال هذا النموذج لتغيير عنوان البريد الإلكتروني الخاص بك. إذا كنت ترغب في إزالة جمعية أي عنوان البريد الإلكتروني من حسابك، وترك الفراغ عنوان البريد الإلكتروني الجديد عند تقديم النموذج",
        "changeemail-passwordrequired": "تحتاج إلى إدخال كلمة السر الخاصة بك لتأكيد هذا التغيير.",
        "minoredit": "هذا تعديل طفيف",
        "watchthis": "راقب هذه الصفحة",
        "savearticle": "احفظ الصفحة",
+       "savechanges": "احفظ التغييرات",
        "publishpage": "نشر الصفحة",
+       "publishchanges": "انشر التغييرات",
        "preview": "عرض مسبق",
        "showpreview": "أظهر معاينة",
        "showdiff": "عرض التغييرات",
        "rev-delundel": "أظهر/أخف",
        "rev-showdeleted": "أظهر",
        "revisiondelete": "حذف/استرجاع المراجعات",
-       "revdelete-nooldid-title": "مراجعة هدف غير صحيحة",
+       "revdelete-nooldid-title": "النسخة المطلوبة غير محددة",
        "revdelete-nooldid-text": "إما أنك لم تحدد مراجعة معينة هدفا لهذه الوظيفة، أو أن المراجعة المحددة غير موجودة، أو أنك تحاول إخفاء المراجعة الحالية.",
        "revdelete-no-file": "الملف المحدد غير موجود.",
        "revdelete-show-file-confirm": "هل أنت متأكد أنك تريد رؤية مراجعة محذوفة للملف \"<nowiki>$1</nowiki>\" بتاريخ $2 الساعة $3؟",
        "lineno": "سطر $1:",
        "compareselectedversions": "قارن بين النسختين المختارتين",
        "showhideselectedversions": "أظهر/أخف المراجعات المختارة",
-       "editundo": "رجÙ\88ع",
+       "editundo": "تراجع",
        "diff-empty": "(لا فرق)",
        "diff-multi-sameuser": "({{PLURAL:$1|لا مراجعات متوسطة|مراجعة متوسطة واحدة|مراجعتان متوسطتان|$1 مراجعات متوسطة|$1 مراجعة متوسطة}} بواسطة نفس المستخدم غير {{PLURAL:$1|معروضة|معروضة|معروضتين|معروضة}})",
        "diff-multi-otherusers": "({{PLURAL:$1|لا مراجعات|مراجعة متوسطة واحدة|مراجعتان متوسطتان|$1 مراجعات متوسطة|$1 مراجعة متوسطة}} بواسطة {{PLURAL:$2|ولا مستخدم|مستخدم واحد آخر|مستخدمين اثنين آخرين|$2 مستخدمين|$2 مستخدماً|$2 مستخدم}} غير {{PLURAL:$1|معروضة|معروضة|معروضتين|معروضة}})",
        "badsig": "توقيع خام غير صحيح؛ تحقق من وسوم HTML.",
        "badsiglength": "توقيعك طويل جدا.\nيجب أن يكون أقل من $1 {{PLURAL:$1|حرف|حروف}}.",
        "yourgender": "كيف تفضل أن توصف؟",
-       "gender-unknown": "عند ذكرك، البرنامج سيستخدم كلمات محايدة النوع متى ما كان ذلك ممكنا",
+       "gender-unknown": "عند ذكرك، البرنامج سيستخدم كلمات محايدة النوع متى ما كان ذلك ممكناً",
        "gender-male": "هو يعدل صفحات الويكي",
        "gender-female": "هي تعدل صفحات الويكي",
-       "prefs-help-gender": "ضبط هذا التفضيل اختياري.\nيستخدم البرنامج هذه القيمة لمخاطبتك ومخاطبة الآخرين عنك وفقا للصيغة النحوية الملائمة للجنس.\nستكون هذه المعلومة علنية.",
+       "prefs-help-gender": "ضبط هذا التفضيل اختياري.\nيستخدم البرنامج هذه القيمة لمخاطبتك ومخاطبة الآخرين عنك وفقاً للصيغة النحوية الملائمة للجنس.\nهذه المعلومة ستكون علنية.",
        "email": "البريد الإلكتروني",
        "prefs-help-realname": "الاسم الحقيقي اختياري.\nلو اخترت أن توفره، فسيستخدم في الإشارة إلى عملك.",
        "prefs-help-email": "تحديد عنوان البريد الإلكتروني اختياري، ولكنه يلزم لإعادة تعيين كلمة المرور في حال نسيت كلمة المرور الخاصة بك.",
        "userrights-removed-self": "أزلت بنجاح صلاحياتك، ولن تتمكن من الوصول لهذه الصفحة مجددا.",
        "group": "المجموعة:",
        "group-user": "مستخدمون",
-       "group-autoconfirmed": "مستخدمون مؤكدون تلقائيا",
+       "group-autoconfirmed": "مستخدمون مؤكدون تلقائياً",
        "group-bot": "بوتات",
        "group-sysop": "مديرو نظام",
        "group-bureaucrat": "بيروقراطيون",
        "group-bureaucrat-member": "{{GENDER:$1|بيروقراط}}",
        "group-suppress-member": "{{GENDER:$1|ناظر|ناظرة}}",
        "grouppage-user": "{{ns:project}}:مستخدمون",
-       "grouppage-autoconfirmed": "{{ns:project}}:مستخدمون مؤكدون تلقائيا",
+       "grouppage-autoconfirmed": "{{ns:project}}:مستخدمون مؤكدون تلقائياً",
        "grouppage-bot": "{{ns:project}}:بوتات",
        "grouppage-sysop": "{{ns:project}}:إداريون",
        "grouppage-bureaucrat": "{{ns:project}}:بيروقراطيون",
        "rightslogtext": "هذا سجل بالتغييرات في صلاحيات المستخدمين.",
        "action-read": "قراءة هذه الصفحة",
        "action-edit": "تعديل هذه الصفحة",
-       "action-createpage": "إنشاء الصفحات",
+       "action-createpage": "إنشاء هذه الصفحة",
        "action-createtalk": "إنشاء صفحات النقاش",
        "action-createaccount": "إنشاء حساب المستخدم هذا",
        "action-autocreateaccount": "تلقائيا إنشاء هذا الحساب مستخدم خارجي",
        "watching": "يراقب...",
        "unwatching": "إزالة المراقبة...",
        "watcherrortext": "حدث خطأ أثناء تغيير إعدادات الرصد الخاصة بك \"$1\".",
-       "enotif_reset": "عÙ\84Ù\85 Ø¹Ù\84Ù\89 Ù\83Ù\84 Ø§Ù\84صÙ\81حات Ù\83Ù\85زارة",
+       "enotif_reset": "عÙ\84Ù\85 Ø¹Ù\84Ù\89 Ù\83Ù\84 Ø§Ù\84صÙ\81حات Ù\83Ù\85رئÙ\8aة",
        "enotif_impersonal_salutation": "مستخدم {{SITENAME}}",
        "enotif_subject_deleted": "الصفحة {{SITENAME}} $1 حذفها {{الجنس: $2 | $2 }}",
        "enotif_subject_created": "الصفحة {{SITENAME}}  $1  أنشأها {{الجنس: $2 | $2 }}",
        "delete-warning-toobig": "لهذه الصفحة تاريخ تعديل طويل، أكثر من {{PLURAL:$1||مراجعة واحدة|مراجعتين|$1 مراجعات|$1 مراجعة}}.\nقد يؤدي حذفها إلى اضطراب عمليات قاعدة البيانات في {{SITENAME}}؛\nاستمر مع الحذر.",
        "deleteprotected": "لا يمكنك حذف هذه الصفحة لأنها محمية.",
        "deleting-backlinks-warning": "[[Special:WhatLinksHere/{{FULLPAGENAME}}|تتصل صفحات أخرى]] بالصفحة التي تريد حذفها.",
-       "rollback": "استرجاع التعديلات",
+       "rollback": "التراجع عن التعديلات",
        "rollbacklink": "استرجع",
        "rollbacklinkcount": "استرجع {{PLURAL:$1|لا تعديلات|تعديلا واحدا|تعديلين|$1 تعديلات|$1 تعديلاً|تعديل}}",
        "rollbacklinkcount-morethan": "استرجاع أكثر من {{PLURAL:$1|تعديل|تعديل|تعديلين|$1 تعديلات|$1 تعديلاً|$1 تعديل}}",
        "revertpage-nouser": "استرجع تعديلات مستخدم مخفيّ حتى آخر مراجعة ل{{GENDER:$1|[[User:$1|$1]]}}",
        "rollback-success": "استرجع تعديلات $1؛\nاسترجع حتى آخر نسخة بواسطة $2.",
        "sessionfailure-title": "فشل في الجلسة",
-       "sessionfailure": "يبدو أنه هناك مشكلة في هذه جلسة الدخول الخاصة بك؛\nلذلك فقد ألغيت هذه العملية كإجراء احترازي ضد الاختراق.\nمن فضلك اضغط على مفتاح \"رجوع\" لتحميل الصفحة التي جئت منها، ثم حاول مرة أخرى.",
+       "sessionfailure": "يبدو أنه هناك مشكلة في جلسة الدخول الخاصة بك؛\nلذلك فقد ألغيت هذه العملية كإجراء احترازي ضد الاختراق.\nمن فضلك اضغط على مفتاح \"رجوع\" لتحميل الصفحة التي جئت منها، ثم حاول مرة أخرى.",
        "changecontentmodel": "غير نموذج المحتوى لصفحة",
        "changecontentmodel-legend": "غير نموذج المحتوى",
        "changecontentmodel-title-label": "عنوان الصفحة",
        "sp-contributions-username": "عنوان أيبي أو اسم مستخدم:",
        "sp-contributions-toponly": "أظهر أعلى المراجعات فقط",
        "sp-contributions-newonly": "أظهر إنشاء الصفحات فقط",
+       "sp-contributions-hideminor": "أخف التعديلات الطفيفة",
        "sp-contributions-submit": "بحث",
        "whatlinkshere": "ماذا يصل هنا",
        "whatlinkshere-title": "الصفحات التي تصل إلى \"$1\"",
        "allmessagesname": "الاسم",
        "allmessagesdefault": "النص الافتراضي",
        "allmessagescurrent": "النص الحالي",
-       "allmessagestext": "Ù\87Ø°Ù\87 Ù\82ائÙ\85Ø© Ø¨Ø±Ø³Ø§Ø¦Ù\84 Ø§Ù\84Ù\86ظاÙ\85 Ø§Ù\84Ù\85تÙ\88Ù\81رة Ù\81Ù\8a Ù\86طاÙ\82 Ù\85Ù\8aدÙ\8aاÙ\88Ù\8aÙ\83Ù\8a.\nÙ\85Ù\86 Ù\81ضÙ\84Ù\83 Ø²Ø± [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation ØªØ±Ø¬Ù\85Ø© Ù\85Ù\8aدÙ\8aاÙ\88Ù\8aÙ\83Ù\8a] Ù\88 [//translatewiki.net ØªØ±Ø§Ù\86سÙ\84Ù\8aت Ù\88Ù\8aÙ\83Ù\8a Ø¯Ù\88ت Ù\86ت] Ù\84Ù\88 Ù\83Ù\86ت ØªØ±ØºØ¨ Ù\81Ù\8a Ø§Ù\84Ù\85ساÙ\87Ù\85Ø© Ù\81Ù\8a ØªØ±Ø¬Ù\85Ø© Ù\85Ù\8aدÙ\8aاÙ\88Ù\8aÙ\83Ù\8a Ø§Ù\84أساسÙ\8aØ©.",
+       "allmessagestext": "Ù\87Ø°Ù\87 Ù\82ائÙ\85Ø© Ø¨Ø±Ø³Ø§Ø¦Ù\84 Ø§Ù\84Ù\86ظاÙ\85 Ø§Ù\84Ù\85تÙ\88Ù\81رة Ù\81Ù\8a Ù\86طاÙ\82 Ù\85Ù\8aدÙ\8aاÙ\88Ù\8aÙ\83Ù\8a.\nÙ\8aرجÙ\89 Ø²Ù\8aارة :\n[https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] Ù\88 [https://translatewiki.net translatewiki.net]\nإازا Ù\83Ù\86ت ØªØ±ØºØ¨ Ù\81Ù\8a Ø§Ù\84Ù\85ساÙ\87Ù\85Ø© Ø¨ØªØ¹Ø±Ù\8aب Ù\85Ù\8aدÙ\8aا Ù\88Ù\8aÙ\83Ù\8a",
        "allmessagesnotsupportedDB": "هذه الصفحة لا يمكن استخدامها لأن '''$wgUseDatabaseMessages''' تم تعطيله.",
        "allmessages-filter-legend": "المرشح",
        "allmessages-filter": "رشح حسب حالة التخصيص:",
        "version-libraries-license": "الترخيص",
        "version-libraries-description": "الوصف",
        "version-libraries-authors": "المؤلفون",
-       "redirect": "تحويل حسب  الملف , المستخدم ,الصفحة , معرف الدخول",
+       "redirect": "تحويل حسب الملف أو المستخدم أو الصفحة أو معرف الدخول",
        "redirect-summary": "هذه الصفحة الخاصة تحوّل إلى ملف (باسمه) أو صفحة (برقم إحدى مراجعاتها) أو إلى صفحة مستخدم (برقمه التعريفي). الاستخدام [[{{#Special:Redirect}}/file/Example.jpg]] أو [[{{#Special:Redirect}}/revision/328429]] أو [[{{#Special:Redirect}}/user/101]].",
        "redirect-submit": "حوّل",
        "redirect-lookup": "ابحث في:",
        "tags-edit-success": "طبقت التغييرات.",
        "tags-edit-failure": "التغييرات لم تطبق: $1",
        "tags-edit-nooldid-title": "مراجعة هدف غير صالحة",
+       "tags-edit-nooldid-text": "لم تحدد النسخة التي تريد تطبيق العملية عليها أو لا توجد تلك النسخة",
        "tags-edit-none-selected": "من فضلك اختر على الأقل وسما واحدا للإضافة أو الإزالة.",
        "comparepages": "قارن صفحات",
        "compare-page1": "صفحة 1",
        "logentry-protect-unprotect": "{{GENDER:$2|رفع|رفعت}} $1 الحماية عن $3",
        "logentry-protect-protect": "$1 {{GENDER:$2|حمى|حمت}} $3 $4",
        "logentry-protect-protect-cascade": "$1 {{GENDER:$2|حمى|حمت}} $3 $4 [مضمنة]",
-       "logentry-protect-modify": "{{GENDER:$2|غÙ\8aر|غÙ\8aرت}} $1 Ù\85ستÙ\88Ù\89 Ø§Ù\84Ø­Ù\85اÙ\8aØ© Ù\84$3 $4",
+       "logentry-protect-modify": "{{GENDER:$2|غÙ\8aر|غÙ\8aرت}} $1 Ù\85ستÙ\88Ù\89 Ø­Ù\85اÙ\8aØ© $3 $4",
        "logentry-rights-rights": "{{GENDER:$2|غيّر|غيّرت}} $1 عضوية $3 من $4 إلى $5",
        "logentry-rights-rights-legacy": "{{GENDER:$2|غيّر|غيّرت}} $1 عضوية $3",
        "logentry-rights-autopromote": "تمت تلقائيا ترقية {{GENDER:$2|المستخدم|المستخدمة}} $1 من  $4 إلى $5",
        "searchsuggest-containing": "يحتوي...",
        "api-error-badaccess-groups": "لا يسمح لك بتحميل الملفات إلى هذه الويكي.",
        "api-error-badtoken": "خطأ داخلي: رمز مميز غير صحيح.",
+       "api-error-blocked": "لقد منعت من التحرير.",
        "api-error-copyuploaddisabled": "تم تعطيل تحميل من رابط على هذا الخادم.",
        "api-error-duplicate": "هناك {{PLURAL:$1|هو ملف آخر|كذلك$2 بعض الملفات الأخرى}} مسبقاً على الموقع بنفس المضمون.",
        "api-error-duplicate-archive": "هناك {{PLURAL:$1|كان ملف آخر |كذلك بعض الملفات الأخرى}} مسبقاً على الموقع بنفس المضمون، ولكن {{PLURAL:$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": "عربية موسعة",
        "mw-widgets-dateinput-no-date": "لا تاريخ تم اختياره",
        "mw-widgets-titleinput-description-new-page": "الصفحة غير موجودة بعد",
        "mw-widgets-titleinput-description-redirect": "تحويل إلى $1",
-       "api-error-blacklisted": "اختر عنوانا مختلفا ومفهوما.",
        "sessionmanager-tie": "لا يمكن جمع أنواع استيثاق متعددة: $1.",
        "sessionprovider-generic": "جلسات $1",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "جلسات قائمة على ملفات تعريف الارتباط (كوكيز)",
        "log-action-filter-rights-rights": "تغيير يدوي",
        "log-action-filter-upload-upload": "رفع جديد",
        "log-action-filter-upload-overwrite": "إعادة الرفع",
+       "authmanager-create-disabled": "إنشاء الحسابات معطل.",
+       "authmanager-create-from-login": "لإنشاء حساب، برجاء ملء الحقول أدناه.",
        "authmanager-email-label": "البريد الإلكتروني",
        "authmanager-email-help": "عنوان البريد الإلكتروني",
        "authmanager-realname-label": "الاسم الحقيقي",
index 9c7ef37..3907c46 100644 (file)
        "viewsource-title": "ܚܙܝ ܡܒܘܥܐ ܕ $1",
        "actionthrottled": "ܠܐ ܡܬܡܨܝܢܬܐ ܐܝܬܝܗܝ ܠܡܥܒܕ ܝܬܝܪ ܡܢ ܗܢܐ ܥܒܕܐ",
        "viewsourcetext": "ܡܨܐ ܐܢܬ ܕܬܚܙܐ ܘܬܢܣܚ ܠܡܒܘ̈ܥܐ ܕܗܕܐ ܦܐܬܐ:",
-       "protectedinterface": "ܗܕܐ ܦܐܬܐ ܡܘܬܪܐ ܟܬܝܒܬܐ ܕܦܐܬܐ ܠܚܘܪܙܐ ܒܗܢܐ ܘܝܩܝ, ܘܐܝܬܝܗܝ ܢܛܪܬܐ ܠܡܘܢܥ ܚܘܒܠܐ.\nܠܡܘܣܦ ܐܘ ܫܘܚܠܦ ܬܘܪ̈ܓܡܐ ܕܟܠܗܘܢ ܘܝܩܝ، ܐܦܠܚ [//translatewiki.net/ translatewiki.net]، ܬܪܡܝܬܐ ܕܬܘܪܓܡܐ ܕܡܝܕܝܐܘܝܩܝ.",
-       "editinginterface": "'''ܙܘܗܪܐ:''' ܐܢܬ ܬܫܚܠܦ ܦܐܬܐ ܕܡܬܦܠܚܬ ܒܚܙܝܐ ܟܬܝܒܝܐ ܕܬܚܪܙܬܐ.\nܟܠ ܫܘܚܠܦܐ ܒܦܐܬܐ ܗܕܐ ܢܗܘܐ ܠܗ ܡܥܒܕܢܘܬܐ ܥܠ ܐܣܟܡ ܦܐܬܐ ܕܡܦܠܚܢܐ ܕܡܦܠܚܢ̈ܐ ܐܚܪ̈ܢܐ ܒܘܝܩܝ ܗܢܐ.\nܠܡܘܣܦ ܐܘ ܫܘܚܠܦ ܬܘܪ̈ܓܡܐ ܕܟܠܗܘܢ ܘܝܩܝ، ܐܦܠܚ [//translatewiki.net/ translatewiki.net]، ܬܪܡܝܬܐ ܕܬܘܪܓܡܐ ܕܡܝܕܝܐܘܝܩܝ.",
+       "protectedinterface": "ܗܕܐ ܦܐܬܐ ܡܘܬܪܐ ܟܬܝܒܬܐ ܕܦܐܬܐ ܠܚܘܪܙܐ ܒܗܢܐ ܘܝܩܝ, ܘܐܝܬܝܗܝ ܢܛܪܬܐ ܠܡܘܢܥ ܚܘܒܠܐ.\nܠܡܘܣܦ ܐܘ ܫܘܚܠܦ ܬܘܪ̈ܓܡܐ ܕܟܠܗܘܢ ܘܝܩܝ، ܐܦܠܚ [https://translatewiki.net/ translatewiki.net]، ܬܪܡܝܬܐ ܕܬܘܪܓܡܐ ܕܡܝܕܝܐܘܝܩܝ.",
+       "editinginterface": "'''ܙܘܗܪܐ:''' ܐܢܬ ܬܫܚܠܦ ܦܐܬܐ ܕܡܬܦܠܚܬ ܒܚܙܝܐ ܟܬܝܒܝܐ ܕܬܚܪܙܬܐ.\nܟܠ ܫܘܚܠܦܐ ܒܦܐܬܐ ܗܕܐ ܢܗܘܐ ܠܗ ܡܥܒܕܢܘܬܐ ܥܠ ܐܣܟܡ ܦܐܬܐ ܕܡܦܠܚܢܐ ܕܡܦܠܚܢ̈ܐ ܐܚܪ̈ܢܐ ܒܘܝܩܝ ܗܢܐ.\nܠܡܘܣܦ ܐܘ ܫܘܚܠܦ ܬܘܪ̈ܓܡܐ ܕܟܠܗܘܢ ܘܝܩܝ، ܐܦܠܚ [https://translatewiki.net/ translatewiki.net]، ܬܪܡܝܬܐ ܕܬܘܪܓܡܐ ܕܡܝܕܝܐܘܝܩܝ.",
        "namespaceprotected": "ܠܝܬ ܠܟ ܦܣܣܐ ܠܫܚܠܦܬܐ ܕܦܐܬܬ̈ܐ ܒܚܩܠܐ ܕ'''$1'''.",
        "exception-nologin": "ܠܝܬܝܟ ܥܠܝܠܐ",
        "logouttext": "'''ܗܫܐ ܦܠܛܠܟ ܡܢ ܚܘܫܒܢܟ.'''\n\nܡܨܬ ܐܦܠܚܬ {{SITENAME}} ܐܝܟ ܡܦܠܚܢܐ ܠܐ ܝܕܝܥܐ ܐܘ ܡܨܬ ܕ<span class='plainlinks'>[$1 ܬܥܘܠ]</span> ܒܚܘܫܒܢܐ ܥܝܢܗ ܐܘ ܐܝܟ ܡܦܠܚܢܐ ܐܚܪܢܐ.\n\nܚܕ ܟܡܐ ܡܢ ܦܐܬܬ̈ܐ ܡܬܚܙܝܢ ܐܝܟ ܕܗܘ ܐܢܬ ܥܠܝܠܐ ܐܝܬܝܟ ܥܕܡܐ ܕܐܣܦܩܬ ܠܦܐܬܬ̈ܐ ܠܒܝܟܬ̈ܐ ܕܡܦܐܬܢܐ ܕܝܠܟ.",
        "cachedspecial-refresh-now": "ܚܙܝ ܐܚܪܝ ܟܠ",
        "categories": "ܣܕܪ̈ܐ",
        "categoriesfrom": "ܚܘܝ ܣܕܪ̈ܐ ܕܫܪܝܢ ܒ:",
-       "special-categories-sort-count": "ܛܟܣ ܒܡܢܝܢܐ",
-       "special-categories-sort-abc": "ܛܟܣ ܗܓܝܢܐܝܬ",
        "deletedcontributions": "ܫܘܬܦܘ̈ܬܐ ܫܝ̈ܦܬܐ ܕܡܦܠܚܢܐ",
        "deletedcontributions-title": "ܫܘܬܦܘ̈ܬܐ ܫܝ̈ܦܬܐ ܕܡܦܠܚܢܐ",
        "sp-deletedcontributions-contribs": "ܫܘܬܦܘ̈ܬܐ",
        "version-poweredby-others": "ܐܚܪ̈ܢܐ",
        "version-software-version": "ܨܚܚܐ",
        "fileduplicatesearch": "ܒܨܝ ܥܠ ܠܦܦ̈ܐ ܥܦܝܦ̈ܐ",
-       "fileduplicatesearch-legend": "ܒܨܝܐ ܥܠ ܥܘܦܦܐ",
        "fileduplicatesearch-filename": "ܫܡܐ ܕܠܦܦܐ:",
        "fileduplicatesearch-submit": "ܒܨܝ",
        "fileduplicatesearch-info": "$1 × $2 ܦܩܣܠ<br /> ܥܓܪܐ ܕܠܦܦܐ: $3<br /> ܐܕܫܐ ܕ MIME: $4",
index 36e80bf..6893166 100644 (file)
        "rclistfrom": "Adkintun weke kalekünun amuamugelu $3 $2",
        "rcshowhideminor": "$1 pichi wirin",
        "rcshowhidebots": "$1 kiduamukelu küdauwe",
+       "rcshowhidebots-show": "Pengelün",
        "rcshowhideliu": "$1 konkülelu kellufe",
        "rcshowhideanons": "$1 üyngenulu kellufe",
        "rcshowhidepatr": "$1 pukintulu kalekünun",
        "block-log-flags-hiddenname": "Üy kellufe ellkan",
        "move-page": "Nengümün $1",
        "move-page-legend": "Nengümün wülngiñ",
-       "movearticle": "Nengümün wülngiñ",
        "newtitle": "We üy püle",
        "move-watch": "Llaytun tüfachi pakina",
        "movepagebtn": "Nengümün pakina",
        "movelogpage": "Nengümün wirintukun",
        "revertmove": "wüñoeltun",
-       "delete_and_move": "Ñamümün ka nengümün",
        "delete_and_move_confirm": "May, ñamümün pakina",
        "export": "Wiñamün pakina",
        "allmessagesname": "Üy",
index 44a3679..3dfb6ab 100644 (file)
        "protectedpagetext": "هاد الصفحة راهي تنحضات باش ما تتبدّلش ولا شي حاجاخرة.",
        "viewsourcetext": "تنجم تشوف ولا تنسّح المصدر تاع هاد الصفحة:",
        "viewyourtext": "تنجم تشوف و تنسّخ المصدر تاع <strong>التبدالات تاعك</strong> ف هاد الصفحة:",
-       "protectedinterface": "هاد الباجة توفّر لك وريشة (interface) تاع كتابة مديورة لل صوفتوار الّي ف هاد الويكي، و راهي مأمّنة باش تنحضا من الضرارات.\nباش تزيد ولا تبدّل طرجمات ل كامل الويكيّات، من فضلك استعمل [//translatewiki.net/ translatewiki.net] المشروع ميدياويكي تاع التبلادات.",
+       "protectedinterface": "هاد الباجة توفّر لك وريشة (interface) تاع كتابة مديورة لل صوفتوار الّي ف هاد الويكي، و راهي مأمّنة باش تنحضا من الضرارات.\nباش تزيد ولا تبدّل طرجمات ل كامل الويكيّات، من فضلك استعمل [https://translatewiki.net/ translatewiki.net] المشروع ميدياويكي تاع التبلادات.",
        "editinginterface": "<strong>ردّ بالك:</strong>راك تبدّل صفحة الّمديورة باش تصنع النصّ تاع الواجهة تاع اللوجيسيال. التبدالات على هاد الصفحة غادي يوتّرو على الشكَل تاع الواجهة حتا عند المستعمليين لخرين.",
-       "translateinterface": "باش تزيد ولا تبدّل الطرجمات ل كامل الويكيّات، استعمل [//translatewiki.net/ translatewiki.net]، المشروع تاع التبلاد تاع الميديويكي.",
+       "translateinterface": "باش تزيد ولا تبدّل الطرجمات ل كامل الويكيّات، استعمل [https://translatewiki.net/ translatewiki.net]، المشروع تاع التبلاد تاع الميديويكي.",
        "cascadeprotected": "الپاجة هادي راهي محضيّة من التبدال خاطرش راهي مضمونة فل {{PLURAL:$1|باجة|باجات}} هادي الّي بداتها محضيّة بل خاصيّة تاع \"احضي تاني الپاجات المضمونة\":$2.",
        "namespaceprotected": "ما عندكش الحقّ باش تبدّل الپاجات الّي بل وسَع تاع التسميّة <strong>$1</strong>.",
        "customcssprotected": "ما عندكش السراح باش تبدّل الپاجة css هادي خاطرش راه مكمون فيها شي توجادات شخصيّة تاع مستعملي وحداخُر.",
        "resetpass-temp-password": "كلمت` سرّ مأقّتة:",
        "resetpass-abort-generic": "التبدال تاعع كلمت` السرّ راه تحبّس علاجال وحد المزيودة (extension).",
        "resetpass-expired": "كلمت` السرّ تاعك راه كمَل الصلوح تاعها. الله يحفضك اختار كلمت` سرّ جديدة.",
-       "resetpass-expired-soft": "كلمت` السرّ تاعك راهي كملت الصلوحيّة تاعها و لازم لها تتبدّل.\nالله يعيّشك، اختار كلمت` سرّ جديدة من ضركا، ولا كليكي على \"{{int:resetpass-submit-cancel}}\" باش تبدّلها منبعَد.",
-       "resetpass-validity-soft": "كلمت` السرّ تاعك ماشي صالحة: $1\nالله يخلّيك اختار كلمت` سرّ ضركا، ولا كليكي على \"{{int:resetpass-submit-cancel}}\" باش تبدّلها منبعَد.",
+       "resetpass-expired-soft": "كلمت` السرّ تاعك راهي كملت الصلوحيّة تاعها و لازم لها تتبدّل.\nالله يعيّشك، اختار كلمت` سرّ جديدة من ضركا، ولا كليكي على \"{{int:authprovider-resetpass-skip-label}}\" باش تبدّلها منبعَد.",
+       "resetpass-validity-soft": "كلمت` السرّ تاعك ماشي صالحة: $1\nالله يخلّيك اختار كلمت` سرّ ضركا، ولا كليكي على \"{{int:authprovider-resetpass-skip-label}}\" باش تبدّلها منبعَد.",
        "passwordreset": "صفّي كلمت` السرّ",
        "passwordreset-text-one": "كمّل هاد الجدوال تاع الإختيارات باش تلحق لك كلمت` سرّ جديدة بل إيمال.",
        "passwordreset-text-many": "{{PLURAL:$1|عمّر واحد من هاد قويبسات باش تلحق لك كلمت` سرّ جديدة بل إيمال.}}",
index e9c1986..74c6dec 100644 (file)
        "protectedpagetext": "had sfha mhmiya bach mataadlch baqi",
        "viewsourcetext": "imkn lik  tchof otcopie lmasdar dyak had sfha",
        "protectedinterface": "had ṣfḫa ka-ṫĝti n-naṣṣ dl-interface dial l-logiciel, o-raḫa mḫmiyya baċ maymknċ ṫṫĥrab.",
-       "editinginterface": "'''ṫḫdir:''' rak ka-ĝddal waḫd ṣ-ṣfḫa lli msṫĝmla baċ ṫĝti n-naṣṣ dl-interface dial l-logiciel. ṫĥyiraṫ fiha ġadi ṫ'aṫṫar ĝla l-mḍhr dial l-interface dl-mosṫaĥdim ĝnd l-mosṫaĥdimin l-aĥrin. l-ttarjamaṫ, ċoflik mĝa [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], the MediaWiki localisation project.",
+       "editinginterface": "'''ṫḫdir:''' rak ka-ĝddal waḫd ṣ-ṣfḫa lli msṫĝmla baċ ṫĝti n-naṣṣ dl-interface dial l-logiciel. ṫĥyiraṫ fiha ġadi ṫ'aṫṫar ĝla l-mḍhr dial l-interface dl-mosṫaĥdim ĝnd l-mosṫaĥdimin l-aĥrin. l-ttarjamaṫ, ċoflik mĝa [https://translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], the MediaWiki localisation project.",
        "cascadeprotected": "had ṣfḫa mḫmiyya mn ṫĝdil, ḫqaċ fiha {{PLURAL:$1|ṣfḫa|ṣfaḫi}} mḫmiyya mĝa l-option \"cascading\" ĥḍḍama:\n$2",
        "namespaceprotected": "ma msmoh-likċ baċ ṫĝddl ṣfahi mn n-nitaq '''$1'''.",
        "customcssprotected": "ma msmoh-likċ baċ ṫĝddl had ṣfḫa d-CSS, ḫqaċ fiha iĝdadaṫ ċĥṣiyya dial ċi mosṫĥdim aĥoṛ.",
index 3138245..38bba71 100644 (file)
        "actionthrottledtext": "علشان نمنع ال سبام ،أنت ممنوع تعمل  الفعل دا عدد كبير من المرات فى فترة زمنية قصيرة، و انت ا تجاوزت  الحد دا . لو سمحت تحاول مرة ثانية بعد دقائق.",
        "protectedpagetext": "الصفحة دى اتحمت من التعديل.",
        "viewsourcetext": "ممكن تشوف وتنسخ مصدر الصفحه دى",
-       "protectedinterface": "الصفحة دى هى اللى بتوفر نص الواجهة بتاعة البرنامج،وهى مقفولة لمنع التخريب.\nعلشان إضافة أو تغيير الترجمات لجميع مشاريع الويكي،  لو سمحت روح على [//translatewiki.net/ translatewiki.net]، مشروع ترجمة ميدياويكى",
-       "editinginterface": "<strong>تحذير</strong> : أنت بتعدل صفحة بتستخدم فى الواجهة النصية  بتاعة البرنامج. \nالتغييرات فى الصفحة دى ها تأثر على مظهر واجهة اليوزر لليوزرز التانيين. \nعلشان إضافة أو تغيير الترجمات لجميع مشاريع الويكي،  لو سمحت روح على [//translatewiki.net/ translatewiki.net]، مشروع ترجمة ميدياويكى",
+       "protectedinterface": "الصفحة دى هى اللى بتوفر نص الواجهة بتاعة البرنامج،وهى مقفولة لمنع التخريب.\nعلشان إضافة أو تغيير الترجمات لجميع مشاريع الويكي،  لو سمحت روح على [https://translatewiki.net/ translatewiki.net]، مشروع ترجمة ميدياويكى",
+       "editinginterface": "<strong>تحذير</strong> : أنت بتعدل صفحة بتستخدم فى الواجهة النصية  بتاعة البرنامج. \nالتغييرات فى الصفحة دى ها تأثر على مظهر واجهة اليوزر لليوزرز التانيين. \nعلشان إضافة أو تغيير الترجمات لجميع مشاريع الويكي،  لو سمحت روح على [https://translatewiki.net/ translatewiki.net]، مشروع ترجمة ميدياويكى",
        "cascadeprotected": "الصفحة دى محمية من التعديل، بسبب انها مدمجة فى {{PLURAL:$1|الصفحة|الصفحتين|الصفحات}} دي، اللى مستعمل فيها خاصية \"حماية الصفحات المدمجة\" :\n$2",
        "namespaceprotected": "ما عندكش صلاحية تعديل الصفحات  اللى فى نطاق '''$1'''.",
        "ns-specialprotected": "الصفحات المخصوصة مش ممكن تعديلها.",
        "allmessagesname": "اسم",
        "allmessagesdefault": "النص الاوتوماتيكي",
        "allmessagescurrent": "النص دلوقتى",
-       "allmessagestext": "دى لستة برسايل النظام المتوفرة فى نطاق ميدياويكي.\nلو سمحت تزور[https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation ترجمة ميدياويكي] و [//translatewiki.net بيتاويكي] لو كنت عايز تساهم فى ترجمة ميدياويكى الاصلية.",
+       "allmessagestext": "دى لستة برسايل النظام المتوفرة فى نطاق ميدياويكي.\nلو سمحت تزور[https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation ترجمة ميدياويكي] و [https://translatewiki.net بيتاويكي] لو كنت عايز تساهم فى ترجمة ميدياويكى الاصلية.",
        "allmessagesnotsupportedDB": "الصفحة دى مش يمكن حد يستعملها علشان'''$wgUseDatabaseMessages''' متعطل.",
        "allmessages-filter-legend": "فيلتر",
        "allmessages-filter": "فلتره بحالة التهيئه:",
index 7a33b8c..941b518 100644 (file)
        "protectedpagetext": "সম্পাদনা ৰোধ কৰিবলৈ এই পৃষ্ঠাটো সুৰক্ষিত কৰা হৈছে।",
        "viewsourcetext": "আপুনি এই পৃষ্ঠাটোৰ উৎস চাব আৰু প্ৰতিলিপি কৰিব পাৰে।",
        "viewyourtext": "আপুনি <strong>আপোনাৰ সম্পাদনাসমূহ</strong>ৰ উৎস চাব আৰু এই পৃষ্ঠালৈ প্ৰতিলিপি কৰিব পাৰে।",
-       "protectedinterface": "এই পৃষ্ঠাই ৱিকি ছফ্টৱেৰৰ ইণ্টাৰফে’চ বাৰ্তা প্ৰদান কৰে আৰু ইয়াক সুৰক্ষিত কৰি ৰখা হৈছে।\nসকলো ৱিকিৰ বাবে অনুবাদ যোগ কৰিবলৈ বা সলাবলৈ অনুগ্ৰহ কৰি মিডিয়াৱিকি স্থানীয়কৰণ প্ৰকল্প [//translatewiki.net/ translatewiki.net] ব্যৱহাৰ কৰক।",
+       "protectedinterface": "এই পৃষ্ঠাই ৱিকি ছফ্টৱেৰৰ ইণ্টাৰফে’চ বাৰ্তা প্ৰদান কৰে আৰু ইয়াক সুৰক্ষিত কৰি ৰখা হৈছে।\nসকলো ৱিকিৰ বাবে অনুবাদ যোগ কৰিবলৈ বা সলাবলৈ অনুগ্ৰহ কৰি মিডিয়াৱিকি স্থানীয়কৰণ প্ৰকল্প [https://translatewiki.net/ translatewiki.net] ব্যৱহাৰ কৰক।",
        "editinginterface": "<strong>সাৱধানবাণী:</strong> আপুনি সম্পাদনা কৰি থকা পৃষ্ঠাটো এই ছফ্টৱেৰৰ ইণ্টাৰফে’চ বাৰ্তা দিবলৈ ব্যৱহাৰ হয়।\nএই পৃষ্ঠাৰ সাল-সলনিয়ে এই ৱিকিত আন ব্যৱহাৰকাৰীৰ বাবে ইণ্টাৰফে’চত প্ৰভাৱ পেলাব।",
        "translateinterface": "সকলো ৱিকিৰ বাবে অনুবাদ যোগ বা সালসলনি কৰিবৰ বাবে অনুগ্ৰহ কৰি মিডিয়াৱিকি স্থানীয়কৰণ প্ৰকল্প //translatewiki.net/ translatewiki.net] ব্যৱহাৰ কৰক।",
        "cascadeprotected": "এই পৃষ্ঠাটো সম্পাদনাৰ পৰা সুৰক্ষিত কাৰণ এই {{PLURAL:$1|পৃষ্ঠা, যিটো|পৃষ্ঠা, যিবোৰ}} \"প্ৰপাতাকাৰ\" (cascading) বিকল্পৰ সহযোগত সুৰক্ষিত কৰা হৈছে: \n$2",
        "resetpass-temp-password": "অস্থায়ী গুপ্তশব্দ:",
        "resetpass-abort-generic": "এটা এক্সটেন্‌ছনৰদ্বাৰা গুপ্তশব্দ সলনি কাৰ্য বাতিল কৰা হৈছে।",
        "resetpass-expired": "আপোনাৰ গুপ্তশব্দৰ ম্যাদ উকলি গৈছে। অনুগ্ৰহ কৰি প্ৰৱেশৰ বাবে এটা নতুন গুপ্তশব্দ নিৰ্ধাৰণ কৰক।",
-       "resetpass-expired-soft": "আপোনাৰ গুপ্তশব্দৰ ম্যাদ উকলি গৈছে আৰু নতুন এটা নিৰ্ধাৰণ কৰাৰ প্ৰয়োজন। অনুগ্ৰহ কৰি এতিয়া এটা নতুন গুপ্তশব্দ বাছনি কৰক বা পিছত নিৰ্ধাৰণ কৰিবলৈ \"{{int:resetpass-submit-cancel}}\" বুটামত ক্লিক কৰক।",
-       "resetpass-validity-soft": "আপোনাৰ গুপ্তশব্দ বৈধ নহয়: $1\n\nঅনুগ্ৰহ কৰি এটা নতুন গুপ্তশব্দ বাছনি কৰক, বা ইয়াক পাছত সলাবলৈ \"{{int:resetpass-submit-cancel}}\" ক্লিক কৰক।",
+       "resetpass-expired-soft": "আপোনাৰ গুপ্তশব্দৰ ম্যাদ উকলি গৈছে আৰু নতুন এটা নিৰ্ধাৰণ কৰাৰ প্ৰয়োজন। অনুগ্ৰহ কৰি এতিয়া এটা নতুন গুপ্তশব্দ বাছনি কৰক বা পিছত নিৰ্ধাৰণ কৰিবলৈ \"{{int:authprovider-resetpass-skip-label}}\" বুটামত ক্লিক কৰক।",
+       "resetpass-validity-soft": "আপোনাৰ গুপ্তশব্দ বৈধ নহয়: $1\n\nঅনুগ্ৰহ কৰি এটা নতুন গুপ্তশব্দ বাছনি কৰক, বা ইয়াক পাছত সলাবলৈ \"{{int:authprovider-resetpass-skip-label}}\" ক্লিক কৰক।",
        "passwordreset": "গুপ্তশব্দ ন-কৈ বহুৱাওক",
        "passwordreset-text-one": "আপোনাৰ গুপ্তশব্দ ন-কৈ বহুৱাবলৈ এই প্ৰপত্ৰ পূৰণ কৰক।",
        "passwordreset-text-many": "{{PLURAL:$1|ইমেইলত এটা অস্থায়ী গুপ্তশব্দ পাবলৈ এই তথ্যসমূহৰ যিকোনো এটা দিয়ক।}}",
        "allmessagesname": "নাম",
        "allmessagesdefault": "সাধাৰণ বাৰ্তা পাঠ্য",
        "allmessagescurrent": "বৰ্তমানৰ বাৰ্তাৰ পাঠ",
-       "allmessagestext": "মিডিয়াৱিকি নামস্থানত থকা প্ৰণালী বাৰ্তাসমূহৰ তালিকা ইয়াত দিয়া হৈছে ।\nযদি আপুনি মিডিয়াৱিকিৰ স্থানীয়কৰণত আগ্ৰহী, তেন্তে অনুগ্ৰহ কৰি [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation মিডিয়াৱিকি স্থানীয়কৰণ] আৰু [//translatewiki.net translatewiki.net] চাওক ।",
+       "allmessagestext": "মিডিয়াৱিকি নামস্থানত থকা প্ৰণালী বাৰ্তাসমূহৰ তালিকা ইয়াত দিয়া হৈছে ।\nযদি আপুনি মিডিয়াৱিকিৰ স্থানীয়কৰণত আগ্ৰহী, তেন্তে অনুগ্ৰহ কৰি [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation মিডিয়াৱিকি স্থানীয়কৰণ] আৰু [https://translatewiki.net translatewiki.net] চাওক ।",
        "allmessagesnotsupportedDB": "এই পৃষ্ঠা ব্যৱহাৰ কৰিব নোৱাৰি কাৰণ '''$wgUseDatabaseMessages''' নিষ্ক্ৰিয় কৰা হৈছে ।",
        "allmessages-filter-legend": "ছেকনী",
        "allmessages-filter": "স্বনিৰ্বাচন অৱস্থাৰে পৰিস্ৰাৱন কৰক:",
index fe87d88..dde90d0 100644 (file)
        "morenotlisted": "M519x539S14402488x485S1440a481x461S22b04503x509 M534x542S2ff00482x483S26500520x505S20e00521x526S1f540493x518 M531x531S14c30506x469S2a204508x503S2a21c470x503S14c38470x469 S38800464x496",
        "mypage": "M531x516S15a37501x485S1f550507x492S20e00487x496S26a02470x489",
        "mytalk": "M522x522S15a37478x479S10041485x492S20600500x492",
-       "anontalk": "M522x522S15a37478x479S10041485x492S20600500x492 M536x521S2ff00482x483S10011515x491S28108515x461 M508x525S10004493x475S22a04494x510 M517x524S19220496x477S14051483x500 M534x519S1f70a475x499S1f702512x499S22f10466x481S20e00494x483S22f00509x481",
+       "anontalk": "M522x522S15a37478x479S10041485x492S20600500x492",
        "navigation": "M523x527S1ce40501x472S1ce48478x472S28800510x505S28818479x505 M531x516S15a37501x485S1f550507x492S20e00487x496S26a02470x489",
        "and": "&#32;M543x512S14c02458x489S26506496x492S18500519x494",
        "qbfind": "M546x525S2ff00482x483S16d10492x505S2e502519x502",
        "createacct-reason": "M547x518S30a00482x483S22124511x473S1c517522x483",
        "createacct-reason-ph": "M532x519S20302493x485S2030a489x502S21100509x504S26900516x482S26910468x501 M535x520S1f550465x505S2a208489x480S1f530511x505 M518x517S15a30482x489S1f750484x484S20500496x506S22a04505x495 M547x518S30a00482x483S22124511x473S1c517522x483 S38900464x493",
        "createacct-submit": "M532x519S20302493x485S2030a489x502S21100509x504S26900516x482S26910468x501 M507x523S15a28494x496S26500493x477 M518x517S15a30482x489S1f750484x484S20500496x506S22a04505x495",
-       "createacct-another-submit": "M532x519S20302493x485S2030a489x502S21100509x504S26900516x482S26910468x501 M535x520S1f550465x505S2a208489x480S1f530511x505 M518x517S15a30482x489S1f750484x484S20500496x506S22a04505x495",
+       "createacct-another-submit": "M532x519S20302493x485S2030a489x502S21100509x504S26900516x482S26910468x501 M518x517S15a30482x489S1f750484x484S20500496x506S22a04505x495",
        "createacct-benefit-heading": "M533x545S14250501x455S14258468x479S2eb00518x489S2eb4c470x513 M514x533S19a20486x468S27106495x493 M508x523S10040493x493S26500493x477 M532x519S20302493x485S2030a489x502S21100509x504S26900516x482S26910468x501 {{SITENAME}} S38800464x496",
        "createacct-benefit-body1": "{{PLURAL:$1|M521x532S10609498x496S10621487x512S21100500x483S2df20479x468}}",
        "createacct-benefit-body2": "{{PLURAL:$1|M531x512S15a37501x488S1f550507x495S20e00487x499S26502469x498|M531x516S15a37501x485S1f550507x492S20e00487x496S26a02470x489}}",
        "thumbnail_error": "M527x521S10059473x479S10051497x479S20e00494x491S22a04493x506 M532x519S20302493x485S2030a489x502S21100509x504S26900516x482S26910468x501 M515x512S1f010486x488S2f900502x507 M523x564S15a20476x537S2ff00482x483S22b03490x519S16d10506x491S20500491x546 M547x518S30a00482x483S22124511x473S1c517522x483 S38900464x493 $1",
        "thumbnail_error_remote": "M518x526S2ff00482x483S19a00487x506 M523x533S1c148482x467S1c110497x472S20e00494x512S26a06509x506S26a12477x506 M530x529S10018470x471S10641507x501S26505486x480S21600500x494 $1 S38700463x496\n$2",
        "importlogpage": "M534x518S1852f466x482S18527486x483S2d60c505x505 M518x536S15a37483x465S18550493x476S15a37483x509S15a51486x513",
-       "tooltip-pt-userpage": "M507x523S15a28494x496S26500493x477 M526x522S15a56499x510S11520503x479S20e00489x496S26a02474x489 M531x512S15a37501x488S1f550507x495S20e00487x499S26502469x498",
-       "tooltip-pt-mytalk": "M507x523S15a28494x496S26500493x477 M522x522S15a37478x479S10041485x492S20600500x492 M531x512S15a37501x488S1f550507x495S20e00487x499S26502469x498",
-       "tooltip-pt-preferences": "M507x523S15a28494x496S26500493x477 M525x542S1c507500x517S20600478x519S2ff00482x483",
+       "tooltip-pt-userpage": "{{GENDER:|M507x523S15a28494x496S26500493x477 M526x522S15a56499x510S11520503x479S20e00489x496S26a02474x489}} M531x512S15a37501x488S1f550507x495S20e00487x499S26502469x498",
+       "tooltip-pt-mytalk": "{{GENDER:|M507x523S15a28494x496S26500493x477}} M522x522S15a37478x479S10041485x492S20600500x492 M531x512S15a37501x488S1f550507x495S20e00487x499S26502469x498",
+       "tooltip-pt-preferences": "{{GENDER:|M507x523S15a28494x496S26500493x477}} M525x542S1c507500x517S20600478x519S2ff00482x483",
        "tooltip-pt-watchlist": "M524x555S15a37494x531S1f550500x538S20e00480x542S26502462x541S30a00482x483 M518x610S14402481x556S1440a474x532S22b04496x580S30a00482x483 M532x561S18049468x526S18041507x526S20500486x550S20500504x550S30a00482x483 M518x591S10609493x555S10621482x571S21100495x542S2df20474x527S30a00482x483 S38700463x496 M508x523S10040493x493S26500493x477 M526x524S10e50511x494S26500510x476S10e58475x494S26510477x476",
-       "tooltip-pt-mycontris": "M508x523S10040493x493S26500493x477 M531x521S1f437507x491S22113512x480S22115469x480S1f43f472x491 M519x539S14402488x485S1440a481x461S22b04503x509",
+       "tooltip-pt-mycontris": "{{GENDER:|M508x523S10040493x493S26500493x477}} M531x521S1f437507x491S22113512x480S22115469x480S1f43f472x491 M519x539S14402488x485S1440a481x461S22b04503x509",
        "tooltip-pt-login": "M532x519S18240508x504S18248469x504S26500512x482S26510475x482 M538x521S2a200497x480S20b00462x508S11530523x482S15a37462x483S11551470x493 S38700463x496 M538x517S10021495x496S10029476x496S2880a516x483S28812463x483 M534x542S2ff00482x483S26500520x505S20e00521x526S1f540493x518 M513x532S15a48488x468S10a40498x486S26524490x517",
        "tooltip-pt-logout": "M538x518S2a208496x483S15a37462x483S11530523x487S11551470x493",
        "tooltip-pt-createaccount": "M532x519S18240508x504S18248469x504S26500512x482S26510475x482 M532x519S20302493x485S2030a489x502S21100509x504S26900516x482S26910468x501 M518x517S15a30482x489S1f750484x484S20500496x506S22a04505x495 M538x521S2a200497x480S20b00462x508S11530523x482S15a37462x483S11551470x493 S38700463x496 M538x517S10021495x496S10029476x496S2880a516x483S28812463x483 M534x542S2ff00482x483S26500520x505S20e00521x526S1f540493x518 M513x532S15a48488x468S10a40498x486S26524490x517",
        "api-error-unknownerror": "M536x518S2ff00482x483S15a11513x486S28108513x453 M518x526S2ff00482x483S19a00487x506 S38700463x496 $1",
        "expandtemplates": "M554x524S14c40530x477S14c48446x493S26506515x490S26512468x508S20340495x490S20348487x507 M510x522S15c10490x513S16d12490x495S22a04494x478",
        "expand_templates_ok": "M515x525S17620499x475S14020485x495",
-       "log-name-pagelang": "M521x532S10609498x496S10621487x512S21100500x483S2df20479x468 M563x515S1dc50505x485S1dc58473x485S26606533x499S26612438x499 M518x536S15a37483x465S18550493x476S15a37483x509S15a51486x513"
+       "log-name-pagelang": "M563x515S1dc50505x485S1dc58473x485S26606533x499S26612438x499 M521x532S10609498x496S10621487x512S21100500x483S2df20479x468 M518x536S15a37483x465S18550493x476S15a37483x509S15a51486x513"
 }
index 6ee3dc7..2bb324b 100644 (file)
@@ -12,7 +12,8 @@
                        "아라",
                        "Fitoschido",
                        "Macofe",
-                       "Matma Rex"
+                       "Matma Rex",
+                       "Tokvo"
                ]
        },
        "tog-underline": "Sorrayar enllaces:",
        "protectedpagetext": "Esta páxina ta candada pa torgar ediciones y otres aiciones.",
        "viewsourcetext": "Pues ver y copiar la fonte d'esta páxina.",
        "viewyourtext": "Pues ver y copiar la fonte de <strong>les tos ediciones</strong> d'esta páxina.",
-       "protectedinterface": "Esta páxina proporciona'l testu de la interfaz del software d'esta wiki, y ta candada pa torgar abusos.\nP'amestar o cambiar les traducciones de toles wikis, por favor usa [//translatewiki.net/translatewiki.net], el proyeutu de llocalización de MediaWiki.",
+       "protectedinterface": "Esta páxina proporciona'l testu de la interfaz del software d'esta wiki, y ta candada pa torgar abusos.\nP'amestar o cambiar les traducciones de toles wikis, por favor usa [https://translatewiki.net/translatewiki.net], el proyeutu de llocalización de MediaWiki.",
        "editinginterface": "<strong>Avisu:</strong> Tas editando una páxina que s'usa pa proporcionar el testu de la interfaz del programa.\nLos cambeos nesta páxina afeutarán al aspeutu de la interfaz pa otros usuarios d'esta wiki.",
-       "translateinterface": "P'amestar o camudar les traducciones pa toles wikis, usa [//translatewiki.net/ translatewiki.net], el proyeutu de traducción de MediaWiki.",
+       "translateinterface": "P'amestar o camudar les traducciones pa toles wikis, usa [https://translatewiki.net/ translatewiki.net], el proyeutu de traducción de MediaWiki.",
        "cascadeprotected": "Esta páxina ta protexida d'ediciones porque ta trescluída {{PLURAL:$1|na siguiente páxina, protexida|nes siguientes páxines, protexíes}} cola opción «en cascada» activada:\n$2",
        "namespaceprotected": "Nun tienes permisu pa editar páxines nel espaciu de nomes '''$1'''.",
        "customcssprotected": "Nun tienes permisu pa editar esta páxina CSS porque contien preferencies personales d'otru usuariu.",
        "password-change-forbidden": "Nun se pueden camudar les contraseñes nesta wiki.",
        "externaldberror": "O hebo un fallu d'autenticación de la base de datos o nun tienes permisu p'anovar la to cuenta esterna.",
        "login": "Entrar",
+       "login-security": "Comprobación d'identidá",
        "nav-login-createaccount": "Entrar / crear cuenta",
        "userlogin": "Entrar / crear cuenta",
        "userloginnocreate": "Aniciar sesión",
        "userlogin-resetpassword-link": "¿Escaeció la contraseña?",
        "userlogin-helplink2": "Ayuda del aniciu de sesión",
        "userlogin-loggedin": "Yá anició sesión como {{GENDER:$1|$1}}.\nUtilice'l formulariu de más abaxo p'aniciar sesión como otru usuariu.",
+       "userlogin-reauth": "Tienes d'aniciar sesión de nueves pa comprobar que yes {{GENDER:$1|$1}}.",
        "userlogin-createanother": "Crear otra cuenta",
        "createacct-emailrequired": "Direición de corréu electrónicu",
        "createacct-emailoptional": "Direición de corréu electrónicu (opcional)",
        "createacct-email-ph": "Escriba la so direición de corréu electrónicu",
        "createacct-another-email-ph": "Escriba la direición de corréu electrónicu",
        "createaccountmail": "Usar una contraseña al debalu temporal y unviala a la direición de corréu electrónicu conseñada",
+       "createaccountmail-help": "Pue usase pa crear una cuenta pa otra persona ensin saber la contraseña.",
        "createacct-realname": "Nome real (opcional)",
        "createaccountreason": "Motivu:",
        "createacct-reason": "Motivu",
        "createacct-reason-ph": "Por qué quier crear otra cuenta",
+       "createacct-reason-help": "Mensaxe que s'amuesa nel rexistru de creación de cuentes",
        "createacct-submit": "Crear la cuenta",
        "createacct-another-submit": "Crear una cuenta",
+       "createacct-continue-submit": "Siguir cola creación de la cuenta",
+       "createacct-another-continue-submit": "Siguir cola creación de la cuenta",
        "createacct-benefit-heading": "{{SITENAME}} failu xente como vusté.",
        "createacct-benefit-body1": "{{PLURAL:$1|edición|ediciones}}",
        "createacct-benefit-body2": "{{PLURAL:$1|páxina|páxines}}",
        "nocookiesnew": "La cuenta d'usuariu ta creada, pero nun anició sesión.\n{{SITENAME}} usa «cookies» pa identificar a los usuarios.\nTien les «cookies» desactivaes.\nPor favor activeles y anicie sesión col nuevu nome d'usuariu y contraseña.",
        "nocookieslogin": "{{SITENAME}} usa «cookies» pa identificar a los usuarios.\nTien les «cookies» desactivaes.\nPor favor activeles y vuelva a intentalo.",
        "nocookiesfornew": "La cuenta nun se creó porque nun pudimos confirmar l'orixe.\nComprueba que tienes activaes les «cookies», recarga esta páxina y vuelvi a intentalo.",
+       "createacct-loginerror": "La cuenta creóse correchamente, pero nun pudo aniciase sesión automáticamente. Sigui col [[Special:UserLogin|accesu manual]].",
        "noname": "Nun conseñasti un nome d'usuariu válidu.",
        "loginsuccesstitle": "Identificáu",
        "loginsuccess": "'''Aniciasti sesión en {{SITENAME}} como «$1».'''",
        "createacct-another-realname-tip": "El nome real ye opcional.\nSi decide conseñalu, va usase p'atribuir el trabayu al usuariu.",
        "pt-login": "Entrar",
        "pt-login-button": "Aniciar sesión",
+       "pt-login-continue-button": "Siguir l'aniciu de sesión",
        "pt-createaccount": "Crear una cuenta",
        "pt-userlogout": "Salir",
        "php-mail-error-unknown": "Fallu desconocíu na función mail() de PHP.",
        "botpasswords-invalid-name": "El nome d'usuariu especificáu nun contien el separador de contraseña de bot («$1»).",
        "botpasswords-not-exist": "L'usuariu «$1» nun tien una contraseña de bot llamada «$2».",
        "resetpass_forbidden": "Nun puen camudase les contraseñes",
+       "resetpass_forbidden-reason": "Les contraseñes nun pueden camudase: $1",
        "resetpass-no-info": "Tienes d'aniciar sesión pa entrar direutamente a esta páxina.",
        "resetpass-submit-loggedin": "Camudar la contraseña",
        "resetpass-submit-cancel": "Encaboxar",
        "resetpass-temp-password": "Contraseña temporal:",
        "resetpass-abort-generic": "Una estensión encaboxó'l cambiu de la contraseña.",
        "resetpass-expired": "La so contraseña caducó. Defina una nueva contraseña p'aniciar sesión.",
-       "resetpass-expired-soft": "La so contraseña caducó y tien de reaniciala. Escueya una contraseña nueva, o calque «{{int:resetpass-submit-cancel}}» pa reaniciala más sero.",
-       "resetpass-validity-soft": "La so contraseña nun ye válida: $1\n\nEscueya una contraseña nueva, o calque «{{int:resetpass-submit-cancel}}» pa reaniciala más sero.",
+       "resetpass-expired-soft": "La so contraseña caducó y tien de reaniciala. Escueya una contraseña nueva, o calque «{{int:authprovider-resetpass-skip-label}}» pa reaniciala más sero.",
+       "resetpass-validity-soft": "La so contraseña nun ye válida: $1\n\nEscueya una contraseña nueva, o calque «{{int:authprovider-resetpass-skip-label}}» pa reaniciala más sero.",
        "passwordreset": "Reaniciar contraseña",
        "passwordreset-text-one": "Complete esti formulariu pa reaniciar la contraseña.",
        "passwordreset-text-many": "{{PLURAL:$1|Rellene unu de los campos pa recibir una contraseña temporal per corréu.}}",
        "passwordreset-emailsentusername": "Si hai una direición de corréu electrónicu asociada con esti nome d'usuariu, unviaráse un corréu electrónicu pa reaniciar la contraseña.",
        "passwordreset-emailsent-capture": "Unvióse un corréu electrónicu pa reaniciar la contraseña, que s'amuesa abaxo.",
        "passwordreset-emailerror-capture": "Unvióse un corréu electrónicu pa reaniciar la contraseña, que s'amuesa abaxo, pero falló l'unviu {{GENDER:$2|al usuariu|a la usuaria}}: $1",
+       "passwordreset-invalideamil": "Direición de corréu inválida",
+       "passwordreset-nodata": "Nun s'apurrió nin un nome d'usuariu nin una dirección de corréu electrónicu",
        "changeemail": "Camudar o desaniciar la dirección de corréu electrónicu",
        "changeemail-header": "Completa esti formulariu pa camudar la dirección de corréu electrónicu. Si quies desaniciar l'asociación de cualquier dirección de corréu electrónicu de la to cuenta, dexa en blancu la nueva dirección de corréu electrónicu cuando unvies el formulariu.",
        "changeemail-passwordrequired": "Vas tener qu'escribir la contraseña pa confirmar esti cambéu.",
        "accmailtext": "Unvióse a $2 una contraseña xenerada al debalu pal usuariu [[User talk:$1|$1]]. Pue camudase na páxina ''[[Special:ChangePassword|camudar contraseña]]'' depués d'aniciar sesión.",
        "newarticle": "(Nuevu)",
        "newarticletext": "Siguisti un enllaz a un artículu qu'inda nun esiste.\nPa crear la páxina, empecipia a escribir nel cuadru d'embaxo (mira la [$1 páxina d'ayuda] pa más información).\nSi llegasti equí por enquivocu, calca nel botón <strong>atrás</strong> del to restolador.",
-       "anontalkpagetext": "----\n''Esta ye la páxina d'alderique pa un usuariu anónimu qu'inda nun creó una cuenta o que nun la usa.''\nPola mor d'ello ha usase la direición numbérica IP pa identificalu/la.\nTala IP pue compartise por varios usuarios.\nSi yes un usuariu anónimu y notes qu'hai comentarios irrelevantes empobinaos pa ti, por favor [[Special:CreateAccount|crea una cuenta]] o [[Special:CreateAccount|identifícate]] pa torgar futures confusiones con otros usuarios anónimos.",
+       "anontalkpagetext": "----\n''Esta ye la páxina d'alderique pa un usuariu anónimu qu'inda nun creó una cuenta o que nun la usa.''\nPola mor d'ello ha usase la direición numbérica IP pa identificalu/la.\nTala IP pue compartise por varios usuarios.\nSi yes un usuariu anónimu y notes qu'hai comentarios irrelevantes empobinaos pa ti, por favor [[Special:CreateAccount|crea una cuenta]] o [[Special:UserLogin|anicia sesiín]] pa torgar futures confusiones con otros usuarios anónimos.",
        "noarticletext": "Nestos momentos nun hai testu nesta páxina.\nPuedes [[Special:Search/{{PAGENAME}}|buscar esti títulu de páxina]] n'otres páxines,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} buscar los rexistros rellacionaos],\no [{{fullurl:{{FULLPAGENAME}}|action=edit}} crear esta páxina]</span>.",
        "noarticletext-nopermission": "Nestos momentos nun hai testu nesta páxina.\nPue [[Special:Search/{{PAGENAME}}|buscar esti títulu de páxina]] n'otres páxines o <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} buscar los rexistros rellacionaos]</span>, pero nun tiene permisu pa crear esta páxina.",
        "missing-revision": "La revisión #$1 de la páxina llamada \"{{FULLPAGENAME}}\" nun esiste.\n\nDe vezu la causa d'esto ye siguir un enllaz antiguu del historial a una páxina que se desanició.\nSe puen alcontrar más detalles nel [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} rexistru de desanicios].",
        "upload-http-error": "Hebo un error HTTP: $1",
        "upload-copy-upload-invalid-domain": "La xubida de copies nun ta disponible dende esti dominiu.",
        "upload-foreign-cant-upload": "Esta wiki nun ta configurada pa xubir ficheros al estoyu de ficheros esternu solicitáu.",
+       "upload-foreign-cant-load-config": "Falló la carga de la configuración de xuba de ficheros pal estoyu esternu de ficheros.",
+       "upload-dialog-disabled": "Nesta wiki tán desactivaes les xubíes de ficheros por aciu d'esti diálogu.",
        "upload-dialog-title": "Xubir ficheru",
        "upload-dialog-button-cancel": "Encaboxar",
        "upload-dialog-button-done": "Fecho",
        "apisandbox": "Zona de pruebes API",
        "apisandbox-jsonly": "Necesítase JavaScript pa usar la zona de pruebes de la API.",
        "apisandbox-api-disabled": "La API ta desactivada nesti sitiu.",
-       "apisandbox-intro": "Usa esta páxina pa esperimentar cola <strong>API de serviciu web de MediaWiki</strong>.\nConsulta [[mw:API:Main page|la documentación de la API]] pa más detalles tocante al so usu. Exemplu: [//www.mediawiki.org/wiki/API#A_simple_example llamar al conteníu d'una Páxina principal]. Seleiciona una aición pa ver más exemplos.\n\nTen presente que, anque esto ye una zona de pruebes, les aiciones que faigas nesta páxina puen camudar la wiki.",
+       "apisandbox-intro": "Usa esta páxina pa esperimentar cola <strong>API de serviciu web de MediaWiki</strong>.\nConsulta [[mw:API:Main page|la documentación de la API]] pa más detalles tocante al so usu. Exemplu: [https://www.mediawiki.org/wiki/API#A_simple_example llamar al conteníu d'una Páxina principal]. Seleiciona una aición pa ver más exemplos.\n\nTen presente que, anque esto ye una zona de pruebes, les aiciones que faigas nesta páxina puen camudar la wiki.",
        "apisandbox-fullscreen": "Espander el panel",
        "apisandbox-fullscreen-tooltip": "Espander el panel de la zona de pruebes pa llenar la pantalla del navegador.",
        "apisandbox-unfullscreen": "Amosar la páxina",
        "rollbacklinkcount": "revertir $1 {{PLURAL:$1|edición|ediciones}}",
        "rollbacklinkcount-morethan": "revertir más de $1 {{PLURAL:$1|edición|ediciones}}",
        "rollbackfailed": "Falló la reversión",
+       "rollback-missingparam": "Faltan parámetros riquíos na solicitú.",
        "cantrollback": "Nun se pue revertir la edición; el postrer collaborador ye l'únicu autor d'esta páxina.",
        "alreadyrolled": "Nun se pue revertir la postrer edición de [[:$1]] fecha por [[User:$2|$2]] ([[User talk:$2|alderique]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]);\ndaquién más yá editó o revirtió la páxina.\n\nLa postrer edición foi fecha por [[User:$3|$3]] ([[User talk:$3|alderique]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
        "editcomment": "El resume de la edición yera: <em>$1</em>.",
        "revertpage": "Revertíes les ediciones de [[Special:Contributions/$2|$2]] ([[User talk:$2|alderique]]) hasta la cabera versión de [[User:$1|$1]]",
        "revertpage-nouser": "Revertíes les ediciones de (usuariu desaniciáu) a la cabera revisión de {{GENDER:$1|[[User:$1|$1]]}}",
        "rollback-success": "Revertíes les ediciones de $1; camudáu a la última versión de $2.",
+       "rollback-success-notify": "Revertíes les ediciones de $1 a la última revisión de $2. [$3 Ver cambeos]",
        "sessionfailure-title": "Fallu de sesión",
        "sessionfailure": "Paez qu'hai un problema cola to sesión; por precaución\ncancelóse l'aición que pidisti. Da-y al botón \"Atrás\" del\nnavegador pa cargar otra vuelta la páxina y vuelve a intentalo.",
        "changecontentmodel": "Cambiar el modelu de conteníu d'una páxina",
        "sp-contributions-username": "Direición IP o nome d'usuariu:",
        "sp-contributions-toponly": "Amosar namái les ediciones que son les caberes revisiones",
        "sp-contributions-newonly": "Amosar namái les ediciones que son creaciones de páxines",
+       "sp-contributions-hideminor": "Despintar les ediciones menores",
        "sp-contributions-submit": "Buscar",
        "whatlinkshere": "Lo qu'enllaza equí",
        "whatlinkshere-title": "Páxines qu’enllacien a «$1»",
        "whatlinkshere-prev": "{{PLURAL:$1|anterior|anteriores $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|siguiente|siguientes $1}}",
        "whatlinkshere-links": "← enllaces",
-       "whatlinkshere-hideredirs": "$1 redireiciones",
-       "whatlinkshere-hidetrans": "$1 tresclusiones",
-       "whatlinkshere-hidelinks": "$1 enllaces",
+       "whatlinkshere-hideredirs": "$1 les redireiciones",
+       "whatlinkshere-hidetrans": "$1 les tresclusiones",
+       "whatlinkshere-hidelinks": "$1 los enllaces",
        "whatlinkshere-hideimages": "$1 los enllaces al ficheru",
        "whatlinkshere-filters": "Peñeres",
        "whatlinkshere-submit": "Dir",
        "allmessagesname": "Nome",
        "allmessagesdefault": "Testu predetermináu",
        "allmessagescurrent": "Testu actual",
-       "allmessagestext": "Esta ye una llista de los mensaxes de sistema disponibles nel espaciu de nomes de MediaWiki.\nPor favor visita [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Llocalización de MediaWiki] y [//translatewiki.net translatewiki.net] si quies contribuyer a la llocalización xenérica de MediaWiki.",
+       "allmessagestext": "Esta ye una llista de los mensaxes de sistema disponibles nel espaciu de nomes de MediaWiki.\nPor favor visita [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Llocalización de MediaWiki] y [https://translatewiki.net translatewiki.net] si quies contribuyer a la llocalización xenérica de MediaWiki.",
        "allmessagesnotsupportedDB": "Nun pue usase '''{{ns:special}}:Allmessages''' porque '''$wgUseDatabaseMessages''' ta deshabilitáu.",
        "allmessages-filter-legend": "Peñerar",
        "allmessages-filter": "Peñerar por estáu de personalización:",
        "confirm-watch-top": "¿Amestar esta páxina a la to llista de vixilancia?",
        "confirm-unwatch-button": "Aceutar",
        "confirm-unwatch-top": "¿Desaniciar esta páxina de la to llista de vixilancia?",
+       "confirm-rollback-button": "Aceutar",
+       "confirm-rollback-top": "¿Revertir les ediciones a esta páxina?",
        "quotation-marks": "«$1»",
        "imgmultipageprev": "← páxina anterior",
        "imgmultipagenext": "páxina siguiente →",
        "table_pager_limit_label": "Elementos por páxina:",
        "table_pager_limit_submit": "Dir",
        "table_pager_empty": "Nun hai resultaos",
-       "autosumm-blank": "Desaniciáu el conteníu de la páxina",
+       "autosumm-blank": "Desaniciáu'l conteníu de la páxina",
        "autosumm-replace": "Sustituyendo la páxina por '$1'",
        "autoredircomment": "Redirixendo a [[$1]]",
        "autosumm-new": "Páxina creada con «$1»",
        "mw-widgets-dateinput-placeholder-month": "AAAA-MM",
        "mw-widgets-titleinput-description-new-page": "la páxina inda nun esiste",
        "mw-widgets-titleinput-description-redirect": "redirixir a $1",
-       "api-error-blacklisted": "Escueyi un títulu distintu, más descriptivu.",
        "sessionmanager-tie": "Nun puen combinase dellos tipos de solicitú d'identificación: $1.",
        "sessionprovider-generic": "sesiones $1",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "sesiones basaes en cookies",
        "log-action-filter-newusers": "Tipu de creación de cuenta:",
        "log-action-filter-patrol": "Tipu de patrulla:",
        "log-action-filter-protect": "Tipu de proteición:",
-       "log-action-filter-rights": "Tipu de cambéu de permisos",
-       "log-action-filter-suppress": "Tipu de supresión",
+       "log-action-filter-rights": "Tipu de cambéu de permisos:",
+       "log-action-filter-suppress": "Tipu de supresión:",
        "log-action-filter-upload": "Tipu de carga:",
        "log-action-filter-all": "Too",
        "log-action-filter-block-block": "Bloquéu",
        "log-action-filter-suppress-block": "Supresión d'usuariu por bloquéu",
        "log-action-filter-suppress-reblock": "Supresión d'usuariu por rebloquéu",
        "log-action-filter-upload-upload": "Nueva carga",
-       "log-action-filter-upload-overwrite": "Recargar"
+       "log-action-filter-upload-overwrite": "Recargar",
+       "authmanager-authn-no-primary": "Les credenciales apurríes nun pudieron autentificase.",
+       "authmanager-authn-no-local-user": "Les credenciales apurríes nun tán asociaes con nengún usuariu nesta wiki.",
+       "authmanager-authn-autocreate-failed": "Falló la creación automática d'una cuenta local: $1",
+       "authmanager-authplugin-setpass-bad-domain": "Dominiu inválidu.",
+       "authmanager-autocreate-noperm": "Nun se permite la creación automática de cuentes.",
+       "authmanager-autocreate-exception": "La creación automática de cuentes desactivóse temporalmente por cuenta d'errores previos.",
+       "authmanager-userdoesnotexist": "La cuenta d'usuariu «$1» nun ta rexistrada.",
+       "authmanager-userlogin-remembermypassword-help": "Si tien de recordase la contraseña por más tiempu del que dura la sesión.",
+       "authmanager-username-help": "Nome d'usuariu pa l'autenticación.",
+       "authmanager-password-help": "Contraseña pa l'autenticación.",
+       "authmanager-domain-help": "Dominiu pa l'autenticación esterna.",
+       "authmanager-retype-help": "Otra vuelta la contraseña pa confirmar.",
+       "authmanager-email-label": "Corréu",
+       "authmanager-email-help": "Direición de corréu electrónicu",
+       "authmanager-realname-label": "Nome real",
+       "authmanager-realname-help": "Nome real del usuariu",
+       "authmanager-provider-password": "Autenticación basada en contraseña",
+       "authmanager-provider-password-domain": "Autenticación basada en contraseña y dominiu",
+       "authmanager-provider-temporarypassword": "Contraseña temporal",
+       "authprovider-resetpass-skip-label": "Saltar",
+       "authprovider-resetpass-skip-help": "Saltar el reaniciu de la contraseña.",
+       "specialpage-securitylevel-not-allowed-title": "Nun ta permitío",
+       "credentialsform-account": "Nome de la cuenta:",
+       "cannotlink-no-provider-title": "Nun hai cuentes enllazables",
+       "cannotlink-no-provider": "Nun hai cuentes enllazables.",
+       "linkaccounts": "Enllazar cuentes",
+       "linkaccounts-success-text": "Enllazóse la cuenta.",
+       "linkaccounts-submit": "Enllazar cuentes",
+       "unlinkaccounts": "Desenllazar cuentes",
+       "unlinkaccounts-success": "Desenllazóse la cuenta."
 }
index 2bacf2a..dca9dfe 100644 (file)
@@ -13,9 +13,9 @@
                ]
        },
        "tog-underline": "Линкал гъоркьмухъизе",
-       "tog-hideminor": "ЧIахIиял хиса-басиязул сияхIалда дагьа-макъал хиса-басиял рахчизе",
-       "tog-showtoolbar": "Хиса-басиял гьарулеб мехалда тIасияб алатазул панель бихьизабизе",
-       "tog-editondblclick": "КIиго щелчоказдалъун гьемералъул хиса-баси гьабизе",
+       "tog-hideminor": "ЧӀахӀиял хиса-басиязул сияхӀалда дагьа-макъал хиса-басиял рахчизе",
+       "tog-showtoolbar": "Хиса-басиял гьарулеб мехалда тӀасияб алатазул панель бихьизабизе",
+       "tog-editondblclick": "КӀиго кӀутӀиялдалъун гьумералъул хиса-баси гьабизе",
        "tog-oldsig": "Гьанжесеб гъулбас",
        "underline-always": "Кидаго",
        "underline-never": "Киданиги",
        "wednesday": "АрбагӀ",
        "thursday": "Хамиз",
        "friday": "Рузман",
-       "saturday": "Шаммат",
-       "sun": "Ð\93Ñ\8cаÑ\82I",
+       "saturday": "Щамат",
+       "sun": "Ð\91акÑ\8a",
        "mon": "Итн",
        "tue": "Тал",
        "wed": "Арб",
        "thu": "Хам",
        "fri": "Руз",
        "sat": "Шам",
-       "january": "Январ",
-       "february": "Феврал",
+       "january": "Январь",
+       "february": "Февраль",
        "march": "Март",
-       "april": "Апрел",
+       "april": "Апрель",
        "may_long": "Май",
-       "june": "Июн",
-       "july": "Июл",
+       "june": "Июнь",
+       "july": "Июль",
        "august": "Август",
-       "september": "Сентябр",
-       "october": "Октябр",
-       "november": "Ноябр",
-       "december": "Декабр",
-       "january-gen": "Январ",
-       "february-gen": "Феврал",
+       "september": "Сентябрь",
+       "october": "Октябрь",
+       "november": "Ноябрь",
+       "december": "Декабрь",
+       "january-gen": "Январь",
+       "february-gen": "Февраль",
        "march-gen": "Март",
-       "april-gen": "Апрел",
+       "april-gen": "Апрель",
        "may-gen": "Май",
-       "june-gen": "Июн",
-       "july-gen": "Июл",
+       "june-gen": "Июнь",
+       "july-gen": "Июль",
        "august-gen": "Август",
-       "september-gen": "Сентябр",
-       "october-gen": "Октябр",
-       "november-gen": "Ноябр",
-       "december-gen": "Декабр",
+       "september-gen": "Сентябрь",
+       "october-gen": "Октябрь",
+       "november-gen": "Ноябрь",
+       "december-gen": "Декабрь",
        "jan": "Янв",
        "feb": "Фев",
        "mar": "Мар",
        "oct": "Окт",
        "nov": "Ноя",
        "dec": "Дек",
-       "january-date": "Январ $1",
-       "february-date": "Феврал $1",
+       "january-date": "Январь $1",
+       "february-date": "Февраль $1",
        "march-date": "Март $1",
-       "april-date": "Апрел $1",
+       "april-date": "Апрель $1",
        "may-date": "Май $1",
-       "june-date": "Июн $1",
-       "july-date": "Июл $1",
+       "june-date": "Июнь $1",
+       "july-date": "Июль $1",
        "august-date": "Август $1",
-       "september-date": "Сентябр $1",
-       "october-date": "Октябр $1",
-       "november-date": "Ноябр $1",
-       "december-date": "Декабр $1",
+       "september-date": "Сентябрь $1",
+       "october-date": "Октябрь $1",
+       "november-date": "Ноябрь $1",
+       "december-date": "Декабрь $1",
        "pagecategories": "{{PLURAL:$1|1=Категория|Категориял}}",
        "category_header": "Категориялда «$1» гьумер",
-       "subcategories": "Ð\9fодкатегориял",
+       "subcategories": "Ð\93Ñ\8aоÑ\80кÑ\8cкатегориял",
        "category-media-header": "Категориялда «$1» файл",
-       "category-empty": "\"ГьабсагIаталъ гьаб категория чIобого буго.\"",
+       "category-empty": "<em>ГьабсагӀаталъ гьаб категория чӀобого буго.</em>",
        "hidden-categories": "{{PLURAL:$1|1=Бахчараб категория|Рахчарал категориял}}",
        "hidden-category-category": "Рахчарал категориял",
        "listingcontinuesabbrev": "(жеги)",
-       "about": "Программаялъул хIакъалъулъ",
-       "cancel": "НахъчIвазе",
+       "about": "Программаялъул хӀакъалъулъ",
+       "newwindow": "&nbsp;(цӀияб гордоялда)",
+       "cancel": "НахъчӀвазе",
        "moredotdotdot": "Жеги...",
-       "morenotlisted": "Гьаб сияхI цIураб гьечIо",
+       "morenotlisted": "Гьаб сияхӀ цӀураб гьечӀо",
        "mypage": "Гьумер",
-       "mytalk": "Бахlс",
+       "mytalk": "БахӀс",
        "navigation": "Навигация",
        "and": "&#32;ва",
-       "qbfind": "ЦIехезе",
+       "qbfind": "ЦӀехезе",
        "qbbrowse": "Балагьизе",
        "qbedit": "Хисизабизе",
        "qbpageoptions": "Гьемералъул рекъезаби",
        "qbmyoptions": "Дур рекъезаби",
        "faq": "FAQ",
-       "errorpagetitle": "Гъалатl",
+       "namespaces": "ЦӀаразул сияхӀ",
+       "variants": "БатIи-батIиял",
+       "navigation-heading": "Навигация",
+       "errorpagetitle": "ГъалатӀ",
        "tagline": "{{grammar:genitive|{{SITENAME}}}} сайталдасан материал",
        "help": "Кумек",
-       "search": "ЦIеÑ\85езе",
-       "searchbutton": "ЦIеÑ\85езе",
+       "search": "Ð¥Ñ\8aиÑ\80Ñ\89изе",
+       "searchbutton": "Ð¥Ñ\8aиÑ\80Ñ\89изе",
        "go": "Ине",
        "searcharticle": "Ине",
        "history": "Хиса-басазул тарих",
        "history_short": "Тарих",
-       "printableversion": "Ð\9aÑ\83Ñ\82Ó\80изе версия",
-       "permalink": "Ð\9aидагоÑ\8fб линк",
-       "print": "Ð\9a\83Ñ\82Iизе",
+       "printableversion": "Ð\91аÑ\81малÑ\8aÑ\83л версия",
+       "permalink": "Ð\94аимаб линк",
+       "print": "Ð\91аÑ\81маÑ\8fлда Ð±Ð°Ñ\85Ñ\8aизе",
        "view": "Балагьи",
        "view-foreign": "$1 сайталда балагьизе",
        "edit": "Хисизабизе",
        "create": "Гьабизе",
        "editthispage": "Гьаб гьубер хисизабизе",
        "create-this-page": "Гьаб гьаб гьумер гьабизе",
-       "delete": "Ð\91аÑ\86\86Iине",
-       "deletethispage": "Ð\93Ñ\8cаб Ð³Ñ\8cÑ\83меÑ\80 Ð±Ð°Ñ\86Iине",
+       "delete": "Ð\9dаÑ\85Ñ\8aе Ð±Ð°Ñ\86Ó\80Ñ\86Ó\80ине",
+       "deletethispage": "Ð\93Ñ\8cаб Ð³Ñ\8cÑ\83меÑ\80 Ð½Ð°Ñ\85Ñ\8aе Ð±Ð°Ñ\86Ó\80Ñ\86Ó\80ине",
        "undeletethispage": "Гьаб гьумер цӀигьабизе",
        "undelete_short": "{{PLURAL:$1|$1 хиса-баси|1=Хиса-баси}} цӀигьабизе",
-       "viewdeleted_short": "{{PLURAL:$1|$1 бацӀцӀараб хиса-баси|$1 рацӀцӀарал хиса-басиязда|бацӀцӀараб хиса-баси}} балагьизе",
+       "viewdeleted_short": "{{PLURAL:$1|$1 бацӀцӀараб хиса-баси|бацӀцӀараб хиса-баси|$1 рацӀцӀарал хиса-басиязда}} балагьизе",
        "protect": "Хиса-басияздасан цIунизе",
        "protect_change": "хисизе",
+       "protectthispage": "Гьаб гьумер цIунизе",
        "unprotect": "ЦӀуни хисизе",
        "unprotectthispage": "Гьаб гьумералъул цӀуни хисизабизе",
        "newpage": "ЦIияб гьумер",
        "specialpage": "Хъулухъияб гьумер",
        "personaltools": "Дур алатал",
        "articlepage": "Балагьизе макъалаялда",
-       "talk": "Бахlс",
+       "talk": "БахІс",
        "views": "Балагьиял",
        "toolbox": "Алатал",
        "userpage": "ГӀахьалчиясул гьумер",
+       "projectpage": "Проекталъул гьумералъухъ балагьизе",
        "imagepage": "Файлалъул гьумер балагьизе",
        "mediawikipage": "Кагъаталъул гьумер балагьизе",
        "otherlanguages": "Цоги мацӀазда",
+       "redirectedfrom": "(«$1» гьемералдасан гьаниб битӀана)",
        "redirectpagesub": "Цоги гьумералда сверизабураб гьумер",
+       "redirectto": "Редирект:",
        "lastmodifiedat": "Ахирисеб нухалъ гьаб гьумералъул хиса-баси гьабуна:  $2, $1.",
        "protectedpage": "ЦӀунараб гьумер",
        "jumpto": "КӀанцӀизе:",
-       "jumptonavigation": "Ð\9dавигация",
-       "jumptosearch": "Ñ\86IеÑ\85езе",
+       "jumptonavigation": "навигация",
+       "jumptosearch": "Ñ\85Ñ\8aиÑ\80Ñ\89изе",
        "pool-errorunknown": "Лъалареб гъалатӀ",
-       "aboutsite": "{{grammar:genitive|{{SITENAME}}}} хӀакъалъулъ",
+       "aboutsite": "{{SITENAME}} хӀакъалъулъ",
+       "aboutpage": "Project:ХӀакъалъулъ",
        "currentevents": "Жакъасел лъугьа-бахъинал",
+       "currentevents-url": "Project:Гьанжесел лъугьа-бахъинал",
+       "disclaimers": "Жавабчилъиялдасан инкар гьаби",
+       "disclaimerpage": "Project:Жавабчилъиялдасан инкар гьаби",
        "edithelp": "Хисизабиялъе кумек",
+       "helppage-top-gethelp": "Кумек",
        "mainpage": "БетӀераб гьумер",
        "mainpage-description": "БетӀераб гьумер",
        "policy-url": "Project:КъагӀидаби",
-       "portal": "Ð\96амагIаÑ\82алÑ\8aÑ\83л портал",
+       "portal": "Ð\96амгÓ\80иÑ\8fб портал",
        "portal-url": "Project:Майдан",
        "privacy": "Конфиденциальносталъул сиясат",
        "privacypage": "Project:Конфиденциальносталъул сиясат",
        "confirmable-yes": "У",
        "confirmable-no": "Гуро",
        "viewdeleted": "$1 балагьизеищ?",
+       "site-atom-feed": "$1 — Atom-сияхӀ",
+       "red-link-title": "$1 (гьединаб гьумер гьечӀо)",
        "nstab-main": "Гьумер",
-       "nstab-user": "ГIахьалчи",
+       "nstab-user": "ГӀахьалчи",
        "nstab-media": "Мультимедиа",
        "nstab-special": "Хъулухъияб гьумер",
-       "nstab-project": "Проект хIакъалъулъ",
+       "nstab-project": "Проекталъул хӀакъалъулъ",
        "nstab-image": "Файл",
        "nstab-mediawiki": "Кагъат",
        "nstab-template": "Шаблон",
        "nstab-help": "Кумек",
        "nstab-category": "Категория",
-       "error": "Гъалатl",
-       "databaseerror-error": "ГъалатI: $1",
-       "internalerror": "Жанисеб гъалатl",
-       "badtitle": "Бегьулареб цIар",
+       "mainpage-nstab": "БетІераб",
+       "error": "ГъалатӀ",
+       "databaseerror": "Баяназул кьучIалъул гъалатI",
+       "databaseerror-function": "Функция: $1",
+       "databaseerror-error": "ГъалатӀ: $1",
+       "laggedslavemode": "КIвар кье: гьумералда рукIинчIого рукIине бегьула ахирисел хиса-басиял",
+       "readonly": "Баяназул кьучI рахан буго",
+       "missingarticle-rev": "(цIидасан хал гьаби#: $1)",
+       "missingarticle-diff": "(БатIалъи: $1, $2)",
+       "internalerror": "Жанисеб гъалатӀ",
+       "internalerror_info": "Жанисеб гъалатӀ: $1",
+       "badtitle": "Бегьулареб цӀар",
        "viewsource": "Вики-текст балагьизе",
        "viewsource-title": "$1 гьумералъул вики-текст балагьизе",
-       "exception-nologin": "Мун жаниве лъугьун гьечIо",
+       "exception-nologin": "Мун жаниве лъугьун гьечӀо",
        "exception-nologin-text": "Жаниве лъугьине ккола.",
        "yourname": "ХӀалтӀизабулчиясул цӀар:",
        "userlogin-yourname": "ХӀалтӀизабулчиясул цӀар",
-       "userlogin-yourname-ph": "Ð\94Ñ\83Ñ\80 Ð°ÐºÐºÐ°Ñ\83нÑ\82алÑ\8aÑ\83л Ñ\86Ó\80аÑ\80 Ñ\85Ñ\8aвае",
+       "userlogin-yourname-ph": "Ð\94Ñ\83Ñ\80 Ð°ÐºÐºÐ°Ñ\83нÑ\82алÑ\8aÑ\83л Ñ\86Ó\80аÑ\80 Ñ\85Ñ\8aвай",
        "createacct-another-username-ph": "ГӀахьалчиясул цӀар хъвай",
        "yourpassword": "Пароль:",
        "userlogin-yourpassword": "Пароль",
-       "userlogin-yourpassword-ph": "Ð\94Ñ\83Ñ\80 Ð¿Ð°Ñ\80олÑ\8c Ñ\85Ñ\8aвае",
-       "createacct-yourpassword-ph": "Ð\94Ñ\83Ñ\80 Ð¿Ð°Ñ\80олÑ\8c Ñ\85Ñ\8aвае",
+       "userlogin-yourpassword-ph": "Ð\94Ñ\83Ñ\80 Ð¿Ð°Ñ\80олÑ\8c Ñ\85Ñ\8aвай",
+       "createacct-yourpassword-ph": "Ð\94Ñ\83Ñ\80 Ð¿Ð°Ñ\80олÑ\8c Ñ\85Ñ\8aвай",
        "yourpasswordagain": "Пароль такрар гьабе:",
-       "userlogin-remembermypassword": "Системалда чӀезе",
+       "createacct-yourpasswordagain": "Пароль ритIухъ гьабе",
+       "createacct-yourpasswordagain-ph": "Пароль цоги нухалъ хъвай",
+       "remembermypassword": "Дир цIарги парольги гьаб компьютералда цIунизе (гIицIго $1 {{PLURAL:$1|къоялъ}})",
+       "userlogin-remembermypassword": "Системаялда чӀезе",
        "yourdomainname": "Дур домен:",
+       "password-change-forbidden": "Гьаб викиялда пароль хисизабун бажаруларо дуда.",
        "login": "Жаниве лъугьине",
        "nav-login-createaccount": "Жаниве лъугьине / аккаунт гьабизе",
        "userlogin": "Жаниве лъугьине / аккаунт гьабизе",
        "userloginnocreate": "Жаниве лъугьине",
-       "logout": "Къватlиве вачIизе",
-       "userlogout": "Къватlиве лъугьине",
-       "notloggedin": "Мун жаниве лъугьун гьечIо",
-       "userlogin-noaccount": "Дур аккаунт гьечIебищ?",
-       "nologin": "Дур аккаунт гьечIебищ? $1.",
+       "logout": "КъватӀиве лъугьине",
+       "userlogout": "КъватӀиве лъугьине",
+       "notloggedin": "Мун жаниве лъугьун гьечӀо",
+       "userlogin-noaccount": "Дур аккаунт гьечӀебищ?",
+       "userlogin-joinproject": "Проекталда гӀахьаллъизе",
+       "nologin": "Дур аккаунт гьечӀебищ? $1.",
        "nologinlink": "Аккаунт гьабизе",
        "createaccount": "Аккаунт гьабизе",
-       "gotaccount": "Ð\94Ñ\83Ñ\80 Ð°ÐºÐºÐ°Ñ\83нÑ\82 Ð±Ñ\83гиÑ\88? $1.",
+       "gotaccount": "Ð\94Ñ\83Ñ\80 Ð°ÐºÐºÐ°Ñ\83нÑ\82 Ð±Ñ\83гебиÑ\89? $1.",
        "gotaccountlink": "Жаниве лъугьине",
+       "userlogin-resetlink": "Жаниве лъугьине рихьизарулел баяналищ кIочарал?",
+       "userlogin-resetpassword-link": "Паролищ кIочараб?",
+       "userlogin-helplink2": "Жаниве лъугьине кумек",
+       "userlogin-loggedin": "Мун жаниве лъугьана {{GENDER:$1|$1}} хIисабалда.\nГъоркьехун бугеб форма хIалтIизабе, цоги цIаралда гъоркь жаниве лъугьине.",
+       "userlogin-createanother": "Цоги аккаунт гьабизе",
+       "createacct-emailrequired": "Электронияб почтаялъул адрес",
+       "createacct-emailoptional": "Электронияб почтаялъул адрес (чара гьечIого къваригIунеб гуро)",
+       "createacct-email-ph": "Дурго электронияб почтаялъул адрес хъвай",
+       "createacct-another-email-ph": "Электронияб почтаялъул адрес хъвай",
+       "createacct-realname": "Унго-унгояб цIар (чара гьечIого къваригIунеб гуро)",
+       "createaccountreason": "ГIилла:",
+       "createacct-reason": "ГIилла",
+       "createacct-reason-ph": "Щай дуца цогияб аккаунт гIуцIулеб бугеб",
+       "createacct-submit": "Аккаунт гIуцIизе",
+       "createacct-another-submit": "Цоги аккаунт гIуцIизе",
+       "createacct-benefit-heading": "{{SITENAME}} гӀуцӀун буго нужго гӀадинал гӀадамаца.",
+       "createacct-benefit-body1": "{{PLURAL:$1|хиса-баси}}",
+       "createacct-benefit-body2": "{{PLURAL:$1|гьумер}}",
+       "createacct-benefit-body3": "Ахирисеб заманаялда жаниб {{PLURAL:$1|гIахьалчи}}",
+       "badretype": "Дуца рихьизарурал паролал данде кколел гьечIо",
+       "userexists": "Бихьизабураб гIахьалчиясул цIар цогияс хIалтIизабулеб буго.\nБегьулеб батани, дуего батIияб цIар бище.",
        "loginsuccesstitle": "Жаниве лъугьана",
+       "loginlanguagelabel": "МацӀ: $1",
+       "pt-login": "Жаниве лъугьине",
+       "pt-login-button": "Жаниве лъугьине",
+       "pt-createaccount": "Аккаунт рагьизе",
+       "pt-userlogout": "КъватӀиве инзе",
+       "passwordreset": "Парол хисизе",
        "resettokens-tokens": "Токенал:",
+       "italic_sample": "Курсивалъулаб хъвай",
+       "italic_tip": "Курсивалъулаб хъвай",
+       "link_sample": "Линкалъул бетӀер",
+       "link_tip": "Жанисаб линк",
+       "headline_sample": "БетIералъул текст",
+       "headline_tip": "2-еб даражаялъул бетIер",
        "media_tip": "Файлалъе линк",
        "sig_tip": "Дур гъулбас ва гьабсагӀаталъ заман",
-       "summary": "ХиÑ\81а-баÑ\81иÑ\8fзÑ\83л ÐºÑ\83Ñ\86:",
+       "summary": "Ð\94Ñ\83Ñ\86а Ð³Ñ\8cаÑ\80Ñ\83Ñ\80ал Ñ\85иÑ\81а-баÑ\81иÑ\8fл:",
        "subject": "Тема/бетӀер",
        "minoredit": "Дагьа-макъаб хиса-баси",
        "watchthis": "Гьаб гьумералда хадуб хал кквезе",
        "savearticle": "Хъвай-хъвай цӀунизе",
-       "preview": "ЦIебесеб",
+       "preview": "Цебесеб",
        "showpreview": "Цин балагьизе",
-       "showdiff": "Хисараб жо балагьизе",
+       "showdiff": "Гьарурал хиса-басиял",
+       "loginreqlink": "Жаниве лъугьине",
+       "newarticle": "(ЦIияб)",
        "updated": "(ЦӀигьабуна)",
        "note": "<strong>ХӀужа:</strong>",
        "previewnote": "<strong>КӀочоге, мун гьабсагӀаталъ балагьула вуго макъалаялъул букӀине бугеб куцалъухъ.</strong>\nДуца гьарурал хиса-басиял цӀунун гьечӀо!",
-       "continue-editing": "Ð\96егиги Ñ\85иÑ\81изабизе",
+       "continue-editing": "ЧIезе Ñ\82еÑ\87Iого Ð¶ÐµÐ³Ð¸Ð³Ð¸ Ñ\85иÑ\81а-баÑ\81иÑ\8fл Ð³Ñ\8cаÑ\80и",
        "editing": "Хисизаби $1",
        "creating": "Гьабула буго цӀияб гьумер - $1",
        "editingsection": "$1 (бутӀа) хисизаби",
        "editconflict": "Хисизабиялул дагӀба:",
        "yourdiff": "БатӀалъи",
        "template-protected": "(цӀунун буго)",
-       "template-semiprotected": "(цо-цо бакӀал цунун руго)",
-       "next": "хадуб",
-       "last": "цебе",
+       "template-semiprotected": "(цо-цо бакӀал цIунун руго)",
+       "content-model-wikitext": "вики-текст",
+       "content-model-text": "гIадатияб текст",
+       "content-model-javascript": "JavaScript",
+       "content-json-empty-object": "ЧIобогояб бакI",
+       "revisionasof": "$1 версия",
+       "previousrevision": "← Цебесеб",
+       "nextrevision": "Хадусеб →",
+       "currentrevisionlink": "Гьанжесеб версия",
+       "cur": "гьанжес.",
+       "next": "хадус.",
+       "last": "цебес.",
        "page_first": "тӀоцебесеб",
        "page_last": "ахирисеб",
+       "history-show-deleted": "ГIицIго нахъе рацIцIарал",
        "histfirst": "некӀсиял",
        "histlast": "бищун цӀиял",
-       "historysize": "($1 {{PLURAL:$1|байт|байт|байт}})",
+       "historysize": "($1 {{PLURAL:$1|байт}})",
        "historyempty": "(чӀобого буго)",
        "history-feed-title": "Хиса-басиязул тарих",
+       "rev-delundel": "бихьизабизе/бахчизе",
        "rev-showdeleted": "бихьизабизе",
+       "revisiondelete": "Нахъе бацIцIине / букIахъе гьабизе гьумералъул версиял",
        "revdelete-show-file-submit": "У",
-       "revdelete-reasonotherlist": "Цоги гӀила",
-       "mergehistory-reason": "ГӀила:",
-       "editundo": "нахъчIвазе",
+       "revdelete-hide-image": "Файлалъул жаниб бугеб жо бахчизе",
+       "revdelete-radio-set": "Бахчараб",
+       "revdelete-radio-unset": "Бихьулеб",
+       "pagehist": "Гьумералъул тарих",
+       "deletedhist": "Нахъе рацIцIиназул тарих",
+       "revdelete-reasonotherlist": "Цоги гӀилла",
+       "mergehistory-reason": "ГӀилла:",
+       "difference-title": "$1 — версиязда гьоркьо батӀалъи",
+       "lineno": "Мухъ $1:",
+       "editundo": "нахъчӀвазе",
        "diff-empty": "(БатӀалъи гьечӀо)",
+       "searchresults": "ЦӀех-рехалъул хӀасилал",
+       "prevn": "{{PLURAL:$1|1=цебесалаб|цересел}} $1",
+       "nextn": "{{PLURAL:$1|1=хадусалаб|хадусел}} $1",
+       "prev-page": "Цебесеб гьумер",
+       "next-page": "Хадусеб гьумер",
+       "nextn-title": "{{PLURAL:$1|Хадусеб $1 хъвай-хъвагӀай|Хадусел $1 хъвай-хъвагӀаял}}",
+       "searchmenu-new": "<strong>«[[:$1]]»-абураб цӀияб гьумер гьабе гьаб вики-проекталда!</strong>\n{{PLURAL:$2|0=|Гь. дуца цӀехон батараб гьумералда балагье|Гь. балагье дур цӀех-рехалъул хӀасилазда.}}",
+       "searchprofile-articles": "Аслиял гьумерал",
+       "searchprofile-images": "Мультимедиа",
+       "searchprofile-everything": "Киса-кибего",
+       "searchprofile-articles-tooltip": "$1-алда хъирщизе",
+       "searchprofile-images-tooltip": "Файлал ратизе",
+       "searchprofile-everything-tooltip": "Киналго гьумеразда хъирщизе (бахӀсазул гьумераздагицин)",
+       "search-result-size": "$1 ({{PLURAL:$2|$2 рагӀи|$2 рагӀи|$2 рагӀи}})",
+       "searchall": "киналго",
+       "powersearch-toggleall": "Киналго",
+       "powersearch-togglenone": "Щибниги",
+       "search-external": "КъватIисеб цIехей",
        "preferences": "Рекъезаби",
        "mypreferences": "Рекъезаби",
-       "localtime": "Бакlалъул заман",
+       "saveprefs": "ЦIунизе",
+       "timezonelegend": "СагIтил рачел:",
+       "localtime": "БакIалъул заман",
+       "timezoneregion-africa": "Африка",
+       "timezoneregion-america": "Америка",
+       "timezoneregion-antarctica": "Антарктика",
+       "timezoneregion-arctic": "Арктика",
+       "timezoneregion-asia": "Азия",
+       "timezoneregion-atlantic": "Атлантикияб океан",
+       "timezoneregion-australia": "Австралия",
+       "timezoneregion-europe": "Европа",
+       "timezoneregion-indian": "Гьиндустаналъул океан",
+       "timezoneregion-pacific": "ГІодоцараб океан",
+       "prefs-searchoptions": "Хъирщизе",
+       "prefs-files": "Файлал",
+       "yourlanguage": "МацI:",
+       "email": "Электронияб адрес",
+       "prefs-signature": "Гъулбас",
+       "prefs-dateformat": "Къо-моцIалъул формат",
+       "userrights": "ГІахьалчиясул ихтиярал",
        "userrights-user-editname": "ГӀахьалчиясул цӀар хъвай:",
+       "right-edit": "Гьумерал хисизари",
+       "right-upload": "Файлал цІазе",
+       "action-edit": "Гьаб гьумер хисизабизе",
+       "action-upload": "гьаб файл жанибе цIазе",
+       "enhancedrc-history": "тарих",
        "recentchanges": "ЦӀиял хиса-басиял",
+       "recentchanges-label-newpage": "Гьаб хиса-басигун цӀияб гьумер рагьана.",
+       "recentchanges-label-minor": "Гьаб буго дагьа-макъаб хиса-баси",
+       "recentchanges-label-bot": "Гьаб хиса-баси ботас гьабуна",
        "rcshowhideminor": "$1 гӀиси-микъинал хиса-басиял",
        "rcshowhideminor-show": "Бихьизабизе",
        "rcshowhideminor-hide": "Бахчизе",
        "rcshowhidemine-show": "Бихьизабизе",
        "rcshowhidemine-hide": "Бахчизе",
        "diff": "батӀалъи",
+       "hist": "тарих",
        "hide": "Бахчизе",
        "show": "Бихьизабизе",
        "minoreditletter": "гӀ.-м.",
        "newpageletter": "ЦӀ",
+       "boteditletter": "б",
+       "rc-change-size-new": "Хисизабун хадуб лъугьараб роцен: $1 {{PLURAL:$1|байт}}",
        "recentchangeslinked": "Рухьарал хиса-басиял",
        "recentchangeslinked-feed": "Рухьарал хиса-басиял",
        "recentchangeslinked-toolbox": "Рухьарал хиса-басиял",
-       "upload": "Файл цIазе",
+       "recentchangeslinked-page": "Гьумералъул цӀар:",
+       "upload": "Файл цӀазе",
        "uploadnologin": "Дуца цӀар бицун гьечӀо",
+       "filedesc": "Къокъаб баян",
+       "upload-dialog-button-save": "ЦIунизе",
+       "upload-dialog-button-upload": "ЦІазе",
+       "imgfile": "файл",
+       "file-anchor-link": "Файл",
+       "filehist": "Файлалъул тарих",
+       "filehist-current": "гьанже",
+       "filehist-datetime": "Къо-моцI/заман",
+       "filehist-thumb": "Миниатюра",
+       "filehist-user": "ГIахьалчи",
+       "filehist-dimensions": "Роценал",
+       "filehist-comment": "Комментарий",
+       "imagelinks": "Файл хӀалтӀизаби",
        "randompage": "Цебе ккараб гьумер",
+       "nbytes": "$1 {{PLURAL:$1|байт}}",
        "shortpages": "Къокъал макъалаби",
-       "longpages": "Кlудиял гьумерал",
-       "listusers": "Гlахьалчагlазул сияхl",
-       "newpages": "ЦIиял гьумерал",
+       "longpages": "Халатал гьумерал",
+       "listusers": "ГӀахьалчагӀазул сияхӀ",
+       "newpages": "ЦӀиял гьумерал",
+       "booksources": "ТӀахьазул ицц",
+       "booksources-search": "Хъирщизе",
        "specialloguserlabel": "ГӀахьалчи:",
+       "log": "Журналал",
        "allarticles": "Киналго макъалаби",
-       "watchlist": "Дур халгьабиялъул сияхl",
+       "allpagessubmit": "Инзе",
+       "categories": "Категориял",
+       "watchlist": "Халгьабиялъул сияхӀ",
+       "mywatchlist": "Халгьабиялъул сияхӀ",
        "watch": "Хал кквезе",
+       "namespace": "ЦӀаразул сияхӀ:",
+       "blanknamespace": "(Аслияб)",
        "contributions": "{{GENDER:$1|ГӀахьалчиясул}} хӀалтӀи",
-       "mycontris": "Дур гlахьаллъи",
+       "mycontris": "Дур хӀалтӀи",
+       "sp-contributions-userrights": "ГІахьалчиясул ихтиярал",
        "whatlinkshere": "Гьанире линкал",
-       "move-page-legend": "Гьумералъул цlар хисизе",
-       "movearticle": "Гьумералъул цӀар хисизе:",
-       "movepagebtn": "Гьумералъул цlар хисизе",
+       "whatlinkshere-title": "«$1» гьумералда бухьен гьабулел гьумерал",
+       "whatlinkshere-page": "Гьумер:",
+       "isredirect": "редирект-гьумер",
+       "isimage": "файлалъул линк",
+       "whatlinkshere-prev": "{{PLURAL:$1|1=цебесеб|цересел}} $1",
+       "whatlinkshere-next": "{{PLURAL:$1|1=хадусеб|хадусел}} $1",
+       "whatlinkshere-links": "← линкал",
+       "whatlinkshere-hideredirs": "$1 редиректал",
+       "whatlinkshere-hidelinks": "$1 линкал",
+       "whatlinkshere-filters": "Фильтрал",
+       "blockip": "ГІахьалчи блокалда лъезе",
+       "ipbsubmit": "Гьав гІахьалчи/адрес блокалда лъезе",
+       "ipb-confirmhideuser": "Нужеда ракІалда буго гІахьалчи блокалда лъезе ва гьесул цмар бахчизе. Гьеб загьирлъуларо сияхІазда ва журналазда. Гьеб гьабизе бокьун бугищ нужее?",
+       "blocklink": "Блокалда лъезе",
+       "contribslink": "хӀалтӀи",
+       "move-page-legend": "Гьумералъул цӀар хисизе",
+       "movepagebtn": "Гьумералъул цӀар хисизе",
+       "movelogpage": "ЦӀарал хисиялъул журнал",
+       "thumbnail-more": "КӀодолъизабизе",
+       "tooltip-pt-userpage": "Дур гӀахьалчиясул гьумер",
+       "tooltip-pt-mytalk": "Дур бахӀсалъул гьумер",
+       "tooltip-pt-preferences": "Дур рекъезабиял",
+       "tooltip-pt-mycontris": "Дуца гьарурал хиса-басиязул сияхӀ",
+       "tooltip-pt-login": "Гьаниб бегьула регистрация гьабизе, амма гьеб тӀадаб жо гуро.",
+       "tooltip-pt-logout": "КъватӀиве инзе",
+       "tooltip-pt-createaccount": "Нужеда тӀадаб гьечӀо, амма гьаниб аккаунт рагьани, нужеего лъикӀ букӀина.",
+       "tooltip-ca-talk": "Аслияб гьумералда тӀасан бахӀс",
+       "tooltip-ca-edit": "Гьаб гьумер хисизабизе",
+       "tooltip-ca-viewsource": "Гьаб гьумер кинаб бугониги хиса-баси гьабиялдаса цӀунараб буго, амма дуе кӀола гьелда балагьизе яги гьелъул тексталъул копия гьабизе.",
+       "tooltip-ca-history": "Гьумералда хиса-басиял гьариялъул журнал",
+       "tooltip-ca-move": "Гьумералъул цӀар хисизе",
+       "tooltip-ca-watch": "Гьаб гьумер ххал гьабиялъул сияхӀалда жубазе.",
+       "tooltip-search": "{{grammar:prepositional|{{SITENAME}}}}-алда хъирщизе",
+       "tooltip-search-go": "ГӀицӀго гьединаб цӀар бугеб гьумер батизе.",
+       "tooltip-search-fulltext": "Дуца хъвараб тексталда рекъон гьумерал ратизе",
+       "tooltip-p-logo": "БетӀераб гьумералда ине",
+       "tooltip-n-mainpage": "БетӀераб гьумер рагьизе",
+       "tooltip-n-mainpage-description": "БетӀераб гьумер рагьизе",
+       "tooltip-n-currentevents": "Гьанжесел лъугьа-бахъиназул хӀакъалъулъ информация",
+       "tooltip-n-recentchanges": "Ахирисел хиса-басиязул сияхӀ",
+       "tooltip-n-randompage": "Цебе ккараб гьумералда балагьизе",
+       "tooltip-n-help": "Баянал росизе кӀолеб бакӀ",
+       "tooltip-t-whatlinkshere": "Гьаб гьумералда линк гьабулелщинал гьумеразул сияхӀ",
+       "tooltip-t-upload": "Файлал цІазе",
+       "tooltip-t-specialpages": "Хъулухъиял гьумеразул сияхӀ",
+       "tooltip-t-print": "Гьаб гьумералъул басмаялъул сверел",
+       "tooltip-ca-nstab-main": "Аслияб гьумер бихьизабизе",
+       "tooltip-ca-nstab-user": "ГӀахьалчиясул гьумер",
+       "tooltip-ca-nstab-special": "Гьаб буго хъулухъияб гьумер. Гьаб хисизабизе данде кколаро.",
+       "tooltip-ca-nstab-image": "Файлалъул гьумер",
+       "tooltip-save": "Дуца гьарурал хиса-басиял цӀунизе",
+       "tooltip-summary": "Къокъаб баян хъвае",
        "lastmodifiedatby": "Ахирисеб нухалъ гьаб гьумералъул хиса-баси гьабуна:  $2, $1. Хисизабуна гьас: $3.",
-       "specialpages": "Хассал гьумерал"
+       "pageinfo-toolboxlink": "Гьумералъул хӀакъалъулъ",
+       "nextdiff": "Хадусеб хиса-баси →",
+       "file-nohires": "ЦӀикӀкӀун расширение бугеб версия гьечӀо.",
+       "show-big-image": "Аслияб файл",
+       "show-big-image-size": "$1 × $2 пикселал",
+       "metadata": "Метабаян",
+       "exif-software": "Программабазул обеспечение",
+       "exif-exifversion": "Exif версия",
+       "exif-orientation-1": "Нормалияб",
+       "namespacesall": "киналго",
+       "monthsall": "киналго",
+       "hijri-calendar-m1": "МухІаррам",
+       "hijri-calendar-m3": "РабигІул-Аввал",
+       "hijri-calendar-m4": "РабигІу Ссани",
+       "hijri-calendar-m5": "Жумада ал-уля",
+       "hijri-calendar-m6": "Жумада ас-сани",
+       "hijri-calendar-m7": "Ражаб",
+       "hijri-calendar-m8": "ШагІбан",
+       "hijri-calendar-m9": "Рамазан",
+       "hijri-calendar-m10": "Шаввал",
+       "hijri-calendar-m11": "Зул-КъагІда",
+       "hijri-calendar-m12": "Зул-ХІижжа",
+       "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|бахӀс]])",
+       "specialpages": "Хасал гьумерал",
+       "logentry-move-move": "$1 {{GENDER:$2|гӀахьалчияс $3 гьемералъул цӀар $4-абун хисизабуна|гӀахьалчиясчӀужуялъ $3 гьемералъул цӀар $4-абун хисизабуна}}",
+       "searchsuggest-search": "Хъирщизе",
+       "special-characters-group-latin": "Латин",
+       "special-characters-group-greek": "Грек",
+       "special-characters-group-cyrillic": "Кириллияб",
+       "special-characters-group-arabic": "ГIараб",
+       "special-characters-group-persian": "Перс"
 }
index 5c10f27..0081c7e 100644 (file)
        "viewsourcetext": "Va buklita rowil nume roksudal :",
        "viewyourtext": "Rowil va klita ke '''rinafa betara''' ise ko batu bu roksudal :",
        "protectedinterface": "Batu bu va walasikikrent ke talpeyot dafur nume ta djira va favejera zo ixatcar.",
-       "editinginterface": "'''Obral !''' Rin va bu favenu koe talpeyotwalasiki betal. Betara va batu bu va laviuca ke favesikafi walasiki dolge ar favesik vanolatar. Kalavason, va [//translatewiki.net/wiki/Main_Page?setlang=avk translatewiki.net], va MediaWiki abdumimaks va tulizukara, vay favel.",
+       "editinginterface": "'''Obral !''' Rin va bu favenu koe talpeyotwalasiki betal. Betara va batu bu va laviuca ke favesikafi walasiki dolge ar favesik vanolatar. Kalavason, va [https://translatewiki.net/wiki/Main_Page?setlang=avk translatewiki.net], va MediaWiki abdumimaks va tulizukara, vay favel.",
        "cascadeprotected": "Batu bu icde betara zo nendar, kire va vlevefu {{PLURAL:$1|bu|bu}} pasur, danu kan tegisa \"stoyakorafa\" rotisaca zo nendad : $2",
        "namespaceprotected": "Va bu koe '''$1''' yoltxo me robetal !",
        "ns-specialprotected": "Aptafu bu tir merobetanu.",
        "allmessagesname": "Yolt",
        "allmessagesdefault": "Omavaf krent",
        "allmessagescurrent": "Noelaf krent",
-       "allmessagestext": "Batcoba tir vexala dem bolkstakseem koe MediaWiki yoltxo.\n\nVa [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] is [//translatewiki.net translatewiki.net] vay woral ede va tulizukara va Mediawiki co-rowebel.",
+       "allmessagestext": "Batcoba tir vexala dem bolkstakseem koe MediaWiki yoltxo.\n\nVa [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] is [https://translatewiki.net translatewiki.net] vay woral ede va tulizukara va Mediawiki co-rowebel.",
        "allmessagesnotsupportedDB": "Batu bu me zo rofaver kire '''$wgUseDatabaseMessages''' mea tir tegis.",
        "thumbnail-more": "Tulogijara",
        "filemissing": "Gracaf iyeltak",
index 2ac5aac..1a6b71d 100644 (file)
        "protectedpagetext": "ई पन्ना संपादन अव अउर काम से सुरक्षित किहा है।",
        "viewsourcetext": "आप इ पन्ना कय स्रोत देखी सका जात है औ ओकर नकल उतार सका जात है:",
        "viewyourtext": "आप ई पन्ना में ''आपन सम्पादन'' कय स्रोत देखी सका जात है औ ओकर नकल उतार सका जात है:",
-       "protectedinterface": "इ पन्ना  विकी कय सॉफ़्टवेयर कय इंटरफ़ेस पाठ देत है,अव एकर गलत प्रयोग से बचावेक लिये सुरक्षित करा है।\nकुल विकिन् कय लिए अनुवाद जोड़य या बदलय कय लिए कृपया मीडियाविकि कय क्षेत्रीयकरण प्रकल्प [//translatewiki.net/ translatewiki.net] कय प्रयोग करा जाय।",
+       "protectedinterface": "इ पन्ना  विकी कय सॉफ़्टवेयर कय इंटरफ़ेस पाठ देत है,अव एकर गलत प्रयोग से बचावेक लिये सुरक्षित करा है।\nकुल विकिन् कय लिए अनुवाद जोड़य या बदलय कय लिए कृपया मीडियाविकि कय क्षेत्रीयकरण प्रकल्प [https://translatewiki.net/ translatewiki.net] कय प्रयोग करा जाय।",
        "editinginterface": "<strong>चेतावनी:</strong> आप एकठु अइसन पन्ना कय बदलय जावा जात हैं जवन सॉफ़्टवेयर कय इंटरफ़ेस पाठ देत है।\nइ पन्ना कय बदलय से अउर सदस्यन् कय देखावेवाला इंटरफ़ेस कय शकल सूरत में बदलाव आई जाइ।",
-       "translateinterface": "कुल विकिन् कय ट्रान्सलेशन करय अव बदलय खर्तिन [//translatewiki.net/ ट्रान्शलेटविकि.नेट] कय प्रयोग करा जाय ।",
+       "translateinterface": "कुल विकिन् कय ट्रान्सलेशन करय अव बदलय खर्तिन [https://translatewiki.net/ ट्रान्शलेटविकि.नेट] कय प्रयोग करा जाय ।",
        "cascadeprotected": "ई पन्ना सुरक्षित है, काहे से इ निचे दिहा {{PLURAL:$1|पन्ना|पन्नन्}} कय सुरक्षा-सीढ़ी में है:\n$2",
        "namespaceprotected": "आप कय '''$1''' नामस्थान में रहल पन्नन कय बदलै कय अनुमति नाइ है।",
        "customcssprotected": "आप कय इ CSS पन्ना कय संपादन करेक अनुमति नाई है, काहे से एहमा अउर सदस्य कय व्यक्तिगत सेटिंग्स शामिल है।",
        "resetpass-temp-password": "अस्थायी गुप्तकुंजी:",
        "resetpass-abort-generic": "गुप्तकुंजी में बदलाव कवनो एक्सटेंशन से रुकि गवा है।",
        "resetpass-expired": "आप कय पासवर्ड कय वैधता अवधि खतम होई चुका है। कृपया लॉग इन करेक लिए एकठु नँवा पासवर्ड सेट करा जाय।",
-       "resetpass-expired-soft": "आप कय पासवर्ड कय वैधता समय होइ गवा है अव ओका रीसेट करेक ज़रूरत है। कृपया एकठु नँवा पासवर्ड चुना जाय, या बाद में रीसेट करेक लिए \"{{int:resetpass-submit-cancel}}\" पे क्लिक करा जाय।",
-       "resetpass-validity-soft": "आप कय पासवर्ड मान्य नाई है: $1 \n\nकृपया अब एक नवा पासवर्ड चुना जाय, या ओका बाद में पुनर्स्थापित करेक लिए \"{{int:resetpass-submit-cancel}}\" पे क्लिक करा जाय।",
+       "resetpass-expired-soft": "आप कय पासवर्ड कय वैधता समय होइ गवा है अव ओका रीसेट करेक ज़रूरत है। कृपया एकठु नँवा पासवर्ड चुना जाय, या बाद में रीसेट करेक लिए \"{{int:authprovider-resetpass-skip-label}}\" पे क्लिक करा जाय।",
+       "resetpass-validity-soft": "आप कय पासवर्ड मान्य नाई है: $1 \n\nकृपया अब एक नवा पासवर्ड चुना जाय, या ओका बाद में पुनर्स्थापित करेक लिए \"{{int:authprovider-resetpass-skip-label}}\" पे क्लिक करा जाय।",
        "passwordreset": "गुप्त कुंजी पुनःस्थापित(रीसेट) करा जाय",
        "passwordreset-text-one": "आपन गुप्तकुंजी रीसेट करेक लिए ई फ़ॉर्म भरा जाय।",
        "passwordreset-text-many": "{{PLURAL:$1|ईमेल कय माध्यम से एक अस्थायी पासवर्ड पावेक लिए कवनो एक डिब्बा भरा जाय।}}",
        "allmessagesname": "नाँव",
        "allmessagesdefault": "सनेशा कय डिफ़ॉल्ट पाठ",
        "allmessagescurrent": "वर्तमान पाठ",
-       "allmessagestext": "ये मीडियाविकि नामस्थान में उपलब्ध प्रणाली संदेशों की एक सूची है। यदि आप सामान्य मीडियाविकि क्षेत्रीयकरण में योगदान देना चाहें तो कृपया [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation मीडियाविकि क्षेत्रीयकरण] व [//translatewiki.net translatewiki.net] को देखें।",
+       "allmessagestext": "ये मीडियाविकि नामस्थान में उपलब्ध प्रणाली संदेशों की एक सूची है। यदि आप सामान्य मीडियाविकि क्षेत्रीयकरण में योगदान देना चाहें तो कृपया [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation मीडियाविकि क्षेत्रीयकरण] व [https://translatewiki.net translatewiki.net] को देखें।",
        "allmessagesnotsupportedDB": "इस पृष्ठ का इस्तेमाल नहीं कर सकते क्योंकी '''$wgUseDatabaseMessages''' बंद हैं।",
        "allmessages-filter-legend": "फिल्टर",
        "allmessages-filter": "अनुकूलन स्थिति कय आधार पे छाना जाय:",
index 0ace557..16bf5bc 100644 (file)
        "allmessagesname": "Ad",
        "allmessagesdefault": "İlkin mətn",
        "allmessagescurrent": "İndiki mətn",
-       "allmessagestext": "Bu MediaWiki-də olan sistem mesajlarının siyahısıdır. Əgər MediaWiki-ni lokallaşdırmaq işində kömək etmək isəyirsinizsə, lütfən [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] və [//translatewiki.net translatewiki.net]-ə baş çəkin.",
+       "allmessagestext": "Bu MediaWiki-də olan sistem mesajlarının siyahısıdır. Əgər MediaWiki-ni lokallaşdırmaq işində kömək etmək isəyirsinizsə, lütfən [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] və [https://translatewiki.net translatewiki.net]-ə baş çəkin.",
        "allmessages-filter-legend": "Filtr",
        "allmessages-filter-unmodified": "Dəyişdirilməmiş",
        "allmessages-filter-all": "Hamısı",
index 4ce3c93..58955dc 100644 (file)
@@ -26,7 +26,8 @@
        "tog-hideminor": "سوْن دییشیکلیکلرده کیچیکلری گیزلت",
        "tog-hidepatrolled": "سوْن دییشیکلیکلرده نظارتلنمیش دَییشیکلیکلری گیزلت",
        "tog-newpageshidepatrolled": "یوْخلانمیش صفحه‌لری یئنی صفحه‌لر لیستیندن گیزلت",
-       "tog-extendwatchlist": "ایزله‌دیک‌لری، یالنیز یئنی‌لر اۆچون یوْخ، بۆتون دییشیک‌لیک‌لری گؤرستمک اۆچون، گنیشلندیر.",
+       "tog-hidecategorization": "صفحه بؤلمه‌لرینی گیزلت",
+       "tog-extendwatchlist": "ایزله‌دیک‌لری تکجه یئنی‌لر اۆچون دئییل، بۆتون دییشیک‌لیک‌لری گؤسترمک اۆچون گئنیشلندیر.",
        "tog-usenewrc": "دَییشیک‌لیک‌لری سوْن دَییشیک‌لیک‌لر صفحه‌سینده ایزله‌دیک‌لر صفحه‌سینده قروپ‌لا (جاوااسکریپت گرک‌دیر)",
        "tog-numberheadings": "باشلیق‌لاری اوْتوماتیک نۆمره‌له",
        "tog-showtoolbar": "دَییشدیرمه آراج-چۇبوغونو گؤستر",
@@ -36,6 +37,7 @@
        "tog-watchdefault": "دَییشدیردیگیم صفحه‌‌لری و فايل‌لاری، ایزله‌دیک‌لریمه آرتیر",
        "tog-watchmoves": "داشیدیغیم صفحه‌‌لری و فايللاری ایزله‌دیکلریمه آرتیر",
        "tog-watchdeletion": "سیلدیگیم صفحه‌‌لری و فايللاری ایزله‌دیکلریمه آرتیر",
+       "tog-watchuploads": "یئنی یۆکله‌دیگیم فایل‌لاری ایزله‌دیک‌لریمه آرتیر",
        "tog-watchrollback": "قایتاریلمیش صفحه‌لری ایزله‌دیکلریمه آرتیر",
        "tog-minordefault": "دیفالت اوْلاراق، بۆتون دَییشدیر‌مه‌لری کیچیک کیمی علامتله",
        "tog-previewontop": "اؤن‌گؤستریشی، يازماق قۇتوسوندان قاباق گؤستر",
@@ -50,7 +52,7 @@
        "tog-uselivepreview": "دیری اؤن‌گؤستریش ایشلت (تِست مرحله‌سینده)",
        "tog-forceeditsummary": "دَییشیکلیک قیساسی بوْش قالمیشسا منه بیلیندیر",
        "tog-watchlisthideown": "منیم دَییشیک‌لیک‌لریمی ایزله‌دیک‌لردن گیزلت",
-       "tog-watchlisthidebots": "بÙ\88Ù\92ت دَییشیک‌لیک‌لرینی ایزله‌دیک‌لردن گیزلت",
+       "tog-watchlisthidebots": "رÙ\88Ù\92بات دَییشیک‌لیک‌لرینی ایزله‌دیک‌لردن گیزلت",
        "tog-watchlisthideminor": "کیچیک دَییشیک‌لیک‌لری ایزله‌دیک‌لردن گیزلت",
        "tog-watchlisthideliu": "گیریش ائتمیش ایشلدن‌لرین دَییشیک‌لیک‌لرینی ایزله‌دیک‌لردن گیزلت",
        "tog-watchlisthideanons": "تانینمامیش ایشلدن‌لرین دَییشیک‌لیک‌لرینی ایزله‌دیک‌لردن گیزلت",
        "october-date": "اوْکتوبرون $1-ی",
        "november-date": "نوْوامبرین $1-ی",
        "december-date": "دسامبرین $1-ی",
+       "period-am": "صۆبح",
+       "period-pm": "آخشام",
        "pagecategories": "{{PLURAL:$1|بؤلمه|بؤلمه‌لر}}",
        "category_header": "«$1» بؤلمه‌سینده صفحه‌لر",
        "subcategories": "آلت‌بؤلمه‌لر",
        "morenotlisted": "بۇ لیست کامل دئییل.",
        "mypage": "صفحه",
        "mytalk": "دانیشیق",
-       "anontalk": "بÙ\88 Ø¢Û\8câ\80\8cÙ¾Û\8c Ø¢Ø¯Ø±Ø³Û\8cÙ\86Ù\87 Ø¯Ø§Ù\86Û\8cØ´Û\8cÙ\82",
+       "anontalk": "دانیشیق",
        "navigation": "دوْلانماق",
        "and": "&#32;و",
        "qbfind": "تاپ",
        "viewhelppage": "یاردیم صحیفه‌سینه باخ",
        "categorypage": "بؤلمه صحیفه‌‌سینه باخ",
        "viewtalkpage": "دانیشیغا باخ",
-       "otherlanguages": "باشÙ\82ا دیل‌لرده",
+       "otherlanguages": "Ø¢Û\8cرÛ\8c دیل‌لرده",
        "redirectedfrom": "($1-دن يوْل‌لاندیریلمیش)",
        "redirectpagesub": "یوْللاندیرما صفحه‌سی",
        "redirectto": "مسیزپرین دَییشیب:",
        "toc": "ایچینده‌کیلر",
        "showtoc": "گؤستر",
        "hidetoc": "گیزلت",
-       "collapsible-collapse": "ییغیشلات",
-       "collapsible-expand": "گئÙ\86Û\8cØ´Ù\84ت",
+       "collapsible-collapse": "گیزلت",
+       "collapsible-expand": "گؤستر",
        "confirmable-confirm": "{{GENDER:$1|سیز}} اطمینانیز وار می؟",
        "confirmable-yes": "هن",
        "confirmable-no": "یوْخ",
        "site-atom-feed": "$1 آتوم فید",
        "page-rss-feed": "«$1» آراِس‌اِس فید",
        "page-atom-feed": "«$1» آتوم فید",
-       "red-link-title": "$1 (صفحه یوْخدور)",
+       "red-link-title": "$1 (صفحه یوْخدور)",
        "sort-descending": "آزالان سیرالاماق",
        "sort-ascending": "چوْخالان سیرالاماق",
        "nstab-main": "صفحه",
        "viewyourtext": "سیز بو صفحه‌ده <strong>اؤز دَییشیکلیکلرینیزین</strong> قایناغینی گؤروب و کوپی ائده بیلرسینیز.",
        "protectedinterface": "بو صحیفه‌ده پروقرام تأمیناتی اوچون سیستئم بیلگی‌لری وار و سوی-ایستیفاده‌نین قارشی‌سینی آلماق اوچون محافظه اولونما‌لی‌دیر.",
        "editinginterface": "<strong>دیقت:</strong> سیز بیر یازیلیم آرا-اوزونه یازی تعمین ائدن صحیفه‌نی دَییشدیرمک‌ده‌سینیز.\nبو صحیفه‌نی دَییشدیرمک، بو ویکی‌نی ایستیفاده ائدن باشقا ایستیفاده‌چیلرین گؤرونوشونو دَییشه‌جک‌دیر.",
-       "translateinterface": "ترجومه و یا اونون دَییشدیرمک هامی ویکی لر اوچون [//translatewiki.net/ translatewiki.net]،مدیا ویکی نین یئرلری ائتمک پروژه سیندن ایستفاده ائدین",
+       "translateinterface": "ترجومه و یا اونون دَییشدیرمک هامی ویکی لر اوچون [https://translatewiki.net/ translatewiki.net]،مدیا ویکی نین یئرلری ائتمک پروژه سیندن ایستفاده ائدین",
        "cascadeprotected": "بو صحیفه دَییشیکلیکلر قاباغیندا قورونوب‌دور، چونکو بو آشاغیداکی، آبشاری {{PLURAL:$1|سئچمه‌سی|سئچمه‌لری}} سئچیلن، قورونان {{PLURAL:$1|صحیفه|صحیفه‌لر}} ایچینده‌دیر:\n$2",
        "namespaceprotected": "سیز '''$1''' آدفضاسینداکی صحیفه‌لرین دَییشمه‌سینه ایجازه‌نیز یوخدور.",
        "customcssprotected": "سیز بو CSS صفحه‌سینین دَییشمه‌سینه ایجازه‌نیز یوخدور نییه کی اون‌دا باشقا ایشلدنین شخصی تنظیملری واردیر.",
        "virus-scanfailed": "یوخلاماق باشا چاتمادی (کود $1)",
        "virus-unknownscanner": "تانینمامیش آنتی‌ویروس:",
        "logouttext": "<strong>سیز ایندی سیستِم‌دن چیخدینیز.</strong>\n\nبونا دیقت ائدین کی وب حافیظه نیزی سیلمه ین،بعضی صحیفه‌لر کَش-ینیزی سیلمه‌میش کیمی، هله ده سیزین گیریش ائتدیگینیز کیمی گؤستریله‌جکلر.",
+       "cannotlogoutnow-title": "ایندی چیخیش اوْلونمازدیر",
+       "cannotlogoutnow-text": "$1-ی ایشلدرکن چیخیش اوْلونمازدیر.",
        "welcomeuser": "خوش گلمیسینیز، $1!",
        "welcomecreation-msg": "حسابینیز آچیلدی.\n[[Special:Preferences|{{SITENAME}}ترجیحلر]] دییشدیرمیی اونوتمایین.",
-       "yourname": "اÛ\8cستÛ\8cÙ\81ادÙ\87â\80\8cÚ\86Û\8c آدی:",
+       "yourname": "اÛ\8cØ´Ù\84دÙ\86 آدی:",
        "userlogin-yourname": "ایشلدن آدی",
        "userlogin-yourname-ph": "ایشلدن آدینیزی یازین",
        "createacct-another-username-ph": "ایشلدن آدینیزی یازین",
        "remembermypassword": "بو بیلگی‌سایاردا منیم گیریشیمی (چوخو $1 {{PLURAL:$1|گون}}ه قدر) یاددا ساخلا",
        "userlogin-remembermypassword": "منی ایچری‌ده ساخلا",
        "userlogin-signwithsecure": "آرخایین باغلانتی ایشلدین",
+       "cannotloginnow-title": "ایندی گیریش اوْلونمازدیر",
+       "cannotloginnow-text": "$1-ی ایشلدرکن گیریش اوْلونمازدیر",
        "yourdomainname": "سیزین دامنه:",
        "password-change-forbidden": "بو ویکی‌ده رمزلری دَییشه بیلنمه‌سینیز.",
        "externaldberror": "بیر دیتابیس دوغرولاما خطاسی اولدو، یوخسا سیزین ائشیک حسابینیزی گونجل‌لدمگه ایجازه‌نیز یوخدور.",
        "login": "گیریش",
+       "login-security": "کیملیگینیزی تائید ائدین",
        "nav-login-createaccount": "گیریش / حساب یارات",
        "userlogin": "گیریش / حساب یارات",
        "userloginnocreate": "گیریش",
        "userlogin-resetpassword-link": "رمزینیزی اونوتموسوز مو؟",
        "userlogin-helplink2": "گیریش ایله کؤمک",
        "userlogin-loggedin": "سیر حال حاضیردا {{GENDER:$1|$1}} عونوانیندا گیریش ائدیب سیز.\nآشاغیداکی فورمودان بیر آیری ایشلدن عونوانیندا گیریش اوچون ایشلدین.",
+       "userlogin-reauth": "{{GENDER:$1|$1}} اوْلدوغونوزو تأیید ائتمک اۆچون یئنه گیرمه‌لیسینیز.",
        "userlogin-createanother": "بیر باشقا حساب یارات",
        "createacct-emailrequired": "ایمیل آدرسی",
        "createacct-emailoptional": "ایمیل آدرسی (ایستگه باغلی)",
        "createacct-reason-ph": "ندن سیز باشقا حساب یارادیرسینیز",
        "createacct-submit": "حسابینیزی یارادین",
        "createacct-another-submit": "حساب یارات",
+       "createacct-continue-submit": "حساب یاراتماغین دالی‌سینی توت",
        "createacct-benefit-heading": "{{SITENAME}} سیزین کیمی آدام‌لارین الی ایله یارانیب‌دیر.",
        "createacct-benefit-body1": "{{PLURAL:$1|دَییشیکلیک}}",
        "createacct-benefit-body2": "{{PLURAL:$1|صفحه}}",
        "nocookieslogin": "{{SITENAME}} ایشلدنلری گیردیرمک اوچون، کوکی‌لری ایشلدیر.\nسیزین کوکی‌لریز باغلانیب‌دیر.\nلوطفا اونلاری آچین و یئنی‌دن چالیشین.",
        "nocookiesfornew": "قایناغینی دوغرو اولدوغونو بیلمه‌مک اوچون، ایشلدن حسابی یارادیلمادی.\nکوکی‌لرینیزین آچیق اولدوغون دان آرخایین اولوب، بو یارپاغی یئنی‌دن یوکله‌ییب، یئنی‌دن چالیشین.",
        "noname": "گئچرلی ایستیفاده‌چی آدی وئرمه‌دینیز.",
-       "loginsuccesstitle": "گیریش اوغورلو",
+       "loginsuccesstitle": "گیریلدینیز",
        "loginsuccess": "'''سیز ایندی {{SITENAME}} سایتینا، «$1» آدی‌له گیرمیسینیز.'''",
        "nosuchuser": "«$1» آدلا ایستیفاده‌چی یوخدور.\nایستیفاده‌چی آدلاری، حرفلرین بؤیوک/کیچیک‌لیگینه حساس‌دیلار.\nیازدیغینیزا یئنی‌دن باخین، یوخسا [[Special:CreateAccount|یئنی بیر حساب آچین]].",
        "nosuchusershort": "\"$1\" آدلا ایستیفاده‌چی یوخدور.\nدوزگون یازدیغینیزدان آرخایین اولون.",
        "nouserspecified": "بیر ایستیفاده‌چی آدی وئرمه‌لیسینیز.",
        "login-userblocked": "بو ایستیفاده چی باغلانیب‌دیر. گیریشه ایجازه یوخدور.",
-       "wrongpassword": "یانلیش رمز وئریلدی.\nیئنی‌دن یازین.",
+       "wrongpassword": "غلط رمز وئریلدی.\nیئنی‌دن یازین.",
        "wrongpasswordempty": "بوش رمز وئردینیز.\nیئنی‌دن یازین.",
        "passwordtooshort": "رمز، آزی {{PLURAL:$1|بیر|$1}} کاراکتئر اولمالی‌دیر.",
        "passwordtoolong": "رمز،سوزو چوخلوغو {{PLURAL:$1|۱ سوز|$1 سوز}} کاراکتئر اولمامالی‌دیر.",
        "noemail": "«$1» ایستیفاده‌چی‌یه ایمیل آدرسی قئید اولماییب‌دیر.",
        "noemailcreate": "دوزگون بیر ایمیل آدرسی وئرمه‌لیسینیز",
        "passwordsent": "«$1»-نا قئید اولونان ایمیل آدرسینه، یئنی بیر رمز گؤندریلدی.\nاونا آلان‌دان سونرا یئنی‌دن گیرین.",
-       "blocked-mailpassword": "سÛ\8cزÛ\8cÙ\86 Ø¢Û\8câ\80\8cÙ¾Û\8c Ø¢Ø¯Ø±Ø³Û\8cÙ\86Û\8cزÛ\8cÙ\86 Ø¯Û\8cÛ\8cشدÛ\8cرÙ\85Ù\87 Ø§Ø¦Ø¯Ù\87 Ø¨Û\8cÙ\84Ù\85Ù\87â\80\8cسÛ\8c Ø¨Ø§ØºÙ\84اÙ\86Ù\85Û\8cشدÛ\8cر. Ø³Ù\88ءاÛ\8cستÛ\8cÙ\81ادÙ\87 Ù\82ارشÛ\8câ\80\8cسینی آلماق اۆچون، رمزی یئنی‌دن اله گتیرمک ایمکانینا ایجازه‌نیز یوْخدور.",
+       "blocked-mailpassword": "سÛ\8cزÛ\8cÙ\86 Ø¢Û\8câ\80\8cÙ¾Û\8c Ø¢Ø¯Ø±Ø³Û\8cÙ\86Û\8cزÛ\8cÙ\86 Ø¯Û\8cÛ\8cشدÛ\8cرÙ\85Ù\87 Ø§Ø¦Ø¯Ù\87 Ø¨Û\8cÙ\84Ù\85Ù\87â\80\8cسÛ\8c Ø¨Ø§ØºÙ\84اÙ\86Ù\85Û\8cشدÛ\8cر. Ø³Ù\88ءاÛ\8cستÛ\8cÙ\81ادÙ\87 Ù\82اباغینی آلماق اۆچون، رمزی یئنی‌دن اله گتیرمک ایمکانینا ایجازه‌نیز یوْخدور.",
        "eauthentsent": "سیزین سئچیلمیش ایمیل آدرسینه، دوغرولاماق اوچون بیر ایمیل گؤندریلدی.\nهر یئنی بیر ایمیل گؤندرمک‌دن اؤنجه، بو حسابین دوغرودان سیزین اولدوغونو گؤسترمک اوچون، او ایمیل‌ده‌کی ایشلری گؤرمه‌لیسینیز.",
        "throttled-mailpassword": "سون {{PLURAL:$1|ساعات|$1 ساعات}}‌دا سیزه بیر رمز یئنیله‌مه ایمیلی گؤندریلیب‌دیر.\nسوءاستفاده قاباغین آلماق اوچون، هر {{PLURAL:$1|ساعات|$1 ساعات}}‌دا یالنیز بیر رمز یئنیله‌مه ایمیلی گؤندریلر.",
        "mailerror": "ایمیل گؤندرمه خطاسی: $1",
        "createacct-another-realname-tip": "اصلی آد ایستگینیزه باغلی‌دیر.\nاگر اونو وئرماغی سئچسز، سیزین ایشلرینیزی سیزه مونتسب ائدن‌ده، بو اصلی آد ایشلنه‌جک‌دیر.",
        "pt-login": "گیریش ائت",
        "pt-login-button": "گیریش ائت",
+       "pt-login-continue-button": "گیریشین دالینی توت",
        "pt-createaccount": "حساب یارات",
        "pt-userlogout": "چیخیش",
        "php-mail-error-unknown": "پی‌اچ‌پی‌نین mail() فونکسیاسیندا تانینمامیش خطا.",
        "resetpass_submit": "رمز یارادین و گیریش ائدین",
        "changepassword-success": "رمزینیز باجارییلا دَییشدیرلدی!",
        "changepassword-throttled": "سیزین چوخ گیریش چالیشماغینیز اولوب‌دور.\nلوطفاً یئنی‌دن چالیشماق‌دان اؤنجه $1 دؤزون.",
+       "botpasswords": "روبات رمزی",
+       "botpasswords-createnew": "روبات رمزی یارات",
+       "botpasswords-label-appid": "روبات آدی:",
        "botpasswords-label-create": "یارات",
+       "botpasswords-label-update": "آپدیت ائت",
        "botpasswords-label-cancel": "وازگئچ",
        "botpasswords-label-delete": "سیل",
+       "botpasswords-label-resetpassword": "رمزی یئنی‌له",
+       "botpasswords-label-grants-column": "وئریلدی",
        "resetpass_forbidden": "رمزلر دَییشیلمز",
        "resetpass-no-info": "بو صحیفه‌نی دوغرو گؤردوگونوز اوچون سیستمه گیرمه‌لیسینیز.",
        "resetpass-submit-loggedin": "رمزی دَییشدیر",
        "resetpass-temp-password": "گئچیجی رمز:",
        "resetpass-abort-generic": "رمز دَییشدیرمک، بیر اوزانتی ایله یاریدا کسیلیب‌دیر.",
        "resetpass-expired": "گیریش رمزینیز بایات اولوب.لطفا گیریشینیز اوچون یئنی بیر گیریش رمزی سئچین.",
-       "resetpass-expired-soft": "گیریش رمزینیز بایات اولوب و یئنی دن تنظیم اولونمالی دیر. لوطفا ایندی بیر یئنی رمز سئچیب یا دا یئنی دن تنظیم ائتمک اوچون سونرالیقدا\"{{int:resetpass-submit-cancel}}\" دویمه سین باسین.",
-       "resetpass-validity-soft": "گیریش رمزینیز دوز دئیییل:$1\nلوطفا ایندی بیر یئنی گیریش رمزی سئچین یا دا\"{{int:resetpass-submit-cancel}}\" باسین کی سونرا اونو یئنی دن سئچرسیز.",
+       "resetpass-expired-soft": "گیریش رمزینیز بایات اولوب و یئنی دن تنظیم اولونمالی دیر. لوطفا ایندی بیر یئنی رمز سئچیب یا دا یئنی دن تنظیم ائتمک اوچون سونرالیقدا\"{{int:authprovider-resetpass-skip-label}}\" دویمه سین باسین.",
+       "resetpass-validity-soft": "گیریش رمزینیز دۆز دئییل:$1\nلۆطفاً ایندی یئنی بیر گیریش رمزی سئچین یا دا داها سوْنرا اوْنو یئنیدن سئچمه‌نیز اۆچون \"{{int:authprovider-resetpass-skip-label}}\" اۆستونده کیلیک ائدین.",
        "passwordreset": "رمزی یئنی‌له",
        "passwordreset-text-one": "رمزینیزی صیفیرلاماق اوچون بو فورمو باشا چاتدیرین.",
        "passwordreset-text-many": "{{PLURAL:$1|رمزینیزی صیفیرلاماق اوچون، بیرینی دولدورون.}}",
        "minoredit": "بو بیر کیچیک دَییشدیرمه‌دیر",
        "watchthis": "بو صفحه‌نی ایزله",
        "savearticle": "صفحه‌نی ذخیره ائت",
+       "savechanges": "دَییشیکلیکلری ذخیره ائت",
+       "publishchanges": "دَییشیکلیکلری یای",
        "preview": "اؤن‌گؤستریش",
        "showpreview": "سیناق گؤستریش",
        "showdiff": "دَییشیکلیکلری گؤستر",
        "blankarticle": "<strong>دیققت:</strong>سیز بیر بوش صفحه نین یاراتماق حالیندا سیز .\nایر«{{int:savearticle}}» بیر ده باسایلا،بوش صفحه یاراناجاق.",
-       "anoneditwarning": "<strong>دیقت:</strong> سیز سیستئمه گیرمه‌میسینیز. سیزین آی‌پی آدرسینیز بو صفحه‌نین دییشیک تاریخچه‌سین‌ده یازیلب و گورسنجک.هر دَییشدیرمه ائتسز.<strong>[$1 گیریش ائتسز]</strong> یا <strong>[$2 بیر ایشلدن حسابی آچاسیز]</strong>, دَییشدیرمه لرینیز سیزین ایشلدن حساب آدینیزا نیسبت وئریلجک و آرتیق مزیت لرله.",
-       "anonpreviewwarning": "''سیستمه گیرمه‌میسینیز. قئید ائتمک‌له، سیزین آی‌پی آدرسینیز بو صحیفه‌نین گئچمیشین‌ده ثبت اولوناجاقدیر.''",
+       "anoneditwarning": "<strong>دیقت:</strong> سیز سیستمه گیرمه‌میسینیز. سیزین آی‌پی آدرسینیز بۇ صفحه‌نین دییشیک گئچمیشینده یازیلب و گؤروشه‌جک.هر دَییشدیرمه ائتسز.<strong>[$1 گیریش ائتسز]</strong> یا <strong>[$2 بیر ایشلدن حسابی آچاسیز]</strong>, دَییشدیرمه‌لرینیز سیزین ایشلدن حساب آدینیزا نیسبت وئریله‌جک و آرتیق مزیتلرله.",
+       "anonpreviewwarning": "<em> سیستمه گیرمه‌میسینیز. ذخیره ائتمک‌له، سیزین آی‌پی آدرسینیز بو صفحه‌نین گئچمیشینده ثبت اولوناجاقدیر.</em>",
        "missingsummary": "'''یادا سالما:''' سیز بیر دَییشیکلیک قیساسی یازمامیسینیز. «{{int:savearticle}}» دویمه‌سینی تیک‌لاسازسا، دَییشیکلیگینیز، قیسا شرح‌سیز اولاراق قئید اولوناجاق.",
        "selfredirect": "<strong>دیققت:</strong>سیز صفحه نین یولون اوزونه دَییشدیریمک حالیندا سیز.\nایمکانی وار یانلیش سون بیر یئری یولون دَییشمک اوچون سئچیب سیز،یا دا صفحه نی یانلیش دَییشدیرسیز.\nایر\"{{int:savearticle}}\" اوستون یئنی دن باساسینیز یولون دَییشیکلیگی دوزلجک.",
        "missingcommenttext": "لوطفاً آشاغی‌دا بیر یوروم یازین.",
        "accmailtitle": "رمز گؤندریلدی",
        "accmailtext": "[[User talk:$1|$1]] اوچون بیر راست‌گله رمز یارادیلیب و $2-ه گؤندریلدی.\n\nبو یئنی حسابین رمزی، گیرندن سونرا <em>[[Special:ChangePassword|رمز دَییشدیرمه]]</em> صحیفه‌سیندن دَییشیله بیلر.",
        "newarticle": "(یئنی)",
-       "newarticletext": "مؤوجود اوْلمايان صحیفه‌‌يه اوْلان کئچیدی ایزله‌دینیز. \nآشاغیداکی ساحه‌‌يه مظمونونو يازاراق بۇ صحیفه‌‌نی '''سیز''' يارادا بیلرسینیز. (علاوه‌‌ معلومات اۆچون [$1 کؤمک صحیفه‌‌سینه] باخین). اگر بۇ صحیفه‌‌يه سهون گلمیسینیزسه ساده‌جه اوْلاراق براوزئرین '''گئری''' دۆيمه‌سینه وۇرون.",
+       "newarticletext": "مووجود اوْلمايان صفحه‌‌يه اوْلان لینکی ایزله‌دینیز. \nآشاغیداکی یئره یازیلارینیزی يازیب، بۇ صفحه‌‌نی '''سیز''' يارادا بیلرسینیز. (آرتیق معلومات اۆچون [$1 کؤمک صفحه‌‌سینه] باخین). اگر بۇ صفحه‌‌يه ایشتباه گلمیسینیزسه تکجه براوزرین '''قایید''' دۆيمه‌سینه وۇرون.",
        "anontalkpagetext": "''بو صحیفه قئیدیات‌دان کئچممیش و یا داخیل اولمامیش آنونیم ایستیفادچییه عایید موذاکیره صحیفه‌سی‌دیر.\nاونا گؤره بو ایستیفادچینی رقم‌لردن عبارت ایپ اونوانی ایله معین ائتمک مجبوریتیندییک.\nبئله ایپ اونوان بیر نئچه فرد طرفین‌دن ایستیفاده‌ده اولا بیلر.\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}}| آختار]], علاقه‌‌لی قئيدلره \n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} باخا],\nو يا صحیفه‌‌نی  [{{fullurl:{{FULLPAGENAME}}|action=edit}} redaktə]</span> ائده بیلرسینیز.",
        "edit-no-change": "سیزین دییشدیر قئیده آلینمامیش‌دیر. بئله کی، متنده هئچ بیر دییشدیر ائدیلممیش‌دیر.",
        "postedit-confirmation-created": "بۇ صفحه یارانیب‌دیر.",
        "postedit-confirmation-restored": "صفحه گئری یوکلندی.",
-       "postedit-confirmation-saved": "سیزین دَییشدیرمه‌نیز قئید اولونوب‌دور.",
+       "postedit-confirmation-saved": "سیزین دَییشدیرمه‌نیز ذخیره اولدو.",
        "edit-already-exists": "یئنی صحیفنی یاراتماق مومکون دئییل.\nبئله کی، بو آددا صحیفه آرتیق مؤوجوددور.",
        "defaultmessagetext": "دفالت دانیشیق متنی",
        "content-failed-to-parse": "تجزیه محتوای $2  مدل اوچون $1: $3 موفقیت اله گلمه دی",
        "mergehistory-comment": "[[:$1]]، [[:$2]] ایله بیرلشدیریلدی: $3",
        "mergehistory-same-destination": "قایناق و مقصد صحیفه‌لر، بیر اولانمازلار",
        "mergehistory-reason": "ندن",
-       "mergelog": "بیرلشدیرمه سیاهی‌سی",
+       "mergelog": "بیرلشدیرمه ژورنالی",
        "revertmerge": "آيیر",
-       "mergelogpagetext": "آشاغدی‌دا، ان سون صحیفه بیرلشدیریلمه‌لری گؤستریلیر.",
+       "mergelogpagetext": "آشاغیدا، ان سون صفحه گئچمیشلری بیرلشدیریلمه‌لری سیرالانیر.",
        "history-title": "«$1»-ین گئچمیشی",
-       "difference-title": "«$1» نوسخه‌لرینین آراسینداکی فرقلری",
+       "difference-title": "«$1» نوسخه‌لرینین آراسینداکی فرقلری",
        "difference-title-multipage": "«$1» و «$2» صحیفه‌لرین آراسینداکی فرقلر",
        "difference-multipage": "(صفحه‌لر آراسینداکی فرق‌لر)",
        "lineno": "خط $1:",
        "diff-multi-otherusers": "({{PLURAL:$1|۱ میانی نوسخه لر|$1 میانی نوسخه لر}} دَییک اولونموش {{PLURAL:$2|۱ ایشلدچی|$2 ایشلدچی}}طرفیندن گوستریلمیر)",
        "diff-multi-manyusers": "{{PLURAL:$2|بیر|$2}}-دن چوخ ایستیفاده‌چی یارادان {{PLURAL:$1|بیر|$1}} نوسخه، گؤستریلمه‌ییب‌دیر",
        "difference-missing-revision": "بو فرقین ($1) {{PLURAL:$2|بیر|$2}} نوسخه‌سی تاپیلانمادی.\n\nعموماً بو خطا، سیلینن بیر صحیفه‌یه واختی گئچمیش بیر فرق باغلانتی‌سیلا گلمک ایله آرا گلر.\n[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}}سیلمک سیاهی‌سی]ندا باشقا بیلگیلر اولا بیلر.",
-       "searchresults": "آختاریش سونوجلاری",
-       "searchresults-title": "«$1» اوچون آختاریش سونوجلاری",
+       "searchresults": "آختاریش نتیجه‌لری",
+       "searchresults-title": "«$1» اوچون آختاریش نتیجه‌لری",
        "titlematches": "صحیفه‌‌ آدی عینیدیر",
        "textmatches": "یازی عینی‌دیر",
        "notextmatches": "هئچ بیر بنزر صحیفه یازی‌سی تاپیلمادی",
-       "prevn": "اؤنجه‌کی {{PLURAL:$1|$1}}",
+       "prevn": "قاباقکی {{PLURAL:$1|$1}}",
        "nextn": "سونراکی {{PLURAL:$1|$1}}",
-       "prev-page": "قاباغکی صحیفه",
+       "prev-page": "قاباقکی صفحه",
        "next-page": "سونراکی صفحه",
        "prevn-title": "قاباقکی {{PLURAL:$1|بیر|$1}} نتیجه",
        "nextn-title": "سونراکی {{PLURAL:$1|بیر|$1}} سونوج",
        "preferences": "ترجیحلر",
        "mypreferences": "ترجیحلر",
        "prefs-edits": "دَییشمه‌لرین سایی:",
-       "prefsnologintext2": "خواهیش اولونور تنظیملرینیزی دَییشمک اوچون گیریش ائدین.",
+       "prefsnologintext2": "لوطفا تنظیملرینیزی دَییشمک اوچون گیریش ائدین.",
        "prefs-skin": "قابیق",
        "skin-preview": "اؤن‌گؤستریش",
        "datedefault": "سئچیم‌سیز",
-       "prefs-labs": "آزÙ\85اÛ\8cÛ\8cØ´Û\8c Ø§Ø¤Ø²Ù\84â\80\8cÙ\84Û\8cÚ©لر",
+       "prefs-labs": "تست Ø®Û\86صÛ\87صÛ\8cتلر",
        "prefs-user-pages": "ایستیفاده‌چی صحیفه‌لری",
-       "prefs-personal": "اÛ\8cØ´Ù\84دÙ\86 Ù\88ئرÛ\8câ\80\8cÙ\84ری",
+       "prefs-personal": "اÛ\8cØ´Ù\84دÙ\86 Ù¾Ø±Ù\88Ù\81اÛ\8cÙ\84ی",
        "prefs-rc": "سوْن دَییشیکلیکلر",
        "prefs-watchlist": "ایزله‌دیکلر",
        "prefs-editwatchlist": "ایزله‌دیکلریم صفحه‌‌لری دَییشدیر",
        "prefs-editwatchlist-edit": "ایزلدیکلرینیزدن گورمک هابئله باشلیق لارین سیلمک",
        "prefs-editwatchlist-raw": "ایزله‌دیگیم خام لیستی دَییشدیر",
        "prefs-editwatchlist-clear": "ایزله دیگیم لیستی سیلمک",
-       "prefs-watchlist-days": "اÛ\8cزÙ\84Ù\87â\80\8cدÛ\8cÚ©â\80\8cÙ\84رÛ\8cÙ\85دÙ\87 Ú¯Ø¤Ø±Ø³Ø¯Û\8cÙ\84Ù\86 Ú¯Û\86Ù\86â\80\8cÙ\84ر",
+       "prefs-watchlist-days": "اÛ\8cزÙ\84Ù\87â\80\8cدÛ\8cÚ©â\80\8cÙ\84رÛ\8cÙ\85دÙ\87 Ú¯Ø¤Ø³ØªØ±Û\8cÙ\84Ù\86 Ú¯Û\86Ù\86Ù\84ر:",
        "prefs-watchlist-days-max": "چوخو {{PLURAL:$1|بیر|$1}} گون",
-       "prefs-watchlist-edits": "گنیشلنمیش ایزله‌ دیک لرده گؤرسدیلن دَییشیک‌لیک‌لرین چوْخو:",
+       "prefs-watchlist-edits": "گئنیشلنمیش ایزله‌‌دیک‌لرده گؤستریلن دَییشیک‌لیک‌لرین ان چوْخو:",
        "prefs-watchlist-edits-max": "چوخ سایی: ۱۰۰۰",
        "prefs-watchlist-token": "ایزله‌دیک‌لر آدرسی:",
        "prefs-misc": "باشقا",
        "columns": "سوتون‌لار",
        "searchresultshead": "آختار",
        "stub-threshold": "<a href=\"#\" class=\"stub\">باغلانتی‌سیز لینکی</a> دییشدیرمک اوچون حدود (بایت‌لارلا):",
+       "stub-threshold-sample-link": "میثال",
        "stub-threshold-disabled": "چالیشمایان",
-       "recentchangesdays": "سÙ\88Ù\92Ù\86 Ø¯Û\8cÛ\8cØ´Û\8cÚ©â\80\8câ\80\8cÙ\84ردÙ\87 Ú¯Ø¤Ø±Ø³Ø¯Û\8cÙ\84Ù\86 Ú¯Û\86Ù\86â\80\8cلر:",
+       "recentchangesdays": "سÙ\88Ù\92Ù\86 Ø¯Û\8cÛ\8cØ´Û\8cÚ©â\80\8câ\80\8cÙ\84ردÙ\87 Ú¯Ø¤Ø³ØªØ±Û\8cÙ\84Ù\86 Ú¯Û\86Ù\86لر:",
        "recentchangesdays-max": "ماکسیموم $1 {{PLURAL:$1|گون |گون}}",
        "recentchangescount": "سوْن ديَیشیک‌لیک‌لرده باشلیق سايی:",
        "prefs-help-recentchangescount": "بورایا یئنی دییشیک‌لیک‌لر، صحیفه‌لرین و ژورنال‌لارین تاریخچه‌سی داخیل‌دیر.",
        "timezoneregion-europe": "اوروپا",
        "timezoneregion-indian": "هیند اوقیانوسو",
        "timezoneregion-pacific": "بؤیوک اوقیانوس",
-       "allowemail": "باشÙ\82ا Ø§Û\8cØ´Ù\84دÙ\86â\80\8cÙ\84ردÙ\86 Ø§Û\8cÙ\85یل آلماغی آچ",
+       "allowemail": "Ø¢Û\8cرÛ\8c Ø§Û\8cØ´Ù\84دÙ\86Ù\84ردÙ\86 Ø§Û\8cÙ\85ئیل آلماغی آچ",
        "prefs-searchoptions": "آختار",
        "prefs-namespaces": "آدلار فضاسی:",
        "default": "فرض ائدیلن",
        "yourvariant": "دیل واریانتی:",
        "prefs-help-variant": "بو ویکی‌نین ایچینده‌کیلری‌نین گؤستریلدیگی اوچون سئچدیگینیز واریانت یوخسا اورتوقرافی.",
        "yournick": "یئنی ایمضا:",
-       "prefs-help-signature": "دانیشیق صحیفه‌لرینده یاخیشلار گرک «<nowiki>~~~~</nowiki>» ایله ایمضالانالار. بو نیشان اوتوماتیک‌جه سیزین آدینیز و تاریخه دؤنه‌جک‌دیر.",
+       "prefs-help-signature": "دانیشیق صفحه‌لرینده یازیلان باخیشلار گرک «<nowiki>~~~~</nowiki>» ایله ایمضالانا. بۇ علامت اوتوماتیک‌ شیکلده سیزین آدینیزلا تاریخه دؤنه‌جکدیر.",
        "badsig": "یانلیش خام ایمضا.\nاچ‌تی‌ام‌ال تگ‌لرینی یوخلایین.",
        "badsiglength": "ایمضانیز چوخ اوزون‌دور.\nاو گرک {{PLURAL:$1|بیر|$1}} حرف‌دن اوزون اولمایا.",
        "yourgender": "ترجیح وئریرسینیز نئجه توصیف اولونسون؟",
        "gender-unknown": "ترجیح وئریرم بیلیندیرمییم",
        "gender-male": "کیشی",
-       "gender-female": "خانیم",
-       "prefs-help-gender": "بÙ\88 ØªØ±Ø¬Û\8cØ­ Ø§Û\8cستگÙ\87 Ø¨Ø§ØºÙ\84Û\8câ\80\8cدÛ\8cر.\nبÙ\88Ù\86Ù\88Ù\86 Ù\85Û\8cÙ\82دارÛ\8cØ\8c Ø³Û\8cزÛ\8c Ø¨Ø§Ø´Ù\82اÙ\84ارا Ø¯Ù\88زگÙ\88Ù\86 Ø¢Ø¯Ø±Ø³ Ù\88ئرÙ\85Ú© Ø§Ù\88Ú\86Ù\88Ù\86 Ø§Û\8cØ´Ù\84Ù\86Ù\87â\80\8cجکدÛ\8cر.\nبÙ\88 Ø¨Û\8cÙ\84Ú¯Û\8c، عمومی اولاجاق‌دیر.",
+       "gender-female": "قادین",
+       "prefs-help-gender": "بÙ\88 ØªØ±Ø¬Û\8cØ­ Ø§Û\8cستگÙ\87 Ø¨Ø§ØºÙ\84Û\8câ\80\8cدÛ\8cر.\nبÙ\88Ù\86Ù\88Ù\86 Ù\85Û\8cÙ\82دارÛ\8cØ\8c Ø³Û\8cزÛ\8c Ø¢Û\8cرÛ\8cÙ\84ارÙ\84ا Ø¯Ù\88زگÙ\88Ù\86 Ø¢Ø¯Ø±Ø³ Ù\88ئرÙ\85Ú© Ø§Ù\88Ú\86Ù\88Ù\86 Ø§Û\8cØ´Ù\84Ù\86Ù\87â\80\8cجکدÛ\8cر.\nبÙ\88 Ø§Û\8cØ·Ù\84اعات، عمومی اولاجاق‌دیر.",
        "email": "ایمیل",
        "prefs-help-realname": "اصلی آد ایختیاری دیر.\nاگر اونو وئرماغی سئچسز، سیزین ایشلرینیزی سیزه مونتسب ائدن‌ده، بو اصلی آد ایشلنه‌جک‌دیر.",
        "prefs-help-email": "ایمیل آدرسی ایستگه باغلی‌دیر، آنجاق رمزینیزی اونوتدوغونوز واخت، سیزه يئنی رمز گؤندرمگه گرکلی‌دیر.",
        "prefs-help-email-others": "سیز هم‌ده آیری ایستیفاده‌چیلره ایجازه وئره بیلرسیز، سیزین ایستیفاده‌چی یا دانیشیق صحیفه‌نیزده بیر باغلانتی ایله، سیزله ایلگی قورسونلار.\nآیری ایستیفاده‌چیلر سیزینله ایلگی قوراندا، سیزین ایمیل آدرسیز گؤستریلمه‌یه‌جک‌دیر.",
        "prefs-help-email-required": "ایمیل آدرس گرکلی‌دیر.",
        "prefs-info": "کؤک بیلگی‌لر",
-       "prefs-i18n": "اولوسلارآراسی‌لاشدیرما",
+       "prefs-i18n": "میلتلرآراسیلاشدیرماق",
        "prefs-signature": "ایمضا",
        "prefs-dateformat": "تاریخ فورمتی",
        "prefs-timeoffset": "چاغ بؤلگه‌سینین فرقی",
        "userrights-unchangeable-col": "ديَیشدیره بیلمه‌دیگینیز قروپلار",
        "userrights-conflict": "ایستیفاده‌چی حاقلاری توققوشماسی! لوطفاً گوزله ین و دَییشدیرمه‌لرینیزی یئنی‌دن ائدین.",
        "userrights-removed-self": "سیز باشاریلیق‌لا اؤز حاق‌لارینیزی قالدیردینیز. اونا گؤره داها بو صحیفه‌یه یول تاپماغا قادیر دئییل‌سینیز.",
-       "group": "قروپ:",
+       "group": "گروه:",
        "group-user": "ایستفاده‌چیلر",
        "group-autoconfirmed": "اوتوماتیک دوغرولانمیش ایستیفاده‌چیلر",
        "group-bot": "بوتلار",
        "right-override-export-depth": "ایچری باغلانتیلاری اولان صحیفه‌لری، چوخو ۵ درجه درینلیگی ایله، ایخراج ائت",
        "right-sendemail": "باشقا ایستیفاده‌چیلره ایمیل گؤندر",
        "right-passwordreset": "رمز یئنی‌له‌مه ایمیل‌لرینه باخ",
-       "newuserlogpage": "ایشلدن یارادیلما قئیدی",
+       "grant-group-email": "ایمئیل گؤندر",
+       "newuserlogpage": "ایشلدن یارادیلما ژورنالی",
        "newuserlogpagetext": "بۇ ایشلدن یارادماق لیستی‌دیر.",
-       "rightslog": "اÛ\8cستÛ\8cÙ\81ادÙ\87â\80\8cÚ\86Û\8c Ø­Ø§Ù\82Ù\84ارÛ\8c Ø³Û\8cاÙ\87Û\8câ\80\8cسی",
-       "rightslogtext": "بÙ\88Ø\8c Ø§Û\8cستÛ\8cÙ\81ادÙ\87â\80\8cÚ\86Û\8c Ø­Ø§Ù\82Ù\84ارÛ\8cÙ\86ا Ø§Ù\88Ù\84اÙ\86 Ø¯Ù\8eÛ\8cÛ\8cØ´Û\8cÚ©Ù\84Û\8cÚ©Ù\84ر Ø³Û\8cاÙ\87Û\8câ\80\8cسÛ\8câ\80\8cدÛ\8cر.",
+       "rightslog": "اÛ\8cØ´Ù\84دÙ\86 Ø­Ø§Ù\82Ù\84ارÛ\8c Ú\98Ù\88رÙ\86اÙ\84ی",
+       "rightslogtext": "بÙ\88Ø\8c Ø§Û\8cØ´Ù\84دÙ\86 Ø­Ø§Ù\82Ù\84ارÛ\8cÙ\86ا Ø§Ù\88Ù\84اÙ\86 Ø¯Ù\8eÛ\8cÛ\8cØ´Û\8cÚ©Ù\84Û\8cÚ©Ù\84ر Ú\98Ù\88رÙ\86اÙ\84Û\8cدÛ\8cر.",
        "action-read": "بو صحیفه‌نی اوخو",
        "action-edit": "بو صحیفه‌نی دَییشدیر",
        "action-createpage": "صفحه یارات",
        "recentchanges": "سوْن دَییشیکلیکلر",
        "recentchanges-legend": "سون دَییشیکلیکلر سئچمه‌لری",
        "recentchanges-summary": "بۇ صفحه‌ده، بۇ ویکیده وئریلن ان سوْن دَییشیکلیکلری ایزله‌یین.",
-       "recentchanges-noresult": "وئریلمیش دؤنم‌ده، بو معیارلارا تطبیق اولان دَییشدیرمه یوخدور.",
+       "recentchanges-noresult": "وئریلمیش مودتده، بو معیارلارا تطبیق اولان دَییشدیرمه یوخدور.",
        "recentchanges-feed-description": "ویکی‌ده‌کی ان سون ديَیشیکلیک‌لری بو يايیم کانالیندان ایزله‌يین.",
        "recentchanges-label-newpage": "بو دییشیک یئنی بیر صفحه یاراتدی",
        "recentchanges-label-minor": "بو بیر کیچیک دَییشدیرمه‌دیر",
-       "recentchanges-label-bot": "بو دییشیک بیر بوت طرفیندن ائدیلیب‌دیر",
+       "recentchanges-label-bot": "بۇ دَییشیک بیر روْبات طرفیندن ائدیلیب‌دیر",
        "recentchanges-label-unpatrolled": "بو دییشیکلیک هله گؤزدن گئچیریلمه‌ییب‌دیر",
        "recentchanges-label-plusminus": "صفحه‌نین اؤلچوسو بایت میقداری ایله تعیین ائدیلیر",
        "recentchanges-legend-heading": "<strong>قیسالتمالار:</strong>",
        "rcshowhideminor": "کیچیک دَییشیکلری $1",
        "rcshowhideminor-show": "گؤستر",
        "rcshowhideminor-hide": "گیزلت",
-       "rcshowhidebots": "بÙ\88تلاری $1",
+       "rcshowhidebots": "رÙ\88باتلاری $1",
        "rcshowhidebots-show": "گؤستر",
        "rcshowhidebots-hide": "گیزلت",
        "rcshowhideliu": "یازیلمیش ایشلدنلری $1",
        "rcshowhidemine": "منیم دَییشیکلریمی $1",
        "rcshowhidemine-show": "گؤستر",
        "rcshowhidemine-hide": "گیزلت",
+       "rcshowhidecategorization": "صفحه‌لر بؤلمه‌لندیرمه‌سی $1",
        "rcshowhidecategorization-hide": "گیزلت",
        "rclinks": "سون $2 گون عرضینده‌کی سون  $1 ديَیشیکلیگی گؤستر <br />$3",
        "diff": "فرق",
        "number_of_watching_users_pageview": "[{{PLURAL:$1|بیر|$1}} ایزله‌ین ایستیفاده‌چی]",
        "rc_categories": "بؤلمه‌لره محدودلاشدیر («|» ایله آییر)",
        "rc_categories_any": "سئچیلمیشلرین هر بیریسی",
-       "rc-change-size-new": "دَییشیکلیک‌دن سونرا {{PLURAL:|بیر|$1}} بایت",
+       "rc-change-size-new": "دÙ\8eÛ\8cÛ\8cØ´Û\8cÚ©Ù\84Û\8cÚ©â\80\8cدÙ\86 Ø³Ù\88Ù\92Ù\86را {{PLURAL:|بÛ\8cر|$1}} Ø¨Ø§Û\8cت",
        "newsectionsummary": "/* $1 */ یئنی بؤلمه",
        "rc-enhanced-expand": "تفصیل‌لری گؤستر",
        "rc-enhanced-hide": "تفصیل‌لری گیزلت",
        "rc-old-title": "ایلک‌جه «$1» آدی‌له یارانمیشدیر",
-       "recentchangeslinked": "باغلی دَییشیکلیکلر",
-       "recentchangeslinked-feed": "باغلی دَییشیکلیکلر",
-       "recentchangeslinked-toolbox": "باغلی دَییشیکلیکلر",
-       "recentchangeslinked-title": "''$1'' Ø§Û\8cÙ\84Ù\87 Ø§Û\8cÙ\84Ú¯Û\8câ\80\8cلی دییشیکلر",
+       "recentchangeslinked": "باغلی دَییشیکلیکلر",
+       "recentchangeslinked-feed": "باغلی دَییشیکلیکلر",
+       "recentchangeslinked-toolbox": "باغلی دَییشیکلیکلر",
+       "recentchangeslinked-title": "''$1'' Ø§Û\8cÙ\84Ù\87 Ø¨Ø§Øºلی دییشیکلر",
        "recentchangeslinked-summary": "آشاغیداکی سیياهی، قئيد اوْلونان صحیفه‌‌يه (و يا قئيد اوْلونان کاتئقوْرياداکی صحیفه‌‌لره) داخیلی کئچید وئرن صحیفه‌‌لرده ائدیلمیش سوْن ديَیشیکلیکلرین سیياهیسیدیر. \n[[Special:Watchlist|ایزله‌مه سیياهینیزداکی]] صحیفه‌‌لر '''قالین''' شریفتله گؤستریلمیشدیر.",
        "recentchangeslinked-page": "صفحه آدی:",
        "recentchangeslinked-to": "قئيد اوْلونان صحیفه‌‌ده‌کی دئيیل، اوْنا داخیلی کئچید وئرن صحیفه‌‌لرده‌کی ديَیشیکلیکلری گؤستر",
        "upload-permitted": "{{PLURAL:$2|تیپ|تیپ لر}} مجاز پرونده لر: $1.",
        "upload-preferred": "ترجیح وئریلن فايل تیپلری{{PLURAL:$2|تیپ|تیپ لر}}: $1.",
        "upload-prohibited": "ایجازه وئریلمه‌ين فايل تیپلری{{PLURAL:$2|تیپ|تیپ لر}}: $1.",
-       "uploadlogpage": "یوکلمه قئیدلری",
-       "uploadlogpagetext": "آشاغÛ\8cدا Ø§Ù\86 Ø³Ù\88Ù\86 Û\8cÙ\88Ú©Ù\84Ù\87â\80\8cÙ\86Û\8cÙ\84Ù\86 Ù\81اÛ\8cÙ\84â\80\8cÙ\84ارÛ\8cÙ\86 Ù\84Û\8cستÛ\8c Ú¯Ø¤Ø³ØªØ±Û\8cÙ\84Û\8cر.\nداÙ\87ا Ú¯Ø¤Ø±Ù\88Ù\86Ù\88Ø´â\80\8cÙ\84Ù\88 Ú¯Ø¤Ø³ØªØ±Ù\85Ú© Ø§Ù\88Ú\86Ù\88Ù\86Ø\8c [[Special:NewFiles|Û\8cئÙ\86Û\8c Ù\81اÛ\8cÙ\84â\80\8cÙ\84ار Ú¯Ø§Ù\84ئری‌سینه]] باخین.",
+       "uploadlogpage": "یۆکله‌مه‌لر ژورنالی",
+       "uploadlogpagetext": "آشاغÛ\8cدا Ø§Ù\86 Ø³Ù\88Ù\92Ù\86 Û\8cÙ\88Ú©Ù\84Ù\87â\80\8cÙ\86Û\8cÙ\84Ù\86 Ù\81اÛ\8cÙ\84Ù\84ارÛ\8cÙ\86 Ù\84Û\8cستÛ\8c Ú¯Ø¤Ø³ØªØ±Û\8cÙ\84Û\8cر.\nداÙ\87ا Ú¯Ø¤Ø±Ù\88Ù\86Ù\88Ø´â\80\8cÙ\84Ù\88 Û\8cÙ\88Ù\92Ø®Ù\84اÙ\85اÙ\82 Ø§Ù\88Ú\86Ù\88Ù\86Ø\8c [[Special:NewFiles|Û\8cئÙ\86Û\8c Ù\81اÛ\8cÙ\84Ù\84ار Ù\82اÙ\84ری‌سینه]] باخین.",
        "filename": "فایل آدی",
        "filedesc": "قیساسی",
        "fileuploadsummary": "قیساسی:",
        "upload_source_url": "(سیز دوزگون، هر کسین داخیل اولا بیلجیی اورل سئچدینیز)",
        "upload_source_file": "(بیلگی‌سایارینیزدان بیر فایل سئچیلیب دیر)",
        "listfiles-delete": "سیل",
-       "listfiles-summary": "بۇ اؤزل صحیفه، بۆتون یۆکله‌نیلن فایل‌لاری گؤستریر.",
+       "listfiles-summary": "بۇ اؤزل صفحه، بۆتون یۆکله‌نیلن فایل‌لاری گؤستریر.",
        "listfiles_search_for": "مئدیا آدی اوچون آختار:",
        "listfiles-userdoesnotexist": "«$1» ایشلدن حسابی ثبت اولونماییب‌دیر.",
        "imgfile": "فایل",
        "listfiles": "فایل لیستی",
-       "listfiles_thumb": "Ú©Û\8cÚ\86Û\8cÚ© Ø´Ú©Û\8cÙ\84",
+       "listfiles_thumb": "Ú©Û\8cÚ\86Û\8cÚ© Ø¹Ú©Ø³",
        "listfiles_date": "تاریخ",
        "listfiles_name": "آد",
        "listfiles_user": "ایشلدن",
        "listfiles_size": "اؤلچو",
        "listfiles_description": "شرح",
        "listfiles_count": "نوسخه‌لر",
-       "listfiles-show-all": "عکسلرین اسکی نۆسخه‌لرینی ایچینه آل.",
+       "listfiles-show-all": "عکسلرین قاباقکی نۆسخه‌لرینی ایچینه آل.",
        "listfiles-latestversion": "ایندیکی نۆسخه",
        "listfiles-latestversion-yes": "بلی",
        "listfiles-latestversion-no": "یوخ",
        "filehist-revert": "قایتار",
        "filehist-current": "ایندیکی",
        "filehist-datetime": "تاریخ/واخت",
-       "filehist-thumb": "Ú©Û\8cÚ\86Û\8cÚ© Ø´Ú©Û\8cÙ\84",
+       "filehist-thumb": "Ú©Û\8cÚ\86Û\8cÚ© Ø¹Ú©Ø³",
        "filehist-thumbtext": "$1 تاریخینده‌کی سۆروموندن کیچیک گؤرونتوسو",
        "filehist-nothumb": "کیچیک شکیل یوخدو",
        "filehist-user": "ایشلدن",
        "unusedtemplateswlh": "باشقا باغلانتیلار",
        "randompage": "تصادوفی صفحه",
        "randompage-nopages": "بو {{PLURAL:$2|آدفضاسیندا|آدفضالاریندا}} هئچ صحیفه یوخدور: $1.",
-       "randomincategory": "بؤÙ\84Ù\85Ù\87â\80\8cدÙ\87 Ø±Ø§Ø³Øªâ\80\8cÚ¯Ù\84Ù\87 ØµØ­Û\8cÙ\81ه",
+       "randomincategory": "بؤÙ\84Ù\85Ù\87â\80\8cدÙ\87 ØªØµØ§Ø¯Ù\88Ù\81Û\8c ØµÙ\81Ø­ه",
        "randomincategory-invalidcategory": "«$1» بیر گئچرلی بؤلمه آدی دئییل.",
        "randomincategory-nopages": "[[:Category:$1|$1]] بؤلمه‌سین‌ده، هئچ صحیفه یوخدور.",
        "randomincategory-category": "بؤلمه:",
        "statistics-header-pages": "صفحه آمارلاری",
        "statistics-header-edits": "دَییشمه آمارلاری",
        "statistics-header-users": "ایشلدن‌لر آمارلاری",
-       "statistics-header-hooks": "باشÙ\82ا آمارلار",
+       "statistics-header-hooks": "Ø¢Û\8cرÛ\8c آمارلار",
        "statistics-articles": "مقاله‌لر",
        "statistics-pages": "صفحه‌لر:",
        "statistics-pages-desc": "بۇ ویکی‌ده بۆتون صفحه‌لر، او جومله‌دن دانیشیق صفحه‌لری، یوْل‌لاندیرمالار و غیره.",
        "statistics-users": "یازیلمیش [[Special:ListUsers|ایشلدنلر]]",
        "statistics-users-active": "چالیشقان ایشلدنلر",
        "statistics-users-active-desc": "سوْن {{PLURAL:$1|بیر|$1}} گۆن‌ده بیر ایش گؤرن ایشلدنلر",
-       "pageswithprop": "صحیفه اؤزل‌لیگی اولان صحیفه‌لر",
-       "pageswithprop-legend": "صحیفه اؤزل‌لیگی اولان صحیفه‌لر",
+       "pageswithprop": "صفحه خصوصیتی اولان صفحه‌لر",
+       "pageswithprop-legend": "صفحه خصوصیتی اولان صفحه‌لر",
        "pageswithprop-text": "بو صحیفه‌ده، بیر خاص صحیفه اؤزل‌لیگی ایشلدن صحیفه‌لرین لیستی واردیر.",
        "pageswithprop-prop": "اؤزل‌لیک آدی:",
        "pageswithprop-submit": "گئت",
        "brokenredirects-edit": "دَییشدیر",
        "brokenredirects-delete": "سیل",
        "withoutinterwiki": "دیل باغلانتیلاری اولمایان صحیفه‌لر",
-       "withoutinterwiki-summary": "آشاغیداکی صحیفه‌لر، باشقا دیل‌لره باغلانتیلاری یوخدور.",
+       "withoutinterwiki-summary": "آشاغیداکی صفحه‌لر، آیری دیل‌لره باغلانتیلاری یوخدور.",
        "withoutinterwiki-legend": "اؤن‌اَک",
        "withoutinterwiki-submit": "گؤستر",
        "fewestrevisions": "ان آز دَییشدیریلن صفحه‌لر",
        "nimagelinks": "$1 ده{{PLURAL:$1|صحیفه‌ده}}ایستیفاده اولونمور",
        "ntransclusions": "$1 ده{{PLURAL:$1|صحیفه‌ده}}ایستیفاده اولونور",
        "specialpage-empty": "بو صحیفه بوشدور",
-       "lonelypages": "يئتیم صحیفه‌‌لر",
+       "lonelypages": "يئتیم صفحه‌‌لر",
        "lonelypagestext": "آشاغی‌داکی صحیفه‌لره {{SITENAME}} سایتین‌داکی دیگر صحیفه‌لردن علاقه وئریلممیش یا دا چارپاز داخیل ائدیلممیش.",
        "uncategorizedpages": "بؤلمه‌سیز صفحه‌لر",
        "uncategorizedcategories": "بؤلمه‌سیز بؤلمه‌لر",
        "uncategorizedimages": "بؤلمه‌سیز فایللار",
        "uncategorizedtemplates": "بؤلمه‌سیز شابلونلار",
-       "unusedcategories": "اÛ\8cستÛ\8cÙ\81ادÙ\87 Ø§Ø¦دیلمه‌میش بؤلمه‌لر",
-       "unusedimages": "ایشلنمه‌میش فایل‌لار",
+       "unusedcategories": "اÛ\8cØ´Ù\84دیلمه‌میش بؤلمه‌لر",
+       "unusedimages": "ایشلدیلمه‌میش فایل‌لار",
        "wantedcategories": "یسته نن بؤلمه‌لر",
-       "wantedpages": "ایسته‌نیلن صحیفه‌لر",
+       "wantedpages": "ایسته‌نیلن صفحه‌لر",
        "wantedpages-badtitle": "مراجعت زامانتی يانلیش باشلیق: $1",
-       "wantedfiles": "ایسته نن فایللار",
+       "wantedfiles": "ایسته‌نیلن فایللار",
        "wantedfiletext-cat": "آشاغیداکی فایل‌لار ایشله‌نیبلر اما یوخدورلار. ائشیک آنباردا اولان فایل‌لار دا اولدوقلارینا باخمایاراق، لیست‌ده گلیبلر. ائله یانلیش باخیشلار <del>خطلنه‌جکلر</del>. هم‌ده، اولمایان فایل‌لاری ایشلدن صحیفه‌لر ده [[:$1]]-ده لیست اولونوبلار.",
        "wantedfiletext-cat-noforeign": "آشاغی دا کی اولان فایل لار ایستفاده اولونور سانکی یوخدولار. بوندان اونجه فایل لاری اولموش صفحه لر [[:$1]] ده لیست اولوب لار.",
        "wantedfiletext-nocat": "اشاغی داکی فایل لار ایستفاده اولور سانکی یوخدولار.حتی مومکین دیر خارجی حویض مخزن لریندن اولماق  ایله بو ردا فهرست اولا . وهر مثب رتبه سی یانلیش <del> خط یئمیش اولاجاق.</del>",
        "wantedfiletext-nocat-noforeign": "آشاغی داکی فایل لار ایشلنیلیر سانکی یوخدورلار.",
-       "wantedtemplates": "ایسته نن شابلونلار",
+       "wantedtemplates": "ایسته‌نیلن شابلونلار",
        "mostlinked": "ان چوخ کئچیدلنن صحیفه‌‌لر",
        "mostlinkedcategories": "ان چوخ مقاله‌سی اولان بولمه لر",
        "mostlinkedtemplates": "ان چوخ ایستیفاده اولونان صفحه لر",
        "prefixindex": "بوتون اؤن‌اَکلی صحیفه‌لر",
        "prefixindex-namespace": "بوتون صفحه لر (آد فضاسی$1) قاباق دان یاپیشیقی وار",
        "prefixindex-strip": "لیست‌ده، اؤن‌اَکی قوْپارت",
-       "shortpages": "قیسا صحیفه‌‌لر",
+       "shortpages": "قیسا صفحه‌‌لر",
        "longpages": "اۇزون صفحه‌‌لر",
        "deadendpages": "کئچید وئرمه‌ين صحیفه‌‌لر",
        "deadendpagestext": "آشاغیداکی صحیفه‌‌لردن بو ویکیپئدیياداکی دیگر صحیفه‌‌لره هئچ بیر کئچید يوخدور.",
        "apihelp": "API یاردیمی",
        "apihelp-no-such-module": "«$1» ماژول تاپیلمادی.",
        "apisandbox-reset": "تمیزله",
-       "apisandbox-examples": "میثال",
+       "apisandbox-examples": "میثاللار",
        "apisandbox-results": "نتیجه",
        "apisandbox-request-time": "زامان ایستمک:$1",
        "booksources": "کیتاب قایناقلاری",
        "booksources-invalid-isbn": "وئریلن ISBN اعتبارسیز کیمی گؤرونور؛ اورجینال قایناق‌دان کوپیالاما اشکالار اوچون نظارت ائدین.",
        "specialloguserlabel": "ائدن:",
        "speciallogtitlelabel": "مقصد(باشلیق یوْخسا {{ns:user}}:ایشلدن اۆچون ایشلدن آدی):",
-       "log": "قئیدلر",
-       "all-logs-page": "بÙ\88تÙ\88Ù\86 Ø§Ø¬ØªÙ\85اعÛ\8c Ù\82ئÙ\8aدÙ\84ر",
-       "alllogstext": "{{SITENAME}} اوچون بوتون مؤوجود قئیدلرین بیرگه گؤستریشی.\nقئید نؤوو، ایستیفاده‌چی آدی و یا تأثیر ائدیلمیش صحیفنی سئچمکله داها ایسپئسیفیک اولا بیلرسینیز.",
-       "logempty": "Ú\98Ù\88رÙ\86اÙ\84دا Ø§Ù\88Ù\8aغÙ\88Ù\86 Ù\82ئÙ\8aد تاپیلمادی.",
+       "log": "ژورناللار",
+       "all-logs-page": "بÙ\88تÙ\88Ù\86 Ø¹Ù\85Ù\88Ù\85Û\8c Ú\98Ù\88رÙ\86اÙ\84Ù\84ار",
+       "alllogstext": "{{SITENAME}} اوچون بوتون مؤوجود ژورناللارین بیر یئرده گؤستریشی.\nژورنال نوعو، ایشلدن آدی یوخسا دییشدیریلمیش صفحه لری سئچمکله داها محدودلاشدیرا بیلرسینیز.",
+       "logempty": "Ú\98Ù\88رÙ\86اÙ\84دا Ø¨Û\8cر Ù\86تÛ\8cجÙ\87 تاپیلمادی.",
        "log-title-wildcard": "بو متنله باشلایان باش‌لیق‌لاری آختار",
        "showhideselectedlogentries": "گؤستریش/گیزلمه سییاهه ده سئچیلمیش‌لر اوچون",
-       "allpages": "بوتون صحیفه‌لر",
-       "nextpage": "سونراکی صحیفه‌‌ ($1)",
-       "prevpage": "اولکی صحیفه ($1)",
-       "allpagesfrom": "بو حرفله باشلایان صحیفه‌لری گؤستر:",
-       "allpagesto": "بو حرفله باشلایان صحیفه لری گؤستر:",
-       "allarticles": "بوتون صحیفه‌لر",
+       "allpages": "بوتون صفحه‌لر",
+       "nextpage": "سونراکی صفحه‌‌ ($1)",
+       "prevpage": "قاباقکی صفحه ($1)",
+       "allpagesfrom": "بو حرفله باشلایان صفحه‌لری گؤستر:",
+       "allpagesto": "بو حرفله قورتولان صفحه لری گؤستر:",
+       "allarticles": "بوتون صفحه‌لر",
        "allinnamespace": "بوتون صحیفه‌لر ($1 صحیفه‌لری)",
        "allpagessubmit": "گئت",
        "allpagesprefix": "بورا یازدیغینیز حرف‌لرله باشلایان صحیفه‌لری سیاهی‌سینی:",
        "listgrouprights": "ایستیفاده‌چی قروپ حاقلاری",
        "listgrouprights-summary": "آشاغیدا، بو ویکی‌ده تانیلان ایستیفاده‌چی گروپلاری و اونلارین حاقلاری گؤستریلیر.\nتک حاقلار اوچون ده، [[{{MediaWiki:Listgrouprights-helppage}}|آرتیق بیلگیلر]] اولا بیلر.",
        "listgrouprights-key": "یوْل گؤستری:\n* <span class=\"listgrouprights-granted\">وئریلمیش حاق</span>\n* <span class=\"listgrouprights-revoked\">قایتاریلمیش حاق</span>",
-       "listgrouprights-group": "قروپ",
+       "listgrouprights-group": "گروه",
        "listgrouprights-rights": "حاقلار",
        "listgrouprights-helppage": "Help:قروپ حاقلاری",
        "listgrouprights-members": "(عضولرین لیستی)",
        "nowikiemailtext": "بو ایستیفاده‌چی، باشقا ایستیفاده‌چیلردن ایمیل آلماماغینی بیلدیریب‌دیر.",
        "emailnotarget": "آلان اوچون، اولمایان یوخسا گئچرسیز ایستیفاده‌چی آدی.",
        "emailtarget": "آلانین ایستیفاده‌چی آدینی دَییشدیر",
-       "emailusername": "اÛ\8cستÛ\8cÙ\81ادÙ\87â\80\8cÚ\86Û\8c آدی:",
+       "emailusername": "اÛ\8cØ´Ù\84دÙ\86 آدی:",
        "emailusernamesubmit": "گؤندر",
        "email-legend": "باشقا {{SITENAME}} ایستیفاده‌چیسینه ایمیل گؤندر",
        "emailfrom": "کیم‌دن:",
        "wlheader-showupdated": "سون گؤروشونوزدن سوْنرا ائدیلن دییشیکلیکلر '''قالین''' گؤرسدیلیب‌دیر.",
        "wlnote": "آشاغیداکی {{PLURAL:$1|بیر ديَیشیک‌لیک|<strong>$1</strong> ديَیشیک‌لیک}}  سون {{PLURAL:$2|ساعتدا|<strong>$2</strong> ساعتدا}} ائدیلمیشدیر. $3، $4",
        "wlshowlast": "سون $1 ساعات $2 گون گؤستر",
+       "watchlist-hide": "گیزلت",
+       "wlshowtime": "بو تاریخه قدر گؤستر:",
+       "wlshowhideminor": "کیچیک دَییشدیرمه‌لر",
+       "wlshowhideliu": "یازیلمیش ایشلدنلر",
+       "wlshowhidemine": "منیم دَییشدیرمه‌لریم",
+       "wlshowhidecategorization": "صفحه‌ بؤلمه‌لندیرمه‌سی",
        "watchlist-options": "ایزله‌دیکلر سئچمه‌لری",
        "watching": "ایزله‌نیلیر...",
        "unwatching": "ایزله‌مه...",
        "actioncomplete": "چالیشما سوناچاتدی",
        "actionfailed": "چالیشما اوغورسوز اولدو",
        "deletedtext": "\"$1\" سیلیندی.\nسونونجو سیلینمه‌لره باخ: $2.",
-       "dellogpage": "سیلمه قئیدی",
-       "dellogpagetext": "اÙ\86 Ø³Ù\88Ù\86 Ø³Û\8cÙ\84Û\8cÙ\86Ù\85Û\8cØ´ ØµØ­Û\8cÙ\81Ù\87â\80\8cÙ\84رÛ\8cÙ\86 Ø³Û\8cاÙ\87Û\8câ\80\8cسÛ\8c.",
+       "dellogpage": "سیلمه ژورنالی",
+       "dellogpagetext": "بÙ\88Ø\8c Ø§Ù\86 Ø³Ù\88Ù\86 Ø³Û\8cÙ\84Û\8cÙ\86Ù\85Û\8cØ´ ØµÙ\81Ø­Ù\87â\80\8cÙ\84رÛ\8cÙ\86 Ù\84Û\8cستÛ\8cدÛ\8cر.",
        "deletionlog": "سیلمه سییاهه‌سی",
        "reverted": "داها اوولکی وئرسیا برپا ائدیلدی",
        "deletecomment": "ندن:",
        "changecontentmodel-reason-label": "ندن:",
        "logentry-contentmodel-change-revertlink": "قایتار",
        "logentry-contentmodel-change-revert": "قایتار",
-       "protectlogpage": "قوروما قئیدلری",
+       "protectlogpage": "قوروما ژورنالی",
        "protectlogtext": "آشاغی‌داکی، صحیفه قوروما‌لارینا دییشیک‌لیک‌لرین بیر سیاهی‌سی‌دیر.\nحال-حاضردا تطبیق اولونان صحیفه قوروما‌لاری اوچون [[Special:ProtectedPages| قوروما آلتینا آلینمیش صحیفه‌لر سیاهی‌سینا]] باخا بیلرسینیز.",
        "protectedarticle": "«[[$1]]» قوْروندو",
        "modifiedarticleprotection": "\"[[$1]]\" صحیفه‌سی اوچون محافظه سویه‌سی دییشیلدی",
        "protect-locked-dblock": "وئریلن‌لر بازاسی کیلیدلی اولدوغو اوچون محافظه سویه‌سی دییشیله بیلمز.\n'$1 صحیفه‌سینده حال-حاضردا ائده بیلجیینیز عملیات‌لار بون‌لاردیر:",
        "protect-locked-access": "سیزین حسابینیزین محافظه سویه‌سینی دییشمه‌یه ایختیاری یوخ‌دور.\n'$1 صحیفه‌سینده حال-حاضردا ائده بیلجیینیز عملیات‌لار بون‌لاردیر:",
        "protect-cascadeon": "بو صحیفه محافظه‌لی‌دیر، چونکی بو صفحه {{PLURAL:$1|باشقا بیر}} صفحه‌دن کاسکاد محافظه ائدیلمیش‌دیر. سیز بو صفحه‌نین محافظه سویه‌سینی دییشدیره بیلرسینیز، بو کاسکاد محافظه‌یه تأثیر ائتمه‌یه‌جک.",
-       "protect-default": "بÙ\88تÙ\88Ù\86 Ø§Û\8cستÛ\8cÙ\81ادÙ\87â\80\8cÚ\86Û\8câ\80\8cلره ایجازه وئر",
+       "protect-default": "بÙ\88تÙ\88Ù\86 Ø§Û\8cØ´Ù\84دÙ\86لره ایجازه وئر",
        "protect-fallback": "یالنیز «$1» ایجازه‌سی اولان ایستیفاده‌چیلره ایجازه وئر",
        "protect-level-autoconfirmed": "تکجه اوْتوماتیک تأیید اوْلموش ایشلدن‌لره ایجازه وئر",
        "protect-level-sysop": "یالنیز ایداره‌چیلره ایجازه وئر",
        "anoncontribs": "چالیشمالار",
        "contribsub2": "{{GENDER:$3|$1}} اوچون ($2)",
        "contributions-userdoesnotexist": "«$1» ایشلدن حسابی ثبت اولونماییب‌دیر.",
-       "nocontribs": "بÙ\88 Ù\85Ù\88شخصاتا Ø§Ù\88Û\8cغÙ\88Ù\86 Ø¯Û\8cÛ\8cشدÛ\8cر ØªØ§Ù¾Û\8cÙ\84Ù\85ادÛ\8c",
+       "nocontribs": "بÙ\88 Ù\85Ù\88شخصاتا Ø§Ù\88Û\8cاÙ\86 Ø¯Û\8cÛ\8cØ´Û\8cÚ©Ù\84Û\8cÚ© ØªØ§Ù¾Û\8cÙ\84Ù\85ادÛ\8c.",
        "uctop": "(ایندیکی)",
        "month": "بۇ آی‌دان (و قاباقجا):",
        "year": "بۇ ایل‌دن (و قاباقجا):",
        "sp-contributions-newbies": "تکجه یئنی ایشلدنلرین چالیشمالارینی گؤستر",
        "sp-contributions-newbies-sub": "یئنی ایستیفاده‌چی‌لر اوچون",
        "sp-contributions-newbies-title": "یئنی حساب‌لار اوچون ایستیفاده‌چی فالیت‌لری",
-       "sp-contributions-blocklog": "باغلاما قئیدلری",
+       "sp-contributions-blocklog": "باغلاما ژورنالی",
        "sp-contributions-suppresslog": "باسدیریلمیش ایشلدن فعالیت‌لری",
        "sp-contributions-deleted": "سیلینمیش ایشلدن چالیشمالاری",
        "sp-contributions-uploads": "یوکله‌نَنلر",
        "sp-contributions-newonly": "تکجه صفحه یاراتماق دَییشیکلیکلرینی گؤستر",
        "sp-contributions-submit": "آختار",
        "whatlinkshere": "بۇ صفحه‌‌يه باغلانتیلار",
-       "whatlinkshere-title": "«$1»-ه باغلانان صحیفه‌لر",
+       "whatlinkshere-title": "«$1»-ه باغلانان صفحه‌لر",
        "whatlinkshere-page": "صفحه:",
        "linkshere": "آشاغیداکی صفحه‌لر '''[[:$1]]'''-ه باغلانیب:",
-       "nolinkshere": "'''[[:$1]]'''-ه هئچ بیر صحیفه باغلانماییب‌دیر.",
+       "nolinkshere": "<strong>[[:$1]]</strong>-ه هئچ بیر صفحه باغلانماییب‌دیر.",
        "nolinkshere-ns": "سئچیلمیش آدفضاسیندا، هئچ صحیفه '''[[:$1]]'''-ه باغلانتی‌سی یوخدور.",
        "isredirect": "یوللاندیرما صفحه‌سی",
        "istemplate": "داخیل اولموش",
        "whatlinkshere-prev": "{{PLURAL:$1|قاباقکی|قاباقکی $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|سونراکی|سونراکی $1}}",
        "whatlinkshere-links": "← باغلانتیلار",
-       "whatlinkshere-hideredirs": "یول‌لاندیرمالاری $1",
-       "whatlinkshere-hidetrans": "علاوه‌لری $1",
-       "whatlinkshere-hidelinks": "باغلانتیلاری $1",
+       "whatlinkshere-hideredirs": "$1 یول‌لاندیرمالاری",
+       "whatlinkshere-hidetrans": "$1 علاوه‌لری",
+       "whatlinkshere-hidelinks": "$1 باغلانتیلاری",
        "whatlinkshere-hideimages": "فایل باغلانتیلارینی $1",
        "whatlinkshere-filters": "سۆزگَجلر",
        "autoblockid": "اوتوماتیک باغلانما #$1",
        "blockip": " {{GENDER:$1|ایشلدن}}ی باغلا",
        "blockip-legend": "ایستیفادچی نی باغلا",
        "blockiptext": "آشاغی‌داکی فورمو ایستیفاده ائده‌رک مۆعیّن بیر آی‌پی‌نین و یا قئیدیات‌دان کئچمیش ایستیفاده‌چی‌نین دییشیک‌لیک ائتمه‌سینی مانعه تؤره‌ده بیلرسینیز. بۇ یالنیز واندالیزمین قارشی‌سینی آلماق اۆچون و [[{{MediaWiki:Policy-url}}|قایدا‌لارا]] اۇیغون اوْلا‌راق ائدیلمه‌لی. آشاغی‌یا مۆطلق قاداغا ایله علاقه‌دار بیر شرح یازین. (اؤرنک:-بۇ-صفحه‌لرده واندالیزم ائتمیشدیر).",
-       "ipaddressorusername": "آی-پی عونوانی و یا ایستیفاده‌چی آدی",
+       "ipaddressorusername": "آی‌پی آدرسی یوخسا ایشلدن آدی",
        "ipbexpiry": "بیتمه مدتی:",
        "ipbreason": "ندن:",
        "ipbreason-dropdown": "*باغلانما سبب‌لری:\n** یالان معلومات‌لارین علاوه ائدیلمه‌سی\n** صحیفه‌نین مزمونونون سیلینمه‌سی\n** خاریجی سایت‌لارا ایسپام-کئچیدلر\n** صحیفه‌یه معنا‌سیز و یارارسیز علاوه‌لره گؤره\n** حده و تعقیب‌لره گؤره\n** تحقیره گؤره\n** چوخسای‌لی حساب‌دان سوی ایستیفاده‌یه گؤره\n** قاداغان اولونموش ایستیفاده‌چی آدینا گؤره",
        "unblocked-range": "$1-نین بلوکو گؤتورولدو",
        "unblocked-id": "$1-نین بلوکو گؤتورولدو",
        "unblocked-ip": "[[Special:Contributions/$1|$1]] قاداغاسی قالدیریلدی.",
-       "blocklist": "بلوکلانمیش ایستیفاده‌چیلر",
-       "ipblocklist": "باغÙ\84اÙ\86Ù\85Û\8cØ´ Ø§Û\8cستÛ\8cÙ\81ادÙ\87â\80\8cÚ\86Û\8cلر",
-       "ipblocklist-legend": "بلوکلانمیش ایستیفاده‌چینی آختار",
+       "blocklist": "باغلانمیش ایشلدنلر",
+       "ipblocklist": "باغÙ\84اÙ\86Ù\85Û\8cØ´ Ø§Û\8cØ´Ù\84دÙ\86لر",
+       "ipblocklist-legend": "باغلانمیش ایشلدنی آختار",
        "blocklist-userblocks": "حساب بلوکلارینی گیزلت",
        "blocklist-tempblocks": "مووققتی بلوکلاری گیزله",
        "blocklist-addressblocks": "تک ای‌پی بلوکلارینی گیزله",
        "blocklist-rangeblocks": "ایندیکی بلوکلاری گیزله",
        "blocklist-timestamp": "واخت",
        "blocklist-target": "هدف",
-       "blocklist-expiry": "بیتیش تاریخی",
-       "blocklist-by": "بلوکلامیش ایداره‌چی",
-       "blocklist-params": "بلوک پارامئترلری",
+       "blocklist-expiry": "قورتولما تاریخی",
+       "blocklist-by": "باغلایان ایداره‌چی",
+       "blocklist-params": "باغلاما معیارلاری",
        "blocklist-reason": "نَدَن‌لیک",
        "ipblocklist-submit": "آختار",
        "ipblocklist-localblock": "يئرلی بلوک",
        "contribslink": "چالیشمالار",
        "emaillink": "ایمیل گؤندر",
        "autoblocker": "یاخینلیقدا سیزین آی‌پی آدرسیز «[[User:$1|$1]]» ایله ایشلدیلمک اوچون، اوتوماتیک اولاراق باغلانیلمیسیز.\n$1-ین وئریلمیش باغلانماق سببی: «$2»",
-       "blocklogpage": "باغلاما قئیدلری",
+       "blocklogpage": "باغلاما ژورنالی",
        "blocklog-showlog": "بو ایستیفاده‌چی داها اول بلوکلانمیش‌دیر. بلوکلاما گونده‌لیگی رئفئرانس اوچون آشاغیدا گؤستریلیب:",
        "blocklog-showsuppresslog": "بو ایستیفاده‌چی داها اول باغلانمیش‌دیر. باغلانما گونده‌لیگی رئفئرانس اوچون آشاغیدا گؤستریلیب:",
        "blocklogentry": "[[$1]]-ی $2 واختینه قدر بلوْکلادی $3",
        "reblock-logentry": "[[$1]] اوچون سون تاریخی $2 $3 اولماق اوزره بلوک پارامئترلری دییشدیریلدی",
-       "blocklogtext": "اÛ\8cستÛ\8cÙ\81ادÙ\87â\80\8cÚ\86Û\8câ\80\8cÙ\84رÛ\8cÙ\86 Ø¨Ø§ØºÙ\84اÙ\86Ù\85اسÛ\8c Ù\88 Ø¨Ø§ØºÙ\84اÙ\86Ù\85اÙ\82Û\8cÙ\86 Ú¯Ø¤ØªÙ\88رÙ\88Ù\84Ù\85Ù\87â\80\8cسÛ\8c Ø³Û\8cاÙ\87Û\8câ\80\8cسÛ\8c.\nØ¢Ù\88تÙ\88Ù\85اتÛ\8cÚ© Ø¨Ø§ØºÙ\84اÙ\86Ù\85Û\8cØ´ Ø§Û\8c Ù¾Û\8c-عÙ\86Ù\88اÙ\86â\80\8cÙ\84ار Ø¨Ù\88رادا Ú¯Ø¤Ø³ØªØ±Û\8cÙ\84Ù\85Û\8cر.\nحاÙ\84\87ازÛ\8cرکÛ\8c [[Special:BlockList|Ù\82اداغاâ\80\8cÙ\84ارÛ\8cÙ\86 Ù\88 Ø¨Ù\84Ù\88Ú©Ù\84اÙ\85اâ\80\8cÙ\84ارÛ\8cÙ\86 Ø³Û\8cاÙ\87Û\8câ\80\8cسÛ\8c]]Ù\86ا Ø¨Ø§Ø®.",
+       "blocklogtext": "بÛ\87 Ø§Û\8cØ´Ù\84دÙ\86Ù\84رÛ\8cÙ\86 Ø¨Ø§ØºÙ\84اÙ\86Ù\85ا Ø§Û\8cÙ\84Ù\87 Ø¢Ú\86Û\8cÙ\84Ù\85ا Ù\84Û\8cستÛ\8câ\80\8cدÛ\8cر.\nاÙ\88Ù\92تÙ\88Ù\85اتÛ\8cÚ© Ø¨Ø§ØºÙ\84اÙ\86Ù\85Û\8cØ´ Ø¢Û\8câ\80\8cÙ¾Û\8c Ø¢Ø¯Ø±Ø³Ù\84رÛ\8c Ø¨Û\87رادا Ø³Û\8cراÙ\84اÙ\86Ù\85اÛ\8cÛ\8cبâ\80\8cدÛ\8cر.\nاÛ\8cÙ\86دÛ\8cÚ©Û\8c ØªØ­Ø±Û\8cÙ\85Ù\84ر Ø§Û\8cÙ\84Ù\87 Ø¨Ø§ØºÙ\84اÙ\86Ù\85اÙ\84ار Ù\84Û\8cستÛ\8c Ø§Û\86Ú\86Ù\88Ù\86 [[Special:BlockList|باغÙ\84اتÙ\85ا Ù\84Û\8cستÛ\8cÙ\86Ù\87]]  Ø¨Ø§Ø®Û\8cÙ\86.",
        "unblocklogentry": "$1 اوزرین‌دکی آچیلدی",
        "block-log-flags-anononly": "\nتکجه تایید اوْلونمامیش ایشلدنلر",
        "block-log-flags-nocreate": "حساب یاراتماق اولماز",
        "movepage-page-moved": "$1 صحیفه‌سی $2 صحیفه‌سینه کؤچورولوب.",
        "movepage-page-unmoved": "$1 صحیفه‌سی $2 صحیفه‌سینه کؤچوروله بیلینمیر.",
        "movepage-max-pages": "ان چوخ $1 {{PLURAL:$1|صحیفه |صحیفه}} داشیندی و داها چوخو آوتوماتیک اولا‌راق تاشیناماز.",
-       "movelogpage": "آد Ø¯Ù\8aÛ\8cشدÛ\8cرÙ\85Ú© Ù\82ئÛ\8cدی",
+       "movelogpage": "آد Ø¯Ù\8eÙ\8aÛ\8cشدÛ\8cرÙ\85Ú© Ú\98Ù\88رÙ\86اÙ\84ی",
        "movelogpagetext": "آشاغی‌دا اوْلان لیست آدی دَییشدیریلمیش صفحه‌لری سیرالاییر.",
        "movesubpage": "{{PLURAL:$1|آلتینداکی صحیفه}}",
        "movesubpagetext": "بو صحیفه‌نین آشاغیدا گؤستریلن $1 {{PLURAL:$1 | آلت صحیفه سی | آلت صحیفه اسی}} وار.",
        "export": "صفحه‌‌لری ائشیگه چیخارت",
        "exporttext": "مویین بیر صحیفه و یا صحیفه کومانداسینین متنی و دییشدیرمه کئچمیشینی خمل ایله ساری‌لی اولا‌راق خاریجه کؤچوره بیلرسینیز.\nبو، مئدیاویکی ایستیفاده باشقا بیر ویکی [[Special:Import|ایچه کؤچورمه صحیفه‌سی]] ایله ایچه کؤچوروله بیلر.\n\nصحیفه‌لری خاریجه کؤچورمک اوچون، باش‌لیق‌لاری آشاغی‌داکی متن قوتوسونا داخیل ائدین، هر سطره بیر دنه، و کؤهنه سوروملئرلئ بیرلیکده ایندیکی وئرسیاسی، صحیفه کئچمیشی سطرلرینی، یا دا سون دییشیک‌لیک ملوماتییلا بیرلیکده آکتوال وئرسیاسی ایسته‌ییب ایستمدیگینیزی قئید ائدین.\n\nسونونجو حالدا، بیر لینک ده ایستیفاده ائده بیلرسینیز، هؤر: \"[[{{MediaWiki:Mainpage}}]]\" صحیفه‌سی اوچون [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]].",
        "exportall": "بوتون صحیفه‌لری خاریجه کؤچور",
-       "exportcuronly": "بوتون تاریخچنی دئییل، یالنیز حال-هازیرکی نوسخه نی داخیل ائت",
+       "exportcuronly": "بوتون گئچمیشی یوخ، تکجه ایندیکی نوسخه نی گیردیر",
        "exportnohistory": "هدف‌لنن قایناق صحیفه‌سی (ایسته‌یه باغ‌لی):",
        "exportlistauthors": "هر صحیفه‌‌ اوچون دَییشدیرمه ائدن سیياهیسینی اؤزونده ساخلايین",
-       "export-submit": "ایخراج",
-       "export-addcattext": "صحیفه‌لری بو بولمه دن علاوه ائت:",
+       "export-submit": "ائشیگه چیخارت",
+       "export-addcattext": "صفحه‌لری بو بؤلمه‌دن آرتیر:",
        "export-addcat": "آرتیر",
        "export-addnstext": "صحیفه‌لری آدلار فزاسین‌دان علاوه ائت:",
        "export-addns": "آرتیر",
-       "export-download": "فایلی قئید ائت",
-       "export-templates": "شابلون‌لاری داخیل ائت",
+       "export-download": "فایل کیمی ذخیره ائت",
+       "export-templates": "شابلونلاری گیردیر",
        "export-pagelinks": "باغ‌لی صحیفه‌لری داخیل درین‌لیک:",
+       "export-manual": "ال ایله صفحه‌لری آرتیر:",
        "allmessages": "سیستئم معلومات‌لاری",
        "allmessagesname": "آد",
        "allmessagesdefault": "دفالت دانیشیق متنی",
        "allmessagescurrent": "ایندیکی متن",
-       "allmessagestext": "بۇ مئدیاویکی-ده اوْلان سیستم مئساژلاری‌نین سیاهی‌سی‌دیر. اگر مئدیاویکی-نی لوْکاللاشدیرماق ایشینده کؤمک ائتمک ایسه‌يیرسینیزسه، لطفاً [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] و [//translatewiki.net translatewiki.net]-ه باش چکین.",
+       "allmessagestext": "بۇ مئدیاویکی-ده اوْلان سیستم مئساژلاری‌نین سیاهی‌سی‌دیر. اگر مئدیاویکی-نی لوْکاللاشدیرماق ایشینده کؤمک ائتمک ایسه‌يیرسینیزسه، لطفاً [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] و [https://translatewiki.net translatewiki.net]-ه باش چکین.",
        "allmessagesnotsupportedDB": "'''$ wgUseDatabaseMessages''' باغ‌لی اولدوغو اوچون '{{ns:special}}: Allmessages ایستیفاده‌یه آچیق دئییل.",
        "allmessages-filter-legend": "سۆزگَج",
        "allmessages-filter": "خصوصی ائتمک وضعیتینه گؤره فیلترلی:",
        "import-options-wrong": "{{PLURAL:$2|جزئیات| جزئیات}} یانلیش: <nowiki>$1</nowiki>",
        "import-rootpage-invalid": "وئریلن کؤک صحیفه‌‌سی اعتبارسیز آددیر.",
        "import-rootpage-nosubpage": "آد فضا سی  \"$1\" آنا باسئ ٔآلت صحیفه اوچون اجازه وئرمیر.",
-       "importlogpage": "Ú\86Û\8cخارÛ\8cÙ\84Ù\85ا Ú¯Ù\88Ù\86دÙ\87â\80\8cÙ\84Û\8cÚ¯ی",
+       "importlogpage": "Ú\86Û\8cخارÛ\8cÙ\84Ù\85ا Ú\98Ù\88رÙ\86اÙ\84ی",
        "importlogpagetext": "آیری ویکیلردن، دَییشیکلیک گئچمیشلریله بیرلیک‌ده گتیریلمیش صفحه‌لر.",
        "import-logentry-upload-detail": "{{PLURAL:$1|بیر|$1}} نوسخه ایچری گتیریلدی",
        "import-logentry-interwiki-detail": "$2-دن {{PLURAL:$1|بیر|$1}} نوسخه ایچری گتیریلدی",
        "tooltip-feed-atom": "بو صحیفه‌‌ اوچون آتوم يايیمی",
        "tooltip-t-contributions": "{{GENDER:$1|بۇ ایشلدنین}} وئردیگی دییشیکلر لیستی",
        "tooltip-t-emailuser": "بو ایستیفاده‌چی‌یه بیر ایمیل گؤندر",
-       "tooltip-t-info": "بÙ\88 ØµÙ\81Ø­Ù\87â\80\8cÛ\8cÙ\87 Ú¯Ø¤Ø±Ù\87 Ø¢Ø±ØªÛ\8cÙ\82 Ø¨Û\8cÙ\84Ú¯Û\8c",
+       "tooltip-t-info": "بÙ\88 ØµÙ\81Ø­Ù\87â\80\8cÛ\8cÙ\87 Ú¯Ø¤Ø±Ù\87 Ø¢Ø±ØªÛ\8cÙ\82 Ø§Û\8cØ·Ù\84اعات",
        "tooltip-t-upload": "فایل‌لار یوکله",
        "tooltip-t-specialpages": "بوتون اؤزل صفحه‌لرین لیستی",
        "tooltip-t-print": "بو صفحه‌‌نین چاپ ائدیلن سۆرومو",
        "spam_blanking": "$1-ه باغلانتیلاری اولان بوتون نوسخه‌لر، بوشادیلیر",
        "spam_deleting": "$1-ه باغلانتیلاری اولان بوتون نوسخه‌لر، سیلینیر",
        "simpleantispam-label": "ضد اِسپم یوخلاماسی.\nبورانی <strong>دولدورمایین</strong>!",
-       "pageinfo-title": "«$1» Ø§Ù\88Ú\86Ù\88Ù\86 Ø¨Û\8cÙ\84Ú¯Û\8cÙ\84ر",
+       "pageinfo-title": "«$1» Ø§Ù\88Ú\86Ù\88Ù\86 Ø§Û\8cØ·Ù\84اعات",
        "pageinfo-not-current": "تأسفله بو بیلگیلری اسکی نوسخه‌لره وئرمک اولانماز بیر ایش‌دیر.",
-       "pageinfo-header-basic": "اساس Ù\85عÙ\84Ù\88Ù\85اتâ\80\8cÙ\84ار",
-       "pageinfo-header-edits": "تارÛ\8cØ®Ú\86Ù\87 Ù\86Û\8c Ø¯Û\8cÛ\8cشدÛ\8cر",
-       "pageinfo-header-restrictions": "صفحه دن محافظت ائله مک",
+       "pageinfo-header-basic": "اصÙ\84Û\8c Ø§Û\8cØ·Ù\84اعات",
+       "pageinfo-header-edits": "دÙ\8eÛ\8cÛ\8cشدÛ\8cرÙ\85Ù\87 Ú¯Ø¦Ú\86Ù\85Û\8cØ´Û\8c",
+       "pageinfo-header-restrictions": "صفحه قوْروماسی",
        "pageinfo-header-properties": "صفحه خصوصیتلری",
        "pageinfo-display-title": "گؤستریلن باشلیق",
        "pageinfo-default-sort": "فرض ائدیلن سیرالاما آچاری",
-       "pageinfo-length": "صحیفه‌‌ اوزونلوغو (بايت)",
-       "pageinfo-article-id": "صحیفه آی‌دی-سی",
-       "pageinfo-language": "صحیفه مضمونونون دیلی",
+       "pageinfo-length": "صفحه‌‌ اوزونلوغو (بايت)",
+       "pageinfo-article-id": "صفحه آی‌دی-سی",
+       "pageinfo-language": "صفحه مضمونونون دیلی",
        "pageinfo-robot-policy": "بوتلارلا ایندِکسلنیر",
        "pageinfo-robot-index": "ایجازه‌لی",
        "pageinfo-robot-noindex": "ایجازه‌سیز",
-       "pageinfo-watchers": "صحیفه‌نین تاماشا‌چی سایی",
+       "pageinfo-watchers": "صفحه‌نین تاماشا‌چی سایی",
        "pageinfo-few-watchers": "$1-دن آز {{PLURAL:$1|ایزله‌ین}}",
        "pageinfo-redirects-name": "بو صحیفه‌یه یول‌لاندیرما سایی‌سی",
        "pageinfo-subpages-name": "بو صحیفه‌نین آلت‌صحیفه‌لری",
        "pageinfo-subpages-value": "$1 ({{PLURAL:$2|بیر|$2}} یول‌لاندیرما؛ {{PLURAL:$3|بیر|$3}} قِیری-یول‌لاندیرما)",
-       "pageinfo-firstuser": "صحیفنی یارا‌دان",
-       "pageinfo-firsttime": "صحیفه‌نین یارانما تاریخی",
+       "pageinfo-firstuser": "صفحه‌نی یارا‌دان",
+       "pageinfo-firsttime": "صفحه‌نین یارانما تاریخی",
        "pageinfo-lastuser": "سونونجو دییشدیرن",
        "pageinfo-lasttime": "سونونجو دییشدیر‌نین تاریخی",
        "pageinfo-edits": "دییشدیر‌لرین سایی",
        "pageinfo-authors": "فرق‌لی مؤلف‌لرین سایی",
-       "pageinfo-recent-edits": "سÙ\88Ù\86 Ø²Ø§Ù\85اÙ\86Ù\84ارداکÛ\8c ØªÙ\86زÛ\8cÙ\85Ù\84Ù\87â\80\8cÙ\85Ù\87â\80\8cÙ\84ر (سون $1)",
-       "pageinfo-recent-authors": "فرقلی يازارلارین سون سايی",
+       "pageinfo-recent-edits": "سÙ\88Ù\86 Ø¯Ù\8eÛ\8cÛ\8cشدÛ\8cرÙ\85Ù\87â\80\8cÙ\84ر Ø³Ø§Û\8cÛ\8c (سون $1)",
+       "pageinfo-recent-authors": "فرقلی يازانلارین سون سايی",
        "pageinfo-magic-words": "سیحیرلی {{PLURAL:$1|بیر|$1}} سؤزجوک ($1)",
        "pageinfo-hidden-categories": "گیزلی {{PLURAL:$1|بؤلمه|بؤلمه‌لر}} ($1)",
        "pageinfo-templates": "ایشله‌دیلمیش {{PLURAL:$1|بیر|$1}} شابلون ($1)",
        "markedaspatrollederror-noautopatrol": "اؤز دییشیک‌لیک‌لرینیزی یوخلاییب ایشاره‌له‌یه بیلمزسینیز.",
        "markedaspatrollednotify": "$1-اوستونده ديَیشیکلیک قئيد ائدیلمیشدیر، نئجه کی پاترول کئشیگی چکدی.",
        "markedaspatrollederrornotify": "دولانماق برچسبی مووفقیت سیز اولدو",
-       "patrol-log-page": "پاترول گونده‌لیگی",
-       "patrol-log-header": "بÙ\88 Û\8cÙ\88Ø®Ù\84اÙ\86Ù\85Û\8cØ´ Ø¯Û\8cÛ\8cØ´Û\8cÚ©â\80\8cÙ\84Û\8cÚ©â\80\8cÙ\84رÛ\8cÙ\86 Ú¯Ù\88Ù\86دÙ\87â\80\8cÙ\84Û\8cÚ¯ی‌دیر.",
+       "patrol-log-page": "دولانما ژورنالی",
+       "patrol-log-header": "بÙ\88 Û\8cÙ\88Ø®Ù\84اÙ\86Ù\85Û\8cØ´ Ø¯Û\8cÛ\8cØ´Û\8cÚ©â\80\8cÙ\84Û\8cÚ©â\80\8cÙ\84رÛ\8cÙ\86 Ú\98Ù\88رÙ\86اÙ\84ی‌دیر.",
        "log-show-hide-patrol": "$1 پاترول گونده‌لیگی",
+       "log-show-hide-tag": "اِتیکت ژورنالی $1",
        "deletedrevision": "کؤهنه نوسخه لری سیلیندی $1.",
        "filedeleteerror-short": "فایل سیلینرکن ختا: $1",
        "filedeleteerror-long": "فایل سیلینرکن اوزه چیخان ختا‌لار:\n\n$1",
        "file-info-png-frames": "$1 {{PLURAL:$1|فرامئ|چرچیوه}}",
        "file-no-thumb-animation": "'''قئید:تئکنیکی مسئله‌لر سببیندن قاباق دان گورسنمه فایل متحرک شکیلی گؤرستمیر .",
        "file-no-thumb-animation-gif": "'''قئید:فنی مسائیله گوره GIF  فایلارین و اونا تای اولانان لار  قالباق دان گورستمه پروقرمی متحرک حالیندا گورسدیلمیجک.'''",
-       "newimages": "یئنی فایل‌لارین سیاهی‌سی",
+       "newimages": "یئنی فایللارین لیستی",
        "imagelisttext": "آشاغی‌داکی سیاهی '$2 گؤره دوزولموش {{PLURAL:$1|ادد فایلی| ادد فای‌لی}} گؤستریر.",
        "newimages-summary": "بو خصوصی صحیفه، ان سون یوک‌لنن فایل‌لاری گؤستریر.",
        "newimages-legend": "سۆزگَج",
        "newimages-label": "فایلین (و یا اونون بیر حیسه‌سی‌نین) آدی:",
-       "newimages-showbots": "بÙ\88ت یوکله‌مه‌لرینی گؤستر",
+       "newimages-showbots": "رÙ\88بات یوکله‌مه‌لرینی گؤستر",
        "noimages": "هئچ نیی گؤرممک.",
        "ilsubmit": "آختار",
        "bydate": "تاریخین اوستوندن",
        "confirmrecreate-noreason": "[[User:$1|$1]] ([[User talk:$1|دانیشیق]]) آدلی ایستیفاده‌چی، سیز ديَیشیکلیک ائتمه‌يه باشلادیقدان سونرا بو صحیفه‌‌نی سیلدی. خاهیش ائدیریک بو صحیفه‌‌نی حقیقتن يئنیدن ياراتماق ایسته‌دیگینیزی تسدیق ائدین.",
        "recreate": "يئنیله‌مک",
        "confirm_purge_button": "اولدو",
-       "confirm-purge-top": "بو صحیفه‌‌ کئشدن (cache) سیلینسین؟",
-       "confirm-purge-bottom": "بیر صحیفه‌‌نی لغو ائتمک کئشی تمیزله‌ير و ان آکتوال دیستریبوتیوین گؤرونمه‌سینه مجبور ائدر.",
+       "confirm-purge-top": "بۇ صفحه‌‌ کشدن (cache) سیلینسین‌می؟",
+       "confirm-purge-bottom": "بیر صفحه‌‌نی یئنی‌له‌مک کشی تمیزله‌ير و سوْن نوسخه‌نین گؤرولمه‌سینه مجبور ائدیر.",
        "confirm-watch-button": "اولدو",
        "confirm-watch-top": "بو صفحه‌نی ایزله‌دیکلرینیزه آرتیریلدی",
        "confirm-unwatch-button": "اولدو",
        "confirm-unwatch-top": "بو صفحه‌نی ایزله‌دیگینیز صفحه‌لردن قالدیریلدی",
        "quotation-marks": "«$1»",
-       "imgmultipageprev": "&larr; اولکی صحیفه‌‌",
-       "imgmultipagenext": "سونراکی صحیفه‌‌ &rarr;",
+       "imgmultipageprev": "&rarr; قاباقکی صفحه‌‌",
+       "imgmultipagenext": "سونراکی صفحه‌‌ &larr;",
        "imgmultigo": "گئت!",
        "imgmultigoto": "$1 صحیفه‌‌يه گئت",
        "img-lang-default": "(وارساییلان دیل)",
        "ascending_abbrev": "آرتما سیراسینا گؤره",
        "descending_abbrev": "آزالما سیراسینا گؤره",
        "table_pager_next": "سوْنراکی صفحه",
-       "table_pager_prev": "قاباغکی صحیفه",
-       "table_pager_first": "اÛ\8cÙ\84Ú© ØµØ­Û\8cÙ\81ه‌‌",
-       "table_pager_last": "سون صحیفه‌‌",
+       "table_pager_prev": "قاباقکی صفحه",
+       "table_pager_first": "بÛ\8cرÛ\8cÙ\86جÛ\8c ØµÙ\81Ø­ه‌‌",
+       "table_pager_last": "سون صفحه‌‌",
        "table_pager_limit": "صحیفه‌‌ده $1 مؤوقئ سرگیله",
-       "table_pager_limit_label": "هر صحیفه‌ده اولان موردلر سایی‌سی",
+       "table_pager_limit_label": "هر صفحه‌ده اولان موردلر سایی‌سی",
        "table_pager_limit_submit": "گئت",
        "table_pager_empty": "نتیجه سیز",
        "autosumm-blank": "صفحه‌‌نی بوْشالتدی",
        "watchlistedit-clear-legend": "ایزلدیکلریمین لیستین سیل",
        "watchlistedit-clear-titles": "باشلیق‌لار:",
        "watchlisttools-clear": "ایزلدیکلریمین لیستین سیل",
-       "watchlisttools-view": "اÛ\8cÙ\84Ú¯Û\8cلی دَییشیکلیکلره باخین",
+       "watchlisttools-view": "باغلی دَییشیکلیکلره باخین",
        "watchlisttools-edit": "ایزله‌دیکلره باخ و اونلاری دَییشدیر",
        "watchlisttools-raw": "چیی ایزله‌دیکلری دَییشدیر",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|دانیشیق]])",
        "fileduplicatesearch-noresults": "\"$1\" آدیندا فایل تاپیلمادی.",
        "specialpages": "اؤزل صفحه‌لر",
        "specialpages-note": "* نورمال اؤزل صفحه‌لر.\n* <span class=\"mw-specialpagerestricted\">محدودلاشدیریلمیش اؤزل صفحه‌لر.</span>",
-       "specialpages-group-maintenance": "ساخلانیش راپورتلاری",
+       "specialpages-group-maintenance": "ساخلانیش گوزاریشلری",
        "specialpages-group-other": "آیری اؤزل صفحه‌لر",
        "specialpages-group-login": "گیریش / حساب یارات",
        "specialpages-group-changes": "سون دییشیک‌لیک‌لر و قئیدلر",
        "specialpages-group-highuse": "ان چوْخ ایشلدیلمیش صفحه‌لر",
        "specialpages-group-pages": "صفحه‌لرین لیست‌لری",
        "specialpages-group-pagetools": "صفحه آلتلری",
-       "specialpages-group-wiki": "بÛ\8cÙ\84Ú¯Û\8cÙ\84ر و آلتلر",
+       "specialpages-group-wiki": "دئÛ\8cتا و آلتلر",
        "specialpages-group-redirects": "مخصوص یوْللاندیرما صفحه‌لری",
        "specialpages-group-spam": "هرزه یازماق آلت‌لری",
        "blankpage": "بوش صفحه",
        "tag-filter": "[[Special:Tags|اِتیکِت]] سۆزگُجی:",
        "tag-filter-submit": "سۆزگَج",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|اِتیکِت|اِتیکِتلر}}]]: $2)",
-       "tags-title": "یاپیشقان",
-       "tags-intro": "بو صحیفه، یازیلیم دَییشدیرمه‌لری نیشانلایان اِتیکِتلری و اونلارین آنلاملارینی گؤستریر.",
-       "tags-tag": "یاپیشقان آدی",
-       "tags-display-header": "ديَیشیکلیک لیستئلئریندئکی گؤرونوش",
-       "tags-description-header": "آنلامینین تام آچیقلاماسی",
+       "tags-title": "اِتیکتلر",
+       "tags-intro": "بو صفحه، نرم افزار دَییشدیرمه‌لری علامتله‌ین اِتیکِتلری و اونلارین معنالارینی گؤستریر.",
+       "tags-tag": "اِتیکت آدی",
+       "tags-display-header": "ديَیشیکلیک لیستلرینده گؤرونوشو",
+       "tags-description-header": "معنانین بوتون توضیحی",
        "tags-source-header": "قایناق",
-       "tags-active-header": "چالیشقلان؟",
-       "tags-hitcount-header": "یاپیشقانلی دییشیک‌لیک‌لر",
+       "tags-active-header": "چالیشقان؟",
+       "tags-hitcount-header": "اِتیکتلی دَییشیک‌لیک‌لر",
        "tags-actions-header": "چالیشمالار",
        "tags-active-yes": "بلی",
        "tags-active-no": "یوْخ",
        "revdelete-restricted": "ایداره‌چیلره محدودیت قویدو",
        "revdelete-unrestricted": "ایداره‌چیلرین محدودیتلرینی گؤتوردو",
        "logentry-block-block": "$1 {{GENDER:$4|$3}}-نی {{GENDER:$2|باغلادی}}. قۇرتارماق تاریخی: $5 $6",
-       "logentry-block-unblock": "$1 {{GENDER:$4|$3}}-نین {{GENDER:$2|بلوکلاماغینی قالدیردی}}",
+       "logentry-block-unblock": "$1 {{GENDER:$4|$3}}-نین {{GENDER:$2|باغلانماغینی گؤتوردو}}",
        "logentry-import-upload": "$1 $3-نی فایل یوکله‌مه یولو ایله {{GENDER:$2|ایچری گتیردی}}",
        "logentry-import-upload-details": "$1 $3-نی فایل یوکله‌مه یولو ایله {{GENDER:$2|ایچری گتیردی}} ($4 {{PLURAL:$4|نوسخه}})",
        "logentry-import-interwiki-details": "$1 $3-نی $5-دن {{GENDER:$2|ایچری گتیردی}} ($4 {{PLURAL:$4|نوسخه}})",
+       "logentry-merge-merge": "$1  $3  ایله  $4-نی {{GENDER:$2| بیرلشدیردی}} ($5-جن نوسخه)",
        "logentry-move-move": "$1، $3 صفحه‌سینی $4-ه {{GENDER:$2|آپاردی}}",
        "logentry-move-move-noredirect": "$1، $3 صفحه‌سینی، یوْل‌لاندیرما قوْیماماق‌لا، $4-ه {{GENDER:$2|آپاردی}}",
        "logentry-move-move_redir": "$1، $3 صفحه‌سینی، $4-ده یوْل‌لاندیرما اۆستونه {{GENDER:$2|آپاردی}}",
        "logentry-rights-rights-legacy": "$1، $3-ین قروپ عوضولوگونو {{GENDER:$2|دَییشدیردی}}",
        "logentry-rights-autopromote": "$1-ین مقامی اوتوماتیک $4-دن $5-ه {{GENDER:$2|آرتیریلدی}}",
        "logentry-upload-upload": "$1 $3 را {{GENDER:$2|یوکلندیردی}}",
+       "log-name-managetags": "اِتیکت ایداره گئچمیشی",
+       "log-name-tag": "اِتیکت ژورنالی",
        "rightsnone": "(هئچ)",
        "revdelete-summary": "دَییشدیرمه قیساسی",
        "feedback-adding": "صحیفه‌یه گئری-بیلدیریم آرتیریلیر...",
        "duration-centuries": "{{PLURAL:$1|بیر|$1}} یوز-ایل",
        "duration-millennia": "{{PLURAL:$1|بیر|$1}} مین‌ایل",
        "rotate-comment": "عکس $1 {{PLURAL:$1|درجه}} ساعات عقربه‌لری ایستیقامتینده فیرلاندیریلب‌دیر",
+       "expandtemplates": "شابلونلاری گئنیشلتمه",
        "expand_templates_output": "سوْنوج",
        "expand_templates_ok": "اوْلسون",
        "expand_templates_remove_comments": "باخیش‌لاری سیل",
        "special-characters-title-minus": "منفی علامتی",
        "mw-widgets-dateinput-no-date": "تاریخ سئچیلمه‌ییب",
        "mw-widgets-titleinput-description-new-page": "صفحه هله‌لیک یوخدور",
-       "mw-widgets-titleinput-description-redirect": "$1-ه داشی"
+       "mw-widgets-titleinput-description-redirect": "$1-ه داشی",
+       "log-action-filter-block": "باغلانما نوعو:",
+       "log-action-filter-managetags": "ایداره نوعو:",
+       "log-action-filter-move": "حرکت نوعو:",
+       "log-action-filter-upload": "یۆکله‌مه نوعو",
+       "log-action-filter-managetags-create": "اِتیکت یاراتما",
+       "log-action-filter-managetags-delete": "اِتیکت سیلمه",
+       "log-action-filter-managetags-activate": "اِتیکت چالیشدیرما",
+       "log-action-filter-managetags-deactivate": "اِتیکت دَییشدیرمه",
+       "log-action-filter-upload-upload": "یئنی یۆکله‌مه",
+       "log-action-filter-upload-overwrite": "یئنیدن یۆکله‌مه"
 }
index 770cc08..7d76b81 100644 (file)
@@ -44,6 +44,7 @@
        "tog-watchdefault": "Мин үҙгәрткән биттәр һәм файлдар аңлатмаһын күҙәтеү исемлегенә өҫтәргә",
        "tog-watchmoves": "Мин исемен үҙгәрткән биттәрҙе һәм файлдарҙы күҙәтеү исемлегенә өҫтәргә",
        "tog-watchdeletion": "Мин юйған биттәрҙе һәм файлдарҙы күҙәтеү исемлегенә өҫтәргә",
+       "tog-watchuploads": "Мин йөкләгән файлдарҙы күҙәтеү исемлегемә индерергә",
        "tog-watchrollback": "Мин ебәргән биттәрҙе күҙәтеү исемлегенә өҫтәргә",
        "tog-minordefault": "Бөтә үҙгәртеүҙәрҙе, ғәҙәттә, әҙ үҙгәреш тип билдәләргә",
        "tog-previewontop": "Алдан байҡау тәҙрәһен мөхәррирләү битенең өҫтөнә ҡуйырға",
        "protectedpagetext": "Был бит мөхәррирләү өсөн ябыҡ.",
        "viewsourcetext": "Һеҙ был биттең сығанаҡ текстын ҡарай һәм күсермәһен ала алаһығыҙ:",
        "viewyourtext": "Был биттәге '''үҙгәртеүҙәрегеҙҙең''' сығанаҡ текстын ҡарай һәм күсермәһен ала алаһығыҙ:",
-       "protectedinterface": "Был биттә программаның интерфейс хәбәре бар. Вандализм осраҡтарын булдырмау өсөн, был битте үҙгәртеү тыйыла.\nБыл хәбәрҙең тәржемәһен өҫтәү йәки үҙгәртеү өсөн, зинһар, MediaWiki проектының [//translatewiki.net/ translatewiki.net] локалләштереү сайтын ҡулланығыҙ.",
-       "editinginterface": "'''Иғтибар.''' Һеҙ программаның арайөҙ тексы булған битте мөхәррирләйһегеҙ.\nУны үҙгәртеү башҡа ҡулланыусыларҙың арайөҙ күренешен үҙгәртәсәк.\nТәржемә өсөн [//translatewiki.net/wiki/Main_Page?setlang=ba translatewiki.net] адресын, MediaWiki-ны локалләштереү проектын ҡулланыу яҡшыраҡ буласаҡ.",
-       "translateinterface": "Был хәбәрҙе тәржәмә итү өсөн [//translatewiki.net/ translatewiki.net]сайтын ҡулланығыҙ.",
+       "protectedinterface": "Был биттә программаның интерфейс хәбәре бар. Вандализм осраҡтарын булдырмау өсөн, был битте үҙгәртеү тыйыла.\nБыл хәбәрҙең тәржемәһен өҫтәү йәки үҙгәртеү өсөн, зинһар, MediaWiki проектының [https://translatewiki.net/ translatewiki.net] локалләштереү сайтын ҡулланығыҙ.",
+       "editinginterface": "'''Иғтибар.''' Һеҙ программаның арайөҙ тексы булған битте мөхәррирләйһегеҙ.\nУны үҙгәртеү башҡа ҡулланыусыларҙың арайөҙ күренешен үҙгәртәсәк.\nТәржемә өсөн [https://translatewiki.net/wiki/Main_Page?setlang=ba translatewiki.net] адресын, MediaWiki-ны локалләштереү проектын ҡулланыу яҡшыраҡ буласаҡ.",
+       "translateinterface": "Был хәбәрҙе тәржәмә итү өсөн [https://translatewiki.net/ translatewiki.net]сайтын ҡулланығыҙ.",
        "cascadeprotected": "Был бит үҙгәртеүҙәрҙән һаҡланған, сөнки ул эҙмә-эҙлекле һаҡлау ҡуйылған {{PLURAL:$1|1=биткә|биттәргә}} керә:\n$2",
        "namespaceprotected": "«$1» исем арауығындағы биттәрҙе мөхәррирләү өсөн хоҡуҡтарығыҙ юҡ.",
        "customcssprotected": "Был CSS-битте үҙгәртеү хоҡуғығыҙ юҡ, сөнки унда башҡа ҡулланыусының шәхси көйләүҙәре бар.",
        "password-change-forbidden": "Был викиҙа серһүҙегеҙҙе үҙгәртә алмайһығыҙ.",
        "externaldberror": "Тышҡы мәғлүмәт базаһы менән танылғанда хата барлыҡҡа килде йәки тышҡы үҙ көйләүҙәрегеҙҙе үҙгәртер өсөн хоҡуҡтарығыҙ етәрле түгел.",
        "login": "Танылыу",
+       "login-security": "Үҙ шәхесегеҙҙе раҫлағыҙ",
        "nav-login-createaccount": "Танылыу йәки теркәлеү",
        "userlogin": "Танылыу йәки теркәлеү",
        "userloginnocreate": "Танылыу",
        "userlogin-resetpassword-link": "Серһүҙҙе оноттоғоҙмо?",
        "userlogin-helplink2": "Танылыу буйынса ярҙам",
        "userlogin-loggedin": " Һеҙ {{GENDER:$1|$1}} булараҡ индегеҙ инде. Башҡа файҙаланыусы булып инер өсөн аҫтағы ҡалыпты ҡулланығыҙ.",
+       "userlogin-reauth": "Һеҙ {{GENDER:$1|$1}} икәнегеҙҙе раҫлар өсөн, системаға яңынан инегеҙ.",
        "userlogin-createanother": "Башҡа иҫәп яҙмаһын булдырырға",
        "createacct-emailrequired": "Электрон почта адресы",
        "createacct-emailoptional": "Электрон почта адресы (мотлаҡ түгел)",
        "createacct-email-ph": "Электрон почта адресығыҙҙы яҙығыҙ",
        "createacct-another-email-ph": "Электрон почта адресығыҙҙы яҙығыҙ",
        "createaccountmail": "Осраҡлы рәүештә хасил ителгән ваҡытлыса серһүҙҙе файҙаланырға һәм уны миңә ошо электрон почтаһы адресына ебәрергә",
+       "createaccountmail-help": "Серһүҙен һорамайынса, башҡа кешегә иҫәп яҙмаһын төҙөү өсөн ҡулланыла ала.",
        "createacct-realname": "Ысын исемегеҙ (мотлаҡ түгел)",
        "createaccountreason": "Сәбәп:",
        "createacct-reason": "Сәбәп",
        "createacct-reason-ph": "Икенсе иҫәп яҙмаһы һеҙгә ни өсөн кәрәк?",
+       "createacct-reason-help": "Иҫәп яҙмаһын төҙөү журналында күренгән хәбәр",
        "createacct-submit": "Иҫәп яҙмаһын булдырырға",
        "createacct-another-submit": "Иҫәп яҙмаһын булдырырға",
+       "createacct-continue-submit": "Иҫәп яҙмаһын булдырыуҙы дауам итергә",
+       "createacct-another-continue-submit": "Иҫәп яҙмаһын булдырыуҙы дауам итергә",
        "createacct-benefit-heading": "{{SITENAME}} һеҙҙең кеүек үк кешеләр тарафынан булдырылған",
        "createacct-benefit-body1": "{{PLURAL:$1|үҙгәртеү}}",
        "createacct-benefit-body2": "{{PLURAL:$1|мәҡәлә|мәҡәлә|мәҡәләнең}}",
        "nocookiesnew": "Иҫәп яҙыуы яһалды, ләкин һеҙ танылмағанһығыҙ. {{SITENAME}} ҡатнашыусыны таныу өсөн «cookies» ҡуллана. Һеҙҙә «cookies» тыйылған. Зинһар, уларға рөхсәт бирегеҙ, шунан яңынан ҡатнашыусы исеме һәм серһүҙ менән танылығыҙ.",
        "nocookieslogin": "{{SITENAME}} ҡатнашыусыны таныу өсөн «cookies» ҡуллана. Һеҙҙә «cookies» тыйылған. Зинһар, уға рөхсәт бирегеҙ һәм яңынан керегеҙ.",
        "nocookiesfornew": "Иҫәп яҙмаһы булдырылманы, сөнки уның сығанағын тикшереү мөмкин түгел.\n\"Сookies\" эшләй икәнлеген тикшерегеҙ, битте яңыртығыҙ  һәм яңынан ҡабатлап ҡарағыҙ.",
+       "createacct-loginerror": "Иҫәп яҙмаһы уңышлы төҙөлдө, әммә һеҙ автоматик рәүештә системаға инә алманығыҙ. [[Special:UserLogin|Ҡулдан авторлаштырыуҙы үтегеҙ]].",
        "noname": "Ғәмәлдә булған ҡатнашыусы исемен керетмәнегеҙ.",
        "loginsuccesstitle": "Танышыу уңышлы үтте",
        "loginsuccess": "Хәҙер һеҙ $1 исеме менән эшләйһегеҙ.",
        "createacct-another-realname-tip": "Ысын исемегеҙ (мотлаҡ түгел).\nУны яҙып ҡуйһағыҙ, ул биткә кем төҙәтеү индергәнен күрһәтеү өсөн ҡулланыласаҡ.",
        "pt-login": "Танылыу",
        "pt-login-button": "Танылыу",
+       "pt-login-continue-button": "Инеүҙе дауам итергә",
        "pt-createaccount": "Яңы ҡатнашыусыны теркәү",
        "pt-userlogout": "Тамамлау",
        "php-mail-error-unknown": "PHP-ның mail() функцияһында билдәһеҙ хата",
        "botpasswords-invalid-name": "Күрһәтелгән ҡулланыусы исемендә робот $1 серһүҙен бүлеүсе тамға юҡ.",
        "botpasswords-not-exist": "$1 ҡулланыусыһының $2 роботы өсөн серһеҙе юҡ.",
        "resetpass_forbidden": "Серһүҙҙе үҙгәртеп булмай",
+       "resetpass_forbidden-reason": "Серһүҙҙәр үҙгәртелә алмай: $1",
        "resetpass-no-info": "Был битте туранан ҡарау өсөн һеҙгә системала танылырға кәрәк.",
        "resetpass-submit-loggedin": "Серһүҙҙе үҙгәртергә",
        "resetpass-submit-cancel": "Бөтөрөргә",
        "resetpass-temp-password": "Ваҡытлыса серһүҙ",
        "resetpass-abort-generic": "Серһүҙҙе үҙгәртеү киңәйеү тарафынан өҙөлдө.",
        "resetpass-expired": "Һеҙҙең серһүҙҙең ғәмәл ваҡыты үткән. Зинһар, системала танылыу өсөн яңы серҙһүҙ ҡуйығыҙ.",
-       "resetpass-expired-soft": "Һеҙҙең серһүҙ ваҡыты сыҡты, хәҙер ул үҙгәртелергә тейеш. Яңы серһүҙ һайлағыҙ, йәки уны үҙгәртеү өсөн «{{int:resetpass-submit-cancel}}» баҫығыҙ.",
+       "resetpass-expired-soft": "Һеҙҙең серһүҙ ваҡыты сыҡты, хәҙер ул үҙгәртелергә тейеш. Яңы серһүҙ һайлағыҙ, йәки уны үҙгәртеү өсөн «{{int:authprovider-resetpass-skip-label}}» баҫығыҙ.",
        "resetpass-validity-soft": "Ярамаған серһүҙ һайланған $1",
        "passwordreset": "Серһүҙҙе ташлатыу",
        "passwordreset-text-one": "Серһүҙегеҙҙе ташлар өсөн ош ҡалыпты тултырығыҙ.",
        "passwordreset-emailsentusername": "Әгәр был ҡатнашыусының исеменә бәйле  электрон почтаһының адресы булһа, ул саҡта  серһүҙҙе тергеҙеү өсөн  хат ебәреләсәк.",
        "passwordreset-emailsent-capture": "Серһүҙҙе ташлау тураһындағы мәғлүмәт менән электрон хат ебәрелде, уның тексы түбәндә бирелә:",
        "passwordreset-emailerror-capture": "Серһүҙҙе ташлау тураһында хәбәр итеүсе электрон хат булдырылғайны, ләкин уны  {{GENDER:$2|kullanıcıya}} түбәндәге сәбәп арҡаһында ебәреп булманы: $1",
+       "passwordreset-invalideamil": "Электрон почта адресы ҡабул ителмәй",
        "changeemail": "Электрон почта адресын үҙгәртергә",
        "changeemail-header": "Электрон почта адресын үҙгәртеү",
        "changeemail-passwordrequired": "Әлеге үҙгәрештәрҙе раҫлау өсөн, Һеҙгә ҡулланыусының серһүҙен яҙырға кәрәк",
        "minoredit": "Әҙ генә үҙгәрештәр",
        "watchthis": "Күҙәтеү исемлегенә",
        "savearticle": "Яҙҙырып ҡуйырға",
+       "publishpage": "Битте баҫтырырға",
        "preview": "Ҡарап сығыу",
        "showpreview": "Ҡарап сығырға",
        "showdiff": "Индерелгән үҙгәрештәр",
        "right-override-export-depth": "5-се тәрәнлеккә тиклем бәйле биттәре менән бергә биттәрҙе сығарыу",
        "right-sendemail": "Башҡа ҡатнашыусыларға электрон почта аша хат ебәреү",
        "right-passwordreset": "Серһүҙҙе яңыртыу осраҡтарын ҡарау",
-       "right-managechangetags": "[[Special:Tags|билдÓ\99лÓ\99Ñ\80]] Ð¼Ó\99Ò\93лүмÓ\99Ñ\82Ñ\82Ó\99Ñ\80 Ð±Ð°Ð·Ð°Ò»Ñ\8bнда Ñ\82Ó©Ò\99Ó©Ò¯ Ò»Ó\99м Ñ\8eйÑ\8bÑ\83",
+       "right-managechangetags": "[[Special:Tags|Ð\91илдÓ\99лÓ\99Ñ\80Ò\99е]] Ñ\82Ó©Ò\99Ó©Ò¯ Ò»Ó\99м (де)акÑ\82иваÑ\86иÑ\8f",
        "right-applychangetags": " [[Special:Tags|тамғаһын]] үҙегеҙҙең төҙөтеү менән ҡулланырға",
        "right-changetags": "Айырым үҙгәртеүҙәрҙә һәм журнал яҙмаланыда[[Special:Tags|тамғаһын]] өҫтәү һәм юйыу",
+       "right-deletechangetags": "[[Special:Tags|билдәләр]] мәғлүмәттәр базаһында төҙөү һәм юйыу",
        "grant-generic": "Хоҡуҡтар йыйынтығы «$1»",
        "grant-group-page-interaction": "Башҡа биттәр менән бәйләнеш",
        "grant-group-file-interaction": "Медиафайлдар менән бәйләнеш",
        "action-viewmyprivateinfo": "һеҙҙең шәхси мәғлүмәтте байҡау",
        "action-editmyprivateinfo": "һеҙҙең шәхси мәғлүмәтте мөхәррирләү",
        "action-editcontentmodel": "Биттең контент моделен мөхәррирләү",
-       "action-managechangetags": "Ð\9cÓ\99Ò\93лүмÓ\99Ñ\82 Ð±Ð°Ð·Ð°Ò»Ñ\8bнда Ñ\82амÒ\93а Ð±Ñ\83лдÑ\8bÑ\80Ñ\8bÑ\83 Ò»Ó\99м Ñ\8eйÑ\8bÑ\83",
+       "action-managechangetags": "билдÓ\99лÓ\99Ñ\80Ò\99е Ñ\82Ó©Ò\99Ó©Ò¯ Ò»Ó\99м (де)акÑ\82иваÑ\86иÑ\8f",
        "action-applychangetags": "Һеҙҙең үҙгәрештәр ТЕГын булдырырға",
        "action-changetags": "Айырым үҙгәртеүҙәрҙә һәм журнал яҙмаланыда тег өҫтәү һәм юйыу",
+       "action-deletechangetags": "билдәләрҙе мәғлүмәт базаһынан юйыу",
        "nchanges": "$1 {{PLURAL:$1|үҙгәртәү|үҙгәртеүҙәр}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|һеҙҙең һуңғы визит}}",
        "enhancedrc-history": "тарих",
        "apisandbox": "API һынау урыны",
        "apisandbox-jsonly": " API-һынап ҡарау урыны өсөн  JavaScript талап ителә.",
        "apisandbox-api-disabled": "Был сайтта API һүндерелгән.",
-       "apisandbox-intro": "Был битте <strong>MediaWiki API</strong> менән тәжрибәләр өсөн ҡулланығыҙ. API ҡулланыуҙа тулыраҡ мәғлүмәт өсөн    [[mw:API:Main page| API документацияһы]] мөрәжәғәт итегеҙ. Мәҫәлән, [//www.mediawiki.org/wiki/API#A_simple_example Баш биттең йөкмәткеһен нисек алырға]. Башҡа миҫалдарҙы ҡарау өсөн ғәмәл һайлағыҙ. Иғтибар, тәжрибәләр өсөн ҡулланылһа ла, был биттә башҡарылған ғәмәлдәр викиға үҙгәрештәр индерә ала.",
+       "apisandbox-intro": "Был битте <strong>MediaWiki API</strong> менән тәжрибәләр өсөн ҡулланығыҙ. API ҡулланыуҙа тулыраҡ мәғлүмәт өсөн    [[mw:API:Main page| API документацияһы]] мөрәжәғәт итегеҙ. Мәҫәлән, [https://www.mediawiki.org/wiki/API#A_simple_example Баш биттең йөкмәткеһен нисек алырға]. Башҡа миҫалдарҙы ҡарау өсөн ғәмәл һайлағыҙ. Иғтибар, тәжрибәләр өсөн ҡулланылһа ла, был биттә башҡарылған ғәмәлдәр викиға үҙгәрештәр индерә ала.",
        "apisandbox-fullscreen": "Панелды асырға",
        "apisandbox-fullscreen-tooltip": "Браузер тәҙрәһен тултырыу өсөн һынап ҡарау панелен асырға.",
        "apisandbox-unfullscreen": "Битте күрһәтергә",
        "whatlinkshere-prev": "{{PLURAL:$1|1=алдағы}} $1",
        "whatlinkshere-next": "{{PLURAL:$1|1=киләһе}} $1",
        "whatlinkshere-links": "← һылтанмалар",
-       "whatlinkshere-hideredirs": "Йүнәлтеүҙәрҙе $1",
+       "whatlinkshere-hideredirs": "$1 йүнәлтеүҙәре",
        "whatlinkshere-hidetrans": "Ҡушылғандарҙы $1",
-       "whatlinkshere-hidelinks": "Һылтанмаларҙы $1",
-       "whatlinkshere-hideimages": "файл һылтанмаларын $1",
+       "whatlinkshere-hidelinks": "$1 һылтанмалар",
+       "whatlinkshere-hideimages": "$1 файл һылтанмалары",
        "whatlinkshere-filters": "Һайлау",
        "whatlinkshere-submit": "Күсергә",
        "autoblockid": "Автобикләү #$1",
        "ipb-unblock": "Ҡатнашыусының йәки IP адрестың биген алырға",
        "ipb-blocklist": "Булған бикләүҙәрҙе күрһәтергә",
        "ipb-blocklist-contribs": "$1 ҡатнашыусыһының кереткән өлөшө",
+       "ipb-blocklist-duration-left": "$1 ҡалды",
        "unblockip": "Ҡатнашыусының биген алырға",
        "unblockiptext": "Бикләнгән IP адрестан йәки иҫәп яҙмаһынан яҙыу мөмкинлеген тергеҙеү өсөн, түбәндәге форманы ҡулланығыҙ.",
        "ipusubmit": "Был бикте алырға",
        "lockdbsuccesstext": "Мәғлүмәттәр базаһы бикләнде. <br />\nХеҙмәтләндереү тамамланғас та [[Special:UnlockDB|бикте алырға]] онотмағыҙ.",
        "unlockdbsuccesstext": "Мәғлүмәттәр базаһының биге алынды.",
        "lockfilenotwritable": "Мәғлүмәттәр базаһын бикләү файлына яҙыуға рөхсәт юҡ.\nМәғлүмәттәр базаһын бикләү һәм бикте алыу өсөн, веб-серверҙың был файлға яҙырға рөхсәте булырға тейеш.",
+       "databaselocked": "Мәғлүмәттәр базаһы бикләнгән.",
        "databasenotlocked": "Мәғлүмәттәр базаһы бикләнмәгән.",
        "lockedbyandtime": "($1 $2 $3)",
        "move-page": "$1 — исемен үҙгәртеү",
        "allmessagesname": "Хәбәр",
        "allmessagesdefault": "Ғәҙәттәге яҙма",
        "allmessagescurrent": "Хәҙерге яҙма",
-       "allmessagestext": "Түбәндә MediaWiki исемдәр арауығында ҡулланылған система хәбәрҙәре исемлеге килтерелгән.\nӘгәр MediaWiki программаһын дөйөм локалләштереү эшенә үҙ өлөшөгөҙҙө керетергә теләһәгеҙ, [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki программаһын локалләштереү] битен һәм [//translatewiki.net translatewiki.net] проектын ҡарап сығығыҙ.",
+       "allmessagestext": "Түбәндә MediaWiki исемдәр арауығында ҡулланылған система хәбәрҙәре исемлеге килтерелгән.\nӘгәр MediaWiki программаһын дөйөм локалләштереү эшенә үҙ өлөшөгөҙҙө керетергә теләһәгеҙ, [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki программаһын локалләштереү] битен һәм [https://translatewiki.net translatewiki.net] проектын ҡарап сығығыҙ.",
        "allmessagesnotsupportedDB": "Был бит ҡулланыла алмай, сөнки '''$wgUseDatabaseMessages''' мөмкинлеге һүндерелгән.",
        "allmessages-filter-legend": "Һайлау",
        "allmessages-filter": "Үҙгәртеү торошо буйынса һайлау:",
        "tooltip-ca-nstab-category": "Категория бите",
        "tooltip-minoredit": "Текст әҙ үҙгәртелгән тип билдәләргә",
        "tooltip-save": "Үҙгәртеүҙәрҙе һаҡларға",
+       "tooltip-publish": "Һеҙҙең үҙгәртеүҙәрҙе баҫтырыу",
        "tooltip-preview": "Алдан байҡау, һаҡлауҙан алда уны ҡулланып үҙгәртеүҙәрегеҙҙе ҡарап сығығыҙ!",
        "tooltip-diff": "Сығанаҡ текстҡа ҡарата эшләгән үҙгәртеүҙәрҙе күрһәтергә.",
        "tooltip-compareselectedversions": "Был биттең һайланған ике өлгөһө араһындағы айырманы ҡарарға",
        "confirm-unwatch-button": "Тамам",
        "confirm-unwatch-top": "Был битте күҙәтеү исемлегенән сығарырғамы?",
        "confirm-rollback-button": "Яҡшы",
+       "confirm-rollback-top": "Был биттәге үҙгәртеүҙе кире алырғамы?",
        "quotation-marks": "\"$1\"",
        "imgmultipageprev": "← алдағы бит",
        "imgmultipagenext": "киләһе бит →",
        "searchsuggest-containing": "эстәлегендә...",
        "api-error-badaccess-groups": "Һеҙгә был викиға файлдар күсереү рөхсәт ителмәй",
        "api-error-badtoken": "Эске хата: дөрөҫ булмаған токен",
+       "api-error-blocked": "Мөхәррирләү һеҙҙең өсөн бикләнде.",
        "api-error-copyuploaddisabled": "Был серверҙа URL адрес буйынса йөкләү өҙөлгән",
        "api-error-duplicate": "Бындай эстәлекле {{PLURAL:$1|файл}}  бар.",
        "api-error-duplicate-archive": "Сайтта бындай эстәлекле {{PLURAL:$1|башҡа файл}} бар ине инде, ләкин {{PLURAL:$1|1=ул юйылды|улар юйылды}}",
        "randomrootpage": "Ярҙам кәрәкме?",
        "log-action-filter-block": "Блоклау төрө:",
        "log-action-filter-delete": "Юйҙырыу төрө:",
+       "log-action-filter-import": "Импорт төрө:",
        "log-action-filter-patrol": "Патруль төрө:",
        "log-action-filter-protect": "Һаҡлау төрө:",
        "log-action-filter-upload": "Күсереү төрө:",
        "log-action-filter-block-block": "Бикләргә",
        "log-action-filter-block-reblock": "Бикте үҙгәртеү",
        "log-action-filter-block-unblock": "Бикте алырға",
+       "log-action-filter-contentmodel-change": "Эстәлек моделен үҙгәртергә",
        "log-action-filter-delete-delete": "Битте юйыуҙар",
        "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-newusers-autocreate": "Автоматик төҙөү",
        "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-upload-upload": "Яңы күсереү",
        "log-action-filter-upload-overwrite": "Ҡабаттан тейәү",
+       "authmanager-create-disabled": "Иҫәп яҙмаһын булдырыу бикләнгән.",
+       "authmanager-authplugin-setpass-failed-title": "Серһүҙҙе үҙгәртеү хатаһы",
        "authmanager-userdoesnotexist": "\"$1\" иҫәп яҙмаһы теркәлмәгән.",
+       "authmanager-domain-help": "Тышҡы аутентификация домены (өҫтәмә).",
        "authmanager-email-label": "Электрон почта адресы",
        "authmanager-email-help": "Электрон почта адресы",
        "authmanager-realname-label": "Ысын исемегеҙ",
        "authprovider-resetpass-skip-label": "Ҡалдырып торорға",
-       "changecredentials-submit": "Үҙгәртергә",
-       "changecredentials-submit-cancel": "Кире алырға",
-       "removecredentials-submit": "Юйырға",
-       "removecredentials-submit-cancel": "Кире алырға"
+       "cannotauth-not-allowed": "Һеҙ был битте ҡуллана алмайһығыҙ.",
+       "changecredentials": "Иҫәп мәғлүмәттәрен үҙгәртеү",
+       "changecredentials-submit": "Иҫәп мәғлүмәттәрен үҙгәртеү",
+       "removecredentials": "Иҫәп мәғлүмәттәрен юйырға",
+       "removecredentials-submit": "Иҫәп мәғлүмәттәрен юйырға",
+       "credentialsform-account": "Иҫәп яҙмаһы исеме:"
 }
diff --git a/languages/i18n/ban.json b/languages/i18n/ban.json
new file mode 100644 (file)
index 0000000..76dcb87
--- /dev/null
@@ -0,0 +1,535 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Adi Mayndra",
+                       "Andru",
+                       "BASAbali",
+                       "M. Adiputra",
+                       "Naval Scene",
+                       "Nemo bis",
+                       "NoiX180",
+                       "아라"
+               ]
+       },
+       "tog-underline": "isinin garis ring beten pranala",
+       "tog-hideminor": "engkebang suntingan ring gentosan sane pinih anyar",
+       "tog-hidepatrolled": "engkebang suntingan mapatrol ring gentosan sane pinih anyar",
+       "tog-newpageshidepatrolled": "engkebang lembar mapatrol saking saking kepahan lembar anyar",
+       "tog-extendwatchlist": "kembangang kepahan pangiwasan antuk nampilang samian panguwahan, nenten sane anyar kewanten",
+       "tog-usenewrc": "aniang suntingan ring tampilan pagentosan sane pinih anyar lan kepahan pangiwasan manutin lembar",
+       "tog-numberheadings": "isinin nomor murda anggen cara otomatis",
+       "tog-showtoolbar": "tampilang pekakas panyuntingan",
+       "tog-editondblclick": "sunting lembar nganggen klik kaping pindo",
+       "tog-editsectiononrightclick": "sayagayang panyuntingan kepahan anggen ngeklik tengen ring kepahan judul",
+       "tog-watchcreations": "imbuhin lembar sane karyanin titiang ring kepahan pangiwasan",
+       "tog-watchdefault": "imbuhin lembar panyuntingansane sunting titiang ring kepahan pangiwasan",
+       "tog-watchmoves": "imbuhang lembar sane kakisidang titiang ring kepahan pangiwasan",
+       "tog-watchdeletion": "imbuhin lembar sane kaapus ring kepahan pangiwasan",
+       "tog-minordefault": "pingetin samian suntingan dados suntingan alit sane ajeg",
+       "tog-previewontop": "tampilang pratayang sadurung kotak sunting lan nenten sadurungnyane",
+       "tog-previewonfirst": "tampilang pratayang ring suntingan kapertama",
+       "tog-enotifwatchlistpages": "kirimang titiang email yening wenten lembar utawi pupulan ring kepahan sane magentos",
+       "tog-enotifusertalkpages": "kirimang titiang email yening lembar wacan titiang magentos",
+       "tog-enotifminoredits": "taler kirimang titiang email ring panguwahan alit",
+       "tog-enotifrevealaddr": "kirimang titiang alamat email ring catetan email",
+       "tog-shownumberswatching": "tampilang akehnyane sane ngiwasin",
+       "tog-oldsig": "tanda tangan mangkin",
+       "tog-fancysig": "dadosang tanda tangan dados teks wiki (nenten pranala otomatis)",
+       "tog-uselivepreview": "anggen pratayang langsung(experimental)",
+       "tog-forceeditsummary": "elingang titiang yening kotak ringkesan suntingan kari kosong",
+       "tog-watchlisthideown": "engkebang panguwahan titiang saking kepahan pangiwasan",
+       "tog-watchlisthidebots": "engkebang panguwahan bot ring kepahan pangiwasan",
+       "tog-watchlisthideminor": "engkebang panguwahan alit ring kepahan pangiwasan",
+       "tog-watchlisthideliu": "engkebang suntingan penganggen malebu log ring kepahan pangiwasan",
+       "tog-watchlisthideanons": "engkebangsuntingan penganggen tan maadan ring kepahan pangiwasan",
+       "tog-watchlisthidepatrolled": "engkebang panguwahan mapatrol kepahan pangiwasan",
+       "tog-ccmeonemails": "kirimang titiang salinan email sane kirimang titiang ring anak lianan",
+       "tog-diffonly": "sampunang katampilang daging lembar ring ungkur binanne suntingan",
+       "tog-showhiddencats": "tampilang golongan sane kaengkebang",
+       "tog-norollbackdiff": "sampunang tampilang binanne sesampun ngewaliang",
+       "tog-useeditwarning": "elingang titiang yening ngalahin lembar panyuntingan sadurung nyimpen pagentosan",
+       "tog-prefershttps": "setata nganggen sambungan sane aman rikala malebu log",
+       "underline-always": "setata",
+       "underline-never": "nenten naenin",
+       "underline-default": "kulit utawi penjelajah paaban",
+       "editfont-style": "model aksara ring kotak panyuntingan",
+       "editfont-default": "penjelajah paaban",
+       "editfont-monospace": "aksara monospace",
+       "editfont-sansserif": "aksara sans-serif",
+       "editfont-serif": "aksara serif",
+       "sunday": "Redité",
+       "monday": "Soma",
+       "tuesday": "Anggara",
+       "wednesday": "Buda",
+       "thursday": "Wraspati",
+       "friday": "Sukra",
+       "saturday": "Saniscara",
+       "sun": "Red",
+       "mon": "Som",
+       "tue": "Ang",
+       "wed": "Bud",
+       "thu": "Wrs",
+       "fri": "Suk",
+       "sat": "San",
+       "january": "Januari",
+       "february": "Pébruari",
+       "march": "Maret",
+       "april": "April",
+       "may_long": "mungkin - minab",
+       "june": "Juni",
+       "july": "Juli",
+       "august": "Agustus",
+       "september": "Séptémber",
+       "october": "Oktober",
+       "november": "november",
+       "december": "Désémber",
+       "january-gen": "Januari",
+       "february-gen": "Pébruari",
+       "march-gen": "Maret",
+       "april-gen": "April",
+       "may-gen": "Méi",
+       "june-gen": "Juni",
+       "july-gen": "Juli",
+       "august-gen": "Agustus",
+       "september-gen": "Séptémber",
+       "october-gen": "Oktober",
+       "november-gen": "Nopémber",
+       "december-gen": "Désémber",
+       "jan": "Jan",
+       "feb": "Péb",
+       "mar": "Mar",
+       "apr": "Apr",
+       "may": "Méi",
+       "jun": "Jun",
+       "jul": "Jul",
+       "aug": "Ags",
+       "sep": "Sép",
+       "oct": "Okt",
+       "nov": "Nop",
+       "dec": "Dés",
+       "january-date": "Januari $1",
+       "february-date": "Februari $1",
+       "march-date": "Maret $1",
+       "may-date": "Mei $1",
+       "june-date": "Juni $1",
+       "july-date": "Juli $1",
+       "august-date": "Agustus $1",
+       "october-date": "Oktober $1",
+       "december-date": "Desember $1",
+       "pagecategories": "{{PLURAL:$1|golongan}}",
+       "category_header": "lembar ring golongan \"$1\"",
+       "subcategories": "sub golongan",
+       "category-media-header": "lembar ring golongan \"$1\"",
+       "category-empty": "\"mangkin, nenten madaging lembar utawi pekakas ring golongan puniki\"",
+       "hidden-categories": "{{plural:$1|punduhan sane kaengkebang| punduhan sane kaengkebang}}",
+       "category-subcat-count": "{{PLURAL:$2| golongan puniki madue {{PLURAL:$1|$1 subkategori}} puniki, saking genepan $2.}}",
+       "category-article-count": "{{PLURAL:$2|golongan puniki madue{{PLURAL:$1|$1 lembar}}, saking total $2.}}",
+       "category-file-count": "{{PLURAL:$2|golongan puniki madue{{PLURAL:$1|$1 lembar}}, saking total $2.}}",
+       "listingcontinuesabbrev": "samb.",
+       "noindex-category": "lembar sane nenten maindeks",
+       "about": "paindikan",
+       "newwindow": "bukak ring jendela anyar",
+       "cancel": "buwungang",
+       "mytalk": "Wicara",
+       "navigation": "pengarah",
+       "qbedit": "mecikang",
+       "faq": "FAQ (pitaken sane jagi katakonang)",
+       "faqpage": "Project: FAQ(pitaken sane jagi katakonang)",
+       "actions": "parilaksana",
+       "namespaces": "Genah pesengan",
+       "variants": "kawentenan sane lianan",
+       "errorpagetitle": "kaluputan",
+       "returnto": "mabalik ring $1",
+       "tagline": "Saka {{SITENAME}}",
+       "help": "Tulung",
+       "search": "Rereh",
+       "searchbutton": "Rereh",
+       "searcharticle": "lanturang",
+       "history": "sejarah pupulan",
+       "history_short": "kawentenan sane lawas",
+       "printableversion": "kawentenan lian sane macetak",
+       "permalink": "pranala ajeg",
+       "edit": "Becikang",
+       "create": "ngawe",
+       "delete": "apus",
+       "protect": "nyaga",
+       "protect_change": "gentos",
+       "newpage": "lembar anyar",
+       "talkpagelinktext": "Wicara",
+       "personaltools": "pekakas pribadi",
+       "talk": "rembug\n\nngarembug (kata kerja)",
+       "views": "Pekantenan",
+       "toolbox": "Pekakas",
+       "viewhelppage": "cingak lembar pamitutlung",
+       "otherlanguages": "Basa tiosan",
+       "redirectedfrom": "(kaalihang saking $1)",
+       "lastmodifiedat": "lembar puniki kaping untat kaubah rikala  $2, $1",
+       "jumpto": "lanturang ke:",
+       "jumptonavigation": "pengarah",
+       "jumptosearch": "Rereh",
+       "aboutsite": "Indik {{SITENAME}}",
+       "aboutpage": "Project:indik",
+       "copyrightpage": "{{ns:project}}:hak cipta",
+       "currentevents": "kawentenane mangkin",
+       "currentevents-url": "Project:kawentenane mangkin",
+       "disclaimers": "nungkas",
+       "disclaimerpage": "Project:Pengelidan lumrah",
+       "edithelp": "pamitulung panguwahan",
+       "mainpage": "Kaca Utama",
+       "mainpage-description": "lembar utama",
+       "portal": "Pintu nuju sekha",
+       "portal-url": "Project:pamedal sekha",
+       "privacy": "kawicaksanaan padewekan",
+       "privacypage": "Project:kawicaksanan tanpaiket",
+       "retrievedfrom": "kapolihang saking \"$1\"",
+       "youhavenewmessages": "{{PLURAL:$3|ida dane maduwe}} $1 ($2)",
+       "editsection": "gentos",
+       "editold": "mecikang",
+       "viewsourceold": "cingak witnyane",
+       "editlink": "mecikang",
+       "viewsourcelink": "cingak witnyane",
+       "editsectionhint": "ubah kepahan$1",
+       "toc": "kepahan dagingnyane",
+       "site-atom-feed": "$1 \"atom feed\"",
+       "page-atom-feed": "$1 \"atom feed\"",
+       "red-link-title": "$1 (kaca tan wénten)",
+       "nstab-main": "Kaca",
+       "nstab-user": "sane nganggo",
+       "nstab-special": "lembar sane kautamayang",
+       "nstab-project": "lembar proyek",
+       "nstab-image": "pupulan",
+       "nstab-template": "templat",
+       "nstab-help": "lembar pamitutlung",
+       "nstab-category": "golongan",
+       "missing-article": "data utama nenten prasida nemu tulisan saking lembar sane sepatutne wenten, inggih punika  $1, $2\n\nindike puniki biasane keranayang olih pranala kaon nuju pabenahan sane dumun lembar sane sampun kaicalang\n\nyening nenten puniki sane ngranayang, ida dane minab sampun manggihin kaiwangang ring sajeroning piranti lunak.\nDurus sadokang indik puniki rin silih sinunggil anak \n\n[[Special:ListUsers/sysop|Pengurus]], antuk ngetik alamat URL sane katuju",
+       "missingarticle-rev": "(pabenahan#:$1)",
+       "badtitle": "murda sane nenten manut",
+       "badtitletext": "Judul halaman sane katagih nenten patut, kosong, atau judul antarbahasa atau antarwiki yang salah sambung.\n\nmurda lembar sane kaarsa nenten sida kaedengang, kosong, utawi murda murda antarbasa utawi antarwiki sane iwang",
+       "viewsource": "cingak witnyane",
+       "yourname": "pesengan penganggen",
+       "yourpassword": "kruna sandi",
+       "yourpasswordagain": "jumunin kruna sandi",
+       "remembermypassword": "elingang kruna sandi padewekan ring computer niki ( suwennyane $1{{PLURAL:$1|dina}})",
+       "login": "malebu ring log",
+       "nav-login-createaccount": "malebu log / ngawe pepalihan",
+       "userlogin": "malebu log / ngawe pepalihan",
+       "userlogout": "medal saking Log",
+       "nologin": "durung madue akun?$1",
+       "nologinlink": "ngajuang akun anyar",
+       "createaccount": "ngajuang akun anyar",
+       "gotaccount": "durung madue akun?$1",
+       "gotaccountlink": "malebu ring log",
+       "userlogin-resetlink": "Lali rerincian anggen mlebu ring log ida dane?",
+       "mailmypassword": "nyumu ngaryanin kruna sandi",
+       "loginlanguagelabel": "Basa: $1",
+       "bold_sample": "teks puniki mesurat tebel",
+       "bold_tip": "teks puniki mesurat tebel",
+       "italic_sample": "teks puniki masurat sendeh",
+       "italic_tip": "teks puniki masurat sendeh",
+       "link_sample": "murda pranala",
+       "link_tip": "pranala tengah",
+       "extlink_sample": "http://www.example.com murda pranala",
+       "extlink_tip": "pranala sisi (sampunang lali kakawitin http://)",
+       "headline_sample": "teks murda",
+       "headline_tip": "subgolongan undag 2",
+       "nowiki_sample": "lebuang teks sane nenten jagi keformat ring driki",
+       "nowiki_tip": "campahang format wiki",
+       "image_tip": "cantumin pupulan",
+       "media_tip": "pranala pupulan-pupulan",
+       "sig_tip": "tanda tangan ida dane sareng tanda waktu",
+       "hr_tip": "garis horizontal",
+       "summary": "pamicutet",
+       "minoredit": "niki panguwahan kidik",
+       "watchthis": "tinjo lembar puniki",
+       "savearticle": "simpen lembar",
+       "preview": "tayangan sadurungnyane",
+       "showpreview": "cingak sane lintang",
+       "showdiff": "cingak pagentosan",
+       "anoneditwarning": "\"Pingetan\" ida dane nenten kacatet malebu. Alamat IP ida dane jagi kacatet ring sejarah (indik sane dumunan) ring lembar puniki.",
+       "newarticle": "(Anyar)",
+       "newarticletext": "ida dane ngiring pranala nuju lembar sane durung wenten. yening jagi ngaryanang lembar punika, ketik daging lembar ring kotak sane wenten ring beten puniki. (cingak [$1 lembar wantuan] anggen wacana salanturnyane). yening ida dane nenten nyelapang neked ring lembar puniki, klik tombol \"back\" ring \"penjelajah web\" ida dane.",
+       "noarticletext": "mangkin nenten wenten teks ring lembar puniki. ida dane prasida [[Special:Search/{{PAGENAME}}|ngarereh murda anggen lembar puniki]] ring lembar-lembar sane lianan, <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ngarereh log sane mapaiketan], utawi [{{fullurl:{{FULLPAGENAME}}|action=edit}} ngubah lembar puniki]</span>.",
+       "noarticletext-nopermission": "mangkin nenten wenten teks ring lembar puniki. ida dane prasida [[Special:Search/{{PAGENAME}}|ngarereh murda anggen lembar puniki]] ring lembar-lembar sane lianan, <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ngarereh log sane mapaiketan], utawi [{{fullurl:{{FULLPAGENAME}}|action=edit}} ngubah lembar puniki]</span>.",
+       "previewnote": "\"elingang yening puniki wantah sane lintang.\" Panguwahan ida dane durung kasimpen!",
+       "editing": "panguwahan $1",
+       "editingsection": "nguwah $1 (bagian)",
+       "templatesused": "{{PLURAL:$1|Templat}} sane kaanggen ring lembar niki:",
+       "template-protected": "nyayubang",
+       "template-semiprotected": "(semi-penyaga)",
+       "hiddencategories": "lembar niki inggih punika krama saking {{PLURAL:$1|1 golongan sane mengkeb|$1 golongan sane mengkeb}}",
+       "permissionserrorstext-withaction": "ida dane nenten madue kuasa malebu anggen $2, riantukan {{PLURAL:$1|alasan}} ring sor puniki:",
+       "recreate-moveddeleted-warn": "\"pingetan\" ida dane ngawe malih lembar sane naenin maapus.'''\n\nmangda kayunin malih napike pantes lanturang suntingan ida dane. puniki log pengapusan lan pangisidan saking lembar puniki:",
+       "moveddeleted-notice": "lembar puniki sampun kaapus. anggen pewarah, puniki log pangapus lan pengisidan lembar puniki",
+       "post-expand-template-inclusion-warning": "pinget: ukuran templat sane keanggen kalangkung ageng. wenten templat sane kacampahang",
+       "post-expand-template-inclusion-category": "lembar sane maukuran templat sane nglangkungin wates",
+       "post-expand-template-argument-warning": "\"peminget\" lembar puniki madaging kiranglangkungnyane siki argumen templat anggen ukuran ekspansi sane kaliwat ageng. argumen-argumen punika sampun kacampahang.",
+       "post-expand-template-argument-category": "lembar sane medaging argumen templat sane kacampahang",
+       "viewpagelogs": "cingak log ring lembar puniki",
+       "currentrev-asof": "pabecikan sane anyar ring pinanggal$1",
+       "revisionasof": "ngabecikang per $1",
+       "revision-info": "panguwahan per $1;$2",
+       "previousrevision": "← pabenahan sane dumun",
+       "nextrevision": "panguwahan salanturnyane→",
+       "currentrevisionlink": "panguwahan mangkin",
+       "cur": "mangkin",
+       "last": "sadurung",
+       "histlegend": "pilih kalih tombol radio lantur pecik tombol \"bandingang\" anggen ngebandingang indik lianan. klik siki tanggal anggen nyingak indik lianan lembar ring pinanggal punika.<br />(skr)= binanne saking indik lianan sane mangkin, (untat) = binanne saking indik lianan sane dumunan, '''k''' = panguwahan alit, '''b''' = panguwahan bot, → = panguwahan kepahan, ← = reringkesan otomatis",
+       "history-fieldset-title": "napakin versi sane dumunan",
+       "history-show-deleted": "wantah sane kaapus",
+       "histfirst": "pinih suwe",
+       "histlast": "pinih anyar",
+       "history-feed-item-nocomment": "$1 ring $2",
+       "rev-delundel": "gentos pangatonan",
+       "revdel-restore": "gentos pangatonan",
+       "revertmerge": "tansida nyarengin",
+       "history-title": "sajer panguwahan saking $1",
+       "lineno": "baris$1",
+       "compareselectedversions": "bandingang penguwahan sane kapilih",
+       "editundo": "nguliang",
+       "searchresults": "asil pangrereh",
+       "searchresults-title": "asil pangrereh anggen \"$1\"",
+       "prevn": "{{PLURAL:$1|$1}} sadurungne",
+       "nextn": "{{PLURAL:$1|$1}} selanturnyane",
+       "prevn-title": "$1 {{PLURAL:$1|asil}} sadurunge",
+       "nextn-title": "$1 {{PLURAL:$1|asil}} selanturnyane",
+       "shown-title": "ngantenang $1{{PLURAL:$1|asil}} sabilang lembar",
+       "viewprevnext": "cingak ($1 {{int:pipe-separator}}$2)($3)",
+       "searchmenu-exists": "wenten lembar sane mamurda \"[[:$1]]\" ring wiki puniki. {{PLURAL:$2|0=| cingakin taler asil rerehan lianan sane kapolihang}}",
+       "searchmenu-new": "<strong> ngawi lembar \"[[:$1]] ring wiki puniki </ strong>! {{{{PLURAL:$2|}}| 0 = | cingak teler lembar sane kapolihang ring pangreregan | cingak taler asil pangrerehan sane kapolihang}}",
+       "searchprofile-articles": "lembar puniki",
+       "searchprofile-images": "multimedia",
+       "searchprofile-everything": "samian",
+       "searchprofile-advanced": "lanturane",
+       "searchprofile-articles-tooltip": "ngarereh ring $1",
+       "searchprofile-images-tooltip": "pangrereh ring pupulan",
+       "searchprofile-everything-tooltip": "pangrereh ring samian isi (taler lembar wecana)",
+       "searchprofile-advanced-tooltip": "pangrereh ring genah pesengan sane kasinahang",
+       "search-result-size": "$1 ({{PLURAL:$2|1 kruna|$2 kruna}})",
+       "search-result-category-size": "{{PLURAL:$1|1 krama|$1 krama}}({{PLURAL:$2|1  subgolongan|$2 subgolongan}}, {{PLURAL:$3|1 pupulan|$3 pupulan}})",
+       "search-redirect": "(panglikuan $1)",
+       "search-section": "(kepahan$1)",
+       "search-suggest": "minab sane kearsaang $1",
+       "searchrelated": "paiketan",
+       "searchall": "samian",
+       "search-nonefound": "nenten wenten asil sane caklek ring arsa",
+       "mypreferences": "Preferensi",
+       "youremail": "E-mail",
+       "yourrealname": "pesengan sujati",
+       "prefs-help-email": "alamat email sane mawatek mamilih, nanging ngamerluang anggen nyumunin sandi yening ida dane lali",
+       "prefs-help-email-others": "ida dane prasida milih anggen ngalugrain anak lianan ngubungin ida dane majalaran lembar penganggen utawi pangraos nenten ja perlu ngagah indik padewekan ida dane",
+       "newuserlogpage": "log penganggo anyar",
+       "action-edit": "benahang lembar puniki",
+       "nchanges": "$1{{PLURAL:$1|panguwahan|uwah-uwahan}}",
+       "recentchanges": "pagentosan sane anyar",
+       "recentchanges-legend": "pilihan panguwahan sane anyar",
+       "recentchanges-feed-description": "molihang pagentosan anyar ring wiki ring \"umpan\" puniki",
+       "recentchanges-label-newpage": "panguwahan puniki ngaryanin lembar anyar",
+       "recentchanges-label-minor": "niki panguwahan kidik",
+       "recentchanges-label-bot": "penguwahan puniki kalaksanayang antuk bot",
+       "recentchanges-label-unpatrolled": "panguwahan puniki durung kapatroli",
+       "rcnotefrom": "ring beten puniki inggih punika panguwahan saking <strong>$2</strong> (kaedengang ngantos <strong>$1</strong> panguwahan).",
+       "rclistfrom": "edengang  penguwahan sane anyar wit saking $3 $2",
+       "rcshowhideminor": "$1 uwahan kidik",
+       "rcshowhidebots": "$1 bot",
+       "rcshowhideliu": "$1 penganggo - penganggo terdaftar",
+       "rcshowhideanons": "$1 penganggo tan meadan",
+       "rcshowhidepatr": "$1 suntingan sane kapatroli",
+       "rcshowhidemine": "$1 uwahan titiang",
+       "rclinks": "edengang sane untat $1 gentosan anyar $2 dina kaping untat <br />$3",
+       "diff": "bina",
+       "hist": "kawentenan sane lian",
+       "hide": "engkebang",
+       "show": "edengang",
+       "minoreditletter": "M",
+       "newpageletter": "n",
+       "boteditletter": "B",
+       "rc-enhanced-expand": "edengang rerincian",
+       "rc-enhanced-hide": "engkebang rerincian",
+       "recentchangeslinked": "pangentos sane wenten paiketane",
+       "recentchangeslinked-toolbox": "pangentos sane wenten paiketane",
+       "recentchangeslinked-title": "panguwahan sane mapaiketan ring $1",
+       "recentchangeslinked-summary": "lembar kautamayang puniki ngicenin kepahan penguwahan kaping untat ring lembar-lembar sana mapaiket. Lembar sane [[Special:Watchlist|ida dane iwasin]] mapinget antuk masurat tebel",
+       "recentchangeslinked-page": "adan lembar",
+       "recentchangeslinked-to": "edengang panguwahan sakin lembar-lembar sane mapaiket antuk lembar-lembar sane kaedengang",
+       "upload": "ngunggahang berkas",
+       "uploadlogpage": "Log pangunggahan",
+       "filedesc": "pacutetan",
+       "license": "kepahan lugra",
+       "license-header": "kepahan lugra",
+       "file-anchor-link": "pupulan",
+       "filehist": "sejarah pupulan",
+       "filehist-help": "klik ring pinanggal/galah anggen nyingakin pupulan niki rikala punika",
+       "filehist-revert": "buwungang",
+       "filehist-current": "sane mangkin",
+       "filehist-datetime": "pinanggal/galah",
+       "filehist-thumb": "Miniatur",
+       "filehist-thumbtext": "miniatur anggen versi ring $1",
+       "filehist-user": "sane nganggo",
+       "filehist-dimensions": "ukuran",
+       "filehist-comment": "tureksa",
+       "imagelinks": "penganggen berkas",
+       "linkstoimage": "nyarengin {{PLURAL:$1|pranala|$1pranala}} ring pupulan puniki",
+       "nolinkstoimage": "nenten wenten lembar sane medue pranala ring pupulan puniki",
+       "sharedupload-desc-here": "pupulan puniki mawit saking $1 lan minab kaanggen olih proyek-proyek sane lianan. Deskripsi saking [$2 lebar deskripsinyane] kaarahin ring ungkur puniki",
+       "randompage": "lembar acak",
+       "statistics": "Statistik",
+       "nbytes": "$1{{PLURAL:$1|bit}}",
+       "nmembers": "$1 {{PLURAL:$1|krama}}",
+       "prefixindex": "samian lembar anggen pangater",
+       "usercreated": "{{GENDER:$3|kakaryanin}} ring $1 galah $2",
+       "newpages": "lembar anyar",
+       "move": "kisidang",
+       "pager-newer-n": "{{PLURAL:$1|1 lewih anyar|$1 lewih anyar}}",
+       "pager-older-n": "{{PLURAL:$1|1 lewih suwe|$1 lewih anyar}}",
+       "booksources": "pawiwitan buku",
+       "booksources-search-legend": "rereh ring sumber buku",
+       "log": "log",
+       "allpages": "samian lembar",
+       "allarticles": "samian lembar",
+       "allpagessubmit": "lanturang",
+       "categories": "Golongan",
+       "linksearch-line": "$1 masambung saking $2",
+       "listgrouprights-members": "kepahan krama",
+       "emailuser": "email sane nganggo niki",
+       "watchlist": "kepahan peninjoan",
+       "mywatchlist": "kepahan peninjoan",
+       "watchlistfor2": "anggen $1 $2",
+       "watch": "cingak",
+       "unwatch": "tan sida maninjo",
+       "watchlist-details": "{{PLURAL:$1|$1 lembar}} ring paninjoan ida dane, nenten sareng lembar wacana.",
+       "wlshowlast": "edengang $1 jam $2 dina kaping untat",
+       "watchlist-options": "milih kepahan peninjo",
+       "actioncomplete": "pelaksanan sampun wusan",
+       "actionfailed": "pelaksana luput",
+       "dellogpage": "log pangapus",
+       "rollbacklink": "mabalik",
+       "protectlogpage": "log penyaga",
+       "protectedarticle": "nyaga \"[[$1]]\"",
+       "undeletelink": "cingak/uliang",
+       "undeleteviewlink": "cingak",
+       "namespace": "Genah pesengan",
+       "invert": "uliang pilihan",
+       "blanknamespace": "utama",
+       "contributions": "kawigunan {{GENDER:$1|penganggo}}",
+       "contributions-title": "Kontribusi pangangge anggen $1",
+       "mycontris": "kawigunan",
+       "contribsub2": "antuk {{GENDER:$3|$1}} ($2)",
+       "uctop": "sane mangkin",
+       "month": "mawit saking sasih (lan sadurungnyane)",
+       "year": "mawit saking warsa (lan sadurungnyane)",
+       "sp-contributions-newbies": "wantah saking penganggo anyar",
+       "sp-contributions-blocklog": "log pemblokiran",
+       "sp-contributions-uploads": "unggahang",
+       "sp-contributions-logs": "log",
+       "sp-contributions-talk": "Wicara",
+       "sp-contributions-search": "rereh anggen kawigunanne",
+       "sp-contributions-username": "Alamat IP utawi pesengan panganggo:",
+       "sp-contributions-toponly": "tampilang wantah panguwahan sane anyar",
+       "sp-contributions-submit": "rereh",
+       "whatlinkshere": "Pranala balik",
+       "whatlinkshere-title": "lembar-lembar sane maduwe pranala kaping \"$1\"",
+       "whatlinkshere-page": "lembar",
+       "linkshere": "lembar puniki maduwe pranala ke '''[[:$1]]'''",
+       "nolinkshere": "lembar puniki maduwe pranala ke '''[[:$1]]'''",
+       "isredirect": "lembar pangalihan",
+       "istemplate": "sareng kasurat",
+       "isimage": "pranala pupulan-pupulan",
+       "whatlinkshere-prev": "{{PLURAL:$1|sadurungnyane|$1 sadurungnyane}}",
+       "whatlinkshere-next": "{{PLURAL:$1|selanturnyane}}",
+       "whatlinkshere-links": "← pranala",
+       "whatlinkshere-hideredirs": "$1 pangalihan",
+       "whatlinkshere-hidetrans": "$1 transklusi",
+       "whatlinkshere-hidelinks": "$1 Pranala",
+       "whatlinkshere-hideimages": "$1 pranala pupulan",
+       "whatlinkshere-filters": "Panyaring",
+       "ipboptions": "2 jam:2 hours,1 dina:1 day,3 dina:3 days,1 minggu:1 week,2 minggu:2 weeks,1 sasih:1 month,3 sasih:3 months,6 sasih:6 months,1 taun:1 year,tanpa wates:infinite",
+       "ipblocklist": "ngempetin sane nganggo",
+       "blocklink": "ngempetin",
+       "unblocklink": "ngicalang kaempetan",
+       "change-blocklink": "gentosin empetin",
+       "contribslink": "haturan",
+       "blocklogpage": "log pemblokiran",
+       "blocklogentry": "mlokir [[$1]] anggen pangwates galah $2$3",
+       "block-log-flags-nocreate": "ngawe akun kaicalang",
+       "movelogpage": "log pangisidang",
+       "revertmove": "buwungang",
+       "export": "ekspor lembar",
+       "allmessagesname": "pesengan",
+       "allmessagesdefault": "teks lingga",
+       "thumbnail-more": "ngedenang",
+       "thumbnail_error": "luput ngaryanin bentuk cenik $1",
+       "tooltip-pt-userpage": "lembar sane kaanggen ida dane",
+       "tooltip-pt-mytalk": "lembar wicara ida dane",
+       "tooltip-pt-preferences": "Preferensi titiang",
+       "tooltip-pt-watchlist": "kepahan-kepahan lembar sane katinjo titiang",
+       "tooltip-pt-mycontris": "kepahan-kepahan kawigunan ida dane",
+       "tooltip-pt-login": "ida dane kaaturang malebu log, nanging nenten kaswadarmayang",
+       "tooltip-pt-logout": "medal saking Log",
+       "tooltip-ca-talk": "pabligbagan indik dagingnyane",
+       "tooltip-ca-edit": "Sunting kaca iki. Nganggen tombol pratayang sadurunge nyimpen.",
+       "tooltip-ca-addsection": "nyumunin kepahan anyar",
+       "tooltip-ca-viewsource": "lembar puniki kasayubang. ida dane wantah prasida nyingakin witnyane",
+       "tooltip-ca-history": "pabenahang sadurungnyane saking lembar puniki",
+       "tooltip-ca-protect": "jaga lembar puniki",
+       "tooltip-ca-delete": "benahang lembar puniki",
+       "tooltip-ca-move": "magingsir saking lembar niki",
+       "tooltip-ca-watch": "imbuhin lembar niki ring daftar paninjoan ida dane",
+       "tooltip-ca-unwatch": "apus lembar niki ring daftar paninjoan ida dane",
+       "tooltip-search": "rereh ring {{SITENAME}} puniki",
+       "tooltip-search-go": "rereh lembar anggen adan sane pateh sekadi puniki yening wenten",
+       "tooltip-search-fulltext": "rereh lembar sane maduwe wacana sekadi puniki",
+       "tooltip-p-logo": "cingakin lembar utama",
+       "tooltip-n-mainpage": "nuju lembar sane utama",
+       "tooltip-n-mainpage-description": "nuju lembar sane utama",
+       "tooltip-n-portal": "indik proyek, napi sane prasida kalaksanayang, ring dija antuk ngarereh indik-indik",
+       "tooltip-n-currentevents": "molihang warta indik kawentenan kawentenan sane pinih anyar",
+       "tooltip-n-recentchanges": "(.....) gentosan anyar ring wiki",
+       "tooltip-n-randompage": "edengang polah-palih lembar",
+       "tooltip-n-help": "genah anggen ngarereh",
+       "tooltip-t-whatlinkshere": "kepahan sami lembar wiki sane maduwe pranala nuju lembar puniki",
+       "tooltip-t-recentchangeslinked": "pagentosan sane anyar lembar-lembar sane maduwe pranala nuju lembar puniki",
+       "tooltip-feed-atom": "\"atom feed\" anggen lembar puniki",
+       "tooltip-t-contributions": "cingak kepahan kawigunan penganggo niki",
+       "tooltip-t-emailuser": "kirim email majeng ring penganggo puniki",
+       "tooltip-t-upload": "ngunggahang file",
+       "tooltip-t-specialpages": "kepahan sami lembar istimewa",
+       "tooltip-t-print": "kawentenan lian sane macetak ring lembar puniki",
+       "tooltip-t-permalink": "Pranala ajeg kaanggen ngubah lembar puniki",
+       "tooltip-ca-nstab-main": "cingak dagingnyane lembar puniki",
+       "tooltip-ca-nstab-user": "cingak lembar penganggo",
+       "tooltip-ca-nstab-special": "puniki lembar sane pinih utama sane nenten prasida kauwah",
+       "tooltip-ca-nstab-project": "cingak dagingnyane lembar puniki",
+       "tooltip-ca-nstab-image": "cingak lembar berkas",
+       "tooltip-ca-nstab-template": "cingak templat",
+       "tooltip-ca-nstab-help": "cingak lembar pamitutlung",
+       "tooltip-ca-nstab-category": "cingak lembar kategori",
+       "tooltip-minoredit": "pingetin puniki dados panguwahan kidik",
+       "tooltip-save": "simpen pagentosan ida dane",
+       "tooltip-preview": "pagentosan sane dumun duwen ida dane, mangda anggen niki sadurung jagi nyimpen!",
+       "tooltip-diff": "cingak pagentosan sane sampun ida dane laksanayang",
+       "tooltip-compareselectedversions": "cingak binane makekalih kepahan lembar sane kasudi",
+       "tooltip-watch": "imbuhin lembar niki ring daftar paninjoan ida dane",
+       "tooltip-rollback": "\"nguliang\" muwungan jagi ngabecikang ring lembar puniki nuju haturan sane untat ngangge apisan klik",
+       "tooltip-undo": "\"nguliang\" ngabuwungin jagi ngabecikang niki lan ngagah kotak mecikang ngangge mode pratayang. dasar ipun prasida kaimbuhin ring kotak pamicutet",
+       "tooltip-summary": "ngalebuang silih sinunggil ringkesan",
+       "previousdiff": "← Benahin sadurungnyane",
+       "nextdiff": "panguwahan sane pinih anyar →",
+       "file-info-size": "$1x$2 piksel, ukuran pupulan: $3, tipe MIME:$4",
+       "file-nohires": "tan kasayagaang ukuran sane lewih ageng",
+       "svg-long-desc": "pupulan SVG, nominal $1 × $2 piksel, geden pupulan: $3",
+       "show-big-image": "pupulan sujati",
+       "sunday-at": "Redite jam $1",
+       "bad_image_list": "bentukne sekadi puniki:\n\nwantah kepahan daftar ( baris sane kakawitin anggen tanda *) sane kaitung pranala kapertama ring baris mangda pranala ring berkas sane kaon.\nPranala-Pranala sane selanturnyane ring baris sane pateh kamanahang antuk pinangging, inggih punika lembar sane prasida ngedengang berkas punika.",
+       "metadata": "metadata",
+       "metadata-help": "pupulan puniki madaging wacana imbuhan minab sane kaimbuhin olih kamera digital utawi scanner sane kaanggen antuk ngawi atawi \"mendigitalisasi\" pupulan. Yening pupulan niki sampun taen kautak-atik, rerincine sane wenten minab nenten samian nyiriang wacan saking gambar sane sampun kautak-atik niki.",
+       "metadata-fields": "bidang metadata gambar sane kacantumang ring pesen puniki jagi kalebuang ring tampilan lembar gambar rikala tabel metadata kacenikang.\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",
+       "namespacesall": "samian",
+       "monthsall": "samian",
+       "watchlisttools-view": "edengang panguwahan sane mapaiket",
+       "watchlisttools-edit": "edengang lan uwahin kepangan paninjo",
+       "watchlisttools-raw": "uwah kepahan paninjo mentah",
+       "duplicate-defaultsort": "pingetan: sereg pangurutan lingga \"$2\" nyampahang sereg pangurutan lingga sadurunge \"$1\"",
+       "specialpages": "lembar melulu",
+       "external_image_whitelist": "#banggiang baris niki sapunapi kawentenanne<pre>\n#anggen fragmen akspresi reguler (wantah kepahan ring kekelaih//) ring sor puniki\n#fragmen-fragmen puniki jagi kaadungang sareng URL saking gambar-gambar eksternal (sane kasambungang langsung)\n#fragmen sane adung jagi katampilang dados gambar, sisanne wantah dados pranala kewanten\n#baris sane kakawitin antuk # jagi kadadosang baris komentar\n#niki nenten ngabinayang aksara ageng lan alit\n#genahang samian fragmen ekspresi reguler ring sor baris puniki. banggiang baris niki sapunapi kawentennane</pre>",
+       "tag-filter": "filter [[Special:Tags|tag]]:"
+}
index 2799186..2eba576 100644 (file)
        "viewsourcetext": "Du kåst ower 'n Quötext åschaung und kópirn:",
        "viewyourtext": "Du kåst 'n Quejtext vah '''deiner Beorwatung''' derer Seiten betrochten und kópiern:",
        "protectedinterface": "Dé Seiten do enthoit Text fyr d' Benutzerówerflächen voh da Software und is gschytzd, um an Missbrauch vurzbeing.",
-       "editinginterface": "'''Ówocht:''' Dé Seiten do enthoit voh da MediaWiki-Software gnutzden Text. \nÄnderrungen auf derer Seiten wirken sé auf d' Benutzerówerflächen aus.\nZiag bittscheh im Foi voh Ywersétzungen in Betrocht, dé bei [//translatewiki.net/wiki/Main_Page?setlang=de translatewiki.net], da Lókaalisiarungsblottform fyr MediaWiki, durchzfyrn.",
+       "editinginterface": "'''Ówocht:''' Dé Seiten do enthoit voh da MediaWiki-Software gnutzden Text. \nÄnderrungen auf derer Seiten wirken sé auf d' Benutzerówerflächen aus.\nZiag bittscheh im Foi voh Ywersétzungen in Betrocht, dé bei [https://translatewiki.net/wiki/Main_Page?setlang=de translatewiki.net], da Lókaalisiarungsblottform fyr MediaWiki, durchzfyrn.",
        "cascadeprotected": "Dé Seiten is zua da Beorweitung gsperrd worn. Sie is in d' {{PLURAL:$1|fóigande Seiten|fóiganden Seiten}} eihbunden, dé mid da Kaskaadensperrópzión gschytzd {{PLURAL:$1|is|san}}:\n$2",
        "namespaceprotected": "Du host néd d' daforderliche Berechtigung, Seiten im Náumensraum '''$1''' b'orweiden z' kenner.",
        "customcssprotected": "Du host néd d' Berechtigung dé CSS enthoitende Seiten z' b'orweiden, weis d' persénlichen Eihstöungen vohram aundern Benutzer enthoitt.",
        "allpages-bad-ns": "Dén Naumensraum „$1“ gibts in {{SITENAME}} néd.",
        "allpages-hide-redirects": "Weidaloatunga ausblendn",
        "categories": "Kategorina",
-       "special-categories-sort-count": "Sortiarung noch da Auhzoi",
-       "special-categories-sort-abc": "Sortiarung noch 'm Alfabet",
        "deletedcontributions": "Gléschde Beitrég",
        "linksearch": "Weblinks suacher",
        "linksearch-pat": "Suachmuster:",
        "allmessagesname": "Nama:",
        "allmessagesdefault": "Standardtext",
        "allmessagescurrent": "Aktuella Text",
-       "allmessagestext": "Des is a Listen vo de MediaWiki-Systemtextt.\nBsuach bittschee de Saiten [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki-Lokalisiarung] und [//translatewiki.net translatewiki.net], wånn du de ån da Lokalisiarung vo MediaWiki betailing mechadst.",
+       "allmessagestext": "Des is a Listen vo de MediaWiki-Systemtextt.\nBsuach bittschee de Saiten [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki-Lokalisiarung] und [https://translatewiki.net translatewiki.net], wånn du de ån da Lokalisiarung vo MediaWiki betailing mechadst.",
        "allmessagesnotsupportedDB": "'''Special:Allmessages''' is im Moment net möglich, wei de Datenbank offline is.",
        "thumbnail-more": "vagressan",
        "thumbnail_error": "Fehla ban Estejn vom Vorschaubuidl: $1",
        "version-poweredby-others": "åndre",
        "fileduplicatesearch": "Dóppéde Daatein suachen",
        "fileduplicatesearch-summary": "Suach noch dóppéde Daatein auf da Baasis vo eanerm Hash-Wert.",
-       "fileduplicatesearch-legend": "Suach noch Duplikaate",
        "fileduplicatesearch-filename": "Daateinåm:",
        "fileduplicatesearch-submit": "Suachen",
        "fileduplicatesearch-info": "$1 × $2 Pixel<br />Daateigress: $3<br />MIME-Typ: $4",
index 06a7cdb..c54c9eb 100644 (file)
        "protectedpagetext": "ائ تاک پر دیم دارگ چه ادگرانی اصلاح کتن یان کارمرز کتن پراتکتء بوتگ انت.",
        "viewsourcetext": "شما تونیت به گند و کپی کنیت منبع ای صفحه آ",
        "viewyourtext": "توانیت منبعی کد چه '''شمئ اصلاح کتگان''' مان ائ تاکء بگند ات و کپی بکن ات:",
-       "protectedinterface": "ائ پیجء توکا تکستء پر واسط کاربری ائ سفتورء مان ائ ویکی انت و پر دست دارگ چه ٹگل داتنء پراتکت بیتگ انت.\n\nپر هوار کتن یانکه رجانکء ٹگل پر پهکین ویکی هان، دزبندی انت چه [//translatewiki.net/ translatewiki.net]، محلی‌سازیء پراجکت پر مدیاویکی، کارمرز به کنیت.",
-       "editinginterface": "'''هوژاری:''' ائ پیجء که انیگء ٹگل دئیت یک تکستء هوار انت که مان ائ سفتورء واسط کاربری کارمرز بیتگ انت.\nائ پیجء ٹگل بیتن واسط کاربریء ظاهرءادگر کاربرانء ٹگل دنت انت.\nپر هوار کتن یانکه رجانکء ٹگل پر پهکین ویکی هان، دزبندی انت چه [//translatewiki.net/ translatewiki.net]، محلی‌سازیء پراجکت پر مدیاویکی، کارمرز به کنیت.",
+       "protectedinterface": "ائ پیجء توکا تکستء پر واسط کاربری ائ سفتورء مان ائ ویکی انت و پر دست دارگ چه ٹگل داتنء پراتکت بیتگ انت.\n\nپر هوار کتن یانکه رجانکء ٹگل پر پهکین ویکی هان، دزبندی انت چه [https://translatewiki.net/ translatewiki.net]، محلی‌سازیء پراجکت پر مدیاویکی، کارمرز به کنیت.",
+       "editinginterface": "'''هوژاری:''' ائ پیجء که انیگء ٹگل دئیت یک تکستء هوار انت که مان ائ سفتورء واسط کاربری کارمرز بیتگ انت.\nائ پیجء ٹگل بیتن واسط کاربریء ظاهرءادگر کاربرانء ٹگل دنت انت.\nپر هوار کتن یانکه رجانکء ٹگل پر پهکین ویکی هان، دزبندی انت چه [https://translatewiki.net/ translatewiki.net]، محلی‌سازیء پراجکت پر مدیاویکی، کارمرز به کنیت.",
        "cascadeprotected": "ای صفحه محافظت بیت چه اصلاح چرا که آیی شامل جهلیگین {{PLURAL:$1|صفحه, که|صفحات, که}} محافظتی گون the \"cascading\" option turned on:\n$2",
        "namespaceprotected": "شما اجازت په اصلاح صفحات ته  '''$1'' نام فضا نیست",
        "customcssprotected": "شما ائ پیجء سی اس اسء اصلاح کتنء اجازتء نداریت، پرچا که آئی توکا وتیگین تنظیمان چه ادگر کاربرء انت.",
        "resetpass-temp-password": "موقتین کلمه رمز:",
        "resetpass-abort-generic": "پسوردء ٹگل گون یک اکتنشنء واسته کنسیل بیتگ انت.",
        "resetpass-expired": "شمئی پسوردء مالومین وهد هلتگ انت. دزبندی انت پر لاگین کتن نوکین پسوردء تیار کن ات.",
-       "resetpass-expired-soft": "شمئی پسوردء مالومین وهد هلتگ انت ءُ نوکین پسوردء اڈ کتن ضرور انت. دزبندی انت انیگء نوکین پسوردء بزیر ات، یانکه پر رندیگین تیار کتنء، ائ بٹنء  \"{{int:resetpass-submit-cancel}}\" سرء کلیک کن ات.",
-       "resetpass-validity-soft": "شمئی پسورد درست نه انت: $1\nدزبندی انت انیگء نوکین پسوردء بزیر ات یانکه ائ بٹنء «{{int:resetpass-submit-cancel}}» سرء کلیک کن ات که رندا آئرا تیار کن ات.",
+       "resetpass-expired-soft": "شمئی پسوردء مالومین وهد هلتگ انت ءُ نوکین پسوردء اڈ کتن ضرور انت. دزبندی انت انیگء نوکین پسوردء بزیر ات، یانکه پر رندیگین تیار کتنء، ائ بٹنء  \"{{int:authprovider-resetpass-skip-label}}\" سرء کلیک کن ات.",
+       "resetpass-validity-soft": "شمئی پسورد درست نه انت: $1\nدزبندی انت انیگء نوکین پسوردء بزیر ات یانکه ائ بٹنء «{{int:authprovider-resetpass-skip-label}}» سرء کلیک کن ات که رندا آئرا تیار کن ات.",
        "passwordreset": "نوکین پسوردء بلوٹ",
        "passwordreset-text-one": "پر وتی پسوردء واترء ائ فرمء پکا کن ات.",
        "passwordreset-text-many": "{{PLURAL:$1|اگان لوٹت ایمیلء گون موکتین پسوردء پر شما راهیگ ببیت، یکئ چه ائ جاگاهانء پر بکن ات.}}",
        "allmessagesname": "نام",
        "allmessagesdefault": "پیش فرضین متن",
        "allmessagescurrent": "هنوکین متن",
-       "allmessagestext": "شی یک لیستی چه کوله یان موجود ته نام فضای مدیا وی کی انت.\nلطفا بچاریت  [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] و [//translatewiki.net translatewiki.net] اگر شما لوٹیت ته ملکی کتن مدیا وی کی کمک کنیت.",
+       "allmessagestext": "شی یک لیستی چه کوله یان موجود ته نام فضای مدیا وی کی انت.\nلطفا بچاریت  [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] و [https://translatewiki.net translatewiki.net] اگر شما لوٹیت ته ملکی کتن مدیا وی کی کمک کنیت.",
        "allmessagesnotsupportedDB": "ای صفحه نه تونیت استفاده بیت په چی که'''$wgUseDatabaseMessages''' غیر فعالنت.",
        "allmessages-filter-legend": "فیلتر",
        "allmessages-filter": "فیلتر گون حالت دلواهی",
index 16a3c7a..839d286 100644 (file)
        "protectedpagetext": "Ining pahina protektado tanganing malikayan an pagliliwat o ibang aksyon.",
        "viewsourcetext": "Ika makakatanaw asin makakakopya sa ginikanan kaining pahina:",
        "viewyourtext": "Saimong mahihiling asin makokopya an gikanan kan '''saimong mga pinagriliwat''' sa pahinang ini:",
-       "protectedinterface": "An pahinang ini nagtatao nin panlaog-olay para sa software, asin protektado tangaring malikayan an abuso.\nSa pagdagdag or pagliwat nin mga dakit-taramon para sa bilog na wiki, gamita tabi an [//translatewiki.net/translatewiki.net], an MediaWiki sa proyektong lokalisasyon.",
-       "editinginterface": "'''Patanid:''' Ika nagliliwat kan pahina na ginagamit sa pagtao nin pantahaw-olay na teksto para sa software.\nAn mga pagbabago kaining pahina makaka-apekto sa hitsura kan pantahaw-olay nin paragamit para sa iba man na paragamit.\nPara sa mga pagdadakit-taramon, pakikonsidera man tabi an paggagamit kan [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], an MediaWiking lokalisasyon kan proyekto.",
+       "protectedinterface": "An pahinang ini nagtatao nin panlaog-olay para sa software, asin protektado tangaring malikayan an abuso.\nSa pagdagdag or pagliwat nin mga dakit-taramon para sa bilog na wiki, gamita tabi an [https://translatewiki.net/translatewiki.net], an MediaWiki sa proyektong lokalisasyon.",
+       "editinginterface": "'''Patanid:''' Ika nagliliwat kan pahina na ginagamit sa pagtao nin pantahaw-olay na teksto para sa software.\nAn mga pagbabago kaining pahina makaka-apekto sa hitsura kan pantahaw-olay nin paragamit para sa iba man na paragamit.\nPara sa mga pagdadakit-taramon, pakikonsidera man tabi an paggagamit kan [https://translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], an MediaWiking lokalisasyon kan proyekto.",
        "cascadeprotected": "Ining pahina pinagprotehiran gikan sa pagliliwat nin huli ta kabaling pinagbalyo sa minasunod na {{PLURAL:$1|pahina, na iyo ngani an|mga pahina, na iyo ngani an mga}} protektado na igwa nin \"pasurunod\" na opsyong pinagbuksan:\n$2",
        "namespaceprotected": "Ika mayong permiso sa pagliwat nin mga pahina sa <strong>$1</strong> na ngarang-espasyo.",
        "customcssprotected": "Ika mayong permiso sa pagliwat kaining pahinang CSS, nin huli ta ini naglalaman kan personal na panuytoy (settings) kan ibang paragamit.",
        "resetpass-temp-password": "Temporaryong sekretong panlaog:",
        "resetpass-abort-generic": "Pagliwat kan sikretong panlaog ipinagpauntok kan sarong ekstensyon.",
        "resetpass-expired": "An saimong pasa-taramon nagpalso na. Tabi man pakikaag nin sarong baguhong pasa-taramon tanganing makalaog ka.",
-       "resetpass-expired-soft": "An saimong pasa-taramon nagpalso na, asin kinakaipuhan na baguhon. Tabi man pakipili nin sarong baguhong pasa-taramon ngunyan, o i-klik an \"{{int:resetpass-submit-cancel}}\" kun baguhon sa aro-atyan.",
+       "resetpass-expired-soft": "An saimong pasa-taramon nagpalso na, asin kinakaipuhan na baguhon. Tabi man pakipili nin sarong baguhong pasa-taramon ngunyan, o i-klik an \"{{int:authprovider-resetpass-skip-label}}\" kun baguhon sa aro-atyan.",
        "passwordreset": "Pakibago kan sekretong panlaog",
        "passwordreset-text-one": "Kumpletuhon ining porma sa pagliwat otro kan saimong pasa-taramon.",
        "passwordreset-text-many": "{{PLURAL:$1|Kaagi an saro sa mga kaaganan tanganing makaresibe nin sarong temporaryong pasa-taramon sa paagi kan e-surat.}}",
        "querypage-disabled": "Ining espesyal na pahina pinagpundo nin huli sa kaggibohang mga rason.",
        "apisandbox": "Kahong-buhangin kan API",
        "apisandbox-api-disabled": "An API dae pinagpagana sa sityong ini.",
-       "apisandbox-intro": "Gamitong ining pahina sa pag-eksperimento kan '''MediaWiki web service API'''.\nKonsultaron an  [//www.mediawiki.org/wiki/API:Main_page the API documentation] para sa iba pang mga detalye sa paggamit kan API. Ehemplo: [//www.mediawiki.org/wiki/API#A_simple_example kuahon an laman kan Pangenot na Pahina]. Magpili nin aksyon tanganing hilngon an mga kadagdagan na mga ehemplo.",
+       "apisandbox-intro": "Gamitong ining pahina sa pag-eksperimento kan '''MediaWiki web service API'''.\nKonsultaron an  [https://www.mediawiki.org/wiki/API:Main_page the API documentation] para sa iba pang mga detalye sa paggamit kan API. Ehemplo: [https://www.mediawiki.org/wiki/API#A_simple_example kuahon an laman kan Pangenot na Pahina]. Magpili nin aksyon tanganing hilngon an mga kadagdagan na mga ehemplo.",
        "apisandbox-submit": "Maghimo nin kahagadan",
        "apisandbox-reset": "Klaro",
        "apisandbox-examples": "Ehemplo",
        "allmessagesname": "Pangaran",
        "allmessagesdefault": "Panugmad na tekstong mensahe",
        "allmessagescurrent": "Presenteng teksto",
-       "allmessagestext": "Ini sarong listahan nin pansistemang mga mensahe na mananagboan sa espasyong-pangaran kan MediaWiki.\nPakibisita an [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Mediawiki Lokalisasyon] asin [//translatewiki.net translatewiki.net] kun boot mong mag-ambag sa henerikong lokalisasyon kan MediaWiki.",
+       "allmessagestext": "Ini sarong listahan nin pansistemang mga mensahe na mananagboan sa espasyong-pangaran kan MediaWiki.\nPakibisita an [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Mediawiki Lokalisasyon] asin [https://translatewiki.net translatewiki.net] kun boot mong mag-ambag sa henerikong lokalisasyon kan MediaWiki.",
        "allmessagesnotsupportedDB": "Dai pwedeng gamiton an '''{{ns:special}}:Allmessages''' ta sarado an '''$wgUseDatabaseMessages'''.",
        "allmessages-filter-legend": "An Pansara",
        "allmessages-filter": "Pansara sa paagi kan estado nin kustomisasyon:",
index dba6036..eb943c0 100644 (file)
        "protectedpagetext": "Гэтая старонка была абароненая для прадухіленьня зьменаў ці іншых дзеяньняў.",
        "viewsourcetext": "Вы можаце праглядаць і капіяваць крынічны тэкст гэтай старонкі.",
        "viewyourtext": "Вы можаце праглядзець і скапіяваць крынічны тэкст <strong>вашых рэдагаваньняў</strong> на гэтай старонцы.",
-       "protectedinterface": "Гэтая старонка ўтрымлівае інтэрфэйснае паведамленьне праграмнага забесьпячэньня, і яе зьмена забаронена. Каб дадаць ці зьмяніць пераклад ва ўсіх праектах, зьвярніцеся на [//translatewiki.net/ translatewiki.net], праект для перакладу MediaWiki.",
+       "protectedinterface": "Гэтая старонка ўтрымлівае інтэрфэйснае паведамленьне праграмнага забесьпячэньня, і яе зьмена забаронена. Каб дадаць ці зьмяніць пераклад ва ўсіх праектах, зьвярніцеся на [https://translatewiki.net/ translatewiki.net], праект для перакладу MediaWiki.",
        "editinginterface": "<strong>Увага:</strong> Вы рэдагуеце старонку, якая ўтрымлівае тэкст інтэрфэйсу праграмнага забесьпячэньня.\nЯе зьмена паўплывае на вонкавы выгляд інтэрфэйсу іншых удзельнікаў у гэтай вікі.",
-       "translateinterface": "Каб дадаць ці зьмяніць пераклады для ўсіх вікі, калі ласка, карыстайцеся [//translatewiki.net/ translatewiki.net], лякалізацыйным праектам MediaWiki.",
+       "translateinterface": "Каб дадаць ці зьмяніць пераклады для ўсіх вікі, калі ласка, карыстайцеся [https://translatewiki.net/ translatewiki.net], лякалізацыйным праектам MediaWiki.",
        "cascadeprotected": "Гэтая старонка абароненая ад рэдагаваньня, таму што яна ўключаная ў {{PLURAL:$1|1=наступную старонку, якая была абароненая|наступныя старонкі, якія былі абароненыя}} з актывізаванай опцыяй «каскаднай абароны»:\n$2",
        "namespaceprotected": "Вы ня маеце правоў на рэдагаваньне старонак у прасторы назваў <strong>$1</strong>.",
        "customcssprotected": "Вы ня маеце правоў на рэдагаваньне гэтай CSS-старонкі, таму што яна ўтрымлівае пэрсанальныя налады іншага ўдзельніка.",
        "password-change-forbidden": "Вы ня можаце зьмяняць паролі ў гэтай вікі.",
        "externaldberror": "Адбылася памылка аўтэнтыфікацыі з дапамогай вонкавай базы зьвестак, ці Вам не дазволена абнаўляць свой рахунак.",
        "login": "Увайсьці",
+       "login-security": "Пацьвердзіце вашую асобу",
        "nav-login-createaccount": "Уваход / стварэньне рахунку",
        "userlogin": "Увайсьці ў сыстэму / стварыць рахунак",
        "userloginnocreate": "Увайсьці",
        "createacct-email-ph": "Увядзіце ваш адрас электроннай пошты",
        "createacct-another-email-ph": "Увядзіце адрас электроннай пошты",
        "createaccountmail": "Стварыць часовы адвольны пароль і даслаць яго на пазначаны адрас электроннай пошты",
+       "createaccountmail-help": "Можа выкарыстоўвацца для стварэньня рахунку для іншага чалавека бязь веданьня паролю.",
        "createacct-realname": "Сапраўднае імя (неабавязкова)",
        "createaccountreason": "Прычына:",
        "createacct-reason": "Прычына",
        "nocookiesnew": "Рахунак быў створаны, але ў сыстэму Вы не ўвайшлі.\n{{SITENAME}} выкарыстоўвае файлы-кукі для ўваходу ў сыстэму.\nУ Вашым браўзэры файлы-кукі адключаныя.\nКалі ласка, дазвольце іх, а потым ўвайдзіце з новым іменем удзельніка і паролем.",
        "nocookieslogin": "{{SITENAME}} выкарыстоўвае файлы-кукі для ўваходу ў сыстэму.\nУ Вашым браўзэры файлы-кукі адключаныя.\nКалі ласка, уключыце іх і паспрабуйце яшчэ раз.",
        "nocookiesfornew": "Рахунак удзельніка ня быў створаны, таму што мы не змаглі пацьвердзіць яго крыніцу. \nУпэўніцеся, што ў Вас уключаныя файлы-кукі, перазагрузіце гэтую старонку і паспрабуйце зноў.",
+       "createacct-loginerror": "Рахунак быў пасьпяхова створаны, але вы ня можаце ўвайсьці аўтаматычна. Калі ласка, [[Special:UserLogin|увайдзіце ўручную]].",
        "noname": "Вы пазначылі няслушнае імя ўдзельніка.",
        "loginsuccesstitle": "Увайшлі ў сыстэму",
        "loginsuccess": "<strong>Цяпер Вы ўвайшлі ў {{GRAMMAR:вінавальны|{{SITENAME}}}} як «$1».</strong>",
        "createacct-another-realname-tip": "Сапраўднае імя паведамляць неабавязкова.\nКалі Вы яго пазначыце, яно будзе выкарыстоўвацца для пазначэньня Вашай працы.",
        "pt-login": "Увайсьці",
        "pt-login-button": "Увайсьці",
+       "pt-login-continue-button": "Працягваць уваход",
        "pt-createaccount": "Стварыць рахунак",
        "pt-userlogout": "Выйсьці",
-       "php-mail-error-unknown": "УзÑ\8cнÑ\96кла Ð½ÐµÐ²Ñ\8fдомаÑ\8f Ð¿Ð°Ð¼Ñ\8bлка Ñ\9e Ñ\84Ñ\83нкÑ\86Ñ\8bÑ\96 PHP mail()",
-       "user-mail-no-addy": "Спроба даслаць электронны ліст без адрасу дастаўкі",
+       "php-mail-error-unknown": "Ð\9dевÑ\8fдомаÑ\8f Ð¿Ð°Ð¼Ñ\8bлка Ñ\9e PHP-Ñ\84Ñ\83нкÑ\86Ñ\8bÑ\96 mail().",
+       "user-mail-no-addy": "Спроба даслаць электронны ліст бяз адрасу дастаўкі.",
        "user-mail-no-body": "Спроба даслаць ліст з пустым або надзвычай кароткім зьместам.",
        "changepassword": "Зьмяніць пароль",
        "resetpass_announce": "Для завяршэньня ўваходу ў сыстэму Вы мусіце ўвесьці новы пароль.",
        "botpasswords-invalid-name": "Пададзенае імя ўдзельніка ня ўтрымлівае падзяляльнік для паролю робата («$1»).",
        "botpasswords-not-exist": "Удзельнік «$1» ня мае паролю для робата з назвай «$2».",
        "resetpass_forbidden": "Пароль ня можа быць зьменены",
+       "resetpass_forbidden-reason": "Паролі ня могуць быць зьмененыя: $1",
        "resetpass-no-info": "Для непасрэднага доступу да гэтай старонкі Вам неабходна ўвайсьці ў сыстэму.",
        "resetpass-submit-loggedin": "Зьмяніць пароль",
        "resetpass-submit-cancel": "Скасаваць",
        "resetpass-temp-password": "Часовы пароль:",
        "resetpass-abort-generic": "Зьмяненьне паролю было скасаванае пашырэньнем.",
        "resetpass-expired": "Тэрмін дзеяньня вашага паролю скончыўся. Калі ласка, пазначце новы пароль для ўваходу ў сыстэму.",
-       "resetpass-expired-soft": "Тэрмін дзеяньня вашага паролю скончыўся і ён патрабуе замены. Калі ласка, абярыце новы пароль цяпер або націсьніце «{{int:resetpass-submit-cancel}}», каб зьмяніць яго пазьней.",
-       "resetpass-validity-soft": "Ваш пароль зьяўляецца некарэктным: $1\n\nКалі ласка, абярыце зараз новы пароль або націсьніце «{{int:resetpass-submit-cancel}}», каб скінуць яго пазьней.",
+       "resetpass-expired-soft": "Тэрмін дзеяньня вашага паролю скончыўся і ён патрабуе замены. Калі ласка, абярыце новы пароль цяпер або націсьніце «{{int:authprovider-resetpass-skip-label}}», каб зьмяніць яго пазьней.",
+       "resetpass-validity-soft": "Ваш пароль зьяўляецца некарэктным: $1\n\nКалі ласка, абярыце зараз новы пароль або націсьніце «{{int:authprovider-resetpass-skip-label}}», каб скінуць яго пазьней.",
        "passwordreset": "Ачыстка паролю",
        "passwordreset-text-one": "Запоўніце гэтую форму, каб скінуць пароль.",
        "passwordreset-text-many": "{{PLURAL:$1|Запоўніце адно з палёў, каб атрымаць часовы пароль праз электронную пошту.}}",
        "passwordreset-emailsentusername": "Калі ёсьць адрас электроннай пошты, злучаны з гэтым імем удзельніка, тады будзе дасланы ліст пра скідваньне паролю.",
        "passwordreset-emailsent-capture": "Ліст пра скіданьне паролю быў дасланы, што паказана ніжэй.",
        "passwordreset-emailerror-capture": "Ліст пра скіданьне паролю быў створаны і паказаны ніжэй, але не ўдалося адправіць яго {{GENDER:$2|ўдзельніку|ўдзельніцы}}: $1",
+       "passwordreset-emailsent-capture2": "{{PLURAL:$1|Электронны ліст|Электронныя лісты}} скіданьня паролю {{PLURAL:$1|быў дасланы|былі дасланыя}}. {{PLURAL:$1|Імя ўдзельніка і пароль|Сьпіс імёнаў удзельнікаў і паролі}} паказаныя ніжэй.",
+       "passwordreset-emailerror-capture2": "Не атрымалася даслаць {{GENDER:$2|удзельніку|удзельніцы}} ліст электроннай поштай: $1 {{PLURAL:$3|Імя ўдзельніка і пароль|Сьпіс імёнаў удзельнікаў і паролі}} паказаныя ніжэй.",
+       "passwordreset-nocaller": "Мусіць быць пададзены той, хто робіць выклік",
+       "passwordreset-nosuchcaller": "Аўтар выкліку не існуе: $1",
+       "passwordreset-ignored": "Скіданьне паролю не адбылося. Магчыма, ня быў наладжаны пастаўшчык?",
+       "passwordreset-invalideamil": "Няслушны адрас электроннай пошты",
+       "passwordreset-nodata": "Не былі пададзеныя ні імя ўдзельніка, ні адрас электроннай пошты",
        "changeemail": "Зьмяніць або выдаліць адрас электроннай пошты",
        "changeemail-header": "Запоўніце гэтую форму, каб зьмяніць ваш адрас электроннай пошты. Калі вы жадаеце выдаліць адрас электроннай пошты, далучаны да вашага рахунку, пакіньце поле новага адрасу электроннай пошты пустым пры запаўненьні формы.",
        "changeemail-passwordrequired": "Вам трэба будзе ўвесьці ваш пароль, каб пацьвердзіць гэтую зьмену.",
        "minoredit": "Гэта дробная праўка",
        "watchthis": "Назіраць за гэтай старонкай",
        "savearticle": "Захаваць старонку",
+       "savechanges": "Захаваць зьмены",
        "publishpage": "Апублікаваць старонку",
+       "publishchanges": "Апублікаваць зьмены",
        "preview": "Папярэдні прагляд",
        "showpreview": "Праглядзець",
        "showdiff": "Паказаць зьмены",
        "accmailtext": "Створаны адвольны пароль для [[User talk:$1|$1]] быў адасланы па адрасе $2. Яго можна зьмяніць на старонцы ''[[Special:ChangePassword|зьмены паролю]]'' пасьля ўваходу.",
        "newarticle": "(Новая)",
        "newarticletext": "Вы прыйшлі па спасылцы на старонку, якая яшчэ не існуе.\nКаб стварыць яе, напішыце тэкст у полі ніжэй (глядзіце [$1 старонку дапамогі] для дадатковай інфармацыі).\nКалі Вы трапілі сюды памылкова, націсьніце кнопку «<strong>назад</strong>» у вашым браўзэры.",
-       "anontalkpagetext": "----''Гэта старонка гутарак ананімнага ўдзельніка, які яшчэ не стварыў сабе рахунак альбо не ўжывае яго. Таму мы вымушаныя ўжываць лічбавы IP-адрас дзеля ягонай ідэнтыфікацыі. Адзін IP-адрас можа выкарыстоўвацца некалькімі ўдзельнікамі. Калі Вы — ананімны ўдзельнік і лічыце, што атрымалі не прызначаныя Вам камэнтары, калі ласка, [[Special:CreateAccount|стварыце рахунак]] альбо [[Special:UserLogin|увайдзіце ў сыстэму]], каб у будучыні пазьбегнуць магчымай блытаніны зь іншымі ананімнымі ўдзельнікамі.''",
+       "anontalkpagetext": "----\n<em>Гэта старонка гутарак ананімнага ўдзельніка, які яшчэ не стварыў сабе рахунак альбо не ўжывае яго.</em>\nТаму мы вымушаныя ўжываць лічбавы IP-адрас дзеля ягонай ідэнтыфікацыі. Адзін IP-адрас можа выкарыстоўвацца некалькімі ўдзельнікамі. Калі Вы — ананімны ўдзельнік і лічыце, што атрымалі не прызначаныя Вам камэнтары, калі ласка, [[Special:CreateAccount|стварыце рахунак]] альбо [[Special:UserLogin|ўвайдзіце ў сыстэму]], каб у будучыні пазьбегнуць магчымай блытаніны зь іншымі ананімнымі ўдзельнікамі.",
        "noarticletext": "Цяпер тэкст на гэтай старонцы адсутнічае.\nВы можаце [[Special:Search/{{PAGENAME}}|пашукаць гэтую назву]] сярод іншых старонак, <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}}}} журнале выдаленьняў].",
        "content-model-css": "CSS",
        "content-json-empty-object": "Пусты аб’ект",
        "content-json-empty-array": "Пусты масіў",
+       "deprecated-self-close-category": "Старонкі зь няслушнымі самазакрытымі HTML-тэгамі",
+       "deprecated-self-close-category-desc": "Старонка ўтрымлівае няслушныя самазакрытыя HTML-тэгі, такія як <code>&lt;b/></code> ці <code>&lt;span/></code>. Іх паводзіны ў хуткім часе будуць зьмененыя ў адпаведнасьці з спэцыфікацыяй HTML5, таму іх ўжываньне ў вікітэксьце лічыцца састарэлым.",
        "duplicate-args-warning": "<strong>Папярэджаньне:</strong> [[:$1]] выклікае [[:$2]] з больш чым адным значэньнем парамэтру «$3». Толькі апошняе з пададзеных значэньняў будзе ўжытае.",
        "duplicate-args-category": "Старонкі, на якіх у шаблёнах выкарыстоўваюцца парамэтры-дублікаты",
        "duplicate-args-category-desc": "Старонкі, якія ўтрымліваюць шаблёны з парамэтрамі-дублікатамі, напрыклад, <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> або <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "rightslogtext": "Гэта журнал зьменаў правоў удзельнікаў.",
        "action-read": "чытаньне гэтай старонкі",
        "action-edit": "рэдагаваньне гэтай старонкі",
-       "action-createpage": "стварэньне старонак",
-       "action-createtalk": "стварэньне старонак абмеркаваньняў",
+       "action-createpage": "стварэньне гэтай старонкі",
+       "action-createtalk": "стварэньне гэтай старонкі абмеркаваньня",
        "action-createaccount": "стварэньне гэтага рахунку ўдзельніка",
        "action-autocreateaccount": "аўтаматычнае стварэньне гэтага рахунку вонкавага ўдзельніка",
        "action-history": "прагляд гісторыі гэтай старонкі",
        "action-managechangetags": "стварэньне і (дэ)актывацыю метак",
        "action-applychangetags": "дадаваньне метак пры рэдагаваньні",
        "action-changetags": "дадаваньне і выдаленьне адвольных метак да асобных вэрсіяў і запісаў у журнале падзеяў",
+       "action-deletechangetags": "выдаленьне метак з базы зьвестак",
        "nchanges": "$1 {{PLURAL:$1|зьмена|зьмены|зьменаў}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|з апошняга візыту}}",
        "enhancedrc-history": "гісторыя",
        "upload-http-error": "Узьнікла памылка HTTP: $1",
        "upload-copy-upload-invalid-domain": "Капіяваньне загрузак не дазволенае ў гэтым дамэне.",
        "upload-foreign-cant-upload": "Гэтая вікі не наладжаная для загрузкі файлаў у запытанае вонкавае сховішча файлаў.",
+       "upload-foreign-cant-load-config": "Не атрымалася загрузіць канфігурацыю для загрузкі файлаў у вонкавае сховішча.",
+       "upload-dialog-disabled": "Загрузка файлаў з дапамогай гэтага дыялёгу адключаная ў гэтай вікі.",
        "upload-dialog-title": "Загрузка файла",
        "upload-dialog-button-cancel": "Адмяніць",
        "upload-dialog-button-done": "Зроблена",
        "apisandbox": "Пясочніца API",
        "apisandbox-jsonly": "Для выкарыстаньня API-пясочніцы патрэбны JavaScript.",
        "apisandbox-api-disabled": "API забаронены на гэтым сайце.",
-       "apisandbox-intro": "Выкарыстоўвайце гэтую старонку для экспэрымэнтаў з <strong>API вэб-сэрвісу MediaWiki</strong>.\nЗьвяртайцеся да [[mw:API:Main page|дакумэнтацыі API]] для дадатковай інфармацыі па выкарыстаньні API. Напрыклад, [//www.mediawiki.org/wiki/API#A_simple_example як атрымаць зьмест галоўнай старонкі]. Абярыце дзеяньне, каб пабачыць болей узораў.\n\nЗьвярніце ўвагу, што нягледзячы на тое, што гэта пясочніца, вашыя дзеяньні могуць унесьці зьмены ў вікі.",
+       "apisandbox-intro": "Выкарыстоўвайце гэтую старонку для экспэрымэнтаў з <strong>API вэб-сэрвісу MediaWiki</strong>.\nЗьвяртайцеся да [[mw:API:Main page|дакумэнтацыі API]] для дадатковай інфармацыі па выкарыстаньні API. Напрыклад, [https://www.mediawiki.org/wiki/API#A_simple_example як атрымаць зьмест галоўнай старонкі]. Абярыце дзеяньне, каб пабачыць болей узораў.\n\nЗьвярніце ўвагу, што нягледзячы на тое, што гэта пясочніца, вашыя дзеяньні могуць унесьці зьмены ў вікі.",
        "apisandbox-fullscreen": "Разгарнуць панэль",
        "apisandbox-fullscreen-tooltip": "Разгарнуць панэль пясочніцы, каб запоўніць акно браўзэра.",
        "apisandbox-unfullscreen": "Паказаць старонку",
        "trackingcategories-msg": "Катэгорыя, якая патрабуе ўвагі",
        "trackingcategories-name": "Назва паведамленьня",
        "trackingcategories-desc": "Крытэр уключэньня ў катэгорыю",
+       "restricted-displaytitle-ignored": "Старонкі, дзе ігнаруюцца назвы для адлюстраваньня",
+       "restricted-displaytitle-ignored-desc": "Старонка ігнаруе <code><nowiki>{{DISPLAYTITLE}}</nowiki></code>, бо ён не супадае зь цяперашняй назвай старонкі.",
        "noindex-category-desc": "Гэтая старонка не індэксуецца пошукавымі робатамі, таму што на ёй маецца магічнае слова <code><nowiki>__NOINDEX__</nowiki></code>, а старонка знаходзіцца ў прасторы назваў, дзе дазволны гэты сьцяг.",
        "index-category-desc": "На старонцы знаходзіцца магічнае слова <code><nowiki>__INDEX__</nowiki></code> (пры гэтым старонка знаходзіцца ў прасторы назваў, дзе дазволены гэты сьцяг), таму яна індэксуецца пошукавымі робатамі ў тых выпадках, калі звычайна гэтага не адбываецца.",
        "post-expand-template-inclusion-category-desc": "Памер старонкі перавысіў <code>$wgMaxArticleSize</code> пасьля разгортваньня ўсіх шаблёнаў, таму некаторыя шаблёны не былі паказаныя цалкам.",
        "rollbacklinkcount": "адкаціць $1 {{PLURAL:$1|рэдагаваньне|рэдагаваньні|рэдагаваньняў}}",
        "rollbacklinkcount-morethan": "адкаціць больш за $1 {{PLURAL:$1|рэдагаваньне|рэдагаваньні|рэдагаваньняў}}",
        "rollbackfailed": "Памылка адкату",
+       "rollback-missingparam": "У запыце адсутнічаюць абавязковыя парамэтры.",
        "cantrollback": "Немагчыма адкаціць зьмену; апошні рэдактар — адзіны аўтар гэтай старонкі.",
        "alreadyrolled": "Немагчыма адкаціць апошнюю зьмену [[:$1]], якую {{GENDER:$2|зрабіў|зрабіла}} [[User:$2|$2]] ([[User talk:$2|гутаркі]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]); нехта іншы ўжо зьмяніў старонку альбо адкаціў зьмены.\n\nАпошнія зьмены зробленыя [[User:$3|$3]] ([[User talk:$3|гутаркі]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
        "editcomment": "Кароткае апісаньне зьменаў было: <em>$1</em>.",
        "changecontentmodel-success-text": "Тып зьместу [[:$1]] быў зьменены.",
        "changecontentmodel-cannot-convert": "Зьмест [[:$1]] ня можа быць ператвораны ў тып $2.",
        "changecontentmodel-nodirectediting": "Мадэль зьместу $1 не падтрымлівае наўпроставае рэдагаваньне",
+       "changecontentmodel-emptymodels-title": "Няма даступных мадэляў зьместу",
+       "changecontentmodel-emptymodels-text": "Зьмест на [[:$1]] ня можа быць ператвораны ні ў які тып.",
        "log-name-contentmodel": "Журнал зьменаў мадэляў зьместу",
        "log-description-contentmodel": "Падзеі, зьвязаныя з мадэлямі зьместу старонак",
        "logentry-contentmodel-change": "$1 {{GENDER:$2|зьмяніў|зьмяніла}} мадэль зьместу старонкі $3 з «$4» на «$5»",
        "sp-contributions-username": "IP-адрас альбо імя ўдзельніка/ўдзельніцы:",
        "sp-contributions-toponly": "Паказваць толькі зьмены, якія зьяўляюцца апошнімі вэрсіямі",
        "sp-contributions-newonly": "Паказваць толькі праўкі, якімі былі створаныя старонкі",
+       "sp-contributions-hideminor": "Схаваць дробныя праўкі",
        "sp-contributions-submit": "Шукаць",
        "whatlinkshere": "Спасылкі на старонку",
        "whatlinkshere-title": "Старонкі, якія спасылаюцца на $1",
        "ipb-unblock": "Разблякаваць рахунак ўдзельніка ці IP-адрас",
        "ipb-blocklist": "Паказаць існуючыя блякаваньні",
        "ipb-blocklist-contribs": "Унёсак $1",
+       "ipb-blocklist-duration-left": "засталося $1",
        "unblockip": "Разблякаваць удзельніка",
        "unblockiptext": "Карыстайцеся пададзенай ніжэй формай для аднаўленьня магчымасьці рэдагаваньня для раней заблякаванага IP-адрасу альбо рахунку ўдзельніка.",
        "ipusubmit": "Зьняць гэта блякаваньне",
        "allmessagesname": "Назва",
        "allmessagesdefault": "Тэкст па змоўчаньні",
        "allmessagescurrent": "Цяперашні тэкст",
-       "allmessagestext": "Сьпіс усіх сыстэмных паведамленьняў, якія існуюць у прасторы назваў MediaWiki.\nКалі ласка, наведайце [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation старонку пра лякалізацыю MediaWiki] і [//translatewiki.net translatewiki.net], калі Вы жадаеце ўдзельнічаць у перакладзе MediaWiki.",
+       "allmessagestext": "Сьпіс усіх сыстэмных паведамленьняў, якія існуюць у прасторы назваў MediaWiki.\nКалі ласка, наведайце [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation старонку пра лякалізацыю MediaWiki] і [https://translatewiki.net translatewiki.net], калі Вы жадаеце ўдзельнічаць у перакладзе MediaWiki.",
        "allmessagesnotsupportedDB": "'''{{ns:special}}:AllMessages''' не падтрымліваецца, таму што адключанае '''$wgUseDatabaseMessages'''.",
        "allmessages-filter-legend": "Фільтар",
        "allmessages-filter": "Фільтар па стане зьменаў:",
        "mw-widgets-dateinput-placeholder-month": "ГГГГ-ММ",
        "mw-widgets-titleinput-description-new-page": "старонка яшчэ не існуе",
        "mw-widgets-titleinput-description-redirect": "перанакіраваньне на $1",
-       "api-error-blacklisted": "Калі ласка, выбярыце іншую, апісальную назву.",
-       "randomrootpage": "Выпадковая карэнная старонка"
+       "randomrootpage": "Выпадковая карэнная старонка",
+       "changecredentials": "Зьмена ўліковых зьвестак",
+       "removecredentials": "Выдаленьне ўліковых зьвестак",
+       "removecredentials-submit": "Выдаліць уліковыя зьвесткі",
+       "credentialsform-provider": "Тып уліковых зьвестак:",
+       "credentialsform-account": "Назва рахунку:"
 }
index 3936c64..fcf7f32 100644 (file)
        "protectedpagetext": "Старонка ахоўваецца, каб нельга было яе правіць ці яшчэ што рабіць.",
        "viewsourcetext": "Можна бачыць і капіраваць зыходны тэкст гэтай старонкі.",
        "viewyourtext": "Вы можаце праглядзець і скапіяваць зыходны тэкст <strong>вашых правак</strong> на гэтай старонцы.",
-       "protectedinterface": "Старонка ўтрымлівае інтэрфейснае паведамленне праграмнага забеспячэння гэтага вікі-праекта і ахоўваецца, каб прадухіліць вандалізм.\nКаб дабавіць ці змяніць пераклады ва ўсіх вікі-праектах, калі ласка, выкарыстоўвайце сайт лакалізацыі MediaWiki [//translatewiki.net/ translatewiki.net].",
+       "protectedinterface": "Старонка ўтрымлівае інтэрфейснае паведамленне праграмнага забеспячэння гэтага вікі-праекта і ахоўваецца, каб прадухіліць вандалізм.\nКаб дабавіць ці змяніць пераклады ва ўсіх вікі-праектах, калі ласка, выкарыстоўвайце сайт лакалізацыі MediaWiki [https://translatewiki.net/ translatewiki.net].",
        "editinginterface": "<strong>Увага:</strong> Вы правіце старонку, якая ўтрымлівае тэкст карыстальніцкага інтэрфейсу.\nЯе змяненне паўплывае на вонкавы выгляд праграмы для ўсіх удзельнікаў гэтай вікі.",
-       "translateinterface": "Каб дабавіць ці змяніць пераклады ва ўсіх вікі-праектах, калі ласка, выкарыстоўвайце сайт лакалізацыі MediaWiki [//translatewiki.net/ translatewiki.net].",
+       "translateinterface": "Каб дабавіць ці змяніць пераклады ва ўсіх вікі-праектах, калі ласка, выкарыстоўвайце сайт лакалізацыі MediaWiki [https://translatewiki.net/ translatewiki.net].",
        "cascadeprotected": "Старонка знаходзіцца пад аховай ад правак, таму што яна ўлучана ў наступн{{PLURAL:$1|ую старонку, якая ахоўваецца|ыя старонкі, якія ахоўваюцца}} з магчымасцю \"каскаднага распаўсюджання\" аховы:\n$2",
        "namespaceprotected": "Вам не дазволена правіць старонкі ў прасторы назваў <strong>$1</strong>.",
        "customcssprotected": "У вас няма дазволу рэдагаваць гэтую CSS-старонку, бо яна ўтрымлівае асабістыя настройкі іншага ўдзельніка.",
        "resetpass-temp-password": "Тымчасовы пароль:",
        "resetpass-abort-generic": "Змяненне пароля было спынена прыстаўкаю.",
        "resetpass-expired": "Ваш пароль пратэрмінаваны. Калі ласка, устанавіце новы пароль для ўваходу ў сістэму.",
-       "resetpass-expired-soft": "Ваш пароль пратэрмінаваны, яго трэба замяніць. Калі ласка, выберыце новы пароль зараз, ці націсніце \"{{int:resetpass-submit-cancel}}\", каб змяніць яго пазней.",
-       "resetpass-validity-soft": "Ваш пароль недапушчальны: $1\n\nКалі ласка, выберыце новы пароль зараз, або націсніце \"{{int:resetpass-submit-cancel}}\", каб скінуць яго пазней.",
+       "resetpass-expired-soft": "Ваш пароль пратэрмінаваны, яго трэба замяніць. Калі ласка, выберыце новы пароль зараз, ці націсніце \"{{int:authprovider-resetpass-skip-label}}\", каб змяніць яго пазней.",
+       "resetpass-validity-soft": "Ваш пароль недапушчальны: $1\n\nКалі ласка, выберыце новы пароль зараз, або націсніце \"{{int:authprovider-resetpass-skip-label}}\", каб скінуць яго пазней.",
        "passwordreset": "Выслаць мне новы пароль",
        "passwordreset-text-one": "Запоўніце гэту форму, каб атрымаць часовы пароль па эл.пошце.",
        "passwordreset-text-many": "{{PLURAL:$1|Запоўніце адно з палёў, каб атрымаць тымчасовы пароль па электроннай пошце.}}",
        "whatlinkshere-prev": "{{PLURAL:$1|папярэдняя|папярэднія $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|наступная|наступныя $1}}",
        "whatlinkshere-links": "← спасылкі",
-       "whatlinkshere-hideredirs": "$1 перанакіраваньні",
-       "whatlinkshere-hidetrans": "$1 уключэньні",
+       "whatlinkshere-hideredirs": "$1 перасылкі",
+       "whatlinkshere-hidetrans": "$1 уключэнні",
        "whatlinkshere-hidelinks": "$1 спасылкі",
        "whatlinkshere-hideimages": "$1 спасылкі на выявы",
        "whatlinkshere-filters": "Фільтры",
        "allmessagesname": "Назва",
        "allmessagesdefault": "Прадвызначаны тэкст",
        "allmessagescurrent": "Актуальны тэкст",
-       "allmessagestext": "Пералік сістэмных паведамленняў, наяўных у прасторы назваў MediaWiki.\nКалі ласка, наведайце пляцоўкі [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] і [//translatewiki.net translatewiki.net], калі жадаеце ўдзельнічаць у перакладзе MediaWiki.",
+       "allmessagestext": "Пералік сістэмных паведамленняў, наяўных у прасторы назваў MediaWiki.\nКалі ласка, наведайце пляцоўкі [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] і [https://translatewiki.net translatewiki.net], калі жадаеце ўдзельнічаць у перакладзе MediaWiki.",
        "allmessagesnotsupportedDB": "Немагчыма паказаць '''{{ns:special}}:{{:{{ns:mediawiki}}:Allmessages}}''', таму што не працуе '''$wgUseDatabaseMessages'''.",
        "allmessages-filter-legend": "Фільтры",
        "allmessages-filter": "Са станам апрацоўкі:",
        "confirm-watch-top": "Дабавіць старонку ў спіс назірання",
        "confirm-unwatch-button": "ОК",
        "confirm-unwatch-top": "Выняць гэту старонку з вашага спіса назірання?",
+       "confirm-rollback-top": "Адкаціць праўкі гэтай старонкі?",
        "quotation-marks": "«$1»",
        "imgmultipageprev": "← папярэдняя старонка",
        "imgmultipagenext": "наступная старонка →",
        "revdelete-restricted": "пастаўленыя абмежаванні на адміністратараў",
        "revdelete-unrestricted": "знятыя абмежаванні з адміністратараў",
        "logentry-block-block": "$1 заблакірава{{GENDER:$2|ў|ла}} {{GENDER:$4|$3}} на перыяд $5 $6",
+       "logentry-block-unblock": "$1 {{GENDER:$2|разблакаваў|разблакавала}} {{GENDER:$4|$3}}",
        "logentry-block-reblock": "$1 {{GENDER:$2|памяняў|памяняла}} настройкі блакіроўкі {{GENDER:$4|$3}} на перыяд $5 $6",
        "logentry-suppress-reblock": "$1 {{GENDER:$2|памяняў|памяняла}} параметры блакіроўкі {{GENDER:$4|$3}} на перыяд $5 $6",
+       "logentry-import-interwiki": "$1 {{GENDER:$2|імпартаваў|імпартавала}} $3 з іншай вікі",
        "logentry-move-move": "$1 {{GENDER:$2|перанёс|перанесла}} старонку $3 у $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|перанёс|перанесла}} старонку $3 у $4, не пакінуўшы перасылкі",
        "logentry-move-move_redir": "$1 {{GENDER:$2|перанёс|перанесла}} старонку $3 у $4 па-над перасылкаю",
index a1652b3..0b8d5f8 100644 (file)
@@ -34,7 +34,8 @@
                        "Xð",
                        "Miroslav35232",
                        "Ket",
-                       "Ricordo.tenerissimo"
+                       "Ricordo.tenerissimo",
+                       "Plamen"
                ]
        },
        "tog-underline": "Подчертаване на препратките:",
        "protectedpagetext": "Тази страница е защитена, за да се предотвратят редактиране или други действия.",
        "viewsourcetext": "Можете да разгледате и да копирате кодa на страницата.",
        "viewyourtext": "Можете да прегледате и копирате изходния код на <strong>вашите редакции</strong> на тази страница.",
-       "protectedinterface": "Тази страница съдържа текст, нужен за работата на системата. Тя е защитена против редактиране, за да се предотвратят възможни злоупотреби.\nЗа извършване на промяна за всички уикита, посетете [//translatewiki.net/ translatewiki.net], проектът за локализация на MediaWiki.",
+       "protectedinterface": "Тази страница съдържа текст, нужен за работата на системата. Тя е защитена против редактиране, за да се предотвратят възможни злоупотреби.\nЗа извършване на промяна за всички уикита, посетете [https://translatewiki.net/ translatewiki.net], проектът за локализация на MediaWiki.",
        "editinginterface": "<strong>Внимание:</strong> Редактирате страница, която се използва за текстовия интерфейс на софтуера. Промяната й ще повлияе на външния вид на уикито.",
-       "translateinterface": "За да добавите или промените преводи за всички уикита, моля, използвайте [//translatewiki.net/ translatewiki.net], локализиращия проект на МедияУики.",
+       "translateinterface": "За да добавите или промените преводи за всички уикита, моля, използвайте [https://translatewiki.net/ translatewiki.net], локализиращия проект на МедияУики.",
        "cascadeprotected": "Тази страница е защитена против редактиране, защото е включена в {{PLURAL:$1|следната страница, която от своя страна има|следните страници, които от своя страна имат}} каскадна защита:\n$2",
        "namespaceprotected": "Нямате права за редактиране на страници в именно пространство '''$1'''.",
        "customcssprotected": "Нямате права за редактиране на тази CSS страница, защото тя съдържа чужди потребителски настройки.",
        "resetpass_submit": "Избиране на парола и влизане",
        "changepassword-success": "Паролата ви беше променена успешно!",
        "changepassword-throttled": "Направили сте твърде много опити да въведете паролата за тази сметка.\nНеобходимо е да изчакате $1 преди да опитате отново.",
+       "botpasswords-createnew": "Създаване на нова бот парола",
+       "botpasswords-editexisting": "Редактиране на съществуваща бот парола",
        "botpasswords-label-appid": "Име на бота:",
        "botpasswords-label-create": "Създаване",
        "botpasswords-label-update": "Обновяване",
        "resetpass-temp-password": "Временна парола:",
        "resetpass-abort-generic": "Промяната на паролата беше прекъсната от използвано разширение.",
        "resetpass-expired": "Срокът на валидност на паролата е изтекъл. Изберете нова парола за влизане.",
-       "resetpass-expired-soft": "Вашата парола е изтекла и трябва да бъде променена. Моля, въведете нова парола сега или натиснете бутона \"{{int:resetpass-submit-cancel}}\" за да я промените по-късно.",
-       "resetpass-validity-soft": "Моля, въведете нова парола сега или натиснете бутона \"{{int:resetpass-submit-cancel}}\" за да я промените по-късно.",
+       "resetpass-expired-soft": "Вашата парола е изтекла и трябва да бъде променена. Моля, въведете нова парола сега или натиснете бутона \"{{int:authprovider-resetpass-skip-label}}\" за да я промените по-късно.",
+       "resetpass-validity-soft": "Моля, въведете нова парола сега или натиснете бутона \"{{int:authprovider-resetpass-skip-label}}\" за да я промените по-късно.",
        "passwordreset": "Възстановяване на парола",
        "passwordreset-text-one": "Попълването на формуляра ще доведе до възстановяване на паролата.",
        "passwordreset-text-many": "{{PLURAL:$1|За получаване на временна парола по електронна поща е необходимо да попълните едно от полетата.}}",
        "passwordreset-emailsentusername": "Ако това потребителско име е свързано с електронна поща, е изпратено писмо за възстановяване на паролата.",
        "passwordreset-emailsent-capture": "По-долу е показано електронното писмо за възстановяване на паролата, което беше изпратено.",
        "passwordreset-emailerror-capture": "По-долу е показано създадено електронно писмо за възстановяване на паролата, което не беше изпратено на {{GENDER:$2|потребителя}}: $1",
+       "passwordreset-invalideamil": "Неправилен email адрес",
        "changeemail": "Промяна или премахване на адреса за е-поща",
        "changeemail-header": "Промяна на адреса за е-поща на сметката",
        "changeemail-passwordrequired": "Трябва да въведете паролата си, за да потвърдите тази промяна.",
        "deletecomment": "Причина:",
        "deleteotherreason": "Друга/допълнителна причина:",
        "deletereasonotherlist": "Друга причина",
-       "deletereason-dropdown": "*СÑ\82андаÑ\80Ñ\82ни Ð¿Ñ\80иÑ\87ини Ð·Ð° Ð¸Ð·Ñ\82Ñ\80иване\n** Ð¡Ð¿Ð°Ð¼\n** Ð\9fо Ð¼Ð¾Ð»Ð±Ð° Ð½Ð° Ð°Ð²Ñ\82оÑ\80а\n** Ð\9dаÑ\80Ñ\83Ñ\88ение Ð½Ð° Ð°Ð²Ñ\82оÑ\80Ñ\81ки Ð¿Ñ\80ава\n** Ð\92андализÑ\8aм\n** Ð\9fо Ð¶ÐµÐ»Ð°Ð½Ð¸Ðµ на автора\n** Грешно пренасочване",
+       "deletereason-dropdown": "*СÑ\82андаÑ\80Ñ\82ни Ð¿Ñ\80иÑ\87ини Ð·Ð° Ð¸Ð·Ñ\82Ñ\80иване\n** Ð¡Ð¿Ð°Ð¼\n** Ð\92андализÑ\8aм\n** Ð\9dаÑ\80Ñ\83Ñ\88ение Ð½Ð° Ð°Ð²Ñ\82оÑ\80Ñ\81ки Ð¿Ñ\80ава\n** Ð\9fо Ð¼Ð¾Ð»Ð±Ð° на автора\n** Грешно пренасочване",
        "delete-edit-reasonlist": "Редактиране на причините за изтриване",
        "delete-toobig": "Тази страница има голяма редакционна история с над $1 {{PLURAL:$1|версия|версии}}. Изтриването на такива страници е ограничено, за да се предотвратят евентуални поражения на {{SITENAME}}.",
        "delete-warning-toobig": "Тази страница има голяма редакционна история с над $1 {{PLURAL:$1|версия|версии}}. Възможно е изтриването да наруши някои операции в базата данни на {{SITENAME}}; необходимо е особено внимание при продължаване на действието.",
        "whatlinkshere-prev": "{{PLURAL:$1|предишна|предишни $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|следваща|следващи $1}}",
        "whatlinkshere-links": "← препратки",
-       "whatlinkshere-hideredirs": "$1 Ð½Ð° Ð¿Ñ\80енаÑ\81оÑ\87ваÑ\89и Ñ\81Ñ\82Ñ\80аниÑ\86и",
-       "whatlinkshere-hidetrans": "$1 Ð½Ð° Ð²ÐºÐ»Ñ\8eÑ\87ени Ñ\81Ñ\82Ñ\80аниÑ\86и",
-       "whatlinkshere-hidelinks": "$1 Ð½Ð° Ð¿Ñ\80епÑ\80аÑ\82ки",
+       "whatlinkshere-hideredirs": "$1 Ð¿Ñ\80енаÑ\81оÑ\87ваниÑ\8f",
+       "whatlinkshere-hidetrans": "$1 Ð²ÐºÐ»Ñ\8eÑ\87ваниÑ\8f",
+       "whatlinkshere-hidelinks": "$1 препратки",
        "whatlinkshere-hideimages": "$1 на препратки към файла",
        "whatlinkshere-filters": "Филтри",
        "whatlinkshere-submit": "Отваряне",
        "allmessagesname": "Име",
        "allmessagesdefault": "Текст по подразбиране",
        "allmessagescurrent": "Текущ текст",
-       "allmessagestext": "Тази страница съдържа списък на системните съобщения от именното пространство „МедияУики“.\nПосетете [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] и [//translatewiki.net translatewiki.net], ако желаете да допринесете за общата локализация на софтуера МедияУики.",
+       "allmessagestext": "Тази страница съдържа списък на системните съобщения от именното пространство „МедияУики“.\nПосетете [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] и [https://translatewiki.net translatewiki.net], ако желаете да допринесете за общата локализация на софтуера МедияУики.",
        "allmessagesnotsupportedDB": "Тази страница не може да бъде използвана, тъй като е изключена възможността '''$wgUseDatabaseMessages'''.",
        "allmessages-filter-legend": "Филтър",
        "allmessages-filter": "Филтриране по ниво на персонализация:",
        "confirm-watch-top": "Добавяне на страницата в списъка ви за наблюдение?",
        "confirm-unwatch-button": "Потвърждаване",
        "confirm-unwatch-top": "Премахване на страницата от списъка ви за наблюдение?",
+       "confirm-rollback-button": "OK",
        "quotation-marks": "„$1“",
        "imgmultipageprev": "← предишна страница",
        "imgmultipagenext": "следваща страница →",
        "revdelete-uname-hid": "скрито потребителско име",
        "revdelete-restricted": "добавени ограничения за администраторите",
        "revdelete-unrestricted": "премахнати ограничения за администраторите",
-       "logentry-suppress-block": "$1 {{GENDER:$2|блокира}} {{GENDER:$4|$3}} за срок от $5 $6",
-       "logentry-suppress-reblock": "$1 {{GENDER:$2|промени}} настройките на блокиране на {{GENDER:$4|$3}} за срок от $5 $6",
+       "logentry-block-block": "$1 блокира {{GENDER:$4|$3}} със срок на изтичане $5 $6",
+       "logentry-block-reblock": "$1 промени настройките на блокиране на {{GENDER:$4|$3}} със срок на изтичане $5 $6",
+       "logentry-suppress-block": "$1 {{GENDER:$2|блокира}} {{GENDER:$4|$3}} със срок на изтичане $5 $6",
+       "logentry-suppress-reblock": "$1 {{GENDER:$2|промени}} настройките на блокиране на {{GENDER:$4|$3}} със срок на изтичане $5 $6",
        "logentry-move-move": "$1 {{GENDER:$2|премести}} страница „$3“ като „$4“",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|премести}} страницата „$3“ като „$4“ без пренасочване",
        "logentry-move-move_redir": "$1 {{GENDER:$2|премести}} страницата $3 като $4 (върху пренасочване)",
        "mw-widgets-dateinput-placeholder-month": "ГГГГ-ММ",
        "mw-widgets-titleinput-description-new-page": "страницата все още не съществува",
        "mw-widgets-titleinput-description-redirect": "пренасочване към $1",
-       "api-error-blacklisted": "Моля, изберете различно, описателно заглавие.",
        "randomrootpage": "Случайна начална страница",
        "log-action-filter-protect": "Тип защита:",
        "log-action-filter-upload": "Тип качване:",
        "log-action-filter-block-reblock": "Промяна на блокирането",
        "log-action-filter-block-unblock": "Отблокиране",
        "log-action-filter-upload-upload": "Ново качване",
-       "log-action-filter-upload-overwrite": "Повторно качване"
+       "log-action-filter-upload-overwrite": "Повторно качване",
+       "authmanager-authplugin-setpass-bad-domain": "Невалиден домейн.",
+       "authmanager-email-label": "Е-поща",
+       "authmanager-email-help": "Електронна поща",
+       "authmanager-realname-label": "Истинско име",
+       "authprovider-resetpass-skip-label": "Пропусни",
+       "specialpage-securitylevel-not-allowed-title": "Не е позволено",
+       "cannotauth-not-allowed-title": "Достъпът е отказан"
 }
index a954573..a0b6220 100644 (file)
        "protectedpagetext": "ای تاکدیم په دیمگیری شه ایڈیٹ و یا دیگرین فئالیئتان قُلپ بوته.",
        "viewsourcetext": "شما ئه توانیت ای تاکدیمی مبدائا بگیندیت و یا کاپی بکنیت:",
        "viewyourtext": "شما ئه تونیت که  '''وتئ ایڈیٹانی'''  منشاء ئا بی ای تاکدیمی تا بگیندیت و کاپی بکنیت:",
-       "protectedinterface": "ای تاکدیم یک متنی ئا ارایه ئه کنت که ای ویکی ئی تا یک سافٹ ایرئ  په واسط بی کار زوروکانی مانجینا اینت و په دیمگیری ئا شه خرابکاری ئی  خاتیرا قُلپ بوته.\nپه اضافه کورتین یا تغیر داتین ترجمه په موچین ویکی ئان ، مهربانی بکنیت شه [//translatewiki.net/ translatewiki.net]، میڈیا ویکی ئی محلی کورتینی پروژه ئا ، استفاده بکنیت.",
+       "protectedinterface": "ای تاکدیم یک متنی ئا ارایه ئه کنت که ای ویکی ئی تا یک سافٹ ایرئ  په واسط بی کار زوروکانی مانجینا اینت و په دیمگیری ئا شه خرابکاری ئی  خاتیرا قُلپ بوته.\nپه اضافه کورتین یا تغیر داتین ترجمه په موچین ویکی ئان ، مهربانی بکنیت شه [https://translatewiki.net/ translatewiki.net]، میڈیا ویکی ئی محلی کورتینی پروژه ئا ، استفاده بکنیت.",
        "editinginterface": "<strong>هشدار:</strong> تاکدیمی که ایڈیٹ ئه کنیت متنی ئا شامل ئه بیئت که بی ای کار زوروکئ واسط ئی سافت ایر تا به کار گیپته بوته.\nای تاکدیمی تغییر  منجر بئ کار زوروکئ واسط ئی  ظاهر ئین تغیر ای سافت ایر په دیگه کار زوروکان ئه بیئت.",
-       "translateinterface": "په اضافه کورتین یا تغیر داتین ترجمه ئی په موچین ویکی ئان،مهربانی بکنیت شه [//translatewiki.net/ translatewiki.net]، مییڈیا ویکی  محلی کورتینی پروژه ئا، استفاده بکنیت.",
+       "translateinterface": "په اضافه کورتین یا تغیر داتین ترجمه ئی په موچین ویکی ئان،مهربانی بکنیت شه [https://translatewiki.net/ translatewiki.net]، مییڈیا ویکی  محلی کورتینی پروژه ئا، استفاده بکنیت.",
        "cascadeprotected": "ای تاکدیم بئ ایڈیٹتانی مقابلا قُلپ بوته چونکه بی جهلگین قُلپ بوته ئین  {{PLURAL:$1|تاکدیم|تاکدیمانئ}} تا به {{PLURAL:$1|آوان|آوانئ}} تا «آپشارین» مینو انتخاب بوته:\n$2",
        "namespaceprotected": "شما '''$1''' ئی تاکدیمانئ فضای نامئ ایڈیٹ کورتین ئی اجازه ئا  نداریت.",
        "customcssprotected": "شما ای سی اس اس ئی تاکدیمئ ایڈیٹ ئی اجازه ئا نداریت، په خاتیریکه ایشی تا یک کار زوروکئ شخصی ئین تنظیمات هستنت.",
        "protect-level-sysop": "فقط مدیر هان",
        "protect-summary-cascade": "آپشاری",
        "protect-expiring": "پوره بوتین ئی وخت $1 (UTC)",
-       "protect-expiring-local": "Ù¾Ù\88رÙ\87 Ø¨Ù\88تÙ\87 Ø¦ین $1",
+       "protect-expiring-local": "Ù\88ختئ Ù¾Ù\88رÙ\87 Ø¨Ù\88تین $1",
        "protect-expiry-indefinite": "بی‌پایان",
        "protect-cantedit": "شما ئه نه توانیت ای تاکدیمی قُلپئ وضیعتا تغیر بدهیت، چون که شما آیی ایڈیٹ ئی اجازه ئا نداریت.",
        "protect-othertime": "دیگه وخت:",
index dfd246e..6f85ebb 100644 (file)
        "protectedpagetext": "इ पन्ना संपादन आ अन्य कार्यं से बचाव खातिर सुरक्षित कर दिहल गइल बा।",
        "viewsourcetext": "रउआँ एह पन्ना के स्रोत देख सकत बानी आ एकर नकल उतार सकत बानी:",
        "viewyourtext": "एह पन्ना पर <strong>राउर आपन संपादन सब</strong>के स्रोत देख सकत बानी आ ओकर नकल ले सकत बानी।",
-       "protectedinterface": "इ पन्ना इ विकी के सॉफ़्टवेयर के इंटरफ़ेस पाठ्य के देवेला, आ इ के गलत प्रयोग से बचावे खातिर सुरक्षित कर दिहल गइल बा।\nसभन विकियन खातिर अनुवाद जोड़े या बदले खातिर कृपया मीडियाविकि के क्षेत्रीयकरण प्रकल्प [//translatewiki.net/ translatewiki.net] के प्रयोग करीं।",
+       "protectedinterface": "इ पन्ना इ विकी के सॉफ़्टवेयर के इंटरफ़ेस पाठ्य के देवेला, आ इ के गलत प्रयोग से बचावे खातिर सुरक्षित कर दिहल गइल बा।\nसभन विकियन खातिर अनुवाद जोड़े या बदले खातिर कृपया मीडियाविकि के क्षेत्रीयकरण प्रकल्प [https://translatewiki.net/ translatewiki.net] के प्रयोग करीं।",
        "editinginterface": "<strong>चेतावनी:</strong> आप एगो अइसन पन्ना के बदल बदल रहल बानी जवन सॉफ़्टवेयर के इंटरफ़ेस पाठ प्रदान करेला। इ पृष्ठ के बदले से अन्य सदस्यवन के प्रदर्शित इंटरफ़ेस के शक्लोसूरत में बदलाव आई।",
-       "translateinterface": "सभन विकियन खातिर अनुवाद जोड़े या बदले खातिर मीडियाविकि क्षेत्रीयकरण परियोजना [//translatewiki.net/ translatewiki.net] के प्रयोग करीं।",
+       "translateinterface": "सभन विकियन खातिर अनुवाद जोड़े या बदले खातिर मीडियाविकि क्षेत्रीयकरण परियोजना [https://translatewiki.net/ translatewiki.net] के प्रयोग करीं।",
        "cascadeprotected": "ए पन्ना के संपादन कइल सुरक्षित क दिहल गइल बा काहें कि ई {{PLURAL:$1|पन्ना में, जौना के|पन्ना सब में, जिन्हन के}} \"कैस्केडिंग\" (बिस्तारित) सुरक्षा चालू क के सुरक्षित कइल गइल बा, में समाइल बाटे:\n$2",
        "namespaceprotected": "रउआ के '''$1''' नामस्थान के पन्नं में सम्पादन करे के अधिकार नइखे दिहल गइल।",
        "customcssprotected": "रउआ के इ CSS पन्ना के संपादित करे के अनुमति नइखे, काहे कि इ में अन्य सदस्यं के व्यक्तिगत सेटिंग्स समाविष्ट बा।",
        "resetpass-temp-password": "अस्थायी गुप्तशब्द:",
        "resetpass-abort-generic": "कउनो एक्सटेंशन द्वारा गुप्तशब्द में बदलाव रोक दिहल गईल बा।",
        "resetpass-expired": "राउर पासवर्ड की वैधता अवधि समाप्त हो चुकल बा। कृपया लॉग इन करे खातिर एगो नया पासवर्ड सेट करीं।",
-       "resetpass-expired-soft": "राउर गुप्तशब्द अमान्य हो चुकल बा इ के पुनः स्थापित करे के पड़ी। कृपया अभी एगो नया गुप्तशब्द चुनीं या \"{{int:resetpass-submit-cancel}}\" पर बाद में पुनः स्थापित कर सकत बानी।",
-       "resetpass-validity-soft": "राउर पासवर्ड मान्य नईखे: $1 \n\nकृपया अब एक नया पासवर्ड चुनीं, या उ के बाद में पुनर्स्थापित करे खातिर \"{{int:resetpass-submit-cancel}}\" पर क्लिक करीं।",
+       "resetpass-expired-soft": "राउर गुप्तशब्द अमान्य हो चुकल बा इ के पुनः स्थापित करे के पड़ी। कृपया अभी एगो नया गुप्तशब्द चुनीं या \"{{int:authprovider-resetpass-skip-label}}\" पर बाद में पुनः स्थापित कर सकत बानी।",
+       "resetpass-validity-soft": "राउर पासवर्ड मान्य नईखे: $1 \n\nकृपया अब एक नया पासवर्ड चुनीं, या उ के बाद में पुनर्स्थापित करे खातिर \"{{int:authprovider-resetpass-skip-label}}\" पर क्लिक करीं।",
        "passwordreset": "गुप्तशब्द (पासवर्ड) रिसेट करीं",
        "passwordreset-text-one": "आपन गुप्तशब्द के पुनर्स्थापित करे खातिर इ फॉर्म भरीं।",
        "passwordreset-text-many": "{{PLURAL:$1|ईमेल द्वारा अस्थाई पासवर्ड पावे खातिर निम्न में से कउनो एगो स्थान भरीं।}}",
index 1980adf..8a0eb59 100644 (file)
        "viewsourcetext": "Pian kawa maniringi wan manyalin asal mula tungkaran ngini:",
        "viewyourtext": "Pian kawa maniringi wan salain asalmula matan '''babakan pian''' ka tungkaran ngini:",
        "protectedinterface": "Tungkaran ini manyadiakan naskah antarmuha gasan parangkat lunak, wan dilindungi hagan mancagah tasalah puruk.",
-       "editinginterface": "'''Paringatan:''' Pian mambabak sabuting tungkaran nang dipuruk hagan manyadiakan naskah antarmuha gasan parangkat lunak.\nPaubahan ka tungkaran ngini akan bapangaruh matan tampaian antarmuha gasan pamakai lain.\nGasan tarjamahan, muhun pakai [//translatewiki.net/wiki/Main_Page?setlang=bjn translatewiki.net], rangka gawian palokalan MediaWiki.",
+       "editinginterface": "'''Paringatan:''' Pian mambabak sabuting tungkaran nang dipuruk hagan manyadiakan naskah antarmuha gasan parangkat lunak.\nPaubahan ka tungkaran ngini akan bapangaruh matan tampaian antarmuha gasan pamakai lain.\nGasan tarjamahan, muhun pakai [https://translatewiki.net/wiki/Main_Page?setlang=bjn translatewiki.net], rangka gawian palokalan MediaWiki.",
        "cascadeprotected": "Tungkaran ini sudah dilindungi matan pambabakan, marga nangini tamasuk dalam {{PLURAL:$1|tungkaran|tutungkaran}} dudi nang dilindungi \"barénténg\": $2",
        "namespaceprotected": "Pian kada baisi ijin hagan mambabak tutungkaran dalam ngaran kamar '''$1'''.",
        "customcssprotected": "Pian kada baisi ijin mambabak tungkaran CSS ngini, karana ngini baisi setelan paribadi pamakai lain.",
        "allmessagesname": "Ngaran",
        "allmessagesdefault": "Naskah baku pasan",
        "allmessagescurrent": "Naskah pasan wayahini.",
-       "allmessagestext": "Ngini adalah sabuah daptar pasan sistem tasadia dalam ruang-ngaran MediaWiki.\nMuhun ilangi [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] wan [//translatewiki.net translatewiki.net] amun Pian hakun manyumbang palukalan umum MediaWiki.",
+       "allmessagestext": "Ngini adalah sabuah daptar pasan sistem tasadia dalam ruang-ngaran MediaWiki.\nMuhun ilangi [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] wan [https://translatewiki.net translatewiki.net] amun Pian hakun manyumbang palukalan umum MediaWiki.",
        "allmessagesnotsupportedDB": "Tungkaran ngini kada kawa dipuruk karana '''$wgUseDatabaseMessages''' sudah dipajahakan.",
        "allmessages-filter-legend": "Saringan",
        "allmessages-filter": "Saringan lawan kaadaan kustom:",
index 3e58532..1626101 100644 (file)
        "protectedpagetext": "সম্পাদনা অথবা স্থানান্তর এড়াতে এ পাতাটির ব্যবহার নিয়ন্ত্রণ করা হয়েছে।",
        "viewsourcetext": "এ পাতাটি আপনি দেখতে এবং উৎসের অনুলিপি নিতে পারবেন।",
        "viewyourtext": "আপনি এই পাতায় <strong>আপনার সম্পাদনা</strong>দেখতে এবং অনুলিপি করতে পারেন।",
-       "protectedinterface": "এই পাতার বিষয়বস্তু এই উইকি সফটওয়্যারের একটি ইন্টারফেস বার্তা প্রদান করে, তাই এটিকে সুরক্ষিত করে রাখা হয়েছে।\nসকল উইকির অনুবাদে কোনো ধরনের সংযোজন বা পরিবর্তন করতে, অনুগ্রহ করে মিডিয়াউইকি স্থানীয়করন প্রকল্প [//translatewiki.net/ translatewiki.net] ব্যবহার করুন।",
+       "protectedinterface": "এই পাতার বিষয়বস্তু এই উইকি সফটওয়্যারের একটি ইন্টারফেস বার্তা প্রদান করে, তাই এটিকে সুরক্ষিত করে রাখা হয়েছে।\nসকল উইকির অনুবাদে কোনো ধরনের সংযোজন বা পরিবর্তন করতে, অনুগ্রহ করে মিডিয়াউইকি স্থানীয়করন প্রকল্প [https://translatewiki.net/ translatewiki.net] ব্যবহার করুন।",
        "editinginterface": "<strong>সতর্কীকরণ:</strong> আপনি এমন একটি পাতা সম্পাদনা করছেন যা সফটওয়্যারের জন্য ইন্টারফেস টেক্সট প্রদান করে।\nএই পাতাতে সংঘটিত পরিবর্তন এই উইকির ব্যবহারকারীদের ইন্টারফেসে প্রভাব ফেলবে, যা অন্য ব্যবহারকারীরা দেখতে পাবেন।",
-       "translateinterface": "সকল উইকির জন্য অনুবাদ যোগ বা পরিবর্তন করতে, দয়া করে [//translatewiki.net/ translatewiki.net], মিডিয়াউইকি স্থানীয়করণ প্রকল্প ব্যবহার করুন।",
+       "translateinterface": "সকল উইকির জন্য অনুবাদ যোগ বা পরিবর্তন করতে, দয়া করে [https://translatewiki.net/ translatewiki.net], মিডিয়াউইকি স্থানীয়করণ প্রকল্প ব্যবহার করুন।",
        "cascadeprotected": "এই পাতাটি সম্পাদনা থেকে সুরক্ষিত কারণ এটি নিম্নোক্ত {{PLURAL:$1|পাতায়|পাতাসমূহে}} অন্তর্ভুক্ত, যা \"প্রপাতাকার\" বৈশিষ্ট্য সহযোগে সুরক্ষিত করা আছে:\n$2",
        "namespaceprotected": "'''$1''' নামস্থানে কোন পাতা আপনার সম্পাদনা করার অনুমতি নেই।",
        "customcssprotected": "আপনার এই সিএসএস পাতাটি সম্পাদনা করার অনুমতি নেই, কারণ এ পাতায় অন্য ব্যবহারকারীর নিজস্ব সেটিংস রয়েছে।",
        "createaccountreason": "কারণ:",
        "createacct-reason": "কারণ",
        "createacct-reason-ph": "কেন আপনি আরেকটি অ্যাকাউন্ট তৈরি করছেন",
+       "createacct-reason-help": "অ্যাকাউন্ট তৈরির লগে দেখানো বার্তা",
        "createacct-submit": "আপনার অ্যাকাউন্ট তৈরি করুন",
        "createacct-another-submit": "অ্যাকাউন্ট তৈরি করুন",
+       "createacct-continue-submit": "অ্যাকাউন্ট তৈরি চালিয়ে যান",
+       "createacct-another-continue-submit": "অ্যাকাউন্ট তৈরি চালিয়ে যান",
        "createacct-benefit-heading": "{{SITENAME}} আপনার মত লোকের দ্বারাই তৈরি।",
        "createacct-benefit-body1": "{{PLURAL:$1|টি সম্পাদনা}}",
        "createacct-benefit-body2": "{{PLURAL:$1|টি পাতা}}",
        "createacct-another-realname-tip": "আসল নাম ঐচ্ছিক।\nআপনি যদি তা দিতে চান, তাহলে তা ব্যবহারকারীকে তাদের কাজের জন্য স্বীকৃতিদানে ব্যবহার করা হবে।",
        "pt-login": "প্রবেশ",
        "pt-login-button": "প্রবেশ",
+       "pt-login-continue-button": "প্রবেশ অব্যাহত রাখুন",
        "pt-createaccount": "অ্যাকাউন্ট তৈরি করুন",
        "pt-userlogout": "প্রস্থান",
        "php-mail-error-unknown": "পিএইচপির mail() কার্যে অজ্ঞাত ত্রুটি।",
        "resetpass-temp-password": "অস্থায়ী পাসওয়ার্ড:",
        "resetpass-abort-generic": "পাসওয়ার্ড পরিবর্তন একটি এক্সটেনশনের কারণে স্থগিত করা হয়েছে।",
        "resetpass-expired": "আপনার পাসওয়ার্ডের মেয়াদ উত্তীর্ণ হয়েছে। অনুগ্রহ করে নতুন পাসওয়ার্ড নির্ধারণ করুন।",
-       "resetpass-expired-soft": "আপনার পাসওয়ার্ডের মেয়াদ উত্তীর্ণ হয়েছে এবং আপনাকে একটি নতুন পাসওয়ার্ড নির্ধারণ করতে হবে। অনুগ্রহ করে এখনই একটি নতুন পাসওয়ার্ড নির্ধারণ করুন অথবা পরে পরিবর্তন করতে চাইলে \"{{int:resetpass-submit-cancel}}\" বাটনে ক্লিক করুন।",
-       "resetpass-validity-soft": "দয়া à¦\95রà§\87 à¦\8fà¦\95à¦\9fি à¦¨à¦¤à§\81ন à¦ªà¦¾à¦¸à¦\93য়ারà§\8dড à¦¨à¦¿à¦°à§\8dধারণ à¦\95রà§\81ন à¦\85থবা à¦ªà¦°à§\87 à¦\95রার à¦\9cনà§\8dয \"{{int:resetpass-submit-cancel}}\" ক্লিক করুন।",
+       "resetpass-expired-soft": "আপনার পাসওয়ার্ডের মেয়াদ উত্তীর্ণ হয়েছে এবং আপনাকে একটি নতুন পাসওয়ার্ড নির্ধারণ করতে হবে। অনুগ্রহ করে এখনই একটি নতুন পাসওয়ার্ড নির্ধারণ করুন অথবা পরে পরিবর্তন করতে চাইলে \"{{int:authprovider-resetpass-skip-label}}\" বাটনে ক্লিক করুন।",
+       "resetpass-validity-soft": "à¦\86পনার à¦ªà¦¾à¦¸à¦\93য়ারà§\8dড à¦¬à§\88ধ à¦¨à¦¯à¦¼: $1\n\nদয়া à¦\95রà§\87 à¦\8fà¦\95à¦\9fি à¦¨à¦¤à§\81ন à¦ªà¦¾à¦¸à¦\93য়ারà§\8dড à¦¨à¦¿à¦°à§\8dধারণ à¦\95রà§\81ন à¦\85থবা à¦ªà¦°à§\87 à¦\95রার à¦\9cনà§\8dয \"{{int:authprovider-resetpass-skip-label}}\" ক্লিক করুন।",
        "passwordreset": "পাসওয়ার্ড রিসেট",
        "passwordreset-text-one": "আপনার পাসওয়ার্ড পুনরায় সেট করতে এই ফর্মটি পূরণ করুন।",
        "passwordreset-text-many": "{{PLURAL:$1|ইমেইলের মাধ্যমে একটি অস্থায়ী পাসওয়ার্ড পেতে ঘরগুলির একটি পূরণ করুন।}}",
        "passwordreset-emailsentusername": "যদি এই ব্যবহারকারী নামের সাথে ই-মেইল ঠিকানা সংযুক্ত করা থাকে, তাহলে একটি পাসওয়ার্ড বদলের ইমেইল পাঠানো হবে।",
        "passwordreset-emailsent-capture": "স্মরণ করিয়ে দেয়ার জন্য একটি ইমেইল করা হয়েছে, যা নিচে দেখানো হচ্ছে।",
        "passwordreset-emailerror-capture": "স্মরণ করিয়ে দেয়ার জন্য একটি ইমেইল তৈরী করা হয়েছিল, যা নিচে দেখানো হচ্ছে, তবে $1 {{GENDER:$2|ব্যবহারকারীকে}} এটি পাঠানো যায়নি!",
+       "passwordreset-nocaller": "একটি আহ্বানকারী প্রদান করা আবশ্যক",
+       "passwordreset-nosuchcaller": "আহ্বানকারীর অস্তিত্ব নেই: $1",
        "passwordreset-invalideamil": "ভুল ইমেইল ঠিকানা",
+       "passwordreset-nodata": "একটি ব্যবহারকারীর নাম বা একটি ইমেল ঠিকানা দুটির একটিও সরবরা দেয়া হয়নি",
        "changeemail": "ই-মেইল ঠিকানা পরিবর্তন বা বাতিল",
        "changeemail-header": "আপনার ইমেল ঠিকানা পরিবর্তন করতে এই ফরমটি পূরণ করুন। আপনি যদি আপনার একাউন্ট থেকে যে কোন ইমেল ঠিকানার এসোসিয়েশন অপসারণ করতে চান, তাহলে ফরমটি জমা দেওয়ার সময় নতুন ইমেইল ঠিকানা খালি রাখুন।",
        "changeemail-passwordrequired": "এই পরিবর্তন নিশ্চিত করতে আপনাকে আপনার পাসওয়ার্ড লিখতে হবে।",
        "minoredit": "এটি একটি অনুল্লেখ্য সম্পাদনা",
        "watchthis": "এই পাতাটি নজরে রাখুন",
        "savearticle": "সংরক্ষণ",
+       "savechanges": "পরিবর্তন সংরক্ষণ",
        "publishpage": "পাতা প্রকাশ করুন",
+       "publishchanges": "পরিবর্তন প্রকাশ করুন",
        "preview": "প্রাকদর্শন",
        "showpreview": "প্রাকদর্শন",
        "showdiff": "পরিবর্তনসমূহ",
        "blankarticle": "<strong>সতর্ক বার্তা:</strong> আপনি একটি খালি পাতা তৈরী করতে যাচ্ছেন।\nআপনি যদি পুনরায় \"{{int:savearticle}}\" বাটন ক্লিক করেন তাহলে, পাতাটি তৈরী হবে যেখানে কোনো তথ্য লেখা নেই।",
        "anoneditwarning": "<strong>সতর্কতা:</strong> আপনি বর্তমানে প্রবেশ করেননি। যদি আপনি সম্পাদনা করেন এই পাতার সম্পাদনার ইতিহাসে আপনার আইপি ঠিকানা সার্বজনীনভাবে সংরক্ষিত হবে। যদি আপনি  <strong>[$1 প্রবেশ করেন]</strong> বা  <strong>[$2 একটি অ্যাকাউন্ট তৈরি করেন]</strong>, তাহলে আপনি আপনার আইপি ঠিকানা গোপন রাখতে পারবেন ও অন্যান্য অনেক কিছু সুবিধা পাবেন।",
-       "anonpreviewwarning": "<em>à¦\86পনি à¦ªà§\8dরবà§\87শ à¦\95রà§\87ননি। à¦¸à¦®à§\8dপাদনা à¦\95রতà§\87 à¦\8fà¦\87 à¦ªà¦¾à¦¤à¦¾à¦° à¦¸à¦®à§\8dপাদনার à¦\87তিহাসà§\87 à¦\86পনার à¦\86à¦\87পি à¦¸à¦\82à¦\96à§\8dযা সংরক্ষিত হবে।</em>",
+       "anonpreviewwarning": "<em>à¦\86পনি à¦ªà§\8dরবà§\87শ à¦\95রà§\87ননি। à¦¸à¦®à§\8dপাদনা à¦\95রলà§\87 à¦\8fà¦\87 à¦ªà¦¾à¦¤à¦¾à¦° à¦¸à¦®à§\8dপাদনার à¦\87তিহাসà§\87 à¦\86পনার à¦\86à¦\87পি à¦ à¦¿à¦\95ানা সংরক্ষিত হবে।</em>",
        "missingsummary": "'''খেয়াল করুন''':  আপনি কিন্তু সম্পাদনার সারাংশ দেননি। আবার যদি \"সংরক্ষণ\" বোতামে ক্লিক করেন, তাহলে ঐ সারাংশ বাক্যটি ছাড়াই আপনার সম্পাদনা সংরক্ষিত হবে।",
        "selfredirect": "<strong>সতর্কতা:</strong> আপনি এই পাতাকে এর নিজের দিকে পুনঃনির্দেশিত করছেন।\nআপনাকে পুনঃনির্দেশিত করার জন্য হয় ভুল লক্ষ্য নির্দিষ্ট করেছেন, অথবা আপনি ভুল পাতা সম্পাদনা করছেন।\nআপনি যদি আবার \"{{int:savearticle}}\" ক্লিক করেন, পুনর্নির্দেশ যেকোনোভাবেই হোক তৈরি করা হবে।",
        "missingcommenttext": "দয়া করে নিচে মন্তব্য যোগ করুন।",
        "sectioneditnotsupported-text": "এই সম্পাদনা পাতায় অনুচ্ছেদ সম্পাদনা সমর্থন করে না",
        "permissionserrors": "অনুমতি ত্রুটিসমূহ",
        "permissionserrorstext": "আপনার এটা করার অনুমতি নেই, নিচের {{PLURAL:$1|টি কারণের|টি কারণের}} জন্য:",
-       "permissionserrorstext-withaction": "আপনার $2 করার অনুমতি নেই, যার {{PLURAL:$1|কারণ|কারণসমূহ}}:",
+       "permissionserrorstext-withaction": "আপনার $2 করার অনুমতি নেই, যার {{PLURAL:$1|কারণ|কারণসমূহ}} হল:",
        "recreate-moveddeleted-warn": "'''সতর্কীকরণ: আপনি এমন একটি পাতা পুনরায় তৈরি করছেন যা পূর্বে অপসারণ করা হয়েছিল।'''\n\nআপনি পাতাটি সম্পাদনা চালিয়ে যাওয়া ঠিক হবে কিনা, তা বিবেচনা করুন।\nআপনার সুবিধার্থে পাতাটির অপলুপ্তি লগ এখানে দেয়া হলো:",
        "moveddeleted-notice": "এই পাতাটি অপসারণ করা হয়েছে।\nসূত্র হিসেবে নিচে এ পাতার অবলুপ্তি লগ দেওয়া হলো।",
        "moveddeleted-notice-recent": "দুঃখিত, এই পাতাটি সাম্প্রতি অপসারিত হয়েছে (সর্বশেষ ২৪ ঘণ্টায়)।\nসূত্র হিসেবে নিচে এই পাতা অপসারণ ও স্থানান্তর লগ দেয়া হয়েছে।",
        "content-model-css": "সিএসএস",
        "content-json-empty-object": "খালি বস্তু",
        "content-json-empty-array": "খালি অ্যারে",
+       "deprecated-self-close-category": "অবৈধ স্ব-বন্ধকৃত এইচটিএমএল ট্যাগ ব্যবহার করা পাতা",
+       "deprecated-self-close-category-desc": "এই পাতাটি অবৈধ স্ব-বন্ধকৃত এইচটিএমএল ট্যাগ ধারন করে, যেমন <code>&lt;b/></code> বা <code>&lt;span/></code>। এইচটিএমএল৫-এর নির্দিষ্টকরণের সঙ্গে সামঞ্জস্যপূর্ণ হতে এইসবের আচরণ শীঘ্রই পরিবর্তন করা হবে, তাই উইকিপাঠ্যে তাদের ব্যবহার অবচিত হয়েছে।",
        "duplicate-args-warning": "<strong>সতর্কীকরণ:</strong> \"$3\" প্যারামিটারের জন্য একের অধিক মানসহ [[:$1]] [[:$2]] কে আহ্বান করছে। শুধুমাত্র প্রদত্ত শেষ মান ব্যবহৃত হবে।",
        "duplicate-args-category": "টেমপ্লেট আহ্বানে সদৃশ আর্গুমেন্ট ব্যবহার করা পাতা",
        "duplicate-args-category-desc": "এই পাতায় টেমপ্লেট আহ্বান উপস্থিত রয়েছে যা সদৃশ আর্গুমেন্ট ব্যবহার করেছে, যেমন <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> বা <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>।",
        "revdelete-submit": "নির্বাচিত {{PLURAL:$1|সংশোধনে|সংশোধসমূহে}} প্রয়োগ করো",
        "revdelete-success": "সংশোধনের দৃশ্যমানতা হালনাগাদ করা হয়েছে।",
        "revdelete-failure": "সংশোধনের দৃশ্যমানতা হালনাগাদ করা যায়নি:\n$1",
-       "logdelete-success": "'''ঘটনা দৃশ্যমানতা সফলভাবে স্থাপন করা হয়েছে।'''",
+       "logdelete-success": "দৃশ্যমানতা নির্ধারনের লগ।",
        "logdelete-failure": "'''লগ-এর দৃশ্যমানতা নির্ধারণ সম্ভব হচ্ছে না:'''\n$1",
        "revdel-restore": "দৃশ্যমানতা পরিবর্তন করো",
        "pagehist": "পাতার ইতিহাস",
        "right-override-export-depth": "৫ম স্তর পর্যন্ত সংযুক্তিসহ একটি পাতা রপ্তানী করুন",
        "right-sendemail": "অন্য ব্যবহারকারীকে ইমেইল পাঠান",
        "right-passwordreset": "পাসওয়ার্ড পুনঃস্থাপনের ইমেইল দেখুন",
-       "right-managechangetags": "ডাটাবেস থেকে [[Special:Tags|ট্যাগ]] তৈরি ও অপসারণ করুন",
+       "right-managechangetags": "[[Special:Tags|ট্যাগ]] তৈরি ও সক্রিয়/নিষ্ক্রিয় করুন",
        "right-applychangetags": "সম্পাদনার সাথে [[Special:Tags|ট্যাগ]] যুক্ত করুন",
        "right-changetags": "নির্দিষ্ট সংস্করণ এবং দীর্ঘ সম্পাদনাগুলোতে [[Special:Tags|ট্যাগ]] সংযোজন ও অপসারণ করুন",
+       "right-deletechangetags": "ডাটাবেজ থেকে [[Special:Tags|ট্যাগ]] অপসারণ করা",
        "grant-group-email": "ইমেইল পাঠান",
+       "grant-group-other": "বিবিধ কার্যকলাপ",
        "grant-createaccount": "অ্যাকাউন্ট তৈরি করুন",
        "grant-createeditmovepage": "পাতা তৈরি, সম্পাদনা এবং স্থানান্তর করুন",
        "grant-editmycssjs": "আপনার সিএসএস/জাভাস্ক্রিপ্ট সম্পাদনা করুন",
        "rightslogtext": "এটি ব্যবহারকারী অধিকারে আনা পরিবর্তনগুলির একটি লগ।",
        "action-read": "এই পাতাটি পড়ুন",
        "action-edit": "এই পাতাটি সম্পাদনা",
-       "action-createpage": "পাতা à¦¤à§\88রি à¦\95রà§\8b",
-       "action-createtalk": "à¦\86লাপà§\87র à¦ªà¦¾à¦¤à¦¾ à¦¤à§\88রি à¦\95রà§\8b",
+       "action-createpage": "à¦\8fà¦\87 à¦ªà¦¾à¦¤à¦¾à¦\9fি à¦¤à§\88রি",
+       "action-createtalk": "à¦\8fà¦\87 à¦\86লাপà§\87র à¦ªà¦¾à¦¤à¦¾à¦\9fি à¦¤à§\88রি",
        "action-createaccount": "এই ব্যবহারকারী একাউন্টটি তৈরি করো",
        "action-history": "এই পাতার ইতিহাস দেখাও",
        "action-minoredit": "এই সম্পাদনাটি অনুল্লেখ্য হিসেবে চিহ্নিত করো",
        "action-viewmyprivateinfo": "আপনার ব্যক্তিগত তথ্য দেখুন",
        "action-editmyprivateinfo": "আপনার ব্যক্তিগত তথ্য সম্পাদনা করুন",
        "action-editcontentmodel": "পাতার কন্টেন্ট মডেল সম্পাদনা করুন",
-       "action-managechangetags": "ডাà¦\9fাবà§\87স à¦¥à§\87à¦\95à§\87 à¦\9fà§\8dযাà¦\97 à¦¤à§\88রি à¦\93 à¦\85পসারণ à¦\95রà§\81ন",
+       "action-managechangetags": "à¦\9fà§\8dযাà¦\97 à¦¤à§\88রি à¦\93 à¦¸à¦\95à§\8dরিয়/নিষà§\8dà¦\95à§\8dরিয়",
        "action-applychangetags": "আপনার পরিবর্তনগুলোর সাথে ট্যাগ সংযোজন করুন",
        "action-changetags": "নির্দিষ্ট সংস্করণ এবং দীর্ঘ সম্পাদনাগুলোতে ট্যাগ সংযোজন ও অপসারণ করুন",
        "nchanges": "$1টি {{PLURAL:$1|পরিবর্তন}}",
        "upload-too-many-redirects": "এই ইউআরএলটিতে অনেক বেশি পুনর্নির্দেশনা রয়েছে",
        "upload-http-error": "একটি এইচটিটিপি ত্রুটি দেখা দিয়েছে: $1",
        "upload-copy-upload-invalid-domain": "এই ডোমেইন থেকে আপলোড সম্ভব নয়।",
+       "upload-dialog-disabled": "এই ডায়ালগ ব্যবহার করে ফাইল আপলোড করা এই উইকিতে নিষ্ক্রিয় করা হয়েছে।",
        "upload-dialog-title": "ফাইল আপলোড করুন",
        "upload-dialog-button-cancel": "বাতিল",
        "upload-dialog-button-done": "সম্পন্ন",
        "upload-dialog-button-upload": "আপলোড",
        "upload-form-label-infoform-title": "বিস্তারিত",
        "upload-form-label-infoform-name": "নাম",
+       "upload-form-label-infoform-name-tooltip": "ফাইলের জন্য একটি অদ্বিতীয় বিবরণমূলক শিরোনাম, যেটি ফাইলের নাম হিসাবে পরিবেশন হবে। আপনি ফাঁকা স্থান সহ সমতল ভাষা ব্যবহার করতে পারেন। ফাইল এক্সটেনশন অন্তর্ভুক্ত করবেন না।",
        "upload-form-label-infoform-description": "বিবরণ",
+       "upload-form-label-infoform-description-tooltip": "সংক্ষেপে কাজটি সম্পর্কে উল্লেখযোগ্য সবকিছু বর্ণনা করুন।\nএকটি ছবির জন্য, এতে থাকা প্রধান বিষয়, অনুষ্ঠান, বা জায়গা উল্লেখ করুন।",
        "upload-form-label-usage-title": "ব্যবহার",
        "upload-form-label-usage-filename": "ফাইলের নাম",
        "upload-form-label-own-work": "এটি আমার নিজের কাজ",
        "mimesearch-summary": "এই পাতা তাদের MIME-এর ধরণের জন্য ফাইল ফিল্টার করা সক্ষম করে। ইনপুট: contenttype/subtype বা contenttype/*, উদা: <code>image/jpeg</code>।",
        "mimetype": "MIME ধরন:",
        "download": "ডাউনলোড",
-       "unwatchedpages": "নà¦\9cরà§\87 à¦¨à¦¾ à¦°à¦¾à¦\96া à¦ªà¦¾à¦¤à¦¾à¦\97à§\81লি",
+       "unwatchedpages": "নà¦\9cরà§\87 à¦¨à¦¾ à¦°à¦¾à¦\96া à¦ªà¦¾à¦¤à¦¾à¦¸à¦®à§\82হ",
        "listredirects": "তালিকা পুনর্নির্দেশগুলি",
        "listduplicatedfiles": "সদৃশ ফাইলের তালিকা",
        "listduplicatedfiles-summary": "এটি ফাইলসমূহের একটি তালিকা যেখানে একটি ফাইলের সাম্প্রতিকতম সংস্করণ অন্য আরেকটি ফাইলের সাম্প্রতিকতম সংস্করণের প্রতিলিপি। শুধু স্থানীয় ফাইল বিবেচনা করা হয়েছে।",
        "apihelp": "এপিআই সাহায্য",
        "apihelp-no-such-module": "মডিউল \"$1\" পাওয়া যায়নি।",
        "apisandbox": "এপিআই খেলাঘর",
+       "apisandbox-jsonly": "API খেলাঘর ব্যবহার করতে জাভাস্ক্রিপ্ট প্রয়োজন।",
        "apisandbox-api-disabled": "এপিআই এই সাইটে নিষ্ক্রিয় করা আছে।",
        "apisandbox-fullscreen": "প্যানেল সম্প্রসারণ করুন",
+       "apisandbox-fullscreen-tooltip": "ব্রাউজারের উইন্ডো পূরণ করতে খেলাঘরের প্যানেল প্রসারিত করুন।",
        "apisandbox-unfullscreen": "পাতা দেখাও",
        "apisandbox-submit": "অনুরোধ রাখুন",
        "apisandbox-reset": "পরিস্কার",
        "rollback-success-notify": "$1-এর সম্পাদনাগুলি বাতিল করা হয়েছে; \n$2-এর করা শেষ সংস্করণে ফেরত নেওয়া হয়েছে। [$3 পরিবর্তন দেখুন]",
        "sessionfailure-title": "সেশন পরিত্যক্ত",
        "sessionfailure": "আপনার প্রবেশ সেশনে একটি সমস্যা হয়েছে বলে মনে হচ্ছে;\nসেশন হাইজ্যাক প্রতিরোধের উপায় হিসেবে এই কাজটি বাতিল করা হয়েছে।\nঅনুগ্রহ ব্রাউজারের \"পিছনে\" বোতাম চাপুন এবং যে পাতা থেকে এসেছিলেন, তা পুনঃলোড করুন এবং আবার চেষ্টা করুন।",
+       "changecontentmodel": "একটি পাতার বিষয়বস্তুর মডেল পরিবর্তন",
        "changecontentmodel-legend": "বিষয়বস্তুর মডেল পরিবর্তন করুন",
        "changecontentmodel-title-label": "পাতার শিরোনাম",
        "changecontentmodel-model-label": "পাতার বিষয়বস্তুর প্রতিরূপ",
        "sp-contributions-username": "আইপি (IP) ঠিকানা অথবা ব্যবহারকারীর নাম:",
        "sp-contributions-toponly": "শুধুমাত্র সেই সম্পাদনাগুলি দেখাও যেগুলো সাম্প্রতিক সংস্করণের অন্তর্ভুক্ত",
        "sp-contributions-newonly": "শুধুমাত্র পাতা সৃষ্টি করা সম্পাদনাগুলি দেখাও",
+       "sp-contributions-hideminor": "অনুল্লেখ্য পরিবর্তন আড়াল করুন",
        "sp-contributions-submit": "অনুসন্ধান",
        "whatlinkshere": "সংযোগকারী পাতাসমূহ",
        "whatlinkshere-title": "যে পাতাগুলি থেকে \"$1\"-এর প্রতি সংযোগ আছে",
        "allmessagesname": "নাম",
        "allmessagesdefault": "আদি টেক্সট",
        "allmessagescurrent": "বর্তমান টেক্সট",
-       "allmessagestext": "এটি মিডিয়াউইকি নামস্থানে অন্তর্ভুক্ত সিস্টেম বার্তাগুলোর একটি তালিকা।\nআপনি যদি সাধারণ মিডিয়াউইকির স্থানীয়করণে অবদান রাখতে আগ্রহী হন, অনুগ্রহ করে [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation মিডিয়াউইকি স্থানীয়করণ] এবং [//translatewiki.net translatewiki.net] দেখুন।",
+       "allmessagestext": "এটি মিডিয়াউইকি নামস্থানে অন্তর্ভুক্ত সিস্টেম বার্তাগুলোর একটি তালিকা।\nআপনি যদি সাধারণ মিডিয়াউইকির স্থানীয়করণে অবদান রাখতে আগ্রহী হন, অনুগ্রহ করে [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation মিডিয়াউইকি স্থানীয়করণ] এবং [https://translatewiki.net translatewiki.net] দেখুন।",
        "allmessagesnotsupportedDB": "এই পাতা ব্যবহার করা যাবে না কারণ '''$wgUseDatabaseMessages''' বন্ধ করে রাখা আছে।",
        "allmessages-filter-legend": "ছাকনী",
        "allmessages-filter": "Filter by customization state:",
        "import-nonewrevisions": "কোনো সংস্করণ আমদানী করা হয়নি।",
        "xml-error-string": "$1 যে লাইনে $2, কলামে $3 (বাইট $4): $5",
        "import-upload": "XML ডাটা আপলোড",
-       "import-token-mismatch": "সà§\87শন à¦¡à¦¾à¦\9fা à¦¹à¦¾à¦°à¦¿à¦¯à¦¼à§\87 à¦\97িয়à§\87à¦\9bà§\87।\nà¦\85নà§\81à¦\97à§\8dরহ à¦\95রà§\87 à¦ªà§\81নরায় à¦\9aà§\87ষà§\8dà¦\9fা à¦\95রà§\81ন।",
+       "import-token-mismatch": "সà§\87শন à¦¡à¦¾à¦\9fা à¦¹à¦¾à¦°à¦¿à¦¯à¦¼à§\87 à¦\97à§\87à¦\9bà§\87।\n\nà¦\86পনি à¦¸à¦®à§\8dভবত à¦¸à¦\82যà§\8bà¦\97 à¦¹à¦¾à¦°à¦¿à¦¯à¦¼à§\87à¦\9bà§\87ন। <strong>দয়া à¦\95রà§\87 à¦¯à¦¾à¦\9aাà¦\87 à¦\95রà§\81ন à¦¯à§\87 à¦\86পনি à¦\8fà¦\96নà¦\93 à¦ªà§\8dরবà§\87শরত à¦°à¦¯à¦¼à§\87à¦\9bà§\87ন à¦\8fবà¦\82 à¦\86বার à¦\9aà§\87ষà§\8dà¦\9fা à¦\95রà§\81ন</strong>। à¦¯à¦¦à¦¿ à¦\8fà¦\9fি à¦\8fà¦\96নà¦\93 à¦\95াà¦\9c à¦¨à¦¾ à¦\95রà§\87, à¦¤à¦¾à¦¹à¦²à§\87 à¦¦à¦¯à¦¼à¦¾ à¦\95রà§\87 [[Special:UserLogout|à¦\85à§\8dযাà¦\95াà¦\89নà§\8dà¦\9f à¦¥à§\87à¦\95à§\87 à¦ªà§\8dরসà§\8dথান à¦\95রà§\81ন]] à¦\8fবà¦\82 à¦\86বার à¦\85à§\8dযাà¦\95াà¦\89নà§\8dà¦\9fà§\87 à¦ªà§\8dরবà§\87শ à¦\95রà§\87 à¦\9aà§\87ষà§\8dà¦\9fা à¦\95রà§\81ন à¦\8fবà¦\82 à¦\8fবà¦\82 à¦ªà¦°à§\80à¦\95à§\8dষা à¦\95রà§\81ন à¦¯à§\87 à¦\86পনার à¦¬à§\8dরাà¦\89à¦\9cার à¦\8fà¦\87 à¦¸à¦¾à¦\87à¦\9fà§\87 à¦\95à§\81à¦\95ি à¦¬à§\8dযবহারà§\87র à¦\85নà§\81মতি à¦¦à§\87য়।",
        "import-invalid-interwiki": "নির্ধারিত উইকি থেকে আমদানী করা যাবে না।",
        "import-error-edit": "\"$1\" পাতাটি আমদানি করা যায়নি কারণ আপনার এটি সম্পাদনা করার অনুমতি নেই।",
        "import-error-create": "\"$1\" পাতাটি আমদানি করা যায়নি কারণ আপনার এটি তৈরী করার অনুমতি নেই।",
        "blankpage": "খালি পাতা",
        "intentionallyblankpage": "এই পাতাটি ইচ্ছা করে খালি রাখা হয়েছে",
        "external_image_whitelist": "  #এই লাইন ঠিক যেমন আছে<প্রাক> তেমন রাখুন<pre>\n #রেগুলার এক্সপ্রেশনের টুকরা নীচে (শুধুমাত্র অংশ / / মধ্যে যে যায়) বসান\n#এইগুলি এক্সটার্নাল (hotlinked) ইমেজের URL-এর সাথে মেলানো হবে\n#যেগুলি মিলবে, সেগুলি চিত্র হিসাবে প্রদর্শিত হবে, অন্যথায় শুধুমাত্র ইমেজ লিঙ্ক প্রদর্শিত হবে\n#যে লাইনের প্রারম্ভে # আছে সেই লাইনগুলি মন্তব্যসমূহ হিসাবে ব্যবহার করা হয়\n#এটি কেস-অসংবেদী\n\n#এই রেখার উপরের regex টুকরা বসান. এই লাইন ঠিক যেমন আছে তেমন রাখুন</pre>",
-       "tags": "সঠিà¦\95 à¦\9aà§\87à¦\9eà§\8dà¦\9c ট্যাগ",
+       "tags": "বà§\88ধ à¦ªà¦°à¦¿à¦¬à¦°à§\8dতন ট্যাগ",
        "tag-filter": "[[Special:Tags|ট্যাগ]] ছাকনী:",
        "tag-filter-submit": "ছাকনী",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|ট্যাগ}}]]: $2)",
        "mw-widgets-dateinput-placeholder-month": "বববব-মম",
        "mw-widgets-titleinput-description-new-page": "পাতা এখনো বিদ্যমান নয়",
        "mw-widgets-titleinput-description-redirect": "$1-এ পুনঃনির্দেশিত",
-       "api-error-blacklisted": "অনুগ্রহ করে অপর কোনো বর্ণনামূলক নাম ব্যবহার করুন।",
        "sessionmanager-tie": "একাধিক অনুরোধের প্রমাণীকরণের ধরন একত্রিত করা যাবে না: $1।",
        "sessionprovider-generic": "$1টি সেশন",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "কুকি-ভিত্তিক সেশন",
        "log-action-filter-delete-restore": "পাতা পুনঃরুদ্ধার",
        "log-action-filter-delete-event": "লগ অপসারণ",
        "log-action-filter-delete-revision": "সংশোধন অপসারণ",
+       "log-action-filter-import-interwiki": "আন্তঃউইকি আমদানি",
+       "log-action-filter-import-upload": "XML আপলোড কর্তৃক আমদানি",
+       "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-upload-upload": "নতুন আপলোড",
        "log-action-filter-upload-overwrite": "পুনঃআপলোড",
+       "authmanager-authplugin-setpass-failed-title": "পাসওয়ার্ড পরিবর্তন ব্যর্থ হয়েছে",
+       "authmanager-authplugin-setpass-bad-domain": "অবৈধ ডোমেইন।",
+       "authmanager-autocreate-noperm": "স্বয়ংক্রিয় অ্যাকাউন্ট সৃষ্টি মঞ্জুরিপ্রাপ্ত নয়।",
        "authmanager-userdoesnotexist": "ব্যবহারকারী অ্যাকাউন্ট \"$1\" অনিবন্ধিত।",
+       "authmanager-email-label": "ইমেইল",
        "authmanager-email-help": "ইমেইল ঠিকানা",
+       "authmanager-realname-label": "প্রকৃত নাম",
+       "authmanager-realname-help": "ব্যবহারকারীর প্রকৃত নাম",
+       "authmanager-provider-temporarypassword": "অস্থায়ী পাসওয়ার্ড",
+       "authprovider-confirmlink-success-line": "$1: সংযোগ করা সফল হয়েছে।",
        "authprovider-resetpass-skip-label": "উপেক্ষা করো",
        "authprovider-resetpass-skip-help": "পাসওয়ার্ড পুনঃস্থাপন করা উপেক্ষা করুন।",
        "authform-wrongtoken": "ভুল টোকেন",
-       "changecredentials-submit-cancel": "বাতিল",
-       "removecredentials-submit": "সরান",
-       "removecredentials-submit-cancel": "বাতিল",
+       "specialpage-securitylevel-not-allowed-title": "অনুমতি নেই",
+       "cannotauth-not-allowed-title": "অনুমতি অস্বীকৃত",
+       "cannotauth-not-allowed": "আপনি এই পাতাটি ব্যবহার করতে অনুমতিপ্রাপ্ত নন।",
+       "changecredentials": "পরিচয়পত্র পরিবর্তন করুন",
+       "changecredentials-submit": "পরিচয়পত্র পরিবর্তন করুন",
+       "changecredentials-invalidsubpage": "$1 বৈধ পরিচয়পত্রের ধরন নয়।",
+       "changecredentials-success": "আপনার পরিচয়পত্র পরিবর্তিত হয়েছে।",
+       "removecredentials": "পরিচয়পত্র সরান",
+       "removecredentials-submit": "পরিচয়পত্র সরান",
+       "removecredentials-invalidsubpage": "$1 বৈধ পরিচয়পত্রের ধরন নয়।",
+       "removecredentials-success": "আপনার পরিচয়পত্র সরানো হয়েছে।",
+       "credentialsform-provider": "পরিচয়পত্রের ধরন:",
        "credentialsform-account": "অ্যাকাউন্টের নাম:",
        "linkaccounts": "অ্যাকাউন্ট সংযোগ করুন"
 }
index 2a94971..482c3ba 100644 (file)
        "unwatch": "མི་བལྟ་བ།",
        "unwatchthispage": "བལྟ་བ་མཚམས་འཇོག",
        "wlshowlast": "འདས་བའི་དུས་ཚོད་ $1 ནང་ཚུན་  ཉིན་མ་ $2 ནང་ཚུན་  སྟོན།",
-       "watchlistall2": "ཚང་མ།",
        "watchlist-options": "ལྟ་ཐོའི་འདེམས་ཚན།",
        "watching": "ལྟ་ཐོར་འཇུག་བཞིན་པ་་་",
        "unwatching": "ལྟ་ཐོ་ལས་འདོར་བཞིན་པ་་་",
index a3c739a..152a1ec 100644 (file)
        "protectedpagetext": "পাতা এহানর পতানি থেপকরিয়া থসি।",
        "viewsourcetext": "পাতা এহানর উত্স চা বারো কপি করে পারর:",
        "protectedinterface": "পাতা এহানর মেথেল উইকি সফটওয়্যারর ইন্টারফেসর পৌহান দের, অহানে এহানরে ইতু করিয়া থনা অসে এবিউসেত্ত ঙাক্করানির কাজে।",
-       "editinginterface": "'''সিঙুইস:''' তি এমন পাতা আহান পতার যেহান সফটওয়্যারর কা ইন্টারফেস টেক্সট দের হানে। পাতা এহার পতানিহান আতাকুরার ইন্টারফেস সিল পরতইগা, যেহান আর আ আতাকুরাইদেখতাই। অনুবাদর কা [//translatewiki.net/wiki/Main_Page?setlang=bpy translatewiki.net] ব্যবহার করানির বারে খালকর। এহান মিডিয়াউইকির স্থানীয়করণ প্রকল্পহান।",
+       "editinginterface": "'''সিঙুইস:''' তি এমন পাতা আহান পতার যেহান সফটওয়্যারর কা ইন্টারফেস টেক্সট দের হানে। পাতা এহার পতানিহান আতাকুরার ইন্টারফেস সিল পরতইগা, যেহান আর আ আতাকুরাইদেখতাই। অনুবাদর কা [https://translatewiki.net/wiki/Main_Page?setlang=bpy translatewiki.net] ব্যবহার করানির বারে খালকর। এহান মিডিয়াউইকির স্থানীয়করণ প্রকল্পহান।",
        "cascadeprotected": "পাতা এহান পতানি থা নেই, কিদিয়া বুল্লে {{PLURAL:$1|হান পাতা|হান পাতার}}  মা তিলুইসে, যে পাতা/পাতাহানিরতা cascading অপশন অহান লয়া সুরক্ষিত অসে।\n$2",
        "namespaceprotected": "'''$1''' নাঙর থাকে কোন পাতা পতানিরকা তরতা য়্যাথাং নেই।",
        "customcssprotected": "এরে সিএসএস আসে পাতা এহান পতানিরকা তরতা য়্যাথাং নেই, কিদিয়া বুল্লে আরাক আতাকুরা আগর ব্যক্তিগত বিষয়ররবস্তু আসে।",
        "allmessagesname": "নাং",
        "allmessagesdefault": "আদ্যকার টেক্সট",
        "allmessagescurrent": "হাদি এহানর ৱাহি",
-       "allmessagestext": "তলে মিডিয়াউইকির নাঙরথাকে পানা একরের সিস্টেম পৌহানির তালিকাহান দেনা ইল।\nকৃপা করিয়া [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation মিডিয়াউইকি অনুবাদর হেইচা পাতাত] বারো [//translatewiki.net translatewiki.net] মিডিয়াউইকি অনুবাদ করানির কা যানা পারর।",
+       "allmessagestext": "তলে মিডিয়াউইকির নাঙরথাকে পানা একরের সিস্টেম পৌহানির তালিকাহান দেনা ইল।\nকৃপা করিয়া [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation মিডিয়াউইকি অনুবাদর হেইচা পাতাত] বারো [https://translatewiki.net translatewiki.net] মিডিয়াউইকি অনুবাদ করানির কা যানা পারর।",
        "allmessages-filter-legend": "সাক",
        "allmessages-filter-unmodified": "নাসিলথাইতে",
        "allmessages-filter-all": "হাব্বি",
index ae01322..8c3c3d8 100644 (file)
        "viewsourcetext": "Gallout a rit gwelet hag eilañ danvez ar bajenn-mañ",
        "viewyourtext": "Gallout a rit gwelet hag eilañ mammenn ho '''kemmoù''' d'ar bajenn-mañ :",
        "protectedinterface": "Testenn ar bajenn-mañ a dalvez evit etrefas ar meziant er wiki-mañ. Setu perak eo bet gwarezet ar bajenn.",
-       "editinginterface": "'''Diwallit :''' Emaoc'h o kempenn ur bajenn a dalvez da sevel skridoù evit etrefas ar meziant. Ar c'hemmoù graet d'ar bajenn-mañ a cheñcho etrefas an holl implijerien. Mar fell deoc'h skoazellañ evit treiñ traoù, soñjit kentoc'h implijout [//translatewiki.net/wiki/Main_Page?setlang=br translatewiki.net], ar raktres evit lec'helaat MediaWiki.",
+       "editinginterface": "'''Diwallit :''' Emaoc'h o kempenn ur bajenn a dalvez da sevel skridoù evit etrefas ar meziant. Ar c'hemmoù graet d'ar bajenn-mañ a cheñcho etrefas an holl implijerien. Mar fell deoc'h skoazellañ evit treiñ traoù, soñjit kentoc'h implijout [https://translatewiki.net/wiki/Main_Page?setlang=br translatewiki.net], ar raktres evit lec'helaat MediaWiki.",
        "cascadeprotected": "Gwarezet eo ar bajenn-mañ; n'haller ket kemmañ anezhi ken p'he c'haver {{PLURAL:$1|er bajenn|e-mesk ar pajennoù}} da-heul zo bet gwarezet en ur zibab an dibarzh \"skalierad\" :\n$2",
        "namespaceprotected": "N'oc'h ket aotreet da gemmañ pajennoù an esaouenn anv '''$1'''.",
        "customcssprotected": "N'oc'h ket aotreet da gemmañ ar bajenn CSS-mañ rak kavout a reer enni arventennoù personel un implijer all.",
        "apihelp-no-such-module": "N'eo ket bet kavet ar vodulenn \"$1\".",
        "apisandbox": "Poull-traezh API",
        "apisandbox-api-disabled": "Diweredekaet eo API war al lec'hienn-mañ.",
-       "apisandbox-intro": "Grit gant ar bajenn-mañ evit amprouiñ '''servij Web API MediaWiki'''.\nKit da deuler ur sell war [//www.mediawiki.org/wiki/API:Main_page titouroù an API] evit gouzout hiroc'h war an doare da embreger API. Da skouer :\n[//www.mediawiki.org/wiki/API#A_simple_example gwelet danvez ur bennbajenn]. Dibabit un oberiadenn bennak evit gwelet skouerioù all",
+       "apisandbox-intro": "Grit gant ar bajenn-mañ evit amprouiñ '''servij Web API MediaWiki'''.\nKit da deuler ur sell war [https://www.mediawiki.org/wiki/API:Main_page titouroù an API] evit gouzout hiroc'h war an doare da embreger API. Da skouer :\n[https://www.mediawiki.org/wiki/API#A_simple_example gwelet danvez ur bennbajenn]. Dibabit un oberiadenn bennak evit gwelet skouerioù all",
        "apisandbox-submit": "Sevel ar goulenn",
        "apisandbox-reset": "Riñsañ",
        "apisandbox-examples": "Skouer",
        "allmessagesname": "Anv",
        "allmessagesdefault": "Kemennadenn dre ziouer",
        "allmessagescurrent": "Kemennadenn zo bremañ",
-       "allmessagestext": "Setu roll ar c'hemennadennoù reizhiad a c'haller kaout en esaouennoù anv MediaWiki.\nKit da welet [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Lec'heladur MediaWiki] ha [//translatewiki.net translatewiki.net] mar fell deoc'h kemer perzh e lec'heladur boutin MediaWiki.",
+       "allmessagestext": "Setu roll ar c'hemennadennoù reizhiad a c'haller kaout en esaouennoù anv MediaWiki.\nKit da welet [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Lec'heladur MediaWiki] ha [https://translatewiki.net translatewiki.net] mar fell deoc'h kemer perzh e lec'heladur boutin MediaWiki.",
        "allmessagesnotsupportedDB": "N'haller ket kaout {{ns:special}}:AllMessages rak diweredekaet eo bet wgUseDatabaseMessages.",
        "allmessages-filter-legend": "Sil",
        "allmessages-filter": "Silañ dre stad ar c'hemmoù",
index e4ed30f..cdf6cb1 100644 (file)
        "protectedpagetext": "Ova stranica je zaključana da bi se spriječile izmjene.",
        "viewsourcetext": "Možete vidjeti i kopirati izvorni kôd ove stranice.",
        "viewyourtext": "Možete vidjeti i kopirati izvor '''vaših izmjena''' na ovoj stranici.",
-       "protectedinterface": "Ova stranica sadrži tekst korisničkog okruženja za softver na ovom wikiju i zaštićena je radi sprečavanja zloupotrebe.\nDa biste dodali ili izmjenili prijevode svih wikija, posjetite [//translatewiki.net/  translatewiki.net], projekat za lokalizaciju Mediawikija.",
-       "editinginterface": "<strong>Upozorenje:</strong> Mijenjate stranicu koja sadrži aktivan tekst programa.\nPromjene na ovoj stranici dovode i do promjena za druge korisnike ovog wikija.\nZa dodavanje ili promjene prijevoda za sve wikije, molimo Vas koristite [//translatewiki.net/ translatewiki.net], projekt prijevoda za MediaWiki.",
-       "translateinterface": "Za dodavanje ili promjenu prijevoda za sve wikije koristite [//translatewiki.net/ translatewiki.net], projekt za lokalizaciju MediaWikija.",
+       "protectedinterface": "Ova stranica sadrži tekst korisničkog okruženja za softver na ovom wikiju i zaštićena je radi sprečavanja zloupotrebe.\nDa biste dodali ili izmjenili prijevode svih wikija, posjetite [https://translatewiki.net/  translatewiki.net], projekat za lokalizaciju Mediawikija.",
+       "editinginterface": "<strong>Upozorenje:</strong> Mijenjate stranicu koja sadrži aktivan tekst programa.\nPromjene na ovoj stranici dovode i do promjena za druge korisnike ovog wikija.\nZa dodavanje ili promjene prijevoda za sve wikije, molimo Vas koristite [https://translatewiki.net/ translatewiki.net], projekt prijevoda za MediaWiki.",
+       "translateinterface": "Za dodavanje ili promjenu prijevoda za sve wikije koristite [https://translatewiki.net/ translatewiki.net], projekt za lokalizaciju MediaWikija.",
        "cascadeprotected": "Uređivanje ove stranice zabranjeno je jer se koristi u {{PLURAL:$1|sljedećoj stranici, koja je zaštićena|sljedećim stranicama, koje su zaštićene}} prenosivom zaštitom:\n$2",
        "namespaceprotected": "Vi nemate dozvulu da mijenjate stranicu '''$1'''.",
        "customcssprotected": "Nemate dozvolu za mijenjanje ove CSS stranice jer sadrži osobne postavke nekog drugog korisnika.",
        "resetpass-temp-password": "Privremena lozinka:",
        "resetpass-abort-generic": "Promjenu lozinke prekinulo je proširenje.",
        "resetpass-expired": "Vaša lozinka je istekla. Postavite novu lozinku da biste se prijavili.",
-       "resetpass-expired-soft": "Vaša lozinka je istekla i mora se resetirati. Molimo odaberite sada novu lozinka ili kliknite  \"{{int:resetpass-submit-cancel}}\" da je resetirate kasnije.",
-       "resetpass-validity-soft": "Vaša lozinka nije valjana: $1\n\nMolimo odaberite novu lozinku ili kliknite \"{{int:resetpass-submit-cancel}}\" da je resetirate kasnije.",
+       "resetpass-expired-soft": "Vaša lozinka je istekla i mora se resetirati. Molimo odaberite sada novu lozinka ili kliknite  \"{{int:authprovider-resetpass-skip-label}}\" da je resetirate kasnije.",
+       "resetpass-validity-soft": "Vaša lozinka nije valjana: $1\n\nMolimo odaberite novu lozinku ili kliknite \"{{int:authprovider-resetpass-skip-label}}\" da je resetirate kasnije.",
        "passwordreset": "Ponovo postavljanje lozinke",
        "passwordreset-text-one": "Ispunite ovaj obrazac da biste dobili privremenu lozinku na Vašu adresu e-pošte.",
        "passwordreset-text-many": "{{PLURAL:$1|Ispunite jedno od polja kako biste dobili privremenu lozinku putem e-pošte.}}",
        "history-feed-item-nocomment": "$1 u $2",
        "history-feed-empty": "Tražena stranica ne postoji.\nMoguće da je izbrisana sa wikija, ili preimenovana.\nPokušajte [[Special:Search|pretražiti wiki]] za slične stranice.",
        "history-edit-tags": "Uredi oznake izabranih verzija",
-       "rev-deleted-comment": "(uklonjen sažetak izmjene)",
+       "rev-deleted-comment": "(sažetak izmjene uklonjen)",
        "rev-deleted-user": "(korisničko ime uklonjeno)",
        "rev-deleted-event": "(stavka zapisa obrisana)",
        "rev-deleted-user-contribs": "[korisničko ime ili IP adresa uklonjeni - izmjena sakrivena u spisku doprinosa]",
        "rev-suppressed-text-unhide": "Ova revizija stranice je '''uklonjena'''.\nMožete pogledati detalje u [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} zapisu uklanjanja].\nVi je i dalje možete [$1 vidjeti ovu reviziju] ako želite.",
        "rev-deleted-text-view": "Revizija ove stranice je '''obrisana'''.\nVi je možete vidjeti; detalji o tome se mogu vidjeti u [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} zapisu brisanja].",
        "rev-suppressed-text-view": "Ova revizija stranice je '''uklonjena'''.\nVi je možete vidjeti; možete pogledati detalje u [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} zapisu uklanjanja].",
-       "rev-deleted-no-diff": "Ne možete vidjeti ove razlike jer je jedna od revizija '''obrisana'''.\nMožete pregledati detalje u [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} zapisima brisanja].",
+       "rev-deleted-no-diff": "Ne možete vidjeti ovu razliku jer je jedna od izmjena '''obrisana'''.\nDetalji se nalaze u [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} zapisniku brisanja].",
        "rev-suppressed-no-diff": "Ne možete vidjeti ove razlike jer je jedna od revizija '''obrisana'''.",
        "rev-deleted-unhide-diff": "Jedna od revizija u ovom pregledu razlika je '''obrisana'''.\nMožete pregledati detalje u [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} zapisniku brisanja].\nVi još uvijek možete [$1 vidjeti ove razlike] ako želite da nastavite.",
        "rev-suppressed-unhide-diff": "edna od revizija ove razlike je '''uklonjena'''.\nMožete pogledati detalje u [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} zapisniku uklanjanja].\nVi i dalje možete [$1 vidjeti ove razlike] ako želite da nastavite.",
        "listusersfrom": "Prikaži korisnike koji počinju sa:",
        "listusers-submit": "Prikaži",
        "listusers-noresult": "Nije pronađen korisnik.",
-       "listusers-blocked": "(blokiran)",
+       "listusers-blocked": "({{GENDER:$1|blokiran|blokirana|blokiran}})",
        "activeusers": "Spisak aktivnih korisnika",
        "activeusers-intro": "Ovo je spisak korisnika koji su imali neku aktivnost u {{PLURAL:$1|posljednji $1 dan|posljednja $1 dana|posljednjih $1 dana}}.",
        "activeusers-count": "$1 {{PLURAL:$1|izmjena|izmjene|izmjena}} u {{PLURAL:$3|posljednji $3 dan|posljednja $3 dana|posljednjih $3 dana}}",
        "sp-contributions-username": "IP adresa ili korisničko ime:",
        "sp-contributions-toponly": "Prikaži samo najnovije izmjene",
        "sp-contributions-newonly": "Prikaži samo izmjene kojima su napravljene nove stranice",
+       "sp-contributions-hideminor": "Sakrij manje izmjene",
        "sp-contributions-submit": "Traži",
        "whatlinkshere": "Šta vodi ovamo",
        "whatlinkshere-title": "Stranice koje vode na \"$1\"",
        "allmessagesname": "Naziv",
        "allmessagesdefault": "Uobičajeni tekst",
        "allmessagescurrent": "Trenutni tekst",
-       "allmessagestext": "Ovo je spisak svih sistemskih poruka u dostupnih u MediaWiki imenskom prostoru.\nMolimo posjetite [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki lokalizaciju] i [//translatewiki.net translatewiki.net] ako želite doprinijeti općoj lokalizaciji MediaWikija.",
+       "allmessagestext": "Ovo je spisak svih sistemskih poruka u dostupnih u MediaWiki imenskom prostoru.\nMolimo posjetite [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki lokalizaciju] i [https://translatewiki.net translatewiki.net] ako želite doprinijeti općoj lokalizaciji MediaWikija.",
        "allmessagesnotsupportedDB": "Ova stranica ne može biti korištena jer je <i>wgUseDatabaseMessages</i> isključen.",
        "allmessages-filter-legend": "Filter",
        "allmessages-filter": "Filter po stanju podešavanja:",
        "logentry-suppress-revision-legacy": "$1 je tajno {{GENDER:$2|promijenio|promijenila}} vidljivost izmjena na stranici $3",
        "revdelete-content-hid": "sadržaj je sakriven",
        "revdelete-summary-hid": "sažetak izmjene je sakriven",
-       "revdelete-uname-hid": "sažetak izmjene je sakriven",
+       "revdelete-uname-hid": "korisničko ime je sakriveno",
        "revdelete-content-unhid": "sadržaj je otkriven",
        "revdelete-summary-unhid": "sažetak izmjene je otkriven",
        "revdelete-uname-unhid": "korisničko ime je otkriveno",
        "special-characters-group-ipa": "IPA",
        "special-characters-group-symbols": "simboli",
        "special-characters-group-greek": "grčki",
+       "special-characters-group-greekextended": "prošireni grčki",
        "special-characters-group-cyrillic": "ćirilica",
        "special-characters-group-arabic": "arapski",
        "special-characters-group-arabicextended": "prošireni arapski",
        "mw-widgets-dateinput-no-date": "Nikakav datum nije izabran",
        "mw-widgets-titleinput-description-new-page": "stranica još ne postoji",
        "mw-widgets-titleinput-description-redirect": "preusmjerava na $1",
-       "api-error-blacklisted": "Molimo izaberite drugačiji, deskriptivniji naziv.",
-       "randomrootpage": "Slučajna root stranica"
+       "randomrootpage": "Slučajna root stranica",
+       "log-action-filter-block": "Vrsta blokiranja:",
+       "log-action-filter-delete": "Vrsta brisanja:",
+       "log-action-filter-all": "Sve",
+       "log-action-filter-block-block": "Blokiranje",
+       "log-action-filter-block-reblock": "Izmjena blokiranja",
+       "log-action-filter-block-unblock": "Deblokiranje",
+       "log-action-filter-delete-delete": "Brisanje stranice",
+       "log-action-filter-delete-restore": "Vraćanje obrisane stranice",
+       "log-action-filter-delete-event": "Brisanje unosa u zapisniku",
+       "log-action-filter-delete-revision": "Brisanje izmjene"
 }
index 474a143..bf8c180 100644 (file)
        "createaccountreason": "Rason:",
        "createacct-reason": "Rason",
        "createacct-reason-ph": "Tauno ta muya mong gumibo sa ibang account",
-       "createacct-imgcaptcha-ph": "Ibutang a tekstong nababayad mo sa ibabow",
        "createacct-submit": "Gumibo sa sadiring account",
        "createacct-another-submit": "Gumibo sa ibang account",
        "createacct-benefit-heading": "Gibo ka mga tawo pareho mo ading {{SITENAME}}.",
        "resetpass-submit-cancel": "Kanselaron",
        "resetpass-temp-password": "Temporaryong password:",
        "passwordreset": "Balyowan a password",
-       "passwordreset-legend": "Balyowan a password",
        "passwordreset-domain": "Nasasakupan:",
        "passwordreset-email": "Email address:",
        "changeemail": "Ribayan a email adres",
        "ipbreason": "Rason:",
        "ipblocklist-submit": "Pag-anapon",
        "lockconfirm": "Amo, muya kong ikandado a database.",
-       "delete_and_move": "Puraon anggan ilipat",
        "delete_and_move_confirm": "Amo, puraon ading pahina",
        "export-addcattext": "Irugang a mga pahina galin sa kategorya:",
        "export-addnstext": "Irugang a mga pahina galin sa bubutangan:",
index e059776..ac9bf27 100644 (file)
        "protectedpagetext": "S'ha protegit la pàgina per evitar-hi modificacions.",
        "viewsourcetext": "Podeu veure i copiar el codi font d’aquesta pàgina.",
        "viewyourtext": "Vostè pot veure i copiar la font de <strong>les teves modificacions</strong> d'aquesta pàgina.",
-       "protectedinterface": "Aquesta pàgina proporciona el text de la interfície del software d'aquest wiki i està protegida per evitar els abusos.\nPer afegir o canviar les traduccions per a tots els wikis, feu servir [//translatewiki.net/ translatewiki.net], el projecte de localització de MediaWiki.",
+       "protectedinterface": "Aquesta pàgina proporciona el text de la interfície del software d'aquest wiki i està protegida per evitar els abusos.\nPer afegir o canviar les traduccions per a tots els wikis, feu servir [https://translatewiki.net/ translatewiki.net], el projecte de localització de MediaWiki.",
        "editinginterface": "'''Avís:''' esteu editant una pàgina que s'utilitza per proporcionar text d'interfície per al programari. Els canvis que es facin a la pàgina afectaran l'aparença de la interfície d'altres usuaris del wiki.",
-       "translateinterface": "Per afegir o canviar traduccions per a tots els wikis, utilitzeu [//translatewiki.net/ translatewiki.net], el projecte de localització de MediaWiki.",
+       "translateinterface": "Per afegir o canviar traduccions per a tots els wikis, utilitzeu [https://translatewiki.net/ translatewiki.net], el projecte de localització de MediaWiki.",
        "cascadeprotected": "Aquesta pàgina està protegida i no es pot modificar perquè està inclosa en {{PLURAL:$1|la següent pàgina, que té|les següents pàgines, que tenen}} activada l'opció de «protecció en cascada»:\n$2",
        "namespaceprotected": "No teniu permís per a modificar pàgines en l'espai de noms '''$1'''.",
        "customcssprotected": "No teniu permisos per editar la pàgina CSS perquè conté els paràmetres personals d'un altre usuari.",
        "password-change-forbidden": "No podeu canviar les contrasenyes en aquest wiki.",
        "externaldberror": "Hi ha hagut un error en la base de dades d'autenticació o bé no teniu permís per a actualitzar el vostre compte extern.",
        "login": "Inici de sessió",
+       "login-security": "Verificació de la identitat",
        "nav-login-createaccount": "Inicia una sessió / crea un compte",
        "userlogin": "Inicia una sessió / crea un compte",
        "userloginnocreate": "Inici de sessió",
        "createaccountreason": "Motiu:",
        "createacct-reason": "Motiu",
        "createacct-reason-ph": "Per què creeu un altre compte",
+       "createacct-reason-help": "Missatge mostrat en el registre de creació de comptes",
        "createacct-submit": "Crea el meu compte",
        "createacct-another-submit": "Crea un compte",
+       "createacct-continue-submit": "Continua amb la creació del compte",
+       "createacct-another-continue-submit": "Continua amb la creació del compte",
        "createacct-benefit-heading": "{{SITENAME}} és feta per gent com tu.",
        "createacct-benefit-body1": "{{PLURAL:$1|edició|edicions}}",
        "createacct-benefit-body2": "{{PLURAL:$1|pàgina|pàgines}}",
        "botpasswords-updated-title": "Contrasenya de bot actualitzada",
        "botpasswords-not-exist": "L'usuari «$1» no té una contrasenya de bot anomenada «$2».",
        "resetpass_forbidden": "No poden canviar-se les contrasenyes",
+       "resetpass_forbidden-reason": "Les contrasenyes no es poden canviar: $1",
        "resetpass-no-info": "Heu d'estar registrats en un compte per a poder accedir directament a aquesta pàgina.",
        "resetpass-submit-loggedin": "Canvia la contrasenya",
        "resetpass-submit-cancel": "Cancel·la",
        "resetpass-temp-password": "Contrasenya temporal:",
        "resetpass-abort-generic": "Una extensió ha interromput el canvi de contrasenya.",
        "resetpass-expired": "La contrasenya ha vençut. Definiu una contrasenya nova per iniciar la sessió.",
-       "resetpass-expired-soft": "La contrasenya ha vençut i cal restablir-la. Trieu una contrasenya nova ara, o feu clic a «{{int:resetpass-submit-cancel}}» per a restablir-la més endavant.",
-       "resetpass-validity-soft": "La contrasenya no és vàlida: $1\n\nTrieu una nova contrasenya ara o cliqueu \"{{int:resetpass-submit-cancel}}\" per a restablir-la més endavant.",
+       "resetpass-expired-soft": "La contrasenya ha vençut i cal restablir-la. Trieu una contrasenya nova ara, o feu clic a «{{int:authprovider-resetpass-skip-label}}» per a restablir-la més endavant.",
+       "resetpass-validity-soft": "La contrasenya no és vàlida: $1\n\nTrieu una nova contrasenya ara o cliqueu \"{{int:authprovider-resetpass-skip-label}}\" per a restablir-la més endavant.",
        "passwordreset": "Restablir contrasenya",
        "passwordreset-text-one": "Cal completar aquest formulari per reiniciar la contrasenya",
        "passwordreset-text-many": "{{PLURAL:$1|Ompliu un dels camps per a rebre una contrasenya temporal al vostre correu electrònic.}}",
        "minoredit": "Aquesta és una modificació menor",
        "watchthis": "Vigila aquesta pàgina",
        "savearticle": "Desa la pàgina",
+       "savechanges": "Desa els canvis",
        "publishpage": "Publica la pàgina",
+       "publishchanges": "Publica els canvis",
        "preview": "Previsualització",
        "showpreview": "Mostra una previsualització",
        "showdiff": "Mostra els canvis",
        "apihelp-no-such-module": "No s'ha trobat el mòdul \"$1\".",
        "apisandbox": "Pàgina de proves de l'API",
        "apisandbox-api-disabled": "L'API està desactivada en aquest lloc.",
-       "apisandbox-intro": "Utilitzeu aquesta pàgina per experimentar amb l'<nowiki />'''API de web service de MediaWiki'''.\nVisiteu [//www.mediawiki.org/wiki/API:Main_page la documentació de l'API] per a més informació sobre l'ús de l'API. Exemple: [//www.mediawiki.org/wiki/API#A_simple_example recuperar el contingut d'una Pàgina Principal]. Seleccioneu una acció per veure més exemples.\n\nTingueu en compte que, encara que això és una pàgina de proves, les accions que feu en aquesta pàgina poden modificar la wiki.",
+       "apisandbox-intro": "Utilitzeu aquesta pàgina per experimentar amb l'<nowiki />'''API de web service de MediaWiki'''.\nVisiteu [https://www.mediawiki.org/wiki/API:Main_page la documentació de l'API] per a més informació sobre l'ús de l'API. Exemple: [https://www.mediawiki.org/wiki/API#A_simple_example recuperar el contingut d'una Pàgina Principal]. Seleccioneu una acció per veure més exemples.\n\nTingueu en compte que, encara que això és una pàgina de proves, les accions que feu en aquesta pàgina poden modificar la wiki.",
        "apisandbox-unfullscreen": "Mostra la pàgina",
        "apisandbox-submit": "Fes sol·licitud",
        "apisandbox-reset": "Neteja",
        "allmessagesname": "Nom",
        "allmessagesdefault": "Text per defecte",
        "allmessagescurrent": "Text actual",
-       "allmessagestext": "Tot seguit hi ha una llista dels missatges del sistema que es troben en l'espai de noms ''MediaWiki''. La traducció genèrica d'aquests missatges no s'hauria de fer localment sinó en la traducció del programari MediaWiki. Si voleu ajudar-hi, visiteu [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] i [//translatewiki.net translatewiki.net].",
+       "allmessagestext": "Tot seguit hi ha una llista dels missatges del sistema que es troben en l'espai de noms ''MediaWiki''. La traducció genèrica d'aquests missatges no s'hauria de fer localment sinó en la traducció del programari MediaWiki. Si voleu ajudar-hi, visiteu [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] i [https://translatewiki.net translatewiki.net].",
        "allmessagesnotsupportedDB": "No es pot processar '''{{ns:special}}:Allmessages''' perquè la variable '''$wgUseDatabaseMessages''' està desactivada.",
        "allmessages-filter-legend": "Filtre",
        "allmessages-filter": "Filtra per l'estat de personalització:",
        "confirm-watch-top": "Voleu afegir aquesta pàgina a la llista de seguiment?",
        "confirm-unwatch-button": "D'acord",
        "confirm-unwatch-top": "Voleu treure aquesta pàgina de la llista de seguiment?",
+       "confirm-rollback-button": "D'acord",
+       "confirm-rollback-top": "Voleu revertir les modificacions a la pàgina?",
        "quotation-marks": "«$1»",
        "imgmultipageprev": "← pàgina anterior",
        "imgmultipagenext": "pàgina següent →",
        "mw-widgets-dateinput-placeholder-month": "AAAA-MM",
        "mw-widgets-titleinput-description-new-page": "la pàgina no existeix encara",
        "mw-widgets-titleinput-description-redirect": "redirigeix a $1",
-       "api-error-blacklisted": "Trieu un títol diferent, més descriptiu.",
        "sessionmanager-tie": "No es poden combinar diferents tipus de sol·licituds d'autenticació: $1.",
        "sessionprovider-generic": "$1 sessions",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "sessions basades en galetes",
        "randomrootpage": "Pàgina arrel aleatòria",
        "log-action-filter-block": "Tipus de blocatge:",
        "log-action-filter-delete": "Tipus de supressió:",
+       "log-action-filter-import": "Tipus d'importació:",
+       "log-action-filter-managetags": "Tipus d'acció de gestió d'etiquetes:",
+       "log-action-filter-move": "Tipus de reanomenament:",
+       "log-action-filter-newusers": "Tipus de creació de compte:",
        "log-action-filter-patrol": "Tipus de patrullatge:",
        "log-action-filter-protect": "Tipus de protecció:",
+       "log-action-filter-rights": "Tipus de canvi de permisos:",
+       "log-action-filter-suppress": "Tipus de supressió:",
        "log-action-filter-upload": "Tipus de càrrega:",
        "log-action-filter-all": "Tota",
        "log-action-filter-block-block": "Bloca",
        "log-action-filter-protect-unprotect": "Desprotecció",
        "log-action-filter-upload-upload": "Nova càrrega",
        "log-action-filter-upload-overwrite": "Torna a carregar",
+       "authmanager-authn-not-in-progress": "L'autenticació no està en curs o les dades de sessió s'han perdut. Comenceu de nou des del principi.",
+       "authmanager-authn-no-primary": "Les dades credencials no s'han pogut autenticar.",
+       "authmanager-authn-autocreate-failed": "Ha fallat la creació automàtica d'un compte local: $1",
        "authmanager-realname-label": "Nom real",
-       "authmanager-realname-help": "Nom real de l'usuari"
+       "authmanager-realname-help": "Nom real de l'usuari",
+       "authmanager-provider-temporarypassword": "Contrasenya temporal",
+       "authprovider-resetpass-skip-label": "Omet",
+       "authpage-cannot-login-continue": "No es pot continuar amb l'inicio de sessió. Probablement la vostra sessió ha expirat.",
+       "authpage-cannot-create-continue": "No es pot prosseguir la creació del compte. Probablement la vostra sessió ha expirat.",
+       "changecredentials": "Canvi de dades credencials",
+       "changecredentials-submit": "Canvia les dades credencials",
+       "credentialsform-provider": "Tipus de dades credencials:",
+       "credentialsform-account": "Nom del compte:",
+       "linkaccounts-submit": "Enllaça els comptes",
+       "unlinkaccounts": "Desenllaça els comptes",
+       "unlinkaccounts-success": "El compte s'ha desenllaçat.",
+       "authenticationdatachange-ignored": "No s'ha gestionat el canvi de dades d'autenticació. Potser no s'ha configurat cap proveïdor?"
 }
index df8d3a4..2a856d9 100644 (file)
        "qbedit": "修改",
        "qbpageoptions": "茲蜀頁",
        "qbmyoptions": "我其頁面",
-       "faq": "ç\93稠碰著其問題",
+       "faq": "ç\9c\9f稠碰著其問題",
        "faqpage": "Project:稠問其問題",
        "actions": "動作",
        "namespaces": "命名空間",
        "linkstoimage": "下底{{PLURAL:$1|$1頁鏈接}}遘茲文件:",
        "nolinkstoimage": "無鏈接遘茲蜀萆文件其頁面。",
        "uploadnewversion-linktext": "上傳蜀萆新版本其茲萆文件。",
+       "shared-repo-name-wikimediacommons": "Wikimedia Commons",
        "download": "下載",
        "unwatchedpages": "無監視其頁面",
        "listredirects": "重定向其單單",
        "allmessagesname": "名",
        "allmessagesdefault": "默認其消息文字",
        "allmessagescurrent": "現時其文字",
-       "allmessagestext": "茲是敆MediaWiki命名空間裏勢系統消息其蜀萆單單。\n如果汝卜想貢獻通用其MediaWiki基本地化服務,起動汝訪問[https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki本地化]共[//translatewiki.net translatewiki.net]。",
+       "allmessagestext": "茲是敆MediaWiki命名空間裏勢系統消息其蜀萆單單。\n如果汝卜想貢獻通用其MediaWiki基本地化服務,起動汝訪問[https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki本地化]共[https://translatewiki.net translatewiki.net]。",
        "allmessagesnotsupportedDB": "茲蜀頁𣍐使其,因為'''$wgUseDatabaseMessages'''已經乞禁止去了。",
        "thumbnail-more": "放大",
        "tooltip-pt-userpage": "汝其用戶頁",
index 0a4fdf3..0655819 100644 (file)
@@ -15,7 +15,7 @@
                ]
        },
        "tog-underline": "КӀел сиз хьакха хьажорган:",
-       "tog-hideminor": "Ð\9aÑ\8aайладаÑ\85а ÐºÐ¸Ð³Ð¸Ð¹Ñ\80а Ð½Ð¸Ñ\81даÑ\80Ñ\88 Ð¾Ñ\86 Ð¼Ð¾Ð³Ó\80ама ÐºÐµÑ\80ла Ñ\85ийÑ\86амеÑ\85Ñ\8c",
+       "tog-hideminor": "Ð\9aÑ\8aайладаÑ\85а Ð¶Ð¸Ð¼Ð° Ð½Ð¸Ñ\81даÑ\80Ñ\88 ÐºÐµÑ\80ла Ð¼Ð¾Ð³Ó\80ам Ñ\8eкÑ\8aаÑ\80а",
        "tog-hidepatrolled": "Къайладаха гӀаролладина нисдарш оц могӀама керла нисдаршкахь",
        "tog-newpageshidepatrolled": "Къайлаяха гӀароллайина агӀонаш оьцу могӀама керла агӀонашкахь",
        "tog-hidecategorization": "Къайлаяха агӀонийн категореш",
        "protectedpagetext": "ХӀара агӀо ларйина ю хийцамаш ца байта.",
        "viewsourcetext": "Хьоьга далундерг хьажар а дезахь хlокху агlон чура йоза хьаэцар:",
        "viewyourtext": "Хьан йиш ю '''хьой нисдинчу''' дӀадолалун йозе хьажа а, цуна копи ян а:",
-       "protectedinterface": "ХӀокху агӀона чохь интерфейсан программа латторан хаам бу. Зулам ца дайта цуна хийцам бан куьйгалхошна бен цало.\nХӀокху хааман гоч тӀетоха я хийца лелае локализацин сайт MediaWiki [//translatewiki.net/ translatewiki.net]",
+       "protectedinterface": "ХӀокху агӀона чохь интерфейсан программа латторан хаам бу. Зулам ца дайта цуна хийцам бан куьйгалхошна бен цало.\nХӀокху хааман гоч тӀетоха я хийца лелае локализацин сайт MediaWiki [https://translatewiki.net/ translatewiki.net]",
        "editinginterface": "<strong>Тергам бе:</strong> Ахьа таеш ю интерфейсан йоза долу агӀо программин латторан.\nЦуна бина хийцам хьокху Википедин кхечу декъашхошна гур бу.",
-       "translateinterface": "ХӀокху хааман гоч тӀетоха я хийца дехар до лелае локализацин сайт MediaWiki [//translatewiki.net/ translatewiki.net].",
+       "translateinterface": "ХӀокху хааман гоч тӀетоха я хийца дехар до лелае локализацин сайт MediaWiki [https://translatewiki.net/ translatewiki.net].",
        "cascadeprotected": "АгӀо хийцам ца байта ларйина ю {{PLURAL:$1|хӀокху агӀона|хӀокху агӀонийн}} юкъа йогӀуш хилар бахьнехь:\n$2",
        "namespaceprotected": "ХӀан бакъо яц анна цӀерш чохь тадарш да «$1».",
        "customcssprotected": "Хьан бакъо яц хӀара CSS-агӀо таян, иза кхечу декъашхочун гӀирс болу дера.",
        "resetpass-temp-password": "Цхьан хана пароль:",
        "resetpass-abort-generic": "Пароль хийцар дӀахедар",
        "resetpass-expired": "Хьан паролан хан чекхелла. Дехар до керла пароль хӀоттаяр.",
-       "resetpass-expired-soft": "Хьа паролан хан чекхелла. Дехар до, харжа керла пароль я тӀетаӀе «{{int:resetpass-submit-cancel}}», и тӀехо хица.",
-       "resetpass-validity-soft": "Хьа пароль нийса яц: $1\n\nДехар до, харжа керла пароль я тӀетаӀе  «{{int:resetpass-submit-cancel}}», и тӀехо кхосса.",
+       "resetpass-expired-soft": "Хьа паролан хан чекхелла. Дехар до, харжа керла пароль я тӀетаӀе «{{int:authprovider-resetpass-skip-label}}», и тӀехо хица.",
+       "resetpass-validity-soft": "Хьа пароль нийса яц: $1\n\nДехар до, харжа керла пароль я тӀетаӀе  «{{int:authprovider-resetpass-skip-label}}», и тӀехо кхосса.",
        "passwordreset": "Пароль кхоссар",
        "passwordreset-text-one": "Хьай пароль кхосса, юза хӀара форма.",
        "passwordreset-text-many": "{{PLURAL:$1|Пароль кхосса юза лахара цхьа меттиг.}}",
        "apihelp": "API гӀо",
        "apihelp-no-such-module": "Модуль «$1» цакарий.",
        "apisandbox": "Ловзаран майда API",
-       "apisandbox-intro": "Лела йе хӀара агӀо '''MediaWiki API''' зуьйш.\nAPI кхин муха лела йо хьажа [//www.mediawiki.org/wiki/API:Main_page кхузахь]. Масала, [//www.mediawiki.org/wiki/API#A_simple_example Коьрта агӀона чулацам схьаэца]. Кхин масалаш ган харжа дийриг.",
+       "apisandbox-intro": "Лела йе хӀара агӀо '''MediaWiki API''' зуьйш.\nAPI кхин муха лела йо хьажа [https://www.mediawiki.org/wiki/API:Main_page кхузахь]. Масала, [https://www.mediawiki.org/wiki/API#A_simple_example Коьрта агӀона чулацам схьаэца]. Кхин масалаш ган харжа дийриг.",
        "apisandbox-unfullscreen": "Гайта агӀо",
        "apisandbox-submit": "Дехар далар",
        "apisandbox-reset": "ЦӀанъян",
        "sp-contributions-username": "IP-адрес я декъашхочун цӀе:",
        "sp-contributions-toponly": "Гайта тӀаьххьарлера хийцамаш",
        "sp-contributions-newonly": "АгӀонаш кхоллар бен ма гайта",
+       "sp-contributions-hideminor": "Къайладаха жима нисдарш",
        "sp-contributions-submit": "Лахар",
        "whatlinkshere": "Кхуза хьажоргаш",
        "whatlinkshere-title": "«$1» тӀе хьажоргаш йолу агӀонаш",
        "allmessagesname": "Хаам",
        "allmessagesdefault": "Ӏад дитарца йоза",
        "allmessagescurrent": "Карарчу хенан йоза",
-       "allmessagestext": "ХӀара «MediaWiki» цӀерийн меттигера системан хаамийн могӀа бу.\nХьайна MediaWiki тая лууш делахь, дехар до, проект [//translatewiki.net translatewiki.net] [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation юьйцучу хьажа].",
+       "allmessagestext": "ХӀара «MediaWiki» цӀерийн меттигера системан хаамийн могӀа бу.\nХьайна MediaWiki тая лууш делахь, дехар до, проект [https://translatewiki.net translatewiki.net] [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation юьйцучу хьажа].",
        "allmessagesnotsupportedDB": "'''$wgUseDatabaseMessages''' дӀаяйина хилар бахьнехь хӀара агӀо дӀачӀаьгӀна ю.",
        "allmessages-filter-legend": "Луьттург",
        "allmessages-filter": "Луьттург оцу хьола хийцамца:",
        "tooltip-t-specialpages": "Белхан агӀонанийн могӀам",
        "tooltip-t-print": "ХӀокху агӀонна зорба туху башхо",
        "tooltip-t-permalink": "Даима йолу хьажорг хӀокху башха агӀонна",
-       "tooltip-ca-nstab-main": "Яззамна чулацам",
+       "tooltip-ca-nstab-main": "Ð\9aоÑ\8cÑ\80Ñ\82а Ñ\8fззаман чулацам",
        "tooltip-ca-nstab-user": "ХӀора декъашхочун долахь йолу агӀо ю",
        "tooltip-ca-nstab-media": "Медиа-файл",
        "tooltip-ca-nstab-special": "ХӀара белхан агӀо ю, хӀара таялуш яц",
index 31f3cf0..8dccaba 100644 (file)
        "protectedpagetext": "Naka-lock ang kining panid aron mapugngan ang pag-usab.",
        "viewsourcetext": "Puyde nimo tan-awon ug kopyahon ang ginikanan ning panid:",
        "protectedinterface": "Ang kining panid mohatag og interface text para sa software, ug naka-lock aron mapugngan ang pag-abuso.",
-       "editinginterface": "'''Pahibalo:''' Imo nang usbon ang panid nga gigamit sa paghatag og interface text para sa software.\nAng mga pag-usab niining panid moapekto sa appearance sa user interface nga alang sa ubang gumagamit.\nPara sa mga paghubad, palihog ikonsider ang paggamit sa [//translatewiki.net/wiki/Main_Page?setlang=ceb translatewiki.net], ang MediaWiki localisation project.",
+       "editinginterface": "'''Pahibalo:''' Imo nang usbon ang panid nga gigamit sa paghatag og interface text para sa software.\nAng mga pag-usab niining panid moapekto sa appearance sa user interface nga alang sa ubang gumagamit.\nPara sa mga paghubad, palihog ikonsider ang paggamit sa [https://translatewiki.net/wiki/Main_Page?setlang=ceb translatewiki.net], ang MediaWiki localisation project.",
        "cascadeprotected": "Ang kining panid giprotektahan sa pag-usab tungod kay nahiapil kini sa mosunod nga {{PLURAL:$1|panid, nga|mga panid, nga}} giprotektahan pinaagi sa pag-turn on gamit ang \"cascading\" nga opsyon:\n$2",
        "namespaceprotected": "Wala kay permiso nga mag-usab sa mga panid sa '''$1''' nga ngalang espasyo.",
        "ns-specialprotected": "Ang mga espesyal nga panid dili mausban.",
index eda9211..4274025 100644 (file)
        "allpagesprefix": "Na'annok i påhina siha yan i kla'an mo'na:",
        "categories": "Katigoria",
        "categoriespagetext": "Guåha påhina pat media gi halom i sigiente katigoria.\n[[Special:UnusedCategories|Unused categories]] are not shown here.\nAlso see [[Special:WantedCategories|wanted categories]].",
-       "special-categories-sort-count": "såttea pot tinefong",
-       "special-categories-sort-abc": "såttea pot i atfabetu",
        "linksearch-ok": "Aligao",
        "emailuser": "Na'e-mail i muna'sesetbi este",
        "watchlist": "Listan pinilan-hu",
index 6abe392..c8efd12 100644 (file)
        "protectedpagetext": "بۆ بەرگری لە دەستکاریکردن یان چالاکییەکانی تر ئەم پەڕەیە پارێزراوە.",
        "viewsourcetext": "دەتوانی سەرچاوەی ئەم پەڕە ببینی و کۆپیی بکەی:",
        "viewyourtext": "دەتوانی ژێدەری '''دەستکارییەکەت''' لەم پەڕەیەدا ببینی و کۆپی بکەی:",
-       "protectedinterface": "ئەم پەڕەیە دەقی ڕواڵەتی نەرمامێری ئەم ویکییە نیشان دەدات و بۆ بەرگری لە خراپکاری پارێزراوە.\nبۆ زیادکردن یان گۆڕینی وەرگێڕانەکان بۆ ھەموو ویکییەکان، تکایە لە [//translatewiki.net/ translatewiki.net]، پرۆژەی ناوچەیی کردنی میدیاویکی کەڵک وەربگرە.",
+       "protectedinterface": "ئەم پەڕەیە دەقی ڕواڵەتی نەرمامێری ئەم ویکییە نیشان دەدات و بۆ بەرگری لە خراپکاری پارێزراوە.\nبۆ زیادکردن یان گۆڕینی وەرگێڕانەکان بۆ ھەموو ویکییەکان، تکایە لە [https://translatewiki.net/ translatewiki.net]، پرۆژەی ناوچەیی کردنی میدیاویکی کەڵک وەربگرە.",
        "editinginterface": "<strong>ھۆشیار بە:</strong> خەریکی دەستکاریی پەڕەیەک دەکەیت کە بۆ دابین کردنی دەقی ڕووکاری نەرمامێر بەکاردێت.\nگۆڕانکارییەکان لەم پەڕەیەدا لە سەر ڕواڵەتی پەڕەکان بۆ بەکارھێنەرانی تر لەم ویکییەدا کاریگەر دەبێت.",
        "cascadeprotected": "ئەم لاپەڕە پارێزراوە لە دەستکاریی، چونکا خراوەتە سەر ڕیزی ئەم {{PLURAL:$1|لاپەڕانه‌، کە}} که‌ به‌ هه‌ڵکردنی بژارده‌ی داڕژان هه‌ڵکراوه‌:\n$2",
        "namespaceprotected": "تۆ ناتوانی لاپەڕەکانی ناو نەیمسپەیسی '''$1''' بگۆڕی.",
        "allmessagesname": "ناو",
        "allmessagesdefault": "دەقی بنەڕەتی",
        "allmessagescurrent": "دەقی ھەنووکە",
-       "allmessagestext": "ئەمە لیستێکە لە پەیامەکانی بەردەست لە بۆشایی‌ناوی میدیاویکی.\nتکایە سەردانی [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation ناوچەیی‌کردنی میدیاویکی] و [//translatewiki.net translatewiki.net] بکە ئەگەر دەتەوێ لە ناوچەیی‌کردنی میدیاویکی بە گشتی بەشداری بکەیت.",
+       "allmessagestext": "ئەمە لیستێکە لە پەیامەکانی بەردەست لە بۆشایی‌ناوی میدیاویکی.\nتکایە سەردانی [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation ناوچەیی‌کردنی میدیاویکی] و [https://translatewiki.net translatewiki.net] بکە ئەگەر دەتەوێ لە ناوچەیی‌کردنی میدیاویکی بە گشتی بەشداری بکەیت.",
        "allmessagesnotsupportedDB": "ئەم لاپەڕە ناتوانی بەکاربێت لەبەر ئەوەی '''$wgUseDatabaseMessages''' لەکار خستراوە.",
        "allmessages-filter-legend": "پاڵێو",
        "allmessages-filter-unmodified": "نەگۆڕدراو",
index 69e8949..9eee086 100644 (file)
@@ -5,7 +5,8 @@
                        "Ale Mister (on co.wikipedia.org)",
                        "Img (on co.wikipedia.org)",
                        "Paulu",
-                       "아라"
+                       "아라",
+                       "Jun Misugi"
                ]
        },
        "tog-hideminor": "Piattà e mudifiche minore in l'ultime mudifiche",
        "nstab-template": "Mudellu",
        "nstab-help": "Pagina d'aiutu",
        "nstab-category": "Categuria",
+       "mainpage-nstab": "Pàgina maestra",
        "error": "Errore",
        "missingarticle-rev": "(numeru di a versione: $1)",
        "internalerror": "Errore internu",
        "accountcreated": "Registramentu fattu",
        "accountcreatedtext": "U registramentu di l'utilizatore $1 hè statu fattu.",
        "loginlanguagelabel": "Lingua: $1",
+       "pt-login": "Cunnessione",
        "retypenew": "Scrive torna a nova parulla secreta:",
        "resetpass-submit-cancel": "Cancillà",
        "bold_sample": "Grassettu",
        "block-log-flags-nocreate": "registramentu pruibitu",
        "block-log-flags-nousertalk": "ùn pò mudificà a so propria pagina di discussione",
        "move-page-legend": "Move a pagina",
-       "movearticle": "Move a pagina",
        "move-watch": "Fighjulà issa pagina",
        "movepagebtn": "Move a pagina",
        "movelogpagetext": "Elencu di e pagine mosse.",
        "logentry-move-move": "$1 {{GENDER:$2|hà spustatu}} a pagina $3 à $4",
        "logentry-newusers-create": "U participante $3 hè statu creatu da $1",
        "rightsnone": "(nessunu)",
+       "searchsuggest-search": "Ricerca",
        "expand_templates_output": "Risultatu"
 }
index 8f376d5..9829a07 100644 (file)
@@ -4,7 +4,8 @@
                        "Capisano",
                        "Oxyzen",
                        "Reedy",
-                       "아라"
+                       "아라",
+                       "Macofe"
                ]
        },
        "tog-underline": "Kuritan sa idalum ang mga link",
        "cascadeprotected": "Ginprotektahan ang mini nga pahina sa pagpangilis, tungod naupod ini sa mga gasunod nga {{PLURAL:$1|pahina, nga|mga pahina, nga}} protektado upod ang \"cascading\" nga pilili-an nga naga-andar:\n$2",
        "namespaceprotected": "Wala ka sang permiso nga magliwat sang mga pahina nga ara sa namespace nga '''$1'''.",
        "ns-specialprotected": "Indi pwede bag-uhon ang mga pinasahi nga pahina.",
-       "titleprotected": "Naprotektahan ang mini nga titulo halin sa pag-ubra ni [[User:$1|$1]].\nMini ang ginhatag nga kabangdanan \"''$2''\".",
+       "titleprotected": "Naprotektahan ang mini nga titulo halin sa pag-ubra ni [[User:$1|$1]].\nMini ang ginhatag nga kabangdanan <em>$2</em>.",
        "virus-badscanner": "Sala nga konpigurasyon: wala nakilal-an nga manugsala sang virus: ''$1''",
        "virus-scanfailed": "palpak ang pagscan (code $1)",
        "virus-unknownscanner": "wala makilal-an nga pangontra-bayrus:",
        "block-log-flags-nocreate": "pag-ubra sang account ginbawalan",
        "movepagetext": "Gamit ang pormas sa idalum magala-in ang ngalan sang pahina, masaylo ang tanan nga kasaysayan niya sa bag-o niya nga pangalan.\nAng daan nga titulo mangin isa ka pahina sang pagdirekta sa bag-o nga titulo.\nPwede mo ma-update ang mga pagdirekta nga gakadto sa orihinal nga titulo sang diretso.\nKung indi mo gusto, siguraduhon nga may [[Special:DoubleRedirects|doble]] ukon [[Special:BrokenRedirects|bali nga pangdirekta]].\nIkaw ang responsable sa pagsiguro nga ang mga links nagapadayon sa pagtudlo kung sa diin sila dapat makadto.\n\nTandaan nga ang pahina '''indi''' masaylo kung may ara na sang pahina sa bag-o nga titulo, kung indi man wala mini sang unod ukon may pagdirekta kag wala mini sang nagligad nga kasayasayan sa pag-ilis.\nAnbot silingon sini nga pwede mo man ma-islan ngalan ang pahina pabalik sa kung diin mini gin-ngalanan kung nagsala ikaw, kag indi mo matapakan sulat ang mini nga na-una nga pahina.\n\n'''Paandam!'''\nMini mangin isa ka mala-in kag wala gina-ekspektaran nga pagbag-o para sa isa ka sikat nga pahina;\nsiguraduhon nga na-intyendihan mo ang paga-abtan sini antes magpadayun.",
        "movepagetalktext": "Ang na-upod nga pahina sang istoryahanay diretso nga ma-upod sa iya '''apang:'''\n*Ang indi blangko ngapahina sang istoryahanay ara na nga bal-an sa idalum sa bag-o nga ngalan, ukon\n*Wala mo nachekan ang mga kahon sa idalum.\n\nSa mga mini nga kaso, kinahanglan mo hulagon ang pahina nga ikaw mismo, kung gusto mo.",
-       "movearticle": "Sayluhon mining pahina:",
        "newtitle": "Pakadto sa bag-o nga titulo:",
        "move-watch": "Bantayan ang mini nga pahina",
        "movepagebtn": "Sayluhon mini nga pahina",
index bfa212d..5ef9124 100644 (file)
        "protectedpagetext": "Бу саифеде денъиштирме я да башкъа бир арекет япылмасын деп о блок этильди.",
        "viewsourcetext": "Саифенинъ кодуны козьден кечирип копиялай билесинъиз:",
        "protectedinterface": "Бу саифеде система интерфейсининъ метни бар. Онынъ ичюн мында бир хата чыкъмасын деп оны денъиштирмек ясакъ.",
-       "editinginterface": "'''Тенби''': MediaWiki системасынынъ интерфейс саифесини денъиштиреятасыз. Бу саифедеки денъиштирмелер интерфейснинъ корюнишини бу викининъ башкъа къулланыджылары ичюн де денъиштиреджек. Лютфен, вики интерфейсини терджиме этмек ичюн [//translatewiki.net/wiki/Main_Page?setlang=crh translatewiki.net] сайтыны (MediaWiki ресмий локализация лейхасы) къулланынъыз.",
+       "editinginterface": "'''Тенби''': MediaWiki системасынынъ интерфейс саифесини денъиштиреятасыз. Бу саифедеки денъиштирмелер интерфейснинъ корюнишини бу викининъ башкъа къулланыджылары ичюн де денъиштиреджек. Лютфен, вики интерфейсини терджиме этмек ичюн [https://translatewiki.net/wiki/Main_Page?setlang=crh translatewiki.net] сайтыны (MediaWiki ресмий локализация лейхасы) къулланынъыз.",
        "cascadeprotected": "Бу саифени денъиштирип оламазсынъыз, чюнки каскад къорчалав алтында булунгъан {{PLURAL:$1|1=саифеге|саифелерге}} менсюптир:\n$2",
        "namespaceprotected": "'''$1''' исим фезасында саифелер денъиштирмеге акъкъынъыз ёкъ.",
        "ns-specialprotected": "{{ns:special}} исим фезасындаки саифелерни денъиштирмек ясакъ.",
        "allmessagesname": "Исим",
        "allmessagesdefault": "Оригиналь метин",
        "allmessagescurrent": "Шимди къулланылгъан метин",
-       "allmessagestext": "Ишбу джедвель MediaWiki-де мевджут олгъан бутюн система беянатларынынъ джедвелидир.\nMediaWiki интерфейсининъ чешит тиллерге терджиме этювде иштирак этмеге истесенъиз [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] ве [//translatewiki.net translatewiki.net] саифелерине зиярет этинъиз.",
+       "allmessagestext": "Ишбу джедвель MediaWiki-де мевджут олгъан бутюн система беянатларынынъ джедвелидир.\nMediaWiki интерфейсининъ чешит тиллерге терджиме этювде иштирак этмеге истесенъиз [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] ве [https://translatewiki.net translatewiki.net] саифелерине зиярет этинъиз.",
        "allmessages-filter-legend": "Сюзгюч",
        "allmessages-language": "Тиль:",
        "thumbnail-more": "Буют",
index fc114e5..4d8a73c 100644 (file)
        "protectedpagetext": "Bu saifede deñiştirme ya da başqa bir areket yapılmasın dep o blok etildi.",
        "viewsourcetext": "Saifeniñ kodunı közden keçirip kopiyalay bilesiñiz:",
        "protectedinterface": "Bu saifede viki interfeysiniñ metni bar. Onıñ içün mında bir hata çıqmasın dep onı deñiştirmek yasaq.",
-       "editinginterface": "'''Tenbi''': MediaWiki sistemasınıñ interfeys saifesini deñiştireyatasız. Bu saifedeki deñiştirmeler interfeysniñ körünişini bu vikiniñ başqa qullanıcıları içün de deñiştirecek. Lütfen, viki interfeysini tercime etmek içün [//translatewiki.net/wiki/Main_Page?setlang=crh translatewiki.net] saytını (MediaWiki resmiy lokalizatsiya leyhası) qullanıñız.",
+       "editinginterface": "'''Tenbi''': MediaWiki sistemasınıñ interfeys saifesini deñiştireyatasız. Bu saifedeki deñiştirmeler interfeysniñ körünişini bu vikiniñ başqa qullanıcıları içün de deñiştirecek. Lütfen, viki interfeysini tercime etmek içün [https://translatewiki.net/wiki/Main_Page?setlang=crh translatewiki.net] saytını (MediaWiki resmiy lokalizatsiya leyhası) qullanıñız.",
        "cascadeprotected": "Bu saifeni deñiştirip olamazsıñız, çünki kaskad qorçalav altında bulunğan {{PLURAL:$1|saifege|saifelerge}} mensüptir:\n$2",
        "namespaceprotected": "'''$1''' isim fezasında saifeler deñiştirmege aqqıñız yoq.",
        "ns-specialprotected": "{{ns:special}} isim fezasındaki saifelerni deñiştirmek yasaq.",
        "allmessagesname": "İsim",
        "allmessagesdefault": "Original metin",
        "allmessagescurrent": "Şimdi qullanılğan metin",
-       "allmessagestext": "İşbu cedvel MediaWikide mevcut olğan bütün sistema beyanatlarınıñ cedvelidir.\nMediaWiki interfeysiniñ çeşit tillerge tercime etüvde iştirak etmege isteseñiz [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] ve [//translatewiki.net translatewiki.net] saifelerine ziyaret etiñiz.",
+       "allmessagestext": "İşbu cedvel MediaWikide mevcut olğan bütün sistema beyanatlarınıñ cedvelidir.\nMediaWiki interfeysiniñ çeşit tillerge tercime etüvde iştirak etmege isteseñiz [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] ve [https://translatewiki.net translatewiki.net] saifelerine ziyaret etiñiz.",
        "allmessages-filter-legend": "Süzgüç",
        "allmessages-language": "Til:",
        "thumbnail-more": "Büyüt",
index 40c0c0c..d002c60 100644 (file)
@@ -30,7 +30,8 @@
                        "Macofe",
                        "Urbanecm",
                        "LordMsz",
-                       "Matma Rex"
+                       "Matma Rex",
+                       "Dvorapa"
                ]
        },
        "tog-underline": "Podtrhávat odkazy:",
        "categorypage": "Prohlédnout si stránku kategorie",
        "viewtalkpage": "Prohlédnout si diskusi",
        "otherlanguages": "V jiných jazycích",
-       "redirectedfrom": "(Přesměrováno z $1)",
+       "redirectedfrom": "(přesměrováno z $1)",
        "redirectpagesub": "Přesměrování",
        "redirectto": "Přesměrování na:",
        "lastmodifiedat": "Stránka byla naposledy editována $1 v $2.",
        "protectedpagetext": "Tato stránka byla zamčena, aby se předešlo jejímu editování.",
        "viewsourcetext": "Můžete si prohlédnout a zkopírovat zdrojový kód této stránky.",
        "viewyourtext": "Můžete si prohlédnout a zkopírovat zdrojový kód <strong>vašich změn</strong> této stránky.",
-       "protectedinterface": "Tato stránka obsahuje text softwarového rozhraní a je zamčena kvůli prevenci zneužití.\nPro přidávání a změny překladů pro všechny wiki použijte [//translatewiki.net/ translatewiki.net], projekt pro lokalizaci MediaWiki.",
+       "protectedinterface": "Tato stránka obsahuje text softwarového rozhraní a je zamčena kvůli prevenci zneužití.\nPro přidávání a změny překladů pro všechny wiki použijte [https://translatewiki.net/ translatewiki.net], projekt pro lokalizaci MediaWiki.",
        "editinginterface": "<strong>Upozornění:</strong> Editujete stránku, která definuje texty rozhraní.\nZměny této stránky ovlivní vzhled uživatelského rozhraní všem uživatelům této wiki.",
-       "translateinterface": "Pro přidávání a změny překladů pro všechny wiki použijte [//translatewiki.net/ translatewiki.net], projekt pro lokalizaci MediaWiki.",
+       "translateinterface": "Pro přidávání a změny překladů pro všechny wiki použijte [https://translatewiki.net/ translatewiki.net], projekt pro lokalizaci MediaWiki.",
        "cascadeprotected": "Tato stránka je zamčena, neboť je vložena na {{PLURAL:$1|následující stránku, zamčenou|následující stránky, zamčené}} kaskádovým zámkem:\n$2",
        "namespaceprotected": "Nemáte povoleno editovat stránky ve jmenném prostoru <strong>$1</strong>.",
        "customcssprotected": "Nemáte povoleno editovat tuto stránku s CSS, protože obsahuje osobní nastavení jiného uživatele.",
        "resetpass-temp-password": "Dočasné heslo:",
        "resetpass-abort-generic": "Změna hesla byla zablokována rozšířením.",
        "resetpass-expired": "Platnost vašeho hesla vypršela. Pro přihlášení si nastavte nové heslo.",
-       "resetpass-expired-soft": "Platnost vašeho hesla vypršela, musíte si nastavit nové. Zvolte si nové heslo nebo klikněte na „{{int:resetpass-submit-cancel}}“ a nastavte si ho později.",
-       "resetpass-validity-soft": "Vaše heslo není platné: $1\n\nZvolte si nové heslo nebo klikněte na „{{int:resetpass-submit-cancel}}“ a nastavte si ho později.",
+       "resetpass-expired-soft": "Platnost vašeho hesla vypršela, musíte si nastavit nové. Zvolte si nové heslo nebo klikněte na „{{int:authprovider-resetpass-skip-label}}“ a nastavte si ho později.",
+       "resetpass-validity-soft": "Vaše heslo není platné: $1\n\nZvolte si nové heslo nebo klikněte na „{{int:authprovider-resetpass-skip-label}}“ a nastavte si ho později.",
        "passwordreset": "Reset hesla",
        "passwordreset-text-one": "Pokud chcete e-mailem získat dočasné heslo, vyplňte tento formulář.",
        "passwordreset-text-many": "{{PLURAL:$1|Pokud chcete e-mailem získat dočasné heslo, vyplňte jeden z údajů.}}",
        "minoredit": "Tato změna je malá editace.",
        "watchthis": "Sledovat tuto stránku",
        "savearticle": "Uložit změny",
+       "savechanges": "Uložit změny",
        "publishpage": "Zveřejnit stránku",
+       "publishchanges": "Zveřejnit změny",
        "preview": "Náhled",
        "showpreview": "Ukázat náhled",
        "showdiff": "Ukázat změny",
        "blankarticle": "<strong>Upozornění:</strong> Stránka, kterou se chystáte založit, je prázdná. Pokud ještě jednou kliknete na „{{int:savearticle}}“, bude založena zcela bez obsahu.",
-       "anoneditwarning": "<strong>Varování:</strong> Nejste přihlášen(a). Pokud uložíte jakoukoli editaci, bude vaše IP adresa zveřejněna v historii této stránky. Pokud se <strong>[$1 přihlásíte]</strong> nebo si <strong>[$2 vytvoříte účet]</strong>, budou vaše editace připsány vašemu uživatelskému jménu a získáte i další výhody.",
+       "anoneditwarning": "<strong>Varování:</strong> Nejste přihlášen(a). Pokud uložíte jakoukoli editaci, vaše IP adresa bude zveřejněna v historii této stránky. Pokud se <strong>[$1 přihlásíte]</strong> nebo si <strong>[$2 vytvoříte účet]</strong>, vaše editace budou připsány vašemu uživatelskému jménu a získáte i další výhody.",
        "anonpreviewwarning": "<em>Nejste přihlášen(a). Uložením zveřejníte svou IP adresu v historii této stránky.</em>",
        "missingsummary": "<strong>Připomenutí:</strong> Nezadali jste shrnutí editace. Pokud ještě jednou kliknete na „{{int:savearticle}}“, bude vaše editace zapsána bez shrnutí.",
        "selfredirect": "<strong>Upozornění:</strong> Pokoušíte se tuto stránku přesměrovat na sebe samu.\nMožná jste zadali chybný cíl přesměrování, nebo editujete špatnou stránku.\nPokud ještě jednou kliknete na „{{int:savearticle}}“, bude i přesto přesměrování vytvořeno.",
        "content-model-css": "CSS",
        "content-json-empty-object": "Prázdný objekt",
        "content-json-empty-array": "Prázdné pole",
+       "deprecated-self-close-category": "Stránky s neplatnými sebeuzavírajícími HTML značkami",
+       "deprecated-self-close-category-desc": "Stránka obsahuje neplatné sebeuzavírající HTML značky, například <code>&lt;b/></code> nebo <code>&lt;span/></code>. Jejich chování se v zájmu konzistence se specifikací HTML5 brzy změní, proto je jejich použití ve wikitextu zastaralé.",
        "duplicate-args-warning": "<strong>Upozornění:</strong> Stránka [[:$1]] volá [[:$2]] s více než jednou hodnotou parametru „$3“. Použije se jen poslední uvedená hodnota.",
        "duplicate-args-category": "Stránky s duplicitními argumenty ve voláních šablon",
        "duplicate-args-category-desc": "Stránka obsahuje volání šablony, které používá duplicitní argumenty, např. <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> nebo <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "group": "Skupina:",
        "group-user": "Uživatelé",
        "group-autoconfirmed": "Automaticky schválení uživatelé",
-       "group-bot": "Boti",
+       "group-bot": "Roboti",
        "group-sysop": "Správci",
        "group-bureaucrat": "Byrokraté",
        "group-suppress": "Utajovatelé",
        "group-all": "(všichni)",
        "group-user-member": "{{GENDER:$1|uživatel|uživatelka|uživatel}}",
        "group-autoconfirmed-member": "automaticky {{GENDER:$1|schválený uživatel|schválená uživatelka|schválený uživatel}}",
-       "group-bot-member": "{{GENDER:$1|bot|botka|bot}}",
+       "group-bot-member": "{{GENDER:$1|robot|robotka}}",
        "group-sysop-member": "{{GENDER:$1|správce|správkyně|správce}}",
        "group-bureaucrat-member": "{{GENDER:$1|byrokrat|byrokratka|byrokrat}}",
        "group-suppress-member": "{{GENDER:$1|utajovatel|utajovatelka|utajovatel}}",
        "grouppage-user": "{{ns:project}}:Uživatelé",
        "grouppage-autoconfirmed": "{{ns:project}}:Automaticky schválení uživatelé",
-       "grouppage-bot": "{{ns:project}}:Boti",
+       "grouppage-bot": "{{ns:project}}:Roboti",
        "grouppage-sysop": "{{ns:project}}:Správci",
        "grouppage-bureaucrat": "{{ns:project}}:Byrokraté",
        "grouppage-suppress": "{{ns:project}}:Utajovatelé",
        "rightslogtext": "Toto je záznam změn uživatelských práv.",
        "action-read": "přečíst tuto stránku",
        "action-edit": "upravit tuto stránku",
-       "action-createpage": "vytvářet stránky",
-       "action-createtalk": "vytvářet diskusní stránky",
+       "action-createpage": "vytvořit tuto stránku",
+       "action-createtalk": "vytvořit tuto diskusní stránku",
        "action-createaccount": "vytvořit tento uživatelský účet",
        "action-autocreateaccount": "automaticky založit tento externí uživatelský účet",
        "action-history": "prohlížet si historii této stránky",
        "recentchanges-feed-description": "Na tomto kanále sledujte poslední změny na {{grammar:6sg|{{SITENAME}}}}.",
        "recentchanges-label-newpage": "Touto editací byla založena nová stránka",
        "recentchanges-label-minor": "Toto je malá editace",
-       "recentchanges-label-bot": "Tuto editaci provedl bot",
+       "recentchanges-label-bot": "Tuto editaci provedl robot",
        "recentchanges-label-unpatrolled": "Tato změna dosud nebyla prověřena",
        "recentchanges-label-plusminus": "Velikost stránky se změnila o tolik bajtů",
        "recentchanges-legend-heading": "<strong>Legenda:</strong>",
        "upload-http-error": "Došlo k chybě HTTP: $1",
        "upload-copy-upload-invalid-domain": "Načítání kopírováním není dostupné z této domény.",
        "upload-foreign-cant-upload": "Tato wiki není nakonfigurována, aby načítala soubory na požadované vzdálené úložiště souborů.",
+       "upload-foreign-cant-load-config": "Nepodařilo se nahrát konfiguraci načítání souborů na vzdálené úložiště souborů.",
+       "upload-dialog-disabled": "Načítání souborů pomocí tohoto dialogu je na této wiki vypnuto.",
        "upload-dialog-title": "Načtení souboru",
        "upload-dialog-button-cancel": "Storno",
        "upload-dialog-button-done": "Hotovo",
        "apisandbox": "API pískoviště",
        "apisandbox-jsonly": "Pro použití API pískoviště je nutný JavaScript.",
        "apisandbox-api-disabled": "API je na tomto webu vypnuto.",
-       "apisandbox-intro": "Pomocí této stránky můžete experimentovat s <strong>webovými službami MediaWiki API</strong>.\nPodrobnosti využití API najdete v [[mw:API:Main page|jeho dokumentaci]]. Příklad: [//www.mediawiki.org/wiki/API#A_simple_example získání obsahu Hlavní stránky]. Další příklady uvidíte vybráním parametru action.\n\nUvědomte si, že přestože jste na pískovišti, mohou akce provedené na této stránce wiki změnit.",
+       "apisandbox-intro": "Pomocí této stránky můžete experimentovat s <strong>webovými službami MediaWiki API</strong>.\nPodrobnosti využití API najdete v [[mw:API:Main page|jeho dokumentaci]]. Příklad: [https://www.mediawiki.org/wiki/API#A_simple_example získání obsahu Hlavní stránky]. Další příklady uvidíte vybráním parametru action.\n\nUvědomte si, že přestože jste na pískovišti, mohou akce provedené na této stránce wiki změnit.",
        "apisandbox-fullscreen": "Rozbalit panel",
        "apisandbox-fullscreen-tooltip": "Rozbalí panel pískoviště, aby vyplnil okno prohlížeče.",
        "apisandbox-unfullscreen": "Zobrazit stránku",
        "tooltip-namespace_association": "Zaškrtnutím tohoto políčka zahrnete i diskusní či obsahový jmenný prostor příslušný k vybranému jmennému prostoru",
        "blanknamespace": "(Hlavní)",
        "contributions": "Příspěvky {{GENDER:$1|uživatele|uživatelky}}",
-       "contributions-title": "Příspěvky uživatele $1",
+       "contributions-title": "Příspěvky {{GENDER:$1|uživatele|uživatelky}} $1",
        "mycontris": "Příspěvky",
        "anoncontribs": "Příspěvky",
        "contribsub2": "{{GENDER:$3|uživatele|uživatelky}} $1 ($2)",
        "sp-contributions-username": "IP adresa nebo uživatelské jméno:",
        "sp-contributions-toponly": "Zobrazit pouze editace na aktuální revizi",
        "sp-contributions-newonly": "Zobrazit pouze editace zakládající stránku",
+       "sp-contributions-hideminor": "Skrýt malé editace",
        "sp-contributions-submit": "Zobrazit",
        "whatlinkshere": "Odkazuje sem",
        "whatlinkshere-title": "Stránky odkazující na „$1“",
        "allmessagesname": "Označení hlášení",
        "allmessagesdefault": "Původní text",
        "allmessagescurrent": "Aktuální text",
-       "allmessagestext": "Toto je seznam všech hlášení dostupných ve jmenném prostoru MediaWiki.\nPokud si přejete přispívat k lokalizaci softwaru MediaWiki, navštivte [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation lokalizační stránku na mediawiki.org] a [//translatewiki.net server translatewiki.net].",
+       "allmessagestext": "Toto je seznam všech hlášení dostupných ve jmenném prostoru MediaWiki.\nPokud si přejete přispívat k lokalizaci softwaru MediaWiki, navštivte [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation lokalizační stránku na mediawiki.org] a [https://translatewiki.net server translatewiki.net].",
        "allmessagesnotsupportedDB": "{{ns:special}}:AllMessages není podporováno, neboť wgUseDatabaseMessages je vypnuto.",
        "allmessages-filter-legend": "Filtr",
        "allmessages-filter": "Filtr podle stavu:",
        "tooltip-ca-nstab-user": "Zobrazit uživatelskou stránku",
        "tooltip-ca-nstab-media": "Zobrazit stránku souboru",
        "tooltip-ca-nstab-special": "Toto je speciální stránka, kterou nelze editovat.",
-       "tooltip-ca-nstab-project": "Zobrazit stránku o wiki",
+       "tooltip-ca-nstab-project": "Zobrazit stránku projektu",
        "tooltip-ca-nstab-image": "Zobrazit stránku souboru",
        "tooltip-ca-nstab-mediawiki": "Zobrazit systémovou zprávu",
        "tooltip-ca-nstab-template": "Zobrazit šablonu",
        "noscript.css": "/* Zde uvedené CSS bude ovlivňovat uživatele s vypnutým JavaScriptem */",
        "group-autoconfirmed.css": "/* Zde uvedené CSS bude ovlivňovat pouze automaticky schválené uživatele */",
        "group-user.css": "/* Zde uvedené CSS bude ovlivňovat pouze registrované uživatele */",
-       "group-bot.css": "/* Zde uvedené CSS bude ovlivňovat pouze boty */",
+       "group-bot.css": "/* Zde uvedené CSS bude ovlivňovat pouze roboty */",
        "group-sysop.css": "/* Zde uvedené CSS bude ovlivňovat pouze správce */",
        "group-bureaucrat.css": "/* Zde uvedené CSS bude ovlivňovat pouze byrokraty */",
        "common.js": "/* Zde uvedený JavaScript bude použit pro všechny uživatele při načtení každé stránky. */",
        "group-autoconfirmed.js": "/* Zde uvedený JavaScript bude použit pouze pro automaticky schválené uživatele */",
        "group-user.js": "/* Zde uvedený JavaScript bude použit pouze pro registrované uživatele */",
-       "group-bot.js": "/* Zde uvedený JavaScript bude použit pouze pro boty */",
+       "group-bot.js": "/* Zde uvedený JavaScript bude použit pouze pro roboty */",
        "group-sysop.js": "/* Zde uvedený JavaScript bude použit pouze pro správce */",
        "group-bureaucrat.js": "/* Zde uvedený JavaScript bude použit pouze pro byrokraty */",
        "anonymous": "{{PLURAL:$1|anonymního uživatele|anonymních uživatelů}} {{GRAMMAR:2sg|{{SITENAME}}}}",
        "mw-widgets-dateinput-placeholder-month": "RRRR-MM",
        "mw-widgets-titleinput-description-new-page": "stránka zatím neexistuje",
        "mw-widgets-titleinput-description-redirect": "přesměrování na $1",
-       "api-error-blacklisted": "Zvolte prosím jiný, popisný název.",
        "sessionmanager-tie": "Nelze kombinovat několik typů autentizace požadavků: $1.",
        "sessionprovider-generic": "relace pomocí $1",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "relace pomocí cookies",
        "authmanager-link-no-primary": "Uvedené přihlašovací údaje nelze použít pro propojení účtů.",
        "authmanager-link-not-in-progress": "Propojování účtů neprobíhá nebo se ztratila data sezení. Začněte prosím znovu od začátku.",
        "authmanager-authplugin-setpass-failed-title": "Změna hesla se nezdařila",
+       "authmanager-authplugin-setpass-failed-message": "Autentizační modul změnu hesla zamítl.",
+       "authmanager-authplugin-create-fail": "Autentizační modul založení účtu zamítl.",
+       "authmanager-authplugin-setpass-denied": "Autentizační modul neumožňuje měnit hesla.",
        "authmanager-authplugin-setpass-bad-domain": "Neplatná doména.",
        "authmanager-autocreate-noperm": "Automatické zakládání účtů není povoleno.",
        "authmanager-autocreate-exception": "Automatické založení účtu je dočasně zakázáno kvůli předchozím chybám.",
        "cannotauth-not-allowed-title": "Přístup odmítnut",
        "cannotauth-not-allowed": "Nemáte oprávnění použít tuto stránku",
        "changecredentials": "Změna přihlašovacích údajů",
-       "changecredentials-submit": "Změnit",
-       "changecredentials-submit-cancel": "Storno",
+       "changecredentials-submit": "Změnit přihlašovací údaje",
        "changecredentials-invalidsubpage": "$1 není platný typ přihlašovacích údajů.",
        "changecredentials-success": "Vaše přihlašovací údaje byly změněny.",
        "removecredentials": "Odstranění přihlašovacích údajů",
-       "removecredentials-submit": "Odstranit",
-       "removecredentials-submit-cancel": "Storno",
+       "removecredentials-submit": "Odstranit přihlašovací údaje",
        "removecredentials-invalidsubpage": "$1 není platný typ přihlašovacích údajů.",
        "removecredentials-success": "Vaše přihlašovací údaje byly odstraněny.",
        "credentialsform-provider": "Typ přihlašovacích údajů:",
        "linkaccounts-success-text": "Účet byl propojen.",
        "linkaccounts-submit": "Propojit účty",
        "unlinkaccounts": "Zrušení propojení účtů",
-       "unlinkaccounts-success": "Propojení účtu bylo zrušeno."
+       "unlinkaccounts-success": "Propojení účtu bylo zrušeno.",
+       "authenticationdatachange-ignored": "Změna autentizačních údajů nebyla zpracována. Možná není nakonfigurován žádný poskytovatel?"
 }
index 99eac43..44f9503 100644 (file)
        "badtitle": "Òchëbny titel",
        "badtitletext": "Pòdóny titel starnë je òchëbny. Gwësno są w nim znaczi, chtërnëch brëkòwanié je zakôzané abò je pùsti.",
        "viewsource": "Zdrojowi tekst",
-       "editinginterface": "'''ÒSTRZÉGA:''' Editëjesz starnã, jakô zamëkô w se tekst interfejsu softwôrë. Wszëtczé zmianë tu zrobioné bãdze widzec na interfejse jinszëch brëkòwników.\nPrzemëszlë dolmaczënié na [//translatewiki.net/wiki/Main_Page?setlang=csb translatewiki.net], ekstra ùdbie lokalizacëji softwôrë MediaWiki.",
+       "editinginterface": "'''ÒSTRZÉGA:''' Editëjesz starnã, jakô zamëkô w se tekst interfejsu softwôrë. Wszëtczé zmianë tu zrobioné bãdze widzec na interfejse jinszëch brëkòwników.\nPrzemëszlë dolmaczënié na [https://translatewiki.net/wiki/Main_Page?setlang=csb translatewiki.net], ekstra ùdbie lokalizacëji softwôrë MediaWiki.",
        "logouttext": "'''Jes wëlogòwóny.'''\nMòżesz robic dali na {{SITENAME}} jakno anonimòwi brëkòwnik abò sã <span class='plainlinks'>[$1 wlogòwac]</span> znowa jakno równy, a bò jinszi brëkòwnik.\nBôczë, że do czasu wëczëszczenia pòdrãczny pamiãcë przezérnika, niejedné starnë bãdą wëzdrzëc jakbë të bëł wlogòwóny.",
        "yourname": "Miono brëkòwnika",
        "yourpassword": "Twòja parola",
        "allmessagesname": "Miono",
        "allmessagesdefault": "Domëslny tekst",
        "allmessagescurrent": "Aktualny tekst",
-       "allmessagestext": "To je zestôwk systemòwëch ògłosów przistãpnëch w rumie mionów MediaWiki.\nProszã zazdrzë na [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Lokalizacëjô MediaWiki] ë [//translatewiki.net translatewiki.net] jeżlë chcesz dolmaczëc softwôrã MediaWiki.",
+       "allmessagestext": "To je zestôwk systemòwëch ògłosów przistãpnëch w rumie mionów MediaWiki.\nProszã zazdrzë na [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Lokalizacëjô MediaWiki] ë [https://translatewiki.net translatewiki.net] jeżlë chcesz dolmaczëc softwôrã MediaWiki.",
        "allmessagesnotsupportedDB": "'''{{ns:special}}:Allmessages''' nie mòże bëc brëkòwónô, temù że '''$wgUseDatabaseMessages''' je wëłączony.",
        "thumbnail-more": "Zwiszi",
        "import": "Impòrtëjë starnë",
index 0981b43..d614209 100644 (file)
        "missingcommenttext": "Аяларах, тархасшăн, хăвар пĕлтерĕве çырăр.",
        "summary-preview": "Ăнлантару çапла пулĕ:",
        "subject-preview": "Статья ячĕ çапла пулĕ:",
-       "blockedtitle": "Хутшăнакана ĕçлеме чарнă",
+       "blockedtitle": "Хутшăнакана чарса хунă",
        "blockedtext": "'''Ку аккаунта е IP-адреса ĕçлеме чарнă.'''\n\n$1 администратор ĕçлеме чарнă. Сăлтавĕ çакă: ''«$2»''.\n\n* Чарнă вăхăт: $8\n* Çак вăхăтчен чарнă: $6\n* Çакна чарнă: $7\n\n$1 хутшăнакан патне, е ытти [[{{MediaWiki:Grouppage-sysop}}|администраторсем]] патне эсир çыру ярса меншĕн ĕçлеме чарнине сӳтсе явма пултаратăр.\n\nАсăрхар: [[Special:Preferences|хăвăрăн ĕнерлевсенче]] эл. почта адресне çирĕплетмен пулсан, е сайта кĕмен пулсан — администратор патне çыру яраймастăр. Администратор сире çыру яма чарнă пулсан — ку хутĕнче те çыру яраймăр.\n\nСирĕн IP-адрес — $3, чару идентификаторĕ — #$5. Çырусенче, тархасшăн, вĕсене пĕлтерĕр.",
        "blockednoreason": "сăлтавне пĕлтермен",
        "loginreqtitle": "Сайта кĕмелле",
        "linksearch-ok": "Шырамалли",
        "listusers-submit": "Кăтарт",
        "listusers-noresult": "Хутшăнакансем тупăнмарĕç.",
+       "listusers-blocked": "(чарса хунă)",
+       "activeusers-count": "$1 {{PLURAL:$1|тӳрлетни|тӳрлетнисем}} юлашки {{PLURAL:$3|кун|$3 кунсенче}}",
        "activeusers-hidesysops": "Администраторĕсене пытар",
        "listgrouprights-group": "Ушкăн",
        "listgrouprights-helppage": "Help:Ушкăн прависем",
index 43b294c..c643580 100644 (file)
        "protectedpagetext": "Mae'r dudalen hon wedi'i diogelu rhag cael ei thrin a'i thrafod.",
        "viewsourcetext": "Cewch weld a chopïo côd y ddalen:",
        "viewyourtext": "Cewch weld a copïo ffynhonnell ''eich golygiadau'' i'r dudalen hon:",
-       "protectedinterface": "Testun ar gyfer rhyngwyneb y wici yw cynnwys y dudalen hon. Clowyd y dudalen er mwyn ei diogeli. Os am gyfieithu'r neges neu ei newid ym mhob wici yn hytrach nag yn hwn yn unig, defnyddiwch [//translatewiki.net/ translatewiki.net], y prosiect MediaWiki sy'n hyrwyddo'r gwaith cyfieithu.",
+       "protectedinterface": "Testun ar gyfer rhyngwyneb y wici yw cynnwys y dudalen hon. Clowyd y dudalen er mwyn ei diogeli. Os am gyfieithu'r neges neu ei newid ym mhob wici yn hytrach nag yn hwn yn unig, defnyddiwch [https://translatewiki.net/ translatewiki.net], y prosiect MediaWiki sy'n hyrwyddo'r gwaith cyfieithu.",
        "editinginterface": "<strong>Dalier sylw:</strong> Rydych yn golygu tudalen sy'n rhan o destun rhyngwyneb y meddalwedd. Bydd newidiadau i'r dudalen hon yn effeithio ar y rhyngwyneb a ddefnyddir ar y wici hwn yn unig.",
-       "translateinterface": "I ychwanegu neu newid y cyfieithiad ar gyfer pob wici, defnyddiwch [//translatewiki.net/ translatewiki.net], sef prosiect lleol MediaWiki.",
+       "translateinterface": "I ychwanegu neu newid y cyfieithiad ar gyfer pob wici, defnyddiwch [https://translatewiki.net/ translatewiki.net], sef prosiect lleol MediaWiki.",
        "cascadeprotected": "Diogelwyd y dudalen hon rhag ei newid, oherwydd ei bod wedi ei chynnwys yn y {{PLURAL:$1|dudalen ganlynol|dudalen ganlynol|tudalennau canlynol|tudalennau canlynol|tudalennau canlynol|tudalennau canlynol}}, a {{PLURAL:$1|honno yn ei thro wedi ei|honno yn ei thro wedi ei|rheiny yn eu tro wedi eu|rheiny yn eu tro wedi eu|rheiny yn eu tro wedi eu|rheiny yn eu tro wedi eu}} diogelu, a'r dewisiad 'sgydol' ynghynn:\n$2",
        "namespaceprotected": "Nid oes caniatâd gennych i olygu tudalennau yn y parth '''$1'''.",
        "customcssprotected": "Nid oes caniatâd ganddoch i olygu'r dudalen CSS hon oherwydd bod gosodiadau personol defnyddiwr arall arno.",
        "resetpass-temp-password": "Cyfrinair dros dro:",
        "resetpass-abort-generic": "Mae estyniad wedi atal newid y cyfrinair.",
        "resetpass-expired": "Mae oes eich cyfrinair wedi dod i ben. Gosodwch gyfrinair newydd i fewngofnodi.",
-       "resetpass-expired-soft": "Mae eich cyfrinair wedi dod i ben ac mae'n rhaid ei ailosod. Dewisiwch gyfrinair newydd sbon nawr, neu cliciwch \"{{int:resetpass-submit-cancel}}\" a'i ailosod rywdro eto.",
-       "resetpass-validity-soft": "Nid yw eich cyfrinair $1 yn dal ddilys.\n\nDewisiwch gyfrinair newydd nawr, neu gliciwch \"{{int:resetpass-submit-cancel}}\" i'w ailosod yn nes ymlaen.",
+       "resetpass-expired-soft": "Mae eich cyfrinair wedi dod i ben ac mae'n rhaid ei ailosod. Dewisiwch gyfrinair newydd sbon nawr, neu cliciwch \"{{int:authprovider-resetpass-skip-label}}\" a'i ailosod rywdro eto.",
+       "resetpass-validity-soft": "Nid yw eich cyfrinair $1 yn dal ddilys.\n\nDewisiwch gyfrinair newydd nawr, neu gliciwch \"{{int:authprovider-resetpass-skip-label}}\" i'w ailosod yn nes ymlaen.",
        "passwordreset": "Ailosod cyfrinair",
        "passwordreset-text-one": "Cwblhewch y ffurflen hon er mwyn ailosod eich cyfrinair.",
        "passwordreset-text-many": "{{PLURAL:$1|Llanwch un o'r blychau er mwyn derbyn cyfrinair dros dro mewn ebost.}}",
        "allmessagesname": "Enw",
        "allmessagesdefault": "Testun rhagosodedig",
        "allmessagescurrent": "Testun cyfredol",
-       "allmessagestext": "Dyma restr o'r holl negeseuon yn y parth MediaWici.\nOs ydych am gyfrannu at y gwaith o gyfieithu ar gyfer holl prosiectau MediaWiki ar y cyd, mae croeso i chi ymweld â [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] a [//translatewiki.net translatewiki.net].",
+       "allmessagestext": "Dyma restr o'r holl negeseuon yn y parth MediaWici.\nOs ydych am gyfrannu at y gwaith o gyfieithu ar gyfer holl prosiectau MediaWiki ar y cyd, mae croeso i chi ymweld â [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] a [https://translatewiki.net translatewiki.net].",
        "allmessagesnotsupportedDB": "Nid yw '''{{ns:special}}:PobNeges''' yn cael ei gynnal gan fod '''$wgUseDatabaseMessages''' wedi ei ddiffodd.",
        "allmessages-filter-legend": "Hidl",
        "allmessages-filter": "Hidlo yn ôl eu cyflwr addasu:",
index a168d1b..aa6b2f0 100644 (file)
        "protectedpagetext": "Denne side er blevet beskyttet, for at forhindre redigering eller andre handlinger.",
        "viewsourcetext": "Du kan se og kopiere kildekoden til siden:",
        "viewyourtext": "Du kan se og kopiere kildekoden for <strong>dine redigeringer</strong> til denne side.",
-       "protectedinterface": "Denne side indeholder teksten i brugergrænsefladen til softwaren på denne wiki, og er beskyttet for at forhindre misbrug.\nHvis du vil tilføje eller ændre oversættelser for alle wiki-websteder, så brug venligst [//translatewiki.net/ translatewiki.net], projektet for oversættelse af MediaWiki.",
+       "protectedinterface": "Denne side indeholder teksten i brugergrænsefladen til softwaren på denne wiki, og er beskyttet for at forhindre misbrug.\nHvis du vil tilføje eller ændre oversættelser for alle wiki-websteder, så brug venligst [https://translatewiki.net/ translatewiki.net], projektet for oversættelse af MediaWiki.",
        "editinginterface": "<strong>Advarsel:</strong> Du redigerer en side, som bruges til at give interface-tekst til softwaren.\nÆndringer på denne side vil påvirke udseendet af brugergrænsefladen for andre brugere på denne wiki.",
-       "translateinterface": "For at tilføje eller ændre oversættelser for alle wikier, skal du bruge [//translatewiki.net/ translatewiki.net], der er MediaWikis lokaliseringsprojekt.",
+       "translateinterface": "For at tilføje eller ændre oversættelser for alle wikier, skal du bruge [https://translatewiki.net/ translatewiki.net], der er MediaWikis lokaliseringsprojekt.",
        "cascadeprotected": "Denne side er skrivebeskyttet, da den er indeholdt i nedenstående {{PLURAL:$1|side|sider}}, som er skrivebeskyttet med tilvalg af \"nedarvende sidebeskyttelse\":\n$2",
        "namespaceprotected": "Du har ikke rettigheder til at redigere sider i $1-navnerummet.",
        "customcssprotected": "Du har ikke tilladelse til at redigere denne CSS-side, da den indeholder en anden brugers personlige indstillinger.",
        "resetpass-temp-password": "Midlertidig adgangskode",
        "resetpass-abort-generic": "Ændring af adgangskode er blevet afbrudt af en udvidelse",
        "resetpass-expired": "Din adgangskode er udløbet. Angiv en ny adgangskode for at logge på.",
-       "resetpass-expired-soft": "Din adgangskode er udløbet og skal ændres. Vær venlig at ændre den nu, eller tryk \"{{int:resetpass-submit-cancel}}\" for at ændre den senere.",
-       "resetpass-validity-soft": "Din adgangskode er ikke gyldig:  $1 \n\nVær venlig at ændre den nu, eller tryk \"{{int:resetpass-submit-cancel}}\" for at ændre den senere.",
+       "resetpass-expired-soft": "Din adgangskode er udløbet og skal ændres. Vær venlig at ændre den nu, eller tryk \"{{int:authprovider-resetpass-skip-label}}\" for at ændre den senere.",
+       "resetpass-validity-soft": "Din adgangskode er ikke gyldig:  $1 \n\nVær venlig at ændre den nu, eller tryk \"{{int:authprovider-resetpass-skip-label}}\" for at ændre den senere.",
        "passwordreset": "Nulstil adgangskode",
        "passwordreset-text-one": "Udfyld denne formular for at nulstille din adgangskode.",
        "passwordreset-text-many": "{{PLURAL:$1|Udfyld et af felterne for at modtage en midlertidig adgangskode via e-mail.}}",
        "apihelp-no-such-module": "Modul \"$1\" ikke fundet.",
        "apisandbox": "API-sandkassen",
        "apisandbox-api-disabled": "API er deaktiveret på dette websted.",
-       "apisandbox-intro": "Brug denne side til at eksperimentere med '''MediaWiki web service API'''.\nVi henviser til [//www.mediawiki.org/wiki/API:Main_page dokumentationen af API] for yderligere oplysninger om brug af API.  Eksempel: [//www.mediawiki.org/wiki/API#A_simple_example få indholdet af en forside]. Vælg en handling at se flere eksempler.\n\nBemærk, at selv om dette er en sandkasse, vil handlinger du udfører på denne side redigere wikien.",
+       "apisandbox-intro": "Brug denne side til at eksperimentere med '''MediaWiki web service API'''.\nVi henviser til [https://www.mediawiki.org/wiki/API:Main_page dokumentationen af API] for yderligere oplysninger om brug af API.  Eksempel: [https://www.mediawiki.org/wiki/API#A_simple_example få indholdet af en forside]. Vælg en handling at se flere eksempler.\n\nBemærk, at selv om dette er en sandkasse, vil handlinger du udfører på denne side redigere wikien.",
        "apisandbox-unfullscreen": "Vis side",
        "apisandbox-submit": "Lav forespørgsel",
        "apisandbox-reset": "Ryd",
        "allmessagesname": "Navn",
        "allmessagesdefault": "Standardtekst",
        "allmessagescurrent": "Nuværende tekst",
-       "allmessagestext": "Dette er en liste med alle systembeskeder i MediaWiki-navnerummet.\nBesøg venligst [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki-lokalisering] og [//translatewiki.net translatewiki.net] hvis du ønsker at bidrage til den generelle lokalisering (oversættelse og andre lokale tilpasninger) af MediaWiki.",
+       "allmessagestext": "Dette er en liste med alle systembeskeder i MediaWiki-navnerummet.\nBesøg venligst [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki-lokalisering] og [https://translatewiki.net translatewiki.net] hvis du ønsker at bidrage til den generelle lokalisering (oversættelse og andre lokale tilpasninger) af MediaWiki.",
        "allmessagesnotsupportedDB": "{{ns:special}}:AllMessages ikke understøttet fordi wgUseDatabaseMessages er slået fra.",
        "allmessages-filter-legend": "Filtrér",
        "allmessages-filter": "Filtrér efter tilpasningsstatus:",
index 29a9b07..6132476 100644 (file)
@@ -34,7 +34,7 @@
        "cannotdelete": "Die Seite oder Datei «$1» kann nicht gelöscht werden.\nMöglicherweise wurde sie bereits von jemand anderem gelöscht.",
        "cannotdelete-title": "Seite «$1» kann nicht gelöscht werden",
        "actionthrottledtext": "Im Rahmen einer Anti-Spam-Massnahme oder aufgrund eines Missbrauchsfilters kann diese Aktion in einem kurzen Zeitabstand nur begrenzt oft ausgeführt werden. Diese Grenze hast du überschritten.\nBitte versuche es in ein paar Minuten erneut.",
-       "editinginterface": "'''Warnung:''' Diese Seite enthält von der MediaWiki-Software genutzten Text.\nÄnderungen auf dieser Seite wirken sich auf die Benutzeroberfläche dieses Wikis aus.\nNutze bitte [//translatewiki.net/ translatewiki.net], das Lokalisierungsprojekt von MediaWiki, um Übersetzungen für alle Wikis hinzuzufügen oder zu ändern.",
+       "editinginterface": "'''Warnung:''' Diese Seite enthält von der MediaWiki-Software genutzten Text.\nÄnderungen auf dieser Seite wirken sich auf die Benutzeroberfläche dieses Wikis aus.\nNutze bitte [https://translatewiki.net/ translatewiki.net], das Lokalisierungsprojekt von MediaWiki, um Übersetzungen für alle Wikis hinzuzufügen oder zu ändern.",
        "titleprotected": "Eine Seite mit diesem Namen kann nicht angelegt werden.\nDie Sperre wurde durch [[User:$1|$1]] mit der Begründung ''«$2»'' eingerichtet.",
        "filereadonlyerror": "Die Datei «$1» kann nicht verändert werden, da auf das Dateirepositorium «$2» nur Lesezugriff möglich ist.\n\nDer Administrator, der den Schreibzugriff sperrte, gab folgenden Grund an: «$3».",
        "createacct-realname": "Richtiger Name (optional)",
index 8dc362c..db62e1a 100644 (file)
@@ -35,8 +35,8 @@
        "actionthrottledtext": "Im Rahmen einer Anti-Spam-Maßnahme kann diese Aktion in einem kurzen Zeitabstand nur begrenzt oft ausgeführt werden. Diese Grenze haben Sie überschritten.\nBitte versuchen Sie es in ein paar Minuten erneut.",
        "viewsourcetext": "Sie können den Quelltext dieser Seite betrachten und kopieren:",
        "viewyourtext": "Sie können den Quelltext '''Ihrer Bearbeitung''' dieser Seite betrachten und kopieren:",
-       "protectedinterface": "Diese Seite enthält Text für die Benutzeroberfläche der Software auf diesem Wiki und ist geschützt, um Missbrauch vorzubeugen.\nNutzen Sie bitte [//translatewiki.net/ translatewiki.net], das Lokalisierungsprojekt von MediaWiki, um Übersetzungen für alle Wikis hinzuzufügen oder zu ändern.",
-       "editinginterface": "'''Warnung:''' Diese Seite enthält von der MediaWiki-Software genutzten Text.\nÄnderungen auf dieser Seite wirken sich auf die Benutzeroberfläche dieses Wikis aus.\nNutzen Sie bitte [//translatewiki.net/ translatewiki.net], das Lokalisierungsprojekt von MediaWiki, um Übersetzungen für alle Wikis hinzuzufügen oder zu ändern.",
+       "protectedinterface": "Diese Seite enthält Text für die Benutzeroberfläche der Software auf diesem Wiki und ist geschützt, um Missbrauch vorzubeugen.\nNutzen Sie bitte [https://translatewiki.net/ translatewiki.net], das Lokalisierungsprojekt von MediaWiki, um Übersetzungen für alle Wikis hinzuzufügen oder zu ändern.",
+       "editinginterface": "'''Warnung:''' Diese Seite enthält von der MediaWiki-Software genutzten Text.\nÄnderungen auf dieser Seite wirken sich auf die Benutzeroberfläche dieses Wikis aus.\nNutzen Sie bitte [https://translatewiki.net/ translatewiki.net], das Lokalisierungsprojekt von MediaWiki, um Übersetzungen für alle Wikis hinzuzufügen oder zu ändern.",
        "namespaceprotected": "Sie haben nicht die erforderliche Berechtigung, um Seiten im Namensraum '''$1''' bearbeiten zu können.",
        "customcssprotected": "Sie haben nicht die Berechtigung, diese CSS enthaltende Seite zu bearbeiten, da sie die persönlichen Einstellungen eines anderen Benutzers enthält.",
        "customjsprotected": "Sie haben nicht die Berechtigung, diese JavaScript enthaltende Seite zu bearbeiten, da es sich hierbei um die persönlichen Einstellungen eines anderen Benutzers handelt.",
        "delete_and_move_text": "== Löschung erforderlich ==\n\nDie Seite „[[:$1]]“ existiert bereits. Möchten Sie diese löschen, um die Seite verschieben zu können?",
        "file-exists-sharedrepo": "Der gewählte Dateiname wird bereits in einem gemeinsam genutzten Repositorium verwendet.\nBitte wählen Sie einen anderen Namen.",
        "exporttext": "Mit dieser Spezialseite können Sie den Text inklusive der Versionsgeschichte einzelner Seiten in eine XML-Datei exportieren.\nDie Datei kann in ein anderes MediaWiki-Wiki über die [[Special:Import|Importfunktion]] eingespielt werden.\n\nTragen Sie den oder die entsprechenden Seitentitel in das folgende Textfeld ein (pro Zeile jeweils nur eine Seite).\n\nAlternativ ist der Export auch mit der Syntax [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] möglich, beispielsweise für die [[{{MediaWiki:Mainpage}}]].",
-       "allmessagestext": "Dies ist eine Liste der MediaWiki-Systemtexte.\nBitte besuchen Sie die Seiten [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki-Lokalisierung] und [//translatewiki.net translatewiki.net], sofern Sie sich an der Lokalisierung von MediaWiki beteiligen möchten.",
+       "allmessagestext": "Dies ist eine Liste der MediaWiki-Systemtexte.\nBitte besuchen Sie die Seiten [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki-Lokalisierung] und [https://translatewiki.net translatewiki.net], sofern Sie sich an der Lokalisierung von MediaWiki beteiligen möchten.",
        "import-interwiki-text": "Wählen Sie ein Wiki und eine Seite zum Importieren aus.\nDie Versionsdaten und Benutzernamen bleiben dabei erhalten.\nAlle Transwiki-Import-Aktionen werden im [[Special:Log/import|Import-Logbuch]] protokolliert.",
        "import-token-mismatch": "Verlust der Sessiondaten. Bitte versuchen Sie es erneut.",
        "import-error-edit": "Die Seite „$1“ wurde nicht importiert, da Sie nicht berechtigt sind, sie zu bearbeiten.",
index d85d458..3f186c9 100644 (file)
@@ -87,7 +87,8 @@
                        "FriedhelmW",
                        "Schniggendiller",
                        "Predatorix",
-                       "Matma Rex"
+                       "Matma Rex",
+                       "ThePiscin"
                ]
        },
        "tog-underline": "Links unterstreichen:",
        "tog-hidepatrolled": "Kontrollierte Änderungen in den „Letzten Änderungen“ ausblenden",
        "tog-newpageshidepatrolled": "Kontrollierte Seiten bei den „Neuen Seiten“ ausblenden",
        "tog-hidecategorization": "Kategorisierungen von Seiten ausblenden",
-       "tog-extendwatchlist": "In der Beobachtungsliste alle und nicht nur die aktuellsten Änderungen anzeigen",
+       "tog-extendwatchlist": "Alle und nicht nur die aktuellsten Änderungen in der Beobachtungsliste anzeigen",
        "tog-usenewrc": "Änderungen auf „Letzte Änderungen“ und der Beobachtungsliste nach Seite gruppieren",
        "tog-numberheadings": "Überschriften automatisch nummerieren",
-       "tog-showtoolbar": "Bearbeiten-Werkzeugleiste anzeigen",
+       "tog-showtoolbar": "Bearbeiten-Werkzeugleiste aktivieren",
        "tog-editondblclick": "Seiten mit Doppelklick bearbeiten",
        "tog-editsectiononrightclick": "Einzelne Abschnitte per Rechtsklick bearbeiten",
        "tog-watchcreations": "Selbst erstellte Seiten und hochgeladene Dateien automatisch beobachten",
        "tog-watchdefault": "Selbst geänderte Seiten und Dateien automatisch beobachten",
        "tog-watchmoves": "Selbst verschobene Seiten und Dateien automatisch beobachten",
        "tog-watchdeletion": "Selbst gelöschte Seiten und Dateien automatisch beobachten",
-       "tog-watchuploads": "Neue hochgeladene Dateien zu meiner Beobachtungsliste hinzufügen",
+       "tog-watchuploads": "Selbst hochgeladene Dateien automatisch beobachten",
        "tog-watchrollback": "Seiten, bei denen ich eine Zurücksetzung durchgeführt habe, automatisch beobachten",
        "tog-minordefault": "Eigene Änderungen standardmäßig als geringfügig markieren",
        "tog-previewontop": "Vorschau oberhalb des Bearbeitungsfensters anzeigen",
        "tog-watchlisthidebots": "Bearbeitungen durch Bots in der Beobachtungsliste ausblenden",
        "tog-watchlisthideminor": "Kleine Bearbeitungen in der Beobachtungsliste ausblenden",
        "tog-watchlisthideliu": "Bearbeitungen angemeldeter Benutzer in der Beobachtungsliste ausblenden",
-       "tog-watchlistreloadautomatically": "Die Beobachtungsliste automatisch neu laden, wenn ein Filter geändert wurde (erfordert JavaScript)",
+       "tog-watchlistreloadautomatically": "Sofern ein Filter geändert wurde, die Beobachtungsliste automatisch neu laden (erfordert JavaScript)",
        "tog-watchlisthideanons": "Bearbeitungen anonymer Benutzer (IP-Adressen) in der Beobachtungsliste ausblenden",
        "tog-watchlisthidepatrolled": "Kontrollierte Änderungen in der Beobachtungsliste ausblenden",
-       "tog-watchlisthidecategorization": "Kategorisierungen von Seiten ausblenden",
+       "tog-watchlisthidecategorization": "Kategorisierungen von Seiten in der Beobachtungsliste ausblenden",
        "tog-ccmeonemails": "Schicke mir Kopien der E-Mails, die ich anderen Benutzern sende",
        "tog-diffonly": "Beim Versionsvergleich nur die Unterschiede und nicht die vollständige Seite anzeigen",
        "tog-showhiddencats": "Versteckte Kategorien anzeigen",
        "databaseerror-query": "Abfrage: $1",
        "databaseerror-function": "Funktion: $1",
        "databaseerror-error": "Fehler: $1",
-       "transaction-duration-limit-exceeded": "Um eine große Verzögerung in der Datenreplikation zu vermeiden, wurde diese Transaktion abgebrochen. Die Schreibdauer ($1) hat die Grenze von {{PLURAL:$2|einer Sekunde|$2 Sekunden}} überschritten. Falls du viele Objekte auf einmal änderst, versuche stattdessen, die Änderungen auf mehrere Operationen aufzuteilen.",
+       "transaction-duration-limit-exceeded": "Um eine große Verzögerung in der Datenreplikation zu vermeiden, wurde diese Transaktion abgebrochen. Die Schreibdauer ($1) hat die Grenze von $2 Sekunden überschritten. Falls du viele Objekte auf einmal änderst, versuche stattdessen, die Änderungen auf mehrere Operationen aufzuteilen.",
        "laggedslavemode": "<strong>Achtung:</strong> Die angezeigte Seite könnte unter Umständen nicht die letzten Bearbeitungen enthalten.",
        "readonly": "Datenbank gesperrt",
        "enterlockreason": "Bitte gib einen Grund ein, warum die Datenbank gesperrt werden soll und eine Abschätzung über die Dauer der Sperrung",
        "protectedpagetext": "Diese Seite wurde geschützt, um Bearbeitungen sowie andere Aktionen zu verhindern.",
        "viewsourcetext": "Du kannst den Quelltext dieser Seite betrachten und kopieren.",
        "viewyourtext": "Du kannst den Quelltext <strong>deiner Bearbeitungen</strong> auf dieser Seite betrachten und kopieren.",
-       "protectedinterface": "Diese Seite enthält Text für die Benutzeroberfläche der Software auf diesem Wiki und ist geschützt, um Missbrauch vorzubeugen.\nNutze bitte [//translatewiki.net/ translatewiki.net], das Lokalisierungsprojekt von MediaWiki, um Übersetzungen für alle Wikis hinzuzufügen oder zu ändern.",
+       "protectedinterface": "Diese Seite enthält Text für die Benutzeroberfläche der Software auf diesem Wiki und ist geschützt, um Missbrauch vorzubeugen.\nNutze bitte [https://translatewiki.net/ translatewiki.net], das Lokalisierungsprojekt von MediaWiki, um Übersetzungen für alle Wikis hinzuzufügen oder zu ändern.",
        "editinginterface": "<strong>Warnung:</strong> Diese Seite enthält von der MediaWiki-Software genutzten Text.\nÄnderungen auf dieser Seite wirken sich auf die Benutzeroberfläche dieses Wikis aus.",
-       "translateinterface": "Um Übersetzungen für alle Wikis hinzuzufügen oder zu ändern, verwende bitte [//translatewiki.net/ translatewiki.net], das MediaWiki-Lokalisierungsprojekt.",
+       "translateinterface": "Um Übersetzungen für alle Wikis hinzuzufügen oder zu ändern, verwende bitte [https://translatewiki.net/ translatewiki.net], das MediaWiki-Lokalisierungsprojekt.",
        "cascadeprotected": "Diese Seite ist zur Bearbeitung gesperrt. Sie ist in die {{PLURAL:$1|folgende Seite|folgenden Seiten}} eingebunden, die mittels der Kaskadensperroption geschützt {{PLURAL:$1|ist|sind}}:\n$2",
        "namespaceprotected": "Du hast nicht die erforderliche Berechtigung, um Seiten im Namensraum <strong>$1</strong> bearbeiten zu können.",
        "customcssprotected": "Du hast nicht die Berechtigung, diese CSS enthaltende Seite zu bearbeiten, da sie die persönlichen Einstellungen eines anderen Benutzers enthält.",
        "resetpass-temp-password": "Temporäres Passwort:",
        "resetpass-abort-generic": "Die Passwortänderung wurde durch eine Erweiterung abgebrochen.",
        "resetpass-expired": "Dein Passwort ist abgelaufen. Bitte lege ein neues Passwort zur Anmeldung fest.",
-       "resetpass-expired-soft": "Dein Passwort ist abgelaufen und muss zurückgesetzt werden. Bitte wähle jetzt ein neues Passwort aus oder klicke auf „{{int:resetpass-submit-cancel}}“, um es später zurückzusetzen.",
-       "resetpass-validity-soft": "Dein Passwort ist nicht gültig: $1\n\nBitte wähle jetzt ein neues Passwort oder klicke auf „{{int:resetpass-submit-cancel}}“, um es später zurückzusetzen.",
+       "resetpass-expired-soft": "Dein Passwort ist abgelaufen und muss zurückgesetzt werden. Bitte wähle jetzt ein neues Passwort aus oder klicke auf „{{int:authprovider-resetpass-skip-label}}“, um es später zurückzusetzen.",
+       "resetpass-validity-soft": "Dein Passwort ist ungültig: $1\n\nBitte wähle jetzt ein neues Passwort oder klicke auf „{{int:authprovider-resetpass-skip-label}}“, um es später zurückzusetzen.",
        "passwordreset": "Passwort zurücksetzen",
        "passwordreset-text-one": "Fülle dieses Formular aus, um ein temporäres Passwort per E-Mail zu erhalten.",
        "passwordreset-text-many": "{{PLURAL:$1|Fülle eines der Felder aus, um ein temporäres Passwort per E-Mail zugesandt zu bekommen.}}",
        "minoredit": "Nur Kleinigkeiten wurden verändert",
        "watchthis": "Diese Seite beobachten",
        "savearticle": "Seite speichern",
+       "savechanges": "Änderungen speichern",
        "publishpage": "Seite veröffentlichen",
+       "publishchanges": "Änderungen veröffentlichen",
        "preview": "Vorschau",
        "showpreview": "Vorschau zeigen",
        "showdiff": "Änderungen zeigen",
        "content-model-css": "CSS",
        "content-json-empty-object": "Leeres Objekt",
        "content-json-empty-array": "Leeres Array",
+       "deprecated-self-close-category": "Seiten, die ungültige selbstschließende HTML-Tags verwenden",
+       "deprecated-self-close-category-desc": "Die Seite enthält ungültige selbstschließende HTML-Tags wie <code>&lt;b/></code> oder <code>&lt;span/></code>. Das Verhalten dieser Tags wird bald geändert, um mit der HTML5-Spezifikation konsistent zu sein, so dass ihre Verwendung im Wikitext veraltet ist.",
        "duplicate-args-warning": "<strong>Warnung:</strong> [[:$1]] ruft [[:$2]] mit mehr als einem Wert für den Parameter „$3“ auf. Nur der letzte angegebene Wert wird verwendet.",
        "duplicate-args-category": "Seiten, die doppelte Argumente in Vorlagenaufrufen verwenden",
        "duplicate-args-category-desc": "Die Seite enthält Vorlagenaufrufe, die Duplikate von Argumenten verwenden, wie <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> oder <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "prefs-rc": "Letzte Änderungen",
        "prefs-watchlist": "Beobachtungsliste",
        "prefs-editwatchlist": "Beobachtungsliste bearbeiten",
-       "prefs-editwatchlist-label": "Einträge auf der Beobachtungsliste bearbeiten:",
+       "prefs-editwatchlist-label": "Einträge auf der Beobachtungsliste:",
        "prefs-editwatchlist-edit": "ansehen und selektiv entfernen",
        "prefs-editwatchlist-raw": "unformatiert bearbeiten",
        "prefs-editwatchlist-clear": "vollständig entfernen",
        "rightslogtext": "Dies ist das Logbuch der Änderungen der Benutzerrechte.",
        "action-read": "die Seite zu lesen",
        "action-edit": "die Seite zu bearbeiten",
-       "action-createpage": "Seiten zu erstellen",
-       "action-createtalk": "Diskussionsseiten zu erstellen",
+       "action-createpage": "diese Seite zu erstellen",
+       "action-createtalk": "diese Diskussionsseite zu erstellen",
        "action-createaccount": "ein Benutzerkonto zu erstellen",
        "action-autocreateaccount": "automatisch dieses externe Benutzerkonto zu erstellen",
        "action-history": "die Versionsgeschichte dieser Seite anzusehen",
        "upload-http-error": "Ein HTTP-Fehler ist aufgetreten: $1",
        "upload-copy-upload-invalid-domain": "Als Kopie hochladbare Dateien sind über diese Domain nicht verfügbar.",
        "upload-foreign-cant-upload": "Dieses Wiki ist nicht konfiguriert, um Dateien auf das gewünschte fremde Dateirepositorium hochzuladen.",
+       "upload-foreign-cant-load-config": "Die Konfiguration für Dateiuploads in das fremde Dateirepositorium konnte nicht geladen werden.",
+       "upload-dialog-disabled": "Dateiuploads mit diesem Dialog sind auf diesem Wiki deaktiviert.",
        "upload-dialog-title": "Datei hochladen",
        "upload-dialog-button-cancel": "Abbrechen",
        "upload-dialog-button-done": "Schließen",
        "prefixindex": "Alle Seiten (mit Präfix)",
        "prefixindex-namespace": "Alle Seiten mit Präfix (Namensraum $1)",
        "prefixindex-submit": "Anzeigen",
-       "prefixindex-strip": "Präfix in der Liste abschneiden",
+       "prefixindex-strip": "Suchpräfix ausblenden",
        "shortpages": "Kurze Seiten",
        "longpages": "Lange Seiten",
        "deadendpages": "Nicht verlinkende Seiten",
        "apisandbox": "API-Spielwiese",
        "apisandbox-jsonly": "Zur Nutzung der API-Spielwiese ist JavaScript erforderlich.",
        "apisandbox-api-disabled": "Die API wurde auf diesem Wiki deaktiviert.",
-       "apisandbox-intro": "Diese Seite kannst du für Versuche mit der <strong>MediaWiki-API</strong> verwenden.\nDie [[mw:API:Main page|Dokumentation zur API]] enthält weitere Hinweise zu ihrer Nutzung. Beispiel: [//www.mediawiki.org/wiki/API:Main_page/de#Ein_einfaches_Beispiel Den Inhalt der Hauptseite abrufen]. Für weitere Beispiele eine der verfügbaren Aktionen auswählen.\n\nObwohl dies eine Spielwiese ist, bedenke, dass Aktionen, die du auf dieser Seite durchführst, das Wiki verändern.",
+       "apisandbox-intro": "Diese Seite kannst du für Versuche mit der <strong>MediaWiki-API</strong> verwenden.\nDie [[mw:API:Main page|Dokumentation zur API]] enthält weitere Hinweise zu ihrer Nutzung. Beispiel: [https://www.mediawiki.org/wiki/API:Main_page/de#Ein_einfaches_Beispiel Den Inhalt der Hauptseite abrufen]. Wähle für weitere Beispiele eine der verfügbaren Aktionen.\n\nObwohl dies eine Spielwiese ist, bedenke, dass Aktionen, die du auf dieser Seite durchführst, das Wiki verändern.",
        "apisandbox-fullscreen": "Panel expandieren",
        "apisandbox-fullscreen-tooltip": "Expandiert das Spielwiesen-Panel, um das Browserfenster auszufüllen.",
        "apisandbox-unfullscreen": "Seite anzeigen",
        "sp-contributions-username": "IP-Adresse oder Benutzername:",
        "sp-contributions-toponly": "Nur aktuelle Versionen zeigen",
        "sp-contributions-newonly": "Nur Seitenerstellungen anzeigen",
+       "sp-contributions-hideminor": "Kleine Bearbeitungen ausblenden",
        "sp-contributions-submit": "Suchen",
        "whatlinkshere": "Links auf diese Seite",
        "whatlinkshere-title": "Seiten, die auf „$1“ verlinken",
        "allmessagesname": "Name",
        "allmessagesdefault": "Standardtext",
        "allmessagescurrent": "Aktueller Text",
-       "allmessagestext": "Dies ist eine Liste der MediaWiki-Systemtexte.\nBitte besuche die Seiten [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki-Lokalisierung] und [//translatewiki.net translatewiki.net], sofern du dich an der Lokalisierung von MediaWiki beteiligen möchtest.",
+       "allmessagestext": "Dies ist eine Liste der MediaWiki-Systemtexte.\nGehe auf [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki-Lokalisierung] und [https://translatewiki.net translatewiki.net], wenn du dich an der Übersetzung von MediaWiki beteiligen möchtest.",
        "allmessagesnotsupportedDB": "Diese Spezialseite steht nicht zur Verfügung, da sie über den Parameter <tt>$wgUseDatabaseMessages</tt> deaktiviert wurde.",
        "allmessages-filter-legend": "Filter",
        "allmessages-filter": "Filter für angepassten Zustand:",
        "creditspage": "Seitenzuschreibung",
        "nocredits": "Für diese Seite sind keine Zuschreibungen vorhanden.",
        "spamprotectiontitle": "Spamschutzfilter",
-       "spamprotectiontext": "Der Text, die du speichern willst, wurde vom Spamschutzfilter blockiert.\nDas liegt wahrscheinlich an einem Link auf eine externe Seite.",
+       "spamprotectiontext": "Der Text, den du speichern möchtest, wurde vom Spamschutzfilter blockiert.\nDas liegt wahrscheinlich an einem Link auf eine externe Seite.",
        "spamprotectionmatch": "'''Der folgende Text wurde vom Spamfilter gefunden: ''$1'''''",
        "spambot_username": "MediaWiki-Spam-Säuberung",
        "spam_reverting": "Letzte Version ohne Links zu $1 wiederhergestellt.",
        "mw-widgets-dateinput-placeholder-month": "JJJJ-MM",
        "mw-widgets-titleinput-description-new-page": "Seite ist noch nicht vorhanden",
        "mw-widgets-titleinput-description-redirect": "Weiterleitung nach $1",
-       "api-error-blacklisted": "Bitte einen anderen, aussagekräftigen Titel wählen.",
        "sessionmanager-tie": "Mehrere Anfrageauthentifikationstypen konnten nicht kombiniert werden: $1.",
        "sessionprovider-generic": "$1-Sitzungen",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "cookiebasierten Sitzungen",
        "log-action-filter-newusers": "Typ der Benutzerkontenerstellung:",
        "log-action-filter-patrol": "Kontrolltyp:",
        "log-action-filter-protect": "Schutztyp:",
-       "log-action-filter-rights": "Typ der Rechteänderung",
-       "log-action-filter-suppress": "Unterdrückungstyp",
+       "log-action-filter-rights": "Typ der Rechteänderung:",
+       "log-action-filter-suppress": "Unterdrückungstyp:",
        "log-action-filter-upload": "Hochladetyp:",
        "log-action-filter-all": "Alle",
        "log-action-filter-block-block": "Sperren",
        "cannotauth-not-allowed-title": "Zugriff verweigert",
        "cannotauth-not-allowed": "Du bist nicht berechtigt, diese Seite zu verwenden.",
        "changecredentials": "Anmeldeinformationen ändern",
-       "changecredentials-submit": "Ändern",
-       "changecredentials-submit-cancel": "Abbrechen",
+       "changecredentials-submit": "Anmeldeinformationen ändern",
        "changecredentials-invalidsubpage": "$1 ist kein gültiger Typ für Anmeldeinformationen.",
        "changecredentials-success": "Deine Anmeldeinformationen wurden geändert.",
        "removecredentials": "Anmeldeinformationen entfernen",
-       "removecredentials-submit": "Entfernen",
-       "removecredentials-submit-cancel": "Abbrechen",
+       "removecredentials-submit": "Anmeldeinformationen entfernen",
        "removecredentials-invalidsubpage": "$1 ist kein gültiger Typ für Anmeldeinformationen.",
        "removecredentials-success": "Deine Anmeldeinformationen wurden entfernt.",
        "credentialsform-provider": "Typ der Anmeldeinformationen:",
-       "credentialsform-account": "Benutzerkontenname:",
+       "credentialsform-account": "Benutzername:",
        "cannotlink-no-provider-title": "Es gibt keine verknüpfbaren Benutzerkonten",
        "cannotlink-no-provider": "Es gibt keine verknüpfbaren Benutzerkonten.",
        "linkaccounts": "Benutzerkonten verknüpfen",
        "linkaccounts-success-text": "Das Benutzerkonto wurde verknüpft.",
        "linkaccounts-submit": "Benutzerkonten verknüpfen",
        "unlinkaccounts": "Benutzerkonten trennen",
-       "unlinkaccounts-success": "Das Benutzerkonto wurde getrennt."
+       "unlinkaccounts-success": "Das Benutzerkonto wurde getrennt.",
+       "authenticationdatachange-ignored": "Die Änderung der Authentifizierungsdaten wurde nicht bearbeitet. Vielleicht wurde kein Anbieter konfiguriert?"
 }
index 1b42105..e16eca1 100644 (file)
@@ -63,8 +63,8 @@
        "tog-watchlisthidecategorization": "Pera kategorizasyoni bınımne",
        "tog-ccmeonemails": "E-posteyanê ke ez karberanê binan rê rışenan, mı rê kopya inan bırışe",
        "tog-diffonly": "Qıyasê versiyonan de tek ferqan bımocne, pela butıne nê",
-       "tog-showhiddencats": "Kategoriyanê dızdiye bımocne",
-       "tog-norollbackdiff": "Peyserardışi ra dıme ferqi caverde",
+       "tog-showhiddencats": "Kategoriyanê nımneya bıasne",
+       "tog-norollbackdiff": "Peyser ardışi ra dıme ferqi measne",
        "tog-useeditwarning": "Wexto ke mı yew pela nizami be vurnayışanê nêqeydbiyayeyan caverdê, hay be mı ser de",
        "tog-prefershttps": "Ronışten akerden de  greyo itimadın bıkarne",
        "underline-always": "Tım",
        "march-gen": "Adar",
        "april-gen": "Nisane",
        "may-gen": "Gulane",
-       "june-gen": "Hezirane",
+       "june-gen": "Heziran",
        "july-gen": "Temuze",
        "august-gen": "Tebaxe",
        "september-gen": "Keşkelun",
        "march-date": "Adar $1",
        "april-date": "Nisane $1",
        "may-date": "Gulane $1",
-       "june-date": "Hezirane $1",
+       "june-date": "{{PLURAL:$1|1=1ᵉ|$1}} Heziran",
        "july-date": "Temuze $1",
        "august-date": "Tebaxe $1",
        "september-date": "Keşkelun $1",
        "december-date": "Kanun $1",
        "period-am": "AM",
        "period-pm": "PM",
-       "pagecategories": "{{PLURAL:$1|Kategoriye|Kategoriyi}}",
+       "pagecategories": "{{PLURAL:$1|Kategori|Kategoriy}}",
        "category_header": "Pelê ke kategoriya \"$1\" derê",
        "subcategories": "Kategoriyê bınêni",
        "category-media-header": "Dosyeyê ke kategoriya \"$1\" derê",
        "category-empty": "''Ena kategoriye de hewna qet nuştey ya zi medya çıniyê.''",
        "hidden-categories": "{{PLURAL:$1|Kategoriya nımıtiye|Kategoriyê nımıtey}}",
        "hidden-category-category": "Kategoriyê nımıtey",
-       "category-subcat-count": "{{PLURAL:$2|Na kategoriya de $1 bınkategoriyay estê.|$2 kategoriyan ra $1 bınkategoriyay asenê.}}",
-       "category-subcat-count-limited": "Na kategoriye de {{PLURAL:$1|ena kategoriya bınêne esta|enê $1 kategoriyê bınêni estê}}.",
+       "category-subcat-count": "{{PLURAL:$2|Na kategoriya de $1 bınkategoriyay estê.|$2 kategoriyan ra $1 bınkategoriyay asenê.}} \n(K) Kategori (D) Dosya (P) Pela",
+       "category-subcat-count-limited": "Na kategoriya de {{PLURAL:$1|ena kategoriya bınên est a|enê $1 kategoriyay bınêni est ê}}.",
        "category-article-count": "{{PLURAL:$2|Na kategoriye de teyna ena pele esta.|Ebe $2 ra pêro piya {{PLURAL:$1|ena pela na kategoriye dera|$1 enê peli na kategoriye derê.}}}}",
        "category-article-count-limited": "{{PLURAL:$1|Pela cêrêne|$1 Pelê cêrêni}} na kategoriye derê.",
-       "category-file-count": "<noinclude>{{PLURAL:$2|Na kategoriye tenya dosyayanê cêrênan muhtewa kena.}}</noinclude>\n*Na kategoriye de $2 dosyayan ra {{PLURAL:$1|yew dosya tenêka esta| $1 dosyey asenê}}.",
+       "category-file-count": "<noinclude>{{PLURAL:$2|Na kategoriya tenya dosyanê cêrênan muhtewa kena.}}</noinclude>\n*Na kategoriya de $2 dosyan ra {{PLURAL:$1|yew dosya tenêka esta| $1 dosyay asenê}}.",
        "category-file-count-limited": "{{PLURAL:$1|Dosya cêrêne|$1 Dosyê cêrêni}} na kategoriye derê.",
        "listingcontinuesabbrev": "dewam...",
        "index-category": "Pelê endeksıni",
        "about": "Heqa cı de",
        "article": "Pela zerreki",
        "newwindow": "(pençereyê newey de beno a)",
-       "cancel": "Bıtexelne",
+       "cancel": "Peyd ke",
        "moredotdotdot": "Vêşi...",
        "morenotlisted": "Vêşi lista nêbi...",
        "mypage": "Pele",
        "qbedit": "Bıvurne",
        "qbpageoptions": "Ena pele",
        "qbmyoptions": "Pelê mı",
-       "faq": "PZP (Persê ke zehf persiyenê)",
+       "faq": "PZP",
        "faqpage": "Project: PZP",
        "actions": "Hereketi",
        "namespaces": "Heruna naman",
        "search": "Cı geyre",
        "searchbutton": "Cı geyre",
        "go": "Şo",
-       "searcharticle": "Şo",
+       "searcharticle": "So",
        "history": "Tarixê pele",
        "history_short": "Tarix",
        "updatedmarker": "cıkewtena mına peyêne ra dıme biyo rocane",
-       "printableversion": "Asayışê çapkerdışi",
+       "printableversion": "Versiyonê nusterin",
        "permalink": "Gıreyo jûqere",
        "print": "Çap ke",
        "view": "Bıvêne",
        "toolbox": "Haceti",
        "userpage": "Pela karberi bıvêne",
        "projectpage": "Pela proceyi bıvêne",
-       "imagepage": "Pela dosya bımocne",
-       "mediawikipage": "Pela mesaci bımocne",
-       "templatepage": "Pela şabloni bımocne",
+       "imagepage": "Pera dosya bıasne",
+       "mediawikipage": "Pera mesaci bıasne",
+       "templatepage": "Pera şabloni bıasne",
        "viewhelppage": "Pela peşti bıvêne",
-       "categorypage": "Pela kategoriye bıvêne",
+       "categorypage": "Pela kategoriya bıasne",
        "viewtalkpage": "Werênayışi bıvêne",
        "otherlanguages": "Zıwananê binan de",
-       "redirectedfrom": "(Pele da $1 ra heteneyê)",
+       "redirectedfrom": "($1 ra kırışı yê)",
        "redirectpagesub": "Pela berdışi",
        "redirectto": "Beno hetê:",
        "lastmodifiedat": "Ena pele tewr peyên roca $2, $1 de biya rocaniye.",
        "aboutpage": "Project:Heqa",
        "copyright": "Zerrekacı $1 bındı not biya.",
        "copyrightpage": "{{ns:project}}:Heqa telifi",
-       "currentevents": "Veng û vac",
+       "currentevents": "Hediseyê rocaneyi",
        "currentevents-url": "Project:Rocani hadisey",
        "disclaimers": "Redê mesuliyeti",
        "disclaimerpage": "Project:Reddê mesuliyetê bıngey",
        "policy-url": "Project:Terzê hereketi",
        "portal": "Portalê cemaeti",
        "portal-url": "Project:Portalê cemaeti",
-       "privacy": "Madeyê dızdêni",
+       "privacy": "Politikay Nımnayışi",
        "privacypage": "Project:Xısusiyetê nımtışi",
        "badaccess": "Xeta mısadey",
        "badaccess-group0": "Heqa şıma çıniya, karo ke şıma waşt, bıkerê.",
        "viewsourcelink": "çımey bıvêne",
        "editsectionhint": "Leteyo ke bıvuriyo: $1",
        "toc": "Sernameyê meselan",
-       "showtoc": "bımocne",
+       "showtoc": "bıasene",
        "hidetoc": "bınımne",
        "collapsible-collapse": "Teng ke",
        "collapsible-expand": "Hera ke",
        "viewsourcetext": "To şikinay çımey na pele bıvêne u kopya kerê:",
        "viewyourtext": "Na pela '''Vurnayışê ke kerdê''' re şıma şenê kopya kerê:",
        "protectedinterface": "Na pela qandê nusnerin destegê verri dana u kes xırabin nêqero deye kerda kılit.",
-       "editinginterface": "'''İqaz:''' Şıma hayo yew pela ke seba nuşteyê meqalanê cayanê bırnayeyan dana, vurnenê.\nVurnayışê na pele karberanê binan rê serpela karberi kena ke bımocno.\nSeba çarnayışi, yardımê [//translatewiki.net/wiki/Main_Page?setlang=diq translatewiki.net]i ra procêdoşkerdışi rê diqet kerên.",
+       "editinginterface": "'''İqaz:''' Şıma hayo yew pela ke seba nuşteyê meqalanê cayanê bırnayeyan dana, vurnenê.\nVurnayışê na pele karberanê binan rê serpela karberi kena ke bımocno.\nSeba çarnayışi, yardımê [https://translatewiki.net/wiki/Main_Page?setlang=diq translatewiki.net]i ra procêdoşkerdışi rê diqet kerên.",
        "cascadeprotected": "No pel de vurnayiş qedexe biyo, çunke şıma tuşa \"kademeyın\" aqtif kerdo u no {{PLURAL:$1|pele|pelo}} pawıteyo de xebıtyeno:\n$2",
        "namespaceprotected": "No '''$1''' ca de icazetê şıma çino şıma pel rêz keri.",
        "customcssprotected": "Mısadeyê şıma çıniyo ke na pela CSSi bıvurnên, çıke na pela xısusiye eyaranê karberan muhtewa kena.",
        "virus-scanfailed": "cıgerayiş tamam nêbı (kod $1)",
        "virus-unknownscanner": "antiviruso ke nêzanyeno:",
        "logouttext": "'''Şıma hesabra newke vicyay.'''\n\nWexta ke verhafızayê cıgerayoxê şıma pak beno no benate de taye peli de hesabe şıma akerde aseno.",
+       "cannotlogoutnow-title": "Enewke ronıştışo nêracneyêno",
        "welcomeuser": "Ğeyr amey, $1!",
        "welcomecreation-msg": "Hesabê şıma abiyo.\n[[Special:Preferences|{{SITENAME}} vurnayişê tercihanê xo]], xo vir ra mekere.",
        "yourname": "Nameyê karberi:",
        "createacct-reason-ph": "Şımaye çı xo re zewbi hesab vırazeni?",
        "createacct-submit": "Hesabê xo vıraze",
        "createacct-another-submit": "Hesab vıraze",
+       "createacct-continue-submit": "Hesab vıraştışi rê devam ke",
+       "createacct-another-continue-submit": "Hesab vıraştışi rê dewam ke",
        "createacct-benefit-heading": "{{SITENAME}} meş de merduman şi",
        "createacct-benefit-body1": "{{PLURAL:$1|vurnayış|vurnayışi}}",
-       "createacct-benefit-body2": "{{PLURAL:$1|pele|peli}}",
+       "createacct-benefit-body2": "{{PLURAL:$1|wesiqe|wesiqey}}",
        "createacct-benefit-body3": "{{PLURAL:$1|iştıraqkerdoğo nıkayên|iştıraqkerdoğê nıkayêni}}",
        "badretype": "Parolayê ke şıma nuşti yewbini nêtepışneni.",
+       "usernameinprogress": "Qandê nê karberi hesab vıraştışondewamnkeno.  Tay bıpawê",
        "userexists": "Jewna karber enê nami karneno.\nMara reca xorê jewna name bınusnê.",
        "loginerror": "Xetayê hesab ekerdışi",
        "createacct-error": "Xetaya vıraştışê hesabi",
        "createaccount-text": "Kesê, be e-posteyê şıma ra {{SITENAME}} ($4) de, ebe nameyê \"$2\" u parola \"$3\" ra yew hesab vıraşto.\nŞıma gani cı kewê u parola xo nıka bıvurnê.",
        "login-throttled": "Demekê $1 cıwa ver de şıma zah teşebbusê hesab akerdış kerd.\nBıne vındere u newe ra dest pê bıkere.",
        "login-abort-generic": "Dekewtışê şıma xırabo-terkneyayo",
+       "login-migrated-generic": "Hesabê şıma wedatiya yo u ena wiki de bamey şıma çıni yo.",
        "loginlanguagelabel": "Zıwan: $1",
        "suspicious-userlogout": "Waştişê tu ya veciyayişi kebul nibiya cunki ihtimal o ke waştiş yew browser ya zi proksiyê heripiyaye ra ameya.",
        "createacct-another-realname-tip": "Nameyo raştıkên keyfiyo.\nŞıma nameyo xoyo raştıkên ke bımocnê, seba iştırakanê karberi be ney ra istıfade beno.",
        "pt-login": "Cı kewe",
        "pt-login-button": "Cı kewe",
+       "pt-login-continue-button": "Cıkewten rê dewam ke",
        "pt-createaccount": "Hesab vıraze",
        "pt-userlogout": "Veciyayış",
        "php-mail-error-unknown": "PHP's mail() fonksiyoni de xırabin vıcyê.",
        "newpassword": "Parola newiye:",
        "retypenew": "Parola newiye tekrar ke:",
        "resetpass_submit": "Parola eyar kere u newe ra dekewe",
-       "changepassword-success": "Parola şıma be serkewtış vuriye!",
+       "changepassword-success": "Parolay şıma vuryaya!",
        "changepassword-throttled": "Şıma zaf ronıştış akerdış ke.Kerem ke verdi dekewten $1 bıpawe.",
+       "botpasswords": "Paroleyê botan",
+       "botpasswords-createnew": "Newe Paroleyê boti vıraze",
+       "botpasswords-editexisting": "Mewcud parolaye boti timar ke",
        "botpasswords-label-appid": "Nameyê boti:",
        "botpasswords-label-create": "Vıraze",
        "botpasswords-label-update": "Rocane ke",
        "botpasswords-label-cancel": "Bıtexelne",
        "botpasswords-label-delete": "Bestere",
        "botpasswords-label-resetpassword": "Parola raçarne",
-       "botpasswords-label-grants-column": "Daye",
+       "botpasswords-label-grants-column": "Dayen",
+       "botpasswords-created-title": "Parolay boti vırazi yê",
+       "botpasswords-updated-title": "Parolay boti rocane yê",
+       "botpasswords-deleted-title": "Parolay boti esteri yê",
        "resetpass_forbidden": "parolayi nêvuryayi",
        "resetpass-no-info": "şıma gani hesab akere u hona bıeşke bırese cı",
        "resetpass-submit-loggedin": "Parola bıvurne",
        "resetpass-submit-cancel": "Bıtexelne",
        "resetpass-wrong-oldpass": "parolayo parola maqbul niyo.\nşıma ya parolaye xo vurnayo ya zi parolayo muwaqqat waşto.",
        "resetpass-recycled": "Parolaya şımaya newiye wa paroloya şımaya verêne ra ferqıne bo.",
+       "resetpass-temp-emailed": "E postaya rışyayê yubkoda şıma ronıştış akerdo.  Ronıştışi xo temammkerdışi rê yu parolaya newi lazım a",
        "resetpass-temp-password": "parolayo muweqet:",
        "resetpass-abort-generic": "Vurnayışê parola terefê yew niçıki ra texeliya.",
+       "resetpass-expired": "Dema parolay da şıma qedya ya. Qandê cıkewtışi u patolaya newi vıraz",
+       "resetpass-expired-soft": "Wahdey patolanda şıma qedya yo u vurnayış icab keno. Xorê yu parola weçinê yana bahdo weçinayışi rê butona \"{{int:authprovider-resetpass-skip-label}}\" 'i bıploğnê",
+       "resetpass-validity-soft": "Parolay şıma ravêrdi niya: $1\n\nXorê yu parola nışan bıkerê  uana bahdo sıfır kerdışi rê grey \"{{int:authprovider-resetpass-skip-label}}\" bıploğnê.",
        "passwordreset": "Parola reset ke",
        "passwordreset-text-one": "Na form de parola reset kerdış temamiye",
        "passwordreset-text-many": "{{PLURAL:$1|Qande parola yana e-posta reset kerdışi cayanra taynın pırkeri.}}",
        "passwordreset-emaildisabled": "Na wikid hısusiyeté e-posta dewera vıcyayé",
        "passwordreset-username": "Nameyê karberi:",
        "passwordreset-domain": "Domain:",
-       "passwordreset-capture": "neticey e-postay bımocne?",
+       "passwordreset-capture": "neticey e-postay bıasne yo?",
        "passwordreset-capture-help": "Şıma na dorek morkerê se, e-posta (idareten eposta ya) şıma rê yana karbera rê rışêno.",
        "passwordreset-email": "Adresa e-postey:",
        "passwordreset-emailtitle": "Hesab timarê {{SITENAME}}",
        "passwordreset-emailsentemail": "Eke na seba hesabê şıma yew adresa e-posteyê qeydına, yew e-posteyê parola nênkerdışi rışiyeno.",
        "passwordreset-emailsent-capture": "Yew e-posteyê esterıtışê parolayo ke rışiya, no cêr mocniyayo.",
        "passwordreset-emailerror-capture": "Yew e-posteyê esterıtışê parolayo ke rışiya, no cêr mocniyayo, ema {{GENDER:$2|karber}}i rê rıştış de mıwefeq nêbi: $1",
-       "changeemail": "E-posta adresa xo bıvurnê",
+       "passwordreset-invalideamil": "Adresê eposta raşt niya",
+       "changeemail": "E-posta adresa xo wedarne",
        "changeemail-header": "E-posya adresta hesabdê xo bıvurnê",
        "changeemail-no-info": "Şıma gani bıkewê pele ke derdest bıresê na pele.",
        "changeemail-oldemail": "E-postay şımawa nıkaêne:",
        "sig_tip": "İmzay şıma be morê zemani",
        "hr_tip": "Xeta verardiye (teserrufın bıgureyne/bıxebetne)",
        "summary": "Xulasa:",
-       "subject": "Mewzu/sernuşte:",
+       "subject": "Mewzu:",
        "minoredit": "No yew vurnayışo werdiyo",
        "watchthis": "Ena pele seyr ke",
        "savearticle": "Pele qeyd ke",
+       "savechanges": "Vurnayışan qeyd ke",
+       "publishpage": "Perer bıhesırne",
+       "publishchanges": "Vurnayışa vıla ke",
        "preview": "Verqayt",
-       "showpreview": "Verqayti bımocne",
-       "showdiff": "Vurnayışan bımocne",
+       "showpreview": "Verqayti bıasne",
+       "showdiff": "Vurriyayışan bıasne",
        "anoneditwarning": "<strong>İqaz:</strong> Şıma be hesabê xo nêkewtê cı. \nAdresê şımayê IP tarixê vırnayışê na pele de do qeyd bo. Eke şıma <strong>[$1 cıkewê]</strong> ya zi <strong>[$2 hesab vırazê]</strong>, vurnayışê şıma be zewbina kare ra nameyê şıma rê bar beno.",
        "anonpreviewwarning": "\"Şıma be hesabê xo nêkewtê cı. Eke qeyd kerê, adresê şımaê IP tarixê vırnayışê na pele de do qeyd bo.\"",
        "missingsummary": "'''DİQET:''' Şıma jû xulasa nênuşte.\nEke şıma \"{{int:savearticle}}\" reyna bıtıknê, vırnayışê şıma bê xulasa qeyd beno.",
        "missingcommenttext": "Cêr de jû fıkır bınusên, şıma rê zehmet.",
        "missingcommentheader": "'''Diqet:''' Şıma seba nê fıkrvaci yew mewzu/sernuşte nênuşt.\nEke şıma reyna \"{{int:savearticle}}\" bıtıknê, vırnayışê şıa bê mewzu/sernuşte do qeyd bo.",
        "summary-preview": "Verqaytê xulasa:",
-       "subject-preview": "Verqaytê mewzu/sernuştey:",
+       "subject-preview": "Verqaytê mewzu:",
+       "previewerrortext": "Verqaytê vurnayış de şıma dı xırabin amê meydan",
        "blockedtitle": "Karber blokekerdeo",
        "blockedtext": "<strong>No nameyê karberi ya zi na adresa IP blokekerdeya.</strong>\n\nVıraştoğê blokeyi: $1\nSebebê blokeyi: <em>$2</em>.\n\n* Sıftekerdena blokeyi: $8\n* Qediyayışê blokeyi: $6\n* Blokebiyaye: $7\n\nŞıma şenê  $1 de ya zi  yewna [[{{MediaWiki:Grouppage-sysop}}|administrator]]i de irtıbat kewê ke na mesela sero werênê, cemaet vırazê. \nŞıma nêşenê xısusiyetê \"karberi rê e-posta bırışe\" bıgureynê/bıxebetnê heta ke [[Special:Preferences|Tercihanê hesabi]] de yew e-posteyo ke vêreno, beli bi û şıma gureynayışê cı ra mehrum nêbiyê.\nIP adresa şımaya nıkayêne $3o û numreyê bloki #$5.\nŞıma rê zehmet, eke kewnê ra dıme, teferruatanê corênan not kerên.",
        "autoblockedtext": "IP adresê şıma otomotikmen kerda kılit, çıkı $1 verniya nê hesabi grota.\nSebebê cı zi:\n\n:''$2''\n\n* Dest pê kerdışê verni grotışi: $8\n* Qedyayişê verni grotışi: $6\n* Qayile ke bloqe bıbo: $7\n\nŞıma qayile qey weri kewtışê na mesela,  $1 ya na [[{{MediaWiki:Grouppage-sysop}}|serkaran ra]] yewi ra şenê irtibat kewê.\n\nNot, [[Special:Preferences|Tercihê karberi]] eke şıma yew e-postayo raşt nênuşt se şıma nêşenê na xususiyet ra \"karber rê e-posta bırışê\" istifade bıkeri.\n\nIP adresiya şıma yo nıkayên $3 u ID şıma yo ke musade nêdaye #$5. Eke şıma yew tehqiqat vırazeni malumatê corênan xo vira mekerê.",
        "confirmedittext": "Eka ti wazene binusi, adresê xo e-maili confirme bike.\nAdresê xo e-maili [[Special:Preferences|user preferences]] de confirme bike.",
        "nosuchsectiontitle": "Eno qısım çıniyo",
        "nosuchsectiontext": "To waşt ke yew qısım kewê, oyo ke çıniyo.\nHeta ke werte de qısım çıniyo, ca çıniyo ke tı raştkerdışê xo qeyd bıkerê.",
-       "loginreqtitle": "Cıkewtış lazımo",
+       "loginreqtitle": "Cı kewtış icab keno",
        "loginreqlink": "cı kewe",
        "loginreqpagetext": "Eka ti wazeno peleyanê bini bivini, ti gani $1.",
        "accmailtitle": "Paralo şirawiyayo.",
        "newarticle": "(Newe)",
        "newarticletext": "To yew gıre tıkna be ra yew pela ke hewna çıniya.\nSeba afernayışê pele ra, qutiya metnê cêrêni bıgurene (seba melumati qaytê [$1 pela peşti] ke).\nEke be ğeletine ameya tiya, wa gocega <strong>peyser</strong>i programê xo de bıtıkne.",
        "anontalkpagetext": "----''No pel, pel o karbero hesab a nêkerdeyan o, ya zi karbero hesab akerdeyan o labele pê hesabê xo nêkewto de. No sebeb ra ma IP adres şuxulneni û ney IP adresan herkes eşkeno bıvino. Eke şıma qayil niye ina bo xo ri [[Special:CreateAccount|yew hesab bıvıraze]] veyaxut [[Special:UserLogin|hesab akere]].''",
-       "noarticletext": "Ena pele de hewna theba çıniyo.\nTı şenay zerreyê pelanê binan de [[Special:Search/{{PAGENAME}}|seba sernameyê ena pele cı geyre]],\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} qeydan miyan de cı geyre],\nya zi [{{fullurl:{{FULLPAGENAME}}|action=edit}} ena pele vıraze]</span>.",
+       "noarticletext": "Ena pele de hewna theba çıni yo.\nTı şenê zerreyê pelanê binan de [[Special:Search/{{PAGENAME}}|qandê  sernameyê ena pele cı geyre]],\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} qeydan miyan de cı geyre],\nya zi [{{fullurl:{{FULLPAGENAME}}|action=edit}} ena pele vıraze]</span>.",
        "noarticletext-nopermission": "Ena pele de hewna theba çıniyo.\nTı şenay zerreyê pelanê binan de [[Special:Search/{{PAGENAME}}|seba sernameyê na pele cı geyre]], ya zi <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} qeydan miyan de cı geyre]</span>, ema destur çıniyo ke na pele vırazê.",
        "missing-revision": "Rewizyonê name dê pela da #$1 \"{{FULLPAGENAME}}\" dı çıniyo.\n\nNo normal de tarix dê pelanê besterneyan dı ena xırabin asena.\nDetayê besternayışi [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} tiya dı] aseno.",
        "userpage-userdoesnotexist": "Hesabê karberi \"<nowiki>$1</nowiki>\" qeyd nêbiyo.\nKerem ke, tı ke wazenay na pele bafernê/bıvurnê, qontrol ke.",
        "userpage-userdoesnotexist-view": "Hesabê karberi \"$1\" qeyd nêbiyo.",
        "blocked-notice-logextract": "No karber/na karbere emanet blokekerdeyo/blokekediya.\nCıkewtışo tewr peyêno ke bloke biyo, cêr seba referansi belikerdeyo:",
-       "clearyourcache": "'''Not:''' Bahde sazkerdışi, gani hafızayê cı gerayoğ pak bıbo.\n*'''Mozilla / Firefox / Safari:''' ''Shift'' ri gıştê şıma ser nayi pel newe ra bar kere yana zi''Ctrl-Shift-R'' bıkere u (qey Apple Mac ''Cmd-Shift-R'');,\n*'''IE:''' ''Ctrl-F5' piya pıploxnê ke wa newe bo', \n* '''Operar:'''hacetan ra şı rê →tercihan ra bıvurnen",
+       "clearyourcache": "'''Not:''' Bahde sazkerdışi, gani hafızayê cı gerayoğ pak bıbo.\n*'''Mozilla / Firefox / Safari:''' ''Shift'' ri gıştê şıma ser nayi pel newe ra bar kere yana zi''Ctrl-Shift-R'' bıkere u (qey Apple Mac ''Cmd-Shift-R'');,\n*'''IE:''' ''Ctrl-F5' piya pıploxnê ke wa newe bo', \n* '''Opera:'''hacetan ra şı rê →tercihan ra bıvurnen",
        "usercssyoucanpreview": "'''Yardim:''' Ser \"{{int:showpreview}}\" sima eskeni CSSe newe test bikeri.",
        "userjsyoucanpreview": "'''Yardim:''' Ser \"{{int:showpreview}}\" sima eskeni CSSe newe test bikeri.",
        "usercsspreview": "'''şıma tena verqaydê dosyayê CSS vineni.''' '''Dosyayê Karberi CSS hema qayd nebiyo!'''",
        "yourdiff": "pêverronayiş",
        "copyrightwarning": "'''Recaya iqazi:'''Sita {{SITENAME}} ra iştıraqi pêro umışiya $2 zerredeyo (teferuatan rê $1 bıvênê).\n\nİştıraqê şıma, şıma qayıl niyê ke yewna merdumi kerpeyina bıvurnê ya zi yewna cayi ra vıla kerê ke, iştıraq mekewê.<br />\nFına zi qayılê ke iştıraq kewê, şıma qayılê ke şar vaco eno nuşte fılan kesi nusnayo ya zi meqemanê resmiyan ra zanayışê cı û malumatê cı esto / cayanê xoseran ra gırewtışi rê şıma garanti danê. '''Tiya de şıma werê telifi ra ke mısade nêgırewto, eserê cı tiya vıla mekerê! '''",
        "copyrightwarning2": "Ney bızanê ke nuşteyê ke şıma ruşnenê (şawenê) keyepela {{SITENAME}} herkes eşkeno nê nuşteyanê şıma ser kay bıkero. Eke şıma qayil niyê kes bıvurno, nuşteyanê xo meerzê ita. <br />\nWexto ke şıma nuşteyi zi erzenê ita; şıma gani teahud bıdê koti ra ardo (qandê teferuati ra referans: $1).",
+       "editpage-cannot-use-custom-model": "Zerrekê  modelê ena peler şıma nêşenê bıvurnê",
        "longpageerror": "'''Xırab: Dergeya nuşte dê şıma nezdi {{PLURAL:$1|kilobayto|$1 kilobayto}}, feqet {{PLURAL:$2|kilobayt|$2 kilobayt}} ra vêşiyo. Qeyd biyayişê cı nêbeno'''",
        "readonlywarning": "'''Diqet: Semedê mıqayti, database kılit biyo. No sebeb ra vurnayişê şıma qayd nêbeno. Nuşteyanê şıma yewna serkar eşkeno wedaro u pey ra şıma eşkeni reyna ita de qayd bıker'''\n\nSerkar o ke kılit kerdo; no beyanat dayo: $1",
        "protectedpagewarning": "'''Diqet: No pel pawyeno, teyna serkari eşkeni bıvurni.'''\nWexta ke şıma no pel vurneni diqet bıkeri:",
        "permissionserrorstext": "Qey {{PLURAL:$1|sebebê|sebebê}} cêrini ra icazeyê şıma çin o:",
        "permissionserrorstext-withaction": "{{PLURAL:$1|Sebeba|Sebeb da}} cêri ra icazetê $2 çıniyo:",
        "recreate-moveddeleted-warn": "'''Hişyari: no pel o ke şıma vırazeni vere cû vırazyayo.'''\n\nDiqet bıkeri no vurnayişê şıma re gerek esto:",
-       "moveddeleted-notice": "Na per besternyaya.\nQeydé  besternayışi uq hewadayışi cér dé deyayo.",
+       "moveddeleted-notice": "Ena pela esteriya ya.\nQeydé  esternayışi u wedarnayışi cér dé deya yo.",
        "log-fulllog": "Temamê rocaneyi bıvine",
        "edit-hook-aborted": "Vurnayiş vınderiya.\nYew sebeb beyan nibı.",
        "edit-gone-missing": "Pel rocanebiyaye niyo.\nHewna kerde aseno.",
        "parser-template-recursion-depth-warning": "limitê şablonê newekerdışi biyo de ($1)",
        "language-converter-depth-warning": "xoritiya çarnekarê zıwanan viyarnê ra ($1)",
        "node-count-exceeded-category": "Pela ra hetê kotya amardışê cı ravêrya",
-       "node-count-exceeded-warning": "Amariya pela ravêrya.",
+       "node-count-exceeded-category-desc": "Pela azami amora gozgıray ravêr  da.",
+       "node-count-exceeded-warning": "Pela amora gozgıra ravêr da",
        "expansion-depth-exceeded-category": "Pela dı hetê canaya zoriya herayin ravêrya",
        "expansion-depth-exceeded-warning": "Ravêriya pela xori herayêna",
        "parser-unstrip-loop-warning": "Unstrip lete vineya",
        "undo-success": "No vurnayiş tepeye geryeno. pêverronayişêyê cêrıni kontrol bıkeri.",
        "undo-failure": "Sebayê pêverameyişê vurnayişan karo tepêya gırewtış nêbı.",
        "undo-norev": "Vurnayiş tepêya nêgeryeno çunke ya vere cû hewna biyo ya zi ca ra çino.",
-       "undo-summary": "Vırnayışê $1'i [[Special:Contributions/$2|$2i]] ([[User talk:$2|Werênayış]]) peyser gırewt",
+       "undo-summary": "Vırnayışê $1'i [[Special:Contributions/$2|$2i]] ([[User talk:$2|Werênayış]]) peyser gırot",
        "undo-summary-username-hidden": "Rewizyona veri $1'i hewada",
        "cantcreateaccounttitle": "Nêşenay hesab rakerê",
        "cantcreateaccount-text": "Hesabvıraştışê na IP adrese ('''$1''') terefê [[User:$3|$3]] kılit biyo.\n\nSebebo ke terefê $3 ra diyao ''$2''",
        "viewpagelogs": "Seba na pele rê qeydan bımocne",
        "nohistory": "Verê vurnayışanê na pele çıniyo.",
        "currentrev": "Çımraviyarnayışo rocane",
-       "currentrev-asof": "Revizyonanê peniyan, tarixê $1",
+       "currentrev-asof": "$1 ra tepya mewcud weziyeta pela",
        "revisionasof": "Verziyonê roca $1ine",
        "revision-info": "Vurnayışo ke $1 de terefê {{GENDER:$6|$2}}$7 ra biyo",
        "previousrevision": "← Çımraviyarnayışo kıhanêr",
        "history-feed-description": "Wiki de tarixê çımraviyarnayışê na pele",
        "history-feed-item-nocomment": "$1 miyanê $2i de",
        "history-feed-empty": "Pela cıgeyrayiye çıniya.\nBeno ke ena esteriya, ya zi namê cı vuriyo.\nSeba pelanê muhimanê newan [[Special:Search|cıgeyrayışê wiki de]] bıcerebne.",
+       "history-edit-tags": "Etiketa weçinaye rewizyoni timar ke",
        "rev-deleted-comment": "(Timarkerdışe enay hewadeyayo)",
        "rev-deleted-user": "(nameyê karberi esteriyo)",
        "rev-deleted-event": "(fealiyetê cıkewtışi esteriyo)",
        "rev-deleted-user-contribs": "[nameyê karberi ya zi adresa IPy esteriya - vurnayış iştırakan ra nımniyo]",
        "rev-deleted-text-permission": "Çımraviyarnayışê ena pele '''esteriyo'''.\nBeno ke [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log] de teferruat esto.",
+       "rev-suppressed-text-permission": "Çımraviyarnayışê ena pele '''degusneyayo'''.\nŞıma be idarekerina xo ra şenê ey bıvênê; beno ke [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} degusnayış] de teferruat esto.",
        "rev-deleted-text-unhide": "Çımra viyarnayışê ena pele '''besterêno'''.\nBeno ke [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} besternayış] de teferruat esto.\nŞıma be idarekerina xo ra şenê hewna [$1 nê çımra viyarnayışi bıvinê], eke wazenê dewam kerê.",
        "rev-suppressed-text-unhide": "Çımra viyarnayışê ena pele '''Degusneyayo'''.\nBeno ke [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} degustış] de teferruat esto.\nŞıma be idarekerina xo ra şenê hewna [$1 nê çımraviyarnayışi bıvênê], eke wazenê dewam kerê.",
        "rev-deleted-text-view": "Çımra viyarnayışê ena pele '''besternêno'''.\nŞıma be idarekerina xo ra şenê ey bıvênê; beno ke [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} besternayış] de teferruat esto.",
        "rev-suppressed-unhide-diff": "Nê Timarkerdışi ra yewi '''çap biyo'''.\n[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} rocaneyê vındertışi] de teferru'ati esti.\nEke şıma serkari u devam bıkeri [$1 no vurnayiş şıma eşkeni bıvini].",
        "rev-deleted-diff-view": "Jew timarkerdışê ena versiyon '''wedariyayo''.\nÎdarekarî şenê ena versiyon bivîne; belki tiya de [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} wedarnayişî] de teferruat esto.",
        "rev-suppressed-diff-view": "Jew timarkerdışê ena versiyon '''Ploxneyış'' biyo.\nÎdarekarî eşkeno ena dif bivîne; belki tiya de [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} ploxnayış] de teferruat esto.",
-       "rev-delundel": "bımocne/bınımne",
-       "rev-showdeleted": "bımocne",
+       "rev-delundel": "bıasne/bınımne",
+       "rev-showdeleted": "bıasene",
        "revisiondelete": "Çımraviyarnayışan bestere/peyser biya",
        "revdelete-nooldid-title": "Çımraviyarnayışo waşte nêvêreno",
        "revdelete-nooldid-text": "Şıma vıraştışê nê fonksiyoni rê ya yew çımraviyarnayışo waşte diyar nêkerdo, çımraviyarnayışo diyarkerde çıniyo, ya ki şıma wazenê ke çımraviyarnayışê nıkayêni bınımnê.",
        "revdelete-legend": "Şertanê vênayışi rone",
        "revdelete-hide-text": "Nuştey revizyoni",
        "revdelete-hide-image": "zerreyê dosyay bınımnê",
-       "revdelete-hide-name": "hedef u vaqa' bınımne",
+       "revdelete-hide-name": "hedef u parametreyan bınımne",
        "revdelete-hide-comment": "Xulasa bıvurne",
        "revdelete-hide-user": "IP asresa/namey  vırnoği",
        "revdelete-hide-restricted": "Malumatan pa serkaran u karberan ra bınım.",
        "revdelete-unsuppress": "reizyonê ke tepiya anciye serbest ker",
        "revdelete-log": "Sebeb:",
        "revdelete-submit": "Cewab be {{PLURAL:$1|çımraviyarnayışi|çımraviyarnayışan}} de",
-       "revdelete-success": "''''Esayişê revizyoni bi muvaffaqi eyar bi.'''",
+       "revdelete-success": "Asayişê revizyoni rocaneya",
        "revdelete-failure": "'''Esayişê revizyoni eyar nibeno:'''\n$1",
        "logdelete-success": "'''Esayişê rocaneyi bı muvaffaqi eyar bı.'''",
        "logdelete-failure": "'''Esayişê rocaneyi eyar nêbı:'''\n$1",
        "mergehistory-into": "Pela destinasyonî",
        "mergehistory-list": "tarixê vurnayîşî ke eşkeno yew bi.",
        "mergehistory-merge": "[[:$1]] qey ney revizyonê cêrini [[:$2]] şıma ekeni piyawani. Benatê wexto muwaqqet de piyayanayişê rezizyonan de tuşa radyo bıxebitne.",
-       "mergehistory-go": "Vernayîşê yewbiyayeni bimocne",
+       "mergehistory-go": "Yew bıyaye vurriyayışa bıasne",
        "mergehistory-submit": "revizyonî yew bike",
        "mergehistory-empty": "Revizyonî yew nibenê.",
        "mergehistory-done": "$1 ra $3 {{PLURAL:$3|revizyon|revizyoni}} [[:$2]] de {{PLURAL:$3|biyo|biyê}} têmiyan.",
        "mergelog": "Qeydé zew kerdışi",
        "revertmerge": "Abırnê",
        "mergelogpagetext": "Cêr de yew liste esta ke mocnena ra, raya tewr peyêne kamci pela tarixi be a bine ra şanawa pê.",
-       "history-title": "Tarixê çımraviyarnayışê \"$1\"",
+       "history-title": "Revizyona pela \"$1\"",
        "difference-title": "Pela \"$1\" ferqê çım ra viyarnayışan",
        "difference-title-multipage": "Ferkê pelan dê \"$1\" u \"$2\"",
        "difference-multipage": "(Ferqê pelan)",
        "notextmatches": "tekê (zewcê) nuştey pele çıniyê",
        "prevn": "{{PLURAL:$1|$1}} verên",
        "nextn": "{{PLURAL:$1|$1}} peyên",
+       "prev-page": "Pela verên",
+       "next-page": "Pela peyên",
        "prevn-title": "$1o verên  {{PLURAL:$1|netice|neticeyan}}",
        "nextn-title": "$1o ke yeno {{PLURAL:$1|netice|neticey}}",
        "shown-title": "bimocne $1î  {{PLURAL:$1|netice|neticeyan}} ser her pel",
        "searchprofile-images-tooltip": "Dosya cı geyr",
        "searchprofile-everything-tooltip": "Tedeesteyan hemine cı geyre (pelanê mınaqeşeyi zi tey)",
        "searchprofile-advanced-tooltip": "qe cayê nimeyî bigêre",
-       "search-result-size": "$1 ({{PLURAL:$2|1 çekuyo|$2 çekuyê}})",
+       "search-result-size": "$1 ({{PLURAL:$2|1 çeku|$2 çekuy}})",
        "search-result-category-size": "{{PLURAL:$1|1 eza|$1 ezayan}} ({{PLURAL:$2|1 kategoriyê bini|$2 kategirayanê binan}}, {{PLURAL:$3|1 dosya|$3 dosyayan}})",
        "search-redirect": "($1 ra ardış)",
        "search-section": "(qısmê $1)",
        "search-category": "(kategori $1)",
        "search-file-match": "(zerreyê dosya yewbini gêno)",
        "search-suggest": "To va: $1",
+       "search-rewritten": "Neticey $ ra asenê.  Herunda ney wa neticey $2 ra bıasê?",
        "search-interwiki-caption": "Proceyê bıray",
        "search-interwiki-default": "$1 ra neticey:",
        "search-interwiki-more": "(véşi)",
        "showingresultsinrange": "{{PLURAL:$1|<strong>1</strong> netice|<strong>$1</strong> neticey}} be mabeynê #<strong>$2</strong> ra be #<strong>$3</strong> cêr asenê.",
        "search-showingresults": "{{PLURAL:$4|Netice <strong>$1</strong> be <strong>$3</strong>|Neticeyi <strong>$1 - $2</strong> be <strong>$3</strong>}}",
        "search-nonefound": "Zey perskerdışê şıma netice nêvêniya.",
+       "search-nonefound-thiswiki": "Ena sita dı zey waşten da şıma theba nêvineya",
        "powersearch-legend": "Cıgeyrayışo hera",
        "powersearch-ns": "Cayanê nameyan de cıgeyrayış:",
        "powersearch-togglelabel": "Kontrol ke:",
        "powersearch-toggleall": "Pêro",
        "powersearch-togglenone": "Çıniyo",
+       "powersearch-remember": "Cıgeyrayışanê newe tepyayan de biya xo viri",
        "search-external": "Cıgeyrayışê teberi",
        "searchdisabled": "{{SITENAME}} no keyepel de cıgerayiş muweqqet bıryayo. no benatê de şıma pê Google eşkeni zerreyê {{SITENAME}} de cıgerayiş bıkeri.",
        "search-error": "Cıgeyrayış de yew xeta emê meydan: $1",
        "prefs-labs": "Xacetê labs",
        "prefs-user-pages": "Pela Karberi",
        "prefs-personal": "Pela karberi",
-       "prefs-rc": "Vurnayışê peyêni",
+       "prefs-rc": "Vurriyayışê peyêni",
        "prefs-watchlist": "Lista seyrkerdışi",
+       "prefs-editwatchlist": "Lista seyrkerdışi bıvurne",
+       "prefs-editwatchlist-label": "Listey serkerdışanê cıkewtışi timar kerê",
+       "prefs-editwatchlist-edit": "Sernamanê listey serkerdışanê xo bıasne u timar kerê",
+       "prefs-editwatchlist-raw": "Lista seyrkerdışia xame bıvurne",
+       "prefs-editwatchlist-clear": "Lista serykerdışê xo pak kerê",
        "prefs-watchlist-days": "Rocê ke lista seyrkerdışi de bêrê ramocnaene",
        "prefs-watchlist-days-max": "tewr vêşi $1 {{PLURAL:$1|roci|roci}}",
        "prefs-watchlist-edits": "tewr zêde amarê vurnayışi ke lista seyrkerdışia herakerdiye de bıasê:",
        "prefs-watchlist-token": "Lista seyrkerdışia nışani:",
        "prefs-misc": "ê bini",
        "prefs-resetpass": "Parola bıvurne",
-       "prefs-changeemail": "E-postay bıvurne",
+       "prefs-changeemail": "E-postay bıvurne yana wedarne",
        "prefs-setemail": "E-posta adresiyê xo saz kerê",
        "prefs-email": "Tercihê e-maili",
        "prefs-rendering": "Asayış",
        "rows": "Xeti:",
        "columns": "Estûni:",
        "searchresultshead": "Cı geyre",
-       "stub-threshold": "Qandé <a href=\"#\" class=\"stub\">Taslağ  formati</a> sinor (bayti):",
+       "stub-threshold": "Qandé Taslağ  formati  sinor:$1",
+       "stub-threshold-sample-link": "misal",
        "stub-threshold-disabled": "Astengın",
        "recentchangesdays": "Rocê ke vurnayışanê peyênan de bıasê:",
        "recentchangesdays-max": "Tewr zaf $1 {{PLURAL:$1|roc|roci}}",
        "prefs-help-recentchangescount": "Ney de vurnayışê peyêni, tarixê pelan u cıkewteni asenê.",
        "prefs-help-watchlist-token2": "Na pawıtış nımnayi kılta listada şımaya.\nOke kıliti zano şeno listeya tamaşann bıvino. Poğta coy ra kesiya me hesırne. \n[[Special:ResetTokens|Na kıliti reset kerdışi re tiyay bıploğne]].",
        "savedprefs": "Tecihê şıma qeyd biy.",
+       "savedrights": "Qandé {{GENDER:$1|$1}} heqê karberi qeyd  biye.",
        "timezonelegend": "Warey saete:",
        "localtime": "saeta mehelliye:",
        "timezoneuseserverdefault": "Zey karkerdışê Wiki ($1)",
        "badsig": "Îmzayê tu raşt niyo.\nEtiketê HTMLî kontrol bike.",
        "badsiglength": "İmzaya şıma zaf derga.\nA gani be $1 {{PLURAL:$1|karakter|karakteran}} ra zêde mebo.",
        "yourgender": "Şeklê xitabi?",
-       "gender-unknown": "Ez detay nivana",
+       "gender-unknown": "Çımhal tı kerdê etiket, Nusner do çekuya Nerimaki cinsiyeti de şeno bıkar no",
        "gender-male": "Perané wiki camérd deyne ezo vırnena",
        "gender-female": "Perané wiki cıni deyne eza vırnena",
        "prefs-help-gender": "Na tercih keyfiya.\nNa nustenek ercana qısan de qandé grameri karneyéna, na malumater herkes şeno bıvino .",
        "prefs-advancedrendering": "Tercihê raverberdey",
        "prefs-advancedsearchoptions": "Tercihê raverberdey",
        "prefs-advancedwatchlist": "Tercihê raverberdey",
-       "prefs-displayrc": "Tercihan bımocne",
+       "prefs-displayrc": "Tercihê asenayışi",
        "prefs-displaywatchlist": "Weçinayışê mocnayışi",
        "prefs-tokenwatchlist": "Morge",
        "prefs-diffs": "Ferqi",
        "userrights": "İdarey heqanê karberan",
        "userrights-lookup-user": "Grubanê karberi/karbere idare bıke",
        "userrights-user-editname": "Yew nameyê karberi cı kewe:",
-       "editusergroup": "Grupanê karberi/karbere bıvurne (bıbedelne)",
-       "editinguser": "'''[[User:$1|$1]]''' keno weziyetê $2'i bıvurno",
+       "editusergroup": "Grupanê {{GENDER:$1|karberi}} bıvurne",
+       "editinguser": "{{GENDER:$1|karber}} [[User:$1|$1]] heqanê $2'i vurne no",
        "userrights-editusergroup": "Grubanê karberi/karbere sero bıgureye (bıxebetiye)",
-       "saveusergroups": "Grubanê karberi qeyd bıke",
+       "saveusergroups": "Grubanê {{GENDER:$1|karberi}} qeyd bıke",
        "userrights-groupsmember": "Ezayê:",
        "userrights-groupsmember-auto": "Ezao daxıl/ezaa daxıle ê:",
        "userrights-groups-help": "şıma şenê grubanê nê karberi/na karbere, oyo/aya ke tede, bıvurnê:\n* qutiya ke nışankerdiya, mocnena ke karber/e na grube dero/dera.\n* qutiya ke nışankerdiye niya, mocnena ke karber/ na grube de niyo/niya.\n* Yew estare * mocneno ke, gruba ke şıma kerda ra ser (daxıl kerda), şıma nêşenê wedarê/hewa dê ya ki dêmlaşta/tersê cı.",
        "group": "Grube:",
        "group-user": "Karberi",
        "group-autoconfirmed": "Karberê ke otomatikmen biyê araşt",
-       "group-bot": "Boti",
+       "group-bot": "Roboti",
        "group-sysop": "İdarekari",
-       "group-bureaucrat": "Burokrati",
-       "group-suppress": "Çımpawıteni",
+       "group-bureaucrat": "Buroqrati",
+       "group-suppress": "Çımpawıti",
        "group-all": "(pêro)",
        "group-user-member": "{{GENDER:$1|karber}}",
        "group-autoconfirmed-member": "{{GENDER:$1|Karberê ke otomatikmen biyê araşt}}",
        "right-createpage": "Pele vıraze (pelê ke ê werênayışi niyê)",
        "right-createtalk": "Pela werênayışi vıraze",
        "right-createaccount": "Hesabê karberi vıraze",
+       "right-autocreateaccount": "Xarici yew name dê karberi ya ronıştış ake",
        "right-minoredit": "Vurnayışan qıckek nışan bıde.",
        "right-move": "Pele bere",
        "right-move-subpages": "Pele be bınpelanê cı ra pia bere",
        "right-override-export-depth": "Peleyanê ke tede linkanê 5 ra zafyer estê ay export bike",
        "right-sendemail": "Karberanê binî ra e-mail bişirav",
        "right-passwordreset": "E-postayanê parola reset kerdışa vineno",
+       "right-managechangetags": "[[Special:Tags|Etiketi]] vıraz u aktiv (me)ke",
+       "right-applychangetags": "[[Special:Tags|Etiketa]]  vurnayışana piya dezge fi.",
+       "grant-editmyoptions": "Tercihanê xo bıvurne",
+       "grant-editmywatchlist": "Listeyseyran de xo bıvırne",
+       "grant-editpage": "Peran bıvurnê",
+       "grant-editprotected": "Srar bıyaye peran bıvurnê",
        "newuserlogpage": "Cıkewtışê hesabvıraştışi",
        "newuserlogpagetext": "Ena log de viraştişê karberî esta.",
        "rightslog": "Qeydê heqanê karberi",
        "nchanges": "$1 {{PLURAL:$1|fın vurna|fıni vurna}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|ra yok wazino}}",
        "enhancedrc-history": "tarix",
-       "recentchanges": "Vurnayışê peyêni",
+       "recentchanges": "Vurriyayışê peyêni",
        "recentchanges-legend": "Tercihê vurnayışanê peyênan",
        "recentchanges-summary": "Ena pele de wiki sero vurnayışanê peyênan teqib ke.",
        "recentchanges-noresult": "Goreyê kriteranê kıfşkerdeyan ra qet yew vurnayış nêvêniya.",
        "recentchanges-legend-heading": "<strong>Kıtabek:</strong>",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|Lista pelanê neweyan]] zi bıvêne)",
        "recentchanges-legend-plusminus": "''(±123)''",
+       "recentchanges-submit": "Bıasne",
        "rcnotefrom": "Cêr de <strong>$2</strong> ra nata vurnayışiyê asenê (tewr vêşi <strong>$1</strong> asenê).",
        "rclistfrom": "$3 $2 ra tepiya vurnayışanê neweyan bımocne",
        "rcshowhideminor": "vurnayışê werdiyi $1",
-       "rcshowhideminor-show": "Bımocne",
+       "rcshowhideminor-show": "Bıasne",
        "rcshowhideminor-hide": "Bınımne",
        "rcshowhidebots": "botan $1",
-       "rcshowhidebots-show": "Bımocne",
+       "rcshowhidebots-show": "Bıasene",
        "rcshowhidebots-hide": "Bınımne",
        "rcshowhideliu": "karberê qeydbiyayeyi $1",
-       "rcshowhideliu-show": "Bımocne",
+       "rcshowhideliu-show": "Bıasne",
        "rcshowhideliu-hide": "Bınımne",
        "rcshowhideanons": "karberê bênameyi $1",
-       "rcshowhideanons-show": "Bımocne",
+       "rcshowhideanons-show": "Bıasene",
        "rcshowhideanons-hide": "Bınımne",
        "rcshowhidepatr": "$1 vurnayışê ke dewriya geyrayê",
-       "rcshowhidepatr-show": "Bımocne",
+       "rcshowhidepatr-show": "Bıasne",
        "rcshowhidepatr-hide": "Bınımne",
        "rcshowhidemine": "vurnayışanê mı $1",
-       "rcshowhidemine-show": "Bımocne",
+       "rcshowhidemine-show": "Bıasne",
        "rcshowhidemine-hide": "Bınımne",
        "rcshowhidecategorization": "kategorizasyonê pele $1",
-       "rcshowhidecategorization-show": "Bımocne",
+       "rcshowhidecategorization-show": "Bıasne",
        "rcshowhidecategorization-hide": "Bınımne",
        "rclinks": "Peyniya $2 rocan de $1 vurnayışan bımocne <br />$3",
        "diff": "ferq",
        "hist": "verên",
        "hide": "Bınımne",
-       "show": "Bımocne",
+       "show": "Bıasne",
        "minoreditletter": "q",
        "newpageletter": "N",
        "boteditletter": "b",
        "statistics-header-hooks": "Yewbina istatistiki",
        "statistics-articles": "Pelê zerreki",
        "statistics-pages": "Peli",
-       "statistics-pages-desc": "Pelanê hemî ke wîkî de estê, pelanê mineqeşeyî, redireksiyon ucb... dehil o.",
+       "statistics-pages-desc": "Wiki de peley pêro, kategoriy, hetenayışi wesaire...",
        "statistics-files": "Dosyayê bar biye",
-       "statistics-edits": "{{SITENAME}} saz kerdış ra hetana newke amora vırnayışan",
+       "statistics-edits": "Ronayen da {{SITENAME}} ra newke amora vıryayışan",
        "statistics-edits-average": "Her pele sero nısbi vurnayış",
        "statistics-users": "[[Special:ListUsers|Karber]]ê qeydıni",
        "statistics-users-active": "Karberê aktifi",
        "pageswithprop-submit": "Şo",
        "pageswithprop-prophidden-long": "Erca metinda derger nımneya ($1)",
        "pageswithprop-prophidden-binary": "Erca dıdıyına ($1) nımneyé",
-       "doubleredirects": "Serşıkıtışê dıleti",
+       "doubleredirects": "Hetenayışê dıleti",
        "doubleredirectstext": "no pel pelê ray motışani liste keno.\ngıreyê her satıri de gıreyi; raş motışê yewın u dıyıni esto.\n<del>serê ey nuşteyi</del> safi biye.",
        "double-redirect-fixed-move": "[[$1]] kırışiye.\nNa otomatikmen biye rocaniye û nıka [[$2]] ser şıknena.",
        "double-redirect-fixed-maintenance": "Serkışışteno dıletê [[$1]] ra  pela da [[$2]] vuriyeno.",
        "withoutinterwiki": "Pelê ke zıwananê binan rê gıreyê cı çıniyo",
        "withoutinterwiki-summary": "Enê pelî ke versiyonê ziwanî binî ra link nidano.",
        "withoutinterwiki-legend": "Verole",
-       "withoutinterwiki-submit": "Bımocne",
+       "withoutinterwiki-submit": "Bıasene",
        "fewestrevisions": "Pelê be senık çımraviyarnayışi",
        "nbytes": "$1 {{PLURAL:$1|bayt|bayti}}",
-       "ncategories": "$1 {{PLURAL:$1|Kategoriye|Kategoriyi}}",
+       "ncategories": "$1 {{PLURAL:$1|Kategori|Kategoriy}}",
        "ninterwikis": "$1 {{PLURAL:$1|interwiki|interwikiy}}",
        "nlinks": "$1 {{PLURAL:$1|link|linkî}}",
        "nmembers": "$1 {{PLURAL:$1|eza|ezayan}}",
        "mostrevisions": "Pelan ke tewr zaf revizyonî biyê.",
        "prefixindex": "Veroleya peley pêro",
        "prefixindex-namespace": "Peleyê Veroleyıni ($1 cay nami)",
+       "prefixindex-submit": "Bıasene",
        "prefixindex-strip": "Listeya réz bıyayışi",
        "shortpages": "Pelê kılmeki",
        "longpages": "Pelê dergeki",
        "protectedpages-performer": "Şeveknayışê karberi",
        "protectedpages-params": "Parametreyê şeveknayışi",
        "protectedpages-reason": "Sebeb",
+       "protectedpages-submit": "Asayışê pela",
        "protectedpages-unknown-timestamp": "Nêzanaye",
        "protectedpages-unknown-performer": "Karbero nêzanaye",
        "protectedtitles": "Sernameyê pawıteyi",
        "usereditcount": "$1 {{PLURAL:$1|vurnayîş|vurnayîşî}}",
        "usercreated": "$2 de $1 {{GENDER:$3|viraziya}}",
        "newpages": "Pelê newey",
+       "newpages-submit": "Bıasene",
        "newpages-username": "Nameyê karberi:",
        "ancientpages": "Pelê kehenêri",
-       "move": "Bere",
-       "movethispage": "Ena pele bere",
+       "move": "Wegi",
+       "movethispage": "Ena peler wegi",
        "unusedimagestext": "Enê dosyey estê, feqet zerrey yew pele de wedardey niyê.\nXo vira mekerê ke, sıteyê webiê bini şenê direkt ebe URLi yew dosya ra gırê bê, u wına şenê verba gurênayışo feal de tiya hewna lista bê.",
        "unusedcategoriestext": "Kategoriyê ke cêr derê, nê bıbê zi, terefê qet madeyan ya zi kategoriyan ra nêgureniyenê.",
        "notargettitle": "Hedef çini yo",
        "apihelp": "Peştiya APIyi",
        "apihelp-no-such-module": "Modulê \"$1\" çıniyo.",
        "apisandbox": "API qumdor",
+       "apisandbox-fullscreen": "Panela hera kerdışi",
        "apisandbox-submit": "Bıwazê",
        "apisandbox-reset": "Bestere",
-       "apisandbox-examples": "Misal",
-       "apisandbox-results": "Netice",
+       "apisandbox-retry": "Fına",
+       "apisandbox-examples": "Misali",
+       "apisandbox-dynamic-parameters": "Parametreya debyayi",
+       "apisandbox-dynamic-parameters-add-label": "Parametre dek:",
+       "apisandbox-dynamic-parameters-add-placeholder": "Nmaey parametrey",
+       "apisandbox-submit-invalid-fields-title": "Tay çiy ters şı",
+       "apisandbox-results": "Neticey",
+       "apisandbox-sending-request": "API waştış rışêno...",
        "apisandbox-request-url-label": "URL waştış:",
        "apisandbox-request-time": "Demê waştışi: $1",
        "booksources": "Çımeyê kıtaban",
        "specialloguserlabel": "Kerdoğ:",
        "speciallogtitlelabel": "Meqsed (sername ya zi {{ns:user}}:karberi rê nameyê karberi):",
        "log": "Qeydi",
+       "logeventslist-submit": "Bıasene",
        "all-logs-page": "Umumi qeydi pêro",
        "alllogstext": "qey {{SITENAME}}i mocnayişê heme rocaneyani.\ntipa rocaneyi, nameyê karberi (herfa pil u qıci re hessas a), ya zi peli (reyna hessasiyê herfa pil u qıciyi) bıweçine u esayiş qıc kerê.",
-       "logempty": "qaydi de weina yew malumat çino",
+       "logempty": "Qeydan dı malumato unasin çıni yo.",
        "log-title-wildcard": "sername yê ke pê ney nuşteyi destkenêpê bıgêr.",
        "showhideselectedlogentries": "Qeydê weçinayışê bımocne/bınımne dekerê",
+       "log-edit-tags": "Etiketanê weçinayê qeydan bıvurnê",
+       "checkbox-select": "Weçinaye: $1",
+       "checkbox-all": "Pêro",
+       "checkbox-none": "Temam",
+       "checkbox-invert": "Doç kerdış",
        "allpages": "Peli pêro",
        "nextpage": "Pela badê cû ($1)",
        "prevpage": "Pela verêne ($1)",
-       "allpagesfrom": "Pelanê ke be ena herfe dest pêkenê bımocne",
+       "allpagesfrom": "Pera liste kerdışi bıasne:",
        "allpagesto": "Pelanê ke be ena herfe qediyenê bımocne:",
        "allarticles": "Wesiqey pêro",
        "allinnamespace": "Peli pênro ( $1 cayênameyî)",
        "cachedspecial-viewing-cached-ts": "Na pela raşt niya, şımayê enewke versiyonê verhafızada na pela vinenê.",
        "cachedspecial-refresh-now": "Peyêni bıvin.",
        "categories": "Kategoriy",
+       "categories-submit": "Bıasene",
        "categoriespagetext": "{{PLURAL:$1|Kategoriya cêrene|Kategoriyanê cêrênan}} de peli ya zi medya estê.\n[[Special:UnusedCategories|Kategoriyê ke nêxebetiyenê]] tiya de nêmocniyayê.\n[[Special:WantedCategories|Kategoriyanê waşteyeyan]] de zi bıvêne.",
        "categoriesfrom": "Kategoriyê ke be ninan dest pêkenê, bımocne:",
        "deletedcontributions": "İştırakê karberi esterdi",
        "linksearch-line": "$1, $2 ra link biya",
        "linksearch-error": "jokeri têna nameyê makina ya serekini de aseni/eseni.",
        "listusersfrom": "karber ê ke pey ıney detpêkeni ramocın:",
-       "listusers-submit": "Bımocne",
+       "listusers-submit": "Bıasene",
        "listusers-noresult": "karber nêdiyayo/a.",
        "listusers-blocked": "(blok biy)",
        "activeusers": "Listey karberan de aktivan",
        "activeusers-intro": "Ena yew listeya karberê ke $1 {{PLURAL:$1|roc|rocan}} ra tepya iştiraq kerdo ênan mocneno.",
-       "activeusers-count": "$1 peyni {{PLURAL:$3|roz de|$3 rozan de}} $1 {{PLURAL:$1|hereket|hereketi}} kerdê",
+       "activeusers-count": "Peyni  {{PLURAL:$3|roc de|$3 rocan de}} $1  {{PLURAL:$1|hereket kerdo|hereketi kerdê}}",
        "activeusers-from": "Enê karberi ra tepya bımocne:",
        "activeusers-hidebots": "Botan bınımne",
        "activeusers-hidesysops": "İdarekaran bınımne",
        "activeusers-noresult": "Karberi nêdiyayê.",
+       "activeusers-submit": "Karberanê aktivan bıasene",
        "listgrouprights": "heqê grubê karberi",
        "listgrouprights-summary": "wikiya cêrın a ke tede grubê karberi nişane biyê, listeya heqê cıresayişê inan o.\nqey heqê şexsi de [[{{MediaWiki:Listgrouprights-helppage}}|hema malumato ziyed]] belka esto.",
        "listgrouprights-key": "* <span class=\"listgrouprights-granted\">Heqa daiye</span>\n* <span class=\"listgrouprights-revoked\">Heqa gıreti</span>",
        "listgrouprights-group": "Grube",
        "listgrouprights-rights": "Heqqî",
        "listgrouprights-helppage": "Help:Heqqanê gruban",
-       "listgrouprights-members": "[lista ezayan]",
+       "listgrouprights-members": "[listey ezayan]",
        "listgrouprights-right-display": "<span class=\"listgrouprights-granted\">$1 <code>($2)</code></span>",
        "listgrouprights-right-revoked": "<span class=\"listgrouprights-revoked\">$1 <code>($2)</code></span>",
        "listgrouprights-addgroup": "{{PLURAL:$2|Grube|Gruban}} cı kerê: $1",
        "listgrouprights-removegroup-self": "Hesabê xo ra {{PLURAL:$2|grube|gruban}} bıvecê: $1",
        "listgrouprights-addgroup-self-all": "şıma eşkeni hesabê xo re heme gruban têare bıkerî",
        "listgrouprights-removegroup-self-all": "şıma hesabê xo ra eşkeni heme gruban bıveci",
+       "listgrouprights-namespaceprotection-header": "Kılm kerdena nameyan",
        "listgrouprights-namespaceprotection-namespace": "Heruna nami",
+       "listgrants": "Hibey",
+       "listgrants-grant": "Hibe",
+       "listgrants-rights": "Heqi",
        "trackingcategories": "Kategoriyê teqibi",
        "trackingcategories-msg": "Kategoriya teqibi",
        "trackingcategories-name": "Namey mesaci",
        "wlnote": "$3 saete $4 ra dıme {{PLURAL:$2|yew saete de|'''$2''' saetan de}} {{PLURAL:$1|vurnayışo peyên|vurnayışê '''$1''' peyêni}} cêrderê.",
        "wlshowlast": "Peyni de vurnayışan ra  $1 seata u $2 roca  bımocnê",
        "watchlist-hide": "Bınımne",
-       "wlshowtime": "Peyênan bımocne:",
+       "watchlist-submit": "Bıasene",
+       "wlshowtime": "Periyoda zemani asenayışi:",
        "wlshowhideminor": "vurnayışê werdiyi",
        "wlshowhidebots": "boti",
        "wlshowhideliu": "karberê qeydıni",
        "delete-confirm": "\"$1\" bestere",
        "delete-legend": "Bestere",
        "historywarning": "'''Teme:''' Pela ke şıma esterenê tede yew viyarte be teqriben $1 {{PLURAL:$1|versiyon esto|versiyoni estê}}:",
+       "historyaction-submit": "Bıasene",
        "confirmdeletetext": "Tı ho yew pele u tarixê pele wederneno.\nTı ra rica keno, tı zani tı ho sekeno, tı zani neticeyanê eno wedarnayışi u tı zani tı ser [[{{MediaWiki:Policy-url}}|poliçe]] kar keno.",
        "actioncomplete": "Kar bi temam",
        "actionfailed": "kar nêbı",
        "changecontentmodel-title-label": "Sernameyê pele",
        "changecontentmodel-model-label": "Modelê zerrekiyo newe",
        "changecontentmodel-reason-label": "Sebeb:",
+       "changecontentmodel-submit": "Bıvurne",
        "log-name-contentmodel": "Qeydê vurnayışanê modelê zerreki",
+       "logentry-contentmodel-change-revertlink": "peyser biya",
+       "logentry-contentmodel-change-revert": "peyser biya",
        "protectlogpage": "Qeydê staryayan",
        "protectlogtext": "Şıma vurnayişê gırewtışê/wedarnayışê pawıtişi vinenê.\nQey malumato ziyede [[Special:ProtectedPages|Peleyê ke star biye]] bewni rê êna .",
        "protectedarticle": "\"[[$1]]\" kılit biyo",
        "protect-othertime": "Wextê binî:",
        "protect-othertime-op": "wextê binî",
        "protect-existing-expiry": "wextê qediyayişi yê mewcudi: $3, $2",
+       "protect-existing-expiry-infinity": "Mewcud drmê qedyayışi:Bewext",
        "protect-otherreason": "sebebo bin/sebebê ilaveyi",
        "protect-otherreason-op": "Sebebo bin",
        "protect-dropdown": "*sebebê pawıtışi ye pêroyiye\n** vandalizmo hed ra vecaye\n** spamo hed ra vecaye\n** şêrê/herbê vurnayişi\n** pel o ke zaf wayirê trafiki yo",
        "maximum-size": "Ebatê maximumî",
        "pagesize": "(bitî)",
        "restriction-edit": "Bıvurne",
-       "restriction-move": "Bere",
+       "restriction-move": "Berr",
        "restriction-create": "Vıraze",
        "restriction-upload": "Bar ke",
        "restriction-level-sysop": "tam pawiyayo",
        "restriction-level-autoconfirmed": "nêm pawiyayo",
        "restriction-level-all": "kamci be sewiya",
-       "undelete": "Peleyê ke besterneyayê enê bımocnê",
+       "undelete": "Peranê esteryayan bıasne",
        "undeletepage": "bıewn revizyonê peli yê hewn a şiyayeyan u tepiya biyar",
        "undeletepagetitle": "'''pelo [[:$1|$1]] cêrın, wayirê revizyonê hewn a şiyayeyan o'''.",
        "viewdeletedpage": "Pelanê esteriyayeyan bımocne",
        "undeletebtn": "Timar bike",
        "undeletelink": "bıvêne/peyser biya",
        "undeleteviewlink": "bıvin",
-       "undeleteinvert": "Weçinıtışi açarne",
+       "undeleteinvert": "Weçinayışi dimlaşt ke",
        "undeletecomment": "Sebeb:",
        "undeletedrevisions": "pêro piya{{PLURAL:$1|1 qeyd|$1 qeyd}} tepiya anciya.",
        "undeletedrevisions-files": "{{PLURAL:$1|1 revizyon|$1 revizyon}} u {{PLURAL:$2|1 dosya|$2 dosya}} ameyê halê xo yê verıni",
        "undelete-show-file-confirm": "\"<nowiki>$1</nowiki>\" şıma emin î dosyaya revizyonê no $2 $3 tarixi bıvini?",
        "undelete-show-file-submit": "Eya",
        "namespace": "Heruna nameyi:",
-       "invert": "Weçinıtışi açarne",
+       "invert": "Weçinayışi dimlaşt ke",
        "tooltip-invert": "nameyo ke nışan biyo (u nameyo elekeyın zi nışanyyayo se) vurnayışan  zerrekan nımtışi re ena dore tesdiqi nışan kerê",
        "namespace_association": "Heruna nameyanê elaqedaran",
        "tooltip-namespace_association": "Herunda canemiya elekeyın nışan kerdışi sero qıse kerdışi yana zerre dekerdışi rê ena dora tesdiqi nışan kerê",
        "blanknamespace": "(Ser)",
-       "contributions": "İştıraqê {{GENDER:$1|karber}}i",
+       "contributions": "İştiraqê {{GENDER:$1|karber}}i",
        "contributions-title": "Dekerdenê karber de $1",
        "mycontris": "İştıraqi",
        "anoncontribs": "İştıraqi",
        "sp-contributions-username": "Adresa IPy ya zi nameyê karberi:",
        "sp-contributions-toponly": "Tenya rewizyonanê tewr peyniyan bimocne",
        "sp-contributions-submit": "Cı geyre",
-       "whatlinkshere": "Pele rê gırey",
+       "whatlinkshere": "Pele rê gıreyi",
        "whatlinkshere-title": "Per da \"$1\" rê perê ke gre danê",
        "whatlinkshere-page": "Pele:",
        "linkshere": "Ena peleyan grey biya '''[[:$1]]''':",
        "whatlinkshere-hidelinks": "Greyê $1",
        "whatlinkshere-hideimages": "Gıreyê dosya $1",
        "whatlinkshere-filters": "Avrêci",
+       "whatlinkshere-submit": "Şo",
        "autoblockid": "Otomatik vındarnayış #$1",
        "block": "Karberi vındarne",
        "unblock": "Hesabê karberi akerê",
-       "blockip": "Karberi kılit ke",
+       "blockip": "{{GENDER:$1|Karberi}} kılit ke",
        "blockip-legend": "Karber blok bike",
-       "blockiptext": "pê şuxulnayişê formê cêrıni, şıma eşkeni verniyê vurnayişkerdışê yew karberi ya zi yew IPyi bıgêrî. No têna qey verni-gırewtışê vandalizmiyo u gani şıma [[{{MediaWiki:Policy-url}}|qaydeyan]] re diqqet bıkeri. cêr de muheqqeq sebebê verni-grewtışi bınusi. (mesela: -nê- pelani de vandalizm kerdo).",
+       "blockiptext": "pê şuxulnayişê formê cêrıni, şıma eşkeni verniyê vurnayişkerdışê yew karberi ya zi yew IPyi bıgêrî. No têna qey verni-gırewtışê vandalizmiyo u gani şıma [[{{MediaWiki:Policy-url}}|qaydeyan]] re diqqet bıkeri. cêr de muheqqeq sebebê verni-grewtışi bınusi. (mesela: -nê- pelani de vandalizm kerdo)",
        "ipaddressorusername": "Adresa IPy ya zi nameyê karberi:",
        "ipbexpiry": "Qedyayış:",
        "ipbreason": "Sebeb:",
        "ipb-unblock": "Yew adresê IPî ya zi nameyê karberî blok bike",
        "ipb-blocklist": "Blokî ke hama estê ey bivîne",
        "ipb-blocklist-contribs": "Qandê {{GENDER:$1|}} ra iştıraqi",
+       "ipb-blocklist-duration-left": "$1 vet",
        "unblockip": "Hesabê karberî a bike",
        "unblockiptext": "Cıreştışê nuştışê IP ya zi karberio ke ver ra gêriyayo, seba peyser barkerdışi dey rê formê cêrêni bıgurenên.",
        "ipusubmit": "Enê kılitkerdışi wedare",
        "movepage-page-moved": "pelê $1i kırışiya pelê $2i.",
        "movepage-page-unmoved": "pelê $1i nêkırışiyeno sernameyê $2i.",
        "movepage-max-pages": "tewr ziyed $1 {{PLURAL:$1|peli|peli}} kırışiya u hıni ziyedê ıney otomotikmen nêkırışiyeno.",
-       "movelogpage": "Qeydê berdışi",
+       "movelogpage": "Qeydê wegrotışi",
        "movelogpagetext": "nameyê liste ya ke cêr de yo, pelê vuriyayeyani mocneno",
        "movesubpage": "{{PLURAL:$1|Subpage|pelê bınıni}}",
        "movesubpagetext": "{{PLURAL:$1|pelê bınıni yê|pelê bınıni yê}} no $1 peli cer de yo.",
        "allmessagesname": "Name",
        "allmessagesdefault": "Metnê mesacê hesabiyayey",
        "allmessagescurrent": "Nuşteyê mesacê rocaneyi",
-       "allmessagestext": "na liste, listeya mesajê cayê nameyê wikimedya yo.\neke şıma qayili paşt bıdi mahalli kerdışê wikimedyayi, kerem kerê pelê [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation mahalli kerdışê wikimedyayi] u [//translatewiki.net translatewiki.net] ziyaret bıkerê.",
+       "allmessagestext": "na liste, listeya mesajê cayê nameyê wikimedya yo.\neke şıma qayili paşt bıdi mahalli kerdışê wikimedyayi, kerem kerê pelê [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation mahalli kerdışê wikimedyayi] u [https://translatewiki.net translatewiki.net] ziyaret bıkerê.",
        "allmessagesnotsupportedDB": "'''$wgUseDatabaseMessages''' qefelnaye yo u ey ra '''{{ns:special}}:Allmessages''' karkerdışi re akerde niyo.",
        "allmessages-filter-legend": "Avrêc",
        "allmessages-filter": "goreyê xususi kerdışi re filtre bıker",
        "import": "Peleyi import bik",
        "importinterwiki": "Zewbina wiki ra ard",
        "import-interwiki-text": "qey kırıştışê zerreyi yew wiki u pel bıvıcinê.\ntarixê revizyon u nameyê nuştoxi pawyene.\nkarê zerredayişê benateyê wikiyani[[Special:Log/import|zerreyê rocaneyê kırıştî de]] qeyd beno.",
+       "import-interwiki-sourcewiki": "Çıme wiki:",
+       "import-interwiki-sourcepage": "Çıme pela:",
        "import-interwiki-history": "Qeydanê pele pêrune kopya ke",
        "import-interwiki-templates": "Şablonan pêro zerre ke",
        "import-interwiki-submit": "Zerre ke",
+       "import-mapping-default": "Hesıbyaye lokasyonan miyan ke",
+       "import-mapping-namespace": "Dek yu canamey miyan",
+       "import-mapping-subpage": "Bınnpeley ena peler deyne azere ke",
        "import-upload-filename": "Nameyê dosyayi:",
        "import-comment": "Mışewre:",
        "importtext": "Kerem ke dosyay, çımeyê wiki ra pê [[Special:Export|kırıştışê teberdayişi]] bıdê teber, Komputerê xo de qeyd kerê u bar kerê tiya.",
        "tooltip-ca-unprotect": "Starkerdışe ena peler bıvurne",
        "tooltip-ca-delete": "Ena pele bestere",
        "tooltip-ca-undelete": "peli biyarê halê ver hewnakerdışi",
-       "tooltip-ca-move": "Ena pele bere",
+       "tooltip-ca-move": "Ena peler wegi",
        "tooltip-ca-watch": "Ena pele lista xoya seyrkerdışi ke",
        "tooltip-ca-unwatch": "Ena pele lista xoya seyrkerdışi ra vece",
        "tooltip-search": "{{SITENAME}} de cı geyre",
        "tooltip-preferences-save": "Terciha qeyd ke",
        "tooltip-summary": "Yew xulasaya kilm binuse",
        "interlanguage-link-title": "$1 - $2",
+       "common.css": "/************************************************\n * COMMON CSS\n *\n * Any CSS placed in this page will be used on \n * all skins, please think carefully about if it\n * belongs here (and not in one of the skin CSS\n * pages) before adding it. Thanks.\n ************************************************/\n\n/* <table class=\"highlighthovertable\"> */\ntable.highlighthovertable tr:hover,\ntable.highlighthovertable tr:hover td,\ntable.mw-ext-translate-groupstatistics tr:hover,\ntable.mw-ext-translate-groupstatistics tr:hover td {\n background-color: white;\n}\n\n\n/* Babel wrapper layout. */\n/* XXX: This is either redundant or should be in-core */\n/* @noflip */table.mw-babel-wrapper {\n\twidth:        238px;\n\tfloat:        right;\n\tclear:        right;\n\tmargin:       1em;\n\tborder-style: solid;\n\tborder-width: 1px;\n\tborder-color: #99B3FF;\n}\n\n/* Babel box layout. */\n/* @noflip */div.mw-babel-box {\n\tfloat:  left;\n\tclear:  left;\n\tmargin: 1px;\n}\n\ndiv.mw-babel-box table {\n\twidth: 238px;\n}\n\ndiv.mw-babel-box table th {\n\twidth:       238px;\n\twidth:       45px;\n\theight:      45px;\n\tfont-size:   14pt;\n\tfont-family: monospace;\n}\n\ndiv.mw-babel-box table td {\n\tfont-size:   8pt;\n\tpadding:     4pt;\n\tline-height: 1.25em;\n}\n\n/* Babel box colours. */\ndiv.mw-babel-box-0 {\n\tborder: solid #B7B7B7 1px;\n}\n\ndiv.mw-babel-box-1 {\n\tborder: solid #C0C8FF 1px;\n}\n\ndiv.mw-babel-box-2 {\n\tborder: solid #77E0E8 1px;\n}\n\ndiv.mw-babel-box-3 {\n\tborder: solid #99B3FF 1px;\n}\n\ndiv.mw-babel-box-4 {\n\tborder: solid #CCCC00 1px;\n}\n\ndiv.mw-babel-box-5 {\n\tborder: solid #F99C99 1px;\n}\n\ndiv.mw-babel-box-N {\n\tborder: solid #6EF7A7 1px;\n}\n\ndiv.mw-babel-box-0 table th {\n\tbackground-color: #B7B7B7;\n}\n\ndiv.mw-babel-box-1 table th {\n\tbackground-color: #C0C8FF;\n}\n\ndiv.mw-babel-box-2 table th {\n\tbackground-color: #77E0E8;\n}\n\ndiv.mw-babel-box-3 table th {\n\tbackground-color: #99B3FF;\n}\n\ndiv.mw-babel-box-4 table th {\n\tbackground-color: #CCCC00;\n}\n\ndiv.mw-babel-box-5 table th {\n\tbackground-color: #F99C99;\n}\n\ndiv.mw-babel-box-N table th{\n\tbackground-color: #6EF7A7;\n}\n\ndiv.mw-babel-box-0 table {\n\tbackground-color: #E8E8E8;\n}\n\ndiv.mw-babel-box-1 table {\n\tbackground-color: #F0F8FF;\n}\n\ndiv.mw-babel-box-2 table {\n\tbackground-color: #D0F8FF;\n}\n\ndiv.mw-babel-box-3 table {\n\tbackground-color: #E0E8FF;\n}\n\ndiv.mw-babel-box-4 table {\n\tbackground-color: #FFFF99;\n}\n\ndiv.mw-babel-box-5 table {\n\tbackground-color: #F9CBC9;\n}\n\ndiv.mw-babel-box-N table {\n\tbackground-color: #C5FCDC;\n}\n\n.babel-box td.babel-footer {\n\ttext-align: center;\n}\n\n/* Styling for portals. */\ndiv.table {\n    display:        table;\n    vertical-align: top;\n    width:          100%;\n}\n\ndiv.table-row {\n    display:        table-row;\n    vertical-align: top;\n}\n\ndiv.table-cell {\n    display:        table-cell;\n    vertical-align: top;\n}\n\nbody.ns-100 table.mw-babel-wrapper {\n    border:           solid 1px #bbbbbb;\n    background-color: #f0f0f0;\n    margin-left:      1em;\n}\n\n.graytext {\n    color: #aaa;\n}\n\n/* On [[Special:RecentChanges]] and [[Special:Watchlist]] make the new pages symbol bold green and the minor edit symbol gray. */\n.newpage {\n    color:       green;\n    font-weight: bold\n}\n\n.minoredit,\n.minor {\n    color: gray;\n}\n\n/* Monospace diffs, this makes more sense since diffs show what would be seen in the edit box. */\n/* Note: Anno 2012 many browsers don't use monospace in the textarea anymore by default, notably Chrome and Safari don't (unless the user overrides this in the preferences) */\n.diff-context,\n.diff-deletedline,\n.diff-addedline {\n    font-family: monospace, \"Courier New\";\n/* Just guess does the stupid wikidiff2 extensions add extra whitespace around..... */\n    white-space: -moz-pre-wrap;\n    white-space: pre-wrap;\n}\n \n.diffchange {\n    border: 1px dotted rgb( 170, 170, 170 );\n}\n\n/* It is unclear what the following CSS does, please add comments if you can clarify. */\n/* The box which is 400px high and if its content is longer, it gets the scrollbar */\n.scrollme {\n    overflow: scroll;\n    width:    100%;\n    height:   400px;\n}\n\n/* Standard Navigationsleisten, aka box hiding thingy from .de.  Documentation at [[Wikipedia:NavFrame]]. */\ndiv.Boxmerge, div.NavFrame { margin: 0; padding: 4px; border-collapse: collapse;}\ndiv.Boxmerge div.NavFrame { border-style: none; border-style: hidden; }\ndiv.NavFrame + div.NavFrame { border-top-style: none; border-top-style: hidden; }\ndiv.NavFrame div.NavHead { height: 1.6em; position:relative; }\ndiv.NavEnd { margin: 0; padding: 0; line-height: 1px; clear: both; }\na.NavToggle { position: absolute; top: 0; right: 5px; }\n.note-flaggedrevs * a.NavToggle { right: 12px; } /* For [[Template:Flagged Revs]] */\n\n/* Template:Languages */\n.bw-languages {\n    border:          1px solid #aaaaaa;\n    padding:         0.2em;\n    border-collapse: collapse;\n    line-height:     1.2;\n    font-size:       95%;\n    margin:          1px 1px;\n}\n.bw-languages-title {\n    width:        180px;\n    border:       1px solid #aaaaaa;\n    background:   #EEF3E2;\n    padding:      0.5em;\n    font-weight:  bold;\n}\n.bw-languages-links { padding:0.5em; background:#F6F9ED; }\n\n/* Senseless in this project */\n#editpage-copywarn { display: none; }\n\n/* Hide warnings about bad links on MediaWiki:Common.css */\n.page-MediaWiki_Common_css .mw-translate-messagechecks { display: none; }\n\n/*******************\n** Faciliate RTL translation\n*******************/\n/* @noflip */\n#bodyContent .arabic a {\n\tpadding-right:0;\n\tbackground:none;\n}\n\n.vatop tr, tr.vatop, .vatop td, .vatop th {\n vertical-align: top;\n}\n\n.bw-languages {\n direction: ltr;\n}\n\n/* prevent wrapping of lines in LQT TOC if not necessary */\ntable.lqt_toc {\n\twidth: auto;\n}\n\n/* [[m:MediaZilla:35337]] */\n@media (-webkit-min-device-pixel-ratio: 1.5), (min-resolution: 1.5dppx) {\n        #p-logo a {\n                background-image: url(\"//translatewiki.net/images/thumb/7/7c/Translatewiki-logo-bare.svg/152px-Translatewiki-logo-bare.svg.png\") !important;\n                background-size: auto 135px;\n        }\n}\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {\n        #p-logo a {\n                background-image: url(\"//translatewiki.net/images/thumb/7/7c/Translatewiki-logo-bare.svg/202px-Translatewiki-logo-bare.svg.png\") !important;\n                background-size: auto 135px;\n        }\n}\n\n/* qqq visibility, [[Thread:Support/Suggestion: Add this CSS to MediaWiki:Common.css]] */\n \n.mw-sp-translate-edit-info .mw-content-ltr {\n  background-position:left center;\n  padding-left:45px;\n}\nfieldset.mw-sp-translate-edit-info .mw-centent-rtl {\n  background-position:right center;\n  padding-right:45px;\n}\n\n/* Semantic MediaWiki - make special properties easier to identify */\n\n.smwbuiltin a,\n.smwbuiltin a.new {\n\tcolor: #FF8000;\n}\n\n/* Recentchangestext toggle link */\n.white-link a {\n    color: #fff;\n}",
        "common.js": "/* Any JavaScript here will be loaded for all users on every page load. */",
        "anonymous": "{{PLURAL:$1|karberê|karberê}} anonimi yê keyepelê {{SITENAME}}i",
        "siteuser": "karberê {{SITENAME}}i $1",
        "pageinfo-category-pages": "Amarê pelan",
        "pageinfo-category-subcats": "Amarê bınkategoriyan",
        "pageinfo-category-files": "Amarê dosyeyan",
-       "markaspatrolleddiff": "Nişan bıke ke dewriya biyo",
-       "markaspatrolledtext": "Ena pele nişan bike ke devriye biyo",
+       "markaspatrolleddiff": "Kontrol biyayi nışan ke",
+       "markaspatrolledtext": "Ena pele kontrol biyayi nışan ke",
        "markedaspatrolled": "Nişan biyo ke verni de devriye biyo",
        "markedaspatrolledtext": "Versiyone weçinaye [[:$1]] nişan biyo ke devriye biyo",
        "rcpatroldisabled": "Dewriyaya vurnayışê peyêni nêxebetiyena",
        "file-info-png-frames": "$1 {{PLURAL:$1|çerçeve|çerçeveyi}}",
        "file-no-thumb-animation": "'''Not: Dılet tekniko limit, gırd agozneya resm de qıckek de animasyoni miyan dı nêbo.'''",
        "file-no-thumb-animation-gif": "'''Not: Dılet tekniko limit, gırd agozneya resm de qıckek de  GIF imaci de animasyon do nêbo.'''",
-       "newimages": "Galeriya dosyayan dê newan",
+       "newimages": "Galeriya dosyanê neweyan",
        "imagelisttext": "Cêr de yew listeyê '''$1''' esto {{PLURAL:$1|dosya|dosyayi}} veçiniya $2.",
        "newimages-summary": "Ena pela xasi dosyayi ke peni de bar biyayeyi mocnane.",
        "newimages-legend": "Avrêc",
        "variantname-shi": "shi",
        "metadata": "Melumato serên",
        "metadata-help": "Ena dosya dı zafyer informasyoni esto. Belki ena dosya yew kamareyo dijital ya zi skaner ra vıraziyo.\nEg ena dosya, kondisyonê orcinali ra bıvuriya, belki detayanê hemi nıeseno.",
-       "metadata-expand": "Detayan bımocne",
+       "metadata-expand": "Detayan bıasne",
        "metadata-collapse": "melumati bınımne",
        "metadata-fields": "Resımê meydanê metadataê ke na pele de benê lista, pela resımmocnaene de ke tabloê metadata gına waro, gureniyenê.\nÊ bini zey sayekerdoğan nımiyenê.\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": "'''$2:''' $1",
        "confirm-watch-top": "Ena pele lista xoya seyrkerdışi ke",
        "confirm-unwatch-button": "TEMAM",
        "confirm-unwatch-top": "Ena pele lista xoya seyirkerdışi ra bıvece?",
+       "confirm-rollback-button": "TEMAM",
        "semicolon-separator": "&#32;",
        "comma-separator": ",&#32;",
        "colon-separator": ":&#32;",
        "autosumm-replace": "Maqale pê '$1' vuriya",
        "autoredircomment": "heteneya [[$1]]",
        "autosumm-new": "Pela vıraziyê, '$1' bıvinê",
-       "size-bytes": "$1 B",
+       "size-bytes": "$1 {{PLURAL:$1|bayt|bayti}}",
        "size-kilobytes": "$1 KB",
        "size-megabytes": "$1 MB",
        "size-gigabytes": "$1 GB",
        "version-hook-name": "Nameyê çengelî",
        "version-hook-subscribedby": "Eza biyayoğ",
        "version-version": "($1)",
+       "version-no-ext-name": "[namr çıno]",
        "version-license": "Lisansê MediaWiki",
        "version-ext-license": "Lisans",
        "version-ext-colheader-name": "Dergiye",
+       "version-skin-colheader-name": "Çerme",
        "version-ext-colheader-version": "Versiyon",
        "version-ext-colheader-license": "Lisans",
        "version-ext-colheader-description": "Şınasnayış",
        "version-entrypoints-header-url": "GRE",
        "version-entrypoints-articlepath": "[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgArticlePath Article path]",
        "version-entrypoints-scriptpath": "[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgScriptPath Script path]",
+       "version-libraries-library": "Kıtıbxane",
+       "version-libraries-version": "Versiyon",
+       "version-libraries-license": "Lisans",
+       "version-libraries-description": "Şınasnayış",
+       "version-libraries-authors": "Nuştekari",
        "redirect": "Serşıkıtena dosya, karberi, pele ya ki revizyonê kamiya dosya",
        "redirect-summary": "Na pela xase to hetê yew dosya (nameyê dosya dayeyo), yew pele (kamiya revizyoni ya zi pele dayiya) ya zi yew pela karberi (kamiya karberiya reqemkiye dayiya) ser şıknena. Gurenayış: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], ya zi  [[{{#Special:Redirect}}/user/101]].",
        "redirect-submit": "Şo",
        "redirect-page": "Kamiya pele",
        "redirect-revision": "Çımraviyarnayışê pele",
        "redirect-file": "Namey dosya",
+       "redirect-logid": "Qeydé  ID",
        "redirect-not-exists": "Erc nêvineyê",
        "fileduplicatesearch": "Dosyayanê zey pêyan cı geyrê",
        "fileduplicatesearch-summary": "Dosyanê çıftan bınê têmiyankewteyan de bıgeyre.",
        "fileduplicatesearch-result-1": "Dosyayê ''$1î'' de hem-kopya çini yo.",
        "fileduplicatesearch-result-n": "Dosyayê ''$1î'' de {{PLURAL:$2|1 hem-kopya|$2 hem-kopyayî'}} esto.",
        "fileduplicatesearch-noresults": "Ebe namey \"$1\" ra dosya nêdiyayê.",
-       "specialpages": "Pelê xasi",
+       "specialpages": "Peleyê xısusiy",
        "specialpages-note-top": "Kıtabek",
        "specialpages-note": "* Pelê xasê normali.\n* <span class=\"mw-specialpagerestricted\">Pelê xasê nımıtey.</span>",
        "specialpages-group-maintenance": "Raporê pawıtışi",
        "blankpage": "Pela venge",
        "intentionallyblankpage": "Ena pel bi zanayişî weng mendo.",
        "external_image_whitelist": "  #no satır zey xo verde/raverde<pre>\n#parçeyê ifadeya rêzbiyayeyani (têna zerreyê ıney de // ) u çıtayo/çiyo zi mende cêr de têare kerê.\n#ney URL ya (hotlink) resmê teberi de hemcıta benî.\n#Ê yê ke hemcıt (eşleşmek-hemçift) biyê zey resımi asenî, eqsê hal de zi zey gıreyê resmi aseno.\nsatır ê ke pê ney # # destpêkenê zey mışore/mıjore muamele vineno.\n#herfa gırd û qıci ferq nêkeno\n\n#parçeyê ifadeya rêzbiyayeyani bıerzê serê ney satıri. no satır zey xo verde/raverde </pre>",
-       "tags": "Etiketê vurnayîşê raştî",
+       "tags": "Ravêrde vurnayışanê etiketa",
        "tag-filter": "Parzûnê [[Special:Tags|etiketi]]:",
        "tag-filter-submit": "Avrêc",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Etiket|Etiketi}}]]: $2)",
        "tags-description-header": "Tam arezekerdışê maneyê cı",
        "tags-active-header": "Activ o?",
        "tags-hitcount-header": "Vurnayîşî ke etiket biyê",
+       "tags-actions-header": "Kerdışi",
        "tags-active-yes": "Eya",
        "tags-active-no": "Nê",
+       "tags-source-extension": "Teref dê yo dergeneki ra şınasiyayo",
        "tags-edit": "bıvurne",
+       "tags-delete": "bestere",
+       "tags-activate": "Aktiv ke",
+       "tags-deactivate": "Aktiv mek",
        "tags-hitcount": "$1 {{PLURAL:$1|vurnayış|vurnayışi}}",
+       "tags-create-tag-name": "Nameyê etiketi:",
+       "tags-create-reason": "Sebeb:",
+       "tags-create-submit": "Vıraze",
+       "tags-edit-reason": "Sebeb:",
        "comparepages": "Pela miqeyese ke",
        "compare-page1": "Pele 1",
        "compare-page2": "Pele 2",
        "feedback-bugcheck": "Harika! Sadece [xırabina ke $1 ] çınyayışê cı kontrol keno.",
        "feedback-bugnew": "Mı qontrol ke. Xetaya newi xeber ke",
        "feedback-bugornote": "Jew mersela teferruato teknik esta şıma reca malumatê şıma hazıro se [ $1  jew xırab rapor] bıvinê.Zewbi zi, formê cerê xo rê şenê karfiyê. Vatışê xo pela da \"[ $3  $2 ]\", namey karber dê xoya piya u wasteriya karfiye.",
-       "feedback-cancel": "Bıtexelne",
+       "feedback-cancel": "Peyd ke",
        "feedback-close": "Biya star",
        "feedback-error1": "Xeta: API ra neticey ne vıcyay",
        "feedback-error2": "Xeta: Timar kerdış nebı",
        "special-characters-title-minus": "işaretê kemiye",
        "mw-widgets-dateinput-placeholder-day": "SSSS-AA-RR",
        "mw-widgets-dateinput-placeholder-month": "SSSS-AA",
-       "mw-widgets-titleinput-description-redirect": "berd be $1",
-       "api-error-blacklisted": "Reca keme zewbina weçine, name wa şınasnaye bo."
+       "mw-widgets-titleinput-description-redirect": "berd be $1"
 }
index 0cbc2e8..179bebb 100644 (file)
        "protectedpagetext": "Toś ten bok jo pśeśiwo wobźěłowanjeju abo drugim akcijam šćitany.",
        "viewsourcetext": "Žrědłowy tekst togo boka móžoš se woglědaś a kopěrowaś:",
        "viewyourtext": "Móžoš se žrědłowy tekst '''swójich změnow''' woglědaś a do toś togo bok kopěrowaś:",
-       "protectedinterface": "Toś ten bok wopśimujo tekst za rěcny zwjerch softwary na toś tom wikiju a šćita se, aby se znjewužywanjeju zadorało.\nAby pśełožki za wšykne wikije pśidał abo změnił, wužyj pšosym [//translatewiki.net/ translatewiki.net], lokalizěrowański projekt MediaWiki.",
-       "editinginterface": "'''Warnowanje:''' Wobźěłujoš bok, kótaryž se wužywa, aby se tekst za pówjerch software MediaWiki k dispoziciji stajił. Změny na toś tom boku buźo wuglědanje wužywarskego pówjercha za drugich wužywarjow na toś tom wikiju wobwliwowaś.\nAby pśełožki za wšykne wikije pśidał abo změnił, wužywaj pšosym [//translatewiki.net/ translatewiki.net], projekt MediaWiki za lokalizacije.",
+       "protectedinterface": "Toś ten bok wopśimujo tekst za rěcny zwjerch softwary na toś tom wikiju a šćita se, aby se znjewužywanjeju zadorało.\nAby pśełožki za wšykne wikije pśidał abo změnił, wužyj pšosym [https://translatewiki.net/ translatewiki.net], lokalizěrowański projekt MediaWiki.",
+       "editinginterface": "'''Warnowanje:''' Wobźěłujoš bok, kótaryž se wužywa, aby se tekst za pówjerch software MediaWiki k dispoziciji stajił. Změny na toś tom boku buźo wuglědanje wužywarskego pówjercha za drugich wužywarjow na toś tom wikiju wobwliwowaś.\nAby pśełožki za wšykne wikije pśidał abo změnił, wužywaj pšosym [https://translatewiki.net/ translatewiki.net], projekt MediaWiki za lokalizacije.",
        "cascadeprotected": "Za toś ten bok jo se wobźěłowanje znjemóžniło, dokulaž jo zawězany do {{PLURAL:$1|slědujucego boka|slědujuceju bokowu|slědujucych bokow}}, {{PLURAL:$1|kótaryž jo|kótarejž stej|kótarež su}} pśez kaskadowu opciju {{PLURAL:$1|šćitany|šćitanej|šćitane}}: $2",
        "namespaceprotected": "Njejsy wopšawnjony, boki w rumje: '''$1''' wobźěłaś.",
        "customcssprotected": "Njamaš pšawo, aby toś ten CSS-bok wobźěłał, dokulaž wopśimujo  wósobinske nastajenja drugego wužywarja.",
        "resetpass-temp-password": "Nachylne gronidło:",
        "resetpass-abort-generic": "Změnjanje gronidła jo se pśez rozšyrjenje pśetergnuło.",
        "resetpass-expired": "Twójo gronidło jo pśepadnyło. Pšosym póstaj nowe gronidło za pśizjawjenje.",
-       "resetpass-expired-soft": "Twójo gronidło jo pśepadnyło a musy se slědk stajiś. Pšosym wubjeŕ něnto druge gronidło abo klikni na \"{{int:resetpass-submit-cancel}}\", aby jo pózdźej slědk stajił.",
-       "resetpass-validity-soft": "Wašo gronidło njejo płaśiwe: $1\n\nPšosym wubjeŕ něnto nowe gronidło abo klikni na \"{{int:resetpass-submit-cancel}}\", aby jo pózdźej slědk stajił.",
+       "resetpass-expired-soft": "Twójo gronidło jo pśepadnyło a musy se slědk stajiś. Pšosym wubjeŕ něnto druge gronidło abo klikni na \"{{int:authprovider-resetpass-skip-label}}\", aby jo pózdźej slědk stajił.",
+       "resetpass-validity-soft": "Wašo gronidło njejo płaśiwe: $1\n\nPšosym wubjeŕ něnto nowe gronidło abo klikni na \"{{int:authprovider-resetpass-skip-label}}\", aby jo pózdźej slědk stajił.",
        "passwordreset": "Gronidło slědk stajiś",
        "passwordreset-text-one": "Wupołni toś ten formular, aby swójo gronidło anulěrował.",
        "passwordreset-text-many": "{{PLURAL:$1|Wupołni jadne z pólow, aby nachylne gronidło pśez e-mail dostał.}}",
        "querypage-disabled": "Toś ten specialny bok jo z wugbaśowych pśicynow znjemóžnjony.",
        "apisandbox": "API-grajkanišćo",
        "apisandbox-api-disabled": "API jo se na toś tom sedle znjemóžnił.",
-       "apisandbox-intro": "Wužyj toś ten bok, aby z '''websłužbu Mediawiki API''' eksperimentěrował.\nGlědaj [//www.mediawiki.org/wiki/API:Main_page API-dokumentaciju] za dalšne drobnostki za wužywanje API. Pśikład: [//www.mediawiki.org/wiki/API#A_simple_example Wopśimjeśe głownego boka wótwołaś]. Wubjeŕ akciju, aby dalšne pśikłady wiźeł.\n\nŹiwaj na to, až, lěcrownož to jo grajkanišćo, akcije, kótarež pśewjedujoš na toś tom boku, by mógli wiki změniś.",
+       "apisandbox-intro": "Wužyj toś ten bok, aby z '''websłužbu Mediawiki API''' eksperimentěrował.\nGlědaj [https://www.mediawiki.org/wiki/API:Main_page API-dokumentaciju] za dalšne drobnostki za wužywanje API. Pśikład: [https://www.mediawiki.org/wiki/API#A_simple_example Wopśimjeśe głownego boka wótwołaś]. Wubjeŕ akciju, aby dalšne pśikłady wiźeł.\n\nŹiwaj na to, až, lěcrownož to jo grajkanišćo, akcije, kótarež pśewjedujoš na toś tom boku, by mógli wiki změniś.",
        "apisandbox-submit": "Napšašowanje pśewjasć",
        "apisandbox-reset": "Wuprozniś",
        "apisandbox-examples": "Pśikład",
        "allmessagesname": "Mě",
        "allmessagesdefault": "Standardny tekst",
        "allmessagescurrent": "Aktualny tekst",
-       "allmessagestext": "How jo lisćina systemowych powěsćow w mjenowem rumje MediaWiki.\nPšosym wobglědaj [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation lokalizaciju MediaWiki] a [//translatewiki.net translatewiki.net], jolic coš k lokalizaciji MediaWiki pśinosowaś.",
+       "allmessagestext": "How jo lisćina systemowych powěsćow w mjenowem rumje MediaWiki.\nPšosym wobglědaj [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation lokalizaciju MediaWiki] a [https://translatewiki.net translatewiki.net], jolic coš k lokalizaciji MediaWiki pśinosowaś.",
        "allmessagesnotsupportedDB": "'''{{ns:special}}:Allmessages''' njejo tuchylu móžno, dokulaž jo datowa banka offline.",
        "allmessages-filter-legend": "Filter",
        "allmessages-filter": "Pó pśiměrjeńskem stawje filtrěrowaś:",
index b79dcda..e40e405 100644 (file)
        "protectedpagetext": "Bolikon diti notingoligan tu mangantob do pinsimbanan toi pingkukuroyon nopo.",
        "viewsourcetext": "Pasagaon ko do mongintong om mangadalin wowonod diti bolikon:",
        "viewyourtext": "Milo nu do intangan om solinon ot wowonod '''niditannu''' id bolikon diti:",
-       "protectedinterface": "Bolikon diti kiharo sinuratan pongurasan montok posusuang-suangon, om notingoligan do momiara mantad pomirumbakan.\nNung mongoruhang toi monimban do waliwboros tongowiki, mangai noh gunoo iri purujik popodusun do Modiawiki id [//translatewiki.net/ translatewiki.net].",
-       "editinginterface": "Panansarahan :''' Mongidit ko diti bolikon di gunoon do poposodia diri pongurasan montok posuang-suangon.\nSinuratan id bolikon diti kopogoit do pongitanan  kourasan momoguno  montok momomoguno suai.\nMontok mongoruhang toi monimban do waliwboros, gunoo noh [//translatewiki.net/ translatewiki.net], purujik popodusun ModiaWiki.",
+       "protectedinterface": "Bolikon diti kiharo sinuratan pongurasan montok posusuang-suangon, om notingoligan do momiara mantad pomirumbakan.\nNung mongoruhang toi monimban do waliwboros tongowiki, mangai noh gunoo iri purujik popodusun do Modiawiki id [https://translatewiki.net/ translatewiki.net].",
+       "editinginterface": "Panansarahan :''' Mongidit ko diti bolikon di gunoon do poposodia diri pongurasan montok posuang-suangon.\nSinuratan id bolikon diti kopogoit do pongitanan  kourasan momoguno  montok momomoguno suai.\nMontok mongoruhang toi monimban do waliwboros, gunoo noh [https://translatewiki.net/ translatewiki.net], purujik popodusun ModiaWiki.",
        "cascadeprotected": "Notingoligan bolikon diti mantad do pingiditan tu nokosuang  id bolikon, {{PLURAL:$1 | do | it}} pinilian tingolig  \"kasading\" poinsikit:\n$2",
        "namespaceprotected": "Ingaa kasagaannu do mongidit bobolikon it kinoingaran '''$1'''.",
        "customcssprotected": "Ingaa kasagaannu do mongidit diti bolikon CSS, tu kisuang ponguludan minsosondiri momoguno.",
index f9b4c86..c6f8ec5 100644 (file)
        "virus-scanfailed": "जँचाई असफल(कोड $1)",
        "virus-unknownscanner": "थानभया एन्टीभाइरस:",
        "logouttext": "<strong>तमी अहिल बाहिर निस्क्याका  छौ।</strong>\n\nयाद राख्या तमीले ब्राउजरको क्याच खालि नगर्यासम्म कुनै पानाहरूमी तमी अझैं प्रवेश गरिरख्याको धेकाउन सक्छ।",
+       "cannotlogoutnow-title": "अईल भाईर निकल्ल नाइँ पाईनो",
+       "cannotlogoutnow-text": "भाईर निकल्ल असंभव छ जब प्रयोग $1",
        "welcomeuser": "$1स्वागत छ!",
        "welcomecreation-msg": "तमरो खाता तयार भयो । \nतमले चाहेको खण्डमी {{SITENAME}} [[Special:Preferences|रोजाइहरू]] परिवर्तन गद्द सक्द्याहौ ।",
        "yourname": "प्रयोगकर्ता नाम:",
        "createacct-yourpasswordagain": "पासवर्ड निश्चित गर",
        "createacct-yourpasswordagain-ph": "आजी पासवर्ड लेख",
        "userlogin-remembermypassword": "मुलाई अघाडी झान्या काम गराइराख्या",
+       "userlogin-signwithsecure": "सुक्षित जडान प्रयोग गद्द्या",
+       "cannotloginnow-title": "अईल भितर झान नाइँ पाईनो",
+       "cannotloginnow-text": "भितर जान असंभव छ जब प्रयोग $1|",
        "yourdomainname": "तमरो ज्ञानक्षेत्र(डोमेन):",
        "password-change-forbidden": "ये विकिमी पासवर्ड परिवर्तन गर्न सक्नुहुन्न।",
        "login": "प्रवेश (लगईन)",
+       "login-security": "तमरो पहिचान जाचँ गर",
        "nav-login-createaccount": "प्रवेश गर्ने/नयाँ खाता बनाउन्या",
        "userlogin": "प्रवेश गर्ने / नयाँ खाता बनाउन्या",
        "userloginnocreate": "प्रवेश",
        "createacct-reason": "कारण",
        "createacct-reason-ph": "क्याई तम नयाँ खाता खोल्ला छौ?",
        "createacct-submit": "तमरो खाता सिर्जना गर",
-       "createacct-another-submit": "दोसरो खाता सिर्जना गर",
+       "createacct-another-submit": "खाता खोल",
+       "createacct-continue-submit": "खाता खोल्लु जारि राख",
+       "createacct-another-continue-submit": "खाता खोल्लु जारि राख",
        "createacct-benefit-heading": "{{SITENAME}} तम जसाई मान्सुनले सिर्जना गरिया हो ।",
        "createacct-benefit-body1": "{{PLURAL:$1|सम्पादन|सम्पादनहरू}}",
        "createacct-benefit-body2": "{{PLURAL:$1|पाना|पानाहरू}}",
        "loginsuccesstitle": "प्रवेश सफल",
        "loginsuccess": "'''तमले {{SITENAME}}मी  \"$1\" को रुपमी प्रवेश गरया छौ।'''",
        "nouserspecified": "प्रयोगकर्ता नाम दिनु अनिवार्य छ।",
+       "login-userblocked": "ये प्रयोगकर्तालाई रोक लगाया छ। प्रवेश गददु अनुमति छैन।",
+       "wrongpassword": "पासवर्ड गलत हालियो।\nकृपया आजी प्रयास गरया।",
+       "wrongpasswordempty": "हालिएया पासवर्ड खालि थ्यो।\nकृपया आजी प्रयास गरया।",
+       "password-name-match": "तमरो प्रवेशशव्द प्रयोगकर्ता नाम है फरक हुनपडन्छ ।",
+       "password-login-forbidden": "ये प्रयोगकर्ता नाम र प्रवेश शव्द वर्जित गरिया छ।",
        "mailmypassword": "पासवर्ड पूर्वनिर्धारित गर",
        "passwordremindertitle": "{{SITENAME}}का लागि नयाँ अस्थायी पासवर्ड",
        "passwordremindertext": "कसैले (सायद तमी, IP ठेगाना $1 बाट), {{SITENAME}}($4) को लागि नौलो पासवर्ड अनुरोध गर्या छ । प्रयोगकर्ता \"$2\" को लागि नौलो अस्थायी पासवर्ड \"$3\"तयार पारिया छ । यदि यो तमरो इच्छामी भयाको भया अहिले तमीले लगइन गरीबर नौलो पासवर्ड छान्नु पड्ड्या हुन्छ ।\nतमरो अस्थायी पासवर्ड  {{PLURAL:$5|एक दिन|$5 दिनहरू पछि}} अमान्य हुन्याछ ।\n\nयदि कोही अरुले नै अनुरोध गर्याको हो भण्या , या तमीले आफ्नो पासवर्ड सम्झ्यौ भण्या, अथवा\nत्यैलाई परिवर्तन गर्न चाहन्नौ भण्या, तमीले यो सन्देसको वेवास्ता गद्दसक्द्याहौ र पुरानै पासवर्ड प्रयोग गरिरहन सक्द्याहौ ।",
        "createacct-another-realname-tip": "वास्तविक नाम ऐच्छिक हो ।\nतमले यो खुलायौ भण्या तमरो काममी प्रयोगकर्ता श्रेय दिनका निउती यैको प्रयोग गरिन्या छ ।",
        "pt-login": "प्रवेश (लग ईन)",
        "pt-login-button": "प्रवेश",
+       "pt-login-continue-button": "प्रवेश जारी राख",
        "pt-createaccount": "नयाँ खाता खोल",
        "pt-userlogout": "बाहिर निस्कन्या (लग आउट)",
        "php-mail-error-unknown": "PHP मेल() क्रियामा अज्ञात गल्ती",
        "resetpass_submit": "पासवर्ड व्यवस्थित गरी र प्रवेशगर्ने",
        "changepassword-success": "तमरो पासवर्ड सफलतापूर्वक परिवर्तन भयो!",
        "changepassword-throttled": "तमले अलै भौत फेर प्रवेशका निम्ति प्रयास गरया छौ।\nकृपया $1 थोक्कै जागी मात्र प्रयास गर।",
+       "botpasswords": "बोट पासवर्ड",
+       "botpasswords-label-appid": "बोट नाम:",
+       "botpasswords-label-create": "सृजना गर",
+       "botpasswords-label-update": "नयाँ बनाउनु",
+       "botpasswords-label-cancel": "रद्द",
+       "botpasswords-label-delete": "मेट्न्या",
+       "botpasswords-label-resetpassword": "पासवर्ड पूर्वनिर्धारित गर",
+       "botpasswords-label-grants": "अनुदान आवेदन:",
        "botpasswords-label-grants-column": "प्रदान भयो",
        "botpasswords-created-title": "बोट को पासवर्ड बन्यो",
        "botpasswords-updated-title": "बोट को पासवर्ड अपडेट भयो",
        "passwordreset-emailtitle": "{{SITENAME}}मा खाता विवरण",
        "passwordreset-emailelement": "प्रयोगकर्ताको नाम: \n$1\n\nअस्थाई पासवर्ड: \n$2",
        "passwordreset-emailsentemail": "पासवर्ड परिवर्तनका लागि इमेल पठाइया छ।",
+       "passwordreset-invalideamil": "अबैध ई-मेल ठेगाना",
        "changeemail": "इमेल ठेगाना बदेल वा हटा",
        "changeemail-header": "आफ्नो इमेल ठेगाना परिवर्तन गद्द यो फारम भर । यैलाई पुष्टि गद्द तमीले आफ्नो पासवर्ड हाल्नु पडन्छ।",
        "changeemail-oldemail": "अईलको इमेल-ठेगाना:",
        "sig_tip": "तमरो समयछाप सहितको दस्तखत",
        "hr_tip": "क्षितिजिय रेखा (कम प्रयोग गर्नुहोस्)",
        "summary": "सारांश:",
-       "subject": "विषय/शीर्षक:",
+       "subject": "विषय:",
        "minoredit": "यो नानो सम्पादन हो",
        "watchthis": "यै पानाको ध्यान राख",
        "savearticle": "सङ्ग्रह गर",
+       "savechanges": "परिवर्तन सुरक्षित गर",
        "publishpage": "प्रकाशित पृष्ठ",
+       "publishchanges": "परिवर्तन प्रकाशित गर",
        "preview": "पूर्वावलोकन",
        "showpreview": "पूर्वालोकन धेकाउन्या",
        "showdiff": "परिवर्तन धेकाउन्या",
        "selfredirect": "<strong>चेतावनी:</strong> तम यै पानालाई आफुमी पुनः निर्देशित गद्द लाग्याछौ ।\nहुनसक्छ तम अनुप्रेषितको लागि गलत लक्ष्य निर्दिष्ट गद्द लाग्याछौ, वा गलत पानाको सम्पादन गद्द लाग्याछौ ।\nतम पुनः एकपल्ट \"{{int:savearticle}}\" क्लिक गद्दाछौ, पुनः निर्देशित तसै लै बनाइन्याछ।",
        "missingcommentheader": "'''याद गर :''' तमीले टिप्पणीमी विषय /शीर्ष पंक्ति  दियाका छैनौ ।\nतमीले फेरि \"{{int:savearticle}}\"  थिच्यौ भण्या , तमरो सम्पादन यसै रुपमी संग्रहित हुन्याछ ।",
        "summary-preview": "सारांश पूर्वालोकन:",
-       "subject-preview": "विषय/शीर्षपंक्ति पूर्वरुप:",
+       "subject-preview": "विषय पूर्वरुप:",
        "previewerrortext": "तमरो परिवर्तनको पूर्वावलोकन बनाउन खोज्दा समस्या आयाको छ ।",
        "blockedtitle": "प्रयोककर्तालाई रोक लगाइया छ",
        "blockedtext": "'''तमरो प्रयोगकर्ता नाम या IP ठेगानालाई रोक लगाइएको छ ।'''\n\nरोक लगाउने  $1.\nरोक लगाउनाको कारण ''$2''.\n\n* रोक सुरू हुने : $8\n* रोक सकिने: $6\n* रोकबाट लक्षित: $7\n\nतमले  $1 वा और कोइ  [[{{MediaWiki:Grouppage-sysop}}|प्रवन्धक]] सँग रोकको बारेमी छलफल गर्न सम्पर्क गद्द सकुन्छौ ।\nतमले  'प्रयोगकर्तालाई इ-मेल गर्ने ' सुविधा मान्य इमेल ठेगाना [[Special:Preferences|रोजाइहरू]] मी नखुलाए सम्म प्रयोगगर्न पाउनुहुन्या छैन र यैको प्रयोग गर्नबठे रोक लगाइया छैन ।\nतमरो IP ठेगाना $3 को, र रोक्का संख्या #$5.\nकृपया तमरा प्रश्नमी सबै जानकारी खुलाया ।",
        "autoblockedtext": "तमरो IP ठेगानामी रोक लगाइयाकोछ किन भण्या यो अर्को प्रयोगकर्ताले प्रयोग गर्याको थ्यो, जैलाई $1ले रोक लगायाका थ्या । \nरोक लगाउनाको कारण:\n:''$2''  \n\n* रोकावट सुरु: $8\n* रोकावट सकिन्या: $6\n* रोकावटको प्रयोजन: $7\n\nतम $1 सित सम्पर्क गर्न सकन्छौ अथवा कुनै [[{{MediaWiki:Grouppage-sysop}}|प्रबन्धक]]सँग रोकबारे चर्चा गर्न सकन्छौ ।\n\nध्यान दिया कि तमले यै प्रयोगकर्ताकी लेखा ई-मेलको प्रयोग तबसम्म गद्द नाइसक्दा जबसम्म तमरो [[Special:Preferences|रोजाई]] दर्ता गद्दाइनौ वा यो ई-मेलको प्रयोगमी रोक लगाइयाको हुँदैन । \n\nतमरो वर्तमान IP ठेगाना हो- $3, अनि रोक लगाइयाको ID हो- #$5.\nकृपया कुनै बेला सोधनी गद्दु पड्या उपर्युक्त विवरण दर्शाया ।",
        "blockednoreason": "कारण दिइईया नाइँथिन",
        "whitelistedittext": "पाना सम्पादन गर्न तमले $1 गद्दु पडन्छ।",
+       "nosuchsectiontitle": " खण्ड फेला नाइँपडयो",
        "nosuchsectiontext": "तमले तसो खण्डको सम्पादन गद्या प्रयास गर्यौ जो अस्तित्वमी छैन।\nयैको नाम बदलियाको अथवा मेटाइयाको हुनुपडन्छ जब तमी यै पानालाई हेद्द लाग्याका छियौ ।",
        "loginreqtitle": "प्रवेशगर्नु जरुरी छ।",
        "loginreqlink": "प्रवेश (लग ईन)",
        "anontalkpagetext": "----''यो कुरडी पानो अज्ञात प्रयोगकर्ताको हो जनले अहिलसम्म खाता बनायाकै छैन, अथवा जनले यै पानाको उपयोग गर्दैन।\nयस कारण हामीले उनलाई उनरो आइ पी (IP) ठेगानाले चिन्न सकन्छौ। \nयस्तो आइ पी (IP) ठेगाना धेरै प्रयोगकर्तानको साझा हुनसकन्छ ।\nयदि तमी अज्ञात प्रयोगकर्ता हौ र तमलाई अचाहिँदो टिप्पणी भयाको अनुभव गद्दा छौ भण्या भविष्यमी अन्य अज्ञात प्रयोगकर्तासँगको भ्रमबाट बाँच्न कृपया [[Special:CreateAccount|खाता खोल]] अथवा [[Special:UserLogin|प्रवेश गर]] ''",
        "noarticletext": "यै लेखमी अहिल क्यै पन पाठ नाइथी  ।\nतमले और पृष्ठमी\n[[Special:Search/{{PAGENAME}}|यस पृष्ठको शीर्षककी लेखा खोज]] गद्द सकन्छौ ।\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} पाना सम्बन्धित ढड्डामी खोज],\nवा [{{fullurl:{{FULLPAGENAME}}|action=edit}}  यै पानालाई सम्पादन गद्या]</span>.",
        "noarticletext-nopermission": "यै लेखमी अहिल केइ पन पाठ नाइथी  ।\nतमले और पानामी\n[[Special:Search/{{PAGENAME}}|यै पानाको शीर्षककी लेखा खोज]] गद्द सकन्छौ ।\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} पाना सम्बन्धित ढड्डामी खोज्न],\nवा [{{fullurl:{{FULLPAGENAME}}|action=edit}}  यै पानालाई सम्पादन गद्द] सकन्छौ</span>.",
+       "userpage-userdoesnotexist-view": "प्रयोगकर्ता खाता \"$1\" दर्ता गरिया छैन।",
        "userinvalidcssjstitle": "<strong>चेतावनी:</strong> यहाँ कोइपनि \"$1\" नामको खोल नाइथिन् ।\nप्रचलित .css तथा .js पानाहरूले निम्नपद शीर्षक प्रयोग गद्दान्, जस्तै {{ns:user}}:Foo/Vector.css को सट्टामी {{ns:user}}:Foo/vector.css",
        "updated": "नौला",
        "note": "'''सूचना:'''",
        "template-protected": "(सुरक्षित)",
        "template-semiprotected": "(अर्ध-सुरक्षित)",
        "hiddencategories": "यो पानो निम्न {{PLURAL:$1|1 लुकाइयाको श्रेणी|$1 लुकाइयाका श्रेणीहरू}}को हिस्सादार(सदस्य) हो :",
+       "sectioneditnotsupported-title": "खण्ड सम्पादन असमर्थित",
+       "sectioneditnotsupported-text": "ये पृष्ठमी खण्ड सम्पादन असमर्थित",
        "permissionserrors": "अधिकारमी त्रुटी",
        "permissionserrorstext-withaction": "$2 कि लेखा तमलाईँ अनुमति नाइथिन , यिन {{PLURAL:$1|कारणले|कारणहरुले}} गद्दा :",
        "moveddeleted-notice": "पानो मेटियाको छ।\nमेटियाका और सारियाका पानाहरूको सूची तल्तिर सन्दर्भखी लेखा दियाको छ।",
        "invalid-content-data": "अमान्य सामग्री डेटा",
        "content-not-allowed-here": "सामग्री \"$1\"  [[$2]] पानामी राख्न अनुमती छैन ।",
        "editwarning-warning": "यै पानाबठे बाहिर जाँदा तमले गर्याको कुनै पनि परिवर्तन हराउन्याछ ।\nयदि तमले लग इन गर्याको छ भण्या तमी यै सूचनालाई धेकाउन आफ्नो रोजाईहरूको \"{{int:prefs-editing}}\" भागमी गइबर बन्द गद्द सक्द्याहौ।",
+       "editpage-notsupportedcontentformat-title": "सामग्री प्रकार समर्थित नाइँथिन",
        "content-model-wikitext": "विकिपाठ",
        "content-model-text": "साधारण पाठ",
        "content-model-javascript": "जाभास्क्रिप्ट",
        "revdelete-submit": "{{PLURAL:$1|छानिया संशोधन|छान्निया संशोधनहरू}}मी प्रयोग गर्न्या",
        "revdelete-success": "'''संशोधन दृश्यता सफलतापूर्वक अद्यतन भयो।'''",
        "revdelete-failure": "'''संशोधन दृश्यता अद्यतन गर्न सकिएन:'''\n$1",
-       "logdelete-success": "'''लग दृष्टि सफलतापूर्वक मिलाइयो ।'''",
+       "logdelete-success": "लग दृष्टि मिलाइयो ।",
        "logdelete-failure": "'''लग दृष्टि मिलाउन सकिएन :'''\n$1",
        "revdel-restore": "दृष्टि परिवर्तन गर्न्या",
        "pagehist": "पाना इतिहास",
        "mergehistory-submit": "पुनरावलोकहरू जोड",
        "mergehistory-empty": "कोइलै पुनरावलोकनहरू जोड्ड नाइँमिल्लो ।",
        "mergehistory-done": "$3 {{PLURAL:$3|संस्करण|संस्करणहरू}}  $1बठे सफलतापूर्वक [[:$2]]मी थपियो ।",
+       "mergehistory-fail-bad-timestamp": "समय संख्या अस्विकार",
+       "mergehistory-fail-invalid-source": "अस्विकार स्रोत पृष्ठ",
+       "mergehistory-fail-invalid-dest": "अस्विकार लक्ष्य पृष्ठ",
+       "mergehistory-no-source": "स्रोत पृष्ठ $1 अस्तित्वमी छैन ।",
+       "mergehistory-no-destination": "गन्तव्य पृष्ठ $1 अस्तित्वमी छैन ।",
+       "mergehistory-invalid-source": "स्रोत पृष्ठ मान्य शीर्षकको हुनुपडन्छ ।",
+       "mergehistory-invalid-destination": "गन्तव्य पृष्ठ मान्य पृष्ठ शीर्षक हुनु पडन्छ।",
        "mergehistory-autocomment": " [[:$1]] लाई [[:$2]] मी जोडियो",
        "mergehistory-comment": " [[:$1]] लाई[[:$2]] मी जोडियो : $3",
        "mergehistory-same-destination": "स्रोत र गन्तव्य पाना एउटै हुनसक्दैनन्",
        "prefs-watchlist": "मेरो ध्यान सूची",
        "prefs-editwatchlist": "अवलोकनसूची सम्पादन",
        "prefs-editwatchlist-raw": "कच्चा अवलोकनसूची सम्पादन गद्दा",
+       "prefs-editwatchlist-clear": "तमरो अवलोकनसूची मेटा",
        "prefs-watchlist-days": "ध्यान सूचीमी धेकाउने दिनहरू:",
        "prefs-watchlist-edits-max": "सबै है ज्यादा संख्या : १०००",
        "prefs-watchlist-token": "अवलोकन सूची टोकन:",
        "timezoneregion-asia": "एसिया",
        "timezoneregion-atlantic": "एट्लान्टिक महासागर",
        "timezoneregion-australia": "अष्ट्रेलिया",
+       "timezoneregion-europe": "युरोप",
        "timezoneregion-indian": "हिन्द महासागर",
+       "timezoneregion-pacific": "प्राशान्त महासागर",
+       "allowemail": "और प्रयोगकर्ताबठे पौन्या ईमेल सक्षम गर।",
+       "prefs-searchoptions": "खोज",
+       "prefs-namespaces": "नामठौर:",
+       "default": "पूर्वनिर्धारित",
        "prefs-files": "फाइलहरू",
+       "prefs-custom-css": "अनुकुलित CSS",
+       "prefs-custom-js": "अनुकुल जाभास्क्रिप्ट",
+       "prefs-common-css-js": "साझा CSS/जाभा स्क्रिप्ट सबै कि लेखा:",
+       "prefs-reset-intro": "तम ये पृष्ठलाई आफनो अभिरुचीहरू साइट पूर्वावस्थामी फर्काउनत फर्काउन प्रयोग गद्दु सकन्छौ । तै पाछा ये लाई रद्द गद्दु सकन्छौ ।",
+       "prefs-emailconfirm-label": "इ-मेल एकिन प्रक्रिया:",
        "youremail": "ईमेल",
+       "username": "{{लिंग:$1|प्रयोगकर्ता नाम}}:",
+       "prefs-memberingroups": "निम्न {{बहुबचन:$1|समूह | समूहहरू}}को {{लिंग:$2|सदस्य}} :",
+       "prefs-registration": "दर्ता समय:",
        "yourrealname": "वास्तविक नाम:",
        "yourlanguage": "भाषा",
+       "yourvariant": "लेखको भाषा संस्करण:",
        "yournick": "नयाँ हस्ताक्षर:",
        "prefs-help-signature": "कुरडी पानाका टिप्पणीहरू \"<nowiki>~~~~</nowiki>\" द्वारा दस्तखत गरिनुपडन्छ ,त्यो पछि तमरो दस्तखत र समयरेखामी रुपान्तरित हुनेछ ।",
        "badsiglength": "तमरो दस्तखत मैथै लामो छ।\nयो $1 {{PLURAL:$1|अक्षर|अक्षरहरू}} भन्दा लामो हुनु हुँदैन ।",
+       "gender-male": "उ विकि पृष्ठहरू सम्पादन गरन्छ",
+       "gender-female": "तीन विकि पृष्ठहरु गरिन्छिन",
        "email": "ईमेल",
        "prefs-help-realname": "वास्तविक नाम ऐच्छिक हो ।\nतमीले खुलायौ भण्या तमरो कामको श्रेय दिनको लेखा यैको प्रयोग गरिन्या छ ।",
+       "prefs-help-email-required": "इमेल ठेगाना चाहिन्छ ।",
+       "prefs-info": "साधारण जानकारी",
+       "prefs-i18n": "अन्तर्राष्ट्रियकरण",
+       "prefs-signature": "हस्ताक्षर",
+       "prefs-dateformat": "मिति ढाँचा",
+       "prefs-timeoffset": "समय अफसेट",
+       "prefs-advancedediting": "सामान्य विकल्पहरू",
        "prefs-editor": "सम्पादक",
        "prefs-preview": "पूर्वावलोकन",
+       "prefs-advancedrc": "उन्नत विकल्पहरू",
+       "prefs-advancedrendering": "उन्नत विकल्पहरु",
+       "prefs-advancedsearchoptions": "उन्नत विकल्पहरू",
+       "prefs-advancedwatchlist": "उन्नत विकल्पहरू",
+       "prefs-displayrc": "धेकिन्या विकल्पहरू",
+       "prefs-displaywatchlist": "धेकिन्या विकल्पहरू",
        "prefs-tokenwatchlist": "टोकन",
        "prefs-diffs": "फरक",
        "prefs-help-prefershttps": "यो रोजाई तमरो अर्को  लग इन बठे लागु हुन्याछ ।",
+       "userrights": "प्रयोगकर्ता अधिकार व्यवस्थापन",
+       "userrights-lookup-user": "प्रयोगकर्ता समूह व्यवस्थापन गर",
+       "userrights-user-editname": "प्रयोगकर्ता नाम दिय:",
+       "editusergroup": "सम्पादन{{लिंग:$1}}समूहहरु",
+       "userrights-editusergroup": "प्रयोगकर्ता समूह सम्पादन गर",
+       "saveusergroups": "सुरक्षित{{लिंग:$1}}समूहहरु",
+       "userrights-groupsmember": "को सदस्य:",
+       "userrights-groupsmember-auto": "अंतर्निहित सदस्य:",
        "userrights-reason": "कारण:",
        "userrights-unchangeable-col": "तमीले परिवर्तन गद्द नसक्ने समूहहरू",
        "userrights-conflict": "प्रयोगकर्ताको अधिकार परिवर्तनमी मतभेद भयो ! कृपया तमरो परिवर्तन पुनरावलोकन तथा पुष्टि गर ।",
        "group-autoconfirmed": "स्वत स्थापित प्रयोगकर्ताहरू",
        "group-bot": "बोटहरू",
        "group-sysop": "प्रवन्धकहरू",
+       "group-bureaucrat": "प्रशासकहरू",
+       "group-suppress": "लुकौन्या वाला",
+       "group-all": "(सबै)",
+       "group-user-member": "{{लिङग:$1|प्रयोगकर्ता}}",
+       "group-autoconfirmed-member": "{{लिङग:$1|स्वनिर्धारित प्रयोगकर्ता}}",
+       "group-bot-member": "{{लिङग:$1|बोट}}",
+       "group-sysop-member": "{{लिङग:$1|प्रबन्धक}}",
+       "group-bureaucrat-member": "{{लिङग:$1|प्रशासक}}",
+       "group-suppress-member": "{{लिङग:$1|दबाउन्या}}",
+       "grouppage-user": "{{एनयस:आयोजना}}:प्रयोगकर्ताहरू",
+       "grouppage-autoconfirmed": "{{एनयस:आयोजना}}:स्वनिर्धारित प्रयोगकर्ताहरू",
+       "grouppage-bot": "{{एनयस:आयोजना}}:बोटहरु",
+       "grouppage-sysop": "{{एनयस:आयोजना}}:प्रबन्धकहरु",
+       "grouppage-bureaucrat": "{{एनयस:आयोजना}}:प्रशासकहरू",
+       "grouppage-suppress": "{{एनयस:आयोजना}}:लुकौन्या",
+       "right-read": "पृष्ठहरू पढ",
+       "right-edit": "पृष्ठहरू सम्पादन गर",
+       "right-createpage": "पृष्ठ निर्माण गर(छलफल पृष्ठहरू बाहेक)",
+       "right-createtalk": "छलफल पृष्ठ सृजना गर",
+       "right-createaccount": "नयाँ प्रयोगकर्ता खाता सृजना गर।",
+       "right-minoredit": "सम्पादनलाई सामान्य चिनो लगाउन्या",
+       "right-move": "पृष्ठहरू साददे",
        "right-move-subpages": "तिनीहरूको उपपाना सहित पानाको नाम बदल्ने",
        "right-move-rootuserpages": "मूल(root) प्रयोगकर्ताको पानाहरू साद्या",
+       "right-move-categorypages": "श्रेणी पृष्ठ सार",
        "right-movefile": "फाइलहरूको नाम बदल्न्या",
+       "right-suppressredirect": "पृष्ठ सार्दा स्रोत पृष्ठबठेई पठाउने लिंक नबनाउन्या",
        "right-upload": "फाइलहरू अपलोड गर्न्या",
+       "right-reupload": "रहेका फाइललाई अधिलेखन गर्न्या",
+       "right-reupload-own": "आफैले अपलोड  गरया रई आया फाइल अधिलेखन गर्न्या",
        "right-reupload-shared": "साझा मिडिया भण्डारमी स्थानियरुपमी फाइलहरू अधिक्रमण गर्न्या",
+       "right-upload_by_url": "URL बठे फाइल उर्ध्वभरण गर्ने",
+       "right-purge": "साइटको क्याश( cache) निश्चित नगरिकनै पर्ज(Purge) गर्ने",
        "right-writeapi": "लेखन API प्रयोग गद्य्या",
        "right-bigdelete": "लामो इतिहास भयाका पानाहरू मेट्ट्या",
        "right-deleterevision": "खुलाइयाको पानाहरू मेटाउन्या र मेटायाको रद्द गद्या",
index 6620701..8e70898 100644 (file)
@@ -6,7 +6,8 @@
                        "MF-Warburg",
                        "Ushau97",
                        "Zhatre",
-                       "לערי ריינהארט"
+                       "לערי ריינהארט",
+                       "Glaisher"
                ]
        },
        "tog-hideminor": "ކުދި އުނި އިތުރުތައް އެންމެފަހުގެ ބަދަލުތަކުގެ ލިސްޓުން ފޮރުއްވަވާ",
        "nav-login-createaccount": "ވަންނަވާ / މެންބަރަކަށް ވެވަޑައިގަންނަވާ",
        "userlogin": "ވަންނަވާ / މެންބަރަކަށް ވެ ވަޑައިގަންނަވާ",
        "userloginnocreate": "ވަދެވަޑައިގަންނަވާ",
-       "logout": "ބޭރަށް ވަޑައިގަންނަވާ",
+       "logout": "ބޭރަށްވަޑައިގަންނަވާ",
        "userlogout": "ބޭރަށް ވަޑައިގަންނަވާ",
        "nologin": "މެމްބަރުކަން ހާސިލް ކުރައްވާފައި ނުވޭތޯ؟ '''$1'''",
        "nologinlink": "މެމްބަރުކަން ހާސިލް ކުރައްވާ!",
        "acct_creation_throttle_hit": "މި ވިކީ އަށް ތިބޭފުޅާގެ އައިޕީ އެޑްރެސް އިން ފާއިތުވެދިޔަ 24 ގަޑިއިރު ތެރޭ {{PLURAL:$1|1 އެކައުންޓް|$1 އެކައުންޓްތައް}} ހައްދަވާފައިވެއެވެ. އެއީ މި މުއްދަތު ތެރޭގައި ހެއްދެވޭނެ އެންމެ ގިނަ ޢަދަދެވެ.\nއެހެންކަމުން މި ވަގުތު އިތުރު އެކައުންޓެއް ނުހެއްދެވޭނެއެވެ. އެހެން ވަގުތެއްގައި އަދި މަސައްކަތް ކޮށްލައްވާށެވެ.",
        "accountcreated": "އެކައުންޓް ހެދިއްޖެއެވެ.",
        "loginlanguagelabel": "ބަސް: $1",
+       "pt-userlogout": "ބޭރަށްވަޑައިގަންނަވާ",
        "changepassword": "ސިއްރުބަސް ބަދަލުކުރައްވާ",
        "resetpass_header": "އެކައުންޓްގެ ސިއްރުބަސް ބަދަލުކުރައްވާ",
        "oldpassword": "ކުރީގެ ސިއްރުބަސް:",
        "resetpass-submit-loggedin": "ސިއްރުބަސް ބަދަލުކުރައްވާ",
        "resetpass-submit-cancel": "މަންސޫޚް",
        "passwordreset": "ސިއްރުބަސް އައު ކުރައްވާ",
-       "passwordreset-legend": "ސިއްރުބަސް އައު ކުރައްވާ",
        "passwordreset-email": "އީމެއިލް އެޑްރެސް:",
        "changeemail": "އީމެއިލް އެޑްރެސް ބަދަލުކުރައްވާ",
+       "changeemail-header": "އެކައުންޓްގެ އީމެއިލް އެޑްރެސް ބަދަލުކުރައްވާ",
        "changeemail-oldemail": "މިހާރު ބޭނުންކުރާ އީމެއިލް އެޑްރެސް:",
        "changeemail-newemail": "އައު އީމެއިލް އެޑްރެސް:",
        "changeemail-password": "ތިޔަބޭފުޅާގެ {{SITENAME}} ސިއްރުބަސް:",
        "lockdb": "ކޮށާރު ބަންދުކުރައްވާ",
        "lockbtn": "ކޮށާރު ބަންދުކުރައްވާ",
        "move-page-legend": "ޞަފްޙާގެ ނަން ބަދަލުކުރައްވާ",
-       "movearticle": "ޞަފްޙާގެ ނަން/ތަން ބަދަލުކުރައްވާ",
        "newtitle": "އައު ނަމަކަށް",
        "move-watch": "މި ޞަފްހާ އަށް ނަޒަރުބަހައްޓަވާ!",
        "movepagebtn": "ޞަފްޙާގެނަން ބަދަލުކުރައްވާ",
        "articleexists": "ތިޔަ ސުރުހީގައި ކުރީއްސުރެ ވެސް ޞަފްޙައެއް ވޭ، ނުވަތަ ތިޔަ އިހުތިޔާރުކުރެއްވި ނަން ރަނގަޅެއް ނޫން، ވީމާ އެހެން ނަމެއް އިހުތިޔާރުކުރެއްވުން އެދެވިގެންވެއެވެ.",
        "movelogpagetext": "ތިރީގައި މިވަނީ ނަން/ތަން ބަދަލުކުރެވިފައިވާ ޞަފްޙާތަކުގެ ފިހުރިސްތެކެވެ.",
        "movereason": "ސަބަބު",
-       "delete_and_move": "ފޮހެލައްވާފައި އެހެންނަމަކަށްބަދަލުކުރައްވާ",
        "delete_and_move_confirm": "އާދެ، މި ޞަފްޙާ ފޮހެލައްވާ",
        "delete_and_move_reason": "އެހެންނަމަކަށް ބަދަލުކުރުމަށްޓަކައި ފޮހެލެވިއްޖެ",
        "allmessages": "ނިޒާމުގެ މެސެޖުތައް",
index adb3dab..0c6b8ef 100644 (file)
        "protectedpagetext": "Cla pàgina ché l'é stêda prutèta per impidîr la mudéfica o êtri operasiòun.",
        "viewsourcetext": "L'é pusébil vèder e cupiêr al côdis surzéia ed cla pàgina ché.",
        "viewyourtext": "L'é pusébil vèder e cupiêr al côdis surzéia dal <strong>tō mudéfichi</strong> ed cla pàgina ché.",
-       "protectedinterface": "Cla pàgina ché la gh'à 'n elemèint ch' al fa pêrt dal colegamèint tra utèint e al progrâma 'd cól sît ché e l'é prutèta per schivşêr pusébil abûş. Per zuntêr o mudufichêr tradusiòun per tót i sistēma wiki druvêr [//translatewiki.net/ translatewiki.net], al prugèt 'd adatamèint a ògni léngva 'd MediaWiki.",
+       "protectedinterface": "Cla pàgina ché la gh'à 'n elemèint ch' al fa pêrt dal colegamèint tra utèint e al progrâma 'd cól sît ché e l'é prutèta per schivşêr pusébil abûş. Per zuntêr o mudufichêr tradusiòun per tót i sistēma wiki druvêr [https://translatewiki.net/ translatewiki.net], al prugèt 'd adatamèint a ògni léngva 'd MediaWiki.",
        "editinginterface": "<strong>Atèinti:</strong> Al tèst ed cla pàgina ché 'l fa pêrt dal colegamèint tra utèint e 'l prugrâma dal sît.  Tót' al modéfichi fâti a cla pàgina ché a se spècen in sém a i mesâg vést per tót j utèint ed cól wiki ché.",
-       "translateinterface": "Per zuntêr o mudifichêr al tradusiòun vâlidi in sém a tót i wiki, drōva [//translatewiki.net/ translatewiki.net], al prugèt Media Wiki p'r al léngui di divêrs pôst.",
+       "translateinterface": "Per zuntêr o mudifichêr al tradusiòun vâlidi in sém a tót i wiki, drōva [https://translatewiki.net/ translatewiki.net], al prugèt Media Wiki p'r al léngui di divêrs pôst.",
        "cascadeprotected": "Insém a cla pàgina ché an n'é mìa pusébil fêr dal mudéfichi perchè l'é dèinter {{PLURAL:$1|int la pàgina sgnêda ché  'd sègvit, ch' l'é stêda prutèta|int al pàgini sgnêdi ché  'd sègvit, ch' în stêdi prutèti}} cun la prutesiòun ch' la 's arfà in cuntinvasiòun:\n$2",
        "namespaceprotected": "An 's gh'à mìa i permès necesâri per mudifichêr al pàgini dal spâsi di nòm <strong>$1</strong>.",
        "customcssprotected": "An 's gh'à mìa i permès necesâri per mudifichêr cla pàgina CSS ché, perchè la gh'à dèinter al j impustasiòun personêli 'd n' êter utèint.",
        "resetpass-temp-password": "Cêva 'd ingrès pruvişôria:",
        "resetpass-abort-generic": "La mudéfica 'd la cêva 'd ingrès l'é stêda fermêda da un şlungamèint.",
        "resetpass-expired": "La cêva 'd ingrès l'é scadûda. Mèt dèinter 'na cêva 'd ingrès nōva per fêr l'ingrès.",
-       "resetpass-expired-soft": "La tó cêva 'd ingrès l'é scadûda. T'é perghê ed siēlier 'na nōva o clichêr insém a \"{{int:resetpass-submit-cancel}}\" per turnêrla a mèter dèinter in sègvit.",
-       "resetpass-validity-soft": "La tó cêva 'd ingrès an n'è mìa vâlida:$1. \n\nT'é perghê ed siēlier 'na nōva o clichêr insém a \"{{int:resetpass-submit-cancel}}\" per turnêrla a impustêr in sègvit.",
+       "resetpass-expired-soft": "La tó cêva 'd ingrès l'é scadûda. T'é perghê ed siēlier 'na nōva o clichêr insém a \"{{int:authprovider-resetpass-skip-label}}\" per turnêrla a mèter dèinter in sègvit.",
+       "resetpass-validity-soft": "La tó cêva 'd ingrès an n'è mìa vâlida:$1. \n\nT'é perghê ed siēlier 'na nōva o clichêr insém a \"{{int:authprovider-resetpass-skip-label}}\" per turnêrla a impustêr in sègvit.",
        "passwordreset": "Câmbia la cêva 'd ingrès",
        "passwordreset-text-one": "Impés cól môdul ché per  turnêr a impustêr la tó cêva 'd ingrès.",
        "passwordreset-text-many": "{{PLURAL:$1|Impés ûn di câmp per ricēver 'na cêva 'd ingrès pruvişôria per mèz ed la pôsta eletrônica}}",
index 5affcd4..c1bba97 100644 (file)
@@ -48,7 +48,8 @@
                        "Gts-tg",
                        "Nemo bis",
                        "Αντιγόνη",
-                       "Matma Rex"
+                       "Matma Rex",
+                       "Ανώνυμος Βικιπαιδιστής"
                ]
        },
        "tog-underline": "Υπογράμμιση συνδέσμων:",
@@ -90,7 +91,7 @@
        "tog-ccmeonemails": "Να μου αποστέλλονται αντίγραφα των μηνυμάτων ηλεκτρονικού ταχυδρομείου που στέλνω σε άλλους χρήστες",
        "tog-diffonly": "Να μην εμφανίζεται περιεχόμενο σελίδων κάτω από τις διαφορές των εκδόσεων",
        "tog-showhiddencats": "Εμφάνιση κρυμμένων κατηγοριών",
-       "tog-norollbackdiff": "ΠαÏ\81άλειÏ\88η Î´Î¹Î±Ï\86οÏ\81άÏ\82 μετά την εκτέλεση επαναφοράς",
+       "tog-norollbackdiff": "ΠαÏ\81άλειÏ\88η ÎµÎ¼Ï\86άνιÏ\83ηÏ\82 Î´Î¹Î±Ï\86οÏ\81Ï\8eν μετά την εκτέλεση επαναφοράς",
        "tog-useeditwarning": "Προειδοποίηση όταν εγκαταλείπω μία σελίδα επεξεργασίας χωρίς να έχω πρώτα αποθηκεύσει τις αλλαγές",
        "tog-prefershttps": "Να γίνεται πάντα χρήση ασφαλούς σύνδεσης όταν ο χρήστης είναι συνδεδεμένος",
        "underline-always": "Πάντα",
        "protectedpagetext": "Αυτή η σελίδα έχει προστατευθεί για πρόληψη επεξεργασίας ή άλλες ενέργειες.",
        "viewsourcetext": "Μπορείτε να προβάλετε και να αντιγράψετε τον πηγαίο κώδικα αυτής της σελίδας.",
        "viewyourtext": "Μπορείτε να προβάλετε και να αντιγράψετε τον πηγαίο κώδικα των <strong>επεξεργασιών σας</strong> σε αυτήν τη σελίδα.",
-       "protectedinterface": "Αυτή η σελίδα παρέχει κείμενο διεπαφής για το λογισμικό σε αυτό το wiki, και έχει κλειδωθεί για την πρόληψη κατάχρησης.\n\nΓια να προσθέσετε ή να αλλάξετε τις μεταφράσεις για όλα τα wiki, παρακαλούμε χρησιμοποιήστε το [//translatewiki.net/ translatewiki.net], το εγχείρημα τοπικής προσαρμογής της γλώσσας του MediaWiki.",
+       "protectedinterface": "Αυτή η σελίδα παρέχει κείμενο διεπαφής για το λογισμικό σε αυτό το wiki, και έχει κλειδωθεί για την πρόληψη κατάχρησης.\n\nΓια να προσθέσετε ή να αλλάξετε τις μεταφράσεις για όλα τα wiki, παρακαλούμε χρησιμοποιήστε το [https://translatewiki.net/ translatewiki.net], το εγχείρημα τοπικής προσαρμογής της γλώσσας του MediaWiki.",
        "editinginterface": "<strong>Προειδοποίηση:</strong> Επεξεργάζεστε μια σελίδα η οποία χρησιμοποιείται για να παρέχει κείμενο διεπαφής για το λογισμικό. Αλλαγές σε αυτήν τη σελίδα θα επηρεάσουν την εμφάνιση της διεπαφής χρήστη για άλλους χρήστες αυτού του wiki.",
-       "translateinterface": "Για να προσθέσετε ή να αλλάξετε τις μεταφράσεις για όλα τα wiki, παρακαλούμε χρησιμοποιήστε το [//translatewiki.net/ translatewiki.net], το έργο τοπικοποίησης του MediaWiki.",
+       "translateinterface": "Για να προσθέσετε ή να αλλάξετε τις μεταφράσεις για όλα τα wiki, παρακαλούμε χρησιμοποιήστε το [https://translatewiki.net/ translatewiki.net], το έργο τοπικοποίησης του MediaWiki.",
        "cascadeprotected": "Αυτή η σελίδα έχει προστατευθεί από επεξεργασία, επειδή ενσωματώνεται {{PLURAL:$1|στην ακόλουθη σελίδα, που είναι προστατευμένη|στις ακόλουθες σελίδες, που είναι προστατευμένες}} με ενεργοποιημένη τη «διαδοχική» προστασία στο:\n$2",
        "namespaceprotected": "Δεν έχετε άδεια να επεξεργάζεστε σελίδες στον τομέα '''$1'''.",
        "customcssprotected": "Δεν έχετε δικαιώματα για να επεξεργαστείτε αυτή τη σελίδα CSS, επειδή περιέχει προσωπικές ρυθμίσεις άλλου χρήστη.",
        "password-change-forbidden": "Δεν μπορείτε να αλλάξετε τους κωδικούς πρόσβασης σε αυτό το βίκι.",
        "externaldberror": "Είτε συνέβη κάποιο σφάλμα εξωτερικής πιστοποίησης της βάσης δεδομένων είτε δεν σας έχει επιτραπεί να ενημερώσετε τον εξωτερικό σας λογαριασμό.",
        "login": "Είσοδος",
+       "login-security": "Επαληθεύστε την ταυτότητά σας",
        "nav-login-createaccount": "Είσοδος / δημιουργία λογαριασμού",
        "userlogin": "Είσοδος / δημιουργία λογαριασμού",
        "userloginnocreate": "Είσοδος",
        "userlogin-resetpassword-link": "Ξεχάσατε τον κωδικό πρόσβασης;",
        "userlogin-helplink2": "Βοήθεια για τη σύνδεση",
        "userlogin-loggedin": "Είστε ήδη {{GENDER:$1|συνδεδεμένος|συνδεδεμένη}} ως $1.\nΧρησιμοποιήστε την παρακάτω φόρμα για να συνδεθείτε ως άλλος χρήστης.",
+       "userlogin-reauth": "Θα πρέπει να συνδεθείτε ξανά για να επιβεβαιώσετε ότι είστε ο/η {{GENDER:$1|$1}}.",
        "userlogin-createanother": "Δημιουργήστε άλλο λογαριασμό",
        "createacct-emailrequired": "Διεύθυνση ηλεκτρονικού ταχυδρομείου",
        "createacct-emailoptional": "Διεύθυνση ηλεκτρονικού ταχυδρομείου (προαιρετικό)",
        "createacct-email-ph": "Εισαγάγετε τη διεύθυνση ηλεκτρονικού σας ταχυδρομείου",
        "createacct-another-email-ph": "Εισαγάγετε τη διεύθυνση ηλεκτρονικού ταχυδρομείου",
        "createaccountmail": "Χρήση τυχαίου προσωρινού κωδικού πρόσβασης και αποστολή του στην καθοριζόμενη διεύθυνση ηλεκτρονικού ταχυδρομείου",
+       "createaccountmail-help": "Μπορεί να χρησιμοποιηθεί για την δημιουργία λογαριασμού τρίτων χωρίς την γνωστοποίηση των κωδικών πρόσβασής τους.",
        "createacct-realname": "Πραγματικό όνομα (προαιρετικό)",
        "createaccountreason": "Αιτία:",
        "createacct-reason": "Λόγος",
        "createacct-reason-ph": "Γιατί δημιουργείτε έναν άλλο λογαριασμό",
+       "createacct-reason-help": "Εμφανιζόμενο μήνυμα στο μητρώο δημιουργίας λογαριασμών",
        "createacct-submit": "Δημιουργία λογαριασμού χρήστη",
        "createacct-another-submit": "Δημιουργία λογαριασμού",
+       "createacct-continue-submit": "Συνεχίστε την δημιουργία λογαριασμού",
+       "createacct-another-continue-submit": "Συνεχίστε την δημιουργία λογαριασμού",
        "createacct-benefit-heading": "Το {{SITENAME}} έχει φτιαχτεί από ανθρώπους σαν κι εσένα.",
        "createacct-benefit-body1": "{{PLURAL:$1|επεξεργασία|επεξεργασίες}}",
        "createacct-benefit-body2": "{{PLURAL:$1|σελίδα|σελίδες}}",
        "nocookiesnew": "Ο λογαριασμός χρήστη έχει δημιουργηθεί, αλλά δεν έχετε ακόμα συνδεθεί. Το {{SITENAME}} χρησιμοποιεί cookies κατά τη σύνδεση των χρηστών. Τα cookies είναι απενεργοποιημένα στον υπολογιστή σας. Παρακαλούμε ενεργοποιήστε τα και στη συνέχεια συνδεθείτε χρησιμοποιώντας το νέο όνομα χρήστη σας και τον κωδικό σας.",
        "nocookieslogin": "Το {{SITENAME}} χρησιμοποιεί cookies κατά τη σύνδεση των χρηστών. Τα cookies είναι απενεργοποιημένα στον υπολογιστή σας. Παρακαλούμε ενεργοποιήστε τα και ξαναδοκιμάστε!",
        "nocookiesfornew": "Ο λογαριασμός χρήστη δεν δημιουργήθηκε, καθώς δεν μπορούσε να επιβεβαιώσει την πηγή του. \n Βεβαιωθείτε ότι έχετε ενεργοποιήσει τα cookies, ξαναφορτώστε αυτή τη σελίδα και προσπαθήστε ξανά.",
+       "createacct-loginerror": "Ο λογαριασμός δημιουργήθηκε με επιτυχία, αλλά δεν μπορέσατε να συνδεθείτε αυτόματα. Παρακαλώ [[Special:UserLogin|συνδεθείτε χειροκίνητα]].",
        "noname": "Το όνομα χρήστη που έχετε καθορίσει δεν είναι έγκυρο.",
        "loginsuccesstitle": "Επιτυχής σύνδεση",
        "loginsuccess": "Είστε συνδεδεμένος(-η) στο {{SITENAME}} ως \"$1\".",
-       "nosuchuser": "Δεν υπάρχει χρήστης με το όνομα \"$1\".\nΤα ονόματα χρηστών είναι ευαίσθητα σε κεφαλαιογράμματη και μικρογράμματη γραφή.\nΕλέγξτε την ορθογραφία ή [[Special:CreateAccount|δημιουργήστε ένα νέο λογαριασμό]].",
+       "nosuchuser": "Δεν υπάρχει χρήστης με το όνομα \"$1\".\nΤα ονόματα χρηστών είναι ευαίσθητα στα κεφαλαία και στα μικρά.\nΕλέγξτε την ορθογραφία ή [[Special:CreateAccount|δημιουργήστε ένα νέο λογαριασμό]].",
        "nosuchusershort": "Δεν υπάρχει χρήστης με το όνομα \"$1\". Παρακαλούμε ελέγξτε την ορθογραφία.",
        "nouserspecified": "Πρέπει να ορίσετε ένα όνομα χρήστη.",
        "login-userblocked": "Αυτός ο χρήστης έχει αποκλειστεί. Δεν επιτρέπεται σύνδεση.",
        "noemail": "Δεν έχει καθοριστεί ηλεκτρονική διεύθυνση για τον χρήστη \"$1\".",
        "noemailcreate": "Είναι απαραίτητο να υποβάλλετε μια έγκυρη διεύθυνση ηλεκτρονικού ταχυδρομείου",
        "passwordsent": "Σας έχει σταλεί ένας νέος κωδικός στην ηλεκτρονική διέθυνση που δηλώσατε για \"$1\".\nΣας παρακαλούμε να ξανασυνδεθείτε μόλις τον λάβετε.",
-       "blocked-mailpassword": "Î\97 Î´Î¹ÎµÏ\8dθÏ\85νÏ\83η IP Ï\83αÏ\82 ÎµÎ¯Î½Î±Î¹ Î±Ï\80οκλειÏ\83μένη Î±Ï\80Ï\8c ÎµÏ\80εξεÏ\81γαÏ\83ία, ÎºÎ±Î¹ Î­Ï\84Ï\83ι\nδεν ÎµÏ\80ιÏ\84Ï\81έÏ\80εÏ\84αι Î½Î± Ï\87Ï\81ηÏ\83ιμοÏ\80οιήÏ\83ει Ï\84ην Î»ÎµÎ¹Ï\84οÏ\85Ï\81γία Î±Î½Î¬ÎºÏ\84ηÏ\83ηÏ\82 ÎºÏ\89δικοÏ\8d Ï\80Ï\81Ï\8cÏ\83βαÏ\83ηÏ\82, Î³Î¹Î± Ï\84ην Î±Ï\80οÏ\86Ï\85γή ÎºÎ±Ï\84άÏ\87Ï\81ηÏ\83ηÏ\82.",
+       "blocked-mailpassword": "Î\97 Î´Î¹ÎµÏ\8dθÏ\85νÏ\83η IP Ï\83αÏ\82 Î´ÎµÎ½ Î­Ï\87ει Î´Î¹ÎºÎ±Î¯Ï\89μα ÎµÏ\80εξεÏ\81γαÏ\83ίαÏ\82. Î\93ια Ï\84ην Î±Ï\80οÏ\86Ï\85γή ÎºÎ±Ï\84άÏ\87Ï\81ηÏ\83ηÏ\82, Î´ÎµÎ½ ÎµÏ\80ιÏ\84Ï\81έÏ\80εÏ\84αι Î½Î± Ï\87Ï\81ηÏ\83ιμοÏ\80οιήÏ\83εÏ\84ε Ï\84ην Î»ÎµÎ¹Ï\84οÏ\85Ï\81γία Î±Î½Î¬ÎºÏ\84ηÏ\83ηÏ\82 ÎºÏ\89δικοÏ\8d Ï\80Ï\81Ï\8cÏ\83βαÏ\83ηÏ\82 Î±Ï\80Ï\8c Î±Ï\85Ï\84ήν Ï\84ην IP.",
        "eauthentsent": "Ένα μήνυμα επαλήθευσης έχει σταλεί στην ηλεκτρονική διεύθυνση που έχετε δηλώσει.\nΠριν αρχίσει η αποστολή μηνυμάτων στη συγκεκριμένη διεύθυνση, πρέπει να ακολουθήσετε τις οδηγίες που βρίσκονται στο μήνυμα που σας έχει σταλεί, για να επαληθεύσετε ότι η συγκεκριμένη ηλεκτρονική διεύθυνση ανήκει πραγματικά σε εσάς.",
        "throttled-mailpassword": "Ένα email επαναφοράς κωδικού έχει ήδη αποσταλεί, μέσα {{PLURAL:$1|στην τελευταία ώρα|στις τελευταίες $1 ώρες}}.\nΓια την αποφυγή κατάχρησης, μόνο ένα email επαναφοράς κωδικού θα στέλνεται ανά {{PLURAL:$1|ώρα|$1 ώρες}}.",
        "mailerror": "Σφάλμα στην αποστολή του μηνύματος: $1",
        "createaccount-title": "Δημιουργία λογαριασμού για {{SITENAME}}",
        "createaccount-text": "Κάποιος δημιούργησε έναν λογαριασμό για τη διεύθυνση email σας στο {{SITENAME}} ($4) με το όνομα \"$2\", με κωδικό πρόσβασης \"$3\". Θα πρέπει να συνδεθείτε και να αλλάξετε τον κωδικό πρόσβασής σας τώρα.\n\nΜπορείτε να αγνοήσετε αυτό το μήνυμα, αν αυτός ο λογαριασμός δημιουργήθηκε εσφαλμένα.",
        "login-throttled": "Κάνατε πάρα πολλές πρόσφατες απόπειρες σύνδεσης.\nΠαρακαλούμε περιμένετε $1 προτού ξαναδοκιμάσετε.",
-       "login-abort-generic": "Η είσοδος δεν πέτυχε - Ματαιώθηκε",
+       "login-abort-generic": "Η είσοδος σας απέτυχε - Ματαίωση",
        "login-migrated-generic": "Ο λογαριασμός σας έχει μεταναστεύσει, και το όνομα χρήστη σας δεν υπάρχει πλέον σε αυτό το wiki.",
        "loginlanguagelabel": "Γλώσσα: $1",
        "suspicious-userlogout": "Το αίτημα αποσύνδεσής σας απερρίφθη επειδή φαίνεται ότι στάλθηκε από ένα λανθασμένο φυλλομετρητή (browser) ή διακομιστή προσωρινής αποθήκευσης.",
        "createacct-another-realname-tip": "Το πραγματικό όνομα είναι προαιρετικό.\nΑν επιλέξετε να το δώσετε, αυτό θα μπορεί να χρησιμοποιηθεί για να αναγνωριστεί η δουλειά σας.",
        "pt-login": "Σύνδεση",
        "pt-login-button": "Σύνδεση",
+       "pt-login-continue-button": "Συνεχίστε την σύνδεσή σας",
        "pt-createaccount": "Δημιουργία λογαριασμού",
        "pt-userlogout": "Αποσύνδεση",
        "php-mail-error-unknown": "Άγνωστο σφάλμα στη συνάρτηση mail() της PHP.",
        "newpassword": "Νέος κωδικός πρόσβασης",
        "retypenew": "Πληκτρολογήστε ξανά το νέο κωδικό.",
        "resetpass_submit": "Δώστε κωδικό πρόσβασης και συνδεθείτε",
-       "changepassword-success": "Ο κωδικός πρόσβασής σας άλλαξε επιτυχώς!",
+       "changepassword-success": "Ο κωδικός πρόσβασής σας άλλαξε!",
        "changepassword-throttled": "Κάνατε πάρα πολλές πρόσφατες απόπειρες σύνδεσης.\nΠαρακαλούμε περιμένετε $1 προτού ξαναδοκιμάσετε.",
        "botpasswords": "Κωδικοί πρόσβασης για Μποτ",
+       "botpasswords-summary": "<em>Οι κωδικοί των μποτ</em> δίνουν πρόσβαση σε λογαριασμό χρήστη μέσω του API χωρίς να χρησιμοποιούνται τα συνθηματικά της κύριας σύνδεσης του λογαριασμού. Τα δικαιώματα χρήστη όταν με σύνδεση μέσω κωδικού μποτ μπορεί να είναι περιορισμένα.\n\nΑν δεν ξέρετε γιατί θέλετε να το κάνετε αυτό, καλύτερα να μην το κάνετε. Κανένα δεν θα πρέπει να σας ζητήσει να δημιουργήσετε ένα τέτοιο κωδικό και να του τον γνωστοποιήσετε.",
        "botpasswords-disabled": "Οι κωδικοί πρόσβασης των ρομπότ είναι απενεργοποιημένοι.",
        "botpasswords-no-central-id": "Για να χρησιμοποιήσετε τους κωδικούς πρόσβασης των ρομπότ θα πρέπει να συνδεθείτε με έναν κεντρικό λογαριασμό.",
        "botpasswords-existing": "Υπάρχοντες κωδικοί πρόσβασης ρομπότ",
        "resetpass-temp-password": "Προσωρινός κωδικός:",
        "resetpass-abort-generic": "Η αλλαγή του κωδικού έχει απορριφθεί από μια προέκταση.",
        "resetpass-expired": "Ο κωδικός πρόσβασης έχει λήξει. Ορίστε έναν νέο κωδικό πρόσβασης για να συνδεθείτε.",
-       "resetpass-expired-soft": "Ο κωδικός πρόσβασης έχει λήξει και πρέπει να γίνει επαναφορά του. Επιλέξτε έναν νέο κωδικό πρόσβασης τώρα ή πατήστε «{{int:resetpass-submit-cancel}}» για τον επαναφέρετε αργότερα.",
-       "resetpass-validity-soft": "Ο κωδικός πρόσβασής σας δεν είναι έγκυρος: $1\n\nΠαρακαλούμε επιλέξτε έναν νέο κωδικό πρόσβασης τώρα, ή πατήστε «{{int:resetpass-submit-cancel}}» για να τον επαναφέρετε αργότερα.",
+       "resetpass-expired-soft": "Ο κωδικός πρόσβασης έχει λήξει και πρέπει να γίνει επαναφορά του. Επιλέξτε έναν νέο κωδικό πρόσβασης τώρα ή πατήστε «{{int:authprovider-resetpass-skip-label}}» για τον επαναφέρετε αργότερα.",
+       "resetpass-validity-soft": "Ο κωδικός πρόσβασής σας δεν είναι έγκυρος: $1\n\nΠαρακαλούμε επιλέξτε έναν νέο κωδικό πρόσβασης τώρα, ή πατήστε «{{int:authprovider-resetpass-skip-label}}» για να τον επαναφέρετε αργότερα.",
        "passwordreset": "Επαναφορά κωδικού",
        "passwordreset-text-one": "Συμπληρώστε την παρακάτω φόρμα για να επαναφέρετε τον κωδικό πρόσβασής σας.",
        "passwordreset-text-many": "{{PLURAL:$1|Συμπληρώστε ένα από τα πεδία για να λάβετε προσωρινό κωδικό πρόσβαση μέσω ηλεκτρονικού ταχυδρομείου.}}",
        "minoredit": "Αυτή είναι μια μικροαλλαγή",
        "watchthis": "Παρακολούθηση αυτής της σελίδας",
        "savearticle": "Αποθήκευση σελίδας",
+       "publishpage": "Δημοσίευση σελίδας",
+       "publishchanges": "Δημοσίευση αλλαγών",
        "preview": "Προεπισκόπηση",
        "showpreview": "Εμφάνιση προεπισκόπησης",
        "showdiff": "Εμφάνιση αλλαγών",
        "apihelp-no-such-module": "Το Module \"$1\" δεν βρέθηκε.",
        "apisandbox": "Αμμοδοχείο API",
        "apisandbox-api-disabled": "Η Διεπαφή Προγραμματισμού Εφαρμογών (API) είναι απενεργοποιημένη σε αυτήν την τοποθεσία.",
-       "apisandbox-intro": "Χρησιμοποιήστε αυτήν τη σελίδα για να πειραματιστείτε με το '''API της υπηρεσίας ιστού του MediaWiki'''.\nΑνατρέξτε στην [//www.mediawiki.org/wiki/API:Main_page τεκμηρίωση του API] για περισσότερες πληροφορίες πάνω στη χρήση του API. Παράδειγμα: [//www.mediawiki.org/wiki/API#A_simple_example λήψη του περιεχομένου της Αρχικής Σελίδας]. Επιλέξτε μια ενέργεια για να δείτε περισσότερα παραδείγματα.\n\nΝα σημειωθεί ότι, παρόλο που αυτό εδώ είναι αμμοδοχείο, οι ενέργειες που εκτελείτε σε αυτήν τη σελίδα μπορούν να τροποποιήσουν το wiki.",
+       "apisandbox-intro": "Χρησιμοποιήστε αυτήν τη σελίδα για να πειραματιστείτε με το '''API της υπηρεσίας ιστού του MediaWiki'''.\nΑνατρέξτε στην [https://www.mediawiki.org/wiki/API:Main_page τεκμηρίωση του API] για περισσότερες πληροφορίες πάνω στη χρήση του API. Παράδειγμα: [https://www.mediawiki.org/wiki/API#A_simple_example λήψη του περιεχομένου της Αρχικής Σελίδας]. Επιλέξτε μια ενέργεια για να δείτε περισσότερα παραδείγματα.\n\nΝα σημειωθεί ότι, παρόλο που αυτό εδώ είναι αμμοδοχείο, οι ενέργειες που εκτελείτε σε αυτήν τη σελίδα μπορούν να τροποποιήσουν το wiki.",
        "apisandbox-unfullscreen": "Εμφάνιση της σελίδας",
        "apisandbox-submit": "Υποβολή του αιτήματος",
        "apisandbox-reset": "Εκκαθάριση",
        "allmessagesname": "Όνομα",
        "allmessagesdefault": "Προεπιλεγμένο κείμενο μηνύματος",
        "allmessagescurrent": "Παρόν κείμενο",
-       "allmessagestext": "Αυτή είναι μια λίστα με όλα τα μηνύματα συστήματος που βρίσκονται στην περιοχή MediaWiki.\nΠαρακαλούμε επισκεφθείτε τα [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] και [//translatewiki.net translatewiki.net] αν επιθυμείτε να συνεισφέρετε σε μια γενική μετάφραση του MediaWiki.",
+       "allmessagestext": "Αυτή είναι μια λίστα με όλα τα μηνύματα συστήματος που βρίσκονται στην περιοχή MediaWiki.\nΠαρακαλούμε επισκεφθείτε τα [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] και [https://translatewiki.net translatewiki.net] αν επιθυμείτε να συνεισφέρετε σε μια γενική μετάφραση του MediaWiki.",
        "allmessagesnotsupportedDB": "Αυτή η σελίδα δεν υποστηρίζεται επειδή το ''wgUseDatabaseMessages'' είναι απενεργοποιημένο.",
        "allmessages-filter-legend": "Φίλτρο",
        "allmessages-filter": "Ταξινόμηση βάσει της δήλωσης προσαρμογής:",
        "tooltip-ca-nstab-category": "Προβολή της σελίδας κατηγορίας",
        "tooltip-minoredit": "Χαρακτηρισμός αυτής της επεξεργασίας ως μικροεπεξεργασία",
        "tooltip-save": "Αποθήκευση των αλλαγών σας",
+       "tooltip-publish": "Δημοσίευση των αλλαγών σας",
        "tooltip-preview": "Προεπισκόπηση των αλλαγών σας. Παρακαλούμε χρησιμοποιήστε την πριν αποθηκεύσετε!",
        "tooltip-diff": "Εμφάνιση των αλλαγών που κάνατε στο κείμενο",
        "tooltip-compareselectedversions": "Προβολή των διαφορών ανάμεσα στις δύο επιλεγμένες αναθεωρήσεις αυτής της σελίδας",
        "mw-widgets-dateinput-placeholder-month": "ΕΕΕΕ-ΜΜ",
        "mw-widgets-titleinput-description-new-page": "η σελίδα που δεν υπάρχει ακόμα",
        "mw-widgets-titleinput-description-redirect": "ανακατεύθυνση στο $1",
-       "api-error-blacklisted": "Παρακαλώ επιλέξτε ένα διαφορετικό, περιγραφικό τίτλο.",
        "sessionprovider-generic": "$1 συνεδρίες",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "συνεδρίες με βάση τα cookies",
        "sessionprovider-nocookies": "Τα Cookies μπορούν να απενεργοποιηθούν. Βεβαιωθείτε ότι έχετε ενεργοποιημένα τα cookies και ξεκινήστε πάλι.",
-       "randomrootpage": "Τυχαία κύρια σελίδα"
+       "randomrootpage": "Τυχαία κύρια σελίδα",
+       "log-action-filter-rights": "Πληκτρολογήστε για αλλαγή δικαιωμάτων:"
 }
index d64697d..321a044 100644 (file)
@@ -30,8 +30,8 @@
        "filenotfound": "Could not find file ‘$1’.",
        "unexpected": "Unexpected value: ‘$1’=‘$2’.",
        "cannotdelete": "The page or file ‘$1’ could not be deleted.\nIt may have already been deleted by someone else.",
-       "protectedinterface": "This page provides interface text for the software on this wiki, and is protected to prevent abuse.\nTo add or change translations for all wikis, please use [//translatewiki.net/ translatewiki.net], the MediaWiki localisation project.",
-       "editinginterface": "'''Warning:''' You are editing a page which is used to provide interface text for the software.\nChanges to this page will affect the appearance of the user interface for other users on this wiki.\nTo add or change translations for all wikis, please use [//translatewiki.net/ translatewiki.net], the MediaWiki localisation project.",
+       "protectedinterface": "This page provides interface text for the software on this wiki, and is protected to prevent abuse.\nTo add or change translations for all wikis, please use [https://translatewiki.net/ translatewiki.net], the MediaWiki localisation project.",
+       "editinginterface": "'''Warning:''' You are editing a page which is used to provide interface text for the software.\nChanges to this page will affect the appearance of the user interface for other users on this wiki.\nTo add or change translations for all wikis, please use [https://translatewiki.net/ translatewiki.net], the MediaWiki localisation project.",
        "cascadeprotected": "This page has been protected from editing, because it is included in the following {{PLURAL:$1|page, which is|pages, which are}} protected with the ‘cascading’ option turned on:\n$2",
        "prefs-i18n": "Internationalisation",
        "license": "Licencing:",
@@ -51,7 +51,7 @@
        "ipbreason-dropdown": "*Common block reasons\n** Inserting false information\n** Removing content from pages\n** Spamming links to external sites\n** Inserting nonsense/gibberish into pages\n** Intimidating behaviour/harassment\n** Abusing multiple accounts\n** Unacceptable username",
        "proxyblockreason": "Your IP address has been blocked because it is an open proxy.\nPlease contact your Internet service provider or technical support of your organisation and inform them of this serious security problem.",
        "movecategorypage-warning": "<strong>Warning:</strong> You are about to move a category page. Please note that only the page will be moved and any pages in the old category will <em>not</em> be recategorised into the new one.",
-       "allmessagestext": "This is a list of system messages available in the MediaWiki namespace.\nPlease visit [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] and [//translatewiki.net translatewiki.net] if you wish to contribute to the generic MediaWiki localisation.",
+       "allmessagestext": "This is a list of system messages available in the MediaWiki namespace.\nPlease visit [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] and [https://translatewiki.net translatewiki.net] if you wish to contribute to the generic MediaWiki localisation.",
        "allmessages-filter": "Filter by customisation state:",
        "import-error-unserialize": "Revision $2 of page \"$1\" could not be unserialised. The revision was reported to use content model $3 serialised as $4.",
        "metadata-help": "This file contains additional information, probably added from the digital camera or scanner used to create or digitise it.\nIf the file has been modified from its original state, some details may not fully reflect the modified file.",
index f135f40..6d1e58d 100644 (file)
        "databaseerror-query": "Query: $1",
        "databaseerror-function": "Function: $1",
        "databaseerror-error": "Error: $1",
-       "transaction-duration-limit-exceeded": "To avoid creating high replication lag, this transaction was aborted because the write duration ($1) exceeded the $2 {{PLURAL:$2|second|seconds}} limit.\nIf you are changing many items at once, try doing multiple smaller operations instead.",
+       "transaction-duration-limit-exceeded": "To avoid creating high replication lag, this transaction was aborted because the write duration ($1) exceeded the $2 second limit.\nIf you are changing many items at once, try doing multiple smaller operations instead.",
        "laggedslavemode": "<strong>Warning:</strong> Page may not contain recent updates.",
        "readonly": "Database locked",
        "enterlockreason": "Enter a reason for the lock, including an estimate of when the lock will be released",
        "protectedpagetext": "This page has been protected to prevent editing or other actions.",
        "viewsourcetext": "You can view and copy the source of this page.",
        "viewyourtext": "You can view and copy the source of <strong>your edits</strong> to this page.",
-       "protectedinterface": "This page provides interface text for the software on this wiki, and is protected to prevent abuse.\nTo add or change translations for all wikis, please use [//translatewiki.net/ translatewiki.net], the MediaWiki localisation project.",
+       "protectedinterface": "This page provides interface text for the software on this wiki, and is protected to prevent abuse.\nTo add or change translations for all wikis, please use [https://translatewiki.net/ translatewiki.net], the MediaWiki localisation project.",
        "editinginterface": "<strong>Warning:</strong> You are editing a page that is used to provide interface text for the software.\nChanges to this page will affect the appearance of the user interface for other users on this wiki.",
-       "translateinterface": "To add or change translations for all wikis, please use [//translatewiki.net/ translatewiki.net], the MediaWiki localisation project.",
+       "translateinterface": "To add or change translations for all wikis, please use [https://translatewiki.net/ translatewiki.net], the MediaWiki localisation project.",
        "cascadeprotected": "This page has been protected from editing because it is transcluded in the following {{PLURAL:$1|page, which is|pages, which are}} protected with the \"cascading\" option turned on:\n$2",
        "namespaceprotected": "You do not have permission to edit pages in the <strong>$1</strong> namespace.",
        "customcssprotected": "You do not have permission to edit this CSS page because it contains another user's personal settings.",
        "resetpass-temp-password": "Temporary password:",
        "resetpass-abort-generic": "Password change has been aborted by an extension.",
        "resetpass-expired": "Your password has expired. Please set a new password to log in.",
-       "resetpass-expired-soft": "Your password has expired and needs to be reset. Please choose a new password now, or click \"{{int:resetpass-submit-cancel}}\" to reset it later.",
-       "resetpass-validity-soft": "Your password is not valid: $1\n\nPlease choose a new password now, or click \"{{int:resetpass-submit-cancel}}\" to reset it later.",
+       "resetpass-expired-soft": "Your password has expired and needs to be reset. Please choose a new password now, or click \"{{int:authprovider-resetpass-skip-label}}\" to reset it later.",
+       "resetpass-validity-soft": "Your password is not valid: $1\n\nPlease choose a new password now, or click \"{{int:authprovider-resetpass-skip-label}}\" to reset it later.",
        "passwordreset": "Reset password",
        "passwordreset-text-one": "Complete this form to receive a temporary password via email.",
        "passwordreset-text-many": "{{PLURAL:$1|Fill in one of the fields to receive a temporary password via email.}}",
        "minoredit": "This is a minor edit",
        "watchthis": "Watch this page",
        "savearticle": "Save page",
+       "savechanges": "Save changes",
        "publishpage": "Publish page",
+       "publishchanges": "Publish changes",
        "preview": "Preview",
        "showpreview": "Show preview",
        "showdiff": "Show changes",
        "content-model-json": "JSON",
        "content-json-empty-object": "Empty object",
        "content-json-empty-array": "Empty array",
+       "deprecated-self-close-category": "Pages using invalid self-closed HTML tags",
+       "deprecated-self-close-category-desc": "The page contains 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.",
        "duplicate-args-warning": "<strong>Warning:</strong> [[:$1]] is calling [[:$2]] with more than one value for the \"$3\" parameter. Only the last value provided will be used.",
        "duplicate-args-category": "Pages using duplicate arguments in template calls",
        "duplicate-args-category-desc": "The page contains template calls that use duplicates of arguments, such as <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> or <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "rightslogtext": "This is a log of changes to user rights.",
        "action-read": "read this page",
        "action-edit": "edit this page",
-       "action-createpage": "create pages",
-       "action-createtalk": "create discussion pages",
+       "action-createpage": "create this page",
+       "action-createtalk": "create this discussion page",
        "action-createaccount": "create this user account",
        "action-autocreateaccount": "automatically create this external user account",
        "action-history": "view the history of this page",
        "upload-http-error": "An HTTP error occurred: $1",
        "upload-copy-upload-invalid-domain": "Copy uploads are not available from this domain.",
        "upload-foreign-cant-upload": "This wiki is not configured to upload files to the requested foreign file repository.",
+       "upload-foreign-cant-load-config": "Failed to load the configuration for file uploads to the foreign file repository.",
+       "upload-dialog-disabled": "File uploads using this dialog are disabled on this wiki.",
        "upload-dialog-title": "Upload file",
        "upload-dialog-button-cancel": "Cancel",
        "upload-dialog-button-done": "Done",
        "apisandbox-summary": "",
        "apisandbox-jsonly": "JavaScript is required to use the API sandbox.",
        "apisandbox-api-disabled": "The API is disabled on this site.",
-       "apisandbox-intro": "Use this page to experiment with the <strong>MediaWiki web service API</strong>.\nRefer to [[mw:API:Main page|the API documentation]] for further details of API usage. Example: [//www.mediawiki.org/wiki/API#A_simple_example get the content of a Main Page]. Select an action to see more examples.\n\nNote that, although this is a sandbox, actions you carry out on this page may modify the wiki.",
+       "apisandbox-intro": "Use this page to experiment with the <strong>MediaWiki web service API</strong>.\nRefer to [[mw:API:Main page|the API documentation]] for further details of API usage. Example: [https://www.mediawiki.org/wiki/API#A_simple_example get the content of a Main Page]. Select an action to see more examples.\n\nNote that, although this is a sandbox, actions you carry out on this page may modify the wiki.",
        "apisandbox-fullscreen": "Expand panel",
        "apisandbox-fullscreen-tooltip": "Expand the sandbox panel to fill the browser window.",
        "apisandbox-unfullscreen": "Show page",
        "sp-contributions-username": "IP address or username:",
        "sp-contributions-toponly": "Only show edits that are latest revisions",
        "sp-contributions-newonly": "Only show edits that are page creations",
+       "sp-contributions-hideminor": "Hide minor edits",
        "sp-contributions-submit": "Search",
        "sp-contributions-explain": "",
        "sp-contributions-footer": "-",
        "allmessagesname": "Name",
        "allmessagesdefault": "Default message text",
        "allmessagescurrent": "Current message text",
-       "allmessagestext": "This is a list of system messages available in the MediaWiki namespace.\nPlease visit [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] and [//translatewiki.net translatewiki.net] if you wish to contribute to the generic MediaWiki localisation.",
+       "allmessagestext": "This is a list of system messages available in the MediaWiki namespace.\nPlease visit [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] and [https://translatewiki.net translatewiki.net] if you wish to contribute to the generic MediaWiki localisation.",
        "allmessagesnotsupportedDB": "This page cannot be used because <strong>$wgUseDatabaseMessages</strong> has been disabled.",
        "allmessages-filter-legend": "Filter",
        "allmessages-filter": "Filter by customization state:",
        "mw-widgets-dateinput-placeholder-month": "YYYY-MM",
        "mw-widgets-titleinput-description-new-page": "page does not exist yet",
        "mw-widgets-titleinput-description-redirect": "redirect to $1",
-       "api-error-blacklisted": "Please choose a different, descriptive title.",
        "sessionmanager-tie": "Cannot combine multiple request authentication types: $1.",
        "sessionprovider-generic": "$1 sessions",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "cookie-based sessions",
        "log-action-filter-newusers": "Type of account creation:",
        "log-action-filter-patrol": "Type of patrol:",
        "log-action-filter-protect": "Type of protection:",
-       "log-action-filter-rights": "Type of right change",
-       "log-action-filter-suppress": "Type of suppression",
+       "log-action-filter-rights": "Type of right change:",
+       "log-action-filter-suppress": "Type of suppression:",
        "log-action-filter-upload": "Type of upload:",
        "log-action-filter-all": "All",
        "log-action-filter-block-block": "Block",
        "log-action-filter-suppress-event": "Log suppression",
        "log-action-filter-suppress-revision": "Revision suppression",
        "log-action-filter-suppress-delete": "Page suppression",
-       "log-action-filter-suppress-block": "User supppression by block",
+       "log-action-filter-suppress-block": "User suppression by block",
        "log-action-filter-suppress-reblock": "User suppression by reblock",
        "log-action-filter-upload-upload": "New upload",
        "log-action-filter-upload-overwrite": "Reupload",
        "cannotauth-not-allowed": "You are not allowed to use this page",
        "changecredentials" : "Change credentials",
        "changecredentials-submit": "Change credentials",
-       "changecredentials-submit-cancel": "Cancel",
        "changecredentials-invalidsubpage": "$1 is not a valid credential type.",
        "changecredentials-success": "Your credentials have been changed.",
        "removecredentials" : "Remove credentials",
        "removecredentials-submit": "Remove credentials",
-       "removecredentials-submit-cancel": "Cancel",
        "removecredentials-invalidsubpage": "$1 is not a valid credential type.",
        "removecredentials-success": "Your credentials have been removed.",
        "credentialsform-provider": "Credentials type:",
        "linkaccounts-success-text": "The account was linked.",
        "linkaccounts-submit": "Link accounts",
        "unlinkaccounts": "Unlink accounts",
-       "unlinkaccounts-success": "The account was unlinked."
+       "unlinkaccounts-success": "The account was unlinked.",
+       "authenticationdatachange-ignored": "The authentication data change was not handled. Maybe no provider was configured?"
 }
index 66b168b..ad7f5a4 100644 (file)
        "tog-hideminor": "Kaŝi malgrandajn redaktetojn ĉe <i>Lastaj ŝanĝoj</i>",
        "tog-hidepatrolled": "Kaŝi patrolitajn redaktojn en lastaj ŝanĝoj",
        "tog-newpageshidepatrolled": "Kaŝi patrolitajn paĝojn de listo de novaj paĝoj",
-       "tog-hidecategorization": "Kaŝu enkategoriigon de paĝoj",
+       "tog-hidecategorization": "Kaŝi enkategoriigon de paĝoj",
        "tog-extendwatchlist": "Etendi la atentaron por montri ĉiujn ŝanĝojn, ne nur la plej lastajn",
        "tog-usenewrc": "Grupigi ŝanĝojn laŭ paĝo en \"Lastaj ŝanĝoj\" kaj \"Atentaro\" (bezonas Ĝavaskripton)",
-       "tog-numberheadings": "Aŭtomate numerigi sekciojn",
+       "tog-numberheadings": "Aŭtomate numeri sekciojn",
        "tog-showtoolbar": "Montri redakto-breton (per Ĝavaskripto)",
        "tog-editondblclick": "Redakti paĝojn per duobla alklako",
        "tog-editsectiononrightclick": "Ŝalti sekcian redaktadon per dekstra musklako de sekciaj titoloj (per Ĝavaskripto)",
@@ -64,7 +64,7 @@
        "tog-watchdefault": "Aldoni al mia atentaro paĝojn kaj dosierojn redaktitajn de mi",
        "tog-watchmoves": "Aldoni paĝojn kaj dosierojn, kiujn mi movas, al mia atentaro",
        "tog-watchdeletion": "Aldoni paĝojn kaj dosierojn, kiujn mi forigas, al mia atentaro",
-       "tog-watchuploads": "Aldonu novajn dosierojn ke mi alŝutas al mia atentaro",
+       "tog-watchuploads": "Aldonu novajn dosierojn, kiujn mi alŝutas, al mia atentaro",
        "tog-watchrollback": "Aldoni paĝojn, kie mi amasmalfaris, al mia atentaro.",
        "tog-minordefault": "Marki defaŭlte ĉiujn redaktojn kiel etajn",
        "tog-previewontop": "Montri antaŭrigardon antaŭ redaktilo",
@@ -82,7 +82,7 @@
        "tog-watchlisthidebots": "Kaŝi robotajn redaktojn de la atentaro",
        "tog-watchlisthideminor": "Kaŝi malgrandajn redaktojn de la atentaro",
        "tog-watchlisthideliu": "Kaŝi redaktojn de ensalutitaj uzantoj de la atentaro",
-       "tog-watchlistreloadautomatically": "Reŝarĝi la atentaron aŭtomate ĉiam filtro estas ŝanĝita (Necesi Ĝavoskripton)",
+       "tog-watchlistreloadautomatically": "Reŝargi la atentaron aŭtomate ĉiam, kiam filtrilo estas ŝanĝita (bezonas Ĝavoskripton)",
        "tog-watchlisthideanons": "Kaŝi redaktojn de anonimuloj de la atentaro",
        "tog-watchlisthidepatrolled": "Kaŝi patrolitajn redaktojn de la atentaro",
        "tog-watchlisthidecategorization": "Kaŝu enkategoriigon de paĝoj",
        "pagecategories": "{{PLURAL:$1|Kategorio|Kategorioj}}",
        "category_header": "Artikoloj en kategorio \"$1\"",
        "subcategories": "Subkategorioj",
-       "category-media-header": "Dosieroj en kategorio \"$1\"",
+       "category-media-header": "Dosieroj en kategorio “$1”",
        "category-empty": "<em>Tiu ĉi kategorio nuntempe enhavas neniun artikolon aŭ plurmedian dosieron.</em>",
        "hidden-categories": "{{PLURAL:$1|Kaŝita kategorio|Kaŝitaj kategorioj}}",
        "hidden-category-category": "Kaŝitaj kategorioj",
        "protectedpagetext": "Tiu ĉi paĝo estas ŝlosita por malebligi redaktadon.",
        "viewsourcetext": "Vi povas vidi kaj kopii la fonton de la paĝo.",
        "viewyourtext": "Vi povas vidi kaj kopii la fonton de <strong>viaj redaktoj</strong> al ĉi tiu paĝo.",
-       "protectedinterface": "Ĉi tiu paĝo provizas interfacan tekston por la programaro, kaj estas ŝlosita por malebligi misuzon.\nPor aldoni aŭ ŝanĝi tradukojn por ĉiuj vikioj, bonvolu uzi [//translatewiki.net/ translatewiki.net], la projekton por provizi tradukojn por MediaWiki.",
-       "editinginterface": "<strong>Atentu:</strong> Vi redaktas paĝon, kiu provizas interfacan tekston por la programaro.\nŜanĝoj de ĉi tiu teksto ŝanĝos aspekton de la interfaco por aliaj uzantoj de ĉi tiu vikio.\nPor aldoni aŭ ŝanĝi tradukojn por ĉiuj vikioj, bonvolu uzi [//translatewiki.net/ translatewiki.net], la projekton por provizi tradukojn por MediaWiki.",
-       "translateinterface": "Por ŝanĝi tradukaĵojn por ĉiuj vikioj bonvolu uzi [//translatewiki.net/ translatewiki.net], la komunan tradukan projekton de MediaWiki.",
+       "protectedinterface": "Ĉi tiu paĝo provizas interfacan tekston por la programaro, kaj estas ŝlosita por malebligi misuzon.\nPor aldoni aŭ ŝanĝi tradukojn por ĉiuj vikioj, bonvolu uzi [https://translatewiki.net/ translatewiki.net], la projekton por provizi tradukojn por MediaWiki.",
+       "editinginterface": "<strong>Atentu:</strong> Vi redaktas paĝon, kiu provizas interfacan tekston por la programaro.\nŜanĝoj de ĉi tiu teksto ŝanĝos aspekton de la interfaco por aliaj uzantoj de ĉi tiu vikio.\nPor aldoni aŭ ŝanĝi tradukojn por ĉiuj vikioj, bonvolu uzi [https://translatewiki.net/ translatewiki.net], la projekton por provizi tradukojn por MediaWiki.",
+       "translateinterface": "Por ŝanĝi tradukaĵojn por ĉiuj vikioj bonvolu uzi [https://translatewiki.net/ translatewiki.net], la komunan tradukan projekton de MediaWiki.",
        "cascadeprotected": "Ĉi tiu paĝo estas protektita kontraŭ redaktado, ĉar ĝi estas enplektita en la {{PLURAL:$1|sekvan paĝon, kiu|sekvajn paĝojn, kiuj}} estas {{PLURAL:$1|protektata|protektataj}} kun la \"kaskada\" opcio ŝaltita sur:\n$2",
        "namespaceprotected": "Vi ne rajtas redakti paĝojn en la '''$1''' nomspaco.",
        "customcssprotected": "Vi ne rajtas redakti ĉi tiun CSS-paĝon, ĉar ĝi enhavas personajn alĝustigojn de alia uzanto.",
        "createacct-reason": "Kialo",
        "createacct-reason-ph": "Kial vi kreas plian konton",
        "createacct-reason-help": "Mesaĝo vidigita en la protokolo pri kreado de konto",
-       "createacct-submit": "Krei konton",
+       "createacct-submit": "Kreu vian konton",
        "createacct-another-submit": "Krei konton",
        "createacct-continue-submit": "Daŭri kreadon de konto",
        "createacct-another-continue-submit": "Daŭri kreadon de konto",
        "botpasswords-label-delete": "Forigi",
        "botpasswords-label-resetpassword": "Rekomencigi la pasvorton",
        "botpasswords-label-grants": "Uzeblaj permesdonoj:",
-       "botpasswords-help-grants": "Ĉiu permesdono provizas aliron al listitaj uzantaj permisoj, kiujn uzantkonto jam havas. Vidu la [[Special:ListGrants|tabelon de permisdonoj]] por pli da informo.",
+       "botpasswords-help-grants": "Ĉiu permesdono provizas aliron al listitaj uzantaj permisoj, kiujn uzantkonto jam havas. Vidu la [[Special:ListGrants|tabelon de permesdonoj]] por pli da informo.",
        "botpasswords-label-restrictions": "Limigoj de uzado:",
        "botpasswords-label-grants-column": "Permeso donita",
        "botpasswords-bad-appid": "La robota nomo \"$1\" estas malvalida.",
        "resetpass-temp-password": "Provizora pasvorto:",
        "resetpass-abort-generic": "Ŝanĝo de pasvorto estis nuligita per kromprogramo.",
        "resetpass-expired": "Via pasvorto eksvalidiĝis. Bonvolu difini novan pasvorton por la alsalutado.",
-       "resetpass-expired-soft": "Via pasvorto eksvalidiĝis kaj devas esti rekomencigata. Bonvolu nun elekti novan pasvorton, aŭ klaki \"{{int:resetpass-submit-cancel}}\" por rekomencigi ĝin pli malfrue.",
-       "resetpass-validity-soft": "Via pasvorto ne estas valida: $1\n\nBonvolu elekti novan pasvorton nun, aŭ klaku \"{{int:resetpass-submit-cancel}}\", por rekomencigi ĝin pli malfrue.",
+       "resetpass-expired-soft": "Via pasvorto eksvalidiĝis kaj devas esti rekomencigata. Bonvolu nun elekti novan pasvorton, aŭ klaki \"{{int:authprovider-resetpass-skip-label}}\" por rekomencigi ĝin pli malfrue.",
+       "resetpass-validity-soft": "Via pasvorto ne estas valida: $1\n\nBonvolu elekti novan pasvorton nun, aŭ klaku \"{{int:authprovider-resetpass-skip-label}}\", por rekomencigi ĝin pli malfrue.",
        "passwordreset": "Restarigo de pasvorto",
        "passwordreset-text-one": "Plenigu ĉi tiun formularon por renovigi vian pasvorton.",
        "passwordreset-text-many": "{{PLURAL:$1|Plenumu unu el la kampoj por restarigi vian pasvorton.}}",
        "accmailtext": "Hazarde generita pasvorto por [[User talk:$1|$1]] estis sendita al $2.\n\nLa pasvorto por ĉi tiu nova konto povas esti ŝanĝita en la paĝo ''[[Special:ChangePassword|ŝanĝi pasvorton]]'' dum ensalutado.",
        "newarticle": "(Nova)",
        "newarticletext": "Vi sekvis ligilon al paĝo ankoraŭ ne ekzistanta. Se vi volas krei ĝin, ektajpu malsupre (vidu la [$1 helpopaĝon] por klarigoj.) Se vi malintence alvenis ĉi tien, simple alklaku la retrobutonon de via retumilo.",
-       "anontalkpagetext": "---- ''Jen diskutopaĝo por anonima kontribuanto kiu ne jam kreis konton aŭ ne uzas ĝin.\nNi tial devas uzi la cifran IP-adreson por identigi lin/ŝin.\nĈi tia IP-adreso povas esti uzata de pluraj uzantoj.\nSe vi estas anonimulo kaj preferus eviti tiajn mistrafajn komentojn al vi, bonvolu [[Special:CreateAccount|krei konton]] aŭ [[Special:UserLogin|ensaluti]] por eviti estontan konfuzon pro aliaj anonimaj uzantoj.''",
+       "anontalkpagetext": "<em>Jen diskutopaĝo por anonima kontribuanto kiu ne jam kreis konton aŭ ne uzas ĝin.</em>\nNi tial devas uzi la cifran IP-adreson por identigi lin/ŝin.\nĈi tia IP-adreso povas esti uzata de pluraj uzantoj.\nSe vi estas anonimulo kaj preferus eviti tiajn mistrafajn komentojn al vi, bonvolu [[Special:CreateAccount|krei konton]] aŭ [[Special:UserLogin|ensaluti]] por eviti estontan konfuzon pro aliaj anonimaj uzantoj.''",
        "noarticletext": "Mankas teksto en ĉi tiu paĝo.\nVi povas [[Special:Search/{{PAGENAME}}|serĉi ĉi tiun paĝtitolon]] en aliaj paĝoj,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} serĉi la rilatajn protokolojn],\naŭ [{{fullurl:{{FULLPAGENAME}}|action=edit}} krei ĉi tiun paĝon]</span>.",
        "noarticletext-nopermission": "Estas neniom da teksto en ĉi tiu paĝo.\nVi povas [[Special:Search/{{PAGENAME}}|serĉi ĉi tiun paĝan titolon]] en aliaj paĝoj,\naŭ <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} serĉi la rilatajn protokolojn]</span>, sed vi ne rajtas krei ĉi tiun paĝon.",
        "missing-revision": "La revizio n-ro $1 de la paĝo nomata \"{{FULLPAGENAME}}\" ne ekzistas.\n\nTio kutime estas kaŭzata per sekvado de malaktuala historio-ligilo al paĝo forigita.\nDetaloj troveblos en la [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} registro de forigoj].",
        "userpage-userdoesnotexist": "Uzantokonto \"<nowiki>$1</nowiki>\" ne estas registrita. Bonvolu konfirmi se vi volas krei/redakti ĉi tiun paĝon.",
        "userpage-userdoesnotexist-view": "Uzanto-konto \"$1\" ne estas registrita.",
        "blocked-notice-logextract": "Ĉi tiu uzanto estas ĉi-momente forbarita.\nLa lasta protokolero estas jene montrata por via referenco:",
-       "clearyourcache": "Notu:''' Post konservado, vi forviŝu la kaŝmemoron de via foliumilo por vidi la ŝanĝojn. \n* '''Firefox / Safari:''' Premu majuskligan klavon klakante ''Reŝarĝi'', aŭ premu aŭ ''Stir-F5'' aŭ ''Stir-R'' (''⌘-R'' kun Makintoŝo)\n* '''Google Chrome:''' Premu ''Stir-majuskligklavon-R'' (''⌘-Majuskligklavo-R'' kun Makintoŝo)\n* '''Interreta Esplorilo''': Premu ''Stir'' klakante ''Refreŝu'', aŭ premu ''Stir-F5'' \n* '''Opera:''' Nuligi la kaŝmemoro en ''Iloj → Preferoj''",
+       "clearyourcache": "<strong>Notu:</strong>Post konservado, vi forviŝu la kaŝmemoron de via foliumilo por vidi la ŝanĝojn. \n* <strong>Firefox / Safari:</strong> Premu majuskligan klavon klakante <em>Reŝarĝi</em>, aŭ premu aŭ <em>Stir-F5</em> aŭ <em>Stir-R</em> (<em>⌘-R</em> kun Makintoŝo)\n* <strong>Google Chrome:</strong> Premu <em>Stir-majuskligklavon-R</em> (<em>⌘-Majuskligklavo-R</em> kun Makintoŝo)\n* <strong>Interreta Esplorilo</strong>: Premu <em>Stir</em> klakante <em>Refreŝu</em>, aŭ premu <em>Stir-F5</em> \n* <strong>Opera:</strong> Iru al <em>menuo →  parametroj</em> (<em>Opera →  Agordoj</em> per Makintoŝa) kaj tiam al <em>privateco kaj sekureco →  Nuligi retuman datenon → kaŝmemorataj bildoj kaj dosieroj</em>.",
        "usercssyoucanpreview": "'''Konsileto:''' Uzu la butonon \"Antaŭrigardi\" por provi vian novan CSS-kodon antaŭ konservado.",
        "userjsyoucanpreview": "'''Konsileto:''' Uzu la butonon \"{{int:showpreview}}\" por provi vian novan Ĝavaskriptan kodon antaŭ konservado.",
        "usercsspreview": "'''Notu ke vi nur antaŭvidas vian uzanto-CSS.\nĜi ne jam estis konservita!'''",
        "rev-suppressed-unhide-diff": "Unu el la revizioj de ĉi tiu diferenco estis '''kaŝita'''.\nEble estas detaloj en la [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} protokolo pri kaŝado].\nVi povas ankoraŭ [$1 vidi ĉi tiun diferencon] se vi deziras.",
        "rev-deleted-diff-view": "Unu el la revizioj de ĉi tiu diferenco estis '''forigita'''.\nVi povas rigardi ĉi tiun diferencon, detaloj estas trovebla en la [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} protokolo pri forigado].",
        "rev-suppressed-diff-view": "Unu el la revizioj de ĉi tiu diferenco estis '''kaŝita'''.\nKiel administranto, vi povas rigardi ĉi tiun diferencon, eble estas detaloj en la [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} protokolo pri kaŝadoj].",
-       "rev-delundel": "montri/kaŝi",
+       "rev-delundel": "ŝanĝi videblecon",
        "rev-showdeleted": "montri",
        "revisiondelete": "Forigi/malforigi versiojn",
        "revdelete-nooldid-title": "Nevalida cela revizio",
        "mergelog": "Protokolo de kunigoj",
        "revertmerge": "Malkunigi",
        "mergelogpagetext": "Jen listo de la plej lastatempaj kunigoj de unu paĝhistorio en alian.",
-       "history-title": "Revizio-historio de \"$1\"",
+       "history-title": "Revizio-historio de “$1”",
        "difference-title": "$1: Malsamoj inter versioj",
        "difference-title-multipage": "Malsamoj inter la paĝoj $1 kaj $2",
        "difference-multipage": "(Diferenco inter paĝoj)",
        "searchprofile-images": "Plurmedio",
        "searchprofile-everything": "Ĉion",
        "searchprofile-advanced": "Progresa",
-       "searchprofile-articles-tooltip": "Serĉo en $1",
+       "searchprofile-articles-tooltip": "Serĉi en $1",
        "searchprofile-images-tooltip": "Serĉi dosierojn",
        "searchprofile-everything-tooltip": "Traserĉi ĉiun enhavon (inkluzivante diskuto-paĝojn)",
        "searchprofile-advanced-tooltip": "Serĉi en specialaj nomspacoj",
        "right-override-export-depth": "Eksporti paĝojn inkluzivante ligitajn paĝojn ĝis profundeco de 5",
        "right-sendemail": "Sendi retpoŝton al aliaj uzantoj",
        "right-passwordreset": "Vidi retpoŝtojn de pasvorta restarado.",
-       "right-managechangetags": "Kreado kaj forigado de [[Special:Tags|etikedoj]] de datumbazo",
+       "right-managechangetags": "Kreado kaj (mal)aktivgo de [[Special:Tags|etikedoj]]",
        "right-applychangetags": "Aldoni [[Special:Tags|etikedojn]] al propraj ŝanĝoj",
        "right-changetags": "Aldoni kaj forigi arbitrajn [[Special:Tags|etikedojn]] ĉe unuopaj revizioj kaj protokoleroj",
        "right-deletechangetags": "Forigi [[Special:Tags|etikedojn]] de la datenbazo",
        "rightslogtext": "Ĉi tio estas protokolo pri la ŝanĝoj de uzantorajtoj.",
        "action-read": "legi ĉi tiun paĝon",
        "action-edit": "redakti ĉi tiun paĝon",
-       "action-createpage": "krei paĝojn",
-       "action-createtalk": "krei diskuto-paĝojn",
+       "action-createpage": "krei ĉi tiun paĝon",
+       "action-createtalk": "krei ĉi tiun diskutpaĝon",
        "action-createaccount": "krei ĉi tiun uzanto-konton",
        "action-autocreateaccount": "Aŭtomate krei tiun eksteruzantan konton",
        "action-history": "vidi historion de tiu ĉi paĝo",
        "upload-http-error": "HTTP-eraro okazis: $1",
        "upload-copy-upload-invalid-domain": "Kopio-alŝutoj ne disponiĝas el ĉi tiu domajno.",
        "upload-foreign-cant-upload": "Tiu vikio ne estas agorita por alŝuti alŝutitan dosieron al la petita fora dosierdeponejo.",
+       "upload-foreign-cant-load-config": "La ŝarĝado de agordo pri dosieran alŝuton malsukcesis por la fora dosiera deponejo.",
+       "upload-dialog-disabled": "Alŝutoj de dosiero per ĉi tiun dialogon estas malfunkciigita sur ĉi tiu vikio.",
        "upload-dialog-title": "Alŝuti dosieron",
        "upload-dialog-button-cancel": "Nuligi",
        "upload-dialog-button-done": "Farite",
        "apisandbox": "API testejo",
        "apisandbox-jsonly": "JavaScript estas postulita por uzi la API provejon.",
        "apisandbox-api-disabled": "API estas malŝalta en ĉi tiu retejo.",
-       "apisandbox-intro": "Uzu tiun ĉi paĝon por eksperimenti kun <strong>Mediavikia retserva API</strong>.\nVidu [[mw:API:Main page|la API-dokumentadon]] por pli da detaloj pri la uzo de API. Ekz-e: [//www.mediawiki.org/wiki/API#A_simple_example atingi la enhavon de la Ĉefpaĝo]. Elektu agon por vidi pliajn ekzemplojn.\n\nNotu ke, kvankam ĉi tiu estas provejo, agoj kiun vi faros en ĉi tiu paĝo povas modifi la vikion.",
+       "apisandbox-intro": "Uzu tiun ĉi paĝon por eksperimenti kun <strong>Mediavikia retserva API</strong>.\nVidu [[mw:API:Main page|la API-dokumentadon]] por pli da detaloj pri la uzo de API. Ekz-e: [https://www.mediawiki.org/wiki/API#A_simple_example atingi la enhavon de la Ĉefpaĝo]. Elektu agon por vidi pliajn ekzemplojn.\n\nNotu ke, kvankam ĉi tiu estas provejo, agoj kiun vi faros en ĉi tiu paĝo povas modifi la vikion.",
        "apisandbox-fullscreen": "Etendi panelon",
        "apisandbox-fullscreen-tooltip": "Etendi la proveja panelo por plenigi la retumilan fenestron.",
        "apisandbox-unfullscreen": "Montri paĝon",
        "listgrouprights-namespaceprotection-namespace": "Nomspaco",
        "listgrouprights-namespaceprotection-restrictedto": "Rajtoj, kiuj permesas al uzanto redakti",
        "listgrants": "Rajtoj donitaj",
+       "listgrants-summary": "La sekvo estas listo de permesdonoj kun ilia rilata aliro al uzantaj rajtoj. Uzantoj povas sankcii aplikojn por uzi ilian konton, sed kun limaj permesoj laŭ la gratifikoj ke la uzanto donis al la aplikaĵo. Tamen aplikaĵo kiu agas en la nomo de uzanto ne povas efektive uzi rajtojn ke la uzanto ne havas.\nPovas esti [[{{MediaWiki:Listgrouprights-helppage}}|suplementa informo]] pri individuaj rajtoj.",
        "listgrants-grant": "Aljuĝoj",
        "listgrants-rights": "Rajtoj",
        "trackingcategories": "Kategorioj por kontrolado",
        "trackingcategories-msg": "Kategorio pri kontrolado",
        "trackingcategories-name": "Nomo de mesaĝo",
        "trackingcategories-desc": "Kriterio por inkluzivi kategorion",
+       "restricted-displaytitle-ignored": "Paĝoj kun malatentaj vidigaj titoloj",
+       "restricted-displaytitle-ignored-desc": "La paĝo enhavas ignoritan <code><nowiki>{{DISPLAYTITLE}}</nowiki></code> ĉar ĝi ne ekvivalentas la efektivan titolon de la paĝo.",
        "noindex-category-desc": "La paĝo ne estas indeksata de robotoj ĉar ĝi enhavas la magian vorton <code><nowiki>__NOINDEX__</nowiki></code> kaj estas en nomspaco, kie la flago estas permesita.",
        "index-category-desc": "La paĝo enhavas <code><nowiki>__INDEX__</nowiki></code> (kaj estas en nomspaco, kie la flago estas permesita), do ĝi estas indeksata de robotoj, kvankam normale ĝi ne estus.",
        "post-expand-template-inclusion-category-desc": "La paĝo post etendo de ĉiuj ŝablonoj estas pli granda ol <code>$wgMaxArticleSize</code>, do kelkaj ŝablonoj ne estis etenditaj.",
        "rollbacklinkcount": "nuligi $1 {{PLURAL:$1|redakton|redaktojn}}",
        "rollbacklinkcount-morethan": "nuligi pli ol $1 {{PLURAL:$1|redakton|redaktojn}}",
        "rollbackfailed": "Malfaro malsukcesis",
+       "rollback-missingparam": "Mankas neprajn parametrojn de peto.",
        "cantrollback": "Ne povas restarigi antaŭan redakton; la redaktinto lasta estas la sola aŭtoro de la paĝo.",
        "alreadyrolled": "Ne povas restarigi la lastan redakton de [[:$1]] de la [[User:$2|$2]] ([[User talk:$2|diskuto]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]);\npro tio, ke oni intertempe redaktis aŭ restarigis la paĝon.\nLa lasta redaktinto estis [[User:$3|$3]] ([[User talk:$3|diskuto]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
        "editcomment": "La resumo de la redakto estis: <em>$1</em>.",
        "revertpage": "Malfaris redaktojn de [[Special:Contributions/$2|$2]] ([[User talk:$2|diskuto]]) al la lasta versio de [[User:$1|$1]]",
        "revertpage-nouser": "Restarigis redaktojn de (salutnomo forigita) al lasta revizio de {{GENDER:$1|[[User:$1|$1]]}}",
        "rollback-success": "Restaris redaktojn de $1; ŝanĝis al lasta versio de $2.",
+       "rollback-success-notify": "Malfaritis redaktojn far $1;\nŝanĝis al la lasta reviziaĵo far $2. [$3 Prezenti ŝanĝojn]",
        "sessionfailure-title": "Seanco malsukcesis",
        "sessionfailure": "Ŝajnas, ke estas problemo kun via ensalutado;\nĈi ago estis nuligita por malhelpi fiensalutadon.\nBonvolu alklaki la reirbutonon kaj reŝargi la paĝon el kiu vi venas, kaj provu denove.",
        "changecontentmodel": "Ŝanĝi la enhavomodelon de paĝo",
        "sp-contributions-username": "IP-adreso aŭ uzantonomo:",
        "sp-contributions-toponly": "Montru nur ŝanĝojn kiuj estas la plej lastaj revizioj",
        "sp-contributions-newonly": "Montri nur redaktojn, kiuj kreis paĝon",
+       "sp-contributions-hideminor": "Malvidigu redaktetojn",
        "sp-contributions-submit": "Serĉi",
        "whatlinkshere": "Ligiloj ĉi tien",
        "whatlinkshere-title": "Paĝoj ligantaj al \"$1\"",
        "whatlinkshere-hideredirs": "$1 alidirektilojn",
        "whatlinkshere-hidetrans": "$1 transinkluzivaĵojn",
        "whatlinkshere-hidelinks": "$1 ligilojn",
-       "whatlinkshere-hideimages": "$1 ligiloj al bildo",
+       "whatlinkshere-hideimages": "$1 dosieraj ligoj",
        "whatlinkshere-filters": "Filtriloj",
        "whatlinkshere-submit": "Ek",
        "autoblockid": "Aŭtomata forbaro #$1",
        "unblock": "Malforbari uzanton",
        "blockip": "Forbari {{GENDER:$1|uzanton}}",
        "blockip-legend": "Forbari uzanton",
-       "blockiptext": "Per jena formularo vi povas forpreni de ajna nomo aŭ IP-adreso la rajton skribi en la vikio. Oni faru tion ''nur'' por eviti vandalismon, kaj sekvante la [[{{MediaWiki:Policy-url}}|regulojn pri forbarado]]. Klarigu la precizan kialon malsupre (ekzemple, citu paĝojn, kiuj estis vandaligitaj).",
+       "blockiptext": "Uzu la sube formularon por forbari skribpermison de specifa uzantnomo aŭ IP-adreso. Tiu endus ''nur'' por eviti vandalismon, kaj laŭe la [[{{MediaWiki:Policy-url}}|politiko]].\nKlarigu la precizan kialon sube (ekzemple, citu paĝojn, kiuj estis vandaligitaj).\nVi povas forbari IP-adresan intervalon per la  [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR]a sintakso; la plej ampleksa intervalo estas /$1 por IPv4 kaj /$2 por IPv6.",
        "ipaddressorusername": "IP-adreso aŭ salutnomo:",
        "ipbexpiry": "Blokdaŭro",
        "ipbreason": "Kialo:",
        "lockedbyandtime": "(de {{GENDER:$1|$1}} je $2, $3)",
        "move-page": "Alinomi $1",
        "move-page-legend": "Alinomi paĝon",
-       "movepagetext": "Per la jena formulo vi povas ŝanĝi la nomon de iu paĝo, kunportante ĝian historion de redaktoj al la nova nomo.\nLa antaŭa titolo fariĝos alidirektilo al la nova titolo.\nVi povas ĝisdatigi alidirektilojn kiu indikas la originalan titolon aŭtomate.\nSe vi elektas ĝisdatigi permane, bonvolu kontroli [[Special:DoubleRedirects|duoblajn]] aŭ [[Special:BrokenRedirects|rompitajn alidirektilojn]].\nVi estas responsa por certigi ke ligilojn direktas fidinde.\n\nNotu, ke la paĝo '''ne''' estos movita se jam ekzistas paĝo ĉe la nova titolo, krom se tiu loko estas malplena aŭ alidirektilo al ĉi tiu paĝo, kaj sen antaŭa redaktohistorio.\nPro tio, vi ja povos removi la paĝon je la antaŭa titolo se vi mistajpus, kaj ne povas forviŝi ekzistantan paĝon per movo.\n\n'''AVERTO!'''\nTio povas esti drasta kaj neatendita ŝanĝo por populara paĝo;\nbonvolu certigi vin, ke vi komprenas ties konsekvencojn antaŭ ol vi antaŭeniru.",
-       "movepagetext-noredirectfixer": "Per jena formularo vi povas alinomigi paĝon, kaj movi tutan ĝian redaktohistorion al la nova nomo. \nLa antaŭa titolo alidirektigos onin al la nova titolo.\nKontrolu pri [[Special:DoubleRedirects|duoblajn]] aŭ [[Special:BrokenRedirects|nefunkciantajn alidirektilojn]].\nVi respondecas pri tio ke ligoj restas montrantaj ĝustadirekten.\n\nKonsciu ke la paĝo '''ne'' estas movota se jam ekzistas paĝo havanta la novan titolon, krom se ĝi maplenas aŭ estas alidirektilo sen antaŭa redaktohistorio.\nTio ĉi signifas ke vi povas alinomigi paĝon reen al antaŭa nomo se vi eraras, kaj vi ke vi ne povas anstataŭigi ekzistantan paĝon.\n\n'''Averto!''\nEblas ke tio ĉi estas drasta kaj neatendita ŝanĝo de populara paĝo;\nAntaŭ daŭrigi, bonvolu certiĝi, ke vi komprenas la konsekvencojn de tiuj ĉi ŝanĝo.",
-       "movepagetalktext": "La movo aŭtomate kunportos la diskuto-paĝon, se tia ekzistas, '''krom se:'''\n*Vi movas la paĝon tra nomspacoj (ekz de ''Nomo'' je ''User:Nomo''),\n*Ne malplena diskuto-paĝo jam ekzistas je la nova nomo, aŭ\n*Vi malelektas la suban ŝaltilon.\n\nTiujokaze, vi nepre permane kunigu la diskuto-paĝojn se vi tion deziras.",
+       "movepagetext": "Per la jena formulo vi povas ŝanĝi la nomon de iu paĝo, kunportante ĝian historion de redaktoj al la nova nomo.\nLa antaŭa titolo fariĝos alidirektilo al la nova titolo.\nVi povas ĝisdatigi alidirektilojn kiu indikas la originalan titolon aŭtomate.\nSe vi elektas ĝisdatigi permane, bonvolu kontroli [[Special:DoubleRedirects|duoblajn]] aŭ [[Special:BrokenRedirects|rompitajn alidirektilojn]].\nVi estas responsa por certigi ke ligilojn direktas fidinde.\n\nNotu, ke la paĝo '''ne''' estos movita se jam ekzistas paĝo ĉe la nova titolo, krom se tiu loko estas malplena aŭ alidirektilo al ĉi tiu paĝo, kaj sen antaŭa redaktohistorio.\nPro tio, vi ja povos removi la paĝon je la antaŭa titolo se vi mistajpus, kaj ne povas forviŝi ekzistantan paĝon per movo.\n\n'''Note:'''\nTio povas esti drasta kaj neatendita ŝanĝo por populara paĝo;\nbonvolu certigi vin, ke vi komprenas ties konsekvencojn antaŭ ol vi antaŭeniru.",
+       "movepagetext-noredirectfixer": "Per jena formularo vi povas alinomigi paĝon, kaj movi tutan ĝian redaktohistorion al la nova nomo. \nLa antaŭa titolo alidirektigos onin al la nova titolo.\nKontrolu pri [[Special:DoubleRedirects|duoblajn]] aŭ [[Special:BrokenRedirects|nefunkciantajn alidirektilojn]].\nVi respondecas pri tio ke ligoj restas montrantaj ĝustadirekten.\n\nKonsciu ke la paĝo '''ne'' estas movota se jam ekzistas paĝo havanta la novan titolon, krom se ĝi estas alidirektilo sen antaŭa redaktohistorio.\nTio ĉi signifas ke vi povas alinomigi paĝon reen al antaŭa nomo se vi eraras, kaj vi ke vi ne povas anstataŭigi ekzistantan paĝon.\n\n'''Rimarko:''\nEblas ke tio ĉi estas drasta kaj neatendita ŝanĝo de populara paĝo;\nAntaŭ daŭrigi, bonvolu certiĝi, ke vi komprenas la konsekvencojn de tiuj ĉi ŝanĝo.",
+       "movepagetalktext": "Se vi validas tiun elektobutono, la asociata diskutpaĝo estos aŭtomate alinomita al nova titolo, krom se malplena diskutpaĝo jam ekzistas.\n\nTiujokaze, vi alinomigendos aŭ kunfandendos malaŭtomate la paĝon se vi tion deziras.",
        "moveuserpage-warning": "<strong>Averto:</strong> Vi preskaŭ alinomas paĝon de uzanto. Bonvolu noti ke nur la paĝo estos alinomita kaj la uzanto mem <em>ne</em> estos alinomita.",
        "movecategorypage-warning": "<strong>Averto:</strong> Vi baldaŭ movos kategorian paĝon. Bonvolu noti ke, nur la paĝo estos movita, kaj la paĝoj en la malnova kategorio <em>ne</em> transiros en la novan kategorion.",
        "movenologintext": "Vi nepre estu registrita uzanto kaj [[Special:UserLogin|ensalutu]] por rajti movi paĝojn.",
        "movenosubpage": "Ĉi tiu paĝo havas neniujn subpaĝojn.",
        "movereason": "Kialo:",
        "revertmove": "restarigi",
-       "delete_and_move_text": "==Forigo nepras==\n\nLa celartikolo \"[[:$1]]\" jam ekzistas. Ĉu vi volas forigi ĝin por krei spacon por la movo?",
+       "delete_and_move_text": "La celpaĝo \"[[:$1]]\" jam ekzistas. Ĉu vi volas forigi ĝin por krei spacon por la alinomado?",
        "delete_and_move_confirm": "Jes, forigu la paĝon",
        "delete_and_move_reason": "Forigita por ebligi movadon de \"[[$1]]\"",
        "selfmove": "Fonto- kaj celo-titoloj samas; ne povas movi paĝon sur ĝin mem.",
        "move-leave-redirect": "Forlasi alidirektilon",
        "protectedpagemovewarning": "'''Averto:''' Ĉi tiu paĝo estis ŝlosita tiel nur uzantoj kun administranto-rajtoj povas movi ĝin.\nJen la lasta protokolero por via referenco:",
        "semiprotectedpagemovewarning": "'''Averto:''' Ĉi tiu paĝo estis ŝlosita tiel ĝi estas nur movebla de registritaj uzantoj.\nJen la lasta protokolero por via referenco:",
-       "move-over-sharedrepo": "== Dosiero ekzistas ==\n[[:$1]] ekzistas en komuna dosierujo. Movante la dosieron al ĉi tiu titolo anstataŭigos la komunan dosieron.",
+       "move-over-sharedrepo": "[[:$1]] ekzistas en komuna dosierujo. Movado de dosiero al ĉi tiu titolo anstataŭigos la komunan dosieron.",
        "file-exists-sharedrepo": "La elektita dosiernomo jam estas uzita en komun dosierujo.\nBonvolu elekti alian nomon.",
        "export": "Eksporti paĝojn",
        "exporttext": "Vi povas eksporti la tekston kaj la redaktohistorion de aparta paĝo aŭ de paĝaro kolektita en ia XML.\nĈi tio povas esti importita en alian programon funkciantan per MediaWiki-softvaro per la [[Special:Import|import-paĝo]].\n\nPor eksporti paĝojn, enigu la titolojn en la jena tekst-skatolo, po unu por linio, kaj elektu ĉu vi volas kaj la nunan version kaj ĉiujn antaŭajn versiojn, kun la paĝaj historiaj linioj, aŭ la nunan version kun la informo pri la lasta redakto.\n\nEn la lasta okazo, vi ankaŭ povas uzi ligilon, ekz-e [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] por la paĝo \"[[{{MediaWiki:Mainpage}}]]\".",
        "allmessagesname": "Nomo",
        "allmessagesdefault": "Defaŭlta teksto",
        "allmessagescurrent": "Nuna teksto",
-       "allmessagestext": "Ĉi tio estas listo de ĉiuj mesaĝoj haveblaj en la MediaWiki-nomspaco.\nBonvolu aliri [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki-Asimilado] kaj [//translatewiki.net translatewiki.net]\nse vi volus kontribui al la komuna MediaWiki-asimilado.",
+       "allmessagestext": "Ĉi tio estas listo de ĉiuj mesaĝoj haveblaj en la MediaWiki-nomspaco.\nBonvolu aliri [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki-Asimilado] kaj [https://translatewiki.net translatewiki.net]\nse vi volus kontribui al la komuna MediaWiki-asimilado.",
        "allmessagesnotsupportedDB": "{{ns:special}}:Allmessages ne subtenata ĉar la variablo wgUseDatabaseMessages estas malkonektita.",
        "allmessages-filter-legend": "Filtri",
        "allmessages-filter": "Filtri laŭ ŝanĝada stato",
        "import-nonewrevisions": "Neniuj versioj estis antaŭe importitaj. Aŭ ili ĉiuj jam ekzistis aŭ estis ellasitaj pro eraroj.",
        "xml-error-string": "$1 ĉe linio $2, kolumno $3 (bitiko $4): $5",
        "import-upload": "Alŝuti XML-datenojn",
-       "import-token-mismatch": "Seancaj datenoj perdiĝis. Bonvolu reprovi.",
+       "import-token-mismatch": "Seancaj datenoj perdiĝis.\n\nVi eble estis elsalutita. <strong>Bonvolu kontroli ke vi ankaŭ estas ensalutita kaj pravu denove</strong>.\nSe tiu ankoraŭ ne funkcios, pravu [[Special:UserLogout|elsaluti]] \nkaj ensaluti denove, kaj kontrolu ke via retumilo permesas kuketon de tiu paĝaro.",
        "import-invalid-interwiki": "Ne povas importi de la specifita vikio.",
        "import-error-edit": "Paĝo \"$1\" ne estis importita ĉar vi ne rajtas radakti ĝin.",
        "import-error-create": "Paĝo \"$1\" ne estis importita ĉar vi ne rajtas krei ĝin.",
        "tooltip-pt-watchlist": "Listo de paĝoj kies ŝanĝojn vi priatentas.",
        "tooltip-pt-mycontris": "Listo de viaj kontribuoj",
        "tooltip-pt-anoncontribs": "Listo de redaktoj faritaj el ĉi tiu IPa adreso",
-       "tooltip-pt-login": "Vi estas invitita ensaluti, tamen ne estas devige.",
+       "tooltip-pt-login": "Vi kuraĝigas ensaluti, tamen ne estas devige.",
        "tooltip-pt-logout": "Elsaluti",
        "tooltip-pt-createaccount": "Ni rekomendas al vi kreon de uzantokonto kaj ensaluto; tamen, tio ne estas deviga",
        "tooltip-ca-talk": "Diskuto pri la artikolo",
        "tooltip-ca-nstab-project": "Rigardi la paĝon de la projekto",
        "tooltip-ca-nstab-image": "Rigardi la dosierpaĝon",
        "tooltip-ca-nstab-mediawiki": "Rigardi la sisteman mesaĝon",
-       "tooltip-ca-nstab-template": "Rigardi la ŝablonon",
+       "tooltip-ca-nstab-template": "Vidi la ŝablonon",
        "tooltip-ca-nstab-help": "Rigardi la helppaĝon",
        "tooltip-ca-nstab-category": "Vidi la paĝon de la kategorio",
        "tooltip-minoredit": "Marki tiun ŝanĝon kiel etan",
        "tooltip-save": "Konservi viajn ŝanĝojn",
        "tooltip-publish": "Publikigi viajn ŝanĝojn",
-       "tooltip-preview": "Antaŭrigardi viajn ŝanĝojn. Bonvolu uzi tion antaŭ ol konservi ilin!",
+       "tooltip-preview": "Antaŭrigardi viajn ŝanĝojn. Bonvolu uzi tion antaŭ ol konservi.",
        "tooltip-diff": "Montri la ŝanĝojn kiujn vi faris de la teksto.",
        "tooltip-compareselectedversions": "Rigardi la malsamojn inter ambaŭ selektitaj versioj de ĉi tiu paĝo.",
        "tooltip-watch": "Aldoni ĉi paĝon al via atentaro",
        "confirm-watch-top": "Ĉu aldoni tiun ĉi paĝon al via atentaro?",
        "confirm-unwatch-button": "Ek!",
        "confirm-unwatch-top": "Ĉu forigi tiun ĉi paĝon el via atentaro?",
+       "confirm-rollback-button": "Bone",
+       "confirm-rollback-top": "Malfaru redaktojn al ĉi tiu paĝo?",
        "quotation-marks": "„$1“",
        "imgmultipageprev": "← antaŭa paĝo",
        "imgmultipagenext": "sekva paĝo →",
        "version-libraries-description": "Priskribo",
        "version-libraries-authors": "Aŭtoroj",
        "redirect": "Alidirektilo laŭ dosiera, uzanta, paĝa, revizia aŭ protokola identigilo.",
-       "redirect-summary": "Tiu ĉi paĝo alidirektas al dosiero (laŭ ĝia nomo), paĝo (laŭ ĝia revizio-numero aŭ paĝo-identigilo) aŭ al uzantopaĝo (laŭ numera uzanto-identigilo). Uzado: [[{{#Special:Redirect}}/file/Ekzemplo.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], aŭ [[{{#Special:Redirect}}/user/101]].",
+       "redirect-summary": "Tiu ĉi paĝo alidirektas al dosiero (laŭ ĝia nomo), paĝo (laŭ ĝia revizio-numero aŭ paĝo-identigilo) aŭ al uzantopaĝo (laŭ numera uzanto-identigilo) aŭ enigo de protokolo (laŭ la protokol-identigilo). Uzado: [[{{#Special:Redirect}}/file/Ekzemplo.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], aŭ [[{{#Special:Redirect}}/user/101]], aŭ [[{{#Special:Redirect}}/logid/186]].",
        "redirect-submit": "Ek",
        "redirect-lookup": "Traserĉi:",
        "redirect-value": "Valoro:",
        "logentry-suppress-block": "$1 {{GENDER:$2|forbaris}} la {{GENDER:$4|uzanton|uzantinon}} $3 por daŭro de $5 $6",
        "logentry-suppress-reblock": "$1 {{GENDER:$2|ŝanĝis}} agordojn de forbaro por la {{GENDER:$4|uzanto|uzantino}} $3 por daŭro de $5 $6",
        "logentry-import-upload": "$1 {{GENDER:$2|importis}} $3 per dosiera alŝuto",
+       "logentry-import-upload-details": "$1 {{GENDER:$2|importis}} $3 kiel dosiera alŝuto ($4 {{PLURAL:$4|revizio|revizioj}})",
        "logentry-import-interwiki": "$1 {{GENDER:$2|importis}} $3 de alia vikio",
+       "logentry-import-interwiki-details": "$1 {{GENDER:$2|importis}} $3 el $5 ($4 {{PLURAL:$4|revizio|revizioj}})",
        "logentry-merge-merge": "$1 {{GENDER:$2|kunigis}} $3 en $4 (revizioj ĝis $5)",
        "logentry-move-move": "$1 movis paĝon $3 al $4",
        "logentry-move-move-noredirect": "$1 movis paĝon $3 al $4 ne lasante alidirektilon",
        "logentry-newusers-create2": "Konto de uzanto $3 estis kreita de $1",
        "logentry-newusers-byemail": "Konto de uzanto $3 estis kreita de $1 kaj pasvorto estis sendita per retpoŝto",
        "logentry-newusers-autocreate": "Uzantokonto $1 estis {{GENDER:$2|kreita}} aŭtomate",
-       "logentry-rights-rights": "$1 ŝanĝis grupan membrecon por $3 de $4 al $5",
+       "logentry-protect-move_prot": "$1 {{GENDER:$2|movis}} protektajn agordojn el $4 al $3",
+       "logentry-protect-unprotect": "$1 {{GENDER:$2|forigis}} protekton el $3",
+       "logentry-protect-protect": "$1 {{GENDER:$2|protektis}} $3 $4",
+       "logentry-protect-protect-cascade": "$1 {{GENDER:$2|protektis}} $3 $4 [rikure]",
+       "logentry-protect-modify": "$1 {{GENDER:$2|ŝanĝis}} la nivelon de protekto de $3 $4",
+       "logentry-protect-modify-cascade": "$1 {{GENDER:$2|ŝanĝis}} la nivelon de protekto de $3 $4 [rikure]",
+       "logentry-rights-rights": "$1 {{GENDER:$2|ŝanĝis}} grupan membrecon por {{GENDER:$6|$3}} el $4 al $5",
        "logentry-rights-rights-legacy": "$1 ŝanĝis grupan membrecon por $3",
        "logentry-rights-autopromote": "$1 estis aŭtomate {{GENDER:$2|altrangigita}} de $4 al $5",
        "logentry-upload-upload": "$1 {{GENDER:$2|alŝutis}} $3",
        "feedback-useragent": "Klienta aplikaĵo:",
        "searchsuggest-search": "Serĉi",
        "searchsuggest-containing": "enhavas...",
+       "api-error-autoblocked": "Via IPa adreso estis blokita aŭtomate, ĉar ĝi estis uzita far forbara uzanto.",
        "api-error-badaccess-groups": "Vi ne havas permeson alŝuti dosierojn al tiu ĉi vikio.",
        "api-error-badtoken": "Interna eraro: fuŝaĵo.",
+       "api-error-blocked": "Vi estis blokita pri redakto.",
        "api-error-copyuploaddisabled": "Alŝuto per URL-adreso estas malebligata en tiu ĉi servilo.",
-       "api-error-duplicate": "Jam estas {{PLURAL:$1|alia dosiero|pluraj aliaj dosieroj}} de sama enhavo en la retejo.",
+       "api-error-duplicate": "Jam estas {{PLURAL:$1|alia dosiero|pluraj aliaj dosieroj}} en la retejo kun la sama enhavo.",
        "api-error-duplicate-archive": "Jam estis {{PLURAL:$1|alia dosiero|pluraj aliaj dosieroj}} de sama enhavo en la retejo, sed {{PLURAL:$1|ĝi estis forigita|ili estis forigitaj}}.",
        "api-error-empty-file": "La dosiero kiun vi sendis estis malplena.",
        "api-error-emptypage": "Kreo de novaj malplenaj paĝoj ne estas permesita.",
        "api-error-nomodule": "Interna eraro: ne troveblas alŝuta helpilaro.",
        "api-error-ok-but-empty": "Interna eraro: nenia respondo de la servilo.",
        "api-error-overwrite": "Anstataŭigo de ekzistanta dosiero ne permesatas.",
+       "api-error-ratelimited": "Vi provas alŝuti pli da dosieroj dum mallonga periodo ol ĉi tiu vikio permesas.\nBonvolu provi denove en kelkaj minutoj.",
        "api-error-stashfailed": "Interna eraro: la servilo malsukcesis stoki provizoran dosieron.",
        "api-error-publishfailed": "Interna eraro: Servilo malsukcesis eldoni provizoran dosieron.",
        "api-error-stasherror": "Eraro okazis dum alŝutado de la dosiero al dosierujo.",
        "api-error-unknownerror": "Nekonata eraro: \"$1\"",
        "api-error-uploaddisabled": "Alŝutato estas malebligata en tiu ĉi vikio.",
        "api-error-verification-error": "Tiu ĉi dosiero eble estas difektita, aŭ havas la malĝustan dosieran finaĵon.",
+       "api-error-was-deleted": "Dosiero kun ĉi tiu nomo estis antaŭe alŝutita kaj sekvente forigita.",
        "duration-seconds": "$1 {{PLURAL:$1|sekundo|sekundoj}}",
        "duration-minutes": "$1 {{PLURAL:$1|minuto|minutoj}}",
        "duration-hours": "$1 {{PLURAL:$1|horo|horoj}}",
        "expand_templates_generate_xml": "Montri XML-sintaksarbon",
        "expand_templates_generate_rawhtml": "Montri krudan HTML-n",
        "expand_templates_preview": "Antaŭrigardo",
-       "expand_templates_preview_fail_html": "<em>Ĉar {{SITENAME}} ebligas enmeton de kruda HTML kaj sesiaj datumoj estis perditaj, antaŭvido estas kaŝita kiel protekto kontraŭ Ĝavoskriptaj atakoj.</em>\n\n<strong>Se tio estis legitima provo antaŭvidi, bonvolu reprovi.</strong>\nSe tio daŭre ne funkcias, provu [[Special:UserLogout|elsaluti]] kaj ree ensaluti.",
+       "expand_templates_preview_fail_html": "<em>Ĉar {{SITENAME}} ebligas enmeton de kruda HTML kaj sesiaj datumoj estis perditaj, antaŭvido estas kaŝita kiel protekto kontraŭ Ĝavoskriptaj atakoj.</em>\n\n<strong>Se tio estis legitima provo antaŭvidi, bonvolu reprovi.</strong>\nSe tio daŭre ne funkcias, provu [[Special:UserLogout|elsaluti]] kaj ree ensaluti, kaj kontrolu ke via retumilo permesas kuketojn el tiu paĝaro.",
        "expand_templates_preview_fail_html_anon": "<em>Ĉar {{SITENAME}} ebligas enmeton de kruda HTML kaj vi ne estas ensalutinta, antaŭvido estas kaŝita kiel protekto kontraŭ Ĝavoskriptaj atakoj.</em>\n\n<strong>Se tio estis legitima provo antaŭvidi, bonvolu [[Special:UserLogin|ensaluti]] kaj reprovi.</strong>",
-       "pagelanguage": "Elektilo de lingvo de paĝo",
+       "expand_templates_input_missing": "Vi nepras provizi almenaŭ iom da eniga teksto.",
+       "pagelanguage": "Ŝanĝi paĝan lingvon",
        "pagelang-name": "Paĝo",
        "pagelang-language": "Lingvo",
        "pagelang-use-default": "Uzi defaŭltan lingvon",
        "action-pagelang": "ŝanĝi la lingvon de la paĝo",
        "log-name-pagelang": "Protokolo pri lingvajn ŝanĝojn",
        "log-description-pagelang": "Jen protokolo pri ŝanĝoj de paĝaj lingvoj.",
-       "logentry-pagelang-pagelang": "$1 {{GENDER:$2|ŝanĝis}} la paĝan lingvon por $3 de $4 al $5.",
+       "logentry-pagelang-pagelang": "$1 {{GENDER:$2|ŝanĝis}} paĝan lingvon pri $3 el $4 al $5.",
        "default-skin-not-found": "Ups! La defaŭlta etoso por via vikio, difinita en <code dir=\"ltr\">$wgDefaultSkin</code> kiel <code>$1</code> ne estas disponebla.\n\nŜajnas, ke via instalaĵo enhavas {{PLURAL:$4|jenan etoson|jenajn etosojn}}. Vidu [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manlibro:Agordado de etosoj] por informoj kiel {{PLURAL:$4|ĝin ŝalti|ilin ŝalti kaj elekti la defaŭltan}}.\n\n$2\n\n; Se vi ĵus instalis MediaWiki:\n: Vi probable instalis de git aŭ rekte de fontokodo per alia metodo. Tio estas antaŭsupozata. MediaWiki 1.24 kaj pli novaj versioj enhavas neniun etoson en la ĉefa deponejo. Provu instali iujn etosojn de [https://www.mediawiki.org/wiki/Category:All_skins etosa dosierujo en mediawiki.org] per jenaj metodoj:\n:* Elŝutu [https://www.mediawiki.org/wiki/Download pakitan instalilon], kiu enhavas kelkajn etosojn kaj etendaĵojn. Vi povas de ĝi kopii kaj alglui la dosierujon <code>skins/</code>.\n:* Elŝutu unuopajn pakitajn etosojn de [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Uzu Git por elŝuti etosojn].\n: Tio maldevus interkolizii kun via git-deponejo se vi estas evoluiganto de MediaWiki.\n\n; Se vi ĵus promociis MediaWiki:\n: MediaWiki 1.24 kaj pli novaj ne plu aŭtomate ŝaltas instalitajn etosojn (vidu [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manlibro:Aŭtomata malkovrado de etosoj]). Vi povas alglui {{PLURAL:$5|jenan linion|jenajn liniojn}} al <code>LocalSettings.php</code> por ŝalti {{PLURAL:$5|la instalitan etoson|ĉiujn instalitajn etosojn}}:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Se vi ĵus modifis <code>LocalSettings.php</code>:\n: Denove kontrolu nomon de etosoj pro eblaj mistajpoj.",
        "default-skin-not-found-no-skins": "Ups! La defaŭlta etoso por via vikio, difinita en <code>$wgDefaultSkin</code> kiel <code>$1</code> ne estas disponebla.\n\nVi havas neniun instalitan etson.\n\n; Se vi ĵus instalis aŭ promocii MediaWiki:\n: Vi probable instalis de git aŭ rekte de fontokodo per alia metodo. Tio estas antaŭspozata. MediaWiki 1.24 kaj pli novaj versioj enhavas neniun etoson en la ĉefa deponejo. Provu instali iujn etosojn de [https://www.mediawiki.org/wiki/Category:All_skins etosa dosierujo en mediawiki.org] per jenaj metodoj:\n:* Elŝutu [https://www.mediawiki.org/wiki/Download pakitan instalilon], kiu enhavas kelkajn eosojn kaj etendaĵojn. Vi povas de ĝi kopii kaj alglui la dosierujon <code>skins/</code>.\n:* Elŝutu unuopajn pakitajn etosojn de [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Uzu Git por elŝuti etosojn].\n: Tio maldevus interkolizii kun via git-deponejo se vi estas evoluiganto de MediaWiki. Vidu [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manlibro:Agordado de etosoj] por informoj kiel ŝalti etosojn kaj elekti la defaŭltan.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (ŝalta)",
        "mediastatistics": "Statistikoj pri dosieroj",
        "mediastatistics-summary": "Statistiko pri tipoj de alŝutitaj dosieroj. Tio ĉi inkludas nur aktualajn versiojn de dosiero. Malnovaj aŭ forigitaj versioj de dosieroj estas ekskluditaj.",
        "mediastatistics-nbytes": "{{PLURAL:$1|$1 bitoko|$1 bitokoj}} ($2; $3%)",
+       "mediastatistics-bytespertype": "Totala grandeco de dosiero por ĉi tiu sekcio: {{PLURAL:$1|$1 okopo|$1 okopoj}} ($2; $3%).",
+       "mediastatistics-allbytes": "Totala grandeco de dosiero por ĉiuj dosieroj: {{PLURAL:$1|$1 okopo|$1 okopoj}} ($2).",
        "mediastatistics-table-mimetype": "MIME-tipo",
        "mediastatistics-table-extensions": "Eblaj dosier-sufiksoj",
        "mediastatistics-table-count": "Nombro de dosieroj",
        "mw-widgets-dateinput-placeholder-month": "JJJJ-MM",
        "mw-widgets-titleinput-description-new-page": "paĝo ankoraŭ ne ekzistas",
        "mw-widgets-titleinput-description-redirect": "alidirekti al $1",
-       "api-error-blacklisted": "Bonvolu elekti alian, priskriban titolon.",
        "sessionmanager-tie": "Kombini diversajn tipojn de ensaluta peto ne estas permisita: $1.",
        "sessionprovider-generic": "$1 seancoj",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "kuketaj seancoj",
+       "sessionprovider-nocookies": "Kuketojn eble maluzpermisas. Certigu ke vi uzpermisas kuketojn kaj pravu denove.",
        "randomrootpage": "Hazarda radika paĝo",
        "log-action-filter-block": "Tipo de forbaro:",
        "log-action-filter-contentmodel": "Tipo de enhavomodela ŝanĝo:",
        "log-action-filter-delete": "Tipo de forviŝigado:",
        "log-action-filter-import": "Tipo de importado:",
+       "log-action-filter-managetags": "Tipo de administrada ago pri etikedo:",
        "log-action-filter-move": "Tipo de alinomado:",
        "log-action-filter-newusers": "Tipo de konta kreado:",
        "log-action-filter-patrol": "Tipo de patrolado:",
        "log-action-filter-block-block": "Forbari",
        "log-action-filter-block-reblock": "Forbari ŝanĝon",
        "log-action-filter-block-unblock": "Malforbari",
+       "log-action-filter-contentmodel-change": "Ŝanĝo de enhavomodelon",
+       "log-action-filter-contentmodel-new": "Kreo de paĝo kun ne-norma enhavomodelo",
        "log-action-filter-delete-delete": "Forviŝigado de paĝo",
        "log-action-filter-delete-restore": "Malforviŝigado de paĝo",
        "log-action-filter-delete-event": "Forviŝigado de protokolo",
        "log-action-filter-delete-revision": "Forviŝigado de rivizio",
        "log-action-filter-import-interwiki": "Importado de Transwiki",
+       "log-action-filter-import-upload": "Importaĵo per XMLa alŝuto",
+       "log-action-filter-managetags-create": "Etikeda kreo",
+       "log-action-filter-managetags-delete": "Etikeda forviŝigado",
+       "log-action-filter-managetags-activate": "Etikeda ekebligado",
+       "log-action-filter-managetags-deactivate": "Etikeda malekebligado",
+       "log-action-filter-move-move": "Alinomi sen anstataŭigi alidirektojn",
+       "log-action-filter-move-move_redir": "Alinomi anstataŭige alidirektojn",
+       "log-action-filter-newusers-create": "Kreo far anonima uzanto",
+       "log-action-filter-newusers-create2": "Kreo de registrita uzanton",
+       "log-action-filter-newusers-autocreate": "Aŭtomata kreo",
+       "log-action-filter-newusers-byemail": "Kreo kun pasvorto sendita per retpoŝto",
+       "log-action-filter-patrol-patrol": "Malaŭtomata patrolo",
+       "log-action-filter-patrol-autopatrol": "Aŭtomata patrolo",
+       "log-action-filter-protect-protect": "Protekto",
+       "log-action-filter-protect-modify": "Modifo de la protekto",
        "log-action-filter-protect-unprotect": "Malprotektado",
+       "log-action-filter-protect-move_prot": "Movis protekton",
+       "log-action-filter-rights-rights": "Malaŭtomata ŝanĝo",
+       "log-action-filter-rights-autopromote": "Aŭtomata ŝanĝo",
+       "log-action-filter-suppress-event": "Forigo de protokolo",
+       "log-action-filter-suppress-revision": "Forigo de revizio",
+       "log-action-filter-suppress-delete": "Forigo de paĝo",
+       "log-action-filter-suppress-block": "Forigo de uzanto per forbari",
+       "log-action-filter-suppress-reblock": "Forigi uzanton per reforbari",
        "log-action-filter-upload-upload": "Novalŝuta",
        "log-action-filter-upload-overwrite": "Realŝuta",
+       "authmanager-authn-not-in-progress": "Aŭtentikigado ne estas progresanta aŭ seanca dateno estis perdita. Bonvolu pravi denove ekde la komenco.",
+       "authmanager-authn-no-primary": "La provizita legitimaĵo ne povus esti aŭtentikigita.",
+       "authmanager-authn-no-local-user": "La provizitaj legitimaĵoj ne estas asociitaj kun ajna uzanto de ĉi tiu vikio.",
+       "authmanager-authn-no-local-user-link": "La provizitaj legitimaĵoj estas validaj sed ne estas asociita kun ajna uzanto de ĉi tiu vikio. Ensalutu per malsama metodo aŭ kreu novan uzanton kaj vi havos elekton por ligi vian antaŭan legitimaĵon kun tiu konto.",
+       "authmanager-authn-autocreate-failed": "Aŭtokreo de loka konto malsukcesis: $1",
+       "authmanager-change-not-supported": "La provizitaj legitimaĵoj ne povas esti ŝanĝita, kiel nenio uzus ilin.",
+       "authmanager-create-disabled": "kreado de kontoj estas malebligita",
+       "authmanager-create-from-login": "Por krei vian konton, bonvolu plenigi la kampojn sube.",
+       "authmanager-create-not-in-progress": "Konta kreo ne estas progresanta aŭ seanca dateno estis perdita. Bonvolu pravi denove ekde la komenco.",
+       "authmanager-create-no-primary": "La provizitaj legitimaĵoj ne povus esti uzita por konta kreo.",
+       "authmanager-link-no-primary": "La provizitaj legitimaĵoj ne povus esti uzita por konta ligado.",
+       "authmanager-link-not-in-progress": "Ligo de konto ne estas progresanta aŭ dateno de seanco estis perdita. Bonvolu pravi denove ekde la komenco.",
+       "authmanager-authplugin-setpass-failed-title": "Pasvorta ŝanĝo malsukcesis",
+       "authmanager-authplugin-setpass-failed-message": "La aŭtentikigado kromprogramo neis la pasvortan ŝanĝon.",
+       "authmanager-authplugin-create-fail": "La kromprogramo de aŭtentikigado neis la keon de konto.",
+       "authmanager-authplugin-setpass-denied": "La kromprogramaro de aŭtentikigado ne permisas ŝanĝadon de pasvorto.",
+       "authmanager-authplugin-setpass-bad-domain": "Malvalida domajno.",
+       "authmanager-autocreate-noperm": "Aŭtomata kreo de konto ne estas permesita.",
+       "authmanager-autocreate-exception": "Aŭtomata kreo de konto estas provizore malfunkciigita pro antaŭaj eraroj.",
+       "authmanager-userdoesnotexist": "Uzanto-konto \"$1\" ne estas registrita.",
+       "authmanager-userlogin-remembermypassword-help": "Ĉu la pasvorto devus esti memorita por pli longa ol la daŭro de la sesio.",
+       "authmanager-username-help": "Salutnomo por aŭtentikado.",
+       "authmanager-password-help": "Pasvorto por aŭtentikigo.",
+       "authmanager-domain-help": "Domajno por ekstera aŭtentikigo.",
+       "authmanager-retype-help": "Pasvortu denove konfirmi.",
+       "authmanager-email-label": "Retadreso",
        "authmanager-email-help": "Retpoŝtadreso",
        "authmanager-realname-label": "Vera nomo",
        "authmanager-realname-help": "Vera nomo de la uzanto",
-       "changecredentials-submit": "Ŝanĝi",
-       "changecredentials-submit-cancel": "Nuligi",
-       "removecredentials-submit": "Forigi",
-       "removecredentials-submit-cancel": "Nuligi",
+       "authmanager-provider-password": "Pasvorto-bazita aŭtentikigo",
+       "authmanager-provider-password-domain": "Aŭtentikigo per pasvorto kaj domajno",
+       "authmanager-provider-temporarypassword": "Provizora pasvorto:",
+       "authprovider-confirmlink-message": "Laŭ viaj lastatempaj provoj de ensalutado, la sekvantaj kontoj povas esti ligita al via vikia konto. Ligi ilin ebligas ensalutadon per tiuj kontoj. Bonvolu elekti tiun, kiun ligendus.",
+       "authprovider-confirmlink-request-label": "Kontoj kiuj devus esti ligita",
+       "authprovider-confirmlink-success-line": "$1: Ligita sukcese.",
+       "authprovider-confirmlink-failed": "Ligado de konto ne plene sukcesis: $1",
+       "authprovider-confirmlink-ok-help": "Kontinui post montrado de mesaĝoj pri malsukceso de ligado.",
+       "authprovider-resetpass-skip-label": "Preterpasi",
+       "authprovider-resetpass-skip-help": "Preterpasi  pasvortan reensignadon.",
+       "authform-nosession-login": "La aŭtentikagdo sukcesis, sed via retumilo ne povas \"memori\" ensalutitadon.\n\n$1",
+       "authform-nosession-signup": "La konto estis kreita, sed via retumilo ne povas \"memori\" ensalutitadon.\n\n$1",
+       "authform-newtoken": "Mankanta ĵetono. $1",
+       "authform-notoken": "Mankanta ĵetono",
+       "authform-wrongtoken": "Malvalida ĵetono",
+       "specialpage-securitylevel-not-allowed-title": "Ne permesita",
+       "specialpage-securitylevel-not-allowed": "Pardonu, vi ne permesohavas je uzi ĉi tiun paĝon ĉar via identeco ne povus esti konfirmita.",
+       "authpage-cannot-login": "Ne povas ekensaluti.",
+       "authpage-cannot-login-continue": "Malpovas kontinui ensalutadon. Via sesio probablege tempoelĉerpis.",
+       "authpage-cannot-create": "Malpovas kontan ekkron",
+       "authpage-cannot-create-continue": "Malpovas konitinui kontan kreon. Via sesio probablege tempoelĉerpiĝis.",
+       "authpage-cannot-link": "Malpovas kontan ekligadon.",
+       "authpage-cannot-link-continue": "Malpovas kontinui ensalutan ligadon. Via sesio probablege tempoelĉerpis.",
+       "cannotauth-not-allowed-title": "Permison neis",
+       "cannotauth-not-allowed": "Estas malpermesite al vi uzi ĉi tiun paĝon",
+       "changecredentials": "Ŝanĝi legitimaĵojn",
+       "changecredentials-submit": "Ŝanĝi legitimaĵojn",
+       "changecredentials-invalidsubpage": "\"$1\" ne estas valida legitimaĵa tipo.",
+       "changecredentials-success": "Viaj legitimaĵoj estis ŝanĝitaj.",
+       "removecredentials": "Forigi legitimaĵojn",
+       "removecredentials-submit": "Forigi legitimaĵojn",
+       "removecredentials-invalidsubpage": "\"$1\" ne estas valida legitimaĵa tipo.",
+       "removecredentials-success": "Viaj legitimaĵoj estis forigitaj.",
+       "credentialsform-provider": "Tipo de legitimaĵoj",
+       "credentialsform-account": "Nomo de konto:",
+       "cannotlink-no-provider-title": "Malekzistas linkeblajn kontojn",
+       "cannotlink-no-provider": "Malekzistas ligeblajn kontojn.",
        "linkaccounts": "Ligi kontojn",
-       "linkaccounts-submit": "Ligi kontojn"
+       "linkaccounts-success-text": "La konto estis ligita.",
+       "linkaccounts-submit": "Ligi kontojn",
+       "unlinkaccounts": "Malligi kontojn",
+       "unlinkaccounts-success": "La konto estis malligita.",
+       "authenticationdatachange-ignored": "La ŝanĝo de dateno pri aŭtentikigado ne estis traktita. Eble neniu provizanto estis agorda?"
 }
index ff70d1d..acfe82e 100644 (file)
                        "Rubentl134",
                        "Codynguyen1116",
                        "2axterix2",
-                       "Matma Rex"
+                       "Matma Rex",
+                       "Dgstranz",
+                       "Copper12",
+                       "Ivanhercaz",
+                       "AlvaroMolina"
                ]
        },
        "tog-underline": "Subrayar los enlaces:",
        "category-file-count-limited": "{{PLURAL:$1|El siguiente archivo pertenece|Los siguientes $1 archivos pertenecen}} a esta categoría.",
        "listingcontinuesabbrev": "cont.",
        "index-category": "Páginas indizadas",
-       "noindex-category": "Páginas no indizadas",
+       "noindex-category": "Páginas no indexadas",
        "broken-file-category": "Páginas con enlaces rotos a archivos",
        "about": "Acerca de",
        "article": "Página de contenido",
        "undelete_short": "Restaurar {{PLURAL:$1|una edición|$1 ediciones}}",
        "viewdeleted_short": "Ver {{PLURAL:$1|una edición borrada|$1 ediciones borradas}}",
        "protect": "Proteger",
-       "protect_change": "cambiar",
+       "protect_change": "Cambiar",
        "protectthispage": "Proteger esta página",
        "unprotect": "Cambiar protección",
        "unprotectthispage": "Cambiar la protección de esta página",
        "views": "Vistas",
        "toolbox": "Herramientas",
        "userpage": "Ver página de usuario",
-       "projectpage": "Ver página de proyecto",
+       "projectpage": "Ver página del proyecto",
        "imagepage": "Ver página del archivo",
-       "mediawikipage": "Ver página de mensaje",
+       "mediawikipage": "Ver página del mensaje",
        "templatepage": "Ver página de plantilla",
        "viewhelppage": "Ver página de ayuda",
        "categorypage": "Ver página de categoría",
        "protectedpagetext": "Esta página ha sido protegida para evitar su edición u otras acciones.",
        "viewsourcetext": "Puedes ver y copiar el código fuente de esta página.",
        "viewyourtext": "Puedes ver y copiar el código de <strong>tus ediciones</strong> en esta página.",
-       "protectedinterface": "Esta página proporciona el texto de la interfaz del software en este wiki, y está protegida para prevenir el abuso.\nPara agregar o cambiar las traducciones para todos los wikis, por favor, usa [//translatewiki.net/ translatewiki.net], el proyecto de localización de MediaWiki.",
+       "protectedinterface": "Esta página proporciona el texto de la interfaz del software en este wiki, y está protegida para prevenir el abuso.\nPara agregar o cambiar las traducciones para todos los wikis, usa [https://translatewiki.net/ translatewiki.net], el proyecto de localización de MediaWiki.",
        "editinginterface": "<strong>Advertencia:</strong> estás editando una página usada para proporcionar texto de la interfaz al software. \nLos cambios en esta página afectarán la apariencia de la interfaz de los demás usuarios de este wiki.",
-       "translateinterface": "Para añadir o cambiar traducciones para todos los wikis, usa [//translatewiki.net/ translatewiki.net], el proyecto de localización de MediaWiki.",
+       "translateinterface": "Para añadir o cambiar traducciones para todos los wikis, usa [https://translatewiki.net/ translatewiki.net], el proyecto de localización de MediaWiki.",
        "cascadeprotected": "Esta página ha sido protegida contra edición porque está transcluida en {{PLURAL:$1|la siguiente página protegida|las siguientes páginas protegidas}} con la opción de «cascada» activa:\n$2",
        "namespaceprotected": "No tienes permiso para editar las páginas del espacio de nombres <strong>$1</strong>.",
        "customcssprotected": "No tienes permiso para editar esta página CSS, porque contiene configuraciones personales de otro usuario.",
        "createacct-email-ph": "Escribe tu dirección de correo electrónico",
        "createacct-another-email-ph": "Escribe la dirección de correo electrónico",
        "createaccountmail": "Utilizar una contraseña aleatoria temporal y enviarla a la dirección de correo electrónico especificada",
+       "createaccountmail-help": "Puede usarse para crear una cuenta para otra persona sin revelar la contraseña.",
        "createacct-realname": "Nombre real (opcional)",
        "createaccountreason": "Motivo:",
        "createacct-reason": "Motivo",
        "createacct-another-realname-tip": "El nombre real es opcional.\nSi lo proporcionas, se usará para dar atribución al trabajo del usuario.",
        "pt-login": "Acceder",
        "pt-login-button": "Acceder",
+       "pt-login-continue-button": "Continuar inicio de sesión",
        "pt-createaccount": "Crear una cuenta",
        "pt-userlogout": "Salir",
        "php-mail-error-unknown": "Error desconocido en la función mail() de PHP.",
        "resetpass-temp-password": "Contraseña temporal:",
        "resetpass-abort-generic": "Una extensión ha cancelado el cambio de la contraseña.",
        "resetpass-expired": "Tu contraseña ha caducado. Por favor, establece una nueva contraseña para iniciar sesión.",
-       "resetpass-expired-soft": "Tu contraseña ha caducado, por lo que debes restablecerla. Cámbiala ahora por una nueva, o haz clic en \"{{int:resetpass-submit-cancel}}\" para restablecerla más adelante.",
-       "resetpass-validity-soft": "Tu contraseña no es válida: $1\n\nCámbiala ahora por una nueva, o haz clic en \"{{int:resetpass-submit-cancel}}\" para cambiarla más tarde.",
+       "resetpass-expired-soft": "Tu contraseña ha caducado, por lo que debes restablecerla. Cámbiala ahora por una nueva, o haz clic en \"{{int:authprovider-resetpass-skip-label}}\" para restablecerla más adelante.",
+       "resetpass-validity-soft": "Tu contraseña no es válida: $1\n\nCámbiala ahora por una nueva, o haz clic en \"{{int:authprovider-resetpass-skip-label}}\" para cambiarla más tarde.",
        "passwordreset": "Restablecer contraseña",
        "passwordreset-text-one": "Completa este formulario para recibir una contraseña temporal por correo electrónico.",
        "passwordreset-text-many": "{{PLURAL:$1|Elige una de las opciones para recibir una contraseña temporal por correo electrónico.}}",
        "passwordreset-emailsentusername": "Si existe una dirección de correo electrónico asociada a este nombre de usuario, entonces se enviará un correo para restablecer la contraseña.",
        "passwordreset-emailsent-capture": "Se ha enviado un correo para el restablecimiento de la contraseña, el cual se muestra a continuación.",
        "passwordreset-emailerror-capture": "Se ha generado un correo electrónico de restablecimiento de contraseña, que se muestra a continuación, pero ha fallado el envío {{GENDER:$2|al usuario|a la usuaria}}: $1",
+       "passwordreset-emailsent-capture2": "{{PLURAL:$1|El e-mail de restablecimiento de contraseña ha sido enviado|Los e-mails de restablecimiento de contraseña han sido enviados}}. {{PLURAL:$1|El nombre de usuario y la contraseña se muestra a continuación|La lista de nombres de usuarios y contraseñas se muestra a continuación}}.",
+       "passwordreset-emailerror-capture2": "No fue posible mandar un correo electrónico {{Gender:$2|al usuario|a la usuaria}}: $1 {{PLURAL:$3|El nombre de usuario y la contraseña|La lista de nombres de usuarios y contraseñas}} se muestra a continuación.",
+       "passwordreset-nocaller": "Debe de proporcionarse un interlocutor",
+       "passwordreset-nosuchcaller": "La persona que llama no existe: $1",
+       "passwordreset-ignored": "No se logró el reestablecimiento de la contraseña. ¿Tal vez no se configuró un proveedor?",
        "passwordreset-invalideamil": "Dirección de correo electrónico no válida.",
+       "passwordreset-nodata": "No se ha proporcionado ni un nombre de usuario ni una dirección de correo electrónico",
        "changeemail": "Cambiar o eliminar la dirección de correo electrónico",
        "changeemail-header": "Completa este formulario para cambiar tu dirección de correo electrónico. Si quieres eliminar la asociación de cualquier dirección de correo electrónico con tu cuenta, deja en blanco la nueva dirección de correo electrónico cuando envíes el formulario.",
        "changeemail-passwordrequired": "Tendrás que escribir tu contraseña para confirmar este cambio.",
        "minoredit": "Esta es una edición menor",
        "watchthis": "Vigilar esta página",
        "savearticle": "Guardar la página",
+       "savechanges": "Guardar cambios",
        "publishpage": "Publicar la página",
+       "publishchanges": "Publicar cambios",
        "preview": "Previsualizar",
        "showpreview": "Mostrar previsualización",
        "showdiff": "Mostrar los cambios",
        "content-model-css": "CSS",
        "content-json-empty-object": "Objeto vacío",
        "content-json-empty-array": "Matriz vacía",
+       "deprecated-self-close-category": "Páginas que utilizan etiquetas HTML autocerradas no válidas",
+       "deprecated-self-close-category-desc": "Esta página contiene etiquetas HTML de auto-cierre invalidas, tales como <code>&lt;b/></code> o <code>&lt;span/></code>. El comportamiento de estas en  cambiará pronto para ser coherente con la especificación de HTML5, por lo que su utilización en wikitext está en desuso.",
        "duplicate-args-warning": "<strong>Aviso:</strong> [[:$1]] llama a [[:$2]] con más de un valor para el parámetro «$3». Se usará solo el último valor proporcionado.",
        "duplicate-args-category": "Páginas que usan argumentos duplicados en invocaciones de plantillas",
        "duplicate-args-category-desc": "La página contiene invocaciones de plantillas que utilizan argumentos duplicados, como <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> o <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "rows": "Filas:",
        "columns": "Columnas:",
        "searchresultshead": "Búsquedas",
-       "stub-threshold": "Límite para cambiar a formato de enlace a esbozo ($1):",
+       "stub-threshold": "Límite para enlazar con el estilo de esbozo ($1):",
        "stub-threshold-sample-link": "muestra",
        "stub-threshold-disabled": "Desactivado",
        "recentchangesdays": "Días que mostrar en los cambios recientes:",
        "rightslogtext": "Este es un registro de cambios en los permisos de usuarios.",
        "action-read": "leer esta página",
        "action-edit": "modificar esta página",
-       "action-createpage": "crear páginas",
-       "action-createtalk": "crear páginas de discusión",
+       "action-createpage": "crear esta página",
+       "action-createtalk": "crear esta página de discusión",
        "action-createaccount": "crear esta cuenta de usuario",
        "action-autocreateaccount": "crear automáticamente esta cuenta de usuario externa",
        "action-history": "ver el historial de esta página",
        "upload-http-error": "Ha ocurrido un error HTTP: $1",
        "upload-copy-upload-invalid-domain": "No se pueden realizar subidas remotas desde este dominio.",
        "upload-foreign-cant-upload": "Este wiki no está configurado para subir archivos al repositorio de archivos externo solicitado.",
+       "upload-foreign-cant-load-config": "Falló la carga de la configuración para subir archivos al depósito de archivos externo.",
+       "upload-dialog-disabled": "En este wiki están desactivadas las subidas de archivos mediante este cuadro de diálogo.",
        "upload-dialog-title": "Subir archivo",
        "upload-dialog-button-cancel": "Cancelar",
        "upload-dialog-button-done": "Hecho",
        "apisandbox": "Zona de pruebas API",
        "apisandbox-jsonly": "Se requiere JavaScript para utilizar la zona de pruebas de API.",
        "apisandbox-api-disabled": "La API está desactivada en este sitio.",
-       "apisandbox-intro": "Usa esta página para experimentar con la <strong>API de servicio web de MediaWiki</strong>.\nPara más detalles sobre el uso de la API, visita [[mw:API:Main page|su documentación]]. Ejemplo: [//www.mediawiki.org/wiki/API#A_simple_example obtener el contenido de una Página principal]. Selecciona una acción para ver más ejemplos.\n\nObserva que, aunque sea una página de pruebas, las acciones que realices en esta página pueden modificar el wiki.",
+       "apisandbox-intro": "Usa esta página para experimentar con la <strong>API de servicio web de MediaWiki</strong>.\nPara más detalles sobre el uso de la API, visita [[mw:API:Main page|su documentación]]. Ejemplo: [https://www.mediawiki.org/wiki/API#A_simple_example obtener el contenido de una Página principal]. Selecciona una acción para ver más ejemplos.\n\nObserva que, aunque sea una página de pruebas, las acciones que realices en esta página pueden modificar el wiki.",
        "apisandbox-fullscreen": "Expandir panel",
        "apisandbox-fullscreen-tooltip": "Expande el panel de la zona de pruebas hasta llenar la ventana del navegador.",
        "apisandbox-unfullscreen": "Mostrar página",
        "trackingcategories-msg": "Categoría de seguimiento",
        "trackingcategories-name": "Nombre del mensaje",
        "trackingcategories-desc": "Criterios de inclusión de categoría",
+       "restricted-displaytitle-ignored": "Páginas con títulos de visualización ignorados",
+       "restricted-displaytitle-ignored-desc": "Esta página tiene una plantilla <code><nowiki>{{DISPLAYTITLE}}</nowiki></code> ignorada porque no es equivalente al título verdadero de la página.",
        "noindex-category-desc": "La página contiene la palabra mágica <code><nowiki>__NOINDEX__</nowiki></code> (y está en un espacio de nombres donde la función está activada); y por ello los robots no la indizan.",
        "index-category-desc": "La página contiene la palabra mágica <code><nowiki>__INDEX__</nowiki></code> (y está en un espacio de nombres donde la función está activada); y por ello los robots la indizarán.",
        "post-expand-template-inclusion-category-desc": "Después de expandir todas las plantillas, el tamaño de la página es más grande que <code>$wgMaxArticleSize</code>, así que algunas plantillas no se expandieron.",
        "rollbacklinkcount": "revertir $1 {{PLURAL:$1|edición|ediciones}}",
        "rollbacklinkcount-morethan": "revertir más de $1 {{PLURAL:$1|edición|ediciones}}",
        "rollbackfailed": "No se pudo revertir",
+       "rollback-missingparam": "Faltan parámetros requeridos en la solicitud.",
        "cantrollback": "No se puede revertir la edición;\nel último colaborador es el único autor de esta página.",
        "alreadyrolled": "No se puede revertir la última edición de [[:$1]] hecha por [[User:$2|$2]] ([[User talk:$2|discusión]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]);\nalguien más ya ha editado o revertido esa página.\n\nLa última edición fue hecha por [[User:$3|$3]] ([[User talk:$3|discusión]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
        "editcomment": "El resumen de la edición fue: <em>$1</em>.",
        "revertpage": "Revertidos los cambios de [[Special:Contributions/$2|$2]] ([[User talk:$2|disc.]]) a la última edición de [[User:$1|$1]]",
        "revertpage-nouser": "Revertidas las ediciones hechas por un usuario oculto a la última revisión hecha por {{GENDER:$1|[[User:$1|$1]]}}",
        "rollback-success": "Revertidas las ediciones de $1; recuperada la última versión de $2.",
+       "rollback-success-notify": "Revertidas las ediciones de $1 hasta la última revisión de $2. [$3 Ver cambios]",
        "sessionfailure-title": "Error de sesión",
        "sessionfailure": "Parece que hay un problema con tu sesión;\nesta acción ha sido cancelada como medida de precaución contra secuestros de sesión.\nPor favor, pulsa «Atrás», recarga la página de la que viniste e inténtalo de nuevo.",
        "changecontentmodel": "Cambiar el modelo de contenido de una página",
        "changecontentmodel-cannot-convert": "El contenido de [[:$1]] no se puede convertir a un tipo de $2.",
        "changecontentmodel-nodirectediting": "El modelo de contenido $1 no admite la edición directa",
        "changecontentmodel-emptymodels-title": "No hay modelos de contenido disponibles",
+       "changecontentmodel-emptymodels-text": "El contenido de [[:$1]] no se puede convertir a ningún tipo.",
        "log-name-contentmodel": "Registro de cambios del modelo de contenido",
        "log-description-contentmodel": "Eventos relacionados con los modelos de contenido de una página",
        "logentry-contentmodel-new": "$1 {{GENDER:$2|creó}} la página $3 usando un modelo de contenido no predeterminado \"$5\"",
        "sp-contributions-username": "Dirección IP o nombre de usuario:",
        "sp-contributions-toponly": "Solo mostrar últimas ediciones de página",
        "sp-contributions-newonly": "Mostrar solo ediciones que son creaciones de páginas",
+       "sp-contributions-hideminor": "Ocultar ediciones menores",
        "sp-contributions-submit": "Buscar",
        "whatlinkshere": "Lo que enlaza aquí",
        "whatlinkshere-title": "Páginas que enlazan con «$1»",
        "allmessagesname": "Nombre",
        "allmessagesdefault": "Texto predeterminado",
        "allmessagescurrent": "Texto actual",
-       "allmessagestext": "Esta es una lista de mensajes del sistema disponibles en el espacio de nombres MediaWiki.\nVisita [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Localización MediaWiki] y [//translatewiki.net translatewiki.net] si deseas contribuir a la localización genérica de MediaWiki.",
+       "allmessagestext": "Esta es una lista de mensajes del sistema disponibles en el espacio de nombres MediaWiki.\nVisita [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Localización de MediaWiki] y [https://translatewiki.net translatewiki.net] si deseas contribuir a la localización genérica de MediaWiki.",
        "allmessagesnotsupportedDB": "Esta página no está disponible porque <strong>$wgUseDatabaseMessages</strong> está desactivado.",
        "allmessages-filter-legend": "Filtro",
        "allmessages-filter": "Filtrar por estado de personalización:",
        "timezone-local": "Local",
        "duplicate-defaultsort": "<strong>Advertencia:</strong> la clave de ordenamiento predeterminada «$2» anula la clave de ordenamiento anterior «$1».",
        "duplicate-displaytitle": "<strong>Advertencia:</strong> El título visualizado \"$2\" sobreescribe al anterior \"$1\".",
+       "restricted-displaytitle": "<strong>Atención:</strong> el título mostrado \"$1\" se ignoró porque no es equivalente al título real de la página.",
        "invalid-indicator-name": "<strong>Error:</strong> el atributo <code>name</code> de los indicadores de estado de página no debe estar vacío.",
        "version": "Versión",
        "version-extensions": "Extensiones instaladas",
        "feedback-useragent": "Agente de usuario:",
        "searchsuggest-search": "Buscar",
        "searchsuggest-containing": "que contiene...",
+       "api-error-autoblocked": "Tu dirección IP ha sido bloqueada automáticamente porque fue utilizada por un usuario bloqueado.",
        "api-error-badaccess-groups": "No puedes cargar archivos en este wiki.",
        "api-error-badtoken": "Error interno: Símbolo incorrecto.",
+       "api-error-blocked": "Has sido bloqueado de editar.",
        "api-error-copyuploaddisabled": "La subida por URL está desactivada en este servidor.",
        "api-error-duplicate": "Ya {{PLURAL:$1|existe otro archivo|existen otros archivos}} en el sitio con el mismo contenido.",
        "api-error-duplicate-archive": "Ya {{PLURAL:$1|existía otro archivo|existían otros archivos}} en el sitio con el mismo contenido, pero {{PLURAL:$1|fue eliminado|fueron eliminados}}.",
        "api-error-nomodule": "Error interno: No hay un módulo de carga configurado.",
        "api-error-ok-but-empty": "Error interno: No hay respuesta del servidor.",
        "api-error-overwrite": "No se permite sobrescribir un archivo existente.",
+       "api-error-ratelimited": "Estás tratando de subir, en un corto periodo de tiempo, más archivos de los que este wiki permite.\nPor favor, inténtalo de nuevo dentro de algunos minutos.",
        "api-error-stashfailed": "Error interno: El servidor no pudo almacenar el archivo temporal.",
        "api-error-publishfailed": "Error interno: el servidor no pudo publicar el archivo temporal.",
        "api-error-stasherror": "Ha ocurrido un error al subir el archivo al depósito.",
        "mw-widgets-dateinput-placeholder-month": "AAAA-MM",
        "mw-widgets-titleinput-description-new-page": "la página aún no existe",
        "mw-widgets-titleinput-description-redirect": "redirigir a $1",
-       "api-error-blacklisted": "Elige un título diferente, más descriptivo.",
        "sessionmanager-tie": "No se pueden combinar múltiples tipos de autenticación de solicitudes: $1.",
        "sessionprovider-generic": "sesiones $1",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "sesiones basadas en cookies",
        "log-action-filter-newusers": "Tipo de creación de la cuenta:",
        "log-action-filter-patrol": "Tipo de verificación:",
        "log-action-filter-protect": "Tipo de protección:",
-       "log-action-filter-rights": "El tipo de cambio correcto",
-       "log-action-filter-suppress": "Tipo de supresión",
+       "log-action-filter-rights": "Tipo de cambio de permisos:",
+       "log-action-filter-suppress": "Tipo de supresión:",
        "log-action-filter-upload": "Tipo de subida:",
        "log-action-filter-all": "Todas",
        "log-action-filter-block-block": "Bloquear",
        "log-action-filter-suppress-event": "Supresión de registros",
        "log-action-filter-suppress-revision": "Supresión de revisiones",
        "log-action-filter-suppress-delete": "Supresión de páginas",
-       "log-action-filter-suppress-block": "Usuario supppression por bloque",
+       "log-action-filter-suppress-block": "Supresión de usuarios por bloque",
        "log-action-filter-suppress-reblock": "Usuario supresión de rebloqueo",
        "log-action-filter-upload-upload": "Subida nueva",
        "log-action-filter-upload-overwrite": "Volver a subir",
+       "authmanager-authn-not-in-progress": "La autenticación no está en curso o los datos de sesión se han perdido. Por favor, vuelve a empezar desde el principio.",
+       "authmanager-authn-no-primary": "Las credenciales proporcionadas no se han podido autentificar.",
        "authmanager-authn-no-local-user": "Las credenciales suministradas no están asociadas con ningún usuario en este wiki.",
+       "authmanager-authn-no-local-user-link": "Las credenciales suministradas son válidas, pero no están asociadas con ningún usuario de este wiki. Inicia sesión con un usuario diferente, o crea un nuevo usuario, para poder vincular tus credenciales anteriores a esa cuenta.",
+       "authmanager-authn-autocreate-failed": "Falló la creación automática de una cuenta local: $1",
+       "authmanager-change-not-supported": "Las credenciales proporcionadas no se pueden cambiar, ya que no hay nada que fuera a hacer uso de ellas.",
        "authmanager-create-disabled": "Está desactivada la creación de cuentas.",
        "authmanager-create-from-login": "Para crear tu cuenta, completa los campos a continuación.",
        "authmanager-create-not-in-progress": "El proceso de creación de la cuenta no está en progreso o se perdieron los datos de la sesión. Empieza de nuevo desde el principio.",
        "authmanager-create-no-primary": "Las credenciales suministradas no pueden usarse para la creación de la cuenta.",
+       "authmanager-link-no-primary": "Las credenciales proporcionadas no se han podido utilizar para enlazar cuentas.",
+       "authmanager-link-not-in-progress": "La vinculación de cuentas no está en curso o los datos de la sesión se han perdido. Por favor, vuelve a empezar desde el principio.",
+       "authmanager-authplugin-setpass-failed-title": "Error de cambio de contraseña",
        "authmanager-authplugin-setpass-failed-message": "El complemento de autenticación denegó el cambio de contraseña.",
        "authmanager-authplugin-create-fail": "El complemento de autenticación denegó la creación de la cuenta.",
        "authmanager-authplugin-setpass-denied": "El complemento de autenticación no permite el cambio de contraseñas.",
+       "authmanager-authplugin-setpass-bad-domain": "Dominio inválido.",
        "authmanager-autocreate-noperm": "La creación automática de cuentas no está permitida.",
        "authmanager-autocreate-exception": "La creación automática de cuentas ha sido temporalmente desactivada debido a errores previos.",
        "authmanager-userdoesnotexist": "El usuario «$1» no está registrado.",
+       "authmanager-userlogin-remembermypassword-help": "Si debe recordarse la contraseña por más tiempo que la duración de la sesión.",
+       "authmanager-username-help": "Nombre de usuario para la autenticación.",
        "authmanager-password-help": "Contraseña para autenticación.",
+       "authmanager-domain-help": "Dominio para la autenticación externa.",
        "authmanager-retype-help": "La contraseña de nuevo para confirmar.",
        "authmanager-email-label": "Correo electrónico",
        "authmanager-email-help": "Dirección de correo electrónico",
        "authmanager-realname-label": "Nombre real",
        "authmanager-realname-help": "Nombre real del usuario",
        "authmanager-provider-password": "Autenticación basada en contraseña",
+       "authmanager-provider-password-domain": "Autenticación basada en contraseña y dominio",
        "authmanager-provider-temporarypassword": "Contraseña temporal",
+       "authprovider-confirmlink-message": "Basado en tus últimos intentos para iniciar sesión, las siguientes cuentas pueden vincularse a tu cuenta wiki. Vincularlas permite iniciar sesión a través de esas cuentas. Selecciona cuáles deben vincularse.",
+       "authprovider-confirmlink-request-label": "Cuentas que deberían vincularse",
        "authprovider-confirmlink-success-line": "$1: vinculado exitosamente.",
+       "authprovider-confirmlink-failed": "La vinculación de cuentas no se ha realizado con éxito: $1",
+       "authprovider-confirmlink-ok-help": "Continuar luego de mostrar los mensajes de error en la vinculación.",
        "authprovider-resetpass-skip-label": "Omitir",
+       "authprovider-resetpass-skip-help": "Saltar el reestablecimiento de la contraseña.",
        "authform-nosession-login": "La autenticación fue exitosa, pero tu navegador no puede \"recordar\" haber iniciado sesión.\n\n$1",
        "authform-nosession-signup": "La cuenta ha sido creada, pero tu navegador no \"recuerda\" haber iniciado sesión.\n\n$1",
+       "authform-newtoken": "Falta token. $1",
+       "authform-notoken": "Falta token",
+       "authform-wrongtoken": "Token incorrecto",
+       "specialpage-securitylevel-not-allowed-title": "No está permitido",
        "specialpage-securitylevel-not-allowed": "Lo siento, no tienes permitido usar esta página, porque tu identidad no pudo verificarse.",
+       "authpage-cannot-login": "No se puede iniciar la sesión.",
        "authpage-cannot-login-continue": "No se puede continuar con el inicio de sesión. Lo más probable es que tu sesión haya expirado.",
        "authpage-cannot-create": "No se puede iniciar la creación de la cuenta.",
+       "authpage-cannot-create-continue": "No se puede continuar con la creación de la cuenta. Lo más probable es que tu sesión haya expirado.",
+       "authpage-cannot-link": "No se puede iniciar la vinculación de la cuenta.",
        "authpage-cannot-link-continue": "No se puede continuar con la vinculación de la cuenta. Lo más probable es que tu sesión haya expirado.",
        "cannotauth-not-allowed-title": "Permiso denegado",
+       "cannotauth-not-allowed": "No tienes permiso para usar esta página.",
        "changecredentials": "Cambiar las credenciales",
-       "changecredentials-submit": "Cambiar",
-       "changecredentials-submit-cancel": "Cancelar",
+       "changecredentials-submit": "Cambiar credenciales",
+       "changecredentials-invalidsubpage": "$1 no es un tipo de credencial válido.",
        "changecredentials-success": "Tus credenciales han sido cambiadas.",
        "removecredentials": "Eliminar credenciales",
-       "removecredentials-submit": "Eliminar",
-       "removecredentials-submit-cancel": "Cancelar",
+       "removecredentials-submit": "Eliminar credenciales",
+       "removecredentials-invalidsubpage": "$1 no es un tipo de credencial válido.",
        "removecredentials-success": "Tus credenciales han sido eliminadas.",
+       "credentialsform-provider": "Tipo de credenciales:",
        "credentialsform-account": "Nombre de la cuenta:",
+       "cannotlink-no-provider-title": "No hay cuentas vinculables",
        "cannotlink-no-provider": "No hay cuentas vinculables.",
        "linkaccounts": "Vincular cuentas",
        "linkaccounts-success-text": "La cuenta fue vinculada.",
        "linkaccounts-submit": "Vincular cuentas",
-       "unlinkaccounts": "Desvincular cuentas"
+       "unlinkaccounts": "Desvincular cuentas",
+       "unlinkaccounts-success": "Se ha desvinculado la cuenta.",
+       "authenticationdatachange-ignored": "El cambio den los datos de autentificacion no fue realizado. ¿Tal vez, no se configuró un proveedor?"
 }
index 5c38e89..1b5d5e7 100644 (file)
        "october-date": "$1. oktoober",
        "november-date": "$1. november",
        "december-date": "$1. detsember",
+       "period-am": "e. l.",
+       "period-pm": "p. l.",
        "pagecategories": "{{PLURAL:$1|Kategooria|Kategooriad}}",
        "category_header": "Leheküljed kategoorias \"$1\"",
        "subcategories": "Alamkategooriad",
        "protectedpagetext": "See lehekülg on lukustatud, et ei tehtaks muudatusi ega sooritataks muid toiminguid.",
        "viewsourcetext": "Saad vaadata ja kopeerida selle lehekülje lähteteksti.",
        "viewyourtext": "Saad vaadata ja kopeerida sellel leheküljel tehtud <strong>enda muudatuste</strong> lähteteksti.",
-       "protectedinterface": "Sellel leheküljel on selle viki tarkvara kasutajaliidese tekst. Väärtarvituse vältimiseks on lehekülg kaitstud.\nEt lisada ja muuta tõlkeid kõigi vikide jaoks, kasuta palun MediaWiki lokaliseerimisprojekti [//translatewiki.net/ translatewiki.net].",
+       "protectedinterface": "Sellel leheküljel on selle viki tarkvara kasutajaliidese tekst. Väärtarvituse vältimiseks on lehekülg kaitstud.\nEt lisada ja muuta tõlkeid kõigi vikide jaoks, kasuta palun MediaWiki lokaliseerimisprojekti [https://translatewiki.net/ translatewiki.net].",
        "editinginterface": "<strong>Hoiatus:</strong> Redigeerid lehekülge, mille teksti kasutatakse tarkvaraliideses.\nMuudatused siin mõjutavad kõikide selle viki kasutajate kasutajaliidest.",
-       "translateinterface": "Et lisada või muuta tõlkeid kõigi vikide jaoks, kasuta palun MediaWiki lokaliseerimisprojekti [//translatewiki.net/ translatewiki.net].",
+       "translateinterface": "Et lisada või muuta tõlkeid kõigi vikide jaoks, kasuta palun MediaWiki lokaliseerimisprojekti [https://translatewiki.net/ translatewiki.net].",
        "cascadeprotected": "See lehekülg on muutmise eest kaitstud, sest see on osa {{PLURAL:$1|järgmisest leheküljest|järgmistest lehekülgedest}}, mis on kaskaadkaitse all:\n$2",
        "namespaceprotected": "Sul pole õigust redigeerida lehekülgi nimeruumis '''$1'''.",
        "customcssprotected": "Sul pole õigust seda CSS-lehekülge redigeerida, sest see sisaldab teise kasutaja isiklikke sätteid.",
        "nocookieslogin": "{{SITENAME}} kasutab kasutajate tuvastamisel küpsiseid. Sinu brauseris on küpsised keelatud. Palun sea küpsised lubatuks ja proovi siis uuesti.",
        "nocookiesfornew": "Kasutajakonto jäi loomata, kuna me ei saanud selle allikat kindlaks teha.\nVeendu, et sul on küpsised lubatud, taaslaadi see lehekülg ja proovi uuesti.",
        "noname": "Sa ei sisestanud kasutajanime lubataval kujul.",
-       "loginsuccesstitle": "Sisselogimine õnnestus",
+       "loginsuccesstitle": "Sisse logitud",
        "loginsuccess": "Oled sisse loginud. Sinu kasutajanimi on \"$1\".",
        "nosuchuser": "Kasutajat \"$1\" pole.\nKasutajanimed on tõstutundlikud.\nKontrolli kirjapilti või [[Special:CreateAccount|loo uus konto]].",
        "nosuchusershort": "Kasutajat nimega \"$1\" pole.\nKontrolli kirjapilti.",
        "noemail": "Kasutaja $1 e-posti aadressi meil kahjuks pole.",
        "noemailcreate": "Pead sisestama korrektse e-posti aadressi",
        "passwordsent": "Uus parool on saadetud kasutaja $1 registreeritud e-postiaadressil.\nPärast parooli saamist logige palun sisse.",
-       "blocked-mailpassword": "Sinu IP-aadressi jaoks on toimetamine blokeeritud, seetõttu ei saa sa kasutada ka parooli meeldetuletamise funktsiooni.",
+       "blocked-mailpassword": "Sinu IP-aadressi jaoks on toimetamine blokeeritud. Et väärtarvitust ennetada, ei saa sellelt IP-aadressilt kasutada parooli meeldetuletamise funktsiooni.",
        "eauthentsent": "Määratud e-posti aadressile on saadetud kinnituse e-kiri.\nEnne kui su kontole ükskõik milline muu e-kiri saadetakse, pead e-kirjas olevat juhist järgides kinnitama, et konto on tõepoolest sinu.",
        "throttled-mailpassword": "Parooli lähtestamise e-kiri saadetud viimase {{PLURAL:$1|tunni|$1 tunni}} jooksul.\nVäärtarvitamise vältimiseks saadetakse {{PLURAL:$1|tunni|$1 tunni}} jooksul ainult üks lähtestamise e-kiri.",
        "mailerror": "Viga kirja saatmisel: $1",
        "newpassword": "Uus parool:",
        "retypenew": "Sisesta uus parool uuesti:",
        "resetpass_submit": "Sisesta parool ja logi sisse",
-       "changepassword-success": "Sinu parool on edukalt muudetud!\nSind logitakse nüüd sisse...",
+       "changepassword-success": "Sinu parool on muudetud!",
        "changepassword-throttled": "Oled hiljuti proovinud liiga palju kordi sisse logida.\nPalun oota $1, enne kui uuesti proovid.",
        "resetpass_forbidden": "Paroole ei saa muuta",
        "resetpass-no-info": "Pead olema sisselogitud, et sellele lehele pääseda.",
        "resetpass-submit-loggedin": "Muuda parool",
        "resetpass-submit-cancel": "Loobu",
-       "resetpass-wrong-oldpass": "Vigane ajutine või praegune salasõna.\nVõib-olla oled juba edukalt muudnud oma salasõna või taotlenud uut ajutist salasõna.",
+       "resetpass-wrong-oldpass": "Vigane ajutine või praegune salasõna.\nVõib-olla oled juba muutnud oma salasõna või taotlenud uut ajutist salasõna.",
        "resetpass-recycled": "Palun vali uus salasõna, mis erineb praegusest.",
        "resetpass-temp-emailed": "Logisid sisse e-posti teel saadud ajutise koodiga.\nEt sisselogimine lõpule viia, pead määrama siin uue parooli:",
        "resetpass-temp-password": "Ajutine parool:",
        "resetpass-abort-generic": "Tarkvaralisa on paroolimuudatuse abortinud.",
        "resetpass-expired": "Sinu parool on iganenud. Palun määra uus parool, et sisse logida.",
-       "resetpass-expired-soft": "Sinu parool on iganenud ja tuleb uuesti määrata. Palun vali kohe uus parool või klõpsa \"{{int:resetpass-submit-cancel}}\", et määrata see hiljem.",
-       "resetpass-validity-soft": "Sinu parool ei sobi: $1\n\nPalun vali kohe uus parool või klõpsa \"{{int:resetpass-submit-cancel}}\", et see hiljem uuesti määrata.",
+       "resetpass-expired-soft": "Sinu parool on iganenud ja tuleb uuesti määrata. Palun vali kohe uus parool või klõpsa \"{{int:authprovider-resetpass-skip-label}}\", et määrata see hiljem.",
+       "resetpass-validity-soft": "Sinu parool ei sobi: $1\n\nPalun vali kohe uus parool või klõpsa \"{{int:authprovider-resetpass-skip-label}}\", et see hiljem uuesti määrata.",
        "passwordreset": "Parooli lähtestamine",
        "passwordreset-text-one": "Täida see vorm, et oma parool lähtestada.",
        "passwordreset-text-many": "{{PLURAL:$1|Täida üks väljadest, et saada e-kiri ajutise parooliga.}}",
        "userpage-userdoesnotexist": "Kasutajakontot \"<nowiki>$1</nowiki>\" pole olemas.\nPalun mõtle järele, kas soovid seda lehte luua või muuta.",
        "userpage-userdoesnotexist-view": "Kasutajakonto \"$1\" pole registreeritud.",
        "blocked-notice-logextract": "See kasutaja on praegu blokeeritud.\nAllpool on toodud viimane blokeerimislogi sissekanne:",
-       "clearyourcache": "'''Märkus:''' Võimalik, et pärast salvestamist tuleb muudatuste nägemiseks veebilehitseja puhver tühjendada.\n* '''Firefox / Safari:''' Hoia all ''Shift''-klahvi ja klõpsa ''Laadi uuesti'' või vajuta kas ''Ctrl-F5'' või ''Ctrl-R'' (Macis ''⌘-R'').\n* '''Google Chrome:''' Vajuta ''Ctrl-Shift-R'' (Macis ''⌘-Shift-R'').\n* '''Internet Explorer:''' Hoia all ''Ctrl''-klahvi ja klõpsa ''Värskenda'' või vajuta ''Ctrl-F5''.\n* '''Opera:''' Tühjenda puhver asukohas ''Seaded → Eelistused''.",
+       "clearyourcache": "<strong>Märkus:</strong> Võimalik, et pärast salvestamist tuleb muudatuste nägemiseks veebilehitseja puhver tühjendada.\n* <strong>Firefox / Safari:</strong> Hoia all <em>Shift</em>-klahvi ja klõpsa <em>Laadi uuesti</em> või vajuta kas <em>Ctrl-F5</em> või <em>Ctrl-R</em> (Macis <em>⌘-R</em>).\n* <strong>Google Chrome:</strong> Vajuta <em>Ctrl-Shift-R</em> (Macis <em>⌘-Shift-R</em>).\n* <strong>Internet Explorer:</strong> Hoia all <em>Ctrl</em>-klahvi ja klõpsa <em>Värskenda</em> või vajuta <em>Ctrl-F5</em>.\n* <strong>Opera:</strong> Mine asukohta <em>Menüü → Seaded</em> (Macis <em>Opera → Eelistused</em>) ja seejärel <em>Privaatsus ja turvalisus → Tühjenda sirvimisandmed → Puhverdatud pildid ja failid</em>.",
        "usercssyoucanpreview": "'''Vihje:''' Enne salvestamist kasuta oma uue CSSi proovimiseks nuppu \"{{int:showpreview}}\".",
        "userjsyoucanpreview": "'''Vihje:''' Enne salvestamist kasuta oma uue JavaScripti proovimiseks nuppu \"{{int:showpreview}}\".",
        "usercsspreview": "'''Ära unusta, et seda versiooni sinu isiklikust stiililehest pole veel salvestatud!'''",
        "previewnote": "'''Ära unusta, et see on kõigest eelvaade!'''\nSinu muudatused pole veel salvestatud!",
        "continue-editing": "Mine redigeerimiskasti juurde",
        "previewconflict": "See eelvaade näitab, kuidas ülemises toimetuskastis olev tekst hakkab välja nägema, kui otsustate salvestada.",
-       "session_fail_preview": "'''Vabandust! Meil ei õnnestunud seansiandmete kaotuse tõttu sinu muudatust töödelda.'''\nPalun proovi uuesti.\nKui see ikka ei tööta, proovi [[Special:UserLogout|välja]] ja tagasi sisse logida.",
-       "session_fail_preview_html": "'''Vabandust! Meil ei õnnestunud seansiandmete kaotuse tõttu sinu muudatust töödelda.'''\n\n''Kuna {{GRAMMAR:inessive|{{SITENAME}}}} on toor-HTML lubatud, on eelvaade JavaScripti-rünnakute vastase ettevaatusabinõuna peidetud.''\n\n'''Kui see on õigustatud redigeerimiskatse, proovi palun uuesti.'''\nKui see ikka ei tööta, proovi [[Special:UserLogout|välja]] ja tagasi sisse logida.",
+       "session_fail_preview": "Vabandust! Meil ei õnnestunud seansiandmete kaotuse tõttu sinu muudatust töödelda.\n\nVõimalik, et oled välja loginud. <strong>Palun veendu, et oled endiselt sisse logitud ja proovi uuesti</strong>.\nKui see ei toimi, siis proovi [[Special:UserLogout|logida välja]] ja seejärel tagasi sisse ning kontrolli, kas brauser lubab sellest võrgukohast küpsiseid.",
+       "session_fail_preview_html": "Vabandust! Meil ei õnnestunud seansiandmete kaotuse tõttu sinu muudatust töödelda.\n\n<em>Kuna {{GRAMMAR:inessive|{{SITENAME}}}} on toor-HTML lubatud, on eelvaade JavaScripti-rünnakute vastase ettevaatusabinõuna peidetud.</em>\n\n<strong>Kui see on õigustatud redigeerimiskatse, proovi palun uuesti.</strong>\nKui see ikka ei tööta, proovi [[Special:UserLogout|välja]] ja tagasi sisse logida ning kontrolli, kas brauser lubab sellest võrgukohast küpsiseid.",
        "token_suffix_mismatch": "'''Muudatus lükati tagasi, kuna sinu klienttarkvara ei suuda õigesti kirjavahemärke kasutada.'''\nMuudatus lükati tagasi, et vältida lehekülje segiminekut.\nSee juhtub mõnikord siis, kui kasutatakse vigast veebipõhist anonüümsusserverit.",
        "edit_form_incomplete": "'''Redigeerimisvormi mõni osa ei jõudnud serverisse; kontrolli, kas sinu tehtud muudatused on alles, ja proovi uuesti.'''",
        "editing": "Muutmisel on \"$1\"",
        "revdelete-unsuppress": "Eemalda taastatud redaktsioonidelt piirangud",
        "revdelete-log": "Põhjus:",
        "revdelete-submit": "Rakenda valitud {{PLURAL:$1|redaktsiooni|redaktsioonide}} suhtes",
-       "revdelete-success": "Redaktsiooni nähtavus edukalt värskendatud.",
+       "revdelete-success": "Redaktsiooni nähtavus värskendatud.",
        "revdelete-failure": "'''Redaktsiooni nähtavust ei saanud värskendada:'''\n$1",
-       "logdelete-success": "'''Logi nähtavus edukalt muudetud.'''",
+       "logdelete-success": "Logi nähtavus muudetud.",
        "logdelete-failure": "'''Logi nähtavust ei saanud paika:'''\n$1",
        "revdel-restore": "muuda nähtavust",
        "pagehist": "lehekülje ajalugu",
        "userrights": "Kasutajaõiguste haldus",
        "userrights-lookup-user": "Kasutajarühma muutmine",
        "userrights-user-editname": "Sisesta kasutajanimi:",
-       "editusergroup": "Muuda kasutajarühmi",
+       "editusergroup": "Muuda {{GENDER:$1|kasutajarühmi}}",
        "editinguser": "Kasutaja '''[[User:$1|$1]]''' $2 õiguste muutmine",
        "userrights-editusergroup": "Kasutajarühmade muutmine",
-       "saveusergroups": "Salvesta kasutajarühmad",
+       "saveusergroups": "Salvesta {{GENDER:$1|kasutajarühmad}}",
        "userrights-groupsmember": "Kuulub rühmadesse:",
        "userrights-groupsmember-auto": "Kuulub vaikimisi rühmadesse:",
        "userrights-groups-help": "Sa võid muuta selle kasutaja kuuluvust eri kasutajarühmadesse.\n* Märgitud kast tähendab, et kasutaja kuulub sellesse rühma.\n* Märkimata kast tähendab, et kasutaja ei kuulu sellesse rühma.\n* Aga * kasutajarühma juures tähistab õigust, mida sa peale lisamist enam eemaldada ei saa, või siis ka vastupidi.",
        "userrights-changeable-col": "Rühmad, mida sa saad muuta",
        "userrights-unchangeable-col": "Rühmad, mida sa ei saa muuta",
        "userrights-conflict": "Kasutajaõiguste muutmise konflikt! Palun vaata oma muudatused üle ja kinnita need.",
-       "userrights-removed-self": "Võtsid edukalt endalt õigused. Seetõttu sellele leheküljele sa enam ligi ei pääse.",
+       "userrights-removed-self": "Võtsid endalt õigused. Seetõttu sellele leheküljele sa enam ligi ei pääse.",
        "group": "Rühm:",
        "group-user": "Kasutajad",
        "group-autoconfirmed": "Automaatselt kinnitatud kasutajad",
        "right-override-export-depth": "Eksportida lehekülgi, kaasates viidatud leheküljed kuni viienda tasemeni",
        "right-sendemail": "Saata teistele kasutajatele e-kirju",
        "right-passwordreset": "Vaadata parooli lähtestamise e-kirju",
-       "right-managechangetags": "Koostada [[Special:Tags|märgiseid]] ja kustutada neid andmebaasist",
+       "right-managechangetags": "Koostada ja (in)aktiveerida [[Special:Tags|märgiseid]]",
        "right-applychangetags": "Rakendada [[Special:Tags|märgiseid]] enda muudatuste suhtes",
        "right-changetags": "Lisada ja eemaldada käsitsi rakendatavaid [[Special:Tags|märgiseid]] üksikute redaktsioonide ja logisissekannete juures",
        "grant-group-page-interaction": "Interaktsioon lehekülgedega",
        "grant-sendemail": "Kasutajatele e-kirjade saatmine",
        "grant-uploadeditmovefile": "Failide üleslaadimine, asendamine ja teisaldamine",
        "grant-uploadfile": "Uute failide üleslaadimine",
+       "grant-basic": "Põhiõigused",
        "grant-viewdeleted": "Kustutatud failide ja lehekülgede vaatamine",
        "grant-viewmywatchlist": "Oma jälgimisloendi vaatamine",
        "newuserlogpage": "Konto loomise logi",
        "rightslogtext": "See on logi kasutajate õiguste muutuste kohta.",
        "action-read": "seda lehekülge lugeda",
        "action-edit": "seda lehekülge muuta",
-       "action-createpage": "lehekülgi luua",
-       "action-createtalk": "arutelulehekülgi luua",
+       "action-createpage": "seda lehekülge luua",
+       "action-createtalk": "seda arutelulehekülge luua",
        "action-createaccount": "seda kasutajakontot luua",
        "action-history": "vaadata selle lehekülje ajalugu",
        "action-minoredit": "seda muudatust pisimuudatuseks märkida",
        "action-viewmyprivateinfo": "oma eraandmeid vaadata",
        "action-editmyprivateinfo": "oma eraandmeid redigeerida",
        "action-editcontentmodel": "lehekülje sisumudelit muuta",
-       "action-managechangetags": "märgiseid koostada ege neid andmebaasist kustutada",
+       "action-managechangetags": "märgiseid koostada ega (in)aktiveerida",
        "action-applychangetags": "rakendada märgiseid oma muudatuste suhtes",
        "action-changetags": "käsitsi rakendatavaid märgiseid üksikute redaktsioonide ega logisissekannete juures lisada ega eemaldada",
        "nchanges": "$1 {{PLURAL:$1|muudatus|muudatust}}",
        "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]]\"",
-       "recentchanges-page-added-to-category-bundled": "kategooriasse lisatud \"[[:$1]]\" ja veel [[Special:WhatLinksHere/$1|{{PLURAL:$2|üks lehekülg|$2 lehekülge}}]]",
+       "recentchanges-page-added-to-category-bundled": "kategooriasse lisatud \"[[:$1]]\", [[Special:WhatLinksHere/$1|seda lehekülge kasutatakse teisel leheküljel mallina]]",
        "recentchanges-page-removed-from-category": "kategooriast eemaldatud \"[[:$1]]\"",
-       "recentchanges-page-removed-from-category-bundled": "kategooriast eemaldatud \"[[:$1]]\" ja veel {{PLURAL:$2|üks lehekülg|$2 lehekülge}}",
+       "recentchanges-page-removed-from-category-bundled": "kategooriast eemaldatud \"[[:$1]]\", [[Special:WhatLinksHere/$1|seda lehekülge kasutatakse teisel leheküljel mallina]]",
        "autochange-username": "MediaWiki automaatne muudatus",
        "upload": "Faili üleslaadimine",
        "uploadbtn": "Laadi fail üles",
        "uploaded-script-svg": "Üleslaaditud SVG-failist leiti skriptitav element \"$1\".",
        "uploaded-hostile-svg": "Üleslaaditud SVG-faili laadielemendist leiti ebaturvaline CSS.",
        "uploaded-event-handler-on-svg": "Sündmuse halduse atribuutide <code>$1=\"$2\"</code> seadmine pole SVG-failis lubatud.",
-       "uploaded-href-unsafe-target-svg": "Üleslaaditud SVG-failist leiti href, mille sihtkoht <code>&lt;$1 $2=\"$3\"&gt;</code> on ebaturvaline.",
+       "uploaded-href-unsafe-target-svg": "Üleslaaditud SVG-failist leiti href, mis viitab ebaturvalistele andmetele: URI sihtkoht <code>&lt;$1 $2=\"$3\"&gt;</code>.",
        "uploaded-animate-svg": "Üleslaaditud SVG-failist leiti silt \"animate\", mis võib href-i muuta, kasutades from-atribuuti <code>&lt;$1 $2=\"$3\"&gt;</code>.",
        "uploaded-setting-event-handler-svg": "Sündmuse halduse atribuutide seadmine on keelatud, üleslaaditud SVG-failist leiti <code>&lt;$1 $2=\"$3\"&gt;</code>.",
        "uploaded-setting-href-svg": "Sildi \"set\" kasutamine, selleks et lisada emaelemendile href-atribuut, on keelatud.",
        "backend-fail-read": "Faili $1 ei saa lugeda.",
        "backend-fail-create": "Faili $1 ei saa kirjutada.",
        "backend-fail-maxsize": "Faili $1 ei saa kirjutada, sest see on {{PLURAL:$2|ühest baidist|$2 baidist}} suurem.",
-       "backend-fail-readonly": "Tagamälu \"$1\" on praegu kirjutuskaitstud. Põhjus: \"<em>$2</em>\"",
+       "backend-fail-readonly": "Tagamälu \"$1\" on praegu kirjutuskaitstud. Põhjus: <em>$2</em>",
        "backend-fail-synced": "Faili \"$1\" olek sisemälus on ühtimatu.",
        "backend-fail-connect": "Ühendus tagamäluga \"$1\" ebaõnnestus.",
        "backend-fail-internal": "Tagamälus \"$1\" esines tundmatu tõrge.",
        "uploadstash-summary": "See lehekülg pakub juurdepääsu failidele, mis on üles laaditud (või mida parasjagu üles laaditakse), kuid mis pole veel vikis avaldatud. Need failid on nähtavad üksnes kasutajale, kes need üles laadis.",
        "uploadstash-clear": "Kustuta failid algsest hoidlast",
        "uploadstash-nofiles": "Sul pole algses hoidlas faile.",
-       "uploadstash-badtoken": "Toiming ebaõnnestus; võib-olla redigeerimisloa aegumise tõttu. Proovi uuesti.",
+       "uploadstash-badtoken": "Toiming ebaõnnestus, võib-olla redigeerimismandaadi aegumise tõttu. Palun proovi uuesti.",
        "uploadstash-errclear": "Failide kustutamine ebaõnnestus.",
        "uploadstash-refresh": "Värskenda faililoendit",
        "invalid-chunk-offset": "Tüki vigane nihe",
        "pageswithprop-prophidden-long": "pika tekstiatribuudi väärtus peidetud ($1)",
        "pageswithprop-prophidden-binary": "kahendatribuudi väärtus peidetud ($1)",
        "doubleredirects": "Kahekordsed ümbersuunamised",
-       "doubleredirectstext": "See lehekülg loetleb leheküljed, mis on ümber suunatud teistele ümbersuunamislehekülgedel.\nIgal real on toodud esimene ja teine ümbersuunamislehekülg ning samuti lehekülg, kuhu teine ümbersuunamislehekülg on suunatud ja kuhu tavaliselt ka esimene ümbersuunamislehekülg tegelikult peaks suunama.\n<del>Läbikriipsutatud</del> kirjed on kohendatud.",
+       "doubleredirectstext": "See lehekülg loetleb leheküljed, mis on ümber suunatud teistele ümbersuunamislehekülgedele.\nIgal real on toodud esimene ja teine ümbersuunamislehekülg ning samuti lehekülg, kuhu teine ümbersuunamislehekülg on suunatud ja kuhu tavaliselt ka esimene ümbersuunamislehekülg tegelikult peaks suunama.\n<del>Läbikriipsutatud</del> kirjed on kohendatud.",
        "double-redirect-fixed-move": "[[$1]] on teisaldatud.\nLehekülg uuendati automaatselt ja see suunab nüüd leheküljele [[$2]].",
        "double-redirect-fixed-maintenance": "Hooldustöö käigus parandati automaatselt kahekordne suunamine leheküljelt [[$1]] leheküljele [[$2]].",
        "double-redirect-fixer": "Ümbersuunamiste parandaja",
        "apihelp-no-such-module": "Moodulit \"$1\" ei leitud.",
        "apisandbox": "API liivakast",
        "apisandbox-api-disabled": "API on selles võrgukohas keelatud.",
-       "apisandbox-intro": "Kasuta seda lehekülge '''MediaWiki API''' katsetamiseks.\nÜksikasjad API kasutamise kohta leiad [//www.mediawiki.org/wiki/API:Main_page API dokumentatsioonist]. Näide: [//www.mediawiki.org/wiki/API#A_simple_example esilehe sisu hankimine]. Vali toiming, et näha veel näiteid.\n\nPane tähele, et kuigi siin on liivakast, võivad siin leheküljel tehtud toimingud vikit muuta.",
+       "apisandbox-intro": "Kasuta seda lehekülge <strong>MediaWiki API</strong> katsetamiseks.\nÜksikasjad API kasutamise kohta leiad [[mw:API:Main page|API dokumentatsioonist]]. Näide: [https://www.mediawiki.org/wiki/API#A_simple_example esilehe sisu hankimine]. Vali toiming, et näha veel näiteid.\n\nPane tähele, et kuigi siin on liivakast, võivad siin leheküljel tehtud toimingud vikit muuta.",
        "apisandbox-submit": "Tee päring",
        "apisandbox-reset": "Puhasta",
-       "apisandbox-examples": "Näide",
-       "apisandbox-results": "Tulemus",
+       "apisandbox-examples": "Näited",
+       "apisandbox-results": "Tulemused",
        "apisandbox-request-url-label": "Päringu URL:",
-       "apisandbox-request-time": "Päringuaeg: $1",
+       "apisandbox-request-time": "Päringuaeg: {{PLURAL:$1|$1 ms}}",
        "booksources": "Raamatuotsimine",
        "booksources-search-legend": "Raamatuotsimine",
        "booksources-search": "Otsi",
        "log-title-wildcard": "Selle tekstiga algavad pealkirjad",
        "showhideselectedlogentries": "Muuda valitud logisissekannete nähtavust",
        "log-edit-tags": "Muuda valitud logisissekannete märgiseid",
+       "checkbox-select": "Vali: $1",
+       "checkbox-all": "kõik",
+       "checkbox-none": "mitte ühtegi",
+       "checkbox-invert": "pööra",
        "allpages": "Kõik leheküljed",
        "nextpage": "Järgmine lehekülg ($1)",
        "prevpage": "Eelmine lehekülg ($1)",
        "listgrouprights-namespaceprotection-header": "Nimeruumipiirangud",
        "listgrouprights-namespaceprotection-namespace": "Nimeruum",
        "listgrouprights-namespaceprotection-restrictedto": "Redigeerimiseks vajalikud õigused",
-       "listgrants-summary": "See on OAuthi-volituste ja neile vastavate kasutajaõiguste loend. Kasutaja saab volitada rakenduse tarvituse enda nimel, aga vaid kasutaja valitud volituste piires. Rakenduse abil ei saa kasutaja nimel siiski kasutada õigusi, mida kasutajal pole.\nÜksikute õiguste kohta võib leiduda [[{{MediaWiki:Listgrouprights-helppage}}|lisateavet]].",
-       "listgrants-rights": "Volitus",
+       "listgrants": "Volitused",
+       "listgrants-summary": "See on volituste ja neile vastavate kasutajaõiguste loend. Kasutaja saab volitada rakenduse tarvituse enda nimel, aga vaid kasutaja valitud volituste piires. Rakenduse abil ei saa kasutaja nimel siiski kasutada õigusi, mida kasutajal pole.\nÜksikute õiguste kohta võib leiduda [[{{MediaWiki:Listgrouprights-helppage}}|lisateavet]].",
+       "listgrants-grant": "Volitus",
+       "listgrants-rights": "Õigused",
        "trackingcategories": "Süsteemikategooriad",
        "trackingcategories-summary": "Siin leheküljel on loetletud süsteemikategooriad, millesse MediaWiki tarkvara ise lehekülgi arvab. Nende kategooriate nimesid saab muuta, kui vahetada {{ns:8}}-nimeruumis vastavaid süsteemisõnumeid.",
        "trackingcategories-msg": "Süsteemikategooria",
        "delete-toobig": "See lehekülg on pika redigeerimisajalooga – üle {{PLURAL:$1|ühe muudatuse|$1 muudatuse}}.\nSelle kustutamine on keelatud, et ära hoida ekslikku {{GRAMMAR:genitive|{{SITENAME}}}} töö häirimist.",
        "delete-warning-toobig": "See lehekülg on pika redigeerimislooga – üle {{PLURAL:$1|ühe muudatuse|$1 muudatuse}}.\nEttevaatust, selle kustutamine võib esile kutsuda häireid {{GRAMMAR:genitive|{{SITENAME}}}} andmebaasi töös.",
        "deleteprotected": "Seda lehekülge ei saa kustutada, sest see on kaitstud.",
-       "deleting-backlinks-warning": "'''Hoiatus:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Teised leheküljed]] viitavad leheküljele, mida oled kustutamas, või see lehekülg on kasutuses mallina.",
+       "deleting-backlinks-warning": "<strong>Hoiatus:</strong> [[Special:WhatLinksHere/{{FULLPAGENAME}}|Teised leheküljed]] viitavad leheküljele, mida oled kustutamas, või see lehekülg on kasutuses mallina.",
        "rollback": "Tühista muudatused",
        "rollbacklink": "tühista",
        "rollbacklinkcount": "tühista {{PLURAL:$1|üks muudatus|$1 muudatust}}",
        "protect-summary-cascade": "kaskaad",
        "protect-expiring": "aegumistähtaeg $1 (UTC)",
        "protect-expiring-local": "aegumistähtaeg $1",
-       "protect-expiry-indefinite": "määramatu",
+       "protect-expiry-indefinite": "tähtajatu",
        "protect-cascade": "Kaitse lehekülgi, mis on lülitatud käesoleva lehekülje koosseisu (kaskaadkaitse)",
        "protect-cantedit": "Sa ei saa lehekülje kaitsetaset muuta, sest sul puudub lehekülje redigeerimise õigus.",
        "protect-othertime": "Muu aeg:",
        "unblock": "Kasutaja blokeeringu eemaldamine",
        "blockip": "Blokeeri {{GENDER:$1|kasutaja}}",
        "blockip-legend": "Kasutaja blokeerimine",
-       "blockiptext": "See vorm on kindla IP-aadressi või kasutajanime kirjutamisõiguste blokeerimiseks.\nSeda tohib teha ainult vandalismi vältimiseks ja kooskõlas [[{{MediaWiki:Policy-url}}|{{GRAMMAR:genitive|{{SITENAME}}}} sisekorraga]].\nTäida ka põhjuse väli, näiteks viidates lehekülgedele, mis rikuti.",
+       "blockiptext": "See vorm on kindla IP-aadressi või kasutajanime kirjutamisõiguste blokeerimiseks.\nSeda tohib teha ainult vandalismi vältimiseks ja kooskõlas [[{{MediaWiki:Policy-url}}|{{GRAMMAR:genitive|{{SITENAME}}}} sisekorraga]].\nTäida ka põhjuse väli, näiteks viidates lehekülgedele, mis rikuti.\nIP-aadresside vahemikke saad blokeerida [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR]-süntaksi abil; suurim lubatud vahemik on IPv4 jaoks /$1 ja IPv6 jaoks /$2.",
        "ipaddressorusername": "IP-aadress või kasutajanimi:",
        "ipbexpiry": "Kehtivus:",
        "ipbreason": "Põhjus:",
        "lockedbyandtime": "(lukustas $1; $2, kell $3)",
        "move-page": "Lehekülje \"$1\" teisaldamine",
        "move-page-legend": "Lehekülje teisaldamine",
-       "movepagetext": "Allolevat vormi kasutades saad lehekülje ümber nimetada. Lehekülje ajalugu tõstetakse uue pealkirja alla automaatselt.\nPraeguse pealkirjaga leheküljest saab ümbersuunamislehekülg uuele leheküljele.\nSaad senisele pealkirjale viitavad ümbersuunamised automaatselt parandada.\nKui sa seda ei tee, kontrolli, et teisaldamise tõttu ei jää maha [[Special:DoubleRedirects|kahekordseid]] ega [[Special:BrokenRedirects|katkiseid ümbersuunamisi]].\nSinu kohus on hoolitseda selle eest, et kõik jääks toimima, nagu ette nähtud.\n\nPane tähele, et lehekülge '''ei teisaldata''' juhul, kui uue pealkirjaga lehekülg on juba olemas. Erandiks on juhud, kui viimane on redigeerimisajaloota ümbersuunamislehekülg.\nSee tähendab, et kogemata ei saa üle kirjutada juba olemasolevat lehekülge, kuid saab ebaõnnestunud ümbernimetamise tagasi pöörata.\n\n'''Hoiatus!'''\nTegu võib olla väga loetava lehekülje jaoks tõsise ja ootamatu muudatusega;\nenne jätkamist teadvusta palun tagajärgi.",
-       "movepagetext-noredirectfixer": "Allolevat vormi kasutades saad lehekülje ümber nimetada. Lehekülje ajalugu tõstetakse uue pealkirja alla automaatselt.\nPraeguse pealkirjaga leheküljest saab ümbersuunamislehekülg uuele leheküljele.\nKontrolli, et teisaldamise tõttu ei jää maha [[Special:DoubleRedirects|kahekordseid]] ega [[Special:BrokenRedirects|katkiseid ümbersuunamisi]].\nSinu kohus on hoolitseda selle eest, et kõik jääks toimima, nagu ette nähtud.\n\nPane tähele, et lehekülge '''ei teisaldata''' juhul, kui uue pealkirjaga lehekülg on juba olemas. Erandiks on juhud, kui olemasolev lehekülg on tühi või redigeerimisajaloota ümbersuunamislehekülg.\nSee tähendab, et kogemata ei saa üle kirjutada juba olemasolevat lehekülge, kuid saab ebaõnnestunud ümbernimetamise tagasi pöörata.\n\n'''Hoiatus!'''\nTegu võib olla väga loetava lehekülje jaoks tõsise ja ootamatu muudatusega;\nenne jätkamist teadvusta palun tagajärgi.",
+       "movepagetext": "Allolevat vormi kasutades saad lehekülje ümber nimetada. Lehekülje ajalugu tõstetakse uue pealkirja alla automaatselt.\nPraeguse pealkirjaga leheküljest saab ümbersuunamislehekülg uuele leheküljele.\nSaad senisele pealkirjale viitavad ümbersuunamised automaatselt parandada.\nKui sa seda ei tee, kontrolli, et teisaldamise tõttu ei jää maha [[Special:DoubleRedirects|kahekordseid]] ega [[Special:BrokenRedirects|katkiseid ümbersuunamisi]].\nSinu kohus on hoolitseda selle eest, et kõik jääks toimima, nagu ette nähtud.\n\nPane tähele, et lehekülge <strong>ei teisaldata</strong> juhul, kui uue pealkirjaga lehekülg on juba olemas. Erandiks on juhud, kui viimane on redigeerimisajaloota ümbersuunamislehekülg.\nSee tähendab, et kogemata ei saa üle kirjutada juba olemasolevat lehekülge, kuid saab ebaõnnestunud ümbernimetamise tagasi pöörata.\n\n<strong>Märkus:</strong>\nTegu võib olla väga loetava lehekülje jaoks tõsise ja ootamatu muudatusega;\nenne jätkamist teadvusta palun tagajärgi.",
+       "movepagetext-noredirectfixer": "Allolevat vormi kasutades saad lehekülje ümber nimetada. Lehekülje ajalugu tõstetakse uue pealkirja alla automaatselt.\nPraeguse pealkirjaga leheküljest saab ümbersuunamislehekülg uuele leheküljele.\nKontrolli, et teisaldamise tõttu ei jää maha [[Special:DoubleRedirects|kahekordseid]] ega [[Special:BrokenRedirects|katkiseid ümbersuunamisi]].\nSinu kohus on hoolitseda selle eest, et kõik jääks toimima, nagu ette nähtud.\n\nPane tähele, et lehekülge <strong>ei teisaldata</strong> juhul, kui uue pealkirjaga lehekülg on juba olemas. Erandiks on juhud, kui olemasolev lehekülg on tühi või redigeerimisajaloota ümbersuunamislehekülg.\nSee tähendab, et kogemata ei saa üle kirjutada juba olemasolevat lehekülge, kuid saab ebaõnnestunud ümbernimetamise tagasi pöörata.\n\n<strong>Note:</strong>\nTegu võib olla väga loetava lehekülje jaoks tõsise ja ootamatu muudatusega;\nenne jätkamist teadvusta palun tagajärgi.",
        "movepagetalktext": "Kui märgid selle ruudu, teisaldatakse arutelulehekülg automaatselt uue pealkirja alla. Seda välja arvatud juhul, kui uue pealkirja all on juba arutelulehekülg, mis pole tühi.\n\nSel juhul saad lehekülje soovi korral käsitsi teisaldada või liita.",
        "moveuserpage-warning": "'''Hoiatus:''' Oled teisaldamas kasutajalehekülge. Pane tähele, et teisaldatakse ainult lehekülg ja kasutajat '''ei''' nimetata ümber.",
        "movecategorypage-warning": "<strong>Hoiatus:</strong> Oled teisaldamas kategoorialehekülge. Pane palun tähele, et teisaldatakse vaid see lehekülg ja ühtegi vanas kategoorias sisalduvat lehekülge <em>ei</em> kategoriseerita ümber uude kategooriasse.",
        "movenosubpage": "Sellel leheküljel pole alamlehekülgi.",
        "movereason": "Põhjus:",
        "revertmove": "taasta",
-       "delete_and_move_text": "== Vajalik kustutamine ==\nSihtlehekülg \"[[:$1]]\" on juba olemas.\nKas kustutad selle, et luua võimalus teisaldamiseks?",
+       "delete_and_move_text": "Sihtlehekülg \"[[:$1]]\" on juba olemas.\nKas kustutad selle, et luua võimalus teisaldamiseks?",
        "delete_and_move_confirm": "Jah, kustuta lehekülg",
        "delete_and_move_reason": "Kustutatud, et tõsta asemele lehekülg \"[[$1]]\"",
        "selfmove": "Algne nimi ja uus nimi on samad.",
        "move-leave-redirect": "Jäta maha ümbersuunamisleht",
        "protectedpagemovewarning": "'''Hoiatus:''' See lehekülg on nii lukustatud, et ainult administraatori õigustega kasutajad saavad seda teisaldada.\nAllpool on toodud uusim logisissekanne:",
        "semiprotectedpagemovewarning": "'''Pane tähele:''' See lehekülg on lukustatud, nii et ainult registreeritud kasutajad saavad seda teisaldada.\nAllpool on toodud uusim logisissekanne:",
-       "move-over-sharedrepo": "== Fail on olemas ==\n[[:$1]] on olemas jagatud failivaramus. Faili teisaldamisel selle nime alla varjatakse jagatud failivarmus olev samanimeline fail.",
+       "move-over-sharedrepo": "[[:$1]] on olemas jagatud failivaramus. Faili teisaldamisel selle nime alla varjatakse jagatud failivarmus olev samanimeline fail.",
        "file-exists-sharedrepo": "Valitud failinimi on juba kasutusel jagatud failivaramus.\nPalun kasuta mõnda teist nime.",
        "export": "Lehekülgede eksport",
        "exporttext": "Saad eksportida kindla leheküljel või lehekülgede kogumi teksti ja redigeerimisloo XML-kujule viiduna.\nSeda saab teise vikisse importida, kasutades selleks MediaWiki [[Special:Import|impordi lehekülge]].\n\nEt eksportida lehekülgi, sisesta nende pealkirjad allolevasse tekstikasti, iga pealkiri ise reale ja vali, kas soovid viimast redaktsiooni ja kõiki vanemaid redaktsioone ühes redigeerimislooga või viimast redaktsiooni ühes andmetega viimase redigeerimise kohta.\n\nViimasel juhul saab kasutada ka linki, näiteks lehekülje \"[[{{MediaWiki:Mainpage}}]]\" jaoks [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]].",
        "allmessagesname": "Nimi",
        "allmessagesdefault": "Vaiketekst",
        "allmessagescurrent": "Praegune tekst",
-       "allmessagestext": "See on loend kõikidest olemasolevatest süsteemisõnumitest MediaWiki nimeruumis.\nKui soovid MediaWiki tarkvara tõlkimises osaleda, siis vaata lehti [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki lokaliseerimine] ja [//translatewiki.net translatewiki.net].",
+       "allmessagestext": "See on loend kõikidest olemasolevatest süsteemisõnumitest MediaWiki nimeruumis.\nKui soovid MediaWiki tarkvara tõlkimises osaleda, siis vaata lehti [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki lokaliseerimine] ja [https://translatewiki.net translatewiki.net].",
        "allmessagesnotsupportedDB": "Seda lehekülge ei saa kasutada, sest '''$wgUseDatabaseMessages''' ei tööta.",
        "allmessages-filter-legend": "Filter",
        "allmessages-filter": "Muutmisoleku filter:",
        "import-nonewrevisions": "Ühtegi redaktsiooni ei imporditud (kõik on juba olemas või tõrgete tõttu vahele jäetud).",
        "xml-error-string": "$1 real $2, tulbas $3 (bait $4): $5",
        "import-upload": "Laadi üles XML-andmed",
-       "import-token-mismatch": "Seansiandmed läksid kaduma.\nPalun ürita uuesti.",
+       "import-token-mismatch": "Seansiandmed läksid kaduma.\n\nVõimalik, et oled välja loginud. <strong>Palun veendu, et oled endiselt sisse logitud ja proovi uuesti</strong>.\nKui see ei toimi, siis proovi [[Special:UserLogout|logida välja]] ja tagasi sisse ning kontrolli, kas brauser lubab sellest võrgukohast küpsiseid.",
        "import-invalid-interwiki": "Määratud vikist ei saa importida.",
        "import-error-edit": "Lehekülge \"$1\" ei imporditud, sest sul pole õigust seda muuta.",
        "import-error-create": "Lehekülge \"$1\" ei imporditud, sest sul pole õigust seda luua.",
        "tooltip-t-recentchangeslinked": "Viimased muudatused lehekülgedel, millele on siit viidatud",
        "tooltip-feed-rss": "Selle lehekülje RSS-voog",
        "tooltip-feed-atom": "Selle lehekülje Atom-voog",
-       "tooltip-t-contributions": "Kuva selle kasutaja kaastöö",
-       "tooltip-t-emailuser": "Saada sellele kasutajale e-kiri",
+       "tooltip-t-contributions": "Kuva {{GENDER:$1|selle kasutaja}} kaastöö",
+       "tooltip-t-emailuser": "Saada {{GENDER:$1|sellele kasutajale}} e-kiri",
        "tooltip-t-info": "Lisateave selle lehekülje kohta",
        "tooltip-t-upload": "Laadi faile üles",
        "tooltip-t-specialpages": "Erilehekülgede loend",
        "widthheightpage": "$1 × $2, $3 {{PLURAL:$3|lehekülg|lehekülge}}",
        "file-info": "faili suurus: $1, MIME tüüp: $2",
        "file-info-size": "$1 × $2 pikslit, faili suurus: $3, MIME tüüp: $4",
-       "file-info-size-pages": "$1 × $2 pikslit, faili suurus: $3 , MIME tüüp: $4, $5 {{PLURAL:$5|lehekülg|lehekülge}}",
+       "file-info-size-pages": "$1 × $2 pikslit, faili suurus: $3, MIME tüüp: $4, $5 {{PLURAL:$5|lehekülg|lehekülge}}",
        "file-nohires": "Sellest suuremat pilti pole.",
        "svg-long-desc": "SVG-fail, algsuurus $1 × $2 pikslit, faili suurus: $3",
        "svg-long-desc-animated": "Animeeritud SVG-fail,  algsuurus $1 × $2 pikslit, faili suurus: $3",
        "watchlistedit-raw-done": "Sinu jälgimisloend on uuendatud.",
        "watchlistedit-raw-added": "{{PLURAL:$1|1 lehekülg|$1 lehekülge}} lisatud:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|1 pealkiri|$1 pealkirja}} eemaldati:",
-       "watchlistedit-clear-title": "Tühjendatud jälgimisloend",
+       "watchlistedit-clear-title": "Jälgimisloendi tühjendamine",
        "watchlistedit-clear-legend": "Jälgimisloendi tühjendamine",
        "watchlistedit-clear-explain": "Sinu jälgimisloendist eemaldatakse kõik pealkirjad.",
        "watchlistedit-clear-titles": "Pealkirjad:",
        "version-libraries-license": "Litsents",
        "version-libraries-description": "Kirjeldus",
        "version-libraries-authors": "Autorid",
-       "redirect": "Ümbersuunamine faili, kasutaja, lehekülje või redaktsiooni identifikaatori järgi",
-       "redirect-summary": "See erilehekülg suunab ümber faili (toodud failinimi), lehekülje (toodud redaktsiooni või lehekülje identifikaator) või kasutajalehekülje (toodud numbriline kasutaja identfikaator) juurde. Kasutamine: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]] või [[{{#Special:Redirect}}/user/101]].",
+       "redirect": "Ümbersuunamine faili, kasutaja, lehekülje, redaktsiooni või logiidentifikaatori järgi",
+       "redirect-summary": "See erilehekülg suunab ümber faili (toodud failinimi), lehekülje (toodud redaktsiooni või lehekülje identifikaator), kasutajalehekülje (toodud numbriline kasutaja identfikaator) või logisissekande (toodud logiidentifikaator) juurde. Kasutamine: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], [[{{#Special:Redirect}}/user/101]] või [[{{#Special:Redirect}}/logid/186]].",
        "redirect-submit": "Mine",
        "redirect-lookup": "Leia:",
        "redirect-value": "Väärtus:",
        "tags-delete-not-allowed": "Tarkvaralisas määratletud märgiseid ei saa kustutada, kui märgis on tarkvaralisas eraldi lubatud.",
        "tags-delete-not-found": "Märgist \"$1\" pole.",
        "tags-delete-too-many-uses": "Märgist \"$1\" on rakendatud rohkem kui {{PLURAL:$2|ühe|$2}} redaktsiooni juures, mistõttu ei saa seda kustutada.",
-       "tags-delete-warnings-after-delete": "Märgis \"$1\" on edukalt kustutatud, kuid väljastati {{PLURAL:$2|järgmine hoiatus|järgmised hoiatused}}:",
+       "tags-delete-warnings-after-delete": "Märgis \"$1\" on kustutatud, kuid väljastati {{PLURAL:$2|järgmine hoiatus|järgmised hoiatused}}:",
        "tags-activate-title": "Märgise lubamine",
        "tags-activate-question": "Siinkohal lubad märgise \"$1\".",
        "tags-activate-reason": "Põhjus:",
        "tags-edit-revision-legend": "Märgiste lisamine või eemaldamine {{PLURAL:$1|selle|kõigi $1}} redaktsiooni juures",
        "tags-edit-logentry-legend": "Märgiste lisamine või eemaldamine {{PLURAL:$1|selle|kõigi $1}} logisissekande juures",
        "tags-edit-existing-tags": "Senised märgised:",
-       "tags-edit-existing-tags-none": "''puuduvad''",
+       "tags-edit-existing-tags-none": "<em>puuduvad</em>",
        "tags-edit-new-tags": "Uued märgised:",
        "tags-edit-add": "Lisa need märgised:",
        "tags-edit-remove": "Eemalda need märgised:",
        "tags-edit-reason": "Põhjus:",
        "tags-edit-revision-submit": "Rakenda {{PLURAL:$1|selle|$1}} redaktsiooni suhtes",
        "tags-edit-logentry-submit": "Rakenda {{PLURAL:$1|selle|$1}} logisissekande suhtes",
-       "tags-edit-success": "Muudatused on edukalt rakendatud.",
+       "tags-edit-success": "Muudatused on rakendatud.",
        "tags-edit-failure": "Muudatusi ei õnnestunud rakendada:\n$1",
        "tags-edit-nooldid-title": "Vigane sihtredaktsioon",
        "tags-edit-nooldid-text": "Selle toimingu jaoks pole määratud ühtegi sihtredaktsiooni või määratud redaktsiooni pole olemas.",
        "logentry-protect-protect-cascade": "$1 {{GENDER:$2|kaitses}} lehekülje $3 $4 [kaskaadkaitse]",
        "logentry-protect-modify": "$1 {{GENDER:$2|muutis}} lehekülje $3 kaitsetaset $4",
        "logentry-protect-modify-cascade": "$1 {{GENDER:$2|muutis}} lehekülje $3 kaitsetaset $4 [kaskaadkaitse]",
-       "logentry-rights-rights": "$1 {{GENDER:$2|muutis}} kasutaja $3 rühmaliikmesust; enne oli $4, nüüd on $5",
+       "logentry-rights-rights": "$1 {{GENDER:$2|muutis}} kasutaja {{GENDER:$6|$3}} rühmaliikmesust; enne oli $4, nüüd on $5",
        "logentry-rights-rights-legacy": "$1 {{GENDER:$2|muutis}} kasutaja $3 rühmaliikmesust",
        "logentry-rights-autopromote": "$1 {{GENDER:$2|viidi}} automaatselt üle teise rühma; enne oli $4, nüüd on $5",
        "logentry-upload-upload": "$1 {{GENDER:$2|laadis üles}} faili $3",
        "expand_templates_generate_xml": "Näita XML-liigenduspuud",
        "expand_templates_generate_rawhtml": "Näita toor-HTMLi",
        "expand_templates_preview": "Eelvaade",
-       "expand_templates_preview_fail_html": "<em>Kuna {{GRAMMAR:inessive|{{SITENAME}}}} on toor-HTML lubatud ja osa seansiandmeid läks kaotsi, siis on JavaScripti põhiste rünnakute vastase abinõuna eelvaade peidetud.</em>\n\n<strong>Kui see eelvaatekatse on õigustatud, proovi palun uuesti.</strong>\nKui see ikka ei tööta, proovi [[Special:UserLogout|logida välja]] ja tagasi sisse.",
+       "expand_templates_preview_fail_html": "<em>Kuna {{GRAMMAR:inessive|{{SITENAME}}}} on toor-HTML lubatud ja osa seansiandmeid läks kaotsi, siis on JavaScripti põhiste rünnakute vastase abinõuna eelvaade peidetud.</em>\n\n<strong>Kui see eelvaatekatse on õigustatud, proovi palun uuesti.</strong>\nKui see ikka ei tööta, proovi [[Special:UserLogout|logida välja]] ja tagasi sisse ning kontrolli, kas brauser lubab sellest võrgukohast küpsiseid.",
        "expand_templates_preview_fail_html_anon": "<em>Kuna {{GRAMMAR:inessive|{{SITENAME}}}} on toor-HTML lubatud ja sa pole sisse logitud, siis on JavaScripti põhiste rünnakute vastase abinõuna eelvaade peidetud.</em>\n\n<strong>Kui see eelvaatekatse on õigustatud, [[Special:UserLogin|logi]] palun sisse ja proovi uuesti.</strong>",
        "pagelanguage": "Lehekülje keele valik",
        "pagelang-name": "Lehekülg",
        "mediastatistics": "Meediafailide arvandmestik",
        "mediastatistics-summary": "Arvandmed üles laaditud failitüüpide kohta. See käib ainult failide viimaste versioonide kohta. Vanu ja kustutatud versioone pole arvesse võetud.",
        "mediastatistics-nbytes": "{{PLURAL:$1|$1 bait|$1 baiti}} ($2; $3%)",
-       "mediastatistics-bytespertype": "Failide kogusuurus selles alaosas: $1 baiti.",
-       "mediastatistics-allbytes": "Kõigi failide kogusuurus: $1 baiti.",
+       "mediastatistics-bytespertype": "Failide kogusuurus selles alaosas: $1 {{PLURAL:$1|bait|baiti}} ($2; $3%).",
+       "mediastatistics-allbytes": "Kõigi failide kogusuurus: $1 {{PLURAL:$1|bait|baiti}} ($2).",
        "mediastatistics-table-mimetype": "MIME tüüp",
        "mediastatistics-table-extensions": "Võimalikud laiendid",
        "mediastatistics-table-count": "Failide arv",
        "mw-widgets-dateinput-placeholder-month": "AAAA-KK",
        "mw-widgets-titleinput-description-new-page": "lehekülge pole veel",
        "mw-widgets-titleinput-description-redirect": "ümbersuunamine leheküljele \"$1\"",
-       "api-error-blacklisted": "Palun vali muu pealkiri, mis on kirjeldav.",
        "randomrootpage": "Juhuslik juurlehekülg"
 }
index d3be7b8..9f4442b 100644 (file)
        "protectedpagetext": "Orri hau babestu da, edizioak edo beste ekintza batzuk egin ez daitezen.",
        "viewsourcetext": "Orri honen iturburu-testua ikusi eta kopiatu dezakezu.",
        "viewyourtext": "Ondorengo orri honetan <strong>zeuk egin dituzun aldaketen</strong> iturburu kodea ikus eta kopia dezakezu:",
-       "protectedinterface": "Orrialde honek softwarearentzako interfaze testua gordetzen du eta blokeatuta dago bandalismoak saihesteko.\nWiki guztientzako aldaketak egin edo gehitzeko, mesedez erabili [//translatewiki.net/ translatewiki.net], MediaWikiren lokalizazio proiektua.",
+       "protectedinterface": "Orrialde honek softwarearentzako interfaze testua gordetzen du eta blokeatuta dago bandalismoak saihesteko.\nWiki guztientzako aldaketak egin edo gehitzeko, mesedez erabili [https://translatewiki.net/ translatewiki.net], MediaWikiren lokalizazio proiektua.",
        "editinginterface": "<strong> Oharra:</strong> Softwarearen interfazerako testua duen orri bat aldatzen ari zara.\nOrri honetako aldaketek wiki honetako erabiltzaile guztiei eragingo diete.",
-       "translateinterface": "Itzulpenetarako, erabil ezazu [//translatewiki.net/ translatewiki.net], MediaWiki proiektuan.",
+       "translateinterface": "Itzulpenetarako, erabil ezazu [https://translatewiki.net/ translatewiki.net], MediaWiki proiektuan.",
        "cascadeprotected": "Orri hau aldaketen aurka babestua dago, barneratuta dagoelako «kaskadako babesa» aukerarekin babestu {{PLURAL:$1|duten orri honetan|dituzten orri hauetan}}:\n$2",
        "namespaceprotected": "Ez daukazu '''$1''' izen-tarteko orrialdeak aldatzeko baimenik.",
        "customcssprotected": "Ez duzu baimenik CSS orrialde hau aldatzeko beste erabiltzaile baten hobespen pertsonalak dituelako.",
        "createaccount-title": "{{SITENAME}}-rako kontua sortu",
        "createaccount-text": "Norbaitek zure e-postarekin kontu bat sortu du {{SITENAME}}(e)n ($4) \"$2\" izenarekin eta \"$3\" pasahitzarekin.\nOrain bertan sar zaitezke eta zure pasahitza aldatu.\n\nKontu honen sorrera akats bat dela uste baduzu mezu honi ez diozu zertan jaramonik egin.",
        "login-throttled": "Saioa hasteko saiakera gehiegi egin berri dituzu.\nBerriro saiatu aurretik $1 itxoin, mesedez.",
-       "login-abort-generic": "Zure sarrera ez da arrakastatsua izan - Abortatua",
+       "login-abort-generic": "Zure sarrerak akatsa izan du - Abortatua",
        "loginlanguagelabel": "Hizkuntza: $1",
        "suspicious-userlogout": "Saioa amaitzeko egin duzun eskaria ukatu da. Izan ere, ematen du eskari hori gaizki dabilen nabigatzaile edo cache proxy batek bidali duela.",
        "createacct-another-realname-tip": "Benetako izena hautazkoa da.\nEmatea erabakitzen baduzu hori erabiliko da lanaren atribuzioa egiterako garaian.",
        "newpassword": "Pasahitz berria:",
        "retypenew": "Pasahitz berria berriz idatzi:",
        "resetpass_submit": "Pasahitza definitu eta saioa hasi",
-       "changepassword-success": "Zure pasahitza ondo aldatu da!",
+       "changepassword-success": "Zure pasahitza aldatu da!",
        "changepassword-throttled": "Saioa hasteko saiakera gehiegi egin berri dituzu.\nBerriro saiatu aurretik $1 itxoin, mesedez.",
        "botpasswords-label-appid": "Bot izena:",
        "botpasswords-label-create": "Sortu",
        "resetpass-no-info": "Orrialde honetara zuzenean sartzeko izena eman behar duzu.",
        "resetpass-submit-loggedin": "Pasahitza aldatu",
        "resetpass-submit-cancel": "Utzi",
-       "resetpass-wrong-oldpass": "Behin-behineko edo oraintxuko pasahitza ez da baliagarria.\nAgian dagoeneko ondo aldatu duzu zure pasahitza edo behin-behineko pasahitza bat eskatu duzu.",
+       "resetpass-wrong-oldpass": "Behin-behineko edo oraintxuko pasahitza ez da baliagarria.\nAgian dagoeneko aldatu duzu zure pasahitza edo behin-behineko pasahitza bat eskatu duzu.",
        "resetpass-recycled": "Mesedez berritu zure pasahitza.",
        "resetpass-temp-password": "Behin-behineko pasahitza:",
        "resetpass-abort-generic": "Estentsio batek pasahitza aldatzea ekidin du.",
        "minoredit": "Aldaketa hau txikia da",
        "watchthis": "Orrialde hau jarraitu",
        "savearticle": "Gorde orria",
+       "publishpage": "Orrialdea argitaratu",
+       "publishchanges": "Aldaketak argitaratu",
        "preview": "Aurrebista erakutsi",
        "showpreview": "Aurrebista erakutsi",
        "showdiff": "Aldaketak erakutsi",
        "grant-editprotected": "Babestutako orriak aldatu",
        "grant-patrol": "Orrietako aldaketa patruilatu",
        "grant-protect": "Orriak babestu eta babesgabetu",
-       "grant-uploadfile": "Igotako fitxategi berriak",
+       "grant-uploadfile": "Fitxategi berriak igo",
        "grant-basic": "Oinarrizko baimenak",
        "grant-viewdeleted": "Ikusi ezabatutako fitxategiak eta orriak",
        "grant-viewmywatchlist": "Zure jarraipen zerrenda ikusi",
        "action-viewmywatchlist": "zure jarraipen zerrenda ikusi",
        "action-viewmyprivateinfo": "zure informazio pribatua ikusi",
        "action-editmyprivateinfo": "zure informazio pribatua aldatu",
-       "action-managechangetags": "Etiketak sortu eta ezabatu datu basean",
+       "action-managechangetags": "Etiketak sortu eta (des)aktibatu",
        "nchanges": "{{PLURAL:$1|aldaketa 1|$1 aldaketa}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|azkeneko bisitatik}}",
        "enhancedrc-history": "historia",
        "sp-contributions-search": "Ekarpenentzako bilaketa",
        "sp-contributions-username": "IP helbidea edo erabiltzaile izena:",
        "sp-contributions-toponly": "Azken aldaketak direnak soilik erakutsi",
+       "sp-contributions-newonly": "Orrialde sorkuntza direnak soilik erakutsi",
+       "sp-contributions-hideminor": "Aldaketa txikiak ezkutatu",
        "sp-contributions-submit": "Bilatu",
        "whatlinkshere": "Honanzko lotura duten orriak",
        "whatlinkshere-title": "$1(e)ra lotura duten orriak",
        "allmessagesname": "Izena",
        "allmessagesdefault": "Testu lehenetsia",
        "allmessagescurrent": "Oraingo testua",
-       "allmessagestext": "MediaWikin erabiltzen diren mezu guztien zerrenda.\nMesedez bisitatu [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki] eta [//translatewiki.net translatewiki.net] orrialdeak MediaWikira ekarpenak egin badituzu.",
+       "allmessagestext": "MediaWikin erabiltzen diren mezu guztien zerrenda.\nMesedez bisitatu [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki] eta [https://translatewiki.net translatewiki.net] orrialdeak MediaWikira ekarpenak egin badituzu.",
        "allmessagesnotsupportedDB": "Ezin da '''{{ns:special}}:Allmessages''' erabili '''$wgUseDatabaseMessages''' ezgaituta dagoelako.",
        "allmessages-filter-legend": "Iragazi",
        "allmessages-filter": "Aldaketa-egoeraren arabera iragazi:",
        "watchlistedit-raw-done": "Zure jarraipen zerrenda berritu da.",
        "watchlistedit-raw-added": "{{PLURAL:$1|Titulu 1 gehitu da|$1 gehitu dira}}:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|Izenburu 1|$1 izenburu}} ezabatu dira:",
-       "watchlistedit-clear-title": "Garbitutako jarraipen-zerrenda",
+       "watchlistedit-clear-title": "Garbitu jarraipen-zerrenda",
        "watchlistedit-clear-legend": "Garbitu jarraipen-zerrenda",
        "watchlistedit-clear-explain": "Izenburu guztiak zure jarraipen-zerrendatik kenduko dira",
        "watchlistedit-clear-titles": "Izenburuak:",
        "tags-edit-title": "Etiketak aldatu",
        "tags-edit-manage-link": "Etiketak kudeatu",
        "tags-edit-existing-tags": "Existitzen diren etiketak:",
-       "tags-edit-existing-tags-none": "\"Bat ere ez\"",
+       "tags-edit-existing-tags-none": "<em>Bat ere ez</em>",
        "tags-edit-new-tags": "Etiketa berriak:",
        "tags-edit-add": "Gehitu etiketa hauek:",
        "tags-edit-remove": "Kendu etiketa hauek:",
        "sqlite-no-fts": "$1 testu osoan bilatzeko laguntzarik gabe",
        "logentry-delete-delete": "$1 {{GENDER:$2|wikilariak}} «$3» orria ezabatu du",
        "logentry-delete-restore": "$1(e)k $3 orrialdea {{GENDER:$2|berrezarri}} du",
-       "logentry-delete-event": "$1 wikilariak ikusgaitasuna aldatu {{PLURAL:$5|dio erregistroko sarrera bati|die erregistroko $5 sarrerari}}, $3 orrian: $4",
+       "logentry-delete-event": "$1 wikilariak ikusgaitasuna {{{{GENDER:$2|}}|aldatu}} {{PLURAL:$5|dio erregistroko sarrera bati|die erregistroko $5 sarrerari}}, $3 orrian: $4",
        "logentry-delete-revision": "$1 erabiltzaileak {{PLURAL:$5|berrikuste baten|$5 berrikusteren}} ikusgaitasuna aldatu du «$3» orrian: $4",
        "logentry-suppress-delete": "$1 erabiltzaileak $3 orrialdea {{GENDER:$2|ezabatu}} du",
        "logentry-suppress-event": "$1 wikilariak ezkutuan ikusgaitasuna aldatu {{PLURAL:$5|dio erregistroko sarrera bati|die erregistroko $5 sarrerari}}, «$3» orrian: $4",
        "mw-widgets-dateinput-no-date": "Ez duzu datarik aukeratu",
        "mw-widgets-titleinput-description-new-page": "orri hori oraindik ez da existitzen",
        "mw-widgets-titleinput-description-redirect": "$1ra birzuzendu",
-       "api-error-blacklisted": "Aukera ezazu, mesedez, izenburu ezberdin eta deskriptiboago bat.",
        "sessionprovider-generic": "$1 sesio"
 }
index 50d0a8c..56e8cbe 100644 (file)
        "protectedpagetext": "Esta página s'alcuentra atarugá a nuevas eicionis.",
        "viewsourcetext": "Pueis vel i copial el cóigu huenti desta páhina:",
        "protectedinterface": "Esta páhina proporciona el testu la entrihazi el software, razón pola que s'alcuentra atarugá.",
-       "editinginterface": "'''Cudiau:''' Estás eitandu una página que propolciona el testu la entrijazi el software. Los chambus hechus aquina afeutarán a la entrijazi d'otrus ussuárius.\nPa traucil, consiera gastal [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], el proyeutu de traución de MediaWiki.",
+       "editinginterface": "'''Cudiau:''' Estás eitandu una página que propolciona el testu la entrijazi el software. Los chambus hechus aquina afeutarán a la entrijazi d'otrus ussuárius.\nPa traucil, consiera gastal [https://translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], el proyeutu de traución de MediaWiki.",
        "cascadeprotected": "Esta páhina s'alcuentra protehia ebiu a que horma parti e {{PLURAL:$1|la siguienti páhina|las siguientis páhinas}}, qu'están protehias cola oción \"proteción en cascá\" ativá:\n$2",
        "namespaceprotected": "Nu tiinis premisu pa eital páhinas nel \"espaciu e nombris\" '''$1'''.",
        "ns-specialprotected": "Nu se puein eital las páhinas el {{ns:special}} \"espaciu e nombris\".",
        "allmessagesname": "Nombri",
        "allmessagesdefault": "Testu pol defeutu",
        "allmessagescurrent": "Testu atual",
-       "allmessagestext": "Esta es una lista e mensahis del sistema disponibris nel espaciu e nombris MediaWiki:\nPol favol, vesita [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] i [//translatewiki.net translatewiki.net] si quieis colabutal.",
+       "allmessagestext": "Esta es una lista e mensahis del sistema disponibris nel espaciu e nombris MediaWiki:\nPol favol, vesita [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] i [https://translatewiki.net translatewiki.net] si quieis colabutal.",
        "allmessagesnotsupportedDB": "Nu se puei gastal esta páhina polque '''$wgUseDatabaseMessages''' está desativau.",
        "thumbnail-more": "Agrandal",
        "filemissing": "Archivu escambulliu",
index 6324b22..8c8cee9 100644 (file)
                        "Ms96",
                        "Freshman404",
                        "Hamisun",
-                       "Matma Rex"
+                       "Matma Rex",
+                       "4nn1l2",
+                       "Namo",
+                       "Alifakoor"
                ]
        },
        "tog-underline": "خط کشیدن زیر پیوندها:",
@@ -80,7 +83,7 @@
        "tog-enotifusertalkpages": "هنگامی که در صفحهٔ بحث کاربری‌ام تغییری صورت می‌گیرد به من ایمیلی فرستاده شود",
        "tog-enotifminoredits": "برای تغییرات جزئی در صفحه‌ها و پرونده‌ها هم به من ایمیلی فرستاده شود",
        "tog-enotifrevealaddr": "نشانی پست الکترونیکی من در ایمیل‌های اطلاع‌رسانی هویدا گردد",
-       "tog-shownumberswatching": "شمار کاربران پی‌گیرندهٔ نمایش یابد",
+       "tog-shownumberswatching": "نمایشِ شمار کاربران پی‌گیری کننده",
        "tog-oldsig": "امضای کنونی:",
        "tog-fancysig": "امضا به صورت ویکی‌متن در نظر گرفته شود (بدون درج خودکار پیوند)",
        "tog-uselivepreview": "استفاده از پیش‌نمایش زنده",
        "tog-showhiddencats": "نمایش رده‌های پنهان",
        "tog-norollbackdiff": "بعد از واگردانی، تفاوت نشان داده نشود",
        "tog-useeditwarning": "زمان خروج از صفحهٔ ویرایش در صورت داشتن ویرایش‌های‌ ذخیره‌نشده به من هشدار داده شود",
-       "tog-prefershttps": "در حالت ورود به سامانه همواره از اتصال امن استفاده شود",
+       "tog-prefershttps": "هنگامی که به سامانه وارد شده‌ام، همواره از اتصال امن استفاده شود",
        "underline-always": "همیشه",
        "underline-never": "هرگز",
        "underline-default": "پیش‌فرض پوسته یا مرورگر",
        "protectedpagetext": "این صفحه برای جلوگیری از ویرایش یا فعالیت دیگر محافظت شده‌است.",
        "viewsourcetext": "می‌توانید متن مبدأ این صفحه را مشاهده کنید یا از آن نسخه بردارید:",
        "viewyourtext": "می‌توانید کد مبدأ <strong>ویرایش‌هایتان</strong> در این صفحه را ببینید و کپی کنید.",
-       "protectedinterface": "این صفحه ارائه‌دهندهٔ متنی برای واسط کاربر این نرم‌افزار در این ویکی است و به منظور پیشگیری از خرابکاری محافظت شده‌است.\nبرای افزودن یا تغییر دادن ترجمه برای همهٔ ویکی‌ها، لطفاً از [//translatewiki.net/ translatewiki.net]، پروژهٔ محلی‌سازی مدیاویکی، استفاده کنید.",
+       "protectedinterface": "این صفحه ارائه‌دهندهٔ متنی برای واسط کاربر این نرم‌افزار در این ویکی است و به منظور پیشگیری از خرابکاری محافظت شده‌است.\nبرای افزودن یا تغییر دادن ترجمه برای همهٔ ویکی‌ها، لطفاً از [https://translatewiki.net/ translatewiki.net]، پروژهٔ محلی‌سازی مدیاویکی، استفاده کنید.",
        "editinginterface": "<strong>هشدار:</strong> صفحه‌ای که ویرایش می‌کنید شامل متنی است که در واسط کاربر این نرم‌افزار به کار رفته‌است.\nتغییر این صفحه منجر به تغییر ظاهر واسط کاربر این نرم‌افزار برای دیگر کاربران خواهد شد.",
-       "translateinterface": "برای افزودن یا تغییر دادن ترجمه برای همهٔ ویکی‌ها، لطفاً از [//translatewiki.net/ translatewiki.net]، پروژهٔ محلی‌سازی مدیاویکی، استفاده کنید.",
+       "translateinterface": "برای افزودن یا تغییر دادن ترجمه برای همهٔ ویکی‌ها، لطفاً از [https://translatewiki.net/ translatewiki.net]، پروژهٔ محلی‌سازی مدیاویکی، استفاده کنید.",
        "cascadeprotected": "این صفحه در مقابل ویرایش محافظت شده‌است چون در {{PLURAL:$1|صفحهٔ|صفحه‌های}} محافظت‌شدهٔ زیر که گزینهٔ «آبشاری» در {{PLURAL:$1|آن|آن‌ها}} انتخاب شده قرار گرفته‌است:\n$2",
        "namespaceprotected": "شما اجازهٔ ویرایش صفحه‌های فضای نام '''$1''' را ندارید.",
        "customcssprotected": "شما اجازهٔ ویرایش این صفحهٔ سی‌اس‌اس را ندارید، زیرا حاوی تنظیم‌های شخصی یک کاربر دیگر است.",
        "password-change-forbidden": "شما نمی‌توانید گذرواژه‌ها را در این ویکی تغییر دهید.",
        "externaldberror": "خطایی در ارتباط با پایگاه داده رخ داده است یا اینکه شما اجازهٔ به‌روزرسانی حساب خارجی خود را ندارید.",
        "login": "ورود به سامانه",
+       "login-security": "هویتتان را تائید کنید",
        "nav-login-createaccount": "ورود به سامانه / ایجاد حساب کاربری",
        "userlogin": "ورود به سامانه / ایجاد حساب کاربری",
        "userloginnocreate": "ورود به سامانه",
        "userlogin-resetpassword-link": "گذرواژه‌تان را فراموش کردید؟",
        "userlogin-helplink2": "کمک با ورود",
        "userlogin-loggedin": "شما در حال حاضر به عنوان {{GENDER:$1|$1}} وارد شده‌اید.\nاز فرم پایین برای ورود به عنوان یک کاربر دیگر استفاده کنید.",
+       "userlogin-reauth": "برای تأييد اینکه شما خود $1 هستيد، نیاز است دوباره وارد شويد.",
        "userlogin-createanother": "ایجاد یک حساب کاربری دیگر",
        "createacct-emailrequired": "نشانی ایمیل",
        "createacct-emailoptional": "نشانی ایمیل (اختیاری)",
        "createacct-email-ph": "نشانی ایمیل خود را وارد کنید",
        "createacct-another-email-ph": "آدرس ایمیل را وارد کنید",
        "createaccountmail": "استفاده از رمز عبور موقت تصادفی و ارسال آن به آدرس ایمیل مشخص شده",
+       "createaccountmail-help": "جهت ايجاد حساب برای شخص ديگری بدون دانستن گذرواژهٔ آن کاربرد دارد.",
        "createacct-realname": "نام واقعی (اختیاری)",
        "createaccountreason": "دلیل:",
        "createacct-reason": "دلیل",
        "createacct-reason-ph": "چرا شما حساب دیگری می‌سازید؟",
+       "createacct-reason-help": "پیامی که در سياههٔ ایجاد حساب نمایش داده می‌شود",
        "createacct-submit": "حسابتان را بسازید",
        "createacct-another-submit": "ایجاد حساب کاربری",
+       "createacct-continue-submit": "ادامهٔ ايجاد حساب",
+       "createacct-another-continue-submit": "ادامهٔ ايجاد حساب",
        "createacct-benefit-heading": "{{SITENAME}} توسط افرادی مانند شما ساخته شده است",
        "createacct-benefit-body1": "{{PLURAL:$1|ویرایش}}",
        "createacct-benefit-body2": "{{PLURAL:$1|صفحه}}",
        "nocookiesnew": "حساب کاربری ایجاد شد، اما شما وارد سامانه نشدید.\n{{SITENAME}} برای ورود کاربران به سامانه از کوکی استفاده می‌کند.\nشما کوکی‌ها را از کار انداخته‌اید.\nلطفاً کوکی‌ها را به کار بیندازید، و سپس با نام کاربری و گذرواژهٔ جدیدتان به سامانه وارد شوید.",
        "nocookieslogin": "{{SITENAME}} برای ورود کاربران به سامانه از کوکی‌ها استفاده می‌کند.\nشما کوکی‌ها را از کار انداخته‌اید.\nلطفاً کوکی‌ها را به کار بیندازید و دوباره امتحان کنید.",
        "nocookiesfornew": "حساب کاربری ساخته نشد، زیرا نتوانستیم منبع آن را تأیید کنیم.\nمطمئن شوید که کوکی‌ها فعال هستند، آن‌گاه صفحه را از نو بارگیری کنید و دوباره امتحان کنید.",
+       "createacct-loginerror": "حساب با موفقيت ايجاد شد، ليکن امکان ورود خودکار شما وجود ندارد. لطفاً با [[Special:UserLogin|manual login]] ادامه دهيد.",
        "noname": "شما نام کاربری معتبری مشخص نکرده‌اید.",
        "loginsuccesstitle": "ورود به سامانه",
        "loginsuccess": "'''شما اکنون با نام «$1» به {{SITENAME}} وارد شده‌اید.'''",
        "createacct-another-realname-tip": "نام واقعی اختیاری است.\nاگر آن را وارد کنید هنگام ارجاع به آثارتان و انتساب آن‌ها به شما از نام واقعی‌تان استفاده خواهد شد.",
        "pt-login": "ورود",
        "pt-login-button": "ورود به سامانه",
+       "pt-login-continue-button": "ادامه دادن ورود به سامانه",
        "pt-createaccount": "ایجاد حساب کاربری",
        "pt-userlogout": "خروج",
        "php-mail-error-unknown": "خطای ناشناخته در تابع  mail()‎ پی‌اچ‌پی",
        "botpasswords-invalid-name": "نام کاربری مشخص شده دارای جداکنندهٔ گذرواژهٔ رباتی نیست (\"$1\").",
        "botpasswords-not-exist": "کاربر «$1» گذرواژهٔ رباتی نام‌دهی شدهٔ «$2» ندارد.",
        "resetpass_forbidden": "نمی‌توان گذرواژه‌ها را تغییر داد",
+       "resetpass_forbidden-reason": "نمی‌توانید گذرواژه‌ها را تغییر داد: $1",
        "resetpass-no-info": "برای دسترسی مستقیم به این صفحه شما باید به سامانه وارد شده باشید.",
        "resetpass-submit-loggedin": "تغییر گذرواژه",
        "resetpass-submit-cancel": "لغو",
        "resetpass-temp-password": "گذرواژهٔ موقت:",
        "resetpass-abort-generic": "تغییر گذرواژه به دست یکی از افزونه‌ها لغو شده است.",
        "resetpass-expired": "رمز عبور شما منقضی شده‌است. لطفاً برای ورود رمز عبور جدیدی را تنظیم کنید.",
-       "resetpass-expired-soft": "رمز عبور شما منقضی شده‌است، و نیاز به تنظیم مجدد دارد. لطفاً اکنون رمز عبور جدیدی را انتخاب کنید، یا برای تنظیم مجدد آن بعدآً، دکمه \"{{int:resetpass-submit-cancel}}\" را کلیک کنید.",
-       "resetpass-validity-soft": "گذرواهٔ شما صحیح نیست: $1\n\nلطفاً یک گذرواژهٔ تازه الآن انتخاب کنید یا بر «{{int:resetpass-submit-cancel}}» کلیک کنید که دوباره آن را بعداً انتخاب کنید.",
+       "resetpass-expired-soft": "رمز عبور شما منقضی شده‌است، و نیاز به تنظیم مجدد دارد. لطفاً اکنون رمز عبور جدیدی را انتخاب کنید، یا برای تنظیم مجدد آن بعدآً، دکمه \"{{int:authprovider-resetpass-skip-label}}\" را کلیک کنید.",
+       "resetpass-validity-soft": "گذرواهٔ شما صحیح نیست: $1\n\nلطفاً یک گذرواژهٔ تازه الآن انتخاب کنید یا بر «{{int:authprovider-resetpass-skip-label}}» کلیک کنید که دوباره آن را بعداً انتخاب کنید.",
        "passwordreset": "بازنشانی گذرواژه",
        "passwordreset-text-one": "برای بازنشانی گذرواژه‌تان این فرم را کامل کنید.",
        "passwordreset-text-many": "{{PLURAL:$1|برای دریافت یک گذرواژهٔ موقت از طریق ایمیل، یکی از خانه‌ها را پر کنید.}}",
        "passwordreset-emailsentusername": "اگر نشانی پست الکترونیکی مرتبطی موجود باشد، یک نامه برای بازنشانی گذرواژه به آن ارسال خواهد شد.",
        "passwordreset-emailsent-capture": "یک ایمیل بازنشانی که در پایین نمایش داده شده، فرستاده شده است.",
        "passwordreset-emailerror-capture": "ایمیل بازنشانی، که در زیر نمایش داده شده، ایجاد شد، ولی ارسال آن به {{GENDER:$2|کاربر}} موفقیت‌آمیز نبود: $1",
+       "passwordreset-emailsent-capture2": "{{PLURAL:$1|نامهٔ|نامهٔ}} بازنشانی گذرواژه ارسال شد. در زير $1 نام کاربری و گذرواژه در حال نمایش است.",
+       "passwordreset-emailerror-capture2": "ارسال ناموفق نامه به $2: $1\nدر زير $3 نام کاربری و گذرواژه در حال نمایش است",
+       "passwordreset-nocaller": "فراخواننده می‌بايست مشخص شده باشد",
+       "passwordreset-nosuchcaller": "اين فراخواننده وجود ندارد:$1",
+       "passwordreset-ignored": "به بازنشانی گذرواژه پرداخته نشد. آیا ممکن است که هيچ مهياکننده‌ای برای این کار تنظيم نشده باشد؟",
+       "passwordreset-invalideamil": "آدرس ایمیل نامعتبر",
+       "passwordreset-nodata": "یک نام کاربری و یا یک آدرس ايميل، هيچکدام ارائه نشده",
        "changeemail": "تغییر یا حذف نشانی ایمیل",
        "changeemail-header": "برای تغییر ایمیلتان این فرم را کامل کنید. برای حذف ایملیتان کافی است بخش ایمیل را خالی رها کنید و فرم را ارسال کنید.",
        "changeemail-passwordrequired": "برای تائید این تغییر باید گذرواژه‌تان را وارد کنید.",
        "minoredit": "این ویرایش، جزئی است",
        "watchthis": "پی‌گیری این صفحه",
        "savearticle": "صفحه ذخیره شود",
+       "savechanges": "ذخیرهٔ تغییرات",
        "publishpage": "انتشار صفحه",
+       "publishchanges": "انتشار تغییرات",
        "preview": "پیش‌نمایش",
        "showpreview": "پیش‌نمایش",
        "showdiff": "نمایش تغییرات",
        "accmailtext": "یک گذرواژهٔ تصادفی برای [[User talk:$1|$1]] به $2 فرستاده شد. می‌توان آن را از صفحهٔ ''[[Special:ChangePassword|تغییر گذرواژه]]'' که هنگام ثبت ورود نمایش می‌یابد تغییر داد.",
        "newarticle": "(تازه)",
        "newarticletext": "شما پیوندی را دنبال کرده‌اید و به صفحه‌ای رسیده‌اید که هنوز وجود ندارد.\nبرای ایجاد صفحه، در مستطیل زیر شروع به نوشتن کنید (برای اطلاعات بیشتر به [$1 صفحهٔ راهنما] مراجعه کنید).\nاگر به اشتباه اینجا آمده‌اید، دکمهٔ «بازگشت» مرورگرتان را بزنید.",
-       "anontalkpagetext": "----''این صفحهٔ بحث برای کاربر گمنامی است که هنوز حسابی درست نکرده است یا از آن استفاده نمی‌کند.\nبنا بر این برای شناسایی‌اش مجبوریم از نشانی آی‌پی عددی استفاده کنیم.\nچنین نشانی‌های آی‌پی ممکن است توسط چندین کاربر به شکل مشترک استفاده شود.\nاگر شما کاربر گمنامی هستید و تصور می‌کنید اظهار نظرات نامربوط به شما صورت گرفته است، لطفاً برای پیشگیری از اشتباه گرفته شدن با کاربران گمنام دیگر در آینده [[Special:CreateAccount|حسابی ایجاد کنید]] یا [[Special:UserLogin|به سامانه وارد شوید]].''",
+       "anontalkpagetext": "----<em>این صفحهٔ بحث برای کاربر گمنامی است که هنوز حسابی درست نکرده است یا از آن استفاده نمی‌کند.\nبنا بر این برای شناسایی‌اش مجبوریم از نشانی آی‌پی عددی استفاده کنیم.</em>\nچنین نشانی‌های آی‌پی ممکن است توسط چندین کاربر به شکل مشترک استفاده شود.\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}}|این عنوان را جستجو کنید]]،\nیا <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} سیاهه‌های مرتبط را بگردید]</span> ولی شما اجازه ایجاد این صفحه را ندارید.",
        "missing-revision": "ویرایش #$1 از صفحهٔ «{{FULLPAGENAME}}» موجود نیست.\n\nمعمولاً در اثر پیوند به تاریخچهٔ به‌روز نشدهٔ صفحهٔ حذف شده است.\nمی‌توانید جزئیات بیشتر را در [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} سیاههٔ حذف] بیابید.",
        "userpage-userdoesnotexist": "حساب کاربر «<nowiki>$1</nowiki>» ثبت نشده‌است.\nلطفاً مطمئن شوید که می‌خواهید این صفحه را ایجاد یا ویرایش کنید.",
        "userpage-userdoesnotexist-view": "حساب کاربری «$1» ثبت نشده‌است.",
        "blocked-notice-logextract": "دسترسی این کاربر در حال حاضر بسته است.\nآخرین مورد سیاهه قطع دسترسی در زیر آمده‌است:",
-       "clearyourcache": "<strong>Ù\86کتÙ\87:</strong> Ù¾Ø³ Ø§Ø² Ø°Ø®Û\8cرÙ\87 Ú©Ø±Ø¯Ù\86 Ù\85Ù\85Ú©Ù\86 Ø§Ø³Øª Ø¨Ø±Ø§Û\8c Ø¯Û\8cدÙ\86 ØªØºÛ\8cÛ\8cرات Ù\86Û\8cاز Ø¨Ø§Ø´Ø¯ Ú©Ù\87 Ø­Ø§Ù\81ظÙ\87Ù\94 Ù\86Ù\87اÙ\86Û\8c Ù\85رÙ\88رگر Ø®Ù\88د Ø±Ø§ Ù¾Ø§Ú© Ú©Ù\86Û\8cد.\n*<strong>Ù\81اÛ\8cرÙ\81اکس / Ø³Ø§Ù\81ارÛ\8c:</strong> Ú©Ù\84Û\8cد <em>Shift</em> Ø±Ø§ Ù\86Ú¯Ù\87 Ø¯Ø§Ø±Û\8cد Ù\88 Ø±Ù\88Û\8c Ø¯Ú©Ù\85Ù\87Ù\94 <em>Reload</em> Ú©Ù\84Û\8cÚ© Ú©Ù\86Û\8cدØ\8c Û\8cا Ú©Ù\84Û\8cدâ\80\8cÙ\87اÛ\8c <em>Ctrl-F5</em> Û\8cا <em>Ctrl-R</em> Ø±Ø§ Ø¨Ø§ Ù\87Ù\85 Ù\81شار Ø¯Ù\87Û\8cد (در Ø±Ø§Û\8cاÙ\86Ù\87â\80\8cÙ\87اÛ\8c Ø§Ù¾Ù\84 Ù\85Ú©Û\8cÙ\86تاش Ú©Ù\84Û\8cدâ\80\8cÙ\87اÛ\8c <em>â\8c\98-R</em>)\n*<strong>Ú¯Ù\88Ú¯Ù\84 Ú©Ø±Ù\88Ù\85:</strong> Ú©Ù\84Û\8cدÙ\87اÛ\8c <em>Ctrl+Shift+R</em> Ø±Ø§ Ø¨Ø§ Ù\87Ù\85 Ù\81شار Ø¯Ù\87Û\8cد (در Ø±Ø§Û\8cاÙ\86Ù\87â\80\8cÙ\87اÛ\8c Ø§Ù¾Ù\84 Ù\85Ú©Û\8cÙ\86تاش Ú©Ù\84Û\8cدâ\80\8cÙ\87اÛ\8c <em>â\8c\98-Shift-R</em>)\n*<strong>اÛ\8cÙ\86ترÙ\86ت Ø§Ú©Ø³Ù¾Ù\84Ù\88رر:</strong> Ú©Ù\84Û\8cد <em>Ctrl</em> Ø±Ø§ Ù\86Ú¯Ù\87â\80\8cدارÛ\8cد Ù\88 Ø±Ù\88Û\8c Ø¯Ú©Ù\85Ù\87Ù\94 <em>Refresh</em> Ú©Ù\84Û\8cÚ© Ú©Ù\86Û\8cدØ\8c Û\8cا Ú©Ù\84Û\8cدâ\80\8cÙ\87اÛ\8c <em>Ctrl-F5</em> Ø±Ø§ Ø¨Ø§ Ù\87Ù\85 Ù\81شار Ø¯Ù\87Û\8cد\n*<strong>اپرا:</strong> Ø­Ø§Ù\81ظÙ\87Ù\94 Ù\86Ù\87اÙ\86Û\8c Ù\85رÙ\88رگر Ø±Ø§ Ø§Ø² Ø·Ø±Û\8cÙ\82 Ù\85Ù\86Ù\88Û\8c <em>Tools &rarr; Preferences</em> Ù¾Ø§Ú© Ú©Ù\86Û\8cد",
+       "clearyourcache": "<strong>Ù\86کتÙ\87:</strong> Ù¾Ø³ Ø§Ø² Ø°Ø®Û\8cرÙ\87 Ú©Ø±Ø¯Ù\86 Ù\85Ù\85Ú©Ù\86 Ø§Ø³Øª Ø¨Ø±Ø§Û\8c Ø¯Û\8cدÙ\86 ØªØºÛ\8cÛ\8cرات Ù\86Û\8cاز Ø¨Ø§Ø´Ø¯ Ú©Ù\87 Ø­Ø§Ù\81ظÙ\87Ù\94 Ù\86Ù\87اÙ\86Û\8c Ù\85رÙ\88رگر Ø®Ù\88د Ø±Ø§ Ù¾Ø§Ú© Ú©Ù\86Û\8cد.\n*<strong>Ù\81اÛ\8cرÙ\81اکس / Ø³Ø§Ù\81ارÛ\8c:</strong> Ú©Ù\84Û\8cد <em>Shift</em> Ø±Ø§ Ù\86Ú¯Ù\87 Ø¯Ø§Ø±Û\8cد Ù\88 Ø±Ù\88Û\8c Ø¯Ú©Ù\85Ù\87Ù\94 <em>Reload</em> Ú©Ù\84Û\8cÚ© Ú©Ù\86Û\8cدØ\8c Û\8cا Ú©Ù\84Û\8cدâ\80\8cÙ\87اÛ\8c <em>Ctrl-F5</em> Û\8cا <em>Ctrl-R</em> Ø±Ø§ Ø¨Ø§ Ù\87Ù\85 Ù\81شار Ø¯Ù\87Û\8cد (در Ø±Ø§Û\8cاÙ\86Ù\87â\80\8cÙ\87اÛ\8c Ø§Ù¾Ù\84 Ù\85Ú©Û\8cÙ\86تاش Ú©Ù\84Û\8cدâ\80\8cÙ\87اÛ\8c <em>â\8c\98-R</em>)\n*<strong>Ú¯Ù\88Ú¯Ù\84 Ú©Ø±Ù\88Ù\85:</strong> Ú©Ù\84Û\8cدÙ\87اÛ\8c <em>Ctrl+Shift+R</em> Ø±Ø§ Ø¨Ø§ Ù\87Ù\85 Ù\81شار Ø¯Ù\87Û\8cد (در Ø±Ø§Û\8cاÙ\86Ù\87â\80\8cÙ\87اÛ\8c Ø§Ù¾Ù\84 Ù\85Ú©Û\8cÙ\86تاش Ú©Ù\84Û\8cدâ\80\8cÙ\87اÛ\8c <em>â\8c\98-Shift-R</em>)\n*<strong>اÛ\8cÙ\86ترÙ\86ت Ø§Ú©Ø³Ù¾Ù\84Ù\88رر:</strong> Ú©Ù\84Û\8cد <em>Ctrl</em> Ø±Ø§ Ù\86Ú¯Ù\87â\80\8cدارÛ\8cد Ù\88 Ø±Ù\88Û\8c Ø¯Ú©Ù\85Ù\87Ù\94 <em>Refresh</em> Ú©Ù\84Û\8cÚ© Ú©Ù\86Û\8cدØ\8c Û\8cا Ú©Ù\84Û\8cدâ\80\8cÙ\87اÛ\8c <em>Ctrl-F5</em> Ø±Ø§ Ø¨Ø§ Ù\87Ù\85 Ù\81شار Ø¯Ù\87Û\8cد\n*<strong>اپرا:</strong> Ø¨Ø±Ù\88Û\8cد Ø¨Ù\87 <em>Menu â\86\92 Settings</em> (<em>Opera â\86\92 Preferences</em> on a Mac) and then to <em>Privacy & security â\86\92 Clear browsing data â\86\92 Cached images and files</em>.",
        "usercssyoucanpreview": "'''نکته:''' پیش از ذخیره کردن پرونده سی‌اس‌اس خود، با دکمهٔ '''{{int:showpreview}}''' آن را آزمایش کنید.",
        "userjsyoucanpreview": "'''نکته:''' پیش از ذخیره کردن پروندهٔ جاوااسکریپت خود، با دکمهٔ '''{{int:showpreview}}''' آن را آزمایش کنید.",
        "usercsspreview": "'''فراموش مکنید که شما فقط دارید پیش‌نمایش سی‌اس‌اس کاربری‌تان را می‌بینید.'''\n'''این سی‌اس‌اس هنوز ذخیره نشده‌است!'''",
        "content-model-css": "سی‌اس‌اس",
        "content-json-empty-object": "ابجکت خالی",
        "content-json-empty-array": "آرایهٔ خالی",
+       "deprecated-self-close-category": "صفحه از برچسب اچ‌تی‌ام‌ال self-closed غیرمجاز استفاده می‌کند",
+       "deprecated-self-close-category-desc": "صفحه دارای برچسب اچ‌تی‌ام‌ال self-closed است مانند <code>&lt;b/></code> یا <code>&lt;span/></code>. عملکرد این برچسب‌ها در اچ‌تی‌ام‌ال۵ تغییر می‌کند در نتیجه استفاده از آنها در ویکی‌متن منسوخ و بی‌اثر است.",
        "duplicate-args-warning": "<strong>هشدار:</strong> [[:$1]] [[:$2]] را با بیش از یک مقدار برای پارامتر «$3» صدا می‌زند. فقط آخرین مقدار داده شده استفاده خواهد شد.",
        "duplicate-args-category": "صفحه‌های دارای آرگومان تکراری در فراخوانی الگو",
        "duplicate-args-category-desc": "صفحاتی که دارای آرگومان تکراری هستند مانند، <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> یا <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "rev-suppressed-unhide-diff": "یکی از نسخه‌های این تفاوت '''فرونشانی شده‌است'''.\nممکن است جزئیاتی در [{{fullurl:{{#Special:Log}}/suppress|page=سیاههٔ فرونشانی{{FULLPAGENAMEE}}}}] موجود باشد.\nشما کماکان می‌توانید در صورت تمایل [$1 این تفاوت را ببینید].",
        "rev-deleted-diff-view": "یکی از نسخه‌های این تفاوت '''حذف شده‌است'''.\nشما می‌توانید این تفاوت را ببینید؛ ممکن است جزئیاتی در [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} سیاههٔ حذف] موجود باشد.",
        "rev-suppressed-diff-view": "یکی از نسخه‌های این تفاوت '''فرونشانی شده‌است'''.\nشما می‌توانید این تفاوت را ببینید؛ ممکن است جزئیاتی در [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} سیاههٔ فرونشانی] موجود باشد.",
-       "rev-delundel": "نمایش/نهفتن",
+       "rev-delundel": "تغییر پیدایی",
        "rev-showdeleted": "نمایش",
        "revisiondelete": "حذف/احیای نسخه‌ها",
        "revdelete-nooldid-title": "نسخهٔ هدف نامجاز",
        "right-override-export-depth": "برون‌بری صفحه‌ها شامل صفحه‌های پیوند شده تا عمق ۵",
        "right-sendemail": "ارسال ایمیل به دیگر کاربران",
        "right-passwordreset": "مشاهدهٔ نامه‌های تنظیم مجدد گذرواژه",
-       "right-managechangetags": "اÛ\8cجاد Ù\88 Ø­Ø°Ù\81 [[Special:Tags|برÚ\86سبâ\80\8cÙ\87ا]] Ø§Ø² Ù¾Ø§Û\8cگاÙ\87 Ø¯Ø§Ø¯Ù\87",
+       "right-managechangetags": "اÛ\8cجاد Ù\88 ØºÛ\8cرÙ\81عاÙ\84 Ú©Ø±Ø¯Ù\86 [[Special:Tags|برÚ\86سبâ\80\8cÙ\87ا]]",
        "right-applychangetags": "تائید [[Special:Tags|برچسب]] بر روی تغییرات یک نفر",
        "right-changetags": "افزودن یا حذف [[Special:Tags|برچسب]] قراردادی بر روی نسخه یا سیاهه ورودی‌ها",
        "right-deletechangetags": "حذف [[Special:Tags|برچسب‌ها]] از پایگاه داده",
        "rightslogtext": "این سیاههٔ تغییرات اختیارات کاربر است.",
        "action-read": "خواندن این صفحه",
        "action-edit": "ویرایش این صفحه",
-       "action-createpage": "ایجاد صفحه",
-       "action-createtalk": "اÛ\8cجاد ØµÙ\81Ø­Ù\87â\80\8cÙ\87اÛ\8c بحث",
+       "action-createpage": "اÛ\8cجاد Ø§Û\8cÙ\86 ØµÙ\81Ø­Ù\87",
+       "action-createtalk": "اÛ\8cجاد Ø§Û\8cÙ\86 ØµÙ\81Ø­Ù\87 بحث",
        "action-createaccount": "ایجاد این حساب کاربری",
        "action-autocreateaccount": "حساب کاربری خارجی به صورت خودکار ساخته شد",
        "action-history": "مشاهده تاریخچه این صفحه",
        "recentchanges-page-added-to-category": "[[:$1]] به رده اضافه شد",
        "recentchanges-page-added-to-category-bundled": "[[:$1]] به رده افزوده شد، [[Special:WhatLinksHere/$1|این صفحه در صفحه‌های دیگر قرار گرفته است.]]",
        "recentchanges-page-removed-from-category": "[[:$1]] از رده حذف شد",
-       "recentchanges-page-removed-from-category-bundled": "[[:$1]] و [[Special:WhatLinksHere/$1|{{PLURAL:$2|یک صفحه|$2 صفحه}}]] دیگر از رده حذف شدند",
+       "recentchanges-page-removed-from-category-bundled": "[[:$1]] از رده حذف شد، [[Special:WhatLinksHere/$1|این صفحه در صفحه‌های دیگر قرار گرفته است.]]",
        "autochange-username": "تغییرات خودکار مدیاویکی",
        "upload": "بارگذاری پرونده",
        "uploadbtn": "بارگذاری پرونده",
        "upload-http-error": "یک خطای اچ‌تی‌تی‌پی رخ داد: $1",
        "upload-copy-upload-invalid-domain": "بارگذاری کپی پرونده‌ها از این دامنه امکان‌پذیر نیست.",
        "upload-foreign-cant-upload": "این ویکی برای بارگذاری پرونده ها در مخزن پرونده های خارجی درخواست شده پیکربندی نشده است.",
+       "upload-foreign-cant-load-config": "خواندن تنظيمات مربوط به بارگذاری پرونده در مخزن خارجی با شکست مواجه شد",
+       "upload-dialog-disabled": "در اين ويکی، بارگذاری پرونده‌هااز طريق اين رابط کاربری غير فعال است",
        "upload-dialog-title": "بارگذاری پرونده",
        "upload-dialog-button-cancel": "لغو",
        "upload-dialog-button-done": "انجام شد",
        "apisandbox": "گودال ماسه‌بازی رابط برنامه‌نویسی",
        "apisandbox-jsonly": "برای استفاده از صفحهٔ تمرین API به جاوااسکریپت نیاز دارید.",
        "apisandbox-api-disabled": "رابط برنامه‌نویسی در این تارنما غیرفعال شده‌است.",
-       "apisandbox-intro": "از این صفحه برای آزمایش <strong>خدمات وب API مدیاویکی</strong> استفاده کنید.\nبرای جزئیات بیشتر دربارهٔ نحوهٔ استفاده از API به [[mw:API:Main page|مستندات API]] رجوع کنید. مثال: [//www.mediawiki.org/wiki/API#A_simple_example دریافت محتوای صفحهٔ اصلی]. برای دیدن مثال‌های بیشتر عملکردی را انتخاب کنید.",
+       "apisandbox-intro": "از این صفحه برای آزمایش <strong>خدمات وب API مدیاویکی</strong> استفاده کنید.\nبرای جزئیات بیشتر دربارهٔ نحوهٔ استفاده از API به [[mw:API:Main page|مستندات API]] رجوع کنید. مثال: [https://www.mediawiki.org/wiki/API#A_simple_example دریافت محتوای صفحهٔ اصلی]. برای دیدن مثال‌های بیشتر عملکردی را انتخاب کنید.",
        "apisandbox-fullscreen": "گسترش پنل",
        "apisandbox-fullscreen-tooltip": "بازکردن صفحهٔ تمرین برای پر کردن پنجرهٔ مرورگر.",
        "apisandbox-unfullscreen": "نمایش صفحه",
        "trackingcategories-msg": "ردهٔ ردیابی",
        "trackingcategories-name": "نام پیام",
        "trackingcategories-desc": "معیارهای گنجایش رده",
+       "restricted-displaytitle-ignored": "صفحه‌ها باعنوان نمایشی نادیده‌گرفته‌شده",
+       "restricted-displaytitle-ignored-desc": "دراين صفحه <code><nowiki>{{DISPLAYTITLE}}</nowiki></code> بی‌اهميت تلقی گرديده‌است، چراکه با عنوان اصلی صفحه یکي نيست.",
        "noindex-category-desc": "این صفحه توسط ربات‌ها فهرست‌نشده‌است به این دلیل که واژه جادویی <code><nowiki>__NOINDEX__</nowiki></code> در آن یا در فضای که پرچم مجاز است دارد.",
        "index-category-desc": "این صفحه <code><nowiki>__INDEX__</nowiki></code> درونش دارد (و در فضای نامی است که پرچم مجاز است)، و به این دلیل توسط ربات مجاز است که به‌صورت عادی نباید می‌شد.",
        "post-expand-template-inclusion-category-desc": "پس از گسترش همهٔ الگوها، حجم صفحه بزرگتر از <code>$wgMaxArticleSize</code> است بنابراین بعضی از الگو گسترش نیافته‌اند.",
        "rollbacklinkcount": "واگردانی $1 ویرایش",
        "rollbacklinkcount-morethan": "واگردانی بیش از $1 ویرایش",
        "rollbackfailed": "واگردانی نشد",
+       "rollback-missingparam": "فقدان پارامترهای ضروری در درخواست",
        "cantrollback": "نمی‌توان ویرایش را واگرداند؛\nآخرین مشارکت‌کننده تنها مؤلف این مقاله است.",
        "alreadyrolled": "واگردانی آخرین ویرایش [[:$1]] توسط [[User:$2|$2]] ([[User talk:$2|بحث]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) ممکن نیست؛\nپیش از این شخص دیگری مقاله را ویرایش یا واگردانی کرده‌است.\n\nآخرین ویرایش توسط [[User:$3|$3]] ([[User talk:$3|بحث]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]) انجام شده‌است.",
        "editcomment": "خلاصهٔ ویرایش این بود:  <em>«$1»</em>.",
        "revertpage": "ویرایش [[Special:Contributions/$2|$2]] ([[User talk:$2|بحث]]) به آخرین تغییری که [[User:$1|$1]] انجام داده بود واگردانده شد",
        "revertpage-nouser": "ویرایش‌های انجام‌شده توسط (نام کاربری حذف شده) به آخرین ویرایش [[User:$1|$1]] واگردانی شد.",
        "rollback-success": "ویرایش‌های $1 واگردانی شد؛\nصفحه به آخرین ویرایش $2 برگردانده شد.",
+       "rollback-success-notify": "ویرایش‌های توسط $1 واگردانی شد؛\nبه آخرین نسخه توسط $2 بازگردانی شد. [$3 نمایش تغییرات]",
        "sessionfailure-title": "خطای نشست کاربری",
        "sessionfailure": "به نظر می‌رسد مشکلی در مورد نشست کاربری شما وجود دارد؛\nعمل درخواست شده در اقدامی پیشگیرانه در برابر ربوده‌شدن اطلاعات نشست کاربری، لغو شد.\nلطفاً دکمهٔ «بازگشت» را در مرورگر خود بفشارید و صفحه‌ای که از آن به اینجا رسیده‌اید را دوباره فراخوانی کنید، سپس مجدداً سعی کنید.",
        "changecontentmodel": "ویرایش نمونه محتوای یک صفحه",
        "changecontentmodel-success-text": "نوع محتوی [[:$1]]  تغییر یافت",
        "changecontentmodel-cannot-convert": "محتوی در [[:$1]] نمی‌تواند به گونه‌ای از $2 تبدیل شود.",
        "changecontentmodel-nodirectediting": "نمونه محتوی $1 امکان ویرایش مستقیم را پشتیبانی نمی‌کند",
+       "changecontentmodel-emptymodels-title": "هيچ مدل محتوایی در دسترس نيست",
+       "changecontentmodel-emptymodels-text": "محتوای موجود در [[:$1]] به هيچ نوعی نمی‌تواند تبديل شود.",
        "log-name-contentmodel": "سیاهه تغییر نمونه محتوی",
        "log-description-contentmodel": "رویدادهای مرتبط با نمونه محتوی‌های یک صفحه",
        "logentry-contentmodel-new": "صفحهٔ $3 با استفاده از مدل‌های محتوایی غیر پیش‌فرض «$5» توسط $1 {{GENDER:$2|ساخته شد}}",
        "sp-contributions-username": "نشانی آی‌پی یا نام کاربری:",
        "sp-contributions-toponly": "فقط ویرایش‌هایی که آخرین نسخه‌اند نمایش داده شود",
        "sp-contributions-newonly": "فقط نمایش ویرایش‌هایی که ایجاد صفحه هستند",
+       "sp-contributions-hideminor": "پنهان کردن ویرایش‌های جزئی",
        "sp-contributions-submit": "جستجو",
        "whatlinkshere": "پیوندها به این صفحه",
        "whatlinkshere-title": "صفحه‌هایی که به «$1» پیوند دارند",
        "whatlinkshere-prev": "{{PLURAL:$1|قبلی|$1 مورد قبلی}}",
        "whatlinkshere-next": "{{PLURAL:$1|بعدی|$1 مورد بعدی}}",
        "whatlinkshere-links": "→ پیوندها",
-       "whatlinkshere-hideredirs": "$1 تغییرمسیر",
-       "whatlinkshere-hidetrans": "$1 تراگنجانش‌ها",
+       "whatlinkshere-hideredirs": "$1 تغییر مسیر",
+       "whatlinkshere-hidetrans": "$1 تراگنجانش",
        "whatlinkshere-hidelinks": "$1 پیوند",
-       "whatlinkshere-hideimages": "$1 پیوندهای پرونده",
+       "whatlinkshere-hideimages": "$1 پیوند پرونده",
        "whatlinkshere-filters": "پالایه‌ها",
        "whatlinkshere-submit": "برو",
        "autoblockid": "شناسه قطع دسترسی خودکار #$1",
        "allmessagesname": "نام",
        "allmessagesdefault": "متن پیش‌فرض پیغام",
        "allmessagescurrent": "متن کنونی پیغام",
-       "allmessagestext": "این فهرستی از پیغام‌های سامانه‌ای موجود در فضای نام مدیاویکی است.\nچنانچه مایل به مشارکت در محلی‌سازی مدیاویکی هستید لطفاً [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation محلی‌سازی مدیاویکی] و [//translatewiki.net translatewiki.net] را ببینید.",
+       "allmessagestext": "این فهرستی از پیغام‌های سامانه‌ای موجود در فضای نام مدیاویکی است.\nچنانچه مایل به مشارکت در محلی‌سازی مدیاویکی هستید لطفاً [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation محلی‌سازی مدیاویکی] و [https://translatewiki.net translatewiki.net] را ببینید.",
        "allmessagesnotsupportedDB": "این صفحه نمی‌تواند استفاده شود به این دلیل که <bdi>'''$wgUseDatabaseMessages'''</bdi> غیرفعال شده‌است.",
        "allmessages-filter-legend": "پالایه",
        "allmessages-filter": "پالودن بر اساس وضعیت شخصی‌سازی:",
        "invalidateemail": "لغو تأیید نشانی ایمیل",
        "notificationemail_subject_changed": "نشانی ایمیل ثبت شدهٔ {{SITENAME}} تغییر یافته است",
        "notificationemail_subject_removed": "نشانی ایمیل ثبت شدهٔ {{SITENAME}} حذف شده است",
+       "notificationemail_body_changed": "کسی، شايد خود شما، از آدرس اينترنتی $1، آدرس ايميل حساب $2 در {{SITENAME}} را به $3 تغيير داده است.\n\nاگر آن شخص شما نبوده‌ايد، فوراً با یک مدير سایت تماس بگيريد.",
+       "notificationemail_body_removed": "کسی، شايد خود شما، از آدرس اينترنتی $1، آدرس ايميل حساب $2 در {{SITENAME}} را حذف کرده است.\n\nاگر آن شخص شما نبوده‌ايد، فوراً با یک مدير سایت تماس بگيريد.",
        "scarytranscludedisabled": "[تراگنجانش بین‌ویکیانه فعال نیست]",
        "scarytranscludefailed": "[فراخوانی الگو برای $1 میسر نشد]",
        "scarytranscludefailed-httpstatus": "[فراخوانی الگو برای $1 میسر نشد: خطای اچ‌تی‌تی‌پی $2]",
        "confirm-watch-top": "این صفحه به فهرست پی‌گیری‌های شما افزوده شود؟",
        "confirm-unwatch-button": "تأیید",
        "confirm-unwatch-top": "این صفحه از فهرست پی‌گیری‌های شما حذف شود؟",
+       "confirm-rollback-button": "باشد",
+       "confirm-rollback-top": "خنثی‌سازی ویرایش‌های این صفحه؟",
        "semicolon-separator": "؛&#32;",
        "comma-separator": "،&#32;",
        "percent": "$1٪",
        "timezone-local": "محلی",
        "duplicate-defaultsort": "هشدار: ترتیب پیش‌فرض «$2» ترتیب پیش‌فرض قبلی «$1» را باطل می‌کند.",
        "duplicate-displaytitle": "<strong>هشدار:</strong> نمایش عنوان \" $2 \"باعث ابطال پیش نمایش عنوان\" $1 \" می‌شود.",
+       "restricted-displaytitle": "<strong>هشدار:</strong> از آنجايي که عنوان نمایشی «$1» با عنوان اصلی صفحه یکی نبود، مورد اغماز قرار گرفت.",
        "invalid-indicator-name": "<strong>خطا:</strong>ویژگی های شاخص‌های وضعیت صفحهٔ <code>name</code> نباید خالی باشند.",
        "version": "نسخه",
        "version-extensions": "افزونه‌های نصب‌شده",
        "api-error-nomodule": "خطای داخلی: پودمان بارگذاری تنظیم نشده‌است.",
        "api-error-ok-but-empty": "خطای داخلی : پاسخی از سرور دریافت نشد.",
        "api-error-overwrite": "جای نوشتن یک پرونده موجود مجاز نیست.",
+       "api-error-ratelimited": "شما سعی داريد، در بازه زمانی کوتاهی، بيشتر از تعدادی که اين ويکی اجازه داده‌است پرونده بارگذاری کنيد.\nلطفاً چند دقيقه بعد مجدداً تلاش نماييد.",
        "api-error-stashfailed": "خطای داخلی: کارساز نمی‌تواند پرونده موقت را ذخیره کند.",
        "api-error-publishfailed": "خطای داخلی: کارساز نمی‌تواند پرونده موقت را ذخیره کند.",
        "api-error-stasherror": "هنگام انتقال پوشه برای ذخیره خطایی بود.",
        "api-error-unknownerror": "خطای ناشناخته: «$1».",
        "api-error-uploaddisabled": "بارگذاری در این ویکی غیرفعال است.",
        "api-error-verification-error": "ممکن است پرونده آسیب دیده باشد، یا دارای پسوند نادرست باشد.",
+       "api-error-was-deleted": "پرونده‌ای با همين نام قبلاً بارگذاری و متعاقباً حذف شده است.",
        "duration-seconds": "$1 ثانیه",
        "duration-minutes": "$1 دقیقه",
        "duration-hours": "$1 ساعت",
        "mw-widgets-dateinput-no-date": "هیچ داده‌ای انتخاب نشده",
        "mw-widgets-titleinput-description-new-page": "این صفحه هنوز وجود ندارد",
        "mw-widgets-titleinput-description-redirect": "تغییر مسیر به $1",
-       "api-error-blacklisted": "لطفاً یک عنوان توصیفی متفاوت انتخاب کنید.",
        "sessionmanager-tie": "نمی‌توان چندین نوع درخواست هویت‌سنجی را ترکیب کرد: $1.",
        "sessionprovider-generic": "$1 فصل",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "فصل‌های کوکی‌محور",
        "log-action-filter-newusers": "نوع ایجاد حساب",
        "log-action-filter-patrol": "نوع گشت:",
        "log-action-filter-protect": "نوع محافظت",
-       "log-action-filter-rights": "روش تغییر صحیح",
-       "log-action-filter-suppress": "روش سرکوب",
+       "log-action-filter-rights": "روش تغییر صحیح:",
+       "log-action-filter-suppress": "روش سرکوب:",
        "log-action-filter-upload": "نوع بارگذاری",
        "log-action-filter-all": "همه",
        "log-action-filter-block-block": "بستن",
        "log-action-filter-delete-event": "حذف سیاهه",
        "log-action-filter-delete-revision": "حذف ویرایش",
        "log-action-filter-import-interwiki": "ورودی ترانسویکی",
+       "log-action-filter-import-upload": "درون‌ریزی به کمک بارگذاری XML",
        "log-action-filter-managetags-create": "ایجاد تگ",
        "log-action-filter-managetags-delete": "حذف کردن تگ",
        "log-action-filter-managetags-activate": "فعالسازی تگ",
        "log-action-filter-suppress-block": "مخفی‌سازی کاربر با بستن",
        "log-action-filter-suppress-reblock": "مخفی‌سازی کاربر با بستن مجدد",
        "log-action-filter-upload-upload": "بارگذاری جدید",
-       "log-action-filter-upload-overwrite": "بارگذاری دوباره"
+       "log-action-filter-upload-overwrite": "بارگذاری دوباره",
+       "authmanager-authn-not-in-progress": "ارزیابی ورود در جريان نيست یا اطلاعات جلسه کاری از بين رفته است. لطفاً دوباره از ابتدا شروع کنيد.",
+       "authmanager-authn-no-primary": "اعتبارسنجی اطلاعات ارائه شده جهت ورود ميسر نيست",
+       "authmanager-authn-no-local-user": "اطلاعات ورود ارائه شده با هيچ کاربری در اين ويکی مرتبط نيست",
+       "authmanager-authn-no-local-user-link": "اطلاعات اعتبارسنجی ارائه شده معتبرند، ليکن با هيچ کاربری در اين ويکی مرتبط نشده‌اند. از طريق ديگری وارد شويد و یا یک حساب جديد بسازيد. شما امکان اتصال اطلاعات اعتبار‌سنجی قبلی را با آن حساب خواهيد داشت.",
+       "authmanager-authn-autocreate-failed": "ايجاد خودکار یک حساب بومی با شکست مواجه شد:$1",
+       "authmanager-change-not-supported": "تغییر پشتیبانی از اعتبارنامه امکان‌پذیر نیست، در صورتی که هیچ چیز از آنها استفاده نمی‌کند.",
+       "authmanager-create-disabled": "قابلیت ایجاد حساب غیرفعال است",
+       "authmanager-create-from-login": "برای ايجاد حساب، قسمت‌های زير را تکميل کنيد.",
+       "authmanager-create-not-in-progress": "ايجاد حساب در جريان نيست یا اطلاعات جلسه کاری از بين رفته است. لطفاً دوباره از ابتدا شروع کنيد.",
+       "authmanager-create-no-primary": "اطلاعات اعتبارسنجی ارائه شده نمی‌تواند جهت ايجاد حساب بکار رود.",
+       "authmanager-link-no-primary": "اطلاعات اعتبارسنجی ارائه شده نمی‌تواند جهت مرتبط کردن حساب بکار رود.",
+       "authmanager-link-not-in-progress": "مرتبط کردن حساب در جريان نيست یا اطلاعات جلسه کاری از بين رفته است. لطفاً دوباره از ابتدا شروع کنيد.",
+       "authmanager-authplugin-setpass-failed-title": "تغییر گذرواژه ناموفق بود",
+       "authmanager-authplugin-setpass-failed-message": "افزونهٔ اعتبارسنجی، تغيير گذزواژه را مردود دانست",
+       "authmanager-authplugin-create-fail": "افزونهٔ اعتبارسنجی، ايجاد حساب را مردود دانست",
+       "authmanager-authplugin-setpass-denied": "افزونهٔ اعتبارسنجی اجازهٔ تغيير گذرواژه را نمی‌دهد",
+       "authmanager-authplugin-setpass-bad-domain": "دامنه نامعتبر است.",
+       "authmanager-autocreate-noperm": "ایجاد حساب خودکار مجاز نیست.",
+       "authmanager-autocreate-exception": "ایجاد حساب کاربری به خاطر خطاهای قبلی به طور موقت غیرفعال است.",
+       "authmanager-userdoesnotexist": "حساب کاربری «$1» ثبت نشده‌است.",
+       "authmanager-userlogin-remembermypassword-help": "اينکه گذرواژه می‌بایست به مدتی بيش از طول جلسه به خاطر سپرده شود",
+       "authmanager-username-help": "نام کاربری جهت ورود",
+       "authmanager-password-help": "گذرواژه جهت ورود",
+       "authmanager-domain-help": "دامنه برای احراز هویت خارجی.",
+       "authmanager-retype-help": "تکراد مجدد گذرواژه جهت تأييد",
+       "authmanager-email-label": "ایمیل",
+       "authmanager-email-help": "آدرس ایمیل",
+       "authmanager-realname-label": "نام واقعی",
+       "authmanager-realname-help": "نام واقعی کاربر",
+       "authmanager-provider-password": "احراز هويت بر پايهٔ گذرواژه",
+       "authmanager-provider-password-domain": "احراز هويت بر پايهٔ دامنه و گذرواژه",
+       "authmanager-provider-temporarypassword": "گذرواژهٔ موقت",
+       "authprovider-confirmlink-message": "طبق تلاش‌های اخير شما جهت ورود، حسابهای زير می‌توتنند با حساب ويکی شما پيوند بخورند. پيوند آنها شما را قادر می‌سازد تا از طریق آنها به سامانه وارد شويد. لطفاً انتخاب کنيد که کداميک از آنها می‌بايست پيوند داده شوند.",
+       "authprovider-confirmlink-request-label": "حساب‌هایي که می‌بایست پيوند داده شوند",
+       "authprovider-confirmlink-success-line": "$1 با موفقيت پيوند خورد.",
+       "authprovider-confirmlink-failed": "پيوند حسابها به طور کامل انجام نشد:$1",
+       "authprovider-confirmlink-ok-help": "پس از نمايش پيامهای عدم موفقيت پيوند زدن همچنان ادامه بده.",
+       "authprovider-resetpass-skip-label": "رها کردن",
+       "authprovider-resetpass-skip-help": "از خير تغيير گذرواژه بگذر",
+       "authform-nosession-login": "احراز هويت موفقيت‌آميز بود، ليکن مرورگرشما نمی‌تواند وارد شدن شما را «به خاطر بسپارد».\n\n$1",
+       "authform-nosession-signup": "حساب کاربری ساخته شد، ليکن مرورگرشما نمی‌تواند وارد شدن شما را «به خاطر بسپارد».\n\n$1",
+       "authform-newtoken": "فقدان توکن.$1",
+       "authform-notoken": "فقدان توکن.",
+       "authform-wrongtoken": "توکن اشتباه",
+       "specialpage-securitylevel-not-allowed-title": "مجاز نیست",
+       "specialpage-securitylevel-not-allowed": "با عرض پوزش، شما مجاز به استفاده از اين صفحه نمی‌باشيد، چراکه هويت شما را نمی‌توان تأييد کرد.",
+       "authpage-cannot-login": "نمی‌توان ورود را آغاز نمود",
+       "authpage-cannot-login-continue": "نمی‌توان به ورود ادامه داد. زمان جلسه کاری شما احتمالاً به سر آمده است.",
+       "authpage-cannot-create": "نمی‌توان ايجاد حساب را آغاز نمود.",
+       "authpage-cannot-create-continue": "نمی‌توان به ايجاد حساب ادامه داد. زمان جلسه کاری شما احتمالاً به سر آمده است.",
+       "authpage-cannot-link": "نمی‌توان پيوند دادن حساب را آغاز نمود.",
+       "authpage-cannot-link-continue": "نمی‌توان به پيوند دادن حساب ادامه داد. زمان جلسه کاری شما احتمالاً به سر آمده‌است.",
+       "cannotauth-not-allowed-title": "اجازه داده نشد",
+       "cannotauth-not-allowed": "شما برای دسترسی به این صفحه مجاز نیستید",
+       "changecredentials": "تغییر اعتبارنامه‌ها",
+       "changecredentials-submit": "تغییر اعتبارنامه‌ها",
+       "changecredentials-invalidsubpage": "$1 به دلیل نوع اعتبارنامه نادرست قابل پذیرش نیست.",
+       "changecredentials-success": "اعتبارنامه شما تغییر یافت.",
+       "removecredentials": "حذف اعتبارنامه‌ها",
+       "removecredentials-submit": "حذف اعتبارنامه‌ها",
+       "removecredentials-invalidsubpage": "$1 به دلیل نوع اعتبارنامه نادرست قابل پذیرش نیست.",
+       "removecredentials-success": "اعتبارنامهٔ شما حذف شد.",
+       "credentialsform-provider": "نوع اعتبارنامه:",
+       "credentialsform-account": "نام حساب کاربری:",
+       "cannotlink-no-provider-title": "حساب کاربری قابل پیوند وجود ندارد",
+       "cannotlink-no-provider": "حساب کاربری قابل پیوند وجود ندارد.",
+       "linkaccounts": "پیوند حساب کاربری",
+       "linkaccounts-success-text": "حساب کاربری پیوند شده‌است.",
+       "linkaccounts-submit": "پیوند حساب کاربری",
+       "unlinkaccounts": "حذف پیوند حساب کاربری",
+       "unlinkaccounts-success": "پیوند کاربری بدون پیوند شد.",
+       "authenticationdatachange-ignored": "به تغيير اطلاعات احراز هويت پرداخته نشد. آیا ممکن است که هيچ مهيا کننده‌ای برای اين کار تنظيم نشده باشد؟"
 }
index d26f674..07869da 100644 (file)
        "protectedpagetext": "Tämä sivu on suojattu muutoksilta ja muilta toiminnoilta.",
        "viewsourcetext": "Voit katsoa ja kopioida tämän sivun lähdetekstiä.",
        "viewyourtext": "Voit nähdä ja kopioida tähän sivuun <strong>tekemistäsi muutoksista</strong> syntyneen lähdekoodin.",
-       "protectedinterface": "Tämä sivu sisältää ohjelmiston käyttöliittymätekstiä ja on suojattu häiriköinnin estämiseksi.\nViestien kääntäminen tulisi tehdä [//translatewiki.net/ translatewiki.netissä] – MediaWikin kotoistusprojektissa.",
+       "protectedinterface": "Tämä sivu sisältää ohjelmiston käyttöliittymätekstiä ja on suojattu häiriköinnin estämiseksi.\nViestien kääntäminen tulisi tehdä [https://translatewiki.net/ translatewiki.netissä] – MediaWikin kotoistusprojektissa.",
        "editinginterface": "<strong>Varoitus:</strong> Olet muokkaamassa sivua, joka sisältää ohjelmiston käyttöliittymän tekstiä.\nMuutokset tähän sivuun vaikuttavat muiden käyttäjien käyttöliittymään tässä wikissä.",
-       "translateinterface": "Jos haluat lisätä tai muuttaa käännöksiä kaikissa wikeissä, käytä siihen MediaWikin kääntämistä varten rakennettua sivustoa [//translatewiki.net/ translatewiki.net].",
+       "translateinterface": "Jos haluat lisätä tai muuttaa käännöksiä kaikissa wikeissä, käytä siihen MediaWikin kääntämistä varten rakennettua sivustoa [https://translatewiki.net/ translatewiki.net].",
        "cascadeprotected": "Tämä sivu on suojattu muokkauksilta, koska se on sisällytetty {{PLURAL:$1|seuraavaan tarttuvasti suojattuun sivuun|seuraaviin tarttuvasti suojattuihin sivuihin}}:\n$2",
        "namespaceprotected": "Sinulla ei ole oikeutta muokata sivuja, jotka ovat nimiavaruudessa <strong>$1</strong>.",
        "customcssprotected": "Sinulla ei ole oikeutta muuttaa tätä CSS-sivua, koska se sisältää toisen käyttäjän henkilökohtaisia asetuksia.",
        "password-change-forbidden": "Et voi muuttaa salasanoja tässä wikissä.",
        "externaldberror": "Tapahtui virhe ulkoisen autentikointitietokannan käytössä tai sinulla ei ole lupaa päivittää tunnustasi.",
        "login": "Kirjaudu sisään",
+       "login-security": "Varmista henkilöllisyytesi",
        "nav-login-createaccount": "Kirjaudu sisään tai luo tunnus",
        "userlogin": "Kirjaudu sisään tai luo tunnus",
        "userloginnocreate": "Kirjaudu sisään",
        "userlogin-resetpassword-link": "Unohditko salasanasi?",
        "userlogin-helplink2": "Apua sisäänkirjautumiseen",
        "userlogin-loggedin": "Olet jo kirjautunut sisään tunnuksella {{GENDER:$1|$1}}.\nKäytä alla olevaa lomaketta kirjautuaksesi sisään toisena käyttäjänä.",
+       "userlogin-reauth": "Sinun on kirjauduttava sisään uudelleen varmistaaksesi olevasi {{GENDER:$1|$1}}.",
        "userlogin-createanother": "Luo toinen käyttäjätunnus",
        "createacct-emailrequired": "Sähköpostiosoite",
        "createacct-emailoptional": "Sähköpostiosoite (vapaaehtoinen)",
        "createacct-email-ph": "Anna sähköpostiosoitteesi",
        "createacct-another-email-ph": "Lisää sähköpostiosoite",
        "createaccountmail": "Käytä satunnaista väliaikaissalasanaa ja lähetä se alla olevaan sähköpostiosoitteeseen",
+       "createaccountmail-help": "Voidaan käyttää luomaan tunnus toiselle käyttäjälle ilman salasanan tietämistä.",
        "createacct-realname": "Oikea nimi (vapaaehtoinen tieto)",
        "createaccountreason": "Syy:",
        "createacct-reason": "Syy",
        "createacct-reason-ph": "Miksi olet luomassa toista käyttäjätunnusta",
+       "createacct-reason-help": "Tunnustenluontilokissa näytetty viesti",
        "createacct-submit": "Luo tunnus",
        "createacct-another-submit": "Luo käyttäjätunnus",
+       "createacct-continue-submit": "Jatka tunnuksen luomista",
+       "createacct-another-continue-submit": "Jatka tunnuksen luomista",
        "createacct-benefit-heading": "{{SITENAME}} on sinun kaltaistesi ihmisten tekemä.",
        "createacct-benefit-body1": "{{PLURAL:$1|muokkaus|muokkausta}}",
        "createacct-benefit-body2": "{{PLURAL:$1|sivu|sivua}}",
        "nocookiesnew": "Käyttäjätunnus on luotu, mutta et ole kirjautunut sisään. \n{{SITENAME}} käyttää evästeitä sisäänkirjautumisen yhteydessä. \nSelaimesi ei salli evästeitä. \nSalli evästeiden käyttö, ja sen jälkeen kirjaudu sisään juuri luomallasi käyttäjätunnuksella ja salasanalla.",
        "nocookieslogin": "{{SITENAME}} käyttää evästeitä sisäänkirjautumisen yhteydessä. Selaimesi ei salli evästeitä. Ota ne käyttöön, ja yritä uudelleen.",
        "nocookiesfornew": "Käyttäjätunnusta ei luotu, koska sen lähdettä ei kyetty varmistamaan. Varmista, että selaimessasi on käytössä evästeet, päivitä tämä sivu ja yritä uudelleen.",
+       "createacct-loginerror": "Tunnus luotiin onnistuneesti, mutta automaattista sisäänkirjautumista ei voitu tehdä. Siirry [[Special:UserLogin|manuaaliseen kirjautumiseen]].",
        "noname": "Et ole määritellyt kelvollista käyttäjänimeä.",
        "loginsuccesstitle": "Olet kirjautunut sisään",
        "loginsuccess": "'''Olet kirjautunut sivustolle {{SITENAME}} käyttäjänä $1.'''",
        "createacct-another-realname-tip": "Vapaaehtoinen.\nNimesi näytetään käyttäjätunnuksesi sijasta sivun tekijäluettelossa.",
        "pt-login": "Kirjaudu sisään",
        "pt-login-button": "Kirjaudu sisään",
+       "pt-login-continue-button": "Jatka kirjautumista",
        "pt-createaccount": "Luo tunnus",
        "pt-userlogout": "Kirjaudu ulos",
        "php-mail-error-unknown": "Tuntematon virhe PHP:n mail()-funktiossa",
        "botpasswords-invalid-name": "Annetussa käyttäjätunnuksessa ei ole bottisalasanan erotinta (\"$1\").",
        "botpasswords-not-exist": "Käyttäjällä \"$1\" ei ole bottisalasanaa nimellä \"$2\".",
        "resetpass_forbidden": "Salasanoja ei voi vaihtaa.",
+       "resetpass_forbidden-reason": "Salasanoja ei voi muuttaa: $1",
        "resetpass-no-info": "Et voi nähdä tätä sivua kirjautumatta sisään.",
        "resetpass-submit-loggedin": "Muuta salasana",
        "resetpass-submit-cancel": "Peruuta",
        "resetpass-temp-password": "Väliaikainen salasana:",
        "resetpass-abort-generic": "Laajennus keskeytti salasanan vaihdon.",
        "resetpass-expired": "Salasanasi on vanhentunut. Valitse uusi salasana, jotta pääset kirjautumaan sisään.",
-       "resetpass-expired-soft": "Salasanasi on vanhentunut ja se pitää uudistaa. Valitse uusi salasana nyt tai paina \"{{int:resetpass-submit-cancel}}\", niin voit uudistaa salasanan myöhemmin.",
-       "resetpass-validity-soft": "Salasanasi ei ole kelvollinen: $1\n\nValitse nyt uusi salasana tai paina \"{{int:resetpass-submit-cancel}}\", niin voit vaihtaa sen myöhemmin.",
+       "resetpass-expired-soft": "Salasanasi on vanhentunut ja se pitää uudistaa. Valitse uusi salasana nyt tai paina \"{{int:authprovider-resetpass-skip-label}}\", niin voit uudistaa salasanan myöhemmin.",
+       "resetpass-validity-soft": "Salasanasi ei ole kelvollinen: $1\n\nValitse nyt uusi salasana tai paina \"{{int:authprovider-resetpass-skip-label}}\", niin voit vaihtaa sen myöhemmin.",
        "passwordreset": "Salasanan uudistus",
        "passwordreset-text-one": "Täytä tämä lomake uudistaaksesi salasanasi.",
        "passwordreset-text-many": "{{PLURAL:$1|Täytä yksi kentistä, jotta saat väliaikaisen salasanan sähköpostitse.}}",
        "passwordreset-emailsentusername": "Jos on olemassa vastaava rekisteröity sähköpostiosoite, salasanan uudistamisesta kertova viesti lähetetään.",
        "passwordreset-emailsent-capture": "Salasanan uudistamisesta kertova sähköpostiviesti on lähetetty, ja se näkyy myös alla.",
        "passwordreset-emailerror-capture": "Allaoleva sähköpostiviesti luotiin, mutta sen lähettäminen {{GENDER:$2|käyttäjälle}} epäonnistui: $1",
+       "passwordreset-emailsent-capture2": "Salasananpalautus{{PLURAL:$1|sähköposti|sähköpostit}} on lähetetty. {{PLURAL:$1|Käyttäjä ja salasana|Luettelo käyttäjistä ja salasanoista}} näytetään alapuolella.",
+       "passwordreset-emailerror-capture2": "Sähköpostin lähettäminen {{GENDER:$2|käyttäjälle}} epäonnistui: $1 {{PLURAL:$3|Käyttäjänimi ja salasana|Luettelo käyttäjänimistä ja salasanoista}} näytetään alla.",
+       "passwordreset-invalideamil": "Virheellinen sähköpostiosoite",
+       "passwordreset-nodata": "Käyttäjätunnusta ja salasanaa ei annettu",
        "changeemail": "Muuta tai poista sähköpostiosoite",
        "changeemail-header": "Täydennä tämä lomake, jolla voit muuttaa sähköpostiosoitettasi. Jos haluat poistaa sähköpostiosoitteesi kokonaan tunnuksesi yhteydestä, älä kirjoita uudeksi osoitteeksi mitään vaan jätä se tyhjäksi.",
        "changeemail-passwordrequired": "Sinun on syötettävä salasanasi vahvistaaksesi tämän muutoksen.",
        "minoredit": "Tämä on pieni muutos",
        "watchthis": "Tarkkaile tätä sivua",
        "savearticle": "Tallenna sivu",
+       "savechanges": "Tallenna muutokset",
        "publishpage": "Julkaise sivu",
+       "publishchanges": "Julkaise muutokset",
        "preview": "Esikatselu",
        "showpreview": "Esikatsele",
        "showdiff": "Näytä muutokset",
        "userpage-userdoesnotexist": "Käyttäjätunnusta \"$1\" ei ole rekisteröity. \nVarmista, haluatko luoda tämän sivun tai muokata sitä.",
        "userpage-userdoesnotexist-view": "Käyttäjätunnusta ”$1” ei ole rekisteröity.",
        "blocked-notice-logextract": "Tämä käyttäjä on tällä hetkellä estetty.\nAlla on viimeisin estolokin tapahtuma:",
-       "clearyourcache": "'''Huomautus:''' Selaimen välimuisti pitää tyhjentää asetusten tallentamisen jälkeen, jotta muutokset tulisivat voimaan.\n* '''Firefox ja Safari:''' Napsauta ''Shift''-näppäin pohjassa ''Päivitä'' tai paina ''Ctrl-F5'' tai ''Ctrl-R'' (''⌘-R'' Macilla)\n* '''Google Chrome:''' Paina ''Ctrl-Shift-R'' (''⌘-Shift-R'' Macilla)\n* '''Internet Explorer:''' Napsauta ''Ctrl''-näppäin pohjassa ''Päivitä'' tai paina ''Ctrl-F5''\n* '''Opera:''' Tyhjennä välimuisti: ''Tools→Preferences''",
+       "clearyourcache": "<strong>Huomautus:</strong> Selaimen välimuisti pitää tyhjentää asetusten tallentamisen jälkeen, jotta muutokset tulisivat voimaan.\n* <strong>Firefox ja Safari:</strong> Napsauta <em>Shift</em>-näppäin pohjassa <em>Päivitä</em>, tai paina <em>Ctrl-F5</em> tai <em>Ctrl-R</em> (<em>⌘-R</em> Macilla)\n* <strong>Google Chrome:</strong> Paina <em>Ctrl-Shift-R</em> (<em>⌘-Shift-R</em> Macilla)\n* <strong>Internet Explorer:</strong> Napsauta <em>Ctrl</em>-näppäin pohjassa <em>Päivitä</em> tai paina <em>Ctrl-F5</em>\n* <strong>Opera:</strong> <em>Menu → Settings</em> (<em>Opera → Preferences</em> Macilla) ja sitten <em>Privacy & security → Clear browsing data → Cached images and files</em>.",
        "usercssyoucanpreview": "Voit testata uutta CSS:ää ennen tallennusta käyttämällä painiketta ”{{int:showpreview}}”.",
        "userjsyoucanpreview": "Voit testata uutta JavaScriptiä ennen tallennusta käyttämällä painiketta ”{{int:showpreview}}”.",
        "usercsspreview": "'''Tämä on CSS:n esikatselu. Muutoksia ei ole vielä tallennettu.'''",
        "continue-editing": "Siirry muokkauskenttään",
        "previewconflict": "Tämä esikatselu näyttää miltä muokkausalueella oleva teksti näyttää tallennettuna.",
        "session_fail_preview": "Muokkaustasi ei voitu tallentaa, koska istuntosi tiedot ovat kadonneet.\n\nSaatat olla kirjautunut ulos. '''Varmista, että olet edelleen kirjautunut sisään ja yritä uudelleen'''. Jos ongelma ei katoa, yritä [[Special:UserLogout|kirjautua ulos]] ja takaisin sisään, ja varmista, että selaimesi sallii evästeet tältä sivustolta.",
-       "session_fail_preview_html": "'''Muokkaustasi ei voitu tallentaa, koska istuntosi tiedot ovat kadonneet.'''\n\nEsikatselu on piilotettu varokeinona JavaScript-hyökkäyksiä vastaan – tässä wikissä on HTML-tila päällä.\n\nYritä uudelleen. Jos ongelma ei katoa, yritä [[Special:UserLogout|kirjautua ulos]] ja takaisin sisään.",
+       "session_fail_preview_html": "Valitettavasti muokkaustasi ei voitu käsitellä istunnon tietojen katoamisen vuoksi.\n\n<em>Koska sivustolla {{SITENAME}} on käytössä suodattamaton HTML-koodi, esikatselu on piilotettu JavaScript-hyökkäyksien torjumiseksi</em>\n\n<strong>Jos tämä on oikea muokkausyritys, yritä uudelleen.</strong> Jos ongelma ei katoa, yritä [[Special:UserLogout|kirjautua ulos]] ja takaisin sisään. Tarkista myös, että selaimesi sallii evästeet tältä sivustolta.",
        "token_suffix_mismatch": "'''Muokkauksesi on hylätty, koska asiakasohjelmasi ei osaa käsitellä välimerkkejä muokkaustarkisteessa. Syynä voi olla viallinen välityspalvelin.'''",
        "edit_form_incomplete": "'''Osa muokkauslomakkeesta ei saavuttanut palvelinta. Tarkista, että muokkauksesi ovat vahingoittumattomia ja yritä uudelleen.'''",
        "editing": "Muokataan sivua $1",
        "prefs-tabs-navigation-hint": "Vihje: Voit käyttää vasenta ja oikeata nuolinäppäintä liikkumiseen välilehtien välillä.",
        "userrights": "Käyttöoikeuksien hallinta",
        "userrights-lookup-user": "Hallinnoi käyttäjän ryhmiä",
-       "userrights-user-editname": "Käyttäjätunnus",
+       "userrights-user-editname": "Käyttäjätunnus:",
        "editusergroup": "Muokkaa {{GENDER:$1|käyttäjän}} ryhmiä",
        "editinguser": "Muutetaan {{GENDER:$1|käyttäjän}} <strong>[[User:$1|$1]]</strong> $2 oikeuksia",
        "userrights-editusergroup": "Muuta käyttäjän ryhmiä",
        "rightslogtext": "Tämä on loki käyttäjien käyttöoikeuksien muutoksista.",
        "action-read": "lukea tätä sivua",
        "action-edit": "muokata tätä sivua",
-       "action-createpage": "luoda sivuja",
-       "action-createtalk": "luoda keskustelusivuja",
+       "action-createpage": "luoda tätä sivua",
+       "action-createtalk": "luoda tätä keskustelusivua",
        "action-createaccount": "luoda tätä käyttäjätunnusta",
        "action-autocreateaccount": "luoda automaattisesti tätä ulkopuolista käyttäjätunnusta",
        "action-history": "tarkastella tämän sivun historiaa",
        "apisandbox": "API-hiekkalaatikko",
        "apisandbox-jsonly": "JavaScript vaaditaan API-hiekkalaatikon käyttämiseen.",
        "apisandbox-api-disabled": "API on poistettu käytöstä tällä sivustolla.",
-       "apisandbox-intro": "Käytä tätä sivua kokeillaksesi '''MediaWikin verkkopalvelun API:a'''.\n[[mw:API:Main page|API-dokumentaatio]] kertoo lisää API:en käytöstä. Esimerkki: [//www.mediawiki.org/wiki/API#A_simple_example hae etusivun sisältö]. Valitse toiminto nähdäksesi lisää esimerkkejä.\n\nHuomioi, että vaikka tämä on hiekkalaatikko, sivulla suorittamasi toiminnot saattavat muokata wikiä.",
+       "apisandbox-intro": "Käytä tätä sivua kokeillaksesi '''MediaWikin verkkopalvelun API:a'''.\n[[mw:API:Main page|API-dokumentaatio]] kertoo lisää API:en käytöstä. Esimerkki: [https://www.mediawiki.org/wiki/API#A_simple_example hae etusivun sisältö]. Valitse toiminto nähdäksesi lisää esimerkkejä.\n\nHuomioi, että vaikka tämä on hiekkalaatikko, sivulla suorittamasi toiminnot saattavat muokata wikiä.",
        "apisandbox-fullscreen": "Laajenna paneeli",
        "apisandbox-fullscreen-tooltip": "Laajenna hiekkalaatikkopaneeli täyttämään selainikkuna.",
        "apisandbox-unfullscreen": "Palaa sivunäkymään",
        "trackingcategories-msg": "Tarkkailuluokka",
        "trackingcategories-name": "Viestin nimi",
        "trackingcategories-desc": "Kriteerit luokkaan joutumiselle",
+       "restricted-displaytitle-ignored": "Sivut, joiden näytettäviä otsikoita ei huomioida",
+       "restricted-displaytitle-ignored-desc": "Sivulla on <code><nowiki>{{DISPLAYTITLE}}</nowiki></code>, jota ei oteta huomioon, koska se ei vastaa sivun oikeaa nimeä.",
        "noindex-category-desc": "Tätä sivua eivät hakurobotit indeksoi, koska sivulla on taikasana <code><nowiki>__NOINDEX__</nowiki></code> ja koska sivu on sellaisessa nimiavaruudessa, jossa taikasanan käyttö on sallittua.",
        "index-category-desc": "Tällä sivulla on koodi <code><nowiki>__INDEX__</nowiki></code> ja sivu on sellaisessa nimiavaruudessa, jossa koodin käyttö on sallittua. Tämän vuoksi hakurobotit indeksoivat tämän sivun, vaikka ilman koodia sivua ei indeksoitaisi normaalisti.",
        "post-expand-template-inclusion-category-desc": "Sivun koko on suurempi kuin <code>$wgMaxArticleSize</code>, kun kaikki mallineet on laajennettu. Tämän vuoksi joitakin mallineita ei laajennettu.",
        "rollbacklinkcount": "palauta $1 {{PLURAL:$1|muutos|muutosta}}",
        "rollbacklinkcount-morethan": "palauta yli $1 {{PLURAL:$1|muutos|muutosta}}",
        "rollbackfailed": "Palautus epäonnistui",
+       "rollback-missingparam": "Tarvittavat parametrit puuttuvat pyynnöstä.",
        "cantrollback": "Aiempaan versioon ei voi palauttaa, koska viimeisin kirjoittaja on sivun ainoa tekijä.",
        "alreadyrolled": "Käyttäjän [[User:$2|$2]] ([[User talk:$2|keskustelu]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) tekemiä muutoksia sivuun [[:$1]] ei voida kumota, koska joku toinen käyttäjä on joko muuttanut sivua tai palauttanut muokkauksen.\n\nViimeisimmän muokkauksen on tehnyt käyttäjä [[User:$3|$3]] ([[User talk:$3|keskustelu]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
        "editcomment": "Muokkauksen yhteenveto oli: <em>$1</em>.",
        "revertpage": "Käyttäjän [[Special:Contributions/$2|$2]] ([[User talk:$2|keskustelu]]) muokkaukset kumottiin ja sivu palautettiin viimeisimpään käyttäjän [[User:$1|$1]] tekemään versioon.",
        "revertpage-nouser": "Käyttäjän (käyttäjänimi poistettu) muokkaukset kumottiin ja sivu palautettiin viimeisimpään käyttäjän {{GENDER:$1|[[User:$1|$1]]}} tekemään versioon",
        "rollback-success": "Käyttäjän $1 tekemät muokkaukset kumottiin ja sivu palautettiin käyttäjän $2 versioon.",
+       "rollback-success-notify": "Kumottiin käyttäjän $1 muokkaukset; palautettiin viimeiseen käyttäjän $2 versioon. [$3 Näytä muutokset]",
        "sessionfailure-title": "Istuntovirhe",
        "sessionfailure": "Istuntosi kanssa on ongelma. Muutosta ei toteutettu varotoimena istuntokaappauksien takia. Käytä selaimen paluutoimintoa ja päivitä sivu, jolta tulit, ja yritä uudelleen.",
        "changecontentmodel": "Muuta sivun sisältömallia",
        "sp-contributions-username": "IP-osoite tai käyttäjätunnus:",
        "sp-contributions-toponly": "Näytä vain muokkaukset, jotka ovat viimeisimpiä versioita",
        "sp-contributions-newonly": "Näytä vain muokkaukset, joilla on luotu sivu",
+       "sp-contributions-hideminor": "Piilota pienet muutokset",
        "sp-contributions-submit": "Hae",
        "whatlinkshere": "Tänne viittaavat sivut",
        "whatlinkshere-title": "Sivut, jotka viittaavat sivulle $1",
        "allmessagesname": "Nimi",
        "allmessagesdefault": "Viestin tekstin perusmuoto",
        "allmessagescurrent": "Viestin teksti tällä hetkellä",
-       "allmessagestext": "Tämä on luettelo järjestelmäviesteistä, jotka ovat saatavilla MediaWiki-nimiavaruudessa.\nJos haluat muokata MediaWikin yleistä kotoistusta, käy [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWikin kotoistussivuilla] ja sivustolla [//translatewiki.net translatewiki.net].",
+       "allmessagestext": "Tämä on luettelo järjestelmäviesteistä, jotka ovat saatavilla MediaWiki-nimiavaruudessa.\nJos haluat muokata MediaWikin yleistä kotoistusta, käy [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWikin kotoistussivuilla] ja sivustolla [https://translatewiki.net translatewiki.net].",
        "allmessagesnotsupportedDB": "Tämä sivu ei ole käytössä, koska <tt>$wgUseDatabaseMessages</tt>-asetus on pois päältä.",
        "allmessages-filter-legend": "Suodata",
        "allmessages-filter": "Suodata muutosten perusteella",
        "confirm-watch-top": "Lisätäänkö tämä sivu tarkkailulistallesi?",
        "confirm-unwatch-button": "OK",
        "confirm-unwatch-top": "Poistetaanko tämä sivu tarkkailulistaltasi?",
+       "confirm-rollback-button": "OK",
+       "confirm-rollback-top": "Palauta tämän sivun muokkaukset?",
        "percent": "$1&#160;%",
        "quotation-marks": "\"$1\"",
        "imgmultipageprev": "← edellinen sivu",
        "timezone-local": "Paikallinen",
        "duplicate-defaultsort": "'''Varoitus:''' Oletuslajitteluavain ”$2” korvaa aiemman oletuslajitteluavaimen ”$1”.",
        "duplicate-displaytitle": "<strong>Varoitus:</strong> Näytettävä otsikko \"$2\" päällekirjoittaa edellisen otsikon \"$1\".",
+       "restricted-displaytitle": "<strong>Varoitus:</strong> Näytettävää otsikkoa \"$1\" ei huomioitu, koska se ei vastaa sivun oikeaa nimeä.",
        "invalid-indicator-name": "<strong>Virhe:</strong> Sivun tilan osoittimien attribuutti <code>name</code> ei saa olla tyhjä.",
        "version": "Versio",
        "version-extensions": "Asennetut laajennukset",
        "api-error-nomodule": "Sisäinen virhe: tallennusmoduulia ei ole asetettu.",
        "api-error-ok-but-empty": "Sisäinen virhe: palvelimelta ei saatu vastausta.",
        "api-error-overwrite": "Olemassa olevan tiedoston korvaaminen toisella ei ole sallittua.",
+       "api-error-ratelimited": "Yrität tallentaa lyhyessä ajassa enemmän tiedostoja kuin tämä wiki sallii.\nYritä uudelleen muutaman minuutin kuluttua.",
        "api-error-stashfailed": "Sisäinen virhe: Väliaikaisen tiedoston tallentaminen epäonnistui.",
        "api-error-publishfailed": "Sisäinen virhe: Väliaikaisen tiedoston julkaiseminen epäonnistui.",
        "api-error-stasherror": "Tiedostoa ladattaessa tapahtui virhe.",
        "mw-widgets-dateinput-placeholder-month": "VVVV-KK",
        "mw-widgets-titleinput-description-new-page": "sivua ei ole olemassa vielä",
        "mw-widgets-titleinput-description-redirect": "ohjaus kohteeseen $1",
-       "api-error-blacklisted": "Valitse toinen, kuvaava nimi.",
        "sessionmanager-tie": "!!FYZZ!!Cannot combine multiple request authentication types: $1.",
        "sessionprovider-generic": "$1 istuntoa",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "istuntoja, joissa on evästeet käytössä",
        "log-action-filter-suppress-block": "Käyttäjätunnuksen häivyttäminen estämällä se",
        "log-action-filter-suppress-reblock": "Käyttäjätunnuksen häivyttäminen uudella estolla",
        "log-action-filter-upload-upload": "Uusi tallennus",
-       "log-action-filter-upload-overwrite": "Päälletallennus"
+       "log-action-filter-upload-overwrite": "Päälletallennus",
+       "authmanager-authn-not-in-progress": "Varmennus ei ole käynnissä tai istunnon tiedot ovat hävinneet. Ole hyvä ja aloita uudelleen alusta.",
+       "authmanager-authn-no-primary": "Annettua kirjautumistietoja ei pystytty varmentamaan.",
+       "authmanager-authn-no-local-user": "Annetut kirjautumistiedot eivät kuulu millekään tämän wikin käyttäjistä.",
+       "authmanager-authn-no-local-user-link": "Annetut kirjautumisiedot ovat kelvolliset, mutta eivät liity mihinkään tämän wikin käyttäjään. Kirjaudu sisään toisella tavalla, tai luo uusi käyttäjä ja sinulla on mahdollisuus linkittää aiemmat kirjautumistietosi tälle käyttäjälle.",
+       "authmanager-authn-autocreate-failed": "Paikallisen tunnuksen automaattinen luonti epäonnistui: $1",
+       "authmanager-change-not-supported": "Annettuja kirjautumistietoja ei voida muuttaa, koska mikään ei käyttäisi niitä.",
+       "authmanager-create-disabled": "Tunnusten luonti ei ole käytössä.",
+       "authmanager-create-from-login": "Luodaksesi tunnuksen täytä alla olevat kentät.",
+       "authmanager-create-not-in-progress": "Tunnuksen luonti ei ole käynnissä tai istunnon tiedot ovat hävinneet. Ole hyvä ja aloita uudelleen alusta.",
+       "authmanager-create-no-primary": "Annettuja kirjautumistietoja ei voitu käyttää tunnuksen luontiin.",
+       "authmanager-link-no-primary": "Annettuja kirjautumistietoja ei voitu käyttää tunnuksen linkittämiseen.",
+       "authmanager-link-not-in-progress": "Tunnuksen linkitys ei ole käynnissä tai istunnon tiedot ovat hävinneet. Ole hyvä ja aloita uudelleen alusta.",
+       "authmanager-authplugin-setpass-failed-title": "Salasanan muuttaminen epäonnistui",
+       "authmanager-authplugin-setpass-failed-message": "Varmennuslisäosa esti salasanan muuttamisen.",
+       "authmanager-authplugin-create-fail": "Varmennuslisäosa esti tunnuksen luonnin.",
+       "authmanager-authplugin-setpass-denied": "Varmennuslisäosa ei salli salasanojen muuttamista.",
+       "authmanager-authplugin-setpass-bad-domain": "Virheellinen domain.",
+       "authmanager-autocreate-noperm": "Automaattinen tunnustenluonti ei ole sallittu.",
+       "authmanager-autocreate-exception": "Automaattinen tunnuksenluonti on tilapäisesti poistettu käytöstä aikaisempien virheiden vuoksi.",
+       "authmanager-userdoesnotexist": "Käyttäjätunnusta ”$1” ei ole rekisteröity.",
+       "authmanager-userlogin-remembermypassword-help": "Tulisiko salasana muistaa istunnon kestoa pidempään.",
+       "authmanager-username-help": "Käyttäjänimi varmentamiseen.",
+       "authmanager-password-help": "Salasana varmentamiseen.",
+       "authmanager-retype-help": "Salasana uudelleen vahvistaaksesi.",
+       "authmanager-email-label": "Sähköposti",
+       "authmanager-email-help": "Sähköpostiosoite",
+       "authmanager-realname-label": "Oikea nimi",
+       "authmanager-realname-help": "Käyttäjän oikea nimi",
+       "authmanager-provider-password": "Salasanapohjainen varmennus",
+       "authmanager-provider-temporarypassword": "Väliaikainen salasana",
+       "authprovider-confirmlink-message": "Viimeisimpien kirjautumisyritystesi perusteella seuraavat tunnukset voidaan linkittää wikitunnuksellesi. Tunnusten linkittäminen mahdollistaa sisäänkirjautumisen niitä käyttämällä. Valitse tunnukset, jotka tulisi linkittää.",
+       "authprovider-confirmlink-request-label": "Tunnukset, jotka tulisi yhdistää",
+       "authprovider-confirmlink-success-line": "$1: Linkitetty onnistuneesti.",
+       "authprovider-confirmlink-failed": "Tunnuksen linkitys ei onnistunut täysin: $1",
+       "authprovider-resetpass-skip-label": "Ohita",
+       "authprovider-resetpass-skip-help": "Ohita salasanan palautus.",
+       "authform-nosession-login": "Varmennus onnistui, mutta selaimesi ei pysty \"muistamaan\" sisäänkirjautumista.\n\n$1",
+       "authform-nosession-signup": "Tunnus luotiin, mutta selaimesi ei pysty \"muistamaan\" sisäänkirjautumista.\n\n$1",
+       "specialpage-securitylevel-not-allowed-title": "Ei sallittu",
+       "specialpage-securitylevel-not-allowed": "Valitettavasti sinulla ei ole oikeutta muokata tätä sivua, koska henkilöllisyyttäsi ei voitu varmentaa.",
+       "authpage-cannot-login": "Kirjautumista ei voitu aloittaa.",
+       "authpage-cannot-login-continue": "Kirjautumista ei voitu jatkaa. Istuntosi todennäköisesti aikakatkaistiin.",
+       "authpage-cannot-create": "Tunnuksen luontia ei voitu aloittaa.",
+       "authpage-cannot-create-continue": "Tunnuksen luontia ei voitu jatkaa. Istuntosi todennäköisesti aikakatkaistiin.",
+       "authpage-cannot-link": "Tunnuksen linkittämistä ei voitu aloittaa.",
+       "authpage-cannot-link-continue": "Tunnuksen linkittämistä ei voitu jatkaa. Istuntosi todennäköisesti aikakatkaistiin.",
+       "cannotauth-not-allowed-title": "Pääsy estetty",
+       "cannotauth-not-allowed": "Sinulla ei ole oikeutta käyttää tätä sivua",
+       "changecredentials": "Muuta kirjautumistietoja",
+       "changecredentials-submit": "Muuta kirjautumistietoja",
+       "changecredentials-invalidsubpage": "$1 ei ole kelvollinen kirjautumistietojen tyyppi",
+       "changecredentials-success": "Kirjautumistietosi on muutettu.",
+       "removecredentials": "Poista kirjautumistiedot",
+       "removecredentials-submit": "Poista kirjautumistiedot",
+       "removecredentials-invalidsubpage": "$1 ei ole kelvollinen kirjautumistietojen tyyppi.",
+       "removecredentials-success": "Kirjautumistietosi on poistettu.",
+       "credentialsform-provider": "Kirjautumistietojen tyyppi:",
+       "credentialsform-account": "Tunnuksen nimi:",
+       "cannotlink-no-provider-title": "Linkitettäviä tunnuksia ei ole",
+       "cannotlink-no-provider": "Linkitettäviä tunnuksia ei ole.",
+       "linkaccounts": "Linkitä tunnuksia",
+       "linkaccounts-success-text": "Tunnus linkitettiin.",
+       "linkaccounts-submit": "Linkitä tunnuksia",
+       "unlinkaccounts": "Poista tunnusten linkityksiä",
+       "unlinkaccounts-success": "Tunnuksen linkitys poistettiin.",
+       "authenticationdatachange-ignored": "Varmennustietojen muutosta ei käsitelty. Ehkä palveluntarjoajaa ei määritelty?"
 }
index 247ec5f..edf9094 100644 (file)
        "protectedpagetext": "Hendan síða er blivin vard fyri at steðga rættingum ella øðrum handlingum.",
        "viewsourcetext": "Tú kanst síggja og avrita kelduna til hesa grein.",
        "viewyourtext": "Tú kanst síggja og avrita kelduna til <strong>tínar rættingar</strong> til hesa síðuna.",
-       "protectedinterface": "↓ Henda síðan gevur markamóts tekst til ritbúnaðin (software), og er vard fyri at fyribyrgja misnýtslu.\nFyri at gera rættingar ella broyta týðingar á øllum wiki'um, vinarliga nýt [//translatewiki.net/ translatewiki.net], MediaWiki verkætlanina.",
+       "protectedinterface": "↓ Henda síðan gevur markamóts tekst til ritbúnaðin (software), og er vard fyri at fyribyrgja misnýtslu.\nFyri at gera rættingar ella broyta týðingar á øllum wiki'um, vinarliga nýt [https://translatewiki.net/ translatewiki.net], MediaWiki verkætlanina.",
        "editinginterface": "<strong>Ávaring:</strong> Tú rættar eina síðu sum verður brúkt til at geva markamóts tekst til ritbúnaðin (software).\nBroytingar á hesi síðu fara at ávirka útsjóndina á brúkara markamótinum (interface) fyri aðrar brúkarar á hesi wiki.",
-       "translateinterface": "Fyri at gera ella broyta týðingar fyri allar wikiir, vinarliga nýt [//translatewiki.net/ translatewiki.net], the MediaWiki staðsetingar verkætlan.",
+       "translateinterface": "Fyri at gera ella broyta týðingar fyri allar wikiir, vinarliga nýt [https://translatewiki.net/ translatewiki.net], the MediaWiki staðsetingar verkætlan.",
        "cascadeprotected": "Henda síðan er vard fyri rættingum, tí hon er í fylgjandi {{PLURAL:$1|síðu, sum er|síðum, sum eru}}\nvardar við \"niðurarvan\" møguleikanum tendraðum:\n$2",
        "namespaceprotected": "Tú hevur ikki loyvi til at rætta síður í $1 navnateiginum.",
        "customcssprotected": "Tú hevur ikki loyvi til at rætta hesa CSS síðuna, tí hon inniheldur persónligar innstillingar hjá øðrum brúkara.",
        "resetpass-temp-password": "Fyribils loyniorð",
        "resetpass-abort-generic": "Broyting av loyniorði bleiv avbrotin av einari víðkan.",
        "resetpass-expired": "Títt loyniorð er útgingið. Vinarliga vel tær eitt nýtt, so tú kanst rita inn.",
-       "resetpass-expired-soft": "Títt loyniorð er útgingið og má broytast. Vinarliga vel tær eitt nýtt nú ella trýst á \"{{int:resetpass-submit-cancel}}\" fyri at broyta tað seinni.",
+       "resetpass-expired-soft": "Títt loyniorð er útgingið og má broytast. Vinarliga vel tær eitt nýtt nú ella trýst á \"{{int:authprovider-resetpass-skip-label}}\" fyri at broyta tað seinni.",
        "passwordreset": "Nullstilla loyniorðið",
        "passwordreset-text-one": "Útfyll henda teigin fyri at nullstilla títt loyniorð.",
        "passwordreset-text-many": "{{PLURAL:$1|Útfyll í ein av teigunum fyri at móttaka eitt fyribils loyniorð við telduposti.}}",
        "suppress": "Yvirlit",
        "apisandbox": "API sandkassin",
        "apisandbox-api-disabled": "API er ikki virkið á hesi heimasíðuni.",
-       "apisandbox-intro": "Nýt hesa síðu til at royna teg við '''MediaWiki web service API'''.\nVíst verður til [//www.mediawiki.org/wiki/API:Main_page API documentasjónina] fyri smálutir um nýtslu av API.\nDømi: [//www.mediawiki.org/wiki/API#A_simple_example heinta innihaldið frá einari høvuðssíðu].  Vel eina handling fyri at síggja fleiri dømi.\n\nLegg til merkis, at sjálvt um hetta er ein sandkassi, so kunnu broytingar ið tú gert her, broyta wiki'ina.",
+       "apisandbox-intro": "Nýt hesa síðu til at royna teg við '''MediaWiki web service API'''.\nVíst verður til [https://www.mediawiki.org/wiki/API:Main_page API documentasjónina] fyri smálutir um nýtslu av API.\nDømi: [https://www.mediawiki.org/wiki/API#A_simple_example heinta innihaldið frá einari høvuðssíðu].  Vel eina handling fyri at síggja fleiri dømi.\n\nLegg til merkis, at sjálvt um hetta er ein sandkassi, so kunnu broytingar ið tú gert her, broyta wiki'ina.",
        "apisandbox-submit": "Kom við fyrispurningi",
        "apisandbox-reset": "Rudda",
        "apisandbox-examples": "Dømi",
        "allmessagesname": "Navn",
        "allmessagesdefault": "Enskur tekstur",
        "allmessagescurrent": "Verandi tekstur",
-       "allmessagestext": "Hetta er eitt yvirlit av tøkum kervisboðum í MediaWiki-navnarúmi.\nVinarliga vitja [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] og [//translatewiki.net translatewiki.net] um tú ynskir at geva títt íkast til ta generisku MediaWiki lokalisatiónina.",
+       "allmessagestext": "Hetta er eitt yvirlit av tøkum kervisboðum í MediaWiki-navnarúmi.\nVinarliga vitja [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] og [https://translatewiki.net translatewiki.net] um tú ynskir at geva títt íkast til ta generisku MediaWiki lokalisatiónina.",
        "allmessagesnotsupportedDB": "'''{{ns:special}}:AllMessages''' er ikki stuðlað orsakað av at '''$wgUseDatabaseMessages''' er sløkt.",
        "allmessages-filter-legend": "Filtur",
        "allmessages-filter-unmodified": "Óbroytt",
index 6a17b7b..74f086d 100644 (file)
                        "Yasten",
                        "Psychoslave",
                        "Trial",
-                       "Matma Rex"
+                       "Matma Rex",
+                       "Dcausse"
                ]
        },
        "tog-underline": "Soulignement des liens :",
        "tog-diffonly": "Ne pas afficher le contenu des pages sous les diffs",
        "tog-showhiddencats": "Afficher les catégories cachées",
        "tog-norollbackdiff": "Ne pas afficher le diff après avoir révoqué",
-       "tog-useeditwarning": "M’avertir quand je quitte une page de modification sans publier les changements",
-       "tog-prefershttps": "Conserver une connexion sécurisée une fois connecté(e)",
+       "tog-useeditwarning": "M’avertir quand je quitte une page en cours de modification sans avoir sauvegardé",
+       "tog-prefershttps": "Toujours utiliser une connexion sécurisée pour se connecter",
        "underline-always": "Toujours",
        "underline-never": "Jamais",
        "underline-default": "Valeur par défaut du thème ou du navigateur",
        "category-empty": "<em>Cette catégorie ne contient actuellement aucune page ni fichier multimédia.</em>",
        "hidden-categories": "{{PLURAL:$1|Catégorie cachée|Catégories cachées}}",
        "hidden-category-category": "Catégories cachées",
-       "category-subcat-count": "Cette catégorie {{PLURAL:$2|0=ne comprend aucune sous-catégorie|1=comprend seulement la sous-catégorie ci-dessous|comprend les $2 sous-catégories, dont {{PLURAL:$1|0=aucune|1=celle|les $1}} ci-dessous}}.",
+       "category-subcat-count": "Cette catégorie {{PLURAL:$2|0=ne comprend aucune sous-catégorie|1=comprend seulement la sous-catégorie ci-dessous|comprend $2 sous-catégories, dont {{PLURAL:$1|0=aucune|1=celle|les $1}} ci-dessous}}.",
        "category-subcat-count-limited": "Cette catégorie comprend {{PLURAL:$1|la sous-catégorie|les $1 sous-catégories}} ci-dessous.",
        "category-article-count": "Cette catégorie {{PLURAL:$2|0=ne comprend aucune page|1=comprend seulement la page ci-dessous|comprend $2 pages, dont {{PLURAL:$1|0=aucune|1=celle|les $1}} ci-dessous}}.",
        "category-article-count-limited": "{{PLURAL:$1|0=Aucune page ne figure|1=La page suivante figure|Les $1 pages suivantes figurent}} dans la présente catégorie.",
        "viewhelppage": "Voir la page d'aide",
        "categorypage": "Voir la page de catégorie",
        "viewtalkpage": "Voir la page de discussion",
-       "otherlanguages": "Dans d'autres langues",
+       "otherlanguages": "Dans dautres langues",
        "redirectedfrom": "(Redirigé depuis $1)",
        "redirectpagesub": "Page de redirection",
        "redirectto": "Rediriger vers :",
        "jumpto": "Aller à :",
        "jumptonavigation": "navigation",
        "jumptosearch": "rechercher",
-       "view-pool-error": "Désolé, les serveurs sont surchargés en ce moment.\nTrop d’utilisateurs cherchent à consulter cette page.\nVeuillez attendre un peu avant de réessayer d’accéder à celle-ci.\n\n$1",
+       "view-pool-error": "Désolé, les serveurs sont surchargés en ce moment.\nTrop d’utilisateurs cherchent à consulter cette page.\nVeuillez attendre un peu avant d’essayer à nouveau d’accéder à celle-ci.\n\n$1",
        "generic-pool-error": "Désolé, les serveurs sont surchargés en ce moment.\nTrop d’utilisateurs cherchent à consulter cette ressource.\nVeuillez attendre un peu avant de tenter à nouveau l’accès à celle-ci.",
        "pool-timeout": "Délai d’attente du verrou dépassé",
        "pool-queuefull": "La file des processus est pleine",
        "viewdeleted": "Voir $1 ?",
        "restorelink": "{{PLURAL:$1|une modification effacée|$1 modifications effacées}}",
        "feedlinks": "Flux :",
-       "feed-invalid": "Type de flux invalide pour abonnement.",
+       "feed-invalid": "Type de flux d’abonnement non valide.",
        "feed-unavailable": "Les flux de syndication ne sont pas disponibles",
        "site-rss-feed": "Flux RSS de $1",
        "site-atom-feed": "Flux Atom de $1",
        "databaseerror-query": "Requête : $1",
        "databaseerror-function": "Fonction : $1",
        "databaseerror-error": "Erreur : $1",
-       "transaction-duration-limit-exceeded": "Pour éviter une trop forte augmentation du délai de réplication, cette transaction a été annulée car la durée d’écriture ($1) a dépassé la limite de $2 seconde{{PLURAL:$2||s}}. Si vous cherchez à modifier un grand nombre d’éléments simultanément, essayez plutôt d’effectuer l’opération en plusieurs étapes.",
+       "transaction-duration-limit-exceeded": "Pour éviter une trop forte augmentation du délai de réplication, cette transaction a été annulée car la durée d’écriture ($1) a dépassé la limite de $2 seconde{{PLURAL:$2||s}}. Si vous cherchez à modifier un grand nombre d’éléments simultanément, essayez plutôt d’effectuer l’opération en plusieurs étapes plus petites.",
        "laggedslavemode": "Attention, cette page peut ne pas contenir les toutes dernières modifications effectuées",
        "readonly": "Base de données verrouillée",
        "enterlockreason": "Indiquez la raison du verrouillage ainsi qu’une estimation de sa durée",
        "protectedpagetext": "Cette page a été protégée pour empêcher sa modification ou d’autres actions.",
        "viewsourcetext": "Vous pouvez voir et copier le contenu de cette page.",
        "viewyourtext": "Vous pouvez voir et copier le contenu de <strong>vos modifications</strong> à cette page.",
-       "protectedinterface": "Cette page fournit du texte d’interface pour le logiciel sur ce wiki et est protégée pour éviter les abus.\nPour ajouter ou modifier des traductions sur tous les wikis, veuillez utiliser [//translatewiki.net/ translatewiki.net], le projet de localisation de MediaWiki.",
+       "protectedinterface": "Cette page fournit du texte d’interface pour le logiciel sur ce wiki et est protégée pour éviter les abus.\nPour ajouter ou modifier des traductions sur tous les wikis, veuillez utiliser [https://translatewiki.net/ translatewiki.net], le projet de localisation de MediaWiki.",
        "editinginterface": "<strong>Attention :</strong> vous êtes en train de modifier une page utilisée pour créer le texte de l’interface du logiciel.\nLes changements sur cette page se répercuteront sur l’apparence de l’interface utilisateur pour les autres utilisateurs de ce wiki.",
-       "translateinterface": "Pour ajouter ou modifier des traductions pour tous les wikis, veuillez utiliser [//translatewiki.net/ translatewiki.net], le projet de localisation de MediaWiki.",
+       "translateinterface": "Pour ajouter ou modifier des traductions pour tous les wikis, veuillez utiliser [https://translatewiki.net/ translatewiki.net], le projet de localisation linguistique de MediaWiki.",
        "cascadeprotected": "Cette page est protégée contre les modifications car elle est transcluse par {{PLURAL:$1|la page suivante, qui a été protégée|les pages suivantes, qui ont été protégées}} avec l’option « protection en cascade » activée :\n$2",
        "namespaceprotected": "Vous n’avez pas la permission de modifier les pages de l’espace de noms « <strong>$1</strong> ».",
        "customcssprotected": "Vous n’avez pas la permission de modifier cette page de CSS, car elle contient les paramètres personnels d’un autre utilisateur.",
        "nocookiesnew": "Le compte utilisateur a été créé, mais vous n’êtes pas connecté{{GENDER:||e|(e)}}.\n{{SITENAME}} utilise des cookies pour conserver la connexion mais vous les avez désactivés.\nVeuillez les activer et vous reconnecter avec le même nom et le même mot de passe.",
        "nocookieslogin": "{{SITENAME}} utilise des cookies pour conserver la connexion mais vous les avez désactivés.\nVeuillez les activer et vous reconnecter.",
        "nocookiesfornew": "Le compte utilisateur n’a pas été créé, car nous n’avons pas pu identifier son origine.\nVérifiez que vous avez activé les cookies, rechargez la page et essayez à nouveau.",
-       "createacct-loginerror": "Le compte a bien été créé mais vous ne pouvez pas vous connecter automatiquement? Veuillez vous [[Special:UserLogin|connecter manuellement]].",
+       "createacct-loginerror": "Le compte a bien été créé mais vous ne pouvez pas vous connecter automatiquement. Veuillez vous [[Special:UserLogin|connecter manuellement]].",
        "noname": "Vous n’avez pas saisi un nom d’utilisateur valide.",
        "loginsuccesstitle": "Connecté",
        "loginsuccess": "<strong>Vous êtes maintenant connecté{{GENDER:$1||e|(e)}} à {{SITENAME}} en tant que « $1 ».</strong>",
-       "nosuchuser": "L’utilisateur « $1 » n’existe pas.\nLes noms d’utilisateurs sont sensibles à la casse.\nVérifiez l’orthographe, ou [[Special:CreateAccount|créez un nouveau compte]].",
+       "nosuchuser": "L’utilisateur « $1 » n’existe pas.\nLes noms d’utilisateur sont sensibles à la casse.\nVérifiez l’orthographe, ou [[Special:CreateAccount|créez un nouveau compte]].",
        "nosuchusershort": "Il n’y a pas de contributeur avec le nom « $1 ».\nVeuillez vérifier l’orthographe.",
        "nouserspecified": "Vous devez saisir un nom d’utilisateur.",
        "login-userblocked": "Cet utilisateur est bloqué. Connexion non autorisée.",
        "pt-createaccount": "Créer un compte",
        "pt-userlogout": "Se déconnecter",
        "php-mail-error-unknown": "Erreur inconnue dans la fonction <code>mail()</code> de PHP.",
-       "user-mail-no-addy": "Tenté d'envoyer un courriel sans adresse de courriel",
-       "user-mail-no-body": "Essai d'envoi d'un courriel avec un corps vide ou déraisonnablement court.",
+       "user-mail-no-addy": "Impossible d’envoyer un courriel sans adresse de courriel.",
+       "user-mail-no-body": "Essai d’envoi d’un courriel avec un corps vide ou déraisonnablement court.",
        "changepassword": "Changer de mot de passe",
-       "resetpass_announce": "Pour terminer l'enregistrement, vous devez fournir un nouveau mot de passe.",
+       "resetpass_announce": "Pour terminer votre inscription, vous devez fournir un nouveau mot de passe.",
        "resetpass_text": "<!-- Ajoutez le texte ici -->",
        "resetpass_header": "Changer le mot de passe du compte",
        "oldpassword": "Ancien mot de passe :",
        "changepassword-success": "Votre mot de passe a été modifié !",
        "changepassword-throttled": "Vous avez fait trop de tentatives de connexion récemment.\nVeuillez attendre $1 avant de réessayer.",
        "botpasswords": "Mots de passe de robots",
-       "botpasswords-summary": "<em>Mots de passe de robots</em> permet d’accéder à un compte utilisateur via l’API sans utiliser les identifiants de connexion principaux. Les droits utilisateur disponibles en étant connecté avec un mot de passe robot peuvent être réduits.\n\nSi vous ne voyez pas pourquoi vous voudriez faire cela, c’est que vous n’en avez pas besoin. Personne ne devrait jamais vous demander d’en générer un et de le lui donner.",
+       "botpasswords-summary": "Les <em>mots de passe de robots</em> permettent d’accéder à un compte utilisateur via l’API sans utiliser les identifiants de connexion principaux. Les droits utilisateur disponibles en étant connecté avec un mot de passe robot peuvent être réduits.\n\nSi vous ne voyez pas pourquoi vous voudriez faire cela, c’est que vous n’en avez pas besoin. Personne ne devrait jamais vous demander d’en générer un et de le lui donner.",
        "botpasswords-disabled": "Les mots de passe robots sont désactivés.",
        "botpasswords-no-central-id": "Pour utiliser les mots de passe de robots, vous devez être connecté à un compte centralisé.",
        "botpasswords-existing": "Mots de passe de robots existants",
        "botpasswords-label-delete": "Supprimer",
        "botpasswords-label-resetpassword": "Réinitialiser le mot de passe",
        "botpasswords-label-grants": "Droits applicables :",
-       "botpasswords-help-grants": "Chaque droit donne accès aux droits utilisateurs listés qu’a déjà un compte. Voyez le [[Special:ListGrants|tableau des droits]] pour plus d’information.",
+       "botpasswords-help-grants": "Chaque droit accordé donne accès aux droits utilisateurs listés dont dispose déjà un compte. Voyez le [[Special:ListGrants|tableau des droits]] pour plus d’information.",
        "botpasswords-label-restrictions": "Restrictions d’utilisation :",
        "botpasswords-label-grants-column": "Accordé",
        "botpasswords-bad-appid": "Le nom de robot « $1 » n’est pas valide.",
        "resetpass-temp-password": "Mot de passe temporaire :",
        "resetpass-abort-generic": "La modification du mot de passe a été annulée par une extension.",
        "resetpass-expired": "Votre mot de passe a expiré. Veuillez en fournir un nouveau pour vous connecter.",
-       "resetpass-expired-soft": "Votre mot de passe a expiré, et doit être réinitialisé. Veuillez en choisir un nouveau maintenant, ou cliquer sur « {{int:resetpass-submit-cancel}} » pour le faire plus tard.",
-       "resetpass-validity-soft": "Votre mot de passe n’est pas valide : $1\n\nVeuillez choisir un nouveau mot de passe maintenant, ou cliquez sur « {{int:resetpass-submit-cancel}} » pour le réinitialiser plus tard.",
+       "resetpass-expired-soft": "Votre mot de passe a expiré, et doit être réinitialisé. Veuillez en choisir un nouveau maintenant ou cliquer sur « {{int:authprovider-resetpass-skip-label}} » pour le faire plus tard.",
+       "resetpass-validity-soft": "Votre mot de passe n’est pas valide : $1\n\nVeuillez choisir un nouveau mot de passe maintenant, ou cliquez sur « {{int:authprovider-resetpass-skip-label}} » pour le réinitialiser plus tard.",
        "passwordreset": "Remise à zéro du mot de passe",
        "passwordreset-text-one": "Remplissez ce formulaire pour réinitialiser votre mot de passe.",
        "passwordreset-text-many": "{{PLURAL:$1|Remplissez un des champs pour recevoir un mot de passe temporaire par courriel.}}",
        "passwordreset-disabled": "La réinitialisation des mots de passe a été désactivée sur ce wiki.",
-       "passwordreset-emaildisabled": "Les fonctionnalités e-mail ont été désactivées sur ce wiki.",
+       "passwordreset-emaildisabled": "Les fonctionnalités de courriel ont été désactivées sur ce wiki.",
        "passwordreset-username": "Nom d'utilisateur :",
        "passwordreset-domain": "Domaine :",
        "passwordreset-capture": "Voir le courriel résultant ?",
-       "passwordreset-capture-help": "Si vous cochez cette case, le courriel (avec le mot de passe temporaire) vous sera affiché en même temps qu'il sera envoyé à l'utilisateur.",
+       "passwordreset-capture-help": "Si vous cochez cette case, le courriel (avec le mot de passe temporaire) vous sera affiché en même temps qu’il sera envoyé à l’utilisateur.",
        "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é un 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}}. Vous devez maintenant vous connecter et choisir un nouveau mot de passe. Si cette demande ne provient pas de vous, ou que 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é un 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}}. Vous devez maintenant vous connecter et choisir un nouveau mot de passe. Si cette demande ne provient pas de vous, ou que 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-emailtext-ip": "Quelqu’un (probablement vous, depuis l’adresse IP $1) a demandé un 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}}. Vous devez maintenant vous connecter et choisir un nouveau mot de passe. Si cette demande ne provient pas de vous, ou que 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": "Lutilisateur $1 sur {{SITENAME}} a demandé un 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}}. Vous devez maintenant vous connecter et choisir un nouveau mot de passe. Si cette demande ne provient pas de vous, ou que 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 dutilisateur : \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é.",
        "passwordreset-emailsent-capture": "Un courriel de réinitialisation de mot de passe a été envoyé, qui est affiché ci-dessous.",
-       "passwordreset-emailerror-capture": "Un courriel de réinitialisation de mot de passe a été généré, qui est affiché ci-dessous, mais l'envoi à l'{{GENDER:$2|utilisateur|utilisatrice}} a échoué : $1",
-       "passwordreset-emailsent-capture2": "The password reset {{PLURAL:$1|Le courriel de réinitialisation du mot de passe a été envoyé|Les courriels de réinitialisation du mot de passe ont été envoyés}}. {{PLURAL:$1|Le nom d’utilisateur et le mot de passe sont affichés|La liste des noms d’utilisateur et mots de passe est affichée}} ci-dessous.",
+       "passwordreset-emailerror-capture": "Un courriel de réinitialisation de mot de passe a été généré, qui est affiché ci-dessous, mais l’envoi à l’{{GENDER:$2|utilisateur|utilisatrice}} a échoué : $1",
+       "passwordreset-emailsent-capture2": "{{PLURAL:$1|Le courriel de réinitialisation du mot de passe a été envoyé|Les courriels de réinitialisation du mot de passe ont été envoyés}}. {{PLURAL:$1|Le nom d’utilisateur et le mot de passe sont affichés|La liste des noms d’utilisateur et mots de passe est affichée}} ci-dessous.",
        "passwordreset-emailerror-capture2": "L’envoi de courriel à {{GENDER:$2|l’utilisateur|l’utilisatrice}} a échoué : $1 {{PLURAL:$3|Le nom d’utilisateur et le mot de passe sont affichés|La liste des noms d’utilisateur et des mots de passe est affichée}} ci-dessous.",
        "passwordreset-nocaller": "Un appelant doit être fourni",
        "passwordreset-nosuchcaller": "L’appelant n’existe pas : $1",
-       "passwordreset-ignored": "La réinitialisation du mot de passe n’a pas été gérée. Peut-être qu'aucun fournisseur n’a été configuré ?",
+       "passwordreset-ignored": "La réinitialisation du mot de passe n’a pas été gérée. Peut-être quaucun fournisseur n’a été configuré ?",
        "passwordreset-invalideamil": "Adresse de messagerie non valide",
-       "passwordreset-nodata": "Aucun nom d’utilisateur ni adresse de messagerie n’a été fourni",
+       "passwordreset-nodata": "Ni un nom d’utilisateur ni une adresse de messagerie n’a  été fourni",
        "changeemail": "Changer ou supprimer l’adresse de courriel",
        "changeemail-header": "Complétez ce formulaire pour modifier votre adresse de courriel. Si vous voulez supprimer l’association d’une adresse de courriel avec votre compte, laissez la nouvelle adresse de courriel vide lors de la soumission du formulaire.",
        "changeemail-passwordrequired": "Vous devrez saisir votre mot de passe pour confirmer cette modification.",
        "italic_tip": "Texte italique",
        "link_sample": "Titre du lien",
        "link_tip": "Lien interne",
-       "extlink_sample": "http://www.example.com titre du lien",
+       "extlink_sample": "http://www.example.com/ titre du lien",
        "extlink_tip": "Lien externe (n'oubliez pas le préfixe http://)",
        "headline_sample": "Texte du titre",
        "headline_tip": "Sous-titre niveau 2",
        "minoredit": "Modification mineure",
        "watchthis": "Suivre cette page",
        "savearticle": "Enregistrer",
+       "savechanges": "Enregistrer les modifications",
        "publishpage": "Publier la page",
+       "publishchanges": "Publier les modifications",
        "preview": "Prévisualisation",
        "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 « {{int:savearticle}} », 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, entre autres avantages.",
-       "anonpreviewwarning": "''Vous n’êtes pas identifié{{GENDER:||e}}. Sauvegarder enregistrera votre adresse IP dans l’historique des modifications de la page.''",
-       "missingsummary": "'''Rappel :''' vous n'avez pas encore fourni le résumé de votre modification.\nSi vous cliquez de nouveau sur le bouton « {{int:savearticle}} », la publication sera faite sans nouvel avertissement.",
-       "selfredirect": "<strong>Attention :</strong> Vous êtes en train de rediriger la page vers elle-même.\nVous pouvez avoir spécifié la mauvaise cible pour la redirection, ou vous modifiez peut-être la mauvaise page.\nSi vous cliquez de nouveau sur « {{int:savearticle}} », la redirection sera créée tout de même.",
+       "blankarticle": "<strong>Attention :</strong> la page que vous créez est vide.\nSi vous cliquez de nouveau sur « {{int:savearticle}} », 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, entre autres avantages.",
+       "anonpreviewwarning": "<em>Vous n’êtes pas identifié{{GENDER:||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 « {{int:savearticle}} », la publication sera faite sans nouvel avertissement.",
+       "selfredirect": "<strong>Attention :</strong> vous êtes en train de rediriger la page vers elle-même.\nVous pouvez avoir spécifié la mauvaise cible pour la redirection, ou vous modifiez peut-être la mauvaise page.\nSi vous cliquez de nouveau sur « {{int:savearticle}} », la redirection sera tout de même créée.",
        "missingcommenttext": "Veuillez entrer un commentaire ci-dessous.",
-       "missingcommentheader": "<strong>Rappel :</strong> Vous n’avez pas fourni de sujet pour ce commentaire.\nSi vous cliquez de nouveau sur « {{int:Savearticle}} », votre modification sera enregistrée sans sujet.",
+       "missingcommentheader": "<strong>Rappel :</strong> vous n’avez pas fourni de sujet pour ce commentaire.\nSi vous cliquez de nouveau sur « {{int:Savearticle}} », votre modification sera enregistrée sans sujet.",
        "summary-preview": "Aperçu du résumé :",
        "subject-preview": "Aperçu du sujet :",
        "previewerrortext": "Une erreur s’est produite lors de la tentative de prévisualisation de vos modifications.",
        "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]].",
        "nosuchsectiontitle": "Impossible de trouver la section",
-       "nosuchsectiontext": "Vous avez essayé de modifier une section qui n'existe pas.\nElle a peut-être été déplacée ou supprimée depuis que vous avez lu cette page.",
+       "nosuchsectiontext": "Vous avez essayé de modifier une section qui nexiste pas.\nElle a peut-être été déplacée ou supprimée depuis que vous avez lu cette page.",
        "loginreqtitle": "Connexion nécessaire",
        "loginreqlink": "connecter",
        "loginreqpagetext": "Vous devez vous $1 pour voir les autres pages.",
        "accmailtitle": "Mot de passe envoyé.",
        "accmailtext": "Un mot de passe généré aléatoirement pour [[User talk:$1|$1]] a été envoyé à $2.\nIl peut être modifié sur la page ''[[Special:ChangePassword|Changement de mot de passe]]'' après connexion.",
        "newarticle": "(Nouveau)",
-       "newarticletext": "Vous avez suivi un lien vers une page qui n’existe pas encore. \nAfin de créer cette page, entrez votre texte dans la boîte ci-après (vous pouvez consulter [$1 la page d’aide] pour plus d’informations). \nSi vous êtes arrivé{{GENDER:||e}} ici par erreur, cliquez sur le bouton '''retour''' de votre navigateur.",
+       "newarticletext": "Vous avez suivi un lien vers une page qui n’existe pas encore. \nAfin de créer cette page, entrez votre texte dans la boîte ci-après (vous pouvez consulter [$1 la page d’aide] pour plus d’informations). \nSi vous êtes arrivé{{GENDER:||e}} ici par erreur, cliquez sur le bouton <strong>Retour</strong> de votre navigateur.",
        "anontalkpagetext": "----\n<em>Vous êtes sur la page de discussion d’un utilisateur anonyme qui n’a pas encore créé de compte ou qui n’en utilise pas</em>.\nPour cette raison, nous devons utiliser son adresse IP pour l’identifier.\nUne adresse IP peut être partagée par plusieurs utilisateurs.\nSi vous êtes un{{GENDER:||e|}} utilisat{{GENDER:|eur|rice|eur}} anonyme et si vous constatez que des commentaires qui ne vous concernent pas vous ont été adressés, vous pouvez [[Special:CreateAccount|créer un compte]] ou [[Special:UserLogin|vous connecter]] afin d’éviter toute confusion future avec d’autres contributeurs anonymes.",
        "noarticletext": "Il n’y a pour l’instant aucun texte sur cette page.\nVous pouvez [[Special:Search/{{PAGENAME}}|lancer une recherche sur ce titre]] dans les autres pages,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} rechercher dans les opérations liées]\nou [{{fullurl:{{FULLPAGENAME}}|action=edit}} créer cette page]</span>.",
        "noarticletext-nopermission": "Il n'y a pour l'instant aucun texte sur cette page.\nVous pouvez [[Special:Search/{{PAGENAME}}|faire une recherche sur ce titre]] dans les autres pages,\nou <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} rechercher dans les journaux associés]</span>.",
-       "missing-revision": "La révision n° $1 de la page intitulée Â« {{FULLPAGENAME}} Â» n'existe pas.\n\nCela survient en général en suivant un lien historique obsolète vers une page qui a été supprimée.\nVous pouvez trouver plus de détails dans le [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} journal des suppressions].",
-       "userpage-userdoesnotexist": "Le compte utilisateur « <nowiki>$1</nowiki> » n'est pas enregistré. Veuillez vérifier que vous voulez créer cette page.",
+       "missing-revision": "La révision nº $1 de la page intitulée Â« {{FULLPAGENAME}} Â» nâ\80\99existe pas.\n\nCela survient en général en suivant un lien historique obsolète vers une page qui a été supprimée.\nVous pouvez trouver plus de détails dans le [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} journal des suppressions].",
+       "userpage-userdoesnotexist": "Le compte utilisateur « <nowiki>$1</nowiki> » nest pas enregistré. Veuillez vérifier que vous voulez créer cette page.",
        "userpage-userdoesnotexist-view": "Le compte utilisateur « $1 » n'est pas enregistré.",
        "blocked-notice-logextract": "Cet utilisateur est actuellement bloqué.\nLa dernière entrée du journal des blocages est indiquée ci-dessous à titre d’information :",
-       "clearyourcache": "<strong>Note :</strong> après avoir enregistré vos modifications, il se peut que vous deviez forcer le rechargement complet du cache de votre navigateur pour voir les changements.\n* <strong>Firefox / Safari :</strong> Maintenez la touche <em>Maj</em> (<em>Shift</em>) en cliquant sur le bouton <em>Actualiser</em> ou pressez <em>Ctrl-F5</em> ou <em>Ctrl-R</em> (<em>⌘-R</em> sur un Mac) ;\n* <strong>Google Chrome :</strong> Appuyez sur <em>Ctrl-Maj-R</em> (<em>⌘-Shift-R</em> sur un Mac) ;\n* <strong>Internet Explorer :</strong> Maintenez la touche <em>Ctrl</em> en cliquant sur le bouton <em>Actualiser</em> ou pressez <em>Ctrl-F5</em> ;\n* <strong>Opera :</strong> Allez dans <em>Menu → Settings</em> (<em>Opera → Préférences</em> sur un Mac) et ensuite à <em>Confidentialité & sécurité → Effacer les données d'exploration → Images et fichiers en cache</em>.",
-       "usercssyoucanpreview": "'''Astuce :''' utilisez le bouton « {{int:showpreview}} » pour tester votre nouvelle feuille CSS avant de l'enregistrer.",
-       "userjsyoucanpreview": "'''Astuce :''' utilisez le bouton « {{int:showpreview}} » pour tester votre nouvelle feuille JavaScript avant de l'enregistrer.",
-       "usercsspreview": "'''Rappelez-vous que vous n'êtes qu'en train de prévisualiser votre propre feuille CSS.'''\n'''Elle n'a pas encore été enregistrée !'''",
-       "userjspreview": "'''Rappelez-vous que vous êtes en train de visualiser ou de tester votre code JavaScript et qu'il n'a pas encore été enregistré !'''",
-       "sitecsspreview": "'''Souvenez-vous que vous êtes seulement en train de prévisualiser cette feuille de style.'''\n'''Elle n'a pas encore été enregistrée !'''",
-       "sitejspreview": "'''Souvenez-vous que vous êtes seulement en train de prévisualiser ce code JavaScript.'''\n'''Il n'a pas encore été enregistré !'''",
-       "userinvalidcssjstitle": "'''Attention :''' il n'existe pas d'habillage « $1 ». Rappelez-vous que les pages personnelles avec extensions .css et .js utilisent des titres en minuscules, par exemple {{ns:user}}:Foo/vector.css et non {{ns:user}}:Foo/Vector.css.",
+       "clearyourcache": "<strong>Note :</strong> après avoir enregistré vos modifications, il se peut que vous deviez forcer le rechargement complet du cache de votre navigateur pour voir les changements.\n* <strong>Firefox / Safari :</strong> maintenez la touche <em>Maj</em> (<em>Shift</em>) en cliquant sur le bouton <em>Actualiser</em> ou pressez <em>Ctrl-F5</em> ou <em>Ctrl-R</em> (<em>⌘-R</em> sur un Mac) ;\n* <strong>Google Chrome :</strong> appuyez sur <em>Ctrl-Maj-R</em> (<em>⌘-Shift-R</em> sur un Mac) ;\n* <strong>Internet Explorer :</strong> maintenez la touche <em>Ctrl</em> en cliquant sur le bouton <em>Actualiser</em> ou pressez <em>Ctrl-F5</em> ;\n* <strong>Opera :</strong> allez dans <em>Menu → Settings</em> (<em>Opera → Préférences</em> sur un Mac) et ensuite à <em>Confidentialité & sécurité → Effacer les données d’exploration → Images et fichiers en cache</em>.",
+       "usercssyoucanpreview": "<strong>Astuce :</strong> utilisez le bouton « {{int:showpreview}} » pour tester votre nouvelle feuille CSS avant de l’enregistrer.",
+       "userjsyoucanpreview": "<strong>Astuce :</strong> utilisez le bouton « {{int:showpreview}} » pour tester votre nouvelle feuille JavaScript avant de l’enregistrer.",
+       "usercsspreview": "<strong>Rappelez-vous que vous ne faites que prévisualiser votre propre feuille CSS. \nElle n’a pas encore été enregistrée !</strong>",
+       "userjspreview": "<strong>Rappelez-vous que vous ne faites que visualiser ou tester votre code JavaScript.\nIl n’a pas encore été enregistré !</strong>",
+       "sitecsspreview": "<strong>Rappelez-vous que vous ne faites que prévisualiser cette feuille de style. \nElle n’a pas encore été enregistrée !</strong>",
+       "sitejspreview": "<strong>Rappelez-vous que vous ne faites que prévisualiser ce code JavaScript. Il n’a pas encore été enregistré !</strong>",
+       "userinvalidcssjstitle": "<strong>Attention :</strong> il n’existe pas d’habillage « $1 ». Rappelez-vous que les pages personnelles avec extensions .css et .js utilisent des titres de sous-pages en minuscules, par exemple {{ns:user}}:Foo/vector.css et non {{ns:user}}:Foo/Vector.css.",
        "updated": "(Mis à jour)",
-       "note": "'''Note :'''",
-       "previewnote": "'''Rappelez-vous que ce n'est qu'une prévisualisation.'''\nVos modifications n'ont pas encore été enregistrées !",
+       "note": "<strong>Note :</strong>",
+       "previewnote": "<strong>Rappelez-vous que ce n’est qu’une prévisualisation.</strong>\nVos modifications n’ont pas encore été enregistrées !",
        "continue-editing": "Aller à la zone de modification",
-       "previewconflict": "Cette prévisualisation montre le texte de la boîte supérieure de modification tel qu'il apparaîtra si vous choisissez de le publier.",
+       "previewconflict": "Cette prévisualisation montre le texte de la boîte supérieure de modification tel quil apparaîtra si vous choisissez de le publier.",
        "session_fail_preview": "Désolé, nous ne pouvons enregistrer votre modification à cause d’une perte d’informations concernant votre session.\n\nVous avez peut-être été déconnecté. <strong>Veuillez vérifier que vous êtes toujours connecté et réessayer.</strong>\nSi cela échoue de nouveau, essayez en vous [[Special:UserLogout|déconnectant]], puis en vous reconnectant, et vérifiez que votre navigateur accepte les cookies de ce site.",
        "session_fail_preview_html": "Désolé, nous ne pouvons enregistrer votre modification à cause d’une perte d’informations concernant votre session.\n\n<em>Parce que {{SITENAME}} a activé le HTML brut, la prévisualisation est masquée afin de prévenir les attaques par JavaScript.</em>\n\n<strong>Si la tentative de modification est légitime, veuillez réessayer.</strong>\nSi cela échoue de nouveau, [[Special:UserLogout|déconnectez-vous]], puis reconnectez-vous, et vérifiez que votre navigateur accepte les cookies de ce site.",
-       "token_suffix_mismatch": "'''Votre modification n'a pas été acceptée car votre navigateur a mal codé les caractères de ponctuation dans l'identifiant de modification.'''\nCe rejet est nécessaire pour empêcher la corruption du texte de la page.\nCe problème se produit parfois lorsque vous utilisez un serveur mandataire anonyme problématique basé sur le web.",
-       "edit_form_incomplete": "'''Certaines parties du formulaire de modification n'ont pas atteint le serveur, vérifiez que vos modifications sont intactes et essayez à nouveau.'''",
+       "token_suffix_mismatch": "<strong>Votre modification n’a pas été acceptée car votre navigateur a mal codé les caractères de ponctuation dans l’identifiant de modification.</strong>\nCe rejet est nécessaire pour empêcher la corruption du texte de la page.\nCe problème se produit parfois lorsque vous utilisez un serveur mandataire anonyme problématique basé sur le web.",
+       "edit_form_incomplete": "<strong>Certaines parties du formulaire de modification n’ont pas atteint le serveur, vérifiez que vos modifications sont intactes et essayez à nouveau.</strong>",
        "editing": "Modification de $1",
        "creating": "Création de $1",
        "editingsection": "Modification de $1 (section)",
        "editingcomment": "Modification de $1 (nouvelle section)",
        "editconflict": "Conflit de modification : $1",
-       "explainconflict": "Cette page a été changée après que vous ayez commencé à la modifier.\nLa zone de modification supérieure contient le texte tel qu'il est actuellement enregistré dans la base de données.\nVos modifications apparaissent dans la zone de modification inférieure.\nVous allez devoir fusionner vos modifications dans le texte existant.\n'''Seul''' le texte de la zone supérieure sera sauvegardé si vous cliquez sur « {{int:savearticle}} ».",
+       "explainconflict": "Cette page a été changée après que vous ayez commencé à la modifier.\nLa zone de modification supérieure contient le texte tel qu’il est actuellement enregistré dans la base de données.\nVos modifications apparaissent dans la zone de modification inférieure.\nVous allez devoir fusionner vos modifications dans le texte existant.\n<strong>Seul</strong> le texte de la zone supérieure sera sauvegardé si vous cliquez sur « {{int:savearticle}} ».",
        "yourtext": "Votre texte",
        "storedversion": "La version enregistrée",
-       "nonunicodebrowser": "'''Attention : Votre navigateur ne supporte pas l'Unicode.'''\nUne solution de rechange a été trouvée pour vous permettre de modifier en toute sûreté une page : les caractères non-ASCII apparaîtront dans votre boîte de modification en tant que codes hexadécimaux. Vous devriez utiliser un navigateur plus récent.",
-       "editingold": "'''Attention : vous êtes en train de modifier une ancienne version de cette page.\nSi vous la publiez, toutes les modifications effectuées depuis cette version seront perdues.'''",
+       "nonunicodebrowser": "<strong>Attention : votre navigateur ne supporte pas l’Unicode.</strong>\nUn palliatif est en place vous permettant de modifier les pages en toute sécurité, faisant apparaître les caractères non-ASCII  sous forme hexadécimale dans la boîte de modification.",
+       "editingold": "<strong>Attention : vous êtes en train de modifier une ancienne version de cette page.</strong>\nSi vous la publiez, toutes les modifications effectuées depuis cette version seront perdues.",
        "yourdiff": "Différences",
-       "copyrightwarning": "Toutes les contributions à {{SITENAME}} sont considérées comme publiées sous les termes de la $2 (voir $1 pour plus de détails). Si vous ne désirez pas que vos écrits soient modifiés et distribués à volonté, merci de ne pas les soumettre ici.<br />\nVous nous promettez aussi que vous avez écrit ceci vous-même, ou que vous l’avez copié d’une source provenant du domaine public, ou d’une ressource libre. '''N’UTILISEZ PAS DE TRAVAUX SOUS DROIT D’AUTEUR SANS AUTORISATION EXPRESSE !'''",
-       "copyrightwarning2": "Toutes les contributions à {{SITENAME}} peuvent être modifiées ou supprimées par d’autres utilisateurs. Si vous ne désirez pas que vos écrits soient modifiés et distribués à volonté, merci de ne pas les soumettre ici.<br \n/>Vous nous promettez aussi que vous avez écrit ceci vous-même, ou que vous l’avez copié d’une source provenant du domaine public, ou d’une ressource libre. (voir $1 pour plus de détails).\n'''N’UTILISEZ PAS DE TRAVAUX SOUS DROIT D’AUTEUR SANS AUTORISATION EXPRESSE !'''",
+       "copyrightwarning": "Toutes les contributions à {{SITENAME}} sont considérées comme publiées sous les termes de la $2 (voir $1 pour plus de détails). Si vous ne désirez pas que vos écrits soient modifiés et distribués à volonté, merci de ne pas les soumettre ici.<br /> Vous nous promettez aussi que vous avez écrit ceci vous-même, ou que vous l’avez copié d’une source provenant du domaine public ou d’une ressource libre similaire. <strong>N’UTILISEZ PAS DE TRAVAUX SOUS DROIT D’AUTEUR SANS AUTORISATION EXPRESSE !</strong>",
+       "copyrightwarning2": "Toutes les contributions à {{SITENAME}} peuvent être modifiées ou supprimées par d’autres utilisateurs. Si vous ne désirez pas que vos écrits soient modifiés et distribués à volonté, merci de ne pas les soumettre ici.<br \n/>Vous nous promettez aussi que vous avez écrit ceci vous-même, ou que vous l’avez copié d’une source provenant du domaine public, ou d’une ressource libre. (voir $1 pour plus de détails).\n<strong>N’UTILISEZ PAS DE TRAVAUX SOUS DROIT D’AUTEUR SANS AUTORISATION EXPRESSE !<strong>",
        "editpage-cannot-use-custom-model": "Le modèle de contenu de cette page ne peut pas être modifié.",
        "longpageerror": "<strong>Erreur : Le texte que vous avez soumis fait {{PLURAL:$1|un Kio|$1 Kio}}, ce qui dépasse la limite fixée à {{PLURAL:$2|un Kio|$2 Kio}}.</strong>\nIl ne peut pas être sauvegardé.",
        "readonlywarning": "<strong>AVERTISSEMENT : la base de données a été verrouillée pour des opérations de maintenance. Vous ne pouvez donc pas publier vos modifications pour l’instant.</strong>\nVous pouvez copier et coller votre texte dans un fichier texte et l’enregistrer pour plus tard.\n\nL’administrateur système ayant verrouillé la base de données a donné l’explication suivante : $1",
        "nocreatetext": "{{SITENAME}} a restreint la possibilité de créer de nouvelles pages.\nVous pouvez revenir en arrière et modifier une page existante, ou bien [[Special:UserLogin|vous connecter ou créer un compte]].",
        "nocreate-loggedin": "Vous n'avez pas la permission de créer de nouvelles pages.",
        "sectioneditnotsupported-title": "Modification de section non prise en charge",
-       "sectioneditnotsupported-text": "La modification d'une section n'est pas prise en charge pour cette page.",
+       "sectioneditnotsupported-text": "La modification d’une section n’est pas prise en charge pour cette page.",
        "permissionserrors": "Erreur de permissions",
        "permissionserrorstext": "Vous n'avez pas la permission d'effectuer l'opération demandée pour {{PLURAL:$1|la raison suivante|les raisons suivantes}} :",
        "permissionserrorstext-withaction": "Vous ne pouvez pas $2, pour {{PLURAL:$1|la raison suivante|les raisons suivantes}} :",
        "moveddeleted-notice": "Cette page a été supprimée. Le journal des suppressions et des déplacements est affiché ci-dessous pour référence.",
        "moveddeleted-notice-recent": "Désolé, cette page a été récemment supprimée (dans les dernières 24 heures).\nLes journaux des suppressions et des renommages pour la page sont fournis ci-dessous à titre d’information.",
        "log-fulllog": "Voir le journal complet",
-       "edit-hook-aborted": "Échec de la modification par une extension.\nCause inconnue",
-       "edit-gone-missing": "N'a pas pu mettre à jour la page.\nIl semble qu'elle ait été supprimée.",
+       "edit-hook-aborted": "Échec de la modification par une extension.\nAucune explication n’a été retournée.",
+       "edit-gone-missing": "N’a pas pu mettre à jour la page.\nIl semble qu’elle ait été supprimée.",
        "edit-conflict": "Conflit de modification.",
-       "edit-no-change": "Votre modification a été ignorée car aucun changement n'a été fait au texte.",
+       "edit-no-change": "Votre modification a été ignorée car aucun changement na été fait au texte.",
        "postedit-confirmation-created": "La page a été créée.",
        "postedit-confirmation-restored": "La page a été restaurée.",
        "postedit-confirmation-saved": "Votre modification a été enregistrée.",
-       "edit-already-exists": "La nouvelle page n'a pas pu être créée.\nElle existe déjà.",
+       "edit-already-exists": "La nouvelle page na pas pu être créée.\nElle existe déjà.",
        "defaultmessagetext": "Message par défaut",
        "content-failed-to-parse": "Échec de l’analyse syntaxique du contenu de $2 pour le modèle $1 : $3",
        "invalid-content-data": "Données du contenu non valides",
        "content-model-css": "CSS",
        "content-json-empty-object": "Objet vide",
        "content-json-empty-array": "Tableau vide",
+       "deprecated-self-close-category": "Pages utilisant des balises HTML auto-fermantes non valides",
+       "deprecated-self-close-category-desc": "La page contient des balises HTML auto-fermantes non valides, comme <code>&lt;b/></code> ou <code>&lt;span/></code>.  Le comportement de celles-ci changera prochainement pour être en accord avec la spécification HTML5, donc leur utilisation dans le wikitexte est obsolète.",
        "duplicate-args-warning": "<strong>Avertissement :</strong> [[:$1]] appelle [[:$2]] avec plus d'une valeur pour le paramètre « $3 ». Seule la dernière valeur fournie sera utilisée.",
        "duplicate-args-category": "Pages utilisant des arguments dupliqués dans les appels de modèle",
        "duplicate-args-category-desc": "La page contient des appels de modèle qui utilisent des arguments dupliqués, comme <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> ou <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
-       "expensive-parserfunction-warning": "Attention : cette page contient de trop nombreux appels à des fonctions coûteuses de l'analyseur syntaxique.\n\nIl devrait y avoir moins de $2 appel{{PLURAL:$2||s}}, alors qu'il y en a maintenant $1.",
+       "expensive-parserfunction-warning": "<strong>Attention :</strong> cette page contient de trop nombreux appels à des fonctions coûteuses de l’analyseur syntaxique.\n\nIl devrait y avoir moins de $2 appel{{PLURAL:$2||s}}, alors qu’il y en a maintenant $1.",
        "expensive-parserfunction-category": "Pages avec trop d'appels dispendieux de fonctions de l'analyseur syntaxique",
-       "post-expand-template-inclusion-warning": "Attention : Cette page contient trop d'inclusions de modèles. Certaines inclusions ne seront pas effectuées.",
+       "post-expand-template-inclusion-warning": "<strong>Attention :</strong> cette page contient trop d’inclusions de modèles. Certaines inclusions ne seront pas effectuées.",
        "post-expand-template-inclusion-category": "Pages contenant trop d'inclusions de modèles",
-       "post-expand-template-argument-warning": "Attention : Cette page contient au moins un paramètre de modèle dont l'inclusion est rendue impossible. Après extension, celui-ci aurait produit un résultat trop long, il n'a donc pas été inclus.",
+       "post-expand-template-argument-warning": "<strong>Attention :</strong> cette page contient au moins un paramètre de modèle dont la taille après expansion est trop importante. \nCes arguments n’ont donc pas été inclus.",
        "post-expand-template-argument-category": "Pages contenant des paramètres de modèle non évalués",
        "parser-template-loop-warning": "Modèle en boucle détecté : [[$1]]",
        "parser-template-recursion-depth-warning": "Limite de profondeur des appels de modèles dépassée ($1)",
        "language-converter-depth-warning": "Limite de profondeur du convertisseur de langue dépassée ($1)",
-       "node-count-exceeded-category": "Pages où nombre de nœuds est dépassé",
-       "node-count-exceeded-category-desc": "Cette page dépasse le nombre maximal de nœuds.",
-       "node-count-exceeded-warning": "Page dépassant le nombre de nœuds",
-       "expansion-depth-exceeded-category": "Pages où la profondeur d'expansion est dépassée",
+       "node-count-exceeded-category": "Pages dépassant le nombre de nœuds maximal",
+       "node-count-exceeded-category-desc": "Ces pages dépassent le nombre maximal de nœuds.",
+       "node-count-exceeded-warning": "La page dépasse le nombre de nœuds maximal.",
+       "expansion-depth-exceeded-category": "Pages dépassant la profondeur d'expansion maximale",
        "expansion-depth-exceeded-category-desc": "La page dépasse la profondeur d’expansion maximale.",
-       "expansion-depth-exceeded-warning": "Page dépassant la profondeur d'expansion",
+       "expansion-depth-exceeded-warning": "Page dépassant la profondeur d’expansion maximale",
        "parser-unstrip-loop-warning": "Boucle non démontable détectée",
        "parser-unstrip-recursion-limit": "Limite de récursion non démontable dépassée ($1)",
        "converter-manual-rule-error": "Erreur détectée dans la règle manuelle de conversion de langue",
        "cantcreateaccount-text": "La création de compte depuis cette adresse IP (<b>$1</b>) a été bloquée par [[User:$3|$3]].\n\nLa raison donnée était ''$2''.",
        "cantcreateaccount-range-text": "La création de compte depuis les adresses IP dans la plage <strong>$1</strong>, qui comprend votre adresse IP (<strong>$4</strong>), ont été bloquées par [[User:$3|$3]].\n\nLe motif fourni par $3 est <em>$2</em>",
        "viewpagelogs": "Voir les opérations sur cette page",
-       "nohistory": "Il n'existe pas d'historique pour cette page.",
+       "nohistory": "Il n’existe pas d’historique des modifications pour cette page.",
        "currentrev": "Version actuelle",
-       "currentrev-asof": "Version actuelle en date du $1",
+       "currentrev-asof": "Version actuelle datée du $1",
        "revisionasof": "Version du $1",
-       "revision-info": "Révision de $1 par {{GENDER:$6|$2}}$7",
+       "revision-info": "Révision datée du $1 par {{GENDER:$6|$2}}$7",
        "previousrevision": "← Version précédente",
        "nextrevision": "Version suivante →",
        "currentrevisionlink": "Voir la version actuelle",
        "history-edit-tags": "Modifier les balises des révisions sélectionnées",
        "rev-deleted-comment": "(résumé de modification retiré)",
        "rev-deleted-user": "(nom d'utilisateur retiré)",
-       "rev-deleted-event": "(détails de l’entrée retirée)",
-       "rev-deleted-user-contribs": "[nom d'utilisateur ou adresse IP retiré - modification masquée sur les contributions]",
-       "rev-deleted-text-permission": "Cette version de la page a été '''effacée'''.\nDes détails sont disponibles dans le [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} journal des suppressions].",
+       "rev-deleted-event": "(détails de l’entrée retirés)",
+       "rev-deleted-user-contribs": "[nom d’utilisateur ou adresse IP retiré – modification masquée dans les contributions]",
+       "rev-deleted-text-permission": "Cette version de la page a été <strong>effacée</strong>.\nDes détails sont disponibles dans le [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} journal des suppressions].",
        "rev-suppressed-text-permission": "Cette version de la page a été <strong>masquée</strong>.\nLes détails se trouvent dans le [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} journal des masquages].",
        "rev-deleted-text-unhide": "Cette version de la page a été <strong>supprimée</strong>.\nDes détails sont disponibles dans [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} le journal des suppressions].\nVous pouvez toujours [$1 voir cette version] si vous le voulez.",
        "rev-suppressed-text-unhide": "Cette version de la page a été <strong>masquée</strong>.\nDes détails sont disponibles dans [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} le journal des masquages].\nVous pouvez toujours [$1 voir cette version] si vous le voulez.",
        "rightslogtext": "Voici l’historique des modifications des droits des utilisateurs.",
        "action-read": "lire cette page",
        "action-edit": "modifier cette page",
-       "action-createpage": "créer des pages",
-       "action-createtalk": "créer des pages de discussion",
+       "action-createpage": "créer cette page",
+       "action-createtalk": "créer cette page de discussion",
        "action-createaccount": "créer ce compte utilisateur",
        "action-autocreateaccount": "créer automatiquement ce compte utilisateur externe",
        "action-history": "afficher l’historique de cette page",
        "enhancedrc-history": "historique",
        "recentchanges": "Modifications récentes",
        "recentchanges-legend": "Options des modifications récentes",
-       "recentchanges-summary": "Piste les changements les plus récents du wiki sur cette page.",
+       "recentchanges-summary": "Suivez les changements les plus récents du wiki sur cette page.",
        "recentchanges-noresult": "Aucune modification correspondant à ces critères sur la période indiquée.",
-       "recentchanges-feed-description": "Suivre les dernières modifications de ce wiki dans un flux.",
+       "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.",
        "recentchanges-label-bot": "Cette modification a été effectuée par un robot.",
        "upload-http-error": "Une erreur HTTP est survenue : $1",
        "upload-copy-upload-invalid-domain": "La copie des téléversements n’est pas disponible depuis ce domaine.",
        "upload-foreign-cant-upload": "Ce wiki n’est pas configuré pour télécharger des fichiers vers le dépôt de fichiers externe demandé.",
+       "upload-foreign-cant-load-config": "Échec au chargement de la configuration du téléversement des fichiers vers le référentiel de fichiers étrangers.",
+       "upload-dialog-disabled": "Les téléversements de fichier utilisant cette boîte de dialogue sont désactivés sur ce wiki.",
        "upload-dialog-title": "Téléverser un fichier",
        "upload-dialog-button-cancel": "Annuler",
        "upload-dialog-button-done": "Terminé",
        "apisandbox": "Bac à sable API",
        "apisandbox-jsonly": "Le bac à sable de l'API nécessite JavaScript",
        "apisandbox-api-disabled": "API est désactivé sur ce site.",
-       "apisandbox-intro": "Utilisez cette page pour expérimenter l’<strong>API webservice de MediaWiki</strong>.\nReportez-vous à [[mw:API:Main page|la documentation de l’API]] pour plus de détails sur l’utilisation de l’API. Exemple: [//www.mediawiki.org/wiki/API#A_simple_example obtenir le contenu d'une page principale]. Choisissez une option pour voir d'autres exemples.",
+       "apisandbox-intro": "Utilisez cette page pour expérimenter l’<strong>API webservice de MediaWiki</strong>.\nReportez-vous à [[mw:API:Main page|la documentation de l’API]] pour plus de détails sur l’utilisation de l’API. Exemple: [https://www.mediawiki.org/wiki/API#A_simple_example obtenir le contenu d'une page principale]. Choisissez une option pour voir d'autres exemples.",
        "apisandbox-fullscreen": "Développer le panneau",
        "apisandbox-fullscreen-tooltip": "Étendre le panneau du bac à sable pour remplir la fenêtre du navigateur.",
        "apisandbox-unfullscreen": "Afficher la page",
        "trackingcategories-name": "Nom du message",
        "trackingcategories-desc": "Critère d’inclusion de la catégorie",
        "restricted-displaytitle-ignored": "Pages avec des titres d'affichage ignorés",
-       "restricted-displaytitle-ignored-desc": "La page a un <code><nowiki>{{DISPLAYTITLE}}</nowiki> </code> ignoré parce qu'il n'est pas équivalent au titre actuel de la page.",
+       "restricted-displaytitle-ignored-desc": "La page a un <code><nowiki>{{DISPLAYTITLE}}</nowiki></code> ignoré parce qu'il n'est pas équivalent au titre actuel de la page.",
        "noindex-category-desc": "La page contient <code><nowiki>__NOINDEX__</nowiki></code> et est dans un espace de noms où ce marquage est autorisé ; elle ne sera donc pas indexée par les robots.",
        "index-category-desc": "La page contient <code><nowiki>__INDEX__</nowiki></code> et est dans un espace de noms où ce marquage est autorisé ; elle sera donc indexée par les robots alors qu’elle ne l’aurait pas été normalement.",
        "post-expand-template-inclusion-category-desc": "La taille de la page dépasse <code>$wgMaxArticleSize</code> après le développement de tous ses modèles ; certains n’ont donc pas été développés.",
        "revertpage": "Révocation des modifications de [[Special:Contributions/$2|$2]] ([[User talk:$2|discussion]]) vers la dernière version de [[User:$1|$1]]",
        "revertpage-nouser": "Révocation des modifications par un utilisateur masqué à la dernière version par {{GENDER:$1|[[User:$1|$1]]}}",
        "rollback-success": "Révocation des modifications effectuées par $1 ;\nrétablissement de la dernière version par $2.",
-       "rollback-success-notify": "Modifications annulées par $1 ;\nretour à la dernière révision par $2. [$3 indique les changements]",
+       "rollback-success-notify": "Modifications annulées par $1 ;\nretour à la dernière révision par $2. [$3 Voir les changements]",
        "sessionfailure-title": "Erreur de session",
        "sessionfailure": "Votre session de connexion semble avoir des problèmes ;\ncette action a été annulée en prévention d'un piratage de session.\nVeuillez cliquer sur « Précédent », rechargez la page d'où vous venez, puis réessayez.",
        "changecontentmodel": "Modifier le modèle de contenu d’une page",
        "sp-contributions-username": "Adresse IP ou nom d'utilisateur :",
        "sp-contributions-toponly": "Ne montrer que les contributions qui sont les dernières des articles",
        "sp-contributions-newonly": "Afficher uniquement les modifications qui sont des créations de page",
+       "sp-contributions-hideminor": "Masquer les modifications mineures",
        "sp-contributions-submit": "Rechercher",
        "whatlinkshere": "Pages liées",
        "whatlinkshere-title": "Pages qui pointent vers « $1 »",
        "whatlinkshere-links": "← liens",
        "whatlinkshere-hideredirs": "$1 les redirections",
        "whatlinkshere-hidetrans": "$1 les inclusions",
-       "whatlinkshere-hidelinks": "$1 les liens",
+       "whatlinkshere-hidelinks": "$1 liens",
        "whatlinkshere-hideimages": "$1 les liens vers le fichier",
        "whatlinkshere-filters": "Filtres",
        "whatlinkshere-submit": "Lister",
        "lockedbyandtime": "(par $1 le $2 à $3)",
        "move-page": "Renommer $1",
        "move-page-legend": "Renommer une page",
-       "movepagetext": "Utilisez le formulaire ci-dessous pour renommer une page, en déplaçant tout son historique vers le nouveau nom. L’ancien titre deviendra une page de redirection vers le nouveau titre. Vous pouvez mettre à jour automatiquement les redirections actuelles qui pointent vers le titre original. Si vous choisissez de ne pas le faire, assurez-vous de vérifier toute [[Special:DoubleRedirects|double redirection]] ou [[Special:BrokenRedirects|redirection cassée]]. Vous avez la responsabilité de vous assurer que les liens continuent de pointer vers leur destination supposée.\n\nNotez que la page ne sera <string>pas</strong> renommée s’il existe déjà une page avec le nouveau titre, sauf si cette dernière est une simple redirection avec un historique de modifications vierge. Ceci permet de renommer une page vers sa position d’origine si le déplacement s’avère erroné.\n\n<strong>Attention !</strong>\nCeci peut provoquer un changement radical et imprévu pour une page souvent consultée ; assurez-vous d’en avoir compris les conséquences avant de continuer.",
+       "movepagetext": "Utilisez le formulaire ci-dessous pour renommer une page, en déplaçant tout son historique vers le nouveau nom. L’ancien titre deviendra une page de redirection vers le nouveau titre. \nVous pouvez mettre à jour automatiquement les redirections qui pointent vers le titre original. \nSi vous choisissez de ne pas le faire, assurez-vous de vérifier toute [[Special:DoubleRedirects|double redirection]] ou [[Special:BrokenRedirects|redirection cassée]]. Vous avez la responsabilité de vous assurer que les liens continuent de pointer vers leur destination supposée.\n\nNotez que la page ne sera <strong>pas</strong> renommée s’il existe déjà une page portant le nouveau titre, sauf si cette dernière est une simple redirection avec un historique de modifications vierge. \nCela signifie que vous pouvez de nouveau renommer une page vers sa position d’origine si vous avez fait une erreur et que vous ne pouvez pas écraser une page existante.\n\n<strong>Attention !</strong>\nCeci peut provoquer un changement radical et imprévu pour une page souvent consultée ; assurez-vous d’avoir compris les conséquences de votre démarche avant de continuer.",
        "movepagetext-noredirectfixer": "Utilisez le formulaire ci-dessous pour renommer une page, en déplaçant tout son historique vers le nouveau nom.\nL’ancien titre deviendra une page de redirection vers le nouveau titre.\nVérifiez bien les [[Special:DoubleRedirects|doubles redirections]] ou les [[Special:BrokenRedirects|redirections cassées]].\nVous avez la responsabilité de vous assurer que les liens continuent de pointer vers leur destination supposée.\n\nNotez que la page ne sera <strong>pas</strong> déplacée s’il existe déjà une page avec le nouveau titre, sauf si cette dernière a un historique de modifications vierge et est soit vide, soit une simple redirection. Ceci permet de renommer une page vers sa position d’origine si le déplacement s’avère erroné, et il est impossible d’écraser une page existante.\n\n<strong>Attention !</strong>\nCeci peut provoquer un changement radical et imprévu pour une page souvent consultée ; assurez-vous d’en avoir compris les conséquences avant de continuer.",
        "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": "'''Attention :''' Vous êtes sur le point de renommer une page d’utilisateur. Veuillez noter que seule la page sera renommée et que l’utilisateur '''ne''' sera '''pas''' renommé.",
        "allmessagesname": "Nom du message",
        "allmessagesdefault": "Message par défaut",
        "allmessagescurrent": "Message actuel",
-       "allmessagestext": "Ceci est la liste des messages disponibles dans l’espace MediaWiki.\nVeuillez visiter la [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Localisation de MediaWiki] et [//translatewiki.net/ translatewiki.net] si vous désirez contribuer à la localisation générique de MediaWiki.",
+       "allmessagestext": "Ceci est la liste des messages système disponibles dans l’espace de noms MediaWiki.\nVeuillez visiter la [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Régionalisation de MediaWiki] et [https://translatewiki.net/ translatewiki.net] si vous désirez contribuer à la régionalisation générique de MediaWiki.",
        "allmessagesnotsupportedDB": "Cette page '''{{ns:special}}:Allmessages''' n'est pas utilisable car '''$wgUseDatabaseMessages''' a été désactivé.",
        "allmessages-filter-legend": "Filtrer",
        "allmessages-filter": "Filtrer par état de modification :",
        "invalidateemail": "Annuler la confirmation de l'adresse de courriel",
        "notificationemail_subject_changed": "L’adresse courriel enregistrée sur {{SITENAME}} a été changée",
        "notificationemail_subject_removed": "L’adresse courriel enregistrée sur {{SITENAME}} a été supprimée",
-       "notificationemail_body_changed": "Quelqu’un, probablement vous, connecté depuis l’adresse IP $1, a changé l’adresse courriel\nassociée au compte « $2 » sur {{SITENAME}} en « $3 ».\n\nSi ce n’était pas vous, contactez un administrateur du site immédiatement.",
-       "notificationemail_body_removed": "Quelqu’un, probablement vous, connecté depuis l’adresse IP $1,\na suprrimé l’adresse courriel associée au compte « $2 » sur {{SITENAME}}.\n\nSi ce n’était pas vous, contactez un administrateur du site immédiatement.",
+       "notificationemail_body_changed": "Quelqu’un, probablement vous, connecté depuis l’adresse IP $1, a changé l’adresse\ncourriel associée au compte « $2 » sur {{SITENAME}} en « $3 ».\n\nSi ce n’était pas vous, contactez un administrateur du site immédiatement.",
+       "notificationemail_body_removed": "Quelqu’un, probablement vous, connecté depuis l’adresse IP $1,\na supprimé l’adresse courriel associée au compte « $2 » sur {{SITENAME}}.\n\nSi ce n’était pas vous, contactez un administrateur du site immédiatement.",
        "scarytranscludedisabled": "[La transclusion interwiki est désactivée]",
        "scarytranscludefailed": "[La récupération de modèle a échoué pour $1]",
        "scarytranscludefailed-httpstatus": "[Échec de la récupération du modèle pour  $1 : HTTP  $2 ]",
        "confirm-watch-top": "Ajouter cette page à votre liste de suivi ?",
        "confirm-unwatch-button": "Valider",
        "confirm-unwatch-top": "Supprimer cette page de votre liste de suivi ?",
-       "confirm-rollback-button": "Valider",
-       "confirm-rollback-top": "Révoquer les modifications de cette page?",
+       "confirm-rollback-button": "OK",
+       "confirm-rollback-top": "Révoquer les modifications de cette page ?",
        "semicolon-separator": "&nbsp;;&#32;",
        "colon-separator": "&nbsp;:&#32;",
        "percent": "$1&#160;%",
        "mw-widgets-dateinput-placeholder-month": "AAAA-MM",
        "mw-widgets-titleinput-description-new-page": "la page n’existe pas encore",
        "mw-widgets-titleinput-description-redirect": "redirection vers $1",
-       "api-error-blacklisted": "Merci de choisir un autre titre descriptif.",
        "sessionmanager-tie": "Impossible de combiner les demandes multiples de types d’authentification : $1.",
        "sessionprovider-generic": "sessions $1",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "sessions basées sur les cookies",
        "log-action-filter-newusers": "Type de création de compte :",
        "log-action-filter-patrol": "Type de patrouille :",
        "log-action-filter-protect": "Type de protection :",
-       "log-action-filter-rights": "Type de changement de droit",
-       "log-action-filter-suppress": "Type de suppression",
+       "log-action-filter-rights": "Type de changement de droit :",
+       "log-action-filter-suppress": "Type de suppression :",
        "log-action-filter-upload": "Type de téléversement :",
        "log-action-filter-all": "Tout",
        "log-action-filter-block-block": "Blocage",
        "log-action-filter-upload-overwrite": "Réitérer le téléversement",
        "authmanager-authn-not-in-progress": "L’authentification n’est pas en cours ou les données de session ont été perdues. Veuillez recommencer depuis le début.",
        "authmanager-authn-no-primary": "Les informations d’identification fournies n’ont pas pu être authentifiées.",
-       "authmanager-authn-no-local-user": "Les informations d’identification ne sont associées à aucun utilisateur sur ce wiki.",
+       "authmanager-authn-no-local-user": "Les informations d’identification fournies ne sont associées à aucun utilisateur sur ce wiki.",
        "authmanager-authn-no-local-user-link": "Les informations d’authentification sont valides mais ne sont associées à aucun utilisateur sur ce wiki. Connectez-vous d’une autre manière, ou créez un nouvel utilisateur, et vous aurez la possibilité de lier vos informations précédentes à ce compte.",
        "authmanager-authn-autocreate-failed": "La création automatique d’un compte local a échoué : $1",
        "authmanager-change-not-supported": "Les informations d’identification fournies ne peuvent pas être modifiées, car rien ne les utiliserait.",
        "cannotauth-not-allowed-title": "Autorisation refusée",
        "cannotauth-not-allowed": "Vous n’êtes pas autorisé à utiliser cette page",
        "changecredentials": "Modifier les informations d’identification",
-       "changecredentials-submit": "Modifier",
-       "changecredentials-submit-cancel": "Annuler",
+       "changecredentials-submit": "Modifier les informations d’identification",
        "changecredentials-invalidsubpage": "$1 n’est pas un type d’information d’identification valide.",
        "changecredentials-success": "Vos informations d’identification ont été modifiées.",
        "removecredentials": "Supprimer les informations d’identification",
-       "removecredentials-submit": "Supprimer",
-       "removecredentials-submit-cancel": "Annuler",
+       "removecredentials-submit": "Supprimer les informations d'identification",
        "removecredentials-invalidsubpage": "$1 n’est pas un type d’information d’identification valide.",
        "removecredentials-success": "Vos informations d’identification ont été supprimées.",
        "credentialsform-provider": "Type d’information d’identification :",
        "linkaccounts-success-text": "Le compte a été lié.",
        "linkaccounts-submit": "Lier les comptes",
        "unlinkaccounts": "Dissocier les comptes",
-       "unlinkaccounts-success": "Le compte a été dissocié."
+       "unlinkaccounts-success": "Le compte a été dissocié.",
+       "authenticationdatachange-ignored": "Les modifications de données d’authentification n’ont pas été gérées. Peut-être aucun fournisseur n’a-t-il été configuré ?"
 }
index 89cc1a1..8e542fb 100644 (file)
        "protectedpagetext": "Cette page est barrée pour empêcher des changements.",
        "viewsourcetext": "Vous pouvez voir et copier la source de cette page:",
        "protectedinterface": "Cette page crée le texte de l'interface pour le software, et est barrée pour empêcher l'abus.",
-       "editinginterface": "'''Warning:''' You are editing a page which is used to provide interface text for the software.\nChanges to this page will affect the appearance of the user interface for other users.\nFor translations, please consider using [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], the MediaWiki localisation project.",
+       "editinginterface": "'''Warning:''' You are editing a page which is used to provide interface text for the software.\nChanges to this page will affect the appearance of the user interface for other users.\nFor translations, please consider using [https://translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], the MediaWiki localisation project.",
        "cascadeprotected": "Cette page est protégée parce qu’elle est incluse par {{PLURAL:$1|la page suivante, qui est protégée|les pages suivantes, qui sont protégées}} avec l’option « protection en cascade » activée :\n$2",
        "namespaceprotected": "Vous avez pas la permission de changer les pages dans l'espace de noms \"$1\".",
        "ns-specialprotected": "Vous pouvez pas changer les pages dans l'espace de noms {{ns:special}}.",
        "booksources-search": "Charcher",
        "allpagessubmit": "Aller",
        "categories": "Classes",
-       "special-categories-sort-count": "tri par nombre d'éléments",
-       "special-categories-sort-abc": "tri alphabétique",
        "deletedcontributions": "Contributions effacées des useurs",
        "deletedcontributions-title": "Contributions effacées des useurs",
        "sp-deletedcontributions-contribs": "contributions",
index 32459c7..d3828ca 100644 (file)
        "protectedpagetext": "Cela pâge est étâye protègiêe por empachiér son changement ou ben d’ôtres accions.",
        "viewsourcetext": "Vos pouede vêre et copiyér lo tèxto sôrsa de cela pâge.",
        "viewyourtext": "Vos pouede vêre et copiyér lo tèxto sôrsa de <strong>voutros changements</strong> a cela pâge.",
-       "protectedinterface": "Cela pâge balye de tèxto d’entredoux por la programeria sur cél vouiqui et est vêr protègiêe por èvitar los abus.\nPor apondre ou ben changiér de traduccions sur tôs los vouiquis, se vos plét empleyéd [//translatewiki.net/ translatewiki.net], lo projèt de localisacion de MediaWiki.",
+       "protectedinterface": "Cela pâge balye de tèxto d’entredoux por la programeria sur cél vouiqui et est vêr protègiêe por èvitar los abus.\nPor apondre ou ben changiér de traduccions sur tôs los vouiquis, se vos plét empleyéd [https://translatewiki.net/ translatewiki.net], lo projèt de localisacion de MediaWiki.",
        "editinginterface": "<strong>Atencion :</strong> vos éte aprés changiér na pâge empleyêe por fâre lo tèxto d’entredoux de la programeria.\nLos changements sè cognetront sur l’aparence de l’entredoux utilisator por los ôtros utilisators de cél vouiqui.",
-       "translateinterface": "Por apondre changiér de traduccions sur tôs los vouiquis, se vos plét empleyéd [//translatewiki.net/ translatewiki.net], lo projèt de localisacion de MediaWiki.",
+       "translateinterface": "Por apondre changiér de traduccions sur tôs los vouiquis, se vos plét empleyéd [https://translatewiki.net/ translatewiki.net], lo projèt de localisacion de MediaWiki.",
        "cascadeprotected": "Cela pâge est protègiêe contre los changements, el est transcllua per {{PLURAL:$1|ceta pâge qu’est étâye protègiêe|cetes pâges que sont étâyes protègiêes}} avouéc lo chouèx « protèccion en cascâda » activâ :\n$2",
        "namespaceprotected": "Vos éd pas la pèrmission de changiér les pâges de l’èspâço de noms « <strong>$1</strong> ».",
        "customcssprotected": "Vos éd pas la pèrmission de changiér cela pâge CSS, contint la configuracion a sè d’un ôtr’utilisator.",
        "resetpass-temp-password": "Contresegno temporèro :",
        "resetpass-abort-generic": "Lo changement du contresegno est étâ anulâ per un’èxtension.",
        "resetpass-expired": "Voutron contresegno at èxpirâ. Se vos plét, dèfenésséd-nen un novél por vos branchiér.",
-       "resetpass-expired-soft": "Voutron contresegno at èxpirâ et dêt étre rebetâ a zérô. Se vos plét, chouèsésséd-nen un novél ora ou ben cllicâd dessus « {{int:resetpass-submit-cancel}} » por o fâre ples târd.",
-       "resetpass-validity-soft": "Voutron contresegno est pas justo : $1\n\nSe vos plét, chouèsésséd-nen un novél ora ou ben cllicâd dessus « {{int:resetpass-submit-cancel}} » por o fâre ples târd.",
+       "resetpass-expired-soft": "Voutron contresegno at èxpirâ et dêt étre rebetâ a zérô. Se vos plét, chouèsésséd-nen un novél ora ou ben cllicâd dessus « {{int:authprovider-resetpass-skip-label}} » por o fâre ples târd.",
+       "resetpass-validity-soft": "Voutron contresegno est pas justo : $1\n\nSe vos plét, chouèsésséd-nen un novél ora ou ben cllicâd dessus « {{int:authprovider-resetpass-skip-label}} » por o fâre ples târd.",
        "passwordreset": "Remês’a zérô du contresegno",
        "passwordreset-text-one": "Empléd cél formulèro por recêvre un contresegno temporèro per mèssageria èlèctronica.",
        "passwordreset-text-many": "{{PLURAL:$1|Empléd yon des champs por recêvre un contresegno temporèro per mèssageria èlèctronica.}}",
        "apisandbox": "Bouèta de sabla API",
        "apisandbox-jsonly": "La bouèta de sabla API at fôta de JavaScript.",
        "apisandbox-api-disabled": "L’API est dèsactivâ sur cél seto.",
-       "apisandbox-intro": "Empleyéd cela pâge por èprovar lo <strong>sèrviço Vouèbe API de MediaWiki</strong>.\nNen rèferâd-vos a la [[mw:API:Main page|documentacion de l’API]] por més de dètalys dessus l’usâjo de l’API. Ègzemplo : [//www.mediawiki.org/wiki/API#A_simple_example avêr lo contegnu d’una pâge principâla]. Chouèsésséd un’accion por vêre d’ôtros ègzemplos.\n\nNotâd que, quand ben qu’o est na bouèta de sabla, les accions que vos féte sur cela pâge pôvont changiér lo vouiqui.",
+       "apisandbox-intro": "Empleyéd cela pâge por èprovar lo <strong>sèrviço Vouèbe API de MediaWiki</strong>.\nNen rèferâd-vos a la [[mw:API:Main page|documentacion de l’API]] por més de dètalys dessus l’usâjo de l’API. Ègzemplo : [https://www.mediawiki.org/wiki/API#A_simple_example avêr lo contegnu d’una pâge principâla]. Chouèsésséd un’accion por vêre d’ôtros ègzemplos.\n\nNotâd que, quand ben qu’o est na bouèta de sabla, les accions que vos féte sur cela pâge pôvont changiér lo vouiqui.",
        "apisandbox-fullscreen": "Èpatar la banche",
        "apisandbox-fullscreen-tooltip": "Èpatar la banche de la bouèta de sabla por emplir la fenétra du navegator.",
        "apisandbox-unfullscreen": "Montrar la pâge",
        "removewatch": "Enlevar de la lista de gouârda",
        "removedwatchtext": "« [[:$1]] » et sa pâge de discussion sont étâyes enlevâyes de voutra [[Special:Watchlist|lista de gouârda]].",
        "removedwatchtext-short": "La pâge « $1 » est étâye enlevâye de voutra lista de gouârda.",
-       "watch": "Siuvre",
+       "watch": "Gouardar",
        "watchthispage": "Siuvre cela pâge",
        "unwatch": "Pas més siuvre",
        "unwatchthispage": "Pas més siuvre",
        "allmessagesname": "Nom",
        "allmessagesdefault": "Tèxto du mèssâjo per dèfôt",
        "allmessagescurrent": "Tèxto du mèssâjo d’ora",
-       "allmessagestext": "O est na lista des mèssâjos sistèmo disponiblos dedens l’èspâço de noms MediaWiki.\nSe vos plét, vesitâd la [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation localisacion de MediaWiki] et pués [//translatewiki.net translatewiki.net] se vos voléd contribuar a la localisacion g·ènèrâla de MediaWiki.",
+       "allmessagestext": "O est na lista des mèssâjos sistèmo disponiblos dedens l’èspâço de noms MediaWiki.\nSe vos plét, vesitâd la [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation localisacion de MediaWiki] et pués [https://translatewiki.net translatewiki.net] se vos voléd contribuar a la localisacion g·ènèrâla de MediaWiki.",
        "allmessagesnotsupportedDB": "Cela pâge est pas empleyâbla, <strong>$wgUseDatabaseMessages</strong> est étâ dèsactivâ.",
        "allmessages-filter-legend": "Filtro",
        "allmessages-filter": "Filtrar per ètat de pèrsonalisacion :",
        "htmlform-selectorother-other": "Ôtro",
        "sqlite-has-fts": "$1 avouéc rechèrche en tèxto complèt recognua",
        "sqlite-no-fts": "$1 sen rechèrche en tèxto complèt recognua",
-       "logentry-delete-delete": "$1 at suprimâ la pâge $3",
+       "logentry-delete-delete": "$1 {{GENDER:$2|at suprimâ}} la pâge $3",
        "logentry-delete-restore": "$1 at refêt la pâge $3",
        "logentry-delete-event": "$1 at changiê la visibilitât {{PLURAL:$5|d’un èvènement|de $5 èvènements}} du jornal dessus $3 : $4",
        "logentry-delete-revision": "$1 at changiê la visibilitât {{PLURAL:$5|d’una vèrsion|de $5 vèrsions}} sur la pâge $3 : $4",
        "revdelete-uname-unhid": "nom d’usanciér pas més cachiê",
        "revdelete-restricted": "at aplicâ les rèstriccions ux administrators",
        "revdelete-unrestricted": "rèstriccions enlevâs por los administrators",
-       "logentry-move-move": "$1 at dèplaciê la pâge $3 vers $4",
+       "logentry-move-move": "$1 {{GENDER:$2|at dèplaciê}} la pâge $3 vers $4",
        "logentry-move-move-noredirect": "$1 at dèplaciê la pâge $3 vers $4 sen lèssiér una redirèccion",
        "logentry-move-move_redir": "$1 at dèplaciê la pâge $3 vers $4 en ècrasent sa redirèccion",
        "logentry-move-move_redir-noredirect": "$1 at dèplaciê la pâge $3 vers $4 en ècrasent sa redirèccion sen lèssiér una redirèccion",
        "logentry-rights-rights": "$1 at changiê l’apartegnence a la tropa por « $3 » de $4 a $5",
        "logentry-rights-rights-legacy": "$1 at changiê l’apartegnence a la tropa por « $3 »",
        "logentry-rights-autopromote": "$1 est étâ nomâ ôtomaticament de $4 a $5",
+       "logentry-upload-upload": "$1 {{GENDER:$2|at tèlèchargiê}} $3",
        "rightsnone": "(nion)",
        "revdelete-summary": "rèsumâ du changement",
        "feedback-adding": "Aponsa de voutros avis a la pâge...",
        "special-characters-title-minus": "segno muens",
        "mw-widgets-dateinput-placeholder-day": "AAAA-MM-JJ",
        "mw-widgets-dateinput-placeholder-month": "AAAA-MM",
-       "api-error-blacklisted": "Volyéd chouèsir un ôtro titro dèscriptif.",
        "randomrootpage": "Pâge racena a l’hasârd"
 }
index 27ac2b2..d361eae 100644 (file)
        "protectedpagetext": "Detdiar sidj as seekert wurden, am dat diar näämen wat feranert.",
        "viewsourcetext": "Dü könst di kweltekst faan detdiar sidj uunluke an ham uk kopiare.",
        "viewyourtext": "Dü könst di code faan <strong>din feranrang</strong> faan detdiar sidj uunluke an kopiare.",
-       "protectedinterface": "Üüb detdiar sidj stäänt tekst för det software faan detheer wiki an as seekert wurden, am dat näämen diar wat feranert.\nDü könst [//translatewiki.net/ translatewiki.net] faan MediaWiki brük, am auersaatangen för ale wiki projekten tu maagin.",
+       "protectedinterface": "Üüb detdiar sidj stäänt tekst för det software faan detheer wiki an as seekert wurden, am dat näämen diar wat feranert.\nDü könst [https://translatewiki.net/ translatewiki.net] faan MediaWiki brük, am auersaatangen för ale wiki projekten tu maagin.",
        "editinginterface": "<strong>Paase üüb:</strong> Üüb detdiar sidj stäänt tekst, diar faan't MediaWiki software brükt woort. Wan dü diar wat feranerst, feranerst dü di skak faan't Nordfriisk Wikipedia.",
-       "translateinterface": "Am auersaatangen föör aal a Wikis föörtunemen, gung tu [//translatewiki.net/ translatewiki.net], det as det MediaWiki-lokalisiarangsprojekt.",
+       "translateinterface": "Am auersaatangen föör aal a Wikis föörtunemen, gung tu [https://translatewiki.net/ translatewiki.net], det as det MediaWiki-lokalisiarangsprojekt.",
        "cascadeprotected": "Detdiar sidj koon ei bewerket wurd. Hat as uun {{PLURAL:$1|detdiar sidj|jodiar sidjen}}\niinbünjen, diar auer kaskaadenseekerhaid seekert {{PLURAL:$1|as|san}}:\n$2",
        "namespaceprotected": "Dü heest ei det brükerrocht, am sidjen uun di nöömrüm '''$1''' tu bewerkin.",
        "customcssprotected": "Dü mutst detheer CSS sidj ei bewerke, auer det hoker ööders hiart.",
        "resetpass-temp-password": "Tidjwiis paaswurd:",
        "resetpass-abort-generic": "Det paaswurd-anerang as ferhanert wurden.",
        "resetpass-expired": "Din paaswurd as uflepen. Wees so gud an lei en nei paaswurd fääst.",
-       "resetpass-expired-soft": "Din paaswurd as uflepen an skal turagsaat wurd. Wees so gud an lei en nei paaswurd fääst of trak üüb \"{{int:resetpass-submit-cancel}}\", am det leeder turag tu saaten.",
-       "resetpass-validity-soft": "Din paaswurd gongt ei: $1\n\nWees so gud an lei en nei paaswurd fääst, of trak üüb \"{{int:resetpass-submit-cancel}}\" am det leeder turag tu saaten.",
+       "resetpass-expired-soft": "Din paaswurd as uflepen an skal turagsaat wurd. Wees so gud an lei en nei paaswurd fääst of trak üüb \"{{int:authprovider-resetpass-skip-label}}\", am det leeder turag tu saaten.",
+       "resetpass-validity-soft": "Din paaswurd gongt ei: $1\n\nWees so gud an lei en nei paaswurd fääst, of trak üüb \"{{int:authprovider-resetpass-skip-label}}\" am det leeder turag tu saaten.",
        "passwordreset": "Paaswurd turagsaat",
        "passwordreset-text-one": "Fal detheer formulaar ütj, am din paaswurd turag tu saaten.",
        "passwordreset-text-many": "{{PLURAL:$1|Fal ian faan jodiat fialen ütj, am en tidjwiis paaswurd tuschüürd tu fun.}}",
        "allmessagesname": "Nööm",
        "allmessagesdefault": "Standard tekst",
        "allmessagescurrent": "Aktuel tekst",
-       "allmessagestext": "Det as en list mä MediaWiki-süsteemteksten.\nWees so gud an beschük a sidjen [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki-auersaatang] an [//translatewiki.net translatewiki.net], wan dü bi't auersaaten mähalep meest.",
+       "allmessagestext": "Det as en list mä MediaWiki-süsteemteksten.\nWees so gud an beschük a sidjen [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki-auersaatang] an [https://translatewiki.net translatewiki.net], wan dü bi't auersaaten mähalep meest.",
        "allmessagesnotsupportedDB": "Detdiar spezial-sidj koon ei brükt wurd, auer <tt>$wgUseDatabaseMessages</tt> ei aktiif as.",
        "allmessages-filter-legend": "Filter",
        "allmessages-filter": "Filter för di uunpaaset stant:",
index 46ec76f..20c4d1c 100644 (file)
        "allmessagesname": "Non",
        "allmessagesdefault": "Test predeterminât",
        "allmessagescurrent": "Test curint",
-       "allmessagestext": "Cheste e je une liste dai messaçs di sisteme disponibii tal non dal spazi MediaWiki.\nPar plasê va su [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] e [//translatewiki.net translatewiki.net] se tu vuelis contribuî ae traduzion gjeneriche di MediaWiki.",
+       "allmessagestext": "Cheste e je une liste dai messaçs di sisteme disponibii tal non dal spazi MediaWiki.\nPar plasê va su [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] e [https://translatewiki.net translatewiki.net] se tu vuelis contribuî ae traduzion gjeneriche di MediaWiki.",
        "allmessages-filter-all": "Ducj",
        "allmessages-language": "Lenghe:",
        "allmessages-filter-submit": "Va",
index 0146cb2..93caec8 100644 (file)
        "actionthrottledtext": "As maatregel tsjin spam is it tal kearen per tiidsienheid beheind dat jo dizze hanneling ferrjochtsje kinne. Jo binne oer de limyt. Besykje it in tal minuten letter wer.",
        "protectedpagetext": "Dizze side is befeilige. Bewurkjen is net mooglik.",
        "viewsourcetext": "Jo kinne de boarnetekst fan dizze side besjen en kopiearje:",
-       "protectedinterface": "Dizze side jout systeemteksten fan 'e software en is befeilige tsjin misbrûk. Asto oersettingen foar alle wiki's tafoegje of bewurkje wolst, kinsto [//translatewiki.net/ translatewiki.net] brûke.",
+       "protectedinterface": "Dizze side jout systeemteksten fan 'e software en is befeilige tsjin misbrûk. Asto oersettingen foar alle wiki's tafoegje of bewurkje wolst, kinsto [https://translatewiki.net/ translatewiki.net] brûke.",
        "editinginterface": "<strong>Warskôging:</strong> Jo bewurkje in side dy't brûkt wurdt foar systeemteksten foar de software.\nBewurkings op dizze side beynfloedzje de brûkersynterface fan elkenien.",
        "cascadeprotected": "Dizze side is skoattele tsjin wizigjen, om't der in ûnderdiel útmakket fan de neikommende {{PLURAL:$1|side|siden}}, dy't skoattele {{PLURAL:$1|is|binne}} mei de \"ûnderlizzende siden\" opsje ynskeakele: $2",
        "namespaceprotected": "Jo hawwe gjin rjochten om siden yn'e nammerûmte '''$1''' te bewurkjen.",
        "allmessagesname": "Namme",
        "allmessagesdefault": "Standerttekst",
        "allmessagescurrent": "Tekst yn de nijste ferzje",
-       "allmessagestext": "Dit is in list fan alle systeemberjochten beskikber yn de MediaWiki-nammeromte.\nSjoch: [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation], [//translatewiki.net translatewiki.net].",
+       "allmessagestext": "Dit is in list fan alle systeemberjochten beskikber yn de MediaWiki-nammeromte.\nSjoch: [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation], [https://translatewiki.net translatewiki.net].",
        "allmessages-filter-legend": "Filter",
        "allmessages-filter-all": "Alle",
        "allmessages-language": "Taal:",
index fd2344e..7e69455 100644 (file)
        "actionthrottledtext": "Mar theicníc frithurscair, ní féidir lear an gníomh seo a dhéanamh barraíocht taobh istigh de thréimhse ghairid ama, agus tá an méid sáraithe agat.\nBain trial arís as i gcionn cúpla bomaite más é do thoil é.",
        "protectedpagetext": "Tá an leathanach seo glasáilte chun coisc ar eagarthóireacht.",
        "viewsourcetext": "Is féidir foinse an leathanach seo a fheiceáil ná a cóipeáil:",
-       "editinginterface": "'''Rabhadh:''' Tá tú ag athrú leathanaigh a bhfuil téacs comhéadain do na bogearraí air. Cuirfear athruithe ar an leathanach seo i bhfeidhm ar an gcomhéadan úsáideora.\nMás maith leat MediaWiki a aistriú, cuimhnigh ar [//translatewiki.net/wiki/Main_Page?setlang=ga translatewiki.net] (tionscadal logánaithe MediaWiki) a úsáid.",
+       "editinginterface": "'''Rabhadh:''' Tá tú ag athrú leathanaigh a bhfuil téacs comhéadain do na bogearraí air. Cuirfear athruithe ar an leathanach seo i bhfeidhm ar an gcomhéadan úsáideora.\nMás maith leat MediaWiki a aistriú, cuimhnigh ar [https://translatewiki.net/wiki/Main_Page?setlang=ga translatewiki.net] (tionscadal logánaithe MediaWiki) a úsáid.",
        "namespaceprotected": "Ní chead agat leathanaigh a chur in eagar san ainmspás '''$1'''.",
        "ns-specialprotected": "Ní féidir leathanaigh speisialta a chur in eagar.",
        "titleprotected": "Tá an teideal seo cosanta ar chruthú le [[User:$1|$1]].\nAn fáth ná <em>$2</em>.",
        "allmessagesname": "Ainm",
        "allmessagesdefault": "Téacs réamhshocraithe",
        "allmessagescurrent": "Téacs reatha",
-       "allmessagestext": "Is liosta é seo de theachtaireachtaí córais atá le fáil san ainmspás MediaWiki.\nTabhair cuairt ar [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] agus [//translatewiki.net translatewiki.net] le do thoil más mian leat cur leis an logánú ginearálta MediaWiki.",
+       "allmessagestext": "Is liosta é seo de theachtaireachtaí córais atá le fáil san ainmspás MediaWiki.\nTabhair cuairt ar [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] agus [https://translatewiki.net translatewiki.net] le do thoil más mian leat cur leis an logánú ginearálta MediaWiki.",
        "allmessagesnotsupportedDB": "Ní féidir an leathanach seo a úsáid dá bharr gur díchumasaíodh '''$wgUseDatabaseMessages'''.",
        "allmessages-filter-all": "Uile",
        "allmessages-language": "Teanga:",
index 87835e9..e6cbbcb 100644 (file)
        "move-page-legend": "Ad diişmäklii",
        "movepagetext": "Aşaadaki formayı kullanılarak var nicä sayfanın adın diiştirin, onnan bilä hepsi diiştirmää jurnalı eni ada aktarılacêk.\nEski ad eni ada yönnendirmäk olacêk.\nEski başlaa baalantılar  [[Special:DoubleRedirects|diişmeycek]] çift yaki yannış  [[Special:BrokenRedirects|yönnendirmäkleri]].\nLäazım inanmaa ani baalantılar genä dä gösterer orayı nerä läazım göstersin.\n\nHerliim ilerdän eni adda sayfa vardı, ad diişmää '''yapılmaycêk'''.\nBu o maana verer ani eer yannış olarak adını diiştirdiniz siz var nicä döndürün sayfayı eski adına.\n\n'''BAK!'''\nBu ad diişmää var nicä duursun masştablı hem beklenmeyän rezultatlar ''populyar'' sayfalar için ;\nonuştan devam etmedän ileri läazım inanmaa ani annêêrsiniz hepsi olacêk rezultatları.",
        "movepagetalktext": "Birleştirilmiş konuşmaa sayfasın, herliim varsa,\navtomatik adı diiştirilecek, '''o haller dışında, ne zaman:'''\n\n*Eni adda konuşmaa sayfası taa varsa,\n*Alttaki kutucuu seçmedinizsä .\n\nBu hallerdä läazım kendiniz ellän sayfaları aktarmaa yaki birleştirmää.",
-       "movearticle": "Eski ad",
        "newtitle": "Eni ad",
        "move-watch": "Bak bu sayfaya",
        "movepagebtn": "Adı diiştir",
index 1b46daa..d6b8a34 100644 (file)
        "protectedpagetext": "个页锁到嘞,改伓正。",
        "viewsourcetext": "倷可以眵吖或复制个页𠮶源代码:",
        "protectedinterface": "个页给正嘞软件𠮶界面文本,佢拖锁到怕人乱扤。",
-       "editinginterface": "'''Warning:''' You are editing a page which is used to provide interface text for the software.\nChanges to this page will affect the appearance of the user interface for other users.\nFor translations, please consider using [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], the MediaWiki localisation project.",
+       "editinginterface": "'''Warning:''' You are editing a page which is used to provide interface text for the software.\nChanges to this page will affect the appearance of the user interface for other users.\nFor translations, please consider using [https://translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], the MediaWiki localisation project.",
        "cascadeprotected": "个页已拖保护,因为佢拖“级联”𠮶{{PLURAL:$1|一只|几只}}拖保护页包到:\n$2",
        "namespaceprotected": "倷冇权编写'''$1'''空间里度𠮶页面。",
        "ns-specialprotected": "编写伓正{{ns:special}}空间𠮶页面。",
        "allmessagesname": "名字",
        "allmessagesdefault": "默认文字",
        "allmessagescurrent": "眼前𠮶文字",
-       "allmessagestext": "个首列到全部制定得正𠮶系统界面。\nPlease visit [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] and [//translatewiki.net translatewiki.net] if you wish to contribute to the generic MediaWiki localisation.",
+       "allmessagestext": "个首列到全部制定得正𠮶系统界面。\nPlease visit [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] and [https://translatewiki.net translatewiki.net] if you wish to contribute to the generic MediaWiki localisation.",
        "allmessagesnotsupportedDB": "'''{{ns:special}}:系统界面功能'''关卟嘞('''$wgUseDatabaseMessages''')。",
        "thumbnail-more": "放大",
        "filemissing": "寻伓到档案",
index 01edb80..1cb2ad7 100644 (file)
        "protectedpagetext": "箇頁鎖到嘞,改伓正。",
        "viewsourcetext": "倷可以眵吖或複製箇頁嗰原始碼:",
        "protectedinterface": "箇頁給正嘞軟件嗰界面文本,佢拕鎖到怕人亂扤。",
-       "editinginterface": "'''Warning:''' You are editing a page which is used to provide interface text for the software.\nChanges to this page will affect the appearance of the user interface for other users.\nFor translations, please consider using [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], the MediaWiki localisation project.",
+       "editinginterface": "'''Warning:''' You are editing a page which is used to provide interface text for the software.\nChanges to this page will affect the appearance of the user interface for other users.\nFor translations, please consider using [https://translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], the MediaWiki localisation project.",
        "cascadeprotected": "箇頁已拕保護,因為佢拕「聯鎖保護」嗰{{PLURAL:$1|一隻|幾隻}}拕保護頁包到:\n$2",
        "namespaceprotected": "倷冇權編寫'''$1'''空間裡度嗰頁面。",
        "ns-specialprotected": "編寫伓正{{ns:special}}空間嗰頁面。",
        "allmessagesname": "名字",
        "allmessagesdefault": "默認文字",
        "allmessagescurrent": "眼前嗰文字",
-       "allmessagestext": "箇首列到全部制定得正嗰系統界面。\nPlease visit [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] and [//translatewiki.net translatewiki.net] if you wish to contribute to the generic MediaWiki localisation.",
+       "allmessagestext": "箇首列到全部制定得正嗰系統界面。\nPlease visit [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] and [https://translatewiki.net translatewiki.net] if you wish to contribute to the generic MediaWiki localisation.",
        "allmessagesnotsupportedDB": "'''{{ns:special}}:系統界面功能'''關卟嘞('''$wgUseDatabaseMessages''')。",
        "thumbnail-more": "放大",
        "filemissing": "尋伓到檔案",
index d8f5d4d..ddc6770 100644 (file)
        "protectedpagetext": "Chaidh an duilleag seo a dhìon gus casg a chur air deasachadh.",
        "viewsourcetext": "’S urrainn dhut coimhead air tùs na duilleige seo ’s lethbhreac a dhèanamh dheth.",
        "viewyourtext": "’S urrainn dhut coimhead air <strong>na dheasaich thu</strong> ’s lethbhreac a dhèanamh dheth air an duilleag seo.",
-       "protectedinterface": "Bheir an duilleag seo dhut teacsa eadar-aghaidh airson a' bhathar-bhog air an uicidh seo 's chaidh a ghlasadh gus casg a chur air mì-chleachdadh. Gus eadar-theangachadh atharrachadh no a chur ris airson gach uicidh, cleachd [//translatewiki.net/ translatewiki.net], pròiseactan eadar-theangachadh MediaWiki.",
+       "protectedinterface": "Bheir an duilleag seo dhut teacsa eadar-aghaidh airson a' bhathar-bhog air an uicidh seo 's chaidh a ghlasadh gus casg a chur air mì-chleachdadh. Gus eadar-theangachadh atharrachadh no a chur ris airson gach uicidh, cleachd [https://translatewiki.net/ translatewiki.net], pròiseactan eadar-theangachadh MediaWiki.",
        "editinginterface": "<strong>Rabhadh:</strong> Tha thu a' deasachadh duilleag a tha 'ga chleachdadh a chum teacsa eadar-aghaidh a sholar airson a' bhathar-bhog.\nMa dh'atharraicheas tu an duilleag seo, bidh buaidh ann air coltas na h-eadar-aghaidh mar a chì càch e air an uicidh seo.",
-       "translateinterface": "Gus eadar-theangachadh atharrachadh no a chur ris airson gach uicidh, cleachd [//translatewiki.net/ translatewiki.net], am pròiseact eadar-theangachaidh aig MediaWiki.",
+       "translateinterface": "Gus eadar-theangachadh atharrachadh no a chur ris airson gach uicidh, cleachd [https://translatewiki.net/ translatewiki.net], am pròiseact eadar-theangachaidh aig MediaWiki.",
        "cascadeprotected": "Chaidh an duilleag seo a dhìon o dheasachadh a chionn ’s gu bheil e fillte a-staigh {{PLURAL:$1|san duilleag|sna duilleagan}} a leanas a chaidh a dhìon ’s an roghainn “mar eas” air:\n$2",
        "namespaceprotected": "Chan eil cead agad duilleagan san ainm-spàs <strong>$1</strong> a dheasachadh.",
        "customcssprotected": "Chan eil cead agad an duilleag CSS seo a dheasachadh a chionn 's gu bheil na roghainnean pearsanta aig cleachdaiche eile innte.",
        "noname": "Cha do thagh thu ainm-cleachdaiche dligheach.",
        "loginsuccesstitle": "Rinn thu logadh a-steach",
        "loginsuccess": "<strong>Rinn thu logadh a-steach air {{SITENAME}} mar \"$1\".</strong>",
-       "nosuchuser": "Chan eil cleachdaiche ann air a bheil \"$1\".\nTha ainmean chleachdaichean mothaichail do litrichean mòra 's beaga.\nThoir sùil air an litreachadh no [[Special:CreateAccount|cruthaich cunntas ùr]].",
+       "nosuchuser": "Chan eil cleachdaiche ann air a bheil \"$1\".\nTha ainmean chleachdaichean mothachail do litrichean mòra 's beaga.\nThoir sùil air an litreachadh no [[Special:CreateAccount|cruthaich cunntas ùr]].",
        "nosuchusershort": "Chan eil cleachdaiche ann leis an ainm \"$1\".\nCuir sùil air an litreachadh.",
        "nouserspecified": "Tha agad ri ainm-cleachdaiche a chur ann.",
        "login-userblocked": "Chaidh an cleachdaiche seo a chasgadh. Chan eil logadh a-steach ceadaichte dhaibh.",
        "mailerror": "Mearachd a' cur post: $1",
        "acct_creation_throttle_hit": "Chruthaich na h-aoighean air an uicidh seo {{PLURAL:$1|$1 chunntas|$1 chunntas|$1 cunntasan|$1 cunntas}} fon IP agad an-dè agus sin an àireamh as motha a tha ceadaichte. Chan urrainn do dh'aoighean eile on IP seo barrachd chunntasan a chruthachadh air sgàth sin.",
        "emailauthenticated": "Chaidh an seòladh puist-d agad a dhearbhadh $2 aig $3.",
-       "emailnotauthenticated": "Cha deach am post-d agad a dhearbhadh fhathast.\nCha dèid post-d a chur airson gin dhe na feartan a leanas.",
-       "noemailprefs": "Sònraich post-d sna roghainnean agad gus na feartan seo a chur an comas.",
+       "emailnotauthenticated": "Cha deach am post-d agad a dhearbhadh fhathast.\nCha dèid post-d a chur airson gin dhe na gleusan a leanas.",
+       "noemailprefs": "Sònraich post-d sna roghainnean agad gus na gleusan seo a chur an comas.",
        "emailconfirmlink": "Dearbhaich an seòladh puist-dhealain agad",
        "invalidemailaddress": "Chan urrainn dhuinn gabhail ris an t-seòladh seo a chionn 's gu bheil coltas cearr air.\nCuir a-steach seòladh san fhòrmat cheart no falamhaich an raon sin.",
        "cannotchangeemail": "Cha ghabh na puist-d a tha co-cheangailte ri cunntas atharrachadh air an uicipeid seo.",
        "pt-login-button": "Log a-steach",
        "pt-createaccount": "Cruthaich cunntas",
        "pt-userlogout": "Log a-mach",
-       "php-mail-error-unknown": "Mearachd neo-aithichte san fheart mail() aig PHP.",
+       "php-mail-error-unknown": "Mearachd nach aithne dhuinn sa ghleus mail() aig PHP.",
        "user-mail-no-addy": "Cha do ghabh am post-d a chur leis nach robh seòladh puist-d ann.",
        "user-mail-no-body": "Bha bodhaig na teachdaireachd bàn no air leth goirid.",
        "changepassword": "Atharraich facal-faire",
        "resetpass-temp-password": "Facal-faire sealach:",
        "resetpass-abort-generic": "Chuir leudachan crìoch air atharrachadh an fhacail-fhaire.",
        "resetpass-expired": "Dh'fhalbh an ùine air an fhacal-fhaire agad. Suidhich facal-faire ùr airson logadh a-steach.",
-       "resetpass-expired-soft": "Dh'fhalbh an ùine air an fhacal-fhaire agad is feumaidh tu ath-shuidheachadh. Tagh fear ùr no briog air \"{{int:resetpass-submit-cancel}}\" gus ath-shuidheachadh às a dhèidh seo.",
-       "resetpass-validity-soft": "Chan eil am facal-faire seo dligheach: $1\n\nTagh facal-faire ùr an-dràsta no briog air \"{{int:resetpass-submit-cancel}}\" gus ath-shuidheachadh às a dhèidh seo.",
+       "resetpass-expired-soft": "Dh'fhalbh an ùine air an fhacal-fhaire agad is feumaidh tu ath-shuidheachadh. Tagh fear ùr no briog air \"{{int:authprovider-resetpass-skip-label}}\" gus ath-shuidheachadh às a dhèidh seo.",
+       "resetpass-validity-soft": "Chan eil am facal-faire seo dligheach: $1\n\nTagh facal-faire ùr an-dràsta no briog air \"{{int:authprovider-resetpass-skip-label}}\" gus ath-shuidheachadh às a dhèidh seo.",
        "passwordreset": "Ath-shuidhich am facal-faire",
        "passwordreset-text-one": "Lìon am foirm seo gus am facal-faire agad ath-shuidheachadh.",
        "passwordreset-text-many": "Lìon {{PLURAL:$1|an raon|aon dhe na raointean}} gus facal-faire sealach fhaighinn air a' phost-d.",
        "summary-preview": "Ro-shealladh a' ghearr-chunntais:",
        "subject-preview": "Ro-shealladh a’ chuspair:",
        "blockedtitle": "Tha an cleachdair air a bhacadh",
-       "blockedtext": "<strong>Chaidh an t-ainm-cleachdaiche no an seòladh IP agad a bhacadh.</strong>\n\n'S e $1 a chur am bacadh seo ort.\n{{GENDER:$1|Thug e|Thug i|Thugadh}} an cèill gun do {{GENDER:$1|rinn e|rinn i|rinneadh}} sin air sgàth an adhbhair seo: <em>$2</em>.\n\n* Toiseach a' bhacaidh: $8\n* Deireadh a' bhacaidh: $6\n* An neach air a bheil am bacadh: $7\n\n'S urrainn dhut fios a chur gu $1 no [[{{MediaWiki:Grouppage-sysop}}|rianair]] eile gus am bacadh seo a dheasbad.\nChan urrainn dhut am feart \"Cuir post-d dhan chleachdaiche seo\" a chleachdadh ach ma tha seòladh puist-d dligheach ann an [[Special:Preferences|roghainnean a' chunntais agad]] agus mura deach bacadh a chur air a chleachdadh.\n'S e $3 an seòladh IP làithreach agus agus 's e #$5 ID a' bhacaidh.\nThoir iomradh air a' mhion-fhiosrachadh gu h-àrd ma chuireas tu ceist sam bith mu dhèidhinn.",
-       "autoblockedtext": "Chaidh an seòladh IP agad a bhacadh gu fèin-obrachail a chionn 's gun deach a chleachdadh le cuideigin eile a chaidh a bhacadh le $1.\n{{GENDER:$1|Thug e|Thug i|Thugadh}} an cèill gun do {{GENDER:$1|rinn e|rinn i|rinneadh}} sin air sgàth an adhbhair seo: \n\n:<em>$2</em>.\n\n* Toiseach a' bhacaidh: $8\n* Deireadh a' bhacaidh: $6\n* An neach air a bheil am bacadh: $7\n\n'S urrainn dhut fios a chur gu $1 no [[{{MediaWiki:Grouppage-sysop}}|rianair]] eile gus am bacadh seo a dheasbad.\n\nDh'fhaoidte nach urrainn dhut am feart \"Cuir post-d dhan chleachdaiche seo\" a chleachdadh ach ma tha seòladh puist-d dligheach ann an [[Special:Preferences|roghainnean a' chunntais agad]] agus mura deach bacadh a chur air a chleachdadh.\n\n'S e $3 an seòladh IP làithreach agus agus 's e #$5 ID a' bhacaidh.\nThoir iomradh air a' mhion-fhiosrachadh gu h-àrd ma chuireas tu ceist sam bith mu dhèidhinn.",
+       "blockedtext": "<strong>Chaidh an t-ainm-cleachdaiche no an seòladh IP agad a bhacadh.</strong>\n\n'S e $1 a chur am bacadh seo ort.\n{{GENDER:$1|Thug e|Thug i|Thugadh}} an cèill gun do {{GENDER:$1|rinn e|rinn i|rinneadh}} sin air sgàth an adhbhair seo: <em>$2</em>.\n\n* Toiseach a' bhacaidh: $8\n* Deireadh a' bhacaidh: $6\n* An neach air a bheil am bacadh: $7\n\n'S urrainn dhut fios a chur gu $1 no [[{{MediaWiki:Grouppage-sysop}}|rianair]] eile gus am bacadh seo a dheasbad.\nChan urrainn dhut an gleus \"Cuir post-d dhan chleachdaiche seo\" a chleachdadh ach ma tha seòladh puist-d dligheach ann an [[Special:Preferences|roghainnean a' chunntais agad]] agus mura deach bacadh a chur air a chleachdadh.\n'S e $3 an seòladh IP làithreach agus agus 's e #$5 ID a' bhacaidh.\nThoir iomradh air a' mhion-fhiosrachadh gu h-àrd ma chuireas tu ceist sam bith mu dhèidhinn.",
+       "autoblockedtext": "Chaidh an seòladh IP agad a bhacadh gu fèin-obrachail a chionn 's gun deach a chleachdadh le cuideigin eile a chaidh a bhacadh le $1.\n{{GENDER:$1|Thug e|Thug i|Thugadh}} an cèill gun do {{GENDER:$1|rinn e|rinn i|rinneadh}} sin air sgàth an adhbhair seo: \n\n:<em>$2</em>.\n\n* Toiseach a' bhacaidh: $8\n* Deireadh a' bhacaidh: $6\n* An neach air a bheil am bacadh: $7\n\n'S urrainn dhut fios a chur gu $1 no [[{{MediaWiki:Grouppage-sysop}}|rianair]] eile gus am bacadh seo a dheasbad.\n\nDh'fhaoidte nach urrainn dhut an gleus \"Cuir post-d dhan chleachdaiche seo\" a chleachdadh ach ma tha seòladh puist-d dligheach ann an [[Special:Preferences|roghainnean a' chunntais agad]] agus mura deach bacadh a chur air a chleachdadh.\n\n'S e $3 an seòladh IP làithreach agus agus 's e #$5 ID a' bhacaidh.\nThoir iomradh air a' mhion-fhiosrachadh gu h-àrd ma chuireas tu ceist sam bith mu dhèidhinn.",
        "blockednoreason": "cha deach adhbhar a shònrachadh",
        "whitelistedittext": "Feumaidh tu $1 mus urrainn dhut duilleagan a dheasachadh.",
        "confirmedittext": "Feumaidh tu am post-d agad a dhearbhadh mus urrainn dhut duilleagan a dheasachadh.\nSuidhich is dearbhaich am post-d agad ann an [[Special:Preferences|roghainnean a' chleachdaiche]]",
        "accmailtext": "Chaidh facal-faire a chruthachadh air thuaiream airson [[User talk:$1|$1]] 's a chur gu $2.\n\nGabhaidh am facal-faire airson a' chunntais ùir seo atharrachadh air an fo <em>[[Special:ChangePassword|atharraich facal-faire]]</em> às dèidh dhan chleachdaiche logadh a-steach.",
        "newarticle": "(Ùr)",
        "newarticletext": "Lean thu ri ceangal gu duilleag nach eil ann fhathast.\nCuir teacs sa bhogsa gu h-ìosal gus an duilleag seo a chruthachadh (seall air [$1 duilleag na cobharach] airson barrachd fiosrachaidh).\nMura robh dùil agad ris an duilleag seo a ruigsinn, briog air a' phutan <strong>air ais</strong> 'nad bhrabhsair.",
-       "anontalkpagetext": "----\n<em>Seo an duilleag deasbaireachd aig cleachdaiche gun urra nach do chruthaich cunntas fhathast no nach eil 'ga chleachdadh.</em>\nFeumaidh sinn an àireamh IP aca a chleachdadh air sgàth sin.\nFaodadh grunn chleachdaichean seòladh IP mar a chleachdadh còmhla.\nMas e cleachdaiche gun urra a tha annad 's ma tha thu dhen bheachd nach eil na beachdan seo a' buntainn riut, nach [[Special:CreateAccount|clàraich thu]] no nach dèan thu [[Special:UserLogin|logadh a-steach]] gus bùrach mar seo a sheachnadh san àm ri teachd?",
+       "anontalkpagetext": "----\n<em>Seo an duilleag deasbaireachd aig cleachdaiche gun urra nach do chruthaich cunntas fhathast no nach eil 'ga chleachdadh.</em>\nFeumaidh sinn àireamh an t-seòlaidh IP aca a chleachdadh air sgàth sin.\nFaodadh grunn chleachdaichean seòladh IP mar sin a chleachdadh còmhla.\nMas e cleachdaiche gun urra a tha annad 's ma tha thu dhen bheachd nach eil na beachdan seo a' buntainn riut, nach [[Special:CreateAccount|clàraich thu]] no nach dèan thu [[Special:UserLogin|logadh a-steach]] gus bùrach mar seo a sheachnadh san àm ri teachd?",
        "noarticletext": "Chan eil teacsa sam bith anns an duilleag seo an-dràsta.\n'S urrainn dhut [[Special:Search/{{PAGENAME}}|an tiotal seo a lorg]] ann an duilleagan eile,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} na logaichean co-cheangailte a rannsachadh],\nno [{{fullurl:{{FULLPAGENAME}}|action=edit}} an duilleag seo a chruthachadh]</span>.",
        "noarticletext-nopermission": "Chan eil teacsa sam bith san duilleag seo an-dràsta.\n'S urrainn dhut [[Special:Search/{{PAGENAME}}|tiotal na duilleige seo a lorg]] ann an duilleagan eile, no <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} na logaichean co-cheangailte a rannsachadh]</span> ach chan eil cead agad an duilleag seo a chruthachadh.",
        "missing-revision": "Chan eil mùthadh #$1 na duilleige \"{{FULLPAGENAME}}\" ann.\n\nMar is trice, tachraidh seo ma leanas tu ceangal san eachdraidh a tha fìor aosta 's a tha a' dol gu duilleag a chaidh a sguabadh às.\nGheibh thu mion-fhiosrachadh ann an [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} loga nan duilleagan a chaidh a sguabadh às].",
        "prefs-skin": "Bian",
        "skin-preview": "Ro-shealladh",
        "datedefault": "Gun roghainnean",
-       "prefs-labs": "Feartan nan deuchainn-lannan",
+       "prefs-labs": "Gleusan nan deuchainn-lannan",
        "prefs-user-pages": "Duilleagan a' chleachdaiche",
        "prefs-personal": "Pròifil",
        "prefs-rc": "Mùthaidhean ùra",
        "right-override-export-depth": "Cead gus duilleagan às-phortadh, a' gabhail a-seach duilleagan ceangailte suas ri doimhneachd de 5",
        "right-sendemail": "Cead gus puist-d a chur gu cleachdaichean eile",
        "right-passwordreset": "Cead gus puist-d ath-shuidheachadh nam facal-faire a shealltainn",
-       "right-managechangetags": "Cruthaich is toir air falbh [[Special:Tags|tagaichean]] on stòr-dàta",
+       "right-managechangetags": "Cruthaich is gnìomhaich no neo-ghnìomhaich [[Special:Tags|tagaichean]]",
        "newuserlogpage": "Loga cruthachadh nan cleachdaichean",
        "newuserlogpagetext": "Seo loga nan cleachdaichean a chaidh a chruthachadh.",
        "rightslog": "Loga ceadan a' chleachdaiche",
        "action-viewmyprivateinfo": "seall am fiosrachadh prìobhaideach agad",
        "action-editmyprivateinfo": "deasaich am fiosrachadh prìobhaideach agad",
        "action-editcontentmodel": "deasaich modail susbaint duilleige",
-       "action-managechangetags": "cruthaich is thoir air falbh tagaichean on stòr-dàta",
+       "action-managechangetags": "cruthaich is gnìomhaich no neo-ghnìomhaich tagaichean",
        "nchanges": "$1 {{PLURAL:$1|mhùthadh|mhùthadh|mùthaidhean|mùthadh}}",
        "enhancedrc-since-last-visit": "$1 on tadhal mu dheireadh",
        "enhancedrc-history": "eachdraidh",
        "rcshowhidemine-hide": "Falaich",
        "rclinks": "Seall {{PLURAL:$1|an $1 mhùthadh|an $1 mhùthadh|na $1 mùthaidhean|am $1 mùthadh}} mu dheireadh thairis air {{PLURAL:$2|an $2 latha|an $2 latha|na $2 làithean|am $2 latha}} mu dheireadh<br />$3",
        "diff": "diofar",
-       "hist": "eachd",
+       "hist": "eachdr",
        "hide": "Falaich",
        "show": "Seall",
        "minoreditletter": "b",
        "zip-file-open-error": "Thachair mearachd le fosgladh an fhaidhle airson dearbhadh ZIP.",
        "zip-wrong-format": "Chan eil am faidhle sònraichte 'na fhaidhle ZIP.",
        "zip-bad": "Tha am faidhle ZIP coirbte no cha ghabh a leughadh air adhbhar eile air choireigin.\nChan urrainn dhuinn dearbhadh mar bu chòir a bheil e tèarainte gus nach eil.",
-       "zip-unsupported": "Tha am faidhle ZIP seo a' chleachdadh feartan ZIP ris nach cuir MediaWiki taic.\nChan urrainn dhuinn dearbhadh mar bu chòir a bheil e tèarainte gus nach eil.",
+       "zip-unsupported": "Tha am faidhle ZIP seo a' chleachdadh gleusan ZIP ris nach cuir MediaWiki taic.\nChan urrainn dhuinn dearbhadh mar bu chòir a bheil e tèarainte gus nach eil.",
        "uploadstash": "Tasgadan an luchdaidh suas",
        "uploadstash-summary": "Bheir an duilleag seo inntrigeadh dhut a dh'fhaidhlichean a chaidh a luchdadh suas no a tha 'gan luchdadh suas ach nach deach fhoillseachadh air an uicidh fhathast. Chan fhaic duine na faidhlichean seo ach an cleachdaiche a rinn an luchdadh suas.",
        "uploadstash-clear": "Glan na faidhlichean ann an tasgadan an luchdaidh suas",
        "emailccsubject": "Lethbhreac dhen teachdaireachd agad gu $1: $2",
        "emailsent": "Post-d air a chur",
        "emailsenttext": "Chaidh an teachdaireachd puist-d agad a chur.",
-       "emailuserfooter": "Chaidh am post-d seo a chur o $1 gu $2 leis an fheart \"cuir post-d gu cleachdaiche\" air {{SITENAME}}.",
+       "emailuserfooter": "Chaidh am post-d seo a chur o $1 gu $2 leis a' ghleus \"{{int:emailuser}}\" air {{SITENAME}}.",
        "usermessage-summary": "A' fàgail teachdaireachd an t-siostaim.",
        "usermessage-editor": "Teachdaire an t-siostaim",
        "usermessage-template": "MediaWiki:UserMessage",
        "watchlistanontext": "Log a-steach gus nithean air a' chlàr-fhaire agad a shealltainn no a dheasachadh.",
        "watchnologin": "Chan eil thu air logadh a-steach",
        "addwatch": "Cuir air a' chlàr-fhaire",
-       "addedwatchtext": "Chaidh an duilleag \"[[:$1]]\" a chur ris a' [[Special:Watchlist|chlàr-fhaire]] agad.\nNochdaidh mùthaidhean a nithear air an duilleag seo 's air an duilleag deasbaireachd a tha co-cheangailte ris an-seo san àm ri teachd.",
+       "addedwatchtext": "Chaidh \"[[:$1]]\" agus duilleag na deasbaireachd aige a chur ris a' [[Special:Watchlist|chlàr-fhaire]] agad.",
        "addedwatchtext-short": "Chaidh an duilleag \"$1\" a chur ris a' chlàr-fhaire agad.",
        "removewatch": "Thoir air falbh on chlàr-fhaire",
-       "removedwatchtext": "Chaidh an duilleag \"[[:$1]]\" a thoirt air falbh on [[Special:Watchlist|chlàr-fhaire]] agad.",
+       "removedwatchtext": "Chaidh \"[[:$1]]\" agus duilleag na deasbaireachd aige a thoirt air falbh on [[Special:Watchlist|chlàr-fhaire]] agad.",
        "removedwatchtext-short": "Chaidh an duilleag \"$1\" a thoirt ait falbh on chlàr-fhaire agad.",
        "watch": "Cum sùil air",
        "watchthispage": "Cum sùil air an duilleag seo",
        "deletepage": "Sguab às duilleag",
        "confirm": "Daingnich",
        "excontent": "stuth a bh' ann: '$1'",
-       "excontentauthor": "b' e: \"$1\" an t-susbaint (is \"[[Special:Contributions/$2|$2]]\" an aon deasaiche)",
+       "excontentauthor": "b' e: \"$1\" an t-susbaint agus \"[[Special:Contributions/$2|$2]]\" ([[User talk:$2|talk]]) an aon deasaiche",
        "exbeforeblank": "an t-susbaint mus deach a bànachadh: \"$1\"",
        "delete-confirm": "Sguab às \"$1\"",
        "delete-legend": "Sguab às",
        "dellogpage": "Loga an sguabaidh às",
        "dellogpagetext": "Seo liosta dhe na chaidh a sguabadh às o chionn goirid.",
        "deletionlog": "loga an sguabaidh às",
-       "reverted": "Air aiseag gu mùthadh nas sine",
+       "reverted": "Air tilleadh gu mùthadh roimhe",
        "deletecomment": "Adhbhar:",
        "deleteotherreason": "Adhbhar eile/a bharrachd:",
        "deletereasonotherlist": "Adhbhar eile",
        "delete-toobig": "Tha eachdraidh deasachaidh mòr aig an duilleag seo sa bheil barrachd air $1 {{PLURAL:$1|mhùthadh|mhùthadh|mùthaidhean|mùthadh}}.\nChaidh sguabadh às nan duilleagan dhen leithid a chuingeachadh ach na dèid cron a dhèanamh air {{SITENAME}} le mearachd.",
        "delete-warning-toobig": "Tha eachdraidh deasachaidh mòr aig an duilleag seo sa bheil barrachd air $1 {{PLURAL:$1|mhùthadh|mhùthadh|mùthaidhean|mùthadh}}.\nMa sguabas tu às dhi, dh'fhaoidte gun dèan thu cron air na gnìomhan stòr-dàta aig {{SITENAME}}; mar sin, thoir an aire.",
        "deleteprotected": "Chan urrainn dhut an duilleag seo a sguabadh às on a chaidh a dìon.",
-       "deleting-backlinks-warning": "'''Rabhadh:''' Tha [[Special:WhatLinksHere/{{FULLPAGENAME}}|duilleag eile]] a' ceangal ris an duilleag a tha thu airson sguabadh às no 'ga gabhail a-steach 'na h-iomradh.",
+       "deleting-backlinks-warning": "<strong>Rabhadh:</strong> Tha [[Special:WhatLinksHere/{{FULLPAGENAME}}|duilleag eile]] a' ceangal ris an duilleag a tha thu airson sguabadh às no 'ga gabhail a-steach 'na h-iomradh.",
        "rollback": "Roilig atharraichean air ais",
        "rollbacklink": "roilig air ais",
        "rollbacklinkcount": "roilig $1 {{PLURAL:$1|deasachadh|dheasachadh|deasachaidhean|deasachadh}} air ais",
        "revertpage": "Deasachaidhean a chaidh a thilleadh leis [[Special:Contributions/$2|$2]] ([[User talk:$2|an deasbaireachd]]) dhan mhùthadh mu dheireadh le [[User:$1|$1]]",
        "revertpage-nouser": "Deasachaidhean a chaidh a thilleadh le cleachdaiche falaichte dhan mhùthadh mu dheireadh le [[User:$1|$1]]",
        "rollback-success": "Na deasachaidhean a chaidh a thilleadh le $1;\nchaidh an tilleadh gun mhùthadh mu dheireadh le $2.",
+       "rollback-success-notify": "Na deasachaidhean a chaidh a thilleadh le $1;\nchaidh an tilleadh gun mhùthadh mu dheireadh le $2. [$3 Seall na h-atharraichean]",
        "sessionfailure-title": "Trioblaid leis an t-seisean",
        "sessionfailure": "Tha duilgheadas ann leis an seisean logaidh a-steach agad a-rèir coltais;\nchaidh sgur dhen ghnìomh seo a chum dìon o session hijacking.\nTill dhan duilleag roimhpe, ath-luchdaich an duilleag ud 's feuch ris a-rithist an uairsin.",
+       "logentry-contentmodel-change-revertlink": "till",
+       "logentry-contentmodel-change-revert": "till",
        "protectlogpage": "Loga an dìon",
        "protectlogtext": "Tha liosta na chaidh a dhìon gu h-ìosal.\nCuir sùil air [[Special:ProtectedPages|liosta nan duilleagan fo dhìon]] airson liosta na fheadhainn a tha fo dhìon an-dràsta fhèin.",
        "protectedarticle": "\"[[$1]]\" air a dhìon",
        "protect-locked-blocked": "Chan urrainn dhut ìre an dìon atharrachadh rè bacaidh.\nSeo na roghainnean aig an duilleag <strong>$1</strong>:",
        "protect-locked-dblock": "Chan urrainn dhut ìre an dìon atharrachadh on a tha an stòr-dàta glaiste an-dràsta.\nSeo na roghainnean aig an duilleag <strong>$1</strong>:",
        "protect-locked-access": "Chan eil cead aig a' chunntas agad an ìre dìon de dhuilleag atharrachadh.\nSeo roghainnean làithreach na duilleige <strong>$1</strong>:",
-       "protect-cascadeon": "Tha an duilleag seo fo dhìon an-dràsta a chionn 's gu bheil e air a ghabhail a-steach {{PLURAL:$1|$1 duilleag|$1 dhuilleag|$1 duilleagan|$1 duilleag}} a leanas aig a bheil dìon o bhith mar eas air.\n'S urrainn dhut ìre dìon na duilleige seo atharrachadh ach cha bhi buaidh air an dìon o bhith mar eas.",
+       "protect-cascadeon": "Tha an duilleag seo fo dhìon an-dràsta a chionn 's gu bheil i air a tar-ghabhail {{PLURAL:$1|san duilleag|sna duilleagan}} a leanas aig a bheil dìon o bhith mar eas air.\n'S urrainn dhut ìre dìon na duilleige seo atharrachadh ach cha bhi buaidh air an dìon o bhith mar eas.",
        "protect-default": "Ceadaich a h-uile cleachdaiche",
        "protect-fallback": "Na ceadaich ach do chleachdaichean aig a bheil cead \"$1\"",
        "protect-level-autoconfirmed": "Na ceadaich ach cleachdaichean a chaidh an dearbhadh gu fèin-obrachail",
        "undeletepagetext": "Chaidh {{PLURAL:$1|an $1 duilleag|an $1 dhuilleag|na $1 duilleagan|am $1 duilleag}} a sguabadh às ach tha {{PLURAL:$1|i|iad}} san tasglann fhathast 's gabhaidh {{PLURAL:$1|a h-aiseag|an aiseag}}.\nDh'fhaoidte gun dèid an tasglann a ghlanadh gu cunbhalach.",
        "undelete-fieldset-title": "Aisig mùthaidhean",
        "undeleteextrahelp": "Gus eachdraidh shlàn na duilleige aiseag, fàg gach bogsa bàn 's briog air <strong><em>{{int:undeletebtn}}</em></strong>.\nGus cuid dheth aiseag, cuir cromag sna bogsaichean airson nam mùthaidhean a tha thu airson aiseag 's briog air <strong><em>{{int:undeletebtn}}</em></strong>.",
-       "undeleterevisions": "Chaidh {{PLURAL:$1|$1 mhùthadh|$1 mhùthadh|$1 mùthaidhean|$1 mùthadh}} a chur san tasg-lann",
+       "undeleterevisions": "Chaidh {{PLURAL:$1|$1 mhùthadh|$1 mhùthadh|$1 mùthaidhean|$1 mùthadh}} a sguabadh às",
        "undeletehistory": "Ma dh'aisigeas tu an duilleag, thèid gach mùthadh aiseag dhan eachdraidh.\nMa chaidh duilleag air a bheil an aon ainm a chruthachadh às dèidh an sguabaidh às, nochdaidh na mùthaidhean air an aiseag san eachdraidh roimhpe.",
        "undeleterevdel": "Cha dèid an sguabadh às a neo-dhèanamh ma sguabadh seo às pàirt de mhùthadh na duilleige no an fhaidhle as ùire.\nMas e seo na thachradh, feumaidh tu a' chromag a thoirt far a' mhùthaidh as ùire a chaidh a sguabadh às no gun a bhith 'ga fhalach tuilleadh.",
        "undeletehistorynoadmin": "Chaidh an duilleag seo a sguabadh às.\nChì thu adhbhar an sguabaidh às sa ghearr-chunntas gu h-ìosal cho math ri fiosrachadh mu na chleachdaichean a dheasaich an duilleag seo mus deach a sguabadh às.\nChan fhaic ach rianairean an teacsa fhèin aig na mùthaidhean air an sguabadh às.",
        "whatlinkshere-next": "{{PLURAL:$1|an ath $1|an ath $1|na ath $1|an ath $1}}",
        "whatlinkshere-links": "← ceanglaichean",
        "whatlinkshere-hideredirs": "$1 ath-sheòlaidhean",
-       "whatlinkshere-hidetrans": "$1 transclusions",
+       "whatlinkshere-hidetrans": "$1 tar-ghabhalaichean",
        "whatlinkshere-hidelinks": "$1 ceanglaichean",
-       "whatlinkshere-hideimages": "$1 ceanglaichean nam faidhlichean",
+       "whatlinkshere-hideimages": "$1 ceanglaichean fhaidhlichean",
        "whatlinkshere-filters": "Criathairean",
        "autoblockid": "Fèin-bhacadh $1",
        "block": "Bac an cleachdaiche",
        "unblock": "Neo-bhac an cleachdaiche",
        "blockip": "Bac an cleachdaiche",
        "blockip-legend": "Bac an cleachdaiche",
-       "blockiptext": "Cleachd am foirm gu h-ìosal gus seòladh IP no cleachdaiche sònraichte a bhacadh o sgrìobhadh.\nNa dèan seo ach gus dìon o bhandalachd agus a-rèir [[{{MediaWiki:Policy-url}}|a' phoileasaidh]].\nLìon an t-adhbhar sònraichte gu h-ìosal (mar eisimpleir le iomradh air na duilleagan le bhandalachd orra).",
+       "blockiptext": "Cleachd am foirm gu h-ìosal gus seòladh IP no cleachdaiche sònraichte a bhacadh o sgrìobhadh.\nNa dèan seo ach gus dìon o bhandalachd agus a-rèir [[{{MediaWiki:Policy-url}}|a' phoileasaidh]].\nLìon an t-adhbhar sònraichte gu h-ìosal (mar eisimpleir le iomradh air na duilleagan le bhandalachd orra).\n'S urrainn dhut rainsean dhe sheòlaidhean IP a bhacadh le co-chàradh [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR]; is /$1 an rainse as motha a tha ceadaichte airson IPv4 agus /$2 airson IPv6.",
        "ipaddressorusername": "Seòladh IP no ainm-cleachdaiche:",
        "ipbexpiry": "Falbhaidh an ùine air:",
        "ipbreason": "Adhbhar:",
        "lockedbyandtime": "(le $1 $2 $3)",
        "move-page": "Gluais $1",
        "move-page-legend": "Gluais duilleag",
-       "movepagetext": "Ma chleachdas tu am foirm gu h-ìosal, cuiridh tu ainm ùr air 's gluaisidh tu a h-eachdraidh gu lèir dhan ainm ùr.\nBidh an seann tiotal 'na ath-sheòladh dhan tiotal ùr an uairsin.\n'S urrainn dhut ath-sheòladh sam bith a tha a' dol dhan tiotal tùsail ùrachadh leis fhèin.\nMura dèan thu sin, dèan cinnteach gun cuir thu sùil air eagal 's gum bi [[Special:DoubleRedirects|ath-sheòlaidhean dùbailte]] no [[Special:BrokenRedirects|briste]] ann.\n'S ann ort-sa a tha an t-uallach airson dèanamh cinntach gu bheil na ceanglaichean a' dol dha na h-àitichean ceart.\n\nThoir an aire <strong>nach dèid</strong> an duilleag a ghluasad ma tha duilleag air an tiotal ùr mu thràth ach ma bhios e falamh no 'na ath-sheòladh 's mur eil eachdraidh deasachaidh ann.\n'S ciall dha seo gun urrainn dhut ainm duilleige a thilleadh dhan ainm a bha air roimhe ma rinn thu mearachd agus nach urrainn dhut sgrìobhadh thairis air duilleag a tha ann.\n\n<strong>Rabhadh!</strong>\nFaodaidh seo a bhith 'na atharrachadh mòr ris nach bi dùil air duilleag air a bheil fèill mhòr;\ndèan cinnteach gu bheil thu a' tuigsinn dè a' bhuaidh a bhios agad mus dèid thu air adhart.",
-       "movepagetext-noredirectfixer": "Ma chleachdas tu am foirm gu h-ìosal, cuiridh tu ainm ùr air 's gluaisidh tu a h-eachdraidh gu lèir dhan ainm ùr.\nBidh an seann tiotal 'na ath-stiùireadh dhan tiotal ùr an uairsin.\nDearbhaich nach bi ath-sheòlaidhean [[Special:DoubleRedirects|dùbailte]] no [[Special:BrokenRedirects|briste]] ann.\n'S ann ort-sa a tha an t-uallach airson dèanamh cinnteach gu bheil na ceanglaichean a' dol dha na h-àitichean a bu chòir.\n\nThoir an aire <strong>nach dèid</strong> an duilleag a ghluasad ma tha duilleag air an tiotal ùr mu thràth ach ma bhios e falamh no 'na ath-sheòladh 's mur eil eachdraidh deasachaidh ann.\n'S ciall dha seo gur urrainn dhut ainm duilleige a thilleadh dhan ainm a bha air roimhe ma rinn thu mearachd agus nach urrainn dhut sgrìobhadh thairis air duilleag a tha ann.\n\n<strong>Rabhadh!</strong>\nFaodaidh seo a bhith 'na atharrachadh mòr ris nach bi dùil air duilleag air a bheil fèill mhòr;\ndèan cinnteach gu bheil thu a' tuigsinn dè a' bhuaidh a bhios agad mus dèid thu air adhart.",
-       "movepagetalktext": "Thèid an duilleag deasbaireachd a tha co-cheangailte ris a ghluasad 'na cois <strong>ach:</strong>\n*Ma tha duilleag deasbaireachd nach eil falamh aig an ainm ùr mu thràth, no\n*Ma bheir thu air falbh a' chromag on bhogsa gu h-ìosal\n\nMa thachras seo, feumaidh to an duilleag a ghluasad no cho-aonachadh a làimh, ma tha sin fa-near dhut.",
+       "movepagetext": "Ma chleachdas tu am foirm gu h-ìosal, cuiridh tu ainm ùr air 's gluaisidh tu a h-eachdraidh gu lèir dhan ainm ùr.\nBidh an seann tiotal 'na ath-sheòladh dhan tiotal ùr an uairsin.\n'S urrainn dhut ath-sheòladh sam bith a tha a' dol dhan tiotal tùsail ùrachadh leis fhèin.\nMura dèan thu sin, dèan cinnteach gun cuir thu sùil air eagal 's gum bi [[Special:DoubleRedirects|ath-sheòlaidhean dùbailte]] no [[Special:BrokenRedirects|briste]] ann.\n'S ann ort-sa a tha an t-uallach airson dèanamh cinntach gu bheil na ceanglaichean a' dol dha na h-àitichean ceart.\n\nThoir an aire <strong>nach dèid</strong> an duilleag a ghluasad ma tha duilleag air an tiotal ùr mu thràth ach ma bhios e falamh no 'na ath-sheòladh 's mur eil eachdraidh deasachaidh ann.\n'S ciall dha seo gun urrainn dhut ainm duilleige a thilleadh dhan ainm a bha air roimhe ma rinn thu mearachd agus nach urrainn dhut sgrìobhadh thairis air duilleag a tha ann.\n\n<strong>An aire:</strong>\nFaodaidh seo a bhith 'na atharrachadh mòr ris nach bi dùil air duilleag air a bheil fèill mhòr;\ndèan cinnteach gu bheil thu a' tuigsinn dè a' bhuaidh a bhios agad mus dèid thu air adhart.",
+       "movepagetext-noredirectfixer": "Ma chleachdas tu am foirm gu h-ìosal, cuiridh tu ainm ùr air 's gluaisidh tu a h-eachdraidh gu lèir dhan ainm ùr.\nBidh an seann tiotal 'na ath-stiùireadh dhan tiotal ùr an uairsin.\nDearbhaich nach bi ath-sheòlaidhean [[Special:DoubleRedirects|dùbailte]] no [[Special:BrokenRedirects|briste]] ann.\n'S ann ort-sa a tha an t-uallach airson dèanamh cinnteach gu bheil na ceanglaichean a' dol dha na h-àitichean a bu chòir.\n\nThoir an aire <strong>nach dèid</strong> an duilleag a ghluasad ma tha duilleag air an tiotal ùr mu thràth ach ma bhios e falamh no 'na ath-sheòladh 's mur eil eachdraidh deasachaidh ann.\n'S ciall dha seo gur urrainn dhut ainm duilleige a thilleadh dhan ainm a bha air roimhe ma rinn thu mearachd agus nach urrainn dhut sgrìobhadh thairis air duilleag a tha ann.\n\n<strong>An aire:</strong>\nFaodaidh seo a bhith 'na atharrachadh mòr ris nach bi dùil air duilleag air a bheil fèill mhòr;\ndèan cinnteach gu bheil thu a' tuigsinn dè a' bhuaidh a bhios agad mus dèid thu air adhart.",
+       "movepagetalktext": "Ma chuireas tu cromag sa bhogsa seo, thèid duilleag na deasbaireachd a tha co-cheangailte ris a ghluasad dhan tiotal ùr gu fèin-obrachail ach ma tha duilleag na deasbaireachd nach eil falamh ann a shiud mar-thà.\n\nMa thachras seo, feumaidh tu an duilleag a ghluasad no cho-aonachadh a làimh ma tha sin fa-near dhut.",
        "moveuserpage-warning": "<strong>Rabhadh:</strong> Tha thu airson duilleag cleachdaiche a ghluasad. Thoir an aire nach dèid ach an duilleag a ghluasad 's <em>gur ann nach dèid</em> ainm ùr a thoirt air a' chleachdaiche.",
        "movecategorypage-warning": "<strong>Rabhadh:</strong> Tha thu airson duilleag roinn-seòrsa a ghluasad. Thoir an aire nach dèid ach an duilleag a ghluasad 's <em>gur ann nach dèid</em> gach duilleag a tha san t-seann roinn-seòrsa a chur ris an roinn-seòrsa ùr.",
        "movenologintext": "Feumaidh tu a bhith 'nad bhall clàraichte 's air [[Special:UserLogin|logadh a-steach]] mus gluais thu duilleag.",
        "cant-move-to-user-page": "Chan eil cead agad duilleag a ghluasad gu duilleag cleachdaiche (ach gu fo-dhuilleag cleachdaiche).",
        "cant-move-category-page": "Chan eil cead agad duilleagan roinn-seòrsa a ghluasad.",
        "cant-move-to-category-page": "Chan eil cead agad duilleag a ghluasad gu duilleag roinn-seòrsa.",
-       "newtitle": "Dhan tiotal ùr:",
+       "newtitle": "An tiotal ùr:",
        "move-watch": "Cum sùil air an duilleag thùsail agus an duilleag thairgaideach",
        "movepagebtn": "Gluais duilleag",
        "pagemovedsub": "Shoirbhich leat leis a' ghluasad",
        "movenosubpage": "Chan eil fo-dhuilleag aig an duilleag seo.",
        "movereason": "Adhbhar:",
        "revertmove": "till",
-       "delete_and_move_text": "== Tha sguabadh às a dhìth ==\nTha an duilleag-uidhe \"[[:$1]]\" ann mar-thà.\nA bheil thu airson a sguabadh às ach am bidh rum airson a' ghluasaid ann?",
+       "delete_and_move_text": "Tha an duilleag-uidhe \"[[:$1]]\" ann mar-thà.\nA bheil thu airson a sguabadh às ach am bidh rum airson a' ghluasaid ann?",
        "delete_and_move_confirm": "Siuthad, sguab às an duilleag",
        "delete_and_move_reason": "Chaidh a sguabadh às gus rum a airson a' ghluasaid o \"[[$1]]\" a chruthachadh",
        "selfmove": "Tha tiotalan an tùis a' chinn-uidhe co-ionnann;\nchan urrainn dhut duilleag a ghluasad dhan ionad aice fhèin.",
        "move-leave-redirect": "Fàg ath-stiùireadh ann",
        "protectedpagemovewarning": "<strong>Rabhadh: Chaidh an duilleag seo a dhìon 's chan urrainn ach dhan fheadhainn aig a bheil ùghdarras rianaire a ghluasad.</strong>\nChì thu an clàr mu dheireadh san loga mar fhiosrachadh dhut gu h-ìosal:",
        "semiprotectedpagemovewarning": "<strong>An aire:</strong> Chaidh an duilleag seo a dhìon 's chan fhaod ach cleachdaichean clàraichte a ghluasad.\nSeo an rud mu dheireadh san loga mar fhiosrachadh dhut:",
-       "move-over-sharedrepo": "== Tha am faidhle ann ==\nTha [[:$1]] ann an ionad-tasgaidh co-roinnte. Thèid tar-àithneadh air an fhaidhle cho-roinnte ma ghluaiseas tu faidhle gun tiotal seo.",
+       "move-over-sharedrepo": "Tha [[:$1]] ann an ionad-tasgaidh co-roinnte. Thèid tar-àithneadh air an fhaidhle cho-roinnte ma ghluaiseas tu faidhle gun tiotal seo.",
        "file-exists-sharedrepo": "Tha ainm an fhaidhle a thagh thu 'ga chleachdadh ann an ionad-tasgaidh co-roinnte mar-thà.\nFeuch an tagh thu ainm eile.",
        "export": "Às-phortaich duilleagan",
        "exporttext": "'S urrainn dhut teacsa is eachdraidh an deasachaidh aig duilleag no duilleagan sònraichte às-phortachadh le XML timcheall air.\nGabhaidh seo ion-phortachadh gu uicidh eile a chleachdas MediaWiki air an [[Special:Import|duilleag ion-phortachaidh]].\n\nGus duilleagan às-phortachadh, cuir a-steach na tiotalan sa bhogsa-teacsa gu h-ìosal, gach tiotal air loidhne fa leth, agus tagh a bheil thu ag iarraidh am mùthadh làithreach cho math ri seann mhùthaidhean le loidhnichean eachdraidh nan duilleagan no a bheil thu ag iarraidh am mùthadh làithreach le fiosrachadh mun deasachadh mu dheireadh.\n\nMa chuir thu an roghainn eile romhad, 's urrainn dhut ceangal a chleachdadh cuideachd, mar eisimpleir [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] airson na duilleige \"[[{{MediaWiki:Mainpage}}]]\".",
        "allmessagesname": "Ainm",
        "allmessagesdefault": "Teacsa bunaiteach na teachdaireachd",
        "allmessagescurrent": "Teacsa na teachdaireachd an-dràsta",
-       "allmessagestext": "Seo liosta de theachdaireachdan an t-siostaim a tha ri làimh ann an ainm-spàs MediaWiki.\nTadhail air [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Ionadaileadh MediaWiki] is [//translatewiki.net translatewiki.net] ma tha thu airson pàirt a ghabhail ann an ionadaileadh MediaWiki.",
+       "allmessagestext": "Seo liosta de theachdaireachdan an t-siostaim a tha ri làimh ann an ainm-spàs MediaWiki.\nTadhail air [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Ionadaileadh MediaWiki] is [https://translatewiki.net translatewiki.net] ma tha thu airson pàirt a ghabhail ann an ionadaileadh MediaWiki.",
        "allmessagesnotsupportedDB": "Cha ghabh an duilleag seo cleachdadh on a chaidh <strong>$wgUseDatabaseMessages</strong> a chur à comas.",
        "allmessages-filter-legend": "Criathrag",
        "allmessages-filter": "Criathraich le staid a' ghnàthachaidh:",
        "thumbnail_image-missing": "Tha faidhle a dhìth a-rèit coltais: $1",
        "thumbnail_image-failure-limit": "Chaidh feuchainn cus tursan ($1 no a bharrachd) o chionn goirid gus an dealbhag seo a reandaradh. Feuch ris a-rithist uaireigin eile.",
        "import": "Ion-phortaich duilleagan",
-       "importinterwiki": "Ion-phortachadh tar-uicidh",
-       "import-interwiki-text": "Tagh uicidh 's tiotal na duilleige airson ion-phortachadh.\nThèid cinn-là nam mùthaidhean 's ainmean nan deasaichean a ghlèidheadh.\nThèid gach gnìomh ion-phortachadh tar-uicidh a chur ris an [[Special:Log/import|loga ion-phortachaidh]].",
+       "importinterwiki": "Ion-phortachadh o uicidh eile",
+       "import-interwiki-text": "Tagh uicidh 's tiotal na duilleige airson ion-phortachadh.\nThèid cinn-là nam mùthaidhean 's ainmean nan deasaichean a ghlèidheadh.\nThèid gach ion-phortachadh o uicidh eile a chur ris an [[Special:Log/import|loga ion-phortachaidh]].",
        "import-interwiki-sourcewiki": "An uicidh thùsail:",
        "import-interwiki-sourcepage": "An duilleag thùsail:",
        "import-interwiki-history": "Dèan lethbhreac de dh'eachdraidh nam mùthaidhean slàna airson na duilleige seo",
        "importcantopen": "Cha deach leinn am faidhle ion-phortachaidh fhosgladh.",
        "importbadinterwiki": "Droch cheangal eadar-uicodh",
        "importsuccess": "Tha an t-ion-phortachadh coileanta!",
-       "importnosources": "Cha deach tùs ion-phortachadh tar-uicidh a mhìneachadh agus tha luchdadh suas dìreach nan eachdraidhean à comas.",
+       "importnosources": "Cha deach uicidh gus ion-phortadh uaipe a shònrachadh agus tha luchdadh suas dìreach nan eachdraidhean à comas.",
        "importnofile": "Cha deach faidhle ion-phortachaidh a luchdadh suas.",
        "importuploaderrorsize": "Dh'fhàillig le luchdadh suas an fhaidhle ion-phortachaidh.\nTha am faidhle nas motha na tha ceadaichte.",
        "importuploaderrorpartial": "Dh'fhàillig le luchdadh suas an fhaidhle ion-phortachaidh.\nCha deach ach pàirt dhen fhaidhle a luchdadh suas.",
        "import-nonewrevisions": "Cha deach mùthadh ion-phortachadh (bha iad uile ann roimhe no chaidh an leigeil seachad ri linn mhearachdan).",
        "xml-error-string": "$1 air loidhne $2, colbh $3 (baidht $4): $5",
        "import-upload": "Luchdaich suas dàta XML",
-       "import-token-mismatch": "Chaidh dàta an t-seisein air chall.\nFeuch ris a-rithist.",
+       "import-token-mismatch": "Dh'fhaoidte gun deach do logadh a-mach. <strong>Dearbhaich gu bheil thu air do chlàradh a-steach fhathast agus feuch ris a-rithist</strong>.\nMur obraich e fhathast, feuch [[Special:UserLogout|clàradh a-mach]] is a-steach a-rithist agus dearbhaich gun ceadaich am brabhsair agad briosgaidean on bhrabhsair seo.",
        "import-invalid-interwiki": "Cha ghabh ion-phortachadh in uicidh a shònraich thu.",
        "import-error-edit": "Cha deach an duilleag \"$1\" ion-phortachadh o nach fhaod thu a deasachadh.",
        "import-error-create": "Cha deach an duilleag \"$1\" ion-phortachadh o nach fhaod thu a cruthachadh.",
        "tooltip-feed-rss": "Inbhir RSS airson na duilleige seo",
        "tooltip-feed-atom": "Inbhir Atom airson na duilleige seo",
        "tooltip-t-contributions": "Seall liosta na h-obrach a rinn {{GENDER:$1|an cleachdaiche}} seo",
-       "tooltip-t-emailuser": "Cuir post-dealain dhan chleachdaiche seo",
+       "tooltip-t-emailuser": "Cuir post-dealain dhan {{GENDER:$1|chleachdaiche seo}}",
        "tooltip-t-upload": "Luchdaich suas faidhle",
        "tooltip-t-specialpages": "Liosta de gach duilleag shònraichte",
        "tooltip-t-print": "Tionndadh dhen duilleag a ghabhas a chlò-bhualadh",
        "markaspatrolledtext": "Cuir comharra freiceadain ris an duilleag seo",
        "markedaspatrolled": "Comharra freiceadain ris",
        "markedaspatrolledtext": "Chaidh comharra freiceadain a chur ris a' mhùthadh de [[:$1]] a thagh thu.",
-       "rcpatroldisabled": "Chaidh feart nam freiceadan airson atharraichean o chionn goirid a chur à comas",
-       "rcpatroldisabledtext": "Tha feart nam freiceadan airson atharraichean o chionn goirid à comas an-dràsta.",
+       "rcpatroldisabled": "Chaidh gleus nam freiceadan airson atharraichean o chionn goirid a chur à comas",
+       "rcpatroldisabledtext": "Tha gleus nam freiceadan airson atharraichean o chionn goirid à comas an-dràsta.",
        "markedaspatrollederror": "Cha ghabh comharra freiceadain a chur ris",
        "markedaspatrollederrortext": "Feumaidh tu mùthadh a shònrachadh gus comharra freiceadain a chur ris.",
        "markedaspatrollederror-noautopatrol": "Chan fhaod thu comharra freiceadain a chur ris na h-atharraichean agad fhèin.",
        "monthsall": "na h-uile",
        "confirmemail": "Dearbhaich an seòladh puist-dhealain",
        "confirmemail_noemail": "Cha dug thu seachad seòladh puist-d dligheach ann an [[Special:Preferences|roghainnean a' chleachdaiche]] agad.",
-       "confirmemail_text": "Iarraidh {{SITENAME}} ort gun dearbhaich thu an seòladh puist-d agad mus cleachd thu feartan puist-d.\nCleachd am putan gu h-ìosal gus post-d dearbhaidh a chur dhan t-seòladh agad.\nBidh ceangal le còd sa phost-d ud;\nluchdaich an ceangal sa bhrabhsair agad airson dearbhadh gu bheil an seòladh puist-d agad dligheach.",
+       "confirmemail_text": "Iarraidh {{SITENAME}} ort gun dearbhaich thu an seòladh puist-d agad mus cleachd thu gleusan puist-d.\nCleachd am putan gu h-ìosal gus post-d dearbhaidh a chur dhan t-seòladh agad.\nBidh ceangal le còd sa phost-d ud;\nluchdaich an ceangal sa bhrabhsair agad airson dearbhadh gu bheil an seòladh puist-d agad dligheach.",
        "confirmemail_pending": "Chaidh còd dearbhaidh a chur thugad air a' phost-d mar-thà;\nma tha thu air a' chunntas agad a chruthachadh o chionn goirid, 's math dh'fhaoidte gum b' feairrde thu feitheamh mionaid no dhà ach an ruig e thu mus iarr thu còd ùr.",
        "confirmemail_send": "Cuir còd dearbhaidh thugam",
        "confirmemail_sent": "Chaidh post-d dearbhaidh a chur.",
-       "confirmemail_oncreate": "Chaidh còd dearbhaidh a chur dhan t-seòladh puist-d agad.\nChan eil thu feumach air a' chòd seo airson logadh a-steach, ach feumaidh tu a thoirt seachad mus cleachd thu feart sam bith san uicidh a chleachdas post-d.",
+       "confirmemail_oncreate": "Chaidh còd dearbhaidh a chur dhan t-seòladh puist-d agad.\nChan eil thu feumach air a' chòd seo airson logadh a-steach, ach feumaidh tu a thoirt seachad mus cleachd thu gleus sam bith san uicidh a chleachdas post-d.",
        "confirmemail_sendfailed": "Cha deach le {{SITENAME}} post-d dearbhaidh a chur thugad.\nDearbhaich nach eil caractar mì-dhligheach san t-seòladh puist-d agad.\n\nSeo na thill an t-inneal puist-d: $1",
        "confirmemail_invalid": "Tha an còd dearbhaidh mì-dhligheach.\n'S dòcha gun do dh'fhalbh an ùine air.",
        "confirmemail_needlogin": "$1 gus an seòladh puist-d agad a dhearbhadh.",
        "confirmemail_success": "Chaidh an seòladh puist-d agad a dhearbhadh.\nFaodaidh tu [[Special:UserLogin|logadh a-steach]] a-nis 's tlachd a ghabhail às an uicidh.",
        "confirmemail_loggedin": "Tha an seòladh puist-d agad air a dhearbhadh a-nis.",
        "confirmemail_subject": "Dearbhadh an t-seòlaidh puist-d air {{SITENAME}}",
-       "confirmemail_body": "Chlàraich chuideigin - 's sinne an dùil gur e tusa a bh' ann - cunntas \"$2\"\nair {{SITENAME}} leis an t-seòladh puist-d seo on t-seòladh IP $1.\n\nGus dearbhadh gur an agad fhèin a tha an cunntas seo agus gus na feartan puist-d\na ghnìomhachadh air {{SITENAME}}, fosgail an ceangal seo sa bhrabhsair agad:\n\n$3\n\nMur e *tusa* a bh' ann a chlàraich an cunntas seo, lean air a' cheangal seo\ngus sgur dhen dearbhadh leis a' phost-d:\n\n$5\n\nFalbhaidh an ùine air a' chòd dearbhaidh seo $4.",
-       "confirmemail_body_changed": "Dh'atharraich chuideigin - 's sinne an dùil gur e tusa a bh' ann - an seòladh puist-d\naig a' chunntas \"$2\" air {{SITENAME}} dhan t-seòladh puist-d seo on t-seòladh IP $1.\n\nGus dearbhadh gur an agad fhèin a tha an cunntas seo agus gus na feartan puist-d\na ghnìomhachadh às ùr air {{SITENAME}}, fosgail an ceangal seo sa bhrabhsair agad:\n\n$3\n\nMur e *tusa* a bh' ann a chlàraich an cunntas seo, lean air a' cheangal seo\ngus sgur dhen dearbhadh leis a' phost-d:\n\n$5\n\nFalbhaidh an ùine air a' chòd dearbhaidh seo $4.",
-       "confirmemail_body_set": "Shuidhich chuideigin - 's sinne an dùil gur e tusa a bh' ann - an seòladh puist-d\naig a' chunntas \"$2\" air {{SITENAME}} dhan t-seòladh puist-d seo on t-seòladh IP $1.\n\nGus dearbhadh gur an agad fhèin a tha an cunntas seo agus gus na feartan puist-d\na ghnìomhachadh air {{SITENAME}}, fosgail an ceangal seo sa bhrabhsair agad:\n\n$3\n\nMur e *tusa* a bh' ann a chlàraich an cunntas seo, lean air a' cheangal seo\ngus sgur dhen dearbhadh leis a' phost-d:\n\n$5\n\nFalbhaidh an ùine air a' chòd dearbhaidh seo $4.",
+       "confirmemail_body": "Chlàraich chuideigin - 's sinne an dùil gur e tusa a bh' ann - cunntas \"$2\"\nair {{SITENAME}} leis an t-seòladh puist-d seo on t-seòladh IP $1.\n\nGus dearbhadh gur an agad fhèin a tha an cunntas seo agus gus na gleusan puist-d\na ghnìomhachadh air {{SITENAME}}, fosgail an ceangal seo sa bhrabhsair agad:\n\n$3\n\nMur e *tusa* a bh' ann a chlàraich an cunntas seo, lean air a' cheangal seo\ngus sgur dhen dearbhadh leis a' phost-d:\n\n$5\n\nFalbhaidh an ùine air a' chòd dearbhaidh seo $4.",
+       "confirmemail_body_changed": "Dh'atharraich chuideigin - 's sinne an dùil gur e tusa a bh' ann - an seòladh puist-d\naig a' chunntas \"$2\" air {{SITENAME}} dhan t-seòladh puist-d seo on t-seòladh IP $1.\n\nGus dearbhadh gur an agad fhèin a tha an cunntas seo agus gus na gleusan puist-d\na ghnìomhachadh às ùr air {{SITENAME}}, fosgail an ceangal seo sa bhrabhsair agad:\n\n$3\n\nMur e *tusa* a bh' ann a chlàraich an cunntas seo, lean air a' cheangal seo\ngus sgur dhen dearbhadh leis a' phost-d:\n\n$5\n\nFalbhaidh an ùine air a' chòd dearbhaidh seo $4.",
+       "confirmemail_body_set": "Shuidhich chuideigin - 's sinne an dùil gur e tusa a bh' ann - an seòladh puist-d\naig a' chunntas \"$2\" air {{SITENAME}} dhan t-seòladh puist-d seo on t-seòladh IP $1.\n\nGus dearbhadh gur an agad fhèin a tha an cunntas seo agus gus na gleusan puist-d\na ghnìomhachadh air {{SITENAME}}, fosgail an ceangal seo sa bhrabhsair agad:\n\n$3\n\nMur e *tusa* a bh' ann a chlàraich an cunntas seo, lean air a' cheangal seo\ngus sgur dhen dearbhadh leis a' phost-d:\n\n$5\n\nFalbhaidh an ùine air a' chòd dearbhaidh seo $4.",
        "confirmemail_invalidated": "Chaidh sgur de dhearbhadh an t-seòlaidh puist-d",
        "invalidateemail": "Sguir de dhearbhadh an t-seòlaidh puist-d",
        "scarytranscludedisabled": "[Tha gabhail a-steach 'na iomradh eadar-uicidh à comas]",
        "confirm-watch-top": "A bheil thu airson an duilleag seo a chur ris a' chlàr-fhaire agad?",
        "confirm-unwatch-button": "Ceart ma-thà",
        "confirm-unwatch-top": "A bheil thu airson an duilleag seo a thoirt air falbh on chlàr-fhaire agad?",
+       "confirm-rollback-top": "A bheil thu airson na mùthaidhean air an duilleag seo a thilleadh?",
        "semicolon-separator": ";&#32;",
        "comma-separator": ",&#32;",
        "colon-separator": ":&#32;",
        "watchlistedit-raw-done": "Chaidh an clàr-faire agad ùrachadh.",
        "watchlistedit-raw-added": "Chaidh $1 {{PLURAL:$1|tiotal|thiotal|tiotalan|tiotal}} a chur ris:",
        "watchlistedit-raw-removed": "Chaidh $1 {{PLURAL:$1|tiotal|thiotal|tiotalan|tiotal}} a thoirt air falbh:",
-       "watchlistedit-clear-title": "Clàr-faire air a ghlanadh",
+       "watchlistedit-clear-title": "Glan an clàr-faire",
        "watchlistedit-clear-legend": "Glan an clàr-faire",
        "watchlistedit-clear-explain": "Thèid a h-uile tiotal a thoirt far a' chlàr-fhaire agad",
        "watchlistedit-clear-titles": "Tiotalan:",
        "version-entrypoints-header-url": "URL",
        "version-entrypoints-articlepath": "[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgArticlePath Slighe artaigil]",
        "version-entrypoints-scriptpath": "[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgScriptPath slighe sgriobt]",
-       "redirect": "Ath-stiùireadh le faidhle, cleachdaiche, duilleag no ID a' mhùthaidh",
-       "redirect-summary": "Nì an duilleag shònraichte seo ath-stiùireadh gu faidhle (le ainm faidhle), duilleag (le ID a' mhùthaidh no ID na duilleige) no duilleag cleachdaiche (le àireamh ID a' chleachdaiche). Seo mar a chleachdas tu e: [[{{#Special:Redirect}}/file/Ball-eisimpleir.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]] no [[{{#Special:Redirect}}/user/101]].",
+       "redirect": "Ath-stiùireadh le faidhle, cleachdaiche, duilleag, mhùthadh no ID loga",
+       "redirect-summary": "Nì an duilleag shònraichte seo ath-stiùireadh gu faidhle (le ainm faidhle), duilleag (le ID a' mhùthaidh no ID na duilleige) no duilleag cleachdaiche (le àireamh ID a' chleachdaiche) no innteart an loga (le ID an loga). Seo mar a chleachdas tu e: [[{{#Special:Redirect}}/file/Ball-eisimpleir.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], [[{{#Special:Redirect}}/user/101]] no [[{{#Special:Redirect}}/logid/186]].",
        "redirect-submit": "Siuthad",
        "redirect-lookup": "Rannsaich:",
        "redirect-value": "Luach:",
        "compare-revision-not-exists": "Chan eil am mùthadh a shònraich thu ann.",
        "dberr-problems": "Duilich! Tha trioblaid teicnigeach aig an làrach seo.",
        "dberr-again": "Feitheamh mionaid no dhà 's ath-luchdaich i.",
-       "dberr-info": "(Chan obraich an conaltradh ri frithealaiche an stòir-dhàta: $1)",
-       "dberr-info-hidden": "(Chan obraich an conaltradh ri frithealaiche an stòir-dhàta)",
+       "dberr-info": "(Chan urrainn dhuinn an stòr-dàta inntrigeadh: $1)",
+       "dberr-info-hidden": "(Chan urrainn duinn an stòr-dàta inntrigeadh)",
        "dberr-usegoogle": "Feuch lorg le Google san eadar-àm.",
        "dberr-outofdate": "Thoir an aire nach eil an clàr acasan air an t-susbaint againn cho ùr sa ghabhas ma dh'fhaoidte.",
        "dberr-cachederror": "Seo lethbhreac dhen duilleag a dh'iarr thu on tasgadan 's chan eil e cho ùr 's a ghabhas, ma dh'fhaoidte.",
        "api-error-badaccess-groups": "Chan eil cead agad gus faidhlichean a luchdadh suas dhan uicidh seo.",
        "api-error-badtoken": "Mearachd taobh a-staigh: Droch thòcan.",
        "api-error-copyuploaddisabled": "Tha luchdadh suas le URL à comas air an fhrithealaiche seo.",
-       "api-error-duplicate": "Tha {{PLURAL:$1|faidhle eile|are faidhlichean eile}} air an làrach seo mar-thà sa bheil an aon susbaint.",
+       "api-error-duplicate": "Tha {{PLURAL:$1|faidhle eile|faidhlichean eile}} air an làrach seo mar-thà sa bheil an aon susbaint.",
        "api-error-duplicate-archive": "Tha {{PLURAL:$1|faidhle eile|faidhlichean eile}} air an làrach seo mar-thà sa bheil an aon susbaint ach chaidh {{PLURAL:$1|a sguabadh|an sguabadh}} às.",
        "api-error-empty-file": "Tha am faidhle a chuir thu a-null falamh.",
        "api-error-emptypage": "Chan fhaodar duilleagan falamh ùra a chruthachadh.",
        "expand_templates_generate_xml": "Seall craobh parsaidh an XML",
        "expand_templates_generate_rawhtml": "Seall bun-tùs an HTML",
        "expand_templates_preview": "Ro-sheall",
-       "pagelanguage": "Roghnaichear cànan nan duilleag",
+       "pagelanguage": "Atharraich cànan na duilleige",
        "pagelang-name": "Duilleag",
        "pagelang-language": "Cànan",
        "pagelang-use-default": "Cleachd an cànan tùsail",
        "action-pagelang": "atharraich cànan nan duilleagan",
        "log-name-pagelang": "Loga air atharrachadh nan cànan",
        "log-description-pagelang": "Seo loga dhe na h-atharraichean air cànanan nan duilleagan.",
-       "logentry-pagelang-pagelang": "Dh'atharraich $1 cànan nan duilleagan airson $3 o $4 gu $5.",
+       "logentry-pagelang-pagelang": "{{GENDER:$2|Dh'atharraich}} $1 an cànan aig $3 o $4 gu $5",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (an comas)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 (<strong>à comas</strong>)",
        "mediastatistics": "Stadastaireachd nam meadhanan",
index 1166b4c..24b6f55 100644 (file)
        "protectedpagetext": "Esta páxina foi protexida para evitar a edición e outras accións.",
        "viewsourcetext": "Pode ver e copiar o código fonte desta páxina.",
        "viewyourtext": "Pode ver e copiar o código fonte <strong>das súas edicións</strong> nesta páxina.",
-       "protectedinterface": "Esta páxina fornece o texto da interface do software e está protexida para evitar o seu abuso.\nPara engadir ou modificar as traducións en todos os wikis utilice [//translatewiki.net/wiki/Main_Page?setlang=gl translatewiki.net], o proxecto de localización de MediaWiki.",
+       "protectedinterface": "Esta páxina fornece o texto da interface do software e está protexida para evitar o seu abuso.\nPara engadir ou modificar as traducións en todos os wikis utilice [https://translatewiki.net/wiki/Main_Page?setlang=gl translatewiki.net], o proxecto de localización de MediaWiki.",
        "editinginterface": "<strong>Aviso:</strong> Está editando unha páxina usada para fornecer o texto da interface do software.\nOs cambios feitos nesta páxina afectarán á aparencia da interface dos outros usuarios do wiki.",
-       "translateinterface": "Para engadir ou modificar as traducións en todos os wikis utilice [//translatewiki.net/wiki/Special:MainPage?setlang=gl translatewiki.net], o proxecto de localización de MediaWiki.",
+       "translateinterface": "Para engadir ou modificar as traducións en todos os wikis utilice [https://translatewiki.net/wiki/Special:MainPage?setlang=gl translatewiki.net], o proxecto de localización de MediaWiki.",
        "cascadeprotected": "Esta páxina foi protexida fronte á edición debido a que está transcluída {{PLURAL:$1|na seguinte páxina protexida, que ten|nas seguintes páxinas protexidas, que teñen}} a \"protección en serie\" activada:\n$2",
        "namespaceprotected": "Non ten os permisos necesarios para modificar páxinas no espazo de nomes '''$1'''.",
        "customcssprotected": "Non ten os permisos necesarios para modificar esta páxina de CSS, dado que contén a configuración persoal doutro usuario.",
        "resetpass-temp-password": "Contrasinal temporal:",
        "resetpass-abort-generic": "Unha extensión cancelou a modificación do contrasinal.",
        "resetpass-expired": "O seu contrasinal caducou. Defina un novo contrasinal para acceder.",
-       "resetpass-expired-soft": "O seu contrasinal caducou e debe restablecelo. Escolla un novo contrasinal ou prema en \"{{int:resetpass-submit-cancel}}\" para restablecelo máis tarde.",
-       "resetpass-validity-soft": "O seu contrasinal non é válido: $1\n\nEscolla un novo contrasinal ou prema en \"{{int:resetpass-submit-cancel}}\" para restablecelo máis tarde.",
+       "resetpass-expired-soft": "O seu contrasinal caducou e debe restablecelo. Escolla un novo contrasinal ou prema en \"{{int:authprovider-resetpass-skip-label}}\" para restablecelo máis tarde.",
+       "resetpass-validity-soft": "O seu contrasinal non é válido: $1\n\nEscolla un novo contrasinal ou prema en \"{{int:authprovider-resetpass-skip-label}}\" para restablecelo máis tarde.",
        "passwordreset": "Restablecer o contrasinal",
        "passwordreset-text-one": "Encha este formulario para restablecer o seu contrasinal.",
        "passwordreset-text-many": "{{PLURAL:$1|Encha un dos campos para recibir por correo electrónico un contrasinal temporal.}}",
        "minoredit": "Esta é unha edición pequena",
        "watchthis": "Vixiar esta páxina",
        "savearticle": "Gardar a páxina",
+       "savechanges": "Gardar os cambios",
        "publishpage": "Publicar a páxina",
+       "publishchanges": "Publicar cambios",
        "preview": "Vista previa",
        "showpreview": "Mostrar a vista previa",
        "showdiff": "Mostrar os cambios",
        "content-model-css": "CSS",
        "content-json-empty-object": "Obxecto baleiro",
        "content-json-empty-array": "Matriz baleira",
+       "deprecated-self-close-category": "Páxinas que usan etiquetas HTML de auto-pechado non válidas",
+       "deprecated-self-close-category-desc": "Páxinas que conteñen unha etiqueta HTML de auto-pechado non válida, como <code>&lt;b/></code> ou <code>&lt;span/></code>. O comportamento destas etiquetas vai cambiar para gardar a consistencia coa especificación HTML5, polo que o seu uso no texto wiki está desbotado.",
        "duplicate-args-warning": "<strong>Advertencia:</strong> [[:$1]] está chamando a [[:$2]] con máis dun valor para o parámetro \"$3\". Só se usará o último valor proporcionado.",
        "duplicate-args-category": "Páxinas con argumentos duplicados nas chamadas aos modelos",
        "duplicate-args-category-desc": "Esta páxina contén as chamadas aos modelos que utilizan argumentos duplicados, como <code><nowiki>{{exemplo|bar=1|bar=2}}</nowiki></code> ou <code><nowiki>{{exemplo|bar|1=baz}}</nowiki></code>.",
        "rows": "Filas:",
        "columns": "Columnas:",
        "searchresultshead": "Procurar",
-       "stub-threshold": "Límite superior para o formato de ligazóns de bosquexo($1):",
+       "stub-threshold": "Límite superior de tamaño para o formato das ligazóns cara bosquexos ($1):",
        "stub-threshold-sample-link": "exemplo",
        "stub-threshold-disabled": "Desactivado",
        "recentchangesdays": "Número de días a mostrar nos cambios recentes:",
        "rightslogtext": "Este é un rexistro dos cambios nos permisos de usuario.",
        "action-read": "ler esta páxina",
        "action-edit": "editar esta páxina",
-       "action-createpage": "crear páxinas",
-       "action-createtalk": "crear páxinas de conversa",
+       "action-createpage": "crear esta páxina",
+       "action-createtalk": "crear esta páxina de conversa",
        "action-createaccount": "crear esta conta de usuario",
        "action-autocreateaccount": "crear automaticamente esta conta de usuario externa",
        "action-history": "ver o historial desta páxina",
        "upload-http-error": "Produciuse un erro HTTP: $1",
        "upload-copy-upload-invalid-domain": "A copia de cargas non está dispoñible neste dominio.",
        "upload-foreign-cant-upload": "Este wiki non está configurado para subir ficheiros ao repositorio de ficheiros externo solicitado.",
+       "upload-foreign-cant-load-config": "Erro ó cargar a configuración das subas de ficheiros para o repositorio de ficheiros externo.",
+       "upload-dialog-disabled": "As cargas de ficheiros usando esta pantalla están desactivadas neste wiki.",
        "upload-dialog-title": "Subir un ficheiro",
        "upload-dialog-button-cancel": "Cancelar",
        "upload-dialog-button-done": "Feito",
        "apisandbox": "Zona de probas API",
        "apisandbox-jsonly": "É preciso activar o JavaScript para usar a zona de probas.",
        "apisandbox-api-disabled": "API está desactivado neste sitio.",
-       "apisandbox-intro": "Use esta páxina para experimentar co <strong>servizo web da API de MediaWiki</strong>.\nConsulte a [[mw:API:Main page| documentación da API]] para obter máis información sobre o uso da API. Exemplo: [//www.mediawiki.org/wiki/API#A_simple_example obter o contido dunha páxina de inicio]. Seleccione unha acción para ollar máis exemplos.\n\nTeña en conta que, aínda que esta é unha páxina de probas, as accións que realice nesta páxina poden modificar o wiki.",
+       "apisandbox-intro": "Use esta páxina para experimentar co <strong>servizo web da API de MediaWiki</strong>.\nConsulte a [[mw:API:Main page| documentación da API]] para obter máis información sobre o uso da API. Exemplo: [https://www.mediawiki.org/wiki/API#A_simple_example obter o contido dunha páxina de inicio]. Seleccione unha acción para ollar máis exemplos.\n\nTeña en conta que, aínda que esta é unha páxina de probas, as accións que realice nesta páxina poden modificar o wiki.",
        "apisandbox-fullscreen": "Expandir panel",
        "apisandbox-fullscreen-tooltip": "Expande o panel da zona de probas para encher a pantalla do navegador.",
        "apisandbox-unfullscreen": "Mostrar a páxina",
        "sp-contributions-username": "Enderezo IP ou nome de usuario:",
        "sp-contributions-toponly": "Mostrar só as últimas revisións",
        "sp-contributions-newonly": "Mostrar só as edicións que crearon páxinas",
+       "sp-contributions-hideminor": "Ocultar edicións menores",
        "sp-contributions-submit": "Procurar",
        "whatlinkshere": "Páxinas que ligan con esta",
        "whatlinkshere-title": "Páxinas que ligan con \"$1\"",
        "allmessagesname": "Nome",
        "allmessagesdefault": "Texto predeterminado",
        "allmessagescurrent": "Texto actual",
-       "allmessagestext": "Esta é unha lista de todas as mensaxes dispoñibles no espazo de nomes MediaWiki.\nPor favor, visite a páxina de [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation localización de MediaWiki] e [//translatewiki.net translatewiki.net] se quere contribuír á localización xenérica de MediaWiki.",
+       "allmessagestext": "Esta é unha lista de todas as mensaxes dispoñibles no espazo de nomes MediaWiki.\nPor favor, visite a páxina de [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation localización de MediaWiki] e [https://translatewiki.net translatewiki.net] se quere contribuír á localización xenérica de MediaWiki.",
        "allmessagesnotsupportedDB": "Esta páxina non está dispoñible porque '''$wgUseDatabaseMessages''' está desactivado.",
        "allmessages-filter-legend": "Filtrar",
        "allmessages-filter": "Filtrar por estado de personalización:",
        "mw-widgets-dateinput-placeholder-month": "AAAA-MM",
        "mw-widgets-titleinput-description-new-page": "a páxina aínda non existe",
        "mw-widgets-titleinput-description-redirect": "redirección cara a $1",
-       "api-error-blacklisted": "Escolla un título diferente e descritivo.",
        "sessionmanager-tie": "Non pode combinar peticións múltiples de tipos de autenticación: $1.",
        "sessionprovider-generic": "sesións $1",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "sesións baseadas nas cookies",
        "log-action-filter-newusers": "Tipo de creación de conta:",
        "log-action-filter-patrol": "Tipo de vixilancia:",
        "log-action-filter-protect": "Tipo de protección:",
-       "log-action-filter-rights": "Tipo de cambio de dereito",
-       "log-action-filter-suppress": "Tipo de borrado",
+       "log-action-filter-rights": "Tipo de cambio de dereito:",
+       "log-action-filter-suppress": "Tipo de borrado:",
        "log-action-filter-upload": "Tipo de subida:",
        "log-action-filter-all": "Todas",
        "log-action-filter-block-block": "Bloquear",
        "cannotauth-not-allowed-title": "Permiso rexeitado",
        "cannotauth-not-allowed": "Non ten permiso para usar esta páxina",
        "changecredentials": "Cambiar as credenciais",
-       "changecredentials-submit": "Cambiar",
-       "changecredentials-submit-cancel": "Cancelar",
+       "changecredentials-submit": "Cambiar credenciais",
        "changecredentials-invalidsubpage": "$1 non é un tipo de información de identificación válido.",
        "changecredentials-success": "As súas credenciais foron cambiadas.",
        "removecredentials": "Eliminar credenciais",
-       "removecredentials-submit": "Eliminar",
-       "removecredentials-submit-cancel": "Cancelar",
+       "removecredentials-submit": "Eliminar credenciais",
        "removecredentials-invalidsubpage": "$1 non é un tipo de información de identificación válido.",
        "removecredentials-success": "As súas credenciais foron eliminadas.",
        "credentialsform-provider": "Tipo de información de identificación:",
        "linkaccounts-success-text": "A conta foi vinculada.",
        "linkaccounts-submit": "Vincular contas",
        "unlinkaccounts": "Desvincular contas",
-       "unlinkaccounts-success": "A conta foi desvinculada."
+       "unlinkaccounts-success": "A conta foi desvinculada.",
+       "authenticationdatachange-ignored": "Os cambios de datos de autenticación non foron xerados. Está configurado o provedor?"
 }
index 4ba2bcc..2dc66a3 100644 (file)
                "authors": [
                        "AminSanaei",
                        "Varg",
-                       "محک"
+                       "محک",
+                       "Macofe",
+                       "V6rg",
+                       "شیخ"
                ]
        },
+       "tog-underline": "خالؤنˇ جيره خط کشئن:",
+       "tog-hideminor": "کۊجˇ تغىيرؤنه دۊخۊسانئن تغىيرؤنˇ ليستˇ جي",
+       "tog-hidepatrolled": "گشت بۊخؤردهˇ تغىيرؤنه دۊخۊسانئن تغىيرؤنˇ ليستˇ جي",
+       "tog-hidecategorization": "ولگؤنˇجرگه-بندئنه جخۊسانئن",
+       "tog-editondblclick": "دۊته کيليک أجي ولگؤنه دچينواچين گۊدن",
+       "tog-editsectiononrightclick": "وابينؤنˇ تيترˇ سر راس-کيليک بکۊنين تا وابينؤنˇ دچينواچين کار دککئه",
+       "tog-watchcreations": "اۊ ولگؤنه کي چاکؤنم ؤ فاىلؤنه کي جؤراکشنمه علاوه بکۊن مي پىگيري ليسته",
+       "tog-watchdefault": "اۊ ولگؤن ؤ فاىلؤنه کي دچينواچين کؤنم علاوه بکۊن مي پىگيري ليسته",
+       "tog-watchmoves": "اۊ ولگؤن ؤ فاىلؤنه کي جابجا کؤنم علاوه بکۊنمي پىگيري ليسته",
+       "tog-watchdeletion": "اۊ ولگؤن ؤ فاىلؤنه کي پاکأکؤنم علاوه بکۊنمي پىگيري ليسته",
+       "tog-watchrollback": "هر ولگه که پساوگردؤنئم، علاوه بۊکۊن مي پىگيري ليسته",
+       "tog-previewontop": "دچينواچينˇ کادرˇ جؤرˇ پيشادئنه نۊشؤن بدي",
+       "tog-previewonfirst": "أولي دچينواچينˇ هينگؤم پيشادئنه نۊشؤن بدي",
+       "tog-enotifwatchlistpages": "أگه ىکته ولگ ىا فاىل مي پىگيري ليست أجي دچينواچين بۊبؤ مئبه ايمىل بخسأن",
+       "tog-enotifusertalkpages": "وختي مي کارگيري گبˇ ولگˇ مئن ىکچي عوضأبنه، مئبه ايمىل اۊسئه بۊبۊن",
+       "tog-enotifminoredits": "ولگؤن ؤ فاىلؤنˇ مئنˇ ريزˇ تغىيرؤنˇ واسيم مئبه ايمىل اۊسئه بۊبۊن",
+       "tog-enotifrevealaddr": "فأندرˇ ايمىلؤنˇ مئن مي ايمىلˇ آدرس معلۊم بۊبۊن",
+       "tog-shownumberswatching": "پىگير کارگيرؤنˇ تعداده نۊشؤن بدي",
+       "tog-watchlisthideliu": "ديرين بمأ کارگيرؤنˇ دچينواچينؤنه، پىگيتنؤنˇ ليستˇ مئن دۊخۊسان",
+       "tog-ccmeonemails": "اۊ ايمىلˇ جي که ديگرؤن ئبه اۊسئه کؤنم ىک نؤسخه کؤپي مئبه روانه بۊبۊن",
+       "tog-norollbackdiff": "پساوگردانئنˇ پسي، تؤفير نۊشؤن بدأ نۊبۊن",
+       "sunday": "ىکشمبه",
+       "monday": "دۊشمبه",
+       "tuesday": "سۊشمبه",
+       "wednesday": "چارشمبه",
+       "thursday": "پنجشمبه",
+       "friday": "جۊمه",
+       "saturday": "شمبه",
+       "sun": "ىکشمبه",
+       "mon": "دۊشمبه",
+       "tue": "سۊشمبه",
+       "wed": "چارشمبه",
+       "thu": "پنجشمبه",
+       "fri": "جۊمه",
+       "sat": "شمبه",
+       "january": "ژانویه",
+       "february": "فئوریه",
+       "march": "مارس",
+       "april": "آوريل",
+       "may_long": "مئی",
+       "june": "جۊن",
+       "july": "جۊلاى",
+       "august": "آگؤست",
+       "september": "سپتامبر",
+       "october": "اؤکتؤبر",
+       "november": "نؤوامبر",
+       "december": "دسامبر",
+       "january-gen": "ژانویه",
+       "february-gen": "فئوريه",
+       "march-gen": "مارس",
+       "april-gen": "آوريل",
+       "may-gen": "مئى",
+       "june-gen": "جۊن",
+       "july-gen": "جۊلاى",
+       "august-gen": "آگؤست",
+       "september-gen": "سپتامبر",
+       "october-gen": "اؤکتؤبر",
+       "november-gen": "نؤوامبر",
+       "december-gen": "دسامبر",
+       "jan": "ژانویه",
+       "feb": "فئوریه",
+       "mar": "مارس",
+       "apr": "آوریل",
+       "may": "مئی",
+       "jun": "جۊن",
+       "jul": "جۊلای",
+       "aug": "آگؤست",
+       "sep": "سپتامبر",
+       "oct": "اؤکتؤبر",
+       "nov": "نؤوامبر",
+       "dec": "دسامبر",
+       "pagecategories": "{{PLURAL:$1|جرگه|جرگهٰ‌ن}}",
+       "category_header": "\"$1\" جرگه مئنˇ ولگؤن",
+       "category-media-header": "\"$1\" جرگه مئنˇ رسانهٰ‌ن",
+       "hidden-categories": "{{PLURAL:$1|جخۊته جرگه|جخۊته جرگهٰ‌ن}}",
+       "category-subcat-count": "{{PLURAL:$2|اي جرگه ميئن خالي اي جيرجرگه دره.|{{PLURAL:$1|اي جيرجرگه|اي $1 جيرجرگه}} اي جرگه ميئن {{PLURAL:$1|دره|درن}}؛ اي جرگه سرجمع $2ته جيرجرگه دأنه.}}",
+       "category-article-count": "{{PLURAL:$2|اي جرگه ميئن خالي هي ولگ دره.|{{PLURAL:$1|اي جرگه|اي $1 ولگ}} اي جرگه ميئن {{PLURAL:$1|دره|درن}}؛ اي جرگه سرجمع $2ته ولگ دأنه.}}",
+       "category-article-count-limited": "جيرˇ{{PLURAL:$1|ولگ|$1 ولگ}} هي جرگه مئن دره.",
+       "category-file-count": "{{PLURAL:$2|اي جرگه مئن خالي اي فاىل دره.|{{PLURAL:$1|اي فاىل|اي $1ته فاىل}} اي جرگه مئن {{PLURAL:$1|دره|درن}}؛ اي جرگه مئن در کؤل $2ته فاىل دره.}}",
+       "listingcontinuesabbrev": "(ايدامه)",
+       "cancel": "لغو",
        "moredotdotdot": "ویشتر...",
-       "mypage": "می هنه‌شر",
-       "mytalk": "می گب",
-       "anontalk": "اَ آی.پیˇ گب",
-       "qbfind": "یاتن",
-       "qbedit": "دچین واچین",
-       "returnto": "واگرد به $1.",
-       "search": "واموج",
-       "searchbutton": "واموج",
-       "go": "بوشو",
-       "searcharticle": "بوشو",
-       "history_short": "تارئخ",
-       "printableversion": "پرینتی نوسخه",
-       "permalink": "مؤنسنی پیوند",
-       "edit": "دچین واچین",
-       "editthispage": "اَ هنه‌شره (صفحه‌یه) دچین‌واچین بکون.",
-       "create-this-page": "اَ هنه‌شره (صفحه‌یه) چاکون.",
-       "deletethispage": "اَ هنه‌شره پاکأ کون.",
-       "newpage": "تازه هنه‌شر (تازه صفحه)",
+       "mypage": "ولگ",
+       "mytalk": "گب",
+       "anontalk": "گب",
+       "navigation": "گرأخؤردن",
+       "and": "&#32;ؤ",
+       "qbfind": "ىاتن",
+       "qbedit": "دچینواچین",
+       "qbpageoptions": "اي ولگ",
+       "namespaces": "نؤمفضاؤن",
+       "variants": "گۊىشؤن",
+       "navigation-heading": "گرأخؤر منؤ",
+       "returnto": "$1 وگرد.",
+       "tagline": "{{SITENAME}} جي",
+       "help": "رانما",
+       "search": "وامج",
+       "searchbutton": "وامج",
+       "go": "بۊشۊ",
+       "searcharticle": "بۊشۊ",
+       "history": "ولگˇ تاريخ",
+       "history_short": "تاريخ",
+       "printableversion": "وؤته چاپ گۊدن",
+       "permalink": "داىمي خال",
+       "view": "دئن",
+       "edit": "دچينواچين",
+       "editthispage": "اي ولگه دچينواچين بکۊن",
+       "create-this-page": "اي ولگه چاکۊن",
+       "delete": "حذف",
+       "deletethispage": "اي ولگه پاکأ کۊن.",
+       "protect": "پأسن",
+       "protectthispage": "اي ولگه بپا",
+       "unprotect": "پأسنه عوضأؤدن",
+       "unprotectthispage": "اي ولگˇ پأسنه عوضأکۊن",
+       "newpage": "تازه ولگ",
        "talkpagelinktext": "گب",
+       "specialpage": "خاصˇ ولگ",
+       "personaltools": "شخصي بزارؤن",
        "talk": "گب",
-       "toolbox": "ابزار جیگا",
-       "jumpto": "واز بکون به:",
+       "views": "بدئرؤن",
+       "toolbox": "أبزارؤن",
+       "userpage": "کارگيرˇ ولگه دئن",
+       "categorypage": "جرگه ولگه دئن",
+       "otherlanguages": "باخي زوانؤنˇ جي",
+       "redirectedfrom": "(مسير عوضاؤدن $1 أجي)",
+       "protectedpage": "بپأسه ولگ",
+       "jumpto": "بوؤز:",
        "jumptonavigation": "گردسن",
-       "jumptosearch": "واموج",
-       "currentevents": "تازه چیؤن",
-       "mainpage": "گت صفحه",
-       "mainpage-description": "گت صفحه",
-       "portal": "امه جیگا",
-       "privacy": "رازبداری",
-       "editsection": "دچین‌واچین",
-       "editold": "دچین‌واچین",
-       "nstab-main": "وانیویس (مقاله)",
-       "nstab-user": "کاربری هنه‌شر",
-       "nstab-category": "رج",
-       "searchresults": "واموج‌دموجˇ نتایج",
-       "searchresults-title": "واموج‌دموجˇ نتایج، «$1»ˇ واسی",
-       "allpagessubmit": "بشو",
-       "categories": "رجؤن",
+       "jumptosearch": "وامج",
+       "view-pool-error": "سرورؤنˇ سر پۊر بار هننأ. پۊر پۊرˇ کارگيرؤن حقسأى کأدرن که اي ولگه فأندرن. \nلؤطف بۊکۊنين ىيسکالى صبر بدأرين.\n\n$1",
+       "aboutsite": "راجه به {{SITENAME}}",
+       "aboutpage": "Project:راجه به",
+       "copyrightpage": "{{ns:project}}:چاکۊدنحق",
+       "currentevents": "هسأىي تفاقؤن",
+       "currentevents-url": "Project:هساىي تفاقؤن",
+       "disclaimers": "ردنامهٰ‌ن",
+       "disclaimerpage": "Project:عۊمۊمي ردنامه",
+       "edithelp": "دچينواچينˇ رانما",
+       "mainpage": "گتˇ ولگ",
+       "mainpage-description": "گتˇ ولگ",
+       "portal": "أمي جیگا",
+       "portal-url": "Project:کارگيرؤنˇ ديرينگه",
+       "privacy": "خۊصۊصي حریمˇ سیاست",
+       "privacypage": "Project:حريمˇ سیاست",
+       "badaccess-groups": "کاري که شمه خأنين، فقط {{PLURAL:$2|اي پأره|اي پأره'ن}} کارگيرؤنˇ شئه: $1.",
+       "retrievedfrom": "«$1» جي وأىته",
+       "youhavenewmessagesfromusers": "شمه {{PLURAL:$4|ىکته دئه کارگير|$3 کارگير}} جي $1 دأنين ($2).",
+       "editsection": "دچينواچين",
+       "editold": "دچينواچين",
+       "editlink": "دچينواچين",
+       "viewsourcelink": "سربسه دئن",
+       "editsectionhint": "وابينˇ دچينواچين: $1",
+       "toc": "دله",
+       "site-atom-feed": "أتؤمˇ خۊراک $1 ئبه",
+       "page-atom-feed": "أتؤمˇ خۊراک $1 ئبه",
+       "red-link-title": "$1 (ولگ دننه)",
+       "nstab-main": "ولگ",
+       "nstab-user": "کارگيري ولگ",
+       "nstab-special": "خاصˇ ولگ",
+       "nstab-project": "پؤرؤژه ولگ",
+       "nstab-image": "فاىل",
+       "nstab-template": "قالب",
+       "nstab-category": "جرگه",
+       "mainpage-nstab": "گتˇ ولگ",
+       "error": "سأب",
+       "databaseerror": "دىتابىسˇ سأب",
+       "databaseerror-error": "سأب: $1",
+       "readonly": "دىتابىس قؤفلأبؤ",
+       "internalerror": "دۊيريني سأب",
+       "internalerror_info": "دۊيريني سأب: $1",
+       "filedeleteerror": "نۊبؤ کي \"$1\" فاىله حذفأگۊدن.",
+       "directorycreateerror": "نشأنه \"$1\" مسيره چاگۊدن.",
+       "directoryreadonlyerror": "\"$1\" مسير خالي خؤندني ايسه.",
+       "directorynotreadableerror": "\"$1\" مسير خؤندني نئه.",
+       "filenotfound": "نشأنه \"$1\" فاىله ىاتن.",
+       "cannotdelete-title": "نشأنه \"$1\" ولگه حذفأگۊدن",
+       "badtitle": "بدˇ تيتر",
+       "viewsource": "سربسه دئن",
+       "viewsource-title": "$1 سربسه دئن",
+       "actionthrottled": "شمئه کارˇ جۊلؤ بىته بۊبؤ",
+       "protectedpagetext": "اي ولگ پأسه بؤدره تا دچينواچين نبۊن.",
+       "customcssprotected": "شمه اجازه ندأنين اي CSS ولگه دچينواچين بکۊنين چۊن اينˇ مئن ىکته دئه کارگيرˇ شخصي تنظيمات دره.",
+       "customjsprotected": "شمه اجازه ندأنين اي جاوا ولگه دچينواچين بکۊنين چۊن اينˇ مئن ىکته دئه کارگيرˇ شخصي تنظيمات دره.",
+       "mycustomcssprotected": "شمه اجازه ندأنين اي CSS ولگه دچينواچين بکۊنين.",
+       "titleprotected": "اي تيتر [[User:$1|$1]]ˇ جي، چاگۊدن ئبه بپأسسه ايسه.\nاينˇ دليل اينه: <em>$2</em>.",
+       "exception-nologin": "دۊيرين نمأىن",
+       "exception-nologin-text": "خأهشن دۊيرين بأىن تا اي ولگ شيمئه دسفأرس بۊبۊن.",
+       "cannotlogoutnow-title": "هسا بيرين شؤ منين",
+       "cannotlogoutnow-text": "وختي $1 کاردره، نشأنه بيرۊن شؤن.",
+       "welcomeuser": "خۊش بمأى $1!",
+       "welcomecreation-msg": "تي کارگيري حساب چاگۊده بۊبؤ.\nشمره ىاد دبۊن کي تي [[Special:Preferences|تنظيماته {{SITENAME}}]] عوضأکۊني.",
+       "yourname": "کارگيري نؤم",
+       "userlogin-yourname": "کارگيري نؤم",
+       "userlogin-yourname-ph": "تي کارگيري نؤمه بنويس",
+       "createacct-another-username-ph": "تي کارگيري نؤمه بنويس",
+       "yourpassword": "رمز:",
+       "userlogin-yourpassword": "رمز",
+       "userlogin-yourpassword-ph": "تي رمزه بنويس",
+       "createacct-yourpassword-ph": "ىکته رمز بنويس",
+       "yourpasswordagain": "رمزه دۊمارته بنويس",
+       "createacct-yourpasswordagain": "رمزه تأىيد بکۊن",
+       "createacct-yourpasswordagain-ph": "هندئه رمزه بنويس",
+       "remembermypassword": "رمزه (تا حدأکثر $1 {{PLURAL:$1|رۊز|رۊزؤن}}) اي وبمجˇ مئن ىاد بدأر.",
+       "userlogin-remembermypassword": "مره دۊيرين بمأ بدأر",
+       "cannotloginnow-title": "هسأ دۊيرين أمأ منين",
+       "cannotloginnow-text": "وختي $1 کاردره، نشأنه دۊيرين أمأن.",
+       "yourdomainname": "تي پره",
+       "login": "ديرين بأىن",
+       "userloginnocreate": "ديرين",
+       "logout": "بيرين شؤن",
+       "userlogout": "بيرين شؤن",
+       "userlogin-noaccount": "کارگيري حيساب ندأني؟",
+       "userlogin-joinproject": "{{SITENAME}}ˇ مئن ثبتˇ نام بکۊن.",
+       "nologin": "کارگيري حيساب ندأني؟ $1.",
+       "nologinlink": "ىکته حيساب چاکۊن",
+       "createaccount": "حيساب چاکۊدن",
+       "gotaccount": "ىکته کارگيري حيساب دأني؟ $1.",
+       "gotaccountlink": "دۊيرين",
+       "userlogin-resetlink": "دۊيرين أمأنˇ اطلاعاته ىادأگۊدي؟",
+       "userlogin-resetpassword-link": "تي رمزه ىادأگۊدي؟",
+       "userlogin-loggedin": "شمه هسأ {{GENDER:$1|$1}}ˇ تأهأت ديرين بمأىن.\nأگه خأ ىکته دئه کارگيرˇ تأهأت ديرن بأىن، جيري فؤرمه کاراگيرين.",
+       "userlogin-createanother": "ىکته دئه کارگيري حيساب چاکۊن",
+       "createacct-emailrequired": "ايمىلˇ آدرس",
+       "createacct-emailoptional": "ايمىلˇ آدرس (ديلبخا)",
+       "createacct-email-ph": "تي ايمىلˇ آدرسه بنويس",
+       "createacct-another-email-ph": "ايمىلˇ آدرسه بنويس",
+       "createacct-realname": "واقعي نؤم (ديلبخا)",
+       "createaccountreason": "دليل:",
+       "createacct-reason": "دليل",
+       "createacct-reason-ph": "چره ىکته دئه کارگيري حساب چاکأدري؟",
+       "createacct-submit": "تي کارگيري حيسابه چاکۊن",
+       "createacct-another-submit": "حيساب چاگۊدن",
+       "createacct-benefit-heading": "{{SITENAME}} شيمي مۊسؤنچي آدم اۊنه چاگۊدن!",
+       "createacct-benefit-body1": "{{PLURAL:$1|دچينواچين}}",
+       "createacct-benefit-body2": "{{PLURAL:$1|ولگ}}",
+       "createacct-benefit-body3": "{{PLURAL:$1|مؤشارکت گۊدنکس}} أخير",
+       "usernameinprogress": "اي کارگيري نؤم ئبه ىکته حساب چاگۊده بؤدره؛ صبر بۊکۊنين.",
+       "loginerror": "ديرين أمأنˇ مئن سأب بۊبؤ",
+       "createacct-error": "سأب، کارگيري حساب چاگۊدنˇ مئن",
+       "createaccounterror": "نشأنه اي حيسابه چاگۊدن: $1",
+       "nocookiesnew": "تي کارگيري حساب چاگۊده بۊبؤ ولي هنۊز وبجيگه' ديرين نمأى.\n{{SITENAME}} کارگيرؤنˇ ديرين أمأنˇ وأسي کۊکي کأرأىته بنه.\nتۊ کۊکيئنه دبستي.\nلؤطف بکۊن کۊکيئنه هنده کار تؤدي ؤ بازين تي تازه کارگيري نؤم ؤ رمزأجي وبجيگه' ديرين بئه.",
+       "nocookieslogin": "{{SITENAME}} کارگيرؤنˇ ديرين أمأنˇ واسي کۊکي کأرأگينه.\nشمه کۊکيئنه دبۊستين.\nلؤطف بکۊنين کۊکيئنه هندئه کار تؤدين ؤ هندئه حقسأى بکۊنين.",
+       "noname": "شمه ىکته کارگيري نؤم که دبۊن ننويشتين.",
+       "loginsuccesstitle": "دۊيرين بمأى",
+       "nosuchuser": "$1 نؤمي کارگير دننه.\nکارگيري نؤم، حرفؤنˇ کۊشتأکي ؤ پيلئگي سر حساسه. نؤمˇ ايملا' نيأ بکۊنين ىا [[Special:CreateAccount|ىکته تازه حيساب چاکۊنين]].",
+       "nouserspecified": "وا ىکته کارگيري نؤم مألۊم بکۊنين.",
+       "password-name-match": "شيمئه رمز وا شيمئه کارگيري نؤمˇ أمرأ تؤفير بدأره.",
+       "mailmypassword": "هندئه رمز چاگۊدن",
+       "passwordremindertext": "ىک نفر (شاىد خۊدˇ شمه، $1 آى.پي نۊشؤني جي) {{SITENAME}} مئن شيمئه کارگيري حساب ئبه تازه رمز بخأسته ($4).\nىکته مؤوقتي رمز چاگۊده بۊبؤ \"$2\" کارگير ئبه ؤ ائره نأ: \"$3\". \nأگه هينه خأستين، هسأ وأ وبجيگه' ديرين بشين ؤ تازه رمز چاکۊنين.\nشيمئه مؤوقتي رمز {{PLURAL:$5|ىک رۊز|$5 رۊز}} مئن باطل بۊنه.\n\nأگه ىک نفر ديگه همچين چيزي بخأسته ىا أگه شمه شيمئه قديمي رمزه ىاد بأردين ؤ دئه نخأنين اۊنه عوضأکۊنين، اي پىغامه ندئه بگيرين ؤ هۊ قديمي رمزه کاراگيرين.",
+       "accountcreated": "حيساب چاگۊده-بۊبؤ!",
+       "accountcreatedtext": "[[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|گب]]) واسي کارگيري حيساب چاگۊده بۊبؤ.",
+       "login-migrated-generic": "شيمئه کارگيري حيساب جابجا بۊبؤ ؤ شيمئه کارگيري نؤم ديگه اي ويکي ميئن دننه.",
+       "loginlanguagelabel": "زوان: $1",
+       "createacct-another-realname-tip": "واقعي نؤم ديلبخا ايسه.\nأگه اۊنه بنويسين، وختي شيمئه کارؤنˇ گبه ؤ اۊشؤنه نسبت دأدرن شمره، شيمئه واقعي نؤمه کاراگينن.",
+       "pt-login": "ديرين",
+       "pt-login-button": "ديرين",
+       "pt-createaccount": "حساب چاگۊدن",
+       "pt-userlogout": "بيرين شؤن",
+       "changepassword": "رمز عوضأگۊدن",
+       "resetpass_header": "کارگيري حسابˇ رمزه عوضأگۊدن",
+       "oldpassword": "قديمي رمز",
+       "newpassword": "تازه رمز",
+       "retypenew": "رمزه دۊمارته بنويس",
+       "resetpass_submit": "رمزه عوضأکۊن ؤ دۊيرين بشۊ",
+       "changepassword-success": "تي رمز عوضأبؤ!",
+       "botpasswords-label-create": "چاگۊدن",
+       "botpasswords-label-update": "برۊزأگۊدن",
+       "botpasswords-label-cancel": "لغو",
+       "botpasswords-label-delete": "حذف",
+       "botpasswords-label-resetpassword": "هندئه رمز چاگۊدن",
+       "resetpass-submit-loggedin": "رمز عوضأگۊدن",
+       "resetpass-submit-cancel": "لغو",
+       "passwordreset": "هندئه رمز چاگۊدن",
+       "passwordreset-username": "کارگيري نؤم:",
+       "passwordreset-capture-help": "أگه اي گۊزينه' تيک بزنين، ايمىل (که اينˇ مئن مؤوقتي رمز دره) شيمئبه نۊشؤن بدأ بنه ؤ کارگيرئبه ني اۊسئه بنه.",
+       "passwordreset-emailelement": "کارگيري نؤم: \n$1\n\nمؤوقتي رمز: \n$2",
+       "bold_sample": "پۊررنگˇ وؤت",
+       "bold_tip": "پۊررنگˇ وؤت",
+       "italic_sample": "کجˇ وؤت",
+       "italic_tip": "کجˇ وؤت",
+       "link_sample": "خالˇ تيتر",
+       "link_tip": "دۊيريني خال",
+       "extlink_sample": "http://www.example.com خالˇ تيتر",
+       "extlink_tip": "بيريني خال (http://‎ پيشونده ىادانکۊنين)",
+       "headline_sample": "تيترˇ وؤت",
+       "image_tip": "وؤتˇ مئنˇ تصوير",
+       "media_tip": "فاىلˇ خال",
+       "hr_tip": "اؤفؤقي خط (اۊن أجي کم کارأگيرين)",
+       "summary": "فيچالسه:",
+       "minoredit": "اي نيميزگره دچينواچينه",
+       "watchthis": "اي ولگه پى بگير",
+       "savearticle": "ولگه ذخيره گۊدن",
+       "preview": "پيشادئن",
+       "showpreview": "پيشادئن",
+       "showdiff": "تغىيرؤنه نۊشؤن دأن",
+       "summary-preview": "پيشادئنˇفيچالسه:",
+       "blockedtitle": "کارگير دبۊسته بۊبؤ",
+       "loginreqtitle": "خأ أول ديرين بأى",
+       "loginreqlink": "ديرين بئه",
+       "noarticletext": "اي ولگˇ مئن ألؤنى هيچ وؤتي دننئه. شۊمۊ تؤنين باخيˇ ولگؤنˇ مئن [[Special:Search/{{PAGENAME}}|اي ولگˇ تيتره وامجين]]،\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} مۊرتبط سياه'نه وامجين]،\nىا [{{fullurl:{{FULLPAGENAME}}|action=edit}} اي ولگه دچينواچين بکۊنين]</span>.",
+       "editing": "$1 دچينواچين گۊدن",
+       "editingsection": "دچيواچينˇ مئن $1 (وابين)",
+       "templatesused": "اي ولگˇ مينˇ {{PLURAL:$1|قالب|قالبؤن}}",
+       "template-protected": "(بپأسه)",
+       "hiddencategories": "اي ولگ {{PLURAL:$1|ىکته جخۊته جرگه|$1 جخۊته جرگه}} مئن دره:",
+       "currentrev-asof": "هسأىي نۊسخه تا $1",
+       "revisionasof": "نۊسخه $1",
+       "previousrevision": "→ قديميترˇ نۊسخه",
+       "currentrevisionlink": "هسأىى نۊسخهٰ نۊشؤن دأن",
+       "cur": "ألؤن",
+       "last": "دأميشکي",
+       "rev-deleted-user": "(کارگيري نؤم حذفأبؤ)",
+       "rev-delundel": "نۊشؤن دأن/جۊخۊسانئن",
+       "revdelete-hide-user": "کارگيري نؤم/آى.پي",
+       "revdelete-reason-dropdown": "*حذفˇ هرماله دليلؤن\n** چاکۊدنحقه نقض گۊدن\n** نظر ىا اطلاعاتي که مؤناسب نيه\n** کارگيري نؤمي که مؤناسب نيه\n** اطلاعاتي که اۊنˇ مئن تؤهمت دره",
+       "difference-title": "$1: نۊسخه'نˇ تؤفير",
+       "lineno": "رچ $1:",
+       "editundo": "وگردانئن",
+       "diff-multi-otherusers": "{{PLURAL:$2|۱ کارگير|$2 کارگير}} دچينواچين بۊبؤ ({{PLURAL:$1|۱ مئني نؤسخه|$1 مئني نؤسخه}} نۊشؤن بدأ نۊبؤ)",
+       "searchresults": "وامتنˇ نتيجه'ن",
+       "searchresults-title": "وامتنˇ نتيجه'ن، \"$1\"ˇ واسی",
+       "prevn": "داميشکˇ {{PLURAL:$1|$1}}",
+       "nextn": "بعدي {{PLURAL:$1|$1}}",
+       "shown-title": "$1هر ىکته ولگˇ مئن {{PLURAL:$1|نتيجه'|نتيجه'ن}} نۊشؤن بدي.",
+       "searchprofile-articles": "دله ولگؤن",
+       "searchprofile-images": "چنرسانه",
+       "searchprofile-everything": "همه چي",
+       "searchprofile-advanced": "دؤجئه",
+       "searchprofile-articles-tooltip": "$1 مئن وامج",
+       "searchprofile-images-tooltip": "فاىلؤنˇ مئنه وامج",
+       "searchprofile-everything-tooltip": "تمؤمˇ دله' وامتن (حتی گبˇ ولگؤنه)",
+       "searchprofile-advanced-tooltip": "دؤجئه نؤمفضا'نˇ مئن وامتن",
+       "search-result-size": "$1 ({{PLURAL:$2|ىک کلمه|$2 کلمه'ن}})",
+       "search-category": "($1 جرگه)",
+       "search-suggest": "شيمي منظۊر بۊ: $1",
+       "searchall": "همه",
+       "mypreferences": "ترجيحات",
+       "skin-preview": "پيشادئن",
+       "prefs-user-pages": "کارگيري ولگؤن",
+       "allowemail": "باخي کارگيرؤنˇ جي شأسته بۊن ايمىل هأىتن",
+       "username": "{{GENDER:$1|کارگيري نؤم}}:",
+       "prefs-help-email-others": "شيمئه اينم تينين دؤجين بکۊنين که کارگيرؤن بۊتؤنن ىکته خالˇ جي که شيمئه کارگيري ولگ ىا شيمئه گبˇ ولگˇ مئن دره، شيمئبه ايمىل بخسأنن.\nوختي ديگرؤن شيمئه أمرأ تماس گينن شيمئه ايمىلˇ نۊشؤني مألۊم نبۊنه.",
+       "prefs-preview": "پيشادئن",
+       "userrights": "کارگيرˇ دسفارسˇ کياگري",
+       "userrights-lookup-user": "کارگيري پأره'نˇ کياگري",
+       "editusergroup": "{{جنس:$1|کارگيري}}پأره'نˇ دچينواچين",
+       "editinguser": "{{GENDER:$1|کارگير}} <strong>[[User:$1|$1]]</strong> $2 کارگيري دسفأرسؤنه عوضأؤدن",
+       "saveusergroups": "{{جنس:$1|کارگيري}} پأره'نه ذخيره گۊدن",
+       "group": "پأره:",
+       "group-user": "کارگيرؤن",
+       "group-autoconfirmed": "تأىيد بۊبؤ کارگيرؤن",
+       "group-sysop": "کيا'ن",
+       "group-bureaucrat": "شأردويرؤن",
+       "group-suppress": "دۊخۊسانگرۊن",
+       "group-user-member": "{{GENDER:$1|کارگير}}",
+       "group-autoconfirmed-member": "{{GENDER:$1|تأييد بۊبؤ کارگير}}",
+       "group-sysop-member": "{{GENDER:$1|کيا}}",
+       "group-bureaucrat-member": "{{GENDER:$1|شأردوير}}",
+       "group-suppress-member": "{{جنس:$1|دۊخۊسانگر}}",
+       "grouppage-user": "{{ns:project}}:کارگيرؤن",
+       "grouppage-autoconfirmed": "{{ns:project}}:تأييد بۊبؤ کارگيرؤن",
+       "grouppage-sysop": "{{ns:project}}:کيا'ن",
+       "grouppage-bureaucrat": "{{ns:project}}:شأردويرؤن",
+       "grouppage-suppress": "{{ns:project}}:دۊخۊسانگر",
+       "right-createaccount": "تازه کارگيري حيساب چاگۊدن",
+       "right-move-categorypages": "جرگه ولگؤنه جابجا گۊدن",
+       "right-writeapi": "نيويشتنˇ API أجي کاراىتن",
+       "right-block": "باخي کارگيرؤنˇ دچينواچينˇ دسفأرسه دبۊستن",
+       "right-hideuser": "ىکته کارگيره دبۊستن ؤ اينه ديگرؤنˇ جي دۊخۊسانئن",
+       "right-rollback": "آخري کارگيري که ىکته ولگه دچينواچين بؤده، اينˇ دچينواچينؤن تۊنداتۊند پساوگردانه بۊبۊن",
+       "right-userrights": "کارگيرؤنˇهمته دسفأرسؤنˇ دچينواچين",
+       "right-userrights-interwiki": "باخي ويکئنˇ کارگيرؤنˇ دسفأرسˇ دچينواچين",
+       "right-sendemail": "باخي کارگيرؤنه ايمىل بخسأن",
+       "newuserlogpage": "کارگير چاگۊدنˇ سياهه",
+       "newuserlogpagetext": "اي ىکته سياهه' کارگير چاگۊدنؤنˇ جي",
+       "action-createaccount": "اي کارگيري حيسابه چاکۊن",
+       "action-move-categorypages": "جرگه ولگؤنه جابجا گۊدن",
+       "action-block": "اي کارگيرˇ دچينواچينˇ دسفأرسه دبۊد",
+       "action-rollback": "آخري کارگيري که ىکته ولگه دچينواچين بؤده، اينˇ دچينواچينؤن تۊنداتۊند پساوگردانه بۊبۊن",
+       "enhancedrc-history": "تاريخ",
+       "recentchanges": "آخري تغىيرؤن",
+       "recentchanges-legend": "آخري تغىيرؤنˇ تنظيمات",
+       "recentchanges-label-newpage": "اي دچينواچين ىکته تازه ولگ چاگۊده",
+       "recentchanges-label-minor": "اي نيميزگره دچينواچينه",
+       "recentchanges-label-bot": "اي دچينواچينه ىکته رۊبات بؤده",
+       "rcshowhideminor-show": "نۊشؤن دأن",
+       "rcshowhideminor-hide": "دۊخۊسان",
+       "rcshowhidebots": "$1 رۊباتؤن",
+       "rcshowhidebots-show": "نۊشؤن دأن",
+       "rcshowhidebots-hide": "دۊخۊسان",
+       "rcshowhideliu": "$1 ثبتˇ نام بؤده کارگيرؤن",
+       "rcshowhideliu-hide": "دۊخۊسان",
+       "rcshowhideanons": "$1 ناشناس کارگيرؤن",
+       "rcshowhideanons-show": "نۊشؤن دأن",
+       "rcshowhideanons-hide": "دۊخۊسان",
+       "rcshowhidemine": "$1 مي دچينواچينؤن",
+       "rcshowhidemine-show": "نۊشؤن دأن",
+       "rcshowhidemine-hide": "دۊخۊسان",
+       "diff": "تؤفير",
+       "hist": "تاريخ",
+       "hide": "دۊخۊسان",
+       "show": "نۊشؤن دأن",
+       "minoreditletter": "جؤز",
+       "newpageletter": "نؤ",
+       "boteditletter": "ر",
+       "number_of_watching_users_pageview": "[$1 {{PLURAL:$1|کارگير}} پىگير]",
+       "rc-change-size-new": "$1 {{PLURAL:$1|باىت}} تغىيرˇ پسي",
+       "recentchangeslinked": "مۊرتبطˇ تغىيرؤن",
+       "recentchangeslinked-toolbox": "مۊرتبطˇ تغىيرؤن",
+       "recentchangeslinked-summary": "اي جير، ىکته ليسته تينين بىنين آخري تغييرؤن أجي اۊ ولگؤنˇ مئن کي اي ولگˇ جي خال ببؤن (ىا جرگهٔ مؤردˇ نظرˇ جي). اۊ ولگؤني که [[Special:Watchlist|شيمئه پىگيري ليست]]۱ميئن دبۊن پۊررنگ نۊشؤن بدأبۊنن.",
+       "recentchangeslinked-page": "ولگˇ نؤم:",
+       "upload": "فاىله جؤراکشئن",
+       "filedesc": "فيچالسه",
+       "upload-file-error-text": "وختي حقسأى بؤدبۊ که سرورˇ مئن ىکته مؤوقتي فاىل چاگۊده بۊبۊن، سأب بۊبؤ.\n\nىکته [[Special:ListUsers/sysop|کيا]] أمرأ تماس بگيرين.",
+       "upload-misc-error-text": "جيرأکشئنˇ زمت، ىکته سأب بۊبؤ که مألۊم نيه چيسه.\nلؤطف بکۊنين بىنين اينترنتي نۊشؤني مؤعتبر ؤ دسفأرس ايسه ؤ هندئه حقسأى بکۊنين.\n\nأگه هندئه دۊرۊسأنۊبؤ، ىکته [[Special:ListUsers/sysop|کيا'ن]] أمرأ تماس بگيرين.",
+       "img-auth-accessdenied": "شيمئه دسفأرس نيه",
+       "license-header": "جواز",
+       "license-nopreview": "(پيشادئن ئبه هيچي ننأ)",
+       "listfiles-userdoesnotexist": "\"$1\" کارگيري حيساب ثبت نۊبؤ.",
+       "imgfile": "فاىل",
+       "listfiles_user": "کارگير",
+       "file-anchor-link": "فاىل",
+       "filehist": "فاىلˇ تاريخ",
+       "filehist-help": "تاريخ/زمتؤنˇ سر کيليک بکۊنين تا اۊ تاريخ/زمتˇ نۊسخه' بىنين.",
+       "filehist-current": "ألؤنˇ نۊسخه",
+       "filehist-datetime": "تاريخ/زمت",
+       "filehist-thumb": "کلˇ أنگۊشتي",
+       "filehist-thumbtext": "کلˇ أنگۊشتي عکس، $1 تاريخˇ نۊسخه' جي",
+       "filehist-user": "کارگير",
+       "filehist-dimensions": "أبعاد",
+       "filehist-comment": "نظر",
+       "imagelinks": "فاىله کارأىتن",
+       "linkstoimage": "اي {{PLURAL:$1|ولگ|ولگؤن}} اي تاتاىئه خال بدأ {{PLURAL:$1|دأنه|دأنن}}:",
+       "sharedupload-desc-here": "اي فاىل $1 مئن دره ؤ شاىد باخيˇ پؤرؤژه'نˇ مئنأني کاراىته بۊبۊن.\n[$2 فاىلˇ تؤضيحاتˇ ولگ، اؤره]ˇ مئنˇ تؤضيحات اي جير نۊشؤن بدأره.",
+       "randompage": "کترئي ولگ",
+       "randomincategory": "جرگه مئنˇ کترئي ولگ",
+       "randomincategory-nopages": "[[:Category:$1|$1]] جرگه مئن هيچ ولگي دننه.",
+       "randomincategory-legend": "جرگه مئنˇ کترئي ولگ",
+       "statistics-header-users": "کارگيرˇ آمار",
+       "statistics-users": "[[Special:ListUsers|کارگيرؤن]] ثبتˇ نام بؤده",
+       "nbytes": "$1 {{PLURAL:$1|باىت|باىتؤن}}",
+       "ncategories": "{{PLURAL:$1|جرگه|جرگهٰ‌ن}}",
+       "protectedpages": "بپأسه ولگؤن",
+       "protectedpages-performer": "پأسن کارگير",
+       "protectedpages-unknown-performer": "ناشيناس کارگير",
+       "protectedtitles": "بپأسه تيترؤن",
+       "listusers": "کارگيرؤنˇ ليست",
+       "newpages": "تازه ولگؤن",
+       "newpages-username": "کارگيري نؤم:",
+       "unusedcategoriestext": "اي جرگهٰ‌ن درن ولي هيته وانيويسؤن ىا باخيˇ جرگهٰ‌ن اۊشؤنه کارأنگينن.",
+       "suppress": "دۊخۊسانگري",
+       "booksources": "کيتابˇ سربسؤن",
+       "booksources-search": "وامج",
+       "log": "سياههٰ‌ن",
+       "allarticles": "همته ولگؤن",
+       "allpagessubmit": "بۊشۊ",
+       "categories": "جرگه'ن",
+       "listusers-noresult": "هيچ کارگيري پىدا نۊبؤ.",
+       "activeusers": "فعال کارگيرؤنˇ ليست",
+       "activeusers-hidesysops": "کيا'نه جيگا دأن",
+       "activeusers-noresult": "هيچ کارگيري پىدا نۊبؤ.",
+       "listgrouprights": "کارگيري پأره دسفأرسؤن",
+       "listgrouprights-group": "پأره",
+       "listgrouprights-helppage": "Help:پأره'نˇ دسفأرس",
+       "listgrouprights-removegroup-all": "تؤنه همته پأره'نه حذف بکؤني",
+       "trackingcategories-msg": "ردگيري جرگه",
+       "trackingcategories-desc": "جرگه گۊنجاىشˇ ملاک",
+       "hidden-category-category-desc": "جرگه خؤ ولگˇ مئن <code><nowiki>__HIDDENCAT__</nowiki></code> شامل بنه، کي نۊگذارنه کي جرگه خالؤنˇ جعبه پيشفرض ولگؤنˇ مئن نۊشؤن بدأببۊن.",
+       "trackingcategories-disabled": "جرگه دئه کار نۊکؤنه",
+       "emailuser-title-target": "اي {{GENDER:$1|کارگيره}} ايمىل بخسأن.",
+       "usermaildisabled": "نشأنه کارگير ئبه ايمىل خسأنئن.",
+       "usermaildisabledtext": "شمه اي ويکي مئن مننين باخي کارگيرؤنه ايمىل بخسأنين",
+       "mywatchlist": "پىگيتنؤنˇ ليست",
+       "watch": "پىگيتن",
+       "wlheader-enotif": "فأندرˇ ايمىل کار کؤنه.",
+       "dellogpage": "حذفˇ سياهه",
+       "rollbacklink": "پساوگردان",
+       "rollbacklinkcount-morethan": "$1ˇ جي ويشتر پساوگردان {{PLURAL:$1|دچينواچين|دچينواچينؤن}}",
+       "alreadyrolled": "نشأنه [[:$1]]ˇ آخري دچينواچينه که [[User:$2|$2]] ([[User talk:$2|talk]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]); بؤده، پساوگردانئن؛ اينˇ پيشي، ىک نفر وانيويسه دچينواچين ىا پساوگردان بؤده.\n\nولگˇ آخري دچينواچينه [[User:$3|$3]] ([[User talk:$3|talk]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]) بؤده.",
+       "protectlogpage": "پأسنˇ سياهه",
+       "protect-level-sysop": "فقط کيا'ن",
+       "restriction-level-sysop": "قاىم بپأسه",
+       "undeletehistorynoadmin": "اي ولگ حذفأبؤ.\nاي ولگˇ حذفأبؤنˇ دليل باني اۊ کارگيرؤنˇ نۊشؤني که حذفˇ پيشي اي ولگه دچينواچين بؤده بؤن، جيري فيچالˇ مئن بمأ.\nاي حذفأبؤ دچينواچينؤنˇ أصلˇ وؤت خالي کيا'نˇ دسفأرسه.",
+       "namespace": "نؤمفضا:",
+       "invert": "دؤجين وراکينه بۊبۊن",
+       "tooltip-invert": "ائره تيک بزنين تا دؤجئه نؤمفضا مئنˇ ولگؤنˇ تغىيرؤن (ؤ باخي تيک بزئه نؤمفضا'ن) دخۊته بۊمؤن.",
+       "namespace_association": "مؤرتبطˇ نؤمفضا",
+       "tooltip-namespace_association": "ائره' تيک بزنين تا گبˇ نؤمفضا ىا مؤرتبط مؤضۊع ىا دؤجين بۊبؤ نؤمفضا ني شامل بۊبۊن.",
+       "blanknamespace": "گت",
+       "month": "اي ماه مئن (ؤ دأميشک):",
+       "year": "اي سالˇ مئن (ؤ دأميشک):",
        "sp-contributions-talk": "گب",
-       "blocklink": "دَوَسته ببه",
-       "tooltip-ca-edit": "شمه تانید اَ هنه‌شره (صفحه) دچین‌واچین بکونید. بی‌زحمت قبل از ان‌کی ذخیره بکونید، پیش‌نمایشˇ دوکمه جا استفاده بکونید.",
-       "tooltip-ca-history": "اَ هنه‌شر (صفحه)ˇ قدیمی نسخه‌یان"
+       "whatlinkshere": "هرچي خال ببؤ ائره",
+       "whatlinkshere-page": "ولگ:",
+       "isimage": "فاىلˇ خال",
+       "whatlinkshere-links": "→ خالؤن",
+       "whatlinkshere-hidelinks": "$1 خالؤن",
+       "whatlinkshere-filters": "فيلترؤن",
+       "blocklist-by": "دبۊدگر کيا",
+       "blocklist-nousertalk": "مننه خۊ گبˇ ولگه دچينواچين بکۊنه",
+       "blocklink": "دبۊستن",
+       "contribslink": "ىاوري‌ئن",
+       "block-log-flags-nousertalk": "مننه خۊ گبˇ ولگه دچينواچين بکۊنه",
+       "block-log-flags-hiddenname": "دۊخۊسانئه کارگيري نؤم",
+       "movecategorypage-warning": "<strong>اخظار:</strong> شمه جرگه ولگه جابجا کأدرين. شيمه حواس بمؤنه کي فقط ولگ جابجا بنه ؤ ولگؤن قديمي جرگه مئن مؤنن ؤ تازه جرگه مئن <em>نشنن</em>.",
+       "cant-move-category-page": "شمه اجازه ندأنين جرگهٰ‌نˇ ولگه جابجا بکۊنين.",
+       "cant-move-to-category-page": "شمه ايجازه ندأنين ىکته ولگه ببرين ىکته جرگه ولگˇ مئن.",
+       "movelogpage": "جابجا گۊدنˇ سياهه",
+       "protectedpagemovewarning": "'''فأندرين:''' اي ولگ قؤفلأبؤره ؤ خالي اۊ کارگيرؤني که کياگري دسفأرسه دأن تينن اينه جابجا بۊکۊنن. آخري مؤردؤن اي ليستˇ مئن دره:",
+       "export-addcattext": "جرگه جي ولگ اضافه گۊدن:",
+       "thumbnail-more": "پيلله گۊدن",
+       "tooltip-pt-userpage": "{{جنس:|شيمي کارگير}} ولگ",
+       "tooltip-pt-mytalk": "{{جنس:|شيمي}} گبˇ ولگ",
+       "tooltip-pt-preferences": "{{جنس:|شيمي}} ترجيحات",
+       "tooltip-pt-login": "بئتره ديرين بشين؛ بسچی گه ايجباری نیه.",
+       "tooltip-pt-logout": "بيرين شؤن",
+       "tooltip-pt-createaccount": "بئتره کارگیري حساب چاکۊنين ؤ ديرين بشين؛ بسچي که حساب چاؤدن ايجباری نیه.",
+       "tooltip-ca-talk": "گب راجه به ولگˇ مؤحتوا",
+       "tooltip-ca-edit": "اي ولگه دچينواچين بۊکۊنين",
+       "tooltip-ca-addsection": "ىکته تازه وابين چاکۊن",
+       "tooltip-ca-history": "اي ولگˇ قديمي نۊسخه'ن",
+       "tooltip-ca-protect": "أ ولگه بپا",
+       "tooltip-ca-move": "اي ولگه جابجا گۊدن",
+       "tooltip-ca-watch": "اي ولگه علاوه بکۊن تي پىگيري ليسته",
+       "tooltip-search": "{{SITENAME}} مئن وامج",
+       "tooltip-search-go": "بشۊ ىکته ولگˇ مئن کي هي نؤمه بدأره",
+       "tooltip-search-fulltext": "اي وؤتˇ ولگؤنˇ مئن وامج",
+       "tooltip-p-logo": "گتˇ ولگه بىن",
+       "tooltip-n-mainpage": "گتˇ ولگه بىن",
+       "tooltip-n-mainpage-description": "گتˇ ولگه بىن",
+       "tooltip-n-portal": "راجه به پؤرؤژه، اۊنچی تينين بکۊنين، اؤره کي چیزؤنه ىاجنين",
+       "tooltip-n-recentchanges": "ىکته ليست، ويکي آخري تغىيرؤنˇ جي",
+       "tooltip-n-randompage": "ىکته کترئي ولگه أردن",
+       "tooltip-n-help": "فأمسن ؤ آؤجا هأىتنˇ جيگه",
+       "tooltip-t-whatlinkshere": "ىکته ليست همته ولگؤنˇ جي کي ائره خال ببؤن",
+       "tooltip-feed-atom": "أتۊمˇ خبرنامه اي ولگˇ شي",
+       "tooltip-t-upload": "فاىلؤنه جؤراکشئن",
+       "tooltip-t-specialpages": "ىکته ليست، همه ته خاصˇ ولگؤن جي",
+       "tooltip-t-print": "اي ولگˇ چاپي وؤت",
+       "tooltip-ca-nstab-main": "مۊحتوياتˇ ولگه دئن",
+       "tooltip-ca-nstab-user": "کارگيرˇ ولگه دئن",
+       "tooltip-ca-nstab-special": "اي ىکته خاصˇ ولگه ؤ نشأنه دچينواچين گۊدن.",
+       "tooltip-ca-nstab-image": "فاىلˇ ولگه دئن",
+       "tooltip-ca-nstab-template": "قالبه دئن",
+       "tooltip-ca-nstab-category": "جرگه ولگه دئن",
+       "tooltip-save": "شيمه تغىيرؤنه ذخيره بکۊنين",
+       "tooltip-preview": "شيمئه تغىيرؤنˇ پيشادئن. هلئه ثبت نۊده، اي کيليده کاراگيرين.",
+       "tooltip-rollback": "\"پساوگردان\" اي ولگˇ آخري دچينواچينگرˇ دچينواچينؤنه ىکته تنگۊلى أجي خؤنثا کؤنه.",
+       "pageinfo-header-restrictions": "ولگه پأسن",
+       "pageinfo-hidden-categories": "جخۊته {{PLURAL:$1| جرگه|جرگه}} ( $1 )",
+       "pageinfo-toolboxlink": "ولگˇ اطلاعات",
+       "pageinfo-category-info": "جرگه اطلاعات",
+       "file-info-size": "<span dir=\"ltr\">$1 × $2</span> پیکسل، فاىلˇ واويراز: $3، نوع MIME فاىل: $4",
+       "show-big-image": "أصلˇ فاىل",
+       "show-big-image-size": "<span dir=\"ltr\">$1 × $2</span> پيکسل",
+       "metadata": "گتˇ دىتا",
+       "metadata-fields": "اي پىغؤمˇ مئنˇ نۊشؤن بدأ تاتاىي گتˇ دىتا'ن، وختي کي تاتاىي گتˇ دىتا'نˇ جدول جمأبؤبي، هندئه نۊشؤن بدأ بنه. باخيˇ مؤردؤن خالي اۊ زمت نۊشؤن بدأ بنه کي اۊ جدول وابۊبۊن.\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-model": "دۊربينˇ مؤدل",
+       "exif-software": "کارىته-بۊبؤ نرمبزار",
+       "exif-colorspace": "رنگي فضا",
+       "exif-iimcategory": "جرگه",
+       "exif-orientation-1": "عادي",
+       "namespacesall": "همه",
+       "monthsall": "همه",
+       "specialpages": "خاصˇ ولگؤن",
+       "specialpages-group-login": "ديرين/ثبتˇ نؤم",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|تگ|تگؤن}}]]: $2)",
+       "logentry-newusers-create": "کارگيري حساب $1 {{GENDER:$2|چاگۊده-بۊبؤ}}",
+       "searchsuggest-search": "وامج",
+       "expand_templates_preview": "پيشادئن",
+       "default-skin-not-found": "اؤخ! پيشفرضˇ قالبي که شيمه ويکي ئبه <code dir=\"ltr\"<$wgDefaultSkin</code> مئن تعريف ببؤ به عنوانˇ <code>$1</code>، دسفرس نيه.\n\nبه نظر می‌آید نصب شما شامل پوسته‌های زیر می‌شود. [https://www.mediawiki.org/wiki/Manual:Skin_configuration راهنما: تنظیمات پوسته] را برای کسب اطلاعات در باره چگونگی فعال‌ساختن آن‌ها و انتخاب پیش‌فرض ببینید.\n\n$2\n\n; اگر اخیراً مدیاویکی را نصب کرده‌اید:\n: احتمالاً از گیت، یا به طور مستقیم از کد مبدأ که از چند متد دیگر استفاده می‌کند نصب کردید. انتظار می‌رود. چند {{PLURAL:$4|پوسته|پوسته}} از [https://www.mediawiki.org/wiki/Category:All_skins فهرست پوسته mediawiki.org] نصب کنید، که همراه چندین پوسته و افزونه هستند. شما می‌توانید شاخه <code>skins/</code> را از آن نسخه‌برداری کرده و بچسبانید.\n\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins استفاده از گیت برای دریافت پوسته‌ها].\n: انجام این کار با مخزن گیت‌تان تداخل نمی‌کند اگر توسعه‌دهنده مدیاویکی هستید.\n\n; اگر اخیراً مدیاویکی را ارتقاء دادید:\n: مدیاویکی ۱٫۲۴ و تازه‌تر دیگر به طور خودکار پوسته‌های نصب‌شده را فعال نمی‌کند ([https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery راهنما: کشف خودکار پوسته] را ببینید). شما می‌توانید خطوط زیر را به داخل <code>LocalSettings.php</code> بچسبانید تا {{PLURAL:$5|همه|همه}} پوسته‌های نصب‌شده را فعال کنید:\n\n<pre dir=\"ltr\">$3</pre>\n\n; اگر اخیراً <code>LocalSettings.php</code> را تغییر دادید:\n: نام پوسته‌ها را برای غلط املایی دوباره بررسی کنید."
 }
index d81df3d..d4040cb 100644 (file)
        "exif-orientation-1": "सामान्य",
        "namespacesall": "सगळें",
        "monthsall": "सगळे",
+       "confirm-rollback-button": "बरें",
+       "confirm-rollback-top": "ह्या पाना वयलें संपादन आशिल्ले तशें करात?",
        "watchlisttools-view": "प्रस्तूत बदल पळयात.",
        "watchlisttools-edit": "सादुरवळेरी पळय आनी संपादीत करात",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|उलयात]])",
        "logentry-newusers-create": "उपयोगकत्याचें $1 {{GENDER:$2|तयार केलें}}",
        "logentry-upload-upload": "$1 {{GENDER:$2|अपलोड केला}} $3",
        "searchsuggest-search": "सोद",
+       "special-characters-group-latin": "रोमी",
+       "special-characters-group-latinextended": "रोमी (आनिंक-उइ)",
+       "special-characters-group-ipa": "IPA",
+       "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-devanagari": "नगरी",
+       "special-characters-group-thai": "थाई",
+       "special-characters-group-lao": "लाओ",
+       "special-characters-group-khmer": "ख्मेर",
        "mw-widgets-dateinput-no-date": "तारीख निवडूंक ना",
        "mw-widgets-dateinput-placeholder-day": "वर्स-म्हयनो-दीस",
        "mw-widgets-dateinput-placeholder-month": "वर्स-म्हयनो"
index a56f74a..975cb88 100644 (file)
        "whatlinkshere-prev": "{{PLURAL:$1|adlem|adlem $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|fuddlem|fuddlim $1}}",
        "whatlinkshere-links": "← zoddnio",
-       "whatlinkshere-hideredirs": "$1 punornirdexon",
-       "whatlinkshere-hidetrans": "$1 durasth-somaves",
+       "whatlinkshere-hideredirs": "$1 punornirdexonam",
+       "whatlinkshere-hidetrans": "$1 durasth-somaveso",
        "whatlinkshere-hidelinks": "$1 zoddnio",
        "whatlinkshere-hideimages": "Failinchim zoddpam $1",
        "whatlinkshere-filters": "Challnio",
        "exif-orientation-1": "Samanya",
        "namespacesall": "sogllem",
        "monthsall": "sogllem",
+       "confirm-rollback-button": "Borem",
+       "confirm-rollback-top": "Hea pana voile somadon asle toxe porot kor?",
        "watchlisttools-view": "Sombondhi bodlopam polloi",
        "watchlisttools-edit": "Sadurvolleri polloi ani sudar",
        "watchlisttools-raw": "Sadurvollerichi mull-an bodol kor",
        "logentry-newusers-create": "Vapurpeacho kont $1 {{GENDER:$2|rochlam}}",
        "logentry-upload-upload": "$1-an $3 {{GENDER:$2|upload kela}}",
        "searchsuggest-search": "Sod",
+       "special-characters-group-latin": "Romi",
+       "special-characters-group-latinextended": "Romi (anink-ui)",
+       "special-characters-group-ipa": "IPA",
+       "special-characters-group-greek": "Grik",
+       "special-characters-group-greekextended": "Grik (anink-ui)",
+       "special-characters-group-cyrillic": "Russian",
+       "special-characters-group-arabic": "Arbi",
+       "special-characters-group-arabicextended": "Arbi (anink-ui)",
+       "special-characters-group-persian": "Parsi",
+       "special-characters-group-hebrew": "Hebrev",
+       "special-characters-group-bangla": "Bongali",
+       "special-characters-group-tamil": "Tamil",
+       "special-characters-group-telugu": "Telugu",
+       "special-characters-group-sinhala": "Singales",
+       "special-characters-group-gujarati": "Gujrati",
+       "special-characters-group-devanagari": "Nagari",
+       "special-characters-group-thai": "Thai",
+       "special-characters-group-lao": "Lao",
+       "special-characters-group-khmer": "Khmer",
        "mw-widgets-dateinput-no-date": "Tarikh nivddunk na",
        "mw-widgets-dateinput-placeholder-day": "VVVV-MM-DD",
        "mw-widgets-dateinput-placeholder-month": "VVVV-MM"
index 5d9c38c..b14e01a 100644 (file)
@@ -91,8 +91,8 @@
        "march-gen": "Maret",
        "april-gen": "April",
        "may-gen": "Meyi",
-       "june-gen": "Yuni",
-       "july-gen": "Yuli",
+       "june-gen": "Juni",
+       "july-gen": "Juli",
        "august-gen": "Agustus",
        "september-gen": "September",
        "october-gen": "Oktober",
        "moredotdotdot": "Uweewo",
        "morenotlisted": "Daputari boti dipo ganapu",
        "mypage": "Halaamani",
-       "mytalk": "Bisala",
+       "mytalk": "Lo'iya",
        "anontalk": "Bisala",
        "navigation": "Navigasi",
        "and": "&#32;wawu",
        "newmessagesdifflinkplural": "{{PLURAL:$1|iluba|999=u iluba}} pulitiyo",
        "youhavenewmessagesmulti": "Yio lootapu tahuli bohu to $1",
        "editsection": "boli'a",
-       "editold": "monguba",
+       "editold": "boli'a",
        "viewsourceold": "Bilohi bungoliyo",
        "editlink": "boli'a",
        "viewsourcelink": "Bilohi bungoliyo",
        "sig_tip": "Pali lo ulu'umu wawu tuwoto wakutu",
        "hr_tip": "Garisi bula-bulawahu",
        "summary": "Limbu'o",
-       "minoredit": "Utiye iluba kiki'o",
+       "minoredit": "Utiye biloli'o ngo'idi",
        "watchthis": "Dahayi halaman botiye",
        "savearticle": "Tahuwa halaman",
        "showpreview": "Bilohi pratayang",
        "permissionserrorstext-withaction": "Yi'o ja haku akses $2, sababu {{PLURAL:$1|alasani}} botiya:",
        "moveddeleted-notice": "Halaman botiye ma yiluluto.\nSebagai referensi, botiya log piloluluta wawu piloheyiya halaman botiye.",
        "viewpagelogs": "Bilohi log lo halaman botiye",
-       "currentrev-asof": "Revisi pulitiyo to $1",
+       "currentrev-asof": "Biloli'o pulitiyo to $1",
        "revisionasof": "Biloli'o to $1",
        "revision-info": "Biloli'o per $1 oleh {{GENDER:$6|$2}}$7",
        "previousrevision": "Biloli'o yilaluma'o",
-       "nextrevision": "Revisi lapatiyoma'o →",
-       "currentrevisionlink": "Revisi pulitiyo",
+       "nextrevision": "Biloli'o lapatiyoma'o →",
+       "currentrevisionlink": "Biloli'o pulitiyo",
        "cur": "mst",
        "last": "diipo",
-       "rev-delundel": "lo'ubawa bibilohu",
+       "rev-delundel": "popobilohe/wanto'a",
        "history-title": "Riwayati lo'u loboli'a lonto \"$1\"",
        "difference-title": "$1 hihede revisi",
        "lineno": "Baarisi $1:",
        "searchprofile-articles-tooltip": "Mololohu to $1",
        "searchprofile-images-tooltip": "Mololohe berkas",
        "searchprofile-everything-tooltip": "Mololohe nga'amila tuwango situs (wolo halaman polo'iyalo)",
-       "searchprofile-advanced-tooltip": "Mololohu to ruang tanggulo biasa",
+       "searchprofile-advanced-tooltip": "Mololohu to huwali lo tanggulo biasa",
        "search-result-size": "$1 ({{PLURAL:$2|1 tahe|$2 tahe}})",
        "search-redirect": "(mopobale $1)",
        "search-section": "(tayadu) $1",
        "recentchanges": "Boheli loboli'a mola",
        "recentchanges-legend": "Tulawotolo boheli loboli'a mola",
        "recentchanges-summary": "Mololohe u yilo'ubawa bohu to halaman wiki botiye.",
-       "recentchanges-label-newpage": "Monguba utiye mohutu halaman bohu",
+       "recentchanges-label-newpage": "Momoli'a utiye mohutu halaman bohu",
        "recentchanges-label-minor": "Utiye biloli'o ngo'idi",
        "recentchanges-label-bot": "Lomoli'a utiye kilaraja lo bot",
        "recentchanges-label-unpatrolled": "U biloli'a botiye diipo pilatroli",
        "newpageletter": "B",
        "boteditletter": "b",
        "rc-change-size-new": "$1 {{PLURAL:$1|bita}} lapato biloli'o",
-       "recentchangeslinked": "Lo'ubawa wayitiyo",
+       "recentchangeslinked": "Loboli'a wayitiyo",
        "recentchangeslinked-toolbox": "Loboli'o wayitiyo",
-       "recentchangeslinked-title": "Lo'ubawa a'aayita wolo $1",
+       "recentchangeslinked-title": "Loboli'a a'aayita wolo $1",
        "recentchangeslinked-summary": "Utiye daputari lo'ubawa to halaman a'ayita wolo halaman tuwawu (meyalo tayadu to kategori tuwawu)\nHalaman to [[Special:Watchlist|he'awasiyamu]] ontonga <strong>cetakiya mohulodu</strong>.",
        "recentchangeslinked-page": "Tanggulo halaman:",
-       "recentchangeslinked-to": "Poppobilohe lo'ubawa to halaman u a'aita wolo halaman hepoposadiyalo",
+       "recentchangeslinked-to": "Poppobilohe loboli'a to halaman wayitiyo wolo halaman hepoposadiyalo",
        "upload": "Detohe berkas",
        "filedesc": "Limbu'o",
        "license-header": "Tayadu lisensi",
        "rollbacklink": "wuwalinga",
        "rollbacklinkcount": "pohuwalinga $1 {{PLURAL:$1|biloli'o}}",
        "protectlogpage": "Log mopo'aamani",
-       "namespace": "Ruangtanggulo",
+       "namespace": "Huwali lo tanggulo",
        "invert": "Pohuwalinga tilulawoto",
        "tooltip-invert": "Centang kotak botiye u mopowanto'o halaman yiloboli'a to delomo huwali lo tanggulo tilulawoto (wawu huwali lo tanggulo a'ayita wanu dicentang)",
        "namespace_association": "Huwali lo tanggulo a'aayita",
        "previousdiff": "← Biloli'o to'udiipo",
        "nextdiff": "Biloli'o lapatiyoma'o →",
        "file-info-size": "$1 x $2 piksel, tu'udu berkas:$3, MIME tipe: $4",
-       "file-nohires": "Diya'a resolusi molanggato",
+       "file-nohires": "Diya'a resolusi damango",
        "svg-long-desc": "Berkas SGV, nominal $1 x $2 piksel, damango berkas:$3",
        "show-big-image": "Berkas asli",
        "show-big-image-preview": "Tu'udu lo'u diipo mopobilohu: $1",
        "exif-orientation": "Orientasi",
        "exif-xresolution": "Resolusi bula-bulawahu",
        "exif-yresolution": "Resolusi bula-bulalingo",
-       "exif-datetime": "Tanggal wawu wakutu longuba berkas",
+       "exif-datetime": "Tanggal wawu wakutu lomoli'o berkas",
        "exif-make": "Pabiriki lo kamera",
        "exif-model": "Model lo kamera",
        "exif-software": "Pilakasi moluluhi'o",
index cc62704..0f7c1d8 100644 (file)
@@ -6,18 +6,20 @@
                        "Michawiki",
                        "Node ue",
                        "Sajasazi (on got.wikipedia.org)",
-                       "Zylbath"
+                       "Zylbath",
+                       "Espreon",
+                       "Gothicspeaker"
                ]
        },
        "underline-always": "Sinteino",
-       "underline-never": "Niu",
-       "sunday": "Sunnonsdags",
-       "monday": "Meninsdags",
-       "tuesday": "Tiwisdags",
+       "underline-never": "𐌽𐌹 𐌰𐌹𐍅",
+       "sunday": "𐌰𐍆𐌰𐍂𐍃𐌰𐌱𐌱𐌰𐍄𐍉",
+       "monday": "𐌼𐌴𐌽𐌹𐌽𐍃 𐌳𐌰𐌲𐍃",
+       "tuesday": "𐍄𐌴𐌹𐍅𐌹𐍃 𐌳𐌰𐌲𐍃",
        "wednesday": "Midiwiko",
-       "thursday": "Þeiƕonsdags",
-       "friday": "Fraujonsdags",
-       "saturday": "ð\90\8c¸ð\90\8d\85ð\90\8c°ð\90\8c·ð\90\8c»ð\90\8c¹ð\90\8d\83ð\90\8c³ð\90\8c°ð\90\8c²ð\90\8d\83",
+       "thursday": "𐍀𐌰𐌹𐌽𐍄𐌴𐌳𐌰𐌲𐍃",
+       "friday": "𐍀𐌰𐍂𐌴𐌹𐌽𐍃𐌳𐌰𐌲𐍃",
+       "saturday": "ð\90\8d\83ð\90\8c°ð\90\8c±ð\90\8c±ð\90\8c°ð\90\8d\84ð\90\8d\89",
        "sun": "𐍃𐌿𐌽",
        "mon": "𐌼𐌴𐌽",
        "tue": "𐌰𐍂𐌴",
        "thu": "𐍀𐌰𐌹",
        "fri": "𐍆𐍂𐌹",
        "sat": "𐍃𐌰𐌼",
-       "january": "ð\90\8c°ð\90\8d\86ð\90\8d\84ð\90\8c¿ð\90\8c¼ð\90\8c° ð\90\8c¾ð\90\8c¹ð\90\8c¿ð\90\8c»𐌴𐌹𐍃",
-       "february": "ð\90\8d\86ð\90\8c°ð\90\8c½ð\90\8c¹ð\90\8c¼ð\90\8c´ð\90\8c½ð\90\8d\89ð\90\8c¸𐍃",
-       "march": "ð\90\8cºð\90\8c°ð\90\8c»ð\90\8c³ð\90\8c¼ð\90\8c´ð\90\8c½ð\90\8d\89ð\90\8c¸𐍃",
-       "april": "ð\90\8c²ð\90\8d\82ð\90\8c°ð\90\8d\83ð\90\8c¼ð\90\8c´ð\90\8c½ð\90\8d\89ð\90\8c¸𐍃",
-       "may_long": "ð\90\8c±ð\90\8c»ð\90\8d\89ð\90\8c¼ð\90\8c°ð\90\8c¼ð\90\8c´ð\90\8c½ð\90\8d\89ð\90\8c¸𐍃",
-       "june": "ð\90\8d\85ð\90\8c°ð\90\8d\82ð\90\8c¼ð\90\8c¼ð\90\8c´ð\90\8c½ð\90\8d\89ð\90\8c¸𐍃",
-       "july": "ð\90\8c·ð\90\8c°ð\90\8d\85ð\90\8c¹ð\90\8c¼ð\90\8c´ð\90\8c½ð\90\8d\89ð\90\8c¸𐍃",
-       "august": "ð\90\8c°ð\90\8d\83ð\90\8c°ð\90\8c½ð\90\8c¼ð\90\8c´ð\90\8c½ð\90\8d\89ð\90\8c¸𐍃",
-       "september": "ð\90\8c°ð\90\8cºð\90\8d\82ð\90\8c°ð\90\8c½ð\90\8c¼ð\90\8c´ð\90\8c½ð\90\8d\89ð\90\8c¸ð\90\8d\83",
-       "october": "ð\90\8d\85ð\90\8c´ð\90\8c¹ð\90\8c½ð\90\8c¼ð\90\8c´ð\90\8c½ð\90\8d\89ð\90\8c¸ð\90\8d\83",
-       "november": "ð\90\8d\86ð\90\8d\82ð\90\8c¿ð\90\8c¼ð\90\8c° ð\90\8c¾ð\90\8c¹ð\90\8c¿ð\90\8c»ð\90\8c´ð\90\8c¹ð\90\8d\83",
+       "january": "ð\90\8c¾ð\90\8c°ð\90\8c½ð\90\8c¿ð\90\8c°ð\90\8d\82𐌴𐌹𐍃",
+       "february": "ð\90\8d\86ð\90\8c°ð\90\8c¹ð\90\8c±ð\90\8d\82ð\90\8c¿ð\90\8c°ð\90\8d\82ð\90\8c´ð\90\8c¹𐍃",
+       "march": "ð\90\8c¼ð\90\8c°ð\90\8d\82ð\90\8d\84ð\90\8c¹ð\90\8c¿𐍃",
+       "april": "ð\90\8c°ð\90\8d\80ð\90\8d\82ð\90\8c´ð\90\8c¹ð\90\8c»ð\90\8c¹𐍃",
+       "may_long": "ð\90\8c¼ð\90\8c°ð\90\8c¾ð\90\8c¿𐍃",
+       "june": "ð\90\8c¾ð\90\8c¿ð\90\8c½ð\90\8c¹ð\90\8c¿𐍃",
+       "july": "ð\90\8c¾ð\90\8c¿ð\90\8c»ð\90\8c¹ð\90\8c¿𐍃",
+       "august": "ð\90\8c°ð\90\8c²ð\90\8c¿ð\90\8d\83ð\90\8d\84ð\90\8c¿𐍃",
+       "september": "ð\90\8d\83ð\90\8c°ð\90\8c¹ð\90\8d\80ð\90\8d\84ð\90\8c°ð\90\8c¹ð\90\8c¼ð\90\8c±ð\90\8c°ð\90\8c¹ð\90\8d\82",
+       "october": "ð\90\8c°ð\90\8c¿ð\90\8cºð\90\8d\84ð\90\8d\89ð\90\8c±ð\90\8c°ð\90\8c¹ð\90\8d\82",
+       "november": "ð\90\8c½ð\90\8c°ð\90\8c¿ð\90\8c±ð\90\8c°ð\90\8c¹ð\90\8c¼ð\90\8c±ð\90\8c°ð\90\8c¹ð\90\8d\82",
        "december": "𐌾𐌹𐌿𐌻𐌴𐌹𐍃",
        "january-gen": "𐌰𐍆𐍄𐌿𐌼𐌹𐌽𐍃 𐌾𐌹𐌿𐌻𐌴𐌹𐍃",
-       "february-gen": "ð\90\8d\86ð\90\8c°ð\90\8c½ð\90\8c¹ð\90\8c¼ð\90\8c´ð\90\8c½ð\90\8d\89ð\90\8c¸𐌹𐍃",
+       "february-gen": "ð\90\8d\86ð\90\8c°ð\90\8c¹ð\90\8c±ð\90\8d\82ð\90\8c¿ð\90\8c°ð\90\8d\82ð\90\8c´𐌹𐍃",
        "march-gen": "𐌺𐌰𐌻𐌳𐌼𐌴𐌽𐍉𐌸𐌹𐍃",
        "april-gen": "𐌲𐍂𐌰𐍃𐌼𐌴𐌽𐍉𐌸𐌹𐍃",
        "may-gen": "𐌱𐌻𐍉𐌼𐌰𐌼𐌴𐌽𐍉𐌸𐌹𐍃",
        "october-gen": "𐍅𐌴𐌹𐌽𐌼𐌴𐌽𐍉𐌸𐌹𐍃",
        "november-gen": "𐍆𐍂𐌿𐌼𐌹𐌽𐍃 𐌾𐌹𐌿𐌻𐌴𐌹𐍃",
        "december-gen": "𐌾𐌹𐌿𐌻𐌴𐌹𐍃",
-       "jan": "ð\90\8c°ð\90\8d\86ð\90\8d\84",
+       "jan": "ð\90\8c¾ð\90\8c°ð\90\8c½",
        "feb": "𐍆𐌰𐌽",
-       "mar": "𐌺𐌰𐌻",
-       "apr": "𐌲𐍂𐌰",
-       "may": "𐌱𐌻𐍉",
-       "jun": "𐍅𐌰𐍂",
-       "jul": "𐌷𐌰𐍅",
-       "aug": "𐌰𐍃𐌰",
-       "sep": "𐌰𐌺𐍂",
-       "oct": "𐍅𐌴𐌹",
-       "nov": "𐍆𐍂𐌿",
-       "dec": "𐌾𐌹𐌿",
-       "pagecategories": "{{PLURAL:$1|𐌷𐌰𐌽𐍃𐌰|𐌷𐌰𐌽𐍃𐍉𐍃}}",
-       "category_header": "𐍃𐌴𐌹𐌳𐍉𐍃 𐌹𐌽𐌽 𐌺𐌿𐌽𐌾𐌰 \"$1\"",
-       "subcategories": "Dalaþkunjos",
+       "mar": "𐌼𐌰𐍂",
+       "apr": "𐌰𐍀𐍂",
+       "may": "𐌼𐌰𐌾",
+       "jun": "𐌾𐌿𐌽",
+       "jul": "𐌾𐌿𐌻",
+       "aug": "𐌰𐍀𐍂",
+       "sep": "𐍃𐌰𐌹𐍀",
+       "oct": "𐌰𐌿𐌺",
+       "nov": "𐌽𐌰𐌿𐌱",
+       "dec": "𐌳𐌰𐌹𐌺",
+       "september-date": "𐍃𐌰𐌹𐍀𐍄𐌰𐌹𐌼𐌱𐌰𐌹𐍂 $1",
+       "november-date": "𐌽𐌰𐌿𐌱𐌰𐌹𐌼𐌱𐌰𐌹𐍂 $1",
+       "pagecategories": "{{PLURAL:$1|𐌺𐌿𐌽𐌹|𐌺𐌿𐌽𐌾𐌰}}",
+       "category_header": "𐌻𐌰𐌿𐌱𐍉𐍃 𐌹𐌽 𐌺𐌿𐌽𐌾𐌰 \"$1\"",
+       "subcategories": "𐌼𐌹𐌽𐌽𐌹𐌶𐍉𐌽𐌰 𐌺𐌿𐌽𐌾𐌰",
        "category-media-header": "𐌼𐌴𐌳𐌾𐌰 𐌹𐌽𐌽 𐌺𐌿𐌽𐌾𐌰 \"$1\"",
-       "hidden-categories": "{{PLURAL:$1|𐍆𐌿𐌻𐌲𐌹𐌽𐍃 𐌺𐌰𐍄𐌴𐌲𐍉𐍂𐌹|𐍆𐌿𐌻𐌲𐌹𐌽𐌰𐌹 𐌺𐌰𐍄𐌴𐌲𐍉𐍂𐌾𐍉𐍃}}",
-       "about": "𐌿𐍆𐌰𐍂",
-       "article": "𐍃𐌰𐌸𐍃𐍃𐌴𐌹𐌳𐍉",
-       "newwindow": "(𐌰𐌽𐌳𐌷𐌿𐌻𐌾𐌹𐌸 𐌹𐌽𐌽 𐌽𐌹𐌿𐌾𐌰 𐌰𐌿𐌲𐌰𐌳𐌰𐌿𐍂𐍉)",
-       "cancel": "𐌷𐌰𐌻𐍄𐍃",
+       "hidden-categories": "{{PLURAL:$1|𐌰𐍆𐍆𐌹𐌻𐌷𐌰𐌽 𐌺𐌿𐌽𐌹|𐌰𐍆𐍆𐌹𐌻𐌷𐌰𐌽𐌰 𐌺𐌿𐌽𐌾𐌰}}",
+       "category-subcat-count": "{{PLURAL:$2|𐌸𐌰𐍄𐌰 𐌺𐌿𐌽𐌹 𐌷𐌰𐌱𐌰𐌹𐌸 𐌸𐌰𐍄𐌴𐌹𐌽𐌴𐌹 𐌹𐍆𐍄𐌿𐌼 𐌼𐌹𐌽𐌽𐌹𐌶𐍉𐌽 𐌺𐌿𐌽𐌹|𐌸𐌰𐍄𐌰 𐌺𐌿𐌽𐌹 𐌷𐌰𐌱𐌰𐌹𐌸 {{PLURAL:$1|𐌼𐌹𐌽𐌽𐌹𐌶𐍉𐌽 𐌺𐌿𐌽𐌹|𐌹𐍆𐍄𐌿𐌼𐌰 $1 𐌼𐌹𐌽𐌽𐌹𐌶𐍉𐌽𐌰 𐌺𐌿𐌽𐌾𐌰}}, 𐌰𐌻𐌻𐌰𐌹𐌶𐌴 $2 𐌺𐌿𐌽𐌾𐌴.}}",
+       "category-article-count": "{{PLURAL:$2|𐌸𐌰𐍄𐌰 𐌺𐌿𐌽𐌹 𐌷𐌰𐌱𐌰𐌹𐌸 𐌸𐌰𐍄𐌰𐌹𐌽𐌴𐌹 𐌹𐍆𐍄𐌿𐌼𐌰𐌽 𐌻𐌰𐌿𐍆.|𐌹𐍆𐍄𐌿𐌼𐌰(𐌽𐍃) {{PLURAL:$1|𐌻𐌰𐌿𐍆𐍃 𐌹𐍃𐍄|$1 𐌻𐌰𐌿𐌱𐍉𐍃 𐍃𐌹𐌽𐌳}} 𐌹𐌽 𐌸𐌰𐌼𐌼𐌰 𐌺𐌿𐌽𐌾𐌰, 𐌰𐌻𐌻𐌰𐌹𐌶𐌴 $2 𐌻𐌰𐌿𐌱𐌴.}}",
+       "about": "𐌱𐌹",
+       "article": "𐌷𐌰𐌱𐌰𐌽𐌳𐍃 𐌻𐌰𐌿𐍆𐍃",
+       "newwindow": "(𐌿𐍃𐌻𐌿𐌺𐌹𐌸 𐌹𐌽 𐌽𐌹𐌿𐌾𐌰𐌼𐌼𐌰 𐌰𐌿𐌲𐌰𐌳𐌰𐌿𐍂𐌹𐌽)",
+       "cancel": "𐍃𐍅𐌴𐌹𐌱",
        "moredotdotdot": "𐌼𐌰𐌹𐍃...",
-       "mypage": "ð\90\8c¼ð\90\8c´ð\90\8c¹ð\90\8c½ ð\90\8d\83ð\90\8c´ð\90\8c¹ð\90\8c³ð\90\8d\89",
-       "mytalk": "ð\90\8c¼ð\90\8c´ð\90\8c¹ð\90\8c½ð\90\8c° ð\90\8c¼ð\90\8c°ð\90\8c¸ð\90\8c»ð\90\8c´ð\90\8c¹",
-       "navigation": "ð\90\8d\85ð\90\8c¹ð\90\8c²ð\90\8c°ð\90\8d\84ð\90\8c°ð\90\8c¿ð\90\8c·ð\90\8d\84𐍃",
+       "mypage": "ð\90\8c»ð\90\8c°ð\90\8c¿ð\90\8d\86ð\90\8d\83",
+       "mytalk": "ð\90\8c²ð\90\8c°ð\90\8d\85ð\90\8c°ð\90\8c¿ð\90\8d\82ð\90\8c³ð\90\8c¾ð\90\8c°",
+       "navigation": "ð\90\8c»ð\90\8c°ð\90\8c¿ð\90\8c±ð\90\8c°ð\90\8c²ð\90\8c°ð\90\8d\85ð\90\8c¹ð\90\8d\83ð\90\8d\83ð\90\8c´ð\90\8c¹𐍃",
        "and": "𐌾𐌰𐌷",
-       "qbfind": "𐍃𐍉𐌺𐌴𐌹𐌸",
-       "qbedit": "𐌼𐌰𐌹𐌳𐌾𐌰𐌽",
-       "qbmyoptions": "𐌼𐌴𐌹𐌽𐌰 𐍃𐌴𐌹𐌳𐍉𐍃",
-       "actions": "𐍅𐌰𐌿𐍂𐍃𐍄𐍅𐌴𐌹𐌽𐍃",
-       "namespaces": "𐍃𐌴𐌹𐌳𐍉𐍃𐍄𐌰𐌸𐌴𐌹𐍃",
-       "variants": "𐌼𐌹𐍃𐍃𐌰𐌻𐌴𐌹𐌽𐍃",
-       "errorpagetitle": "𐍆𐌰𐌹𐍂𐌹𐌽𐌰 𐌳𐍅𐌰𐌻𐌹𐍃",
-       "returnto": "𐌲𐌰𐍅𐌰𐌽𐌳𐌾𐌰𐌽 𐌰𐍄 $1.",
+       "qbfind": "𐌱𐌹𐌲𐌹𐍄",
+       "qbedit": "𐌹𐌽𐌼𐌰𐌹𐌳𐌴𐌹",
+       "qbpageoptions": "𐍃𐌰 𐌻𐌰𐌿𐍆𐍃",
+       "qbmyoptions": "𐌼𐌴𐌹𐌽𐌰𐌹 𐌻𐌰𐌿𐌱𐍉𐍃",
+       "actions": "𐍄𐍉𐌾𐌰",
+       "namespaces": "𐌽𐌰𐌼𐌰𐍂𐌿𐌼𐌰",
+       "variants": "𐌼𐌹𐍃𐍃𐌰𐌻𐌴𐌹𐌺",
+       "errorpagetitle": "𐌰𐌹𐍂𐌶𐌴𐌹",
+       "returnto": "𐌲𐌰𐍅𐌰𐌽𐌳𐌴𐌹 𐌳𐌿 $1.",
        "tagline": "𐍆𐍂𐌰𐌼 {{SITENAME}}",
        "help": "𐌷𐌹𐌻𐍀𐌰",
-       "search": "𐍃𐍉𐌺𐌾𐌰𐌽",
-       "searchbutton": "𐍃𐍉𐌺𐌾𐌰𐌽",
-       "go": "𐌲𐌰𐌲𐌲𐌰",
-       "searcharticle": "𐌰𐍆𐌲𐌰𐌲𐌲𐌰𐌽",
-       "history": "𐌰𐌹𐍂𐌹𐍃 𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍃 𐌰𐌽𐌰 𐍃𐌴𐌹𐌳𐍉",
-       "history_short": "𐌰𐌹𐍂𐌹𐍃 𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍃",
-       "printableversion": "𐍅𐍂𐌴𐌹𐍄𐌼𐌰𐌷𐍄𐌴𐌹𐌲 𐍃𐌴𐌹𐌳𐍉",
-       "permalink": "𐍃𐌹𐌽𐍄𐌴𐌹𐌽𐍉 𐍃𐍄𐌰𐌽𐌳𐌰𐌽𐍃 𐌻𐌴𐌹𐌽𐌺𐌰",
-       "view": "Saíhvan",
-       "edit": "𐌼𐌰𐌹𐌳𐌾𐌰𐌽",
-       "create": "𐍃𐌺𐌰𐍀𐌾𐌰𐌽",
-       "editthispage": "𐌼𐌰𐌹𐌳𐌾𐌰 𐌸𐍉 𐍃𐌴𐌹𐌳𐍉",
-       "create-this-page": "Skapja þo seido",
-       "delete": "𐍄𐌰𐌹𐍂𐌰𐌽",
-       "deletethispage": "𐍄𐌰𐌹𐍂𐌰 𐌸𐍉 𐍃𐌴𐌹𐌳𐍉",
+       "search": "𐍃𐍉𐌺𐌴𐌹",
+       "searchbutton": "𐍃𐍉𐌺𐌴𐌹",
+       "go": "𐌲𐌰𐌲𐌲",
+       "searcharticle": "𐌲𐌰𐌲𐌲",
+       "history": "𐌻𐌰𐌿𐌱𐌰𐍃𐍀𐌹𐌻𐌻",
+       "history_short": "𐍃𐍀𐌹𐌻𐌻",
+       "printableversion": "𐌿𐍃𐌼𐌴𐍂𐌴𐌹𐌽𐍃 𐌳𐌿 𐌿𐍃𐌼𐌴𐌻𐌾𐌰𐌽",
+       "permalink": "𐌰𐌹𐍅𐌴𐌹𐌽𐌰 𐌲𐌰𐍅𐌹𐍃𐍃",
+       "view": "𐍃𐌰𐌹𐍈",
+       "view-foreign": "𐍃𐌰𐌹𐍈 𐌰𐌽𐌰 $1",
+       "edit": "𐌹𐌽𐌼𐌰𐌹𐌳𐌴𐌹",
+       "create": "𐍃𐌺𐌰𐍀𐌴𐌹",
+       "editthispage": "𐌹𐌽𐌼𐌰𐌹𐌳𐌴𐌹 𐌸𐌰𐌽𐌰 𐌻𐌰𐌿𐍆",
+       "create-this-page": "𐍃𐌺𐌰𐍀𐌴𐌹 𐌸𐌰𐌽𐌰 𐌻𐌰𐌿𐍆",
+       "delete": "𐍆𐍂𐌰𐌵𐌹𐍃𐍄𐌴𐌹",
+       "deletethispage": "𐍆𐍂𐌰𐌵𐌹𐍃𐍄𐌴𐌹 𐌸𐌰𐌼𐌼𐌰 𐌻𐌰𐌿𐌱𐌰",
        "protect": "𐌱𐌰𐌹𐍂𐌲𐌰𐌽",
-       "protect_change": "ð\90\8c¼ð\90\8c°ð\90\8c¹ð\90\8c³ð\90\8c¾ð\90\8c°ð\90\8c½",
-       "protectthispage": "Baírga þo siedo",
-       "unprotect": "ð\90\8c½ð\90\8c¹ð\90\8c±ð\90\8c°ð\90\8c¹ð\90\8d\82ð\90\8c²ð\90\8c°",
-       "unprotectthispage": "Nibaírga þo siedo",
-       "newpage": "ð\90\8c½ð\90\8c¹ð\90\8c¿ð\90\8c¾ð\90\8c° ð\90\8d\83ð\90\8c´ð\90\8c¹ð\90\8c³ð\90\8d\89",
-       "talkpage": "ð\90\8c¼ð\90\8c°ð\90\8c¸ð\90\8c»ð\90\8c´ð\90\8c¹ð\90\8d\83ð\90\8c´ð\90\8c¹ð\90\8c³ð\90\8d\89",
+       "protect_change": "ð\90\8c¹ð\90\8c½ð\90\8c¼ð\90\8c°ð\90\8c¹ð\90\8c³ð\90\8c´ð\90\8c¹",
+       "protectthispage": "𐍆𐍂𐌹𐌸 𐌸𐌰𐌽𐌰 𐌻𐌰𐌿𐍆",
+       "unprotect": "ð\90\8c¹ð\90\8c½ð\90\8c¼ð\90\8c°ð\90\8c¹ð\90\8c³ð\90\8c´ð\90\8c¹ ð\90\8c¼ð\90\8c¿ð\90\8c½ð\90\8c³",
+       "unprotectthispage": "𐌹𐌽𐌼𐌰𐌹𐌳𐌴𐌹 𐌼𐌿𐌽𐌳 𐌸𐌹𐍃 𐌻𐌰𐌿𐌱𐌹𐍃",
+       "newpage": "ð\90\8c½ð\90\8c¹ð\90\8c¿ð\90\8c¾ð\90\8c¹ð\90\8d\83 ð\90\8c»ð\90\8c°ð\90\8c¿ð\90\8d\86ð\90\8d\83",
+       "talkpage": "ð\90\8d\82ð\90\8d\89ð\90\8c³ð\90\8c´ð\90\8c¹ ð\90\8c±ð\90\8c¹ ð\90\8c¸ð\90\8c°ð\90\8c½ð\90\8c° ð\90\8c»ð\90\8c°ð\90\8c¿ð\90\8d\86",
        "talkpagelinktext": "𐌲𐌰𐍅𐌰𐌿𐍂𐌳𐌾𐌰",
-       "specialpage": "𐌿𐍃𐍃𐌹𐌽𐌳𐍃𐌴𐌹𐌳𐍉𐍃",
-       "personaltools": "ð\90\8d\85ð\90\8c°ð\90\8c¹ð\90\8d\82ð\90\8c»ð\90\8c´ð\90\8c¹ð\90\8cºð\90\8d\83 ð\90\8c±ð\90\8d\82ð\90\8c¿ð\90\8cºð\90\8d\85ð\90\8c°ð\90\8c¹ð\90\8c·ð\90\8d\84𐍃",
+       "specialpage": "𐌿𐍃𐍃𐌹𐌽𐌳𐍃 𐌻𐌰𐌿𐍆𐍃",
+       "personaltools": "ð\90\8d\83ð\90\8d\85ð\90\8c´ð\90\8d\83ð\90\8c°ð\90\8c¹ ð\90\8d\83ð\90\8c°ð\90\8d\82ð\90\8d\85ð\90\8c°ð\90\8c½𐍃",
        "talk": "𐌲𐌰𐍅𐌰𐌿𐍂𐌳𐌾𐌰",
-       "views": "ð\90\8c·ð\90\8c¹ð\90\8d\85ð\90\8c¾ð\90\8d\89𐍃",
-       "toolbox": "ð\90\8d\84ð\90\8c°ð\90\8c¿ð\90\8c¹ ð\90\8c°ð\90\8d\82ð\90\8cºð\90\8c°",
-       "otherlanguages": "𐌰𐌽𐌸𐌰𐍂 𐍂𐌰𐌶𐌳𐍉𐍃",
-       "redirectedfrom": "(ð\90\8c½ð\90\8c°ð\90\8c¿ð\90\8c¸ð\90\8c¾ð\90\8c°ð\90\8c½ ð\90\8d\86ð\90\8d\82ð\90\8c°ð\90\8c¼ð\90\8c¹ð\90\8d\83 $1)",
-       "redirectpagesub": "ð\90\8d\84ð\90\8c°ð\90\8c¹ð\90\8cºð\90\8c¾ð\90\8c°ð\90\8d\83ð\90\8c´ð\90\8c¹ð\90\8c³ð\90\8d\89",
-       "lastmodifiedat": "ð\90\8c¸ð\90\8c°ð\90\8d\84ð\90\8c° ð\90\8d\83ð\90\8c´ð\90\8c¹ð\90\8c³ð\90\8d\89 ð\90\8d\83ð\90\8c¹ð\90\8c½ð\90\8c³ ð\90\8c¼ð\90\8c°ð\90\8c½ð\90\8c°ð\90\8c²ð\90\8c¹ð\90\8d\83ð\90\8d\84ð\90\8d\83 ð\90\8c½ð\90\8c¹ð\90\8c¿ð\90\8c¾ð\90\8c° ð\90\8c¼ð\90\8c°ð\90\8c¹ð\90\8c³ð\90\8c¾ð\90\8c¹ð\90\8c¸ð\90\8d\83 ($2) ($1)",
-       "jumpto": "𐌲𐌰𐌲𐌲𐌰𐌽 𐌰𐍄:",
-       "jumptonavigation": "ð\90\8d\83ð\90\8c´ð\90\8c¹ð\90\8c³ð\90\8d\89ð\90\8c²ð\90\8c°ð\90\8d\85ð\90\8c¹ð\90\8d\83𐍃",
-       "jumptosearch": "𐍃𐍉𐌺𐌴𐌹𐌸",
-       "aboutsite": "ð\90\8d\86ð\90\8d\82ð\90\8c°ð\90\8c¼ {{SITENAME}}",
-       "aboutpage": "Project:ð\90\8c¿ð\90\8d\86ð\90\8c°ð\90\8d\82",
+       "views": "ð\90\8d\83ð\90\8c¹ð\90\8c¿ð\90\8c½ð\90\8c´ð\90\8c¹𐍃",
+       "toolbox": "ð\90\8d\83ð\90\8c°ð\90\8d\82ð\90\8d\85ð\90\8c°ð\90\8c½ð\90\8d\83",
+       "otherlanguages": "𐌰𐌽𐌸𐌰𐍂𐌰𐌹𐌼 𐍂𐌰𐌶𐌳𐍉𐌼",
+       "redirectedfrom": "(ð\90\8c¹ð\90\8d\83 ð\90\8d\84ð\90\8c¹ð\90\8c¿ð\90\8c·ð\90\8c°ð\90\8c½ð\90\8d\83\90\8d\84ð\90\8c¹ð\90\8c¿ð\90\8c·ð\90\8c°ð\90\8c½ð\90\8c° ð\90\8c·ð\90\8c¹ð\90\8c³ð\90\8d\82ð\90\8c´ ð\90\8d\86ð\90\8d\82ð\90\8c°ð\90\8c¼ $1)",
+       "redirectpagesub": "ð\90\8c°ð\90\8c»ð\90\8c¾ð\90\8c°ð\90\8d\82 ð\90\8c±ð\90\8d\82ð\90\8c¹ð\90\8c²ð\90\8c²ð\90\8c°ð\90\8c½ð\90\8c³ð\90\8d\83 ð\90\8c»ð\90\8c°ð\90\8c¿ð\90\8d\86ð\90\8d\83",
+       "lastmodifiedat": "ð\90\8d\83ð\90\8c° ð\90\8c»ð\90\8c°ð\90\8c¿ð\90\8d\86ð\90\8d\83 ð\90\8c¸ð\90\8c°ð\90\8d\84ð\90\8c° ð\90\8c°ð\90\8d\86ð\90\8d\84ð\90\8c¿ð\90\8c¼ð\90\8c¹ð\90\8d\83ð\90\8d\84 ð\90\8c¹ð\90\8c½ð\90\8c¼ð\90\8c°ð\90\8c¹ð\90\8c³ð\90\8c¹ð\90\8c¸ð\90\8d\83 ð\90\8d\85ð\90\8c°ð\90\8d\83 ($1) ($2).",
+       "jumpto": "𐌲𐌰𐌲𐌲 𐌳𐌿:",
+       "jumptonavigation": "ð\90\8c»ð\90\8c°ð\90\8c¿ð\90\8c±ð\90\8c°ð\90\8c²ð\90\8c°ð\90\8d\85ð\90\8c¹ð\90\8d\83ð\90\8d\83ð\90\8c´ð\90\8c¹𐍃",
+       "jumptosearch": "𐍃𐍉𐌺𐌴𐌹",
+       "aboutsite": "ð\90\8c±ð\90\8c¹ {{SITENAME}}",
+       "aboutpage": "Project:ð\90\8c±ð\90\8c¹",
        "copyrightpage": "{{ns:project}}:𐌼𐌰𐌽𐌻𐌴𐌹𐌺𐌰𐍅𐌹𐍄𐍉𐌸𐌰",
        "currentevents": "𐌽𐌹𐌿𐌾𐌰 𐍅𐌰𐌹𐌷𐍄𐍃",
        "currentevents-url": "Project:𐌽𐌹𐌿𐌾𐌰 𐍅𐌰𐌹𐌷𐍄𐍃",
-       "disclaimers": "ð\90\8d\85ð\90\8c°ð\90\8c³ð\90\8c¾ð\90\8d\89ð\90\8c±ð\90\8c¹ð\90\8c»ð\90\8c°ð\90\8c²ð\90\8c´ð\90\8c¹ð\90\8c½𐍃",
-       "disclaimerpage": "Project:ð\90\8d\85ð\90\8c°ð\90\8c³ð\90\8c¾ð\90\8c¹ð\90\8d\83 ð\90\8c±ð\90\8c¹ð\90\8c»ð\90\8c°ð\90\8c²ð\90\8c´ð\90\8c¹ð\90\8c½𐍃",
+       "disclaimers": "ð\90\8c²ð\90\8c°ð\90\8d\82ð\90\8c°ð\90\8c¹ð\90\8c³ð\90\8c´ð\90\8c¹ð\90\8c½ð\90\8d\89ð\90\8d\83 ð\90\8d\82ð\90\8c°ð\90\8c¹ð\90\8c·ð\90\8d\84ð\90\8c°ð\90\8c¹𐍃",
+       "disclaimerpage": "Project:ð\90\8c²ð\90\8c°ð\90\8c¼ð\90\8c°ð\90\8c¹ð\90\8c½ð\90\8c° ð\90\8c²ð\90\8c°ð\90\8d\82ð\90\8c°ð\90\8c¹ð\90\8c³ð\90\8c´ð\90\8c¹ð\90\8c½ð\90\8d\83 ð\90\8d\82ð\90\8c°ð\90\8c¹ð\90\8c·ð\90\8d\84ð\90\8c°ð\90\8c¹𐍃",
        "edithelp": "𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐌹𐌷𐌹𐌻𐍀𐌰",
-       "mainpage": "ð\90\8c·ð\90\8c°ð\90\8c¿ð\90\8c±ð\90\8c¹ð\90\8c³ð\90\8c°ð\90\8d\83ð\90\8c´ð\90\8c¹ð\90\8c³ð\90\8d\89",
-       "mainpage-description": "ð\90\8c·ð\90\8c°ð\90\8c¿ð\90\8c±ð\90\8c¹ð\90\8c³ð\90\8c°ð\90\8d\83ð\90\8c´ð\90\8c¹ð\90\8c³ð\90\8d\89",
-       "portal": "ð\90\8c±ð\90\8c°ð\90\8c¿ð\90\8d\82ð\90\8c²ð\90\8c¹ð\90\8d\83 ð\90\8c²ð\90\8c°ð\90\8d\85ð\90\8c¹",
-       "portal-url": "Project:ð\90\8c±ð\90\8c°ð\90\8c¿ð\90\8d\82ð\90\8c²ð\90\8c¹ð\90\8d\83 ð\90\8c²ð\90\8c°ð\90\8d\85ð\90\8c¹",
-       "privacy": "ð\90\8d\83ð\90\8c¿ð\90\8c½ð\90\8c³ð\90\8d\82ð\90\8c°ð\90\8d\85ð\90\8c¿ð\90\8d\83 ð\90\8c±ð\90\8c¹ð\90\8c»ð\90\8c°ð\90\8c²ð\90\8c´ð\90\8c¹ð\90\8c½ð\90\8d\83",
-       "privacypage": "Project:ð\90\8d\83ð\90\8c¿ð\90\8c½ð\90\8c³ð\90\8d\82ð\90\8c°ð\90\8d\85ð\90\8c´ð\90\8c¹ð\90\8c½ð\90\8d\83 ð\90\8c±ð\90\8c¹ð\90\8c»ð\90\8c°ð\90\8c²ð\90\8c´ð\90\8c¹ð\90\8c½ð\90\8d\83",
-       "retrievedfrom": "ð\90\8c²ð\90\8c°ð\90\8c½ð\90\8c°ð\90\8c¼ 𐍆𐍂𐌰𐌼 \"$1\"",
+       "mainpage": "ð\90\8c°ð\90\8c½ð\90\8c°ð\90\8d\83ð\90\8d\84ð\90\8d\89ð\90\8c³ð\90\8c´ð\90\8c¹ð\90\8c½ð\90\8c¹ð\90\8c»ð\90\8c°ð\90\8c¿ð\90\8d\86ð\90\8d\83",
+       "mainpage-description": "ð\90\8c°ð\90\8c½ð\90\8c°ð\90\8d\83ð\90\8d\84ð\90\8d\89ð\90\8c³ð\90\8c´ð\90\8c¹ð\90\8c½ð\90\8c¹ð\90\8c»ð\90\8c°ð\90\8c¿ð\90\8d\86ð\90\8d\83",
+       "portal": "𐌱𐌰𐌿𐍂𐌲𐍃 𐌲𐌰𐍅𐌹",
+       "portal-url": "Project:𐌱𐌰𐌿𐍂𐌲𐍃 𐌲𐌰𐍅𐌹",
+       "privacy": "ð\90\8c²ð\90\8c°ð\90\8d\82ð\90\8c´ð\90\8c³ð\90\8c´ð\90\8c¹ð\90\8c½ð\90\8d\89ð\90\8d\83 ð\90\8d\83ð\90\8c¿ð\90\8c½ð\90\8c³ð\90\8d\82ð\90\8d\89ð\90\8d\85ð\90\8c¹ð\90\8d\83ð\90\8c°ð\90\8c½ð\90\8c°",
+       "privacypage": "Project:ð\90\8c²ð\90\8c°ð\90\8d\82ð\90\8c°ð\90\8c¹ð\90\8c³ð\90\8c´ð\90\8c¹ð\90\8c½ð\90\8d\89ð\90\8d\83 ð\90\8d\83ð\90\8c¿ð\90\8c½ð\90\8c³ð\90\8d\82ð\90\8d\89ð\90\8d\85ð\90\8c¹ð\90\8d\83ð\90\8c°ð\90\8c½ð\90\8c°",
+       "retrievedfrom": "ð\90\8c²ð\90\8c°ð\90\8c½ð\90\8c¿ð\90\8c¼ð\90\8c°ð\90\8c½ 𐍆𐍂𐌰𐌼 \"$1\"",
        "youhavenewmessages": "𐌸𐌿 𐌷𐌰𐌱𐌹𐍃 $1 ($2).",
-       "editsection": "ð\90\8c¼ð\90\8c°ð\90\8c¹ð\90\8c³ð\90\8c¾ð\90\8c°ð\90\8c½",
-       "editold": "ð\90\8c¼ð\90\8c°ð\90\8c¹ð\90\8c³ð\90\8c¾ð\90\8c°ð\90\8c½",
-       "editlink": "ð\90\8c¼ð\90\8c°ð\90\8c¹ð\90\8c³ð\90\8c¾ð\90\8c°ð\90\8c½",
-       "viewsourcelink": "𐍃𐌰𐌹𐍈𐌹𐍃 𐌱𐍂𐌿𐌽𐌽𐌰𐌽",
-       "editsectionhint": "ð\90\8c¼ð\90\8c°ð\90\8c¹ð\90\8c³ð\90\8c¾ð\90\8c°ð\90\8c½ 𐌳𐌰𐌹𐌻: $1",
+       "editsection": "ð\90\8c¹ð\90\8c½ð\90\8c¼ð\90\8c°ð\90\8c¹ð\90\8c³ð\90\8c´ð\90\8c¹",
+       "editold": "ð\90\8c¹ð\90\8c½ð\90\8c¼ð\90\8c°ð\90\8c¹ð\90\8c³ð\90\8c´ð\90\8c¹",
+       "editlink": "ð\90\8c¹ð\90\8c½ð\90\8c¼ð\90\8c°ð\90\8c¹ð\90\8c³ð\90\8c´ð\90\8c¹",
+       "viewsourcelink": "𐍃𐌰𐌹𐍈 𐌱𐍂𐌿𐌽𐌽𐌰𐌽",
+       "editsectionhint": "ð\90\8c¹ð\90\8c½ð\90\8c¼ð\90\8c°ð\90\8c¹ð\90\8c³ð\90\8c´ð\90\8c¹ 𐌳𐌰𐌹𐌻: $1",
        "toc": "𐌹𐌽𐌽𐌰𐌽𐌰",
-       "showtoc": "𐌰𐌿𐌲𐌾𐌰",
-       "hidetoc": "𐍆𐌹𐌻𐌷𐌰𐌽",
+       "showtoc": "𐌰𐍄𐌰𐌿𐌲𐌴𐌹",
+       "hidetoc": "𐌰𐍆𐍆𐌹𐌻𐌷",
+       "confirmable-yes": "𐌾𐌰",
+       "confirmable-no": "𐌽𐌴",
        "site-rss-feed": "$1 RSS Miþnatifodjan",
-       "site-atom-feed": "$1 ð\90\8c°ð\90\8d\84ð\90\8d\89ð\90\8c¼ ð\90\8c¼ð\90\8c¹ð\90\8c¸ð\90\8c½ð\90\8c°ð\90\8d\84ð\90\8c¹ð\90\8d\86ð\90\8d\89ð\90\8c³ð\90\8c¾ð\90\8c°ð\90\8c½",
+       "site-atom-feed": "$1 ð\90\8c°ð\90\8d\84ð\90\8d\89ð\90\8c¼ ð\90\8d\86ð\90\8d\89ð\90\8c³ð\90\8c´ð\90\8c¹ð\90\8c½ð\90\8d\83",
        "page-atom-feed": "\"$1\" 𐌰𐍄𐍉𐌼 𐍂𐌹𐌽𐌽𐍉",
-       "red-link-title": "$1 (ð\90\8d\83ð\90\8c´ð\90\8c¹ð\90\8c³ð\90\8d\89 ð\90\8d\83ð\90\8c¹ð\90\8c½ð\90\8c³ 𐌽𐌹𐍃𐍄)",
-       "nstab-main": "ð\90\8d\83ð\90\8c´ð\90\8c¹ð\90\8c³ð\90\8d\89",
-       "nstab-user": "ð\90\8c½ð\90\8c¹ð\90\8c¿ð\90\8d\84ð\90\8c°ð\90\8c½ð\90\8c³ð\90\8c¹ð\90\8d\83ð\90\8d\83ð\90\8c´ð\90\8c¹ð\90\8c³ð\90\8d\89",
-       "nstab-special": "𐌿𐍃𐍃𐌹𐌽𐌳𐍃𐌴𐌹𐌳𐍉",
-       "nstab-project": "ð\90\8d\82ð\90\8c´ð\90\8c¹ð\90\8cºð\90\8c¹ð\90\8d\83ð\90\8c´ð\90\8c¹ð\90\8c³ð\90\8d\89",
+       "red-link-title": "$1 (ð\90\8c»ð\90\8c°ð\90\8c¿ð\90\8d\86ð\90\8d\83 𐌽𐌹𐍃𐍄)",
+       "nstab-main": "ð\90\8c»ð\90\8c°ð\90\8c¿ð\90\8d\86ð\90\8d\83",
+       "nstab-user": "ð\90\8c±ð\90\8d\82ð\90\8c¿ð\90\8cºð\90\8c¾ð\90\8c°ð\90\8c»ð\90\8c°ð\90\8c¿ð\90\8d\86ð\90\8d\83",
+       "nstab-special": "𐌿𐍃𐍃𐌹𐌽𐌳𐍃 𐌻𐌰𐌿𐍆𐍃",
+       "nstab-project": "ð\90\8d\86ð\90\8c°ð\90\8c¿ð\90\8d\82ð\90\8c°ð\90\8d\85ð\90\8c°ð\90\8c¿ð\90\8d\82ð\90\8d\80ð\90\8c°ð\90\8c»ð\90\8c°ð\90\8c¿ð\90\8d\86ð\90\8d\83",
        "nstab-image": "𐍆𐌴𐌹𐌻𐌰",
        "nstab-template": "𐍆𐌰𐌿𐍂𐌰𐌼𐌴𐌻𐌴𐌹𐌽𐍃",
-       "nstab-help": "𐌷𐌹𐌻𐍀𐌰",
-       "nstab-category": "𐌷𐌰𐌽𐍃𐌰",
+       "nstab-help": "𐌷𐌹𐌻𐍀𐌰𐌻𐌰𐌿𐍆𐍃",
+       "nstab-category": "𐌺𐌿𐌽𐌹",
+       "mainpage-nstab": "𐌰𐌽𐌰𐍃𐍄𐍉𐌳𐌴𐌹𐌽𐌹𐌻𐌰𐌿𐍆𐍃",
+       "error": "𐌰𐌹𐍂𐌶𐌴𐌹",
+       "databaseerror-error": "𐌰𐌹𐍂𐌶𐌴𐌹: $1",
        "missing-article": "𐍃𐌰 𐌳𐌰𐍄𐌰𐌱𐌿𐍃 𐌽𐌹 𐌲𐌰𐌽𐌰𐌼 𐌸𐌰𐌽𐌰 𐌱𐍉𐌺𐌰𐍅𐌰𐌿𐍂𐌳𐌰𐌽 𐌴𐌹 𐌹𐍄𐌰 𐍃𐌺𐌰𐌻 𐌱𐌹𐌲𐌹𐍄𐌰𐌽: \"$1\" $2\n\n(The data base did not find the text of a page that it should have found, named \"$1\" $2.\n\nThis is usually caused by following an outdated diff or history link to a page that has been deleted.\n\nIf this is not the case, you may have found a bug in the software.\nPlease report this to an [[Special:ListUsers/sysop|administrator]], making note of the URL.)",
-       "viewsource": "𐍃𐌰𐌹𐍈𐌹𐍃 𐌱𐍂𐌿𐌽𐌽𐌰𐌽",
-       "yourname": "𐌽𐌹𐌿𐍄𐌰𐌽𐌳𐌹𐍃𐌽𐌰𐌼𐍉:",
-       "yourpassword": "𐌰𐌽𐌰𐌻𐌰𐌿𐌲𐌽𐍃 𐍅𐌰𐌿𐍂𐌳𐌰:",
+       "badtitle": "𐌿𐌽𐍂𐌰𐌹𐌷𐍄𐌰𐍄𐌰 𐌿𐍆𐌰𐍂𐌼𐌴𐌻𐌹",
+       "badtitletext": "𐍆𐍂𐌰𐌹𐌷𐌰𐌽𐍃 𐌻𐌰𐌿𐍆𐍃 𐍅𐌰𐍃 𐌿𐌽𐌲𐌰𐌼𐌰𐌲𐌰𐌽𐌳𐍃, 𐌻𐌰𐌿𐍃, 𐌰𐌹𐌸𐌸𐌰𐌿 𐌿𐌽𐍂𐌰𐌹𐌷𐍄𐌰𐌱𐌰 𐌲𐌰𐍅𐌹𐌳𐌰𐌽𐍃 𐌼𐌹𐌸𐍂𐌰𐌶𐌳𐌰 𐌸𐌰𐌿 𐌼𐌹𐌸-𐍅𐌹𐌺𐌹 𐌿𐍆𐌰𐍂𐌼𐌴𐌻𐌹. 𐌼𐌰𐌲𐌹 𐌷𐌰𐌱𐌰𐌽 𐌰𐌹𐌽𐌰 𐌸𐌰𐌿 𐌼𐌰𐌽𐌰𐌲𐌹𐌶𐍉𐍃 𐌱𐍉𐌺𐍉𐍃 𐌱𐍂𐌿𐌺𐌹𐌳𐍉𐍃 𐌹𐌽 𐌿𐍆𐌰𐍂𐌼𐌴𐌻𐌾𐌰𐌼.",
+       "viewsource": "𐍃𐌰𐌹𐍈 𐌱𐍂𐌿𐌽𐌽𐌰𐌽",
+       "yourname": "𐌰𐍄𐌲𐌰𐌲𐌲𐌰𐌽𐌰𐌼𐍉:",
+       "userlogin-yourname": "𐌰𐍄𐌲𐌰𐌲𐌲𐌰𐌽𐌰𐌼𐍉",
+       "userlogin-yourname-ph": "𐌼𐌴𐌻𐌴𐌹 𐌰𐍄𐌲𐌰𐌲𐌲𐌰𐌽𐌰𐌼𐍉 𐌸𐌴𐌹𐌽",
+       "createacct-another-username-ph": "𐌼𐌴𐌻𐌴𐌹 𐌰𐍄𐌲𐌰𐌲𐌲𐌰𐌽𐌰𐌼𐍉",
+       "yourpassword": "𐌲𐌰𐌼𐍉𐍄𐌰𐍅𐌰𐌿𐍂𐌳:",
+       "userlogin-yourpassword": "𐌲𐌰𐌼𐍉𐍄𐌰𐍅𐌰𐌿𐍂𐌳",
+       "userlogin-yourpassword-ph": "𐌼𐌴𐌻𐌴𐌹 𐌲𐌰𐌼𐍉𐍄𐌰𐍅𐌰𐌿𐍂𐌳 𐌸𐌴𐌹𐌽",
+       "createacct-yourpassword-ph": "𐌼𐌴𐌻𐌴𐌹 𐌲𐌰𐌼𐍉𐍄𐌰𐍅𐌰𐌿𐍂𐌳",
+       "createacct-yourpasswordagain": "𐌲𐌰𐍃𐌹𐌲𐌻𐌴𐌹 𐌲𐌰𐌼𐍉𐍄𐌰𐍅𐌰𐌿𐍂𐌳",
+       "createacct-yourpasswordagain-ph": "𐌼𐌴𐌻𐌴𐌹 𐌲𐌰𐌼𐍉𐍄𐌰𐍅𐌰𐌿𐍂𐌳 𐌰𐍆𐍄𐍂𐌰",
+       "userlogin-remembermypassword": "𐌲𐌰𐍆𐌰𐍃𐍄 𐌼𐌹𐌺 𐌰𐍄𐌲𐌰𐌲𐌲𐌰𐌽𐌰𐌽𐌰/𐌰𐍄𐌲𐌰𐌲𐌲𐌰𐌽𐌰",
        "login": "Atgaggan",
        "nav-login-createaccount": "𐌰𐍄𐌲𐌰𐌲𐌲𐌰𐌽 / 𐌲𐌰𐌻𐌰𐌽𐌲𐌾𐌰𐌽 𐌽𐌹𐌿𐍄𐌰𐌽𐌳𐌹𐍃",
        "userlogin": "Atgaggan / gaskapjan niutandis",
+       "userloginnocreate": "𐌰𐍄𐌲𐌰𐌲𐌲𐌰𐌽",
        "logout": "𐌻𐌴𐌹𐌸𐌰𐌽",
        "userlogout": "𐌻𐌴𐌹𐌸𐌰𐌽",
+       "userlogin-noaccount": "𐌽𐌹 𐌷𐌰𐌱𐌰𐌹𐍃 𐌺𐌰𐍅𐍄𐍃𐌾𐍉𐌽?",
+       "userlogin-joinproject": "𐌲𐌰𐌼𐌰𐌹𐌽𐌴𐌹 {{SITENAME}}",
        "nologinlink": "Gaskapjan þein niutandis",
        "createaccount": "𐌲𐌰𐌻𐌰𐌲𐌾𐌰𐌽 𐌽𐌹𐌿𐍄𐌰𐌽𐌳𐌹𐍃",
        "gotaccount": "Habiþ þu niutandis? '''$1'''",
        "gotaccountlink": "Atgaggan",
+       "userlogin-resetpassword-link": "𐌿𐍆𐌰𐍂𐌼𐌿𐌽𐌽𐍉𐌳𐌴𐍃 𐌸𐌴𐌹𐌽𐌰𐌼𐌼𐌰 𐌲𐌰𐌼𐍉𐍄𐌰𐍅𐌰𐌿𐍂𐌳𐌰?",
+       "userlogin-helplink2": "𐌷𐌹𐌻𐍀𐌰 𐌼𐌹𐌸 𐌰𐍄𐌲𐌰𐌲𐌲𐌰",
+       "createacct-emailoptional": "𐌴-𐌱𐍉𐌺𐍉𐍃 (𐌼𐌰𐌷𐍄𐌴𐌹𐌲𐍉𐍃)",
+       "createacct-email-ph": "𐌼𐌴𐌻𐌴𐌹 𐌸𐌴𐌹𐌽𐍉𐍃 𐌴-𐌱𐍉𐌺𐍉𐍃",
+       "createaccountreason": "𐍆𐌰𐌹𐍂𐌹𐌽𐌰:",
+       "createacct-reason": "𐍆𐌰𐌹𐍂𐌹𐌽𐌰",
+       "createacct-submit": "𐍃𐌺𐌰𐍀𐌴𐌹 𐌸𐌴𐌹𐌽𐌰 𐌺𐌰𐍅𐍄𐍃𐌾𐍉𐌽",
+       "createacct-benefit-heading": "{{SITENAME}} 𐍄𐌰𐍅𐌹𐌸 𐌹𐍃𐍄 𐍆𐍂𐌰𐌼 𐌼𐌰𐌽𐌽𐌰𐌼 𐍃𐍅𐌴 𐌸𐌿𐌺.",
+       "createacct-benefit-body1": "{{PLURAL:$1|𐌹𐌽𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍃|𐌹𐌽𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍉𐍃}}",
+       "createacct-benefit-body2": "{{PLURAL:$1|𐌻𐌰𐌿𐍆𐍃|𐌻𐌰𐌿𐌱𐍉𐍃}}",
        "loginlanguagelabel": "Razda: $1",
+       "pt-login": "𐌰𐍄𐌲𐌰𐌲𐌲",
+       "pt-login-button": "𐌰𐍄𐌲𐌰𐌲𐌲",
+       "pt-createaccount": "𐍃𐌺𐌰𐍀𐌴𐌹 𐌺𐌰𐍅𐍄𐍃𐌾𐍉𐌽",
+       "passwordreset": "𐌰𐍆𐍄𐍂𐌰 𐍃𐌰𐍄𐌴𐌹 𐌲𐌰𐌼𐍉𐍄𐌰𐍅𐌰𐌿𐍂𐌳",
        "bold_sample": "𐌰𐌱𐍂𐍃 𐌱𐍉𐌺𐌰",
        "bold_tip": "𐌰𐌱𐍂 𐍅𐌰𐌿𐍂𐌳𐌰",
        "italic_sample": "𐍅𐍂𐌰𐌹𐌵𐍃 𐍅𐌰𐌿𐍂𐌳𐌰",
        "sig_tip": "𐌿𐌽𐌳𐌰𐍂𐌼𐌴𐌻 𐌸𐌴𐌹𐌽𐌰 𐌼𐌹𐌸 𐍃𐍄𐌿𐌽𐌳𐌰𐌼𐌴𐌻𐌰",
        "hr_tip": "𐍂𐌰𐌹𐌷𐍄𐍃𐌱𐌰𐌿𐍂𐌳 (𐌱𐍂𐌿𐌺𐌾𐌰𐌽 𐌼𐌹𐌸 𐌽𐌹𐌿𐍆𐌰𐍂𐌿𐍃𐍃𐌿𐍃)",
        "summary": "𐌼𐌰𐌹𐌳𐌾𐌰𐌽𐍃𐍀𐌹𐌻𐌻𐍉𐌽:",
-       "subject": "ð\90\8c·ð\90\8c°ð\90\8c¿ð\90\8c±ð\90\8c¹ð\90\8c³ð\90\8c°ð\90\8c±ð\90\8d\89ð\90\8cº𐌰:",
-       "minoredit": "ð\90\8d\83ð\90\8c° ð\90\8c¹ð\90\8d\83ð\90\8d\84 ð\90\8c»ð\90\8c´ð\90\8c¹ð\90\8d\84ð\90\8c¹ð\90\8c»ð\90\8c° 𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍃",
-       "watchthis": "ð\90\8d\85ð\90\8c°ð\90\8d\82ð\90\8c°ð\90\8c½ ð\90\8d\83ð\90\8c´ð\90\8c¹ð\90\8c³ð\90\8d\89",
-       "savearticle": "ð\90\8c¼ð\90\8c´ð\90\8c»ð\90\8c¾ð\90\8c° ð\90\8d\83ð\90\8c´ð\90\8c¹ð\90\8c³ð\90\8d\89",
+       "subject": "ð\90\8c¿ð\90\8d\86ð\90\8d\85ð\90\8c°ð\90\8c¿ð\90\8d\82ð\90\8d\80𐌰:",
+       "minoredit": "ð\90\8c¸ð\90\8c°ð\90\8d\84ð\90\8c° ð\90\8c¹ð\90\8d\83ð\90\8d\84 ð\90\8c¼ð\90\8c¹ð\90\8c½ð\90\8c½ð\90\8c¹ð\90\8c¶ð\90\8c´ð\90\8c¹ ð\90\8c¹ð\90\8c½𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍃",
+       "watchthis": "ð\90\8c°ð\90\8d\84ð\90\8d\85ð\90\8c¹ð\90\8d\84 ð\90\8c»ð\90\8c°ð\90\8c¿ð\90\8c±ð\90\8c°",
+       "savearticle": "ð\90\8c²ð\90\8c°ð\90\8d\86ð\90\8c°ð\90\8d\83ð\90\8d\84 ð\90\8c»ð\90\8c°ð\90\8c¿ð\90\8d\86",
        "preview": "𐍆𐌰𐌿𐍂𐍃𐌰𐌹𐍈𐌰 𐍃𐌴𐌹𐌳𐍉",
        "showpreview": "𐍅𐌹𐍄𐌰𐌽 𐍆𐌰𐌿𐍂𐍃𐌰𐌹𐍈𐌰",
-       "showdiff": "𐍅𐌹𐍄𐌰𐌽 𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍃",
+       "showdiff": "𐌰𐍄𐌰𐌿𐌲𐌴𐌹 𐌹𐌽𐌼𐌰𐌹𐌳𐌹𐌽𐌹𐌽𐍃",
+       "loginreqlink": "𐌰𐍄𐌲𐌰𐌲𐌲",
        "newarticle": "(Niu)",
+       "newarticletext": "𐌻𐌰𐌹𐍃𐍄𐌹𐌳𐌴𐍃 𐌲𐌰𐍅𐌹𐍃 𐌳𐌿 𐌻𐌰𐌿𐌱𐌰 𐍃𐌰𐌴𐌹 𐌽𐌹𐍃𐍄. 𐌳𐌿 𐍃𐌺𐌰𐍀𐌾𐌰𐌽 𐌸𐌰𐌽𐌰 𐌻𐌰𐌿𐍆, 𐌰𐌽 𐌰𐍃𐍄𐍉𐌳𐌴𐌹 𐌼𐌴𐌻𐌾𐌰𐌽 𐌹𐌽 𐌰𐍂𐌺𐌰𐌹 𐌿𐍆 (𐍃𐌰𐌹𐍈 [$1 𐌷𐌹𐌻𐍀𐌰𐌻𐌰𐌿𐍆] 𐌼𐌰𐌽𐌰𐌲𐌹𐌶𐌹𐌽 𐌺𐌿𐌽𐌸𐌾𐌰). 𐌾𐌰𐌱𐌰𐌹 𐌹𐍃 𐌷𐌴𐍂 𐌹𐌽 𐌰𐌹𐍂𐌶𐌴𐌹𐌽𐍃, 𐌲𐌰𐌲𐌲 𐌳𐌿 <𐍃𐍄𐍂𐍉𐌽𐌲>𐌹𐌱𐌿𐌺𐌰𐌷𐌰𐌿𐌱𐌹𐌳𐌹𐌻𐍉𐌽.",
+       "noarticletext": "𐌽𐌿 𐌽𐌹 𐍃𐌹𐌽𐌳 𐌱𐍉𐌺𐍉𐍃 𐌹𐌽 𐌸𐌰𐌼𐌼𐌰 𐌻𐌰𐌿𐌱𐌰.\n𐌼𐌰𐌲𐍄 [[Special:Search/{{PAGENAME}}|𐍃𐍉𐌺𐌾𐌰𐌽 𐌸𐌰𐍄𐌰 𐌻𐌰𐌿𐌱𐌰-𐌿𐍆𐌰𐍂𐌼𐌴𐌻𐌹]] 𐌹𐌽 𐌰𐌽𐌸𐌰𐍂𐌰𐌹𐌼 𐌻𐌰𐌿𐌱𐌰𐌼,  <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 𐍃𐍉𐌺𐌾𐌰𐌽 𐌲𐌰𐌷𐌰𐌷𐌾𐍉 𐌲𐌰𐍆𐌰𐍃𐍄𐍉𐍃], 𐌰𐌹𐌸𐌸𐌰𐌿 [{{fullurl:{{FULLPAGENAME}}|action=edit}} 𐍃𐌺𐌰𐍀𐌾𐌰𐌽 𐌸𐌰𐌽𐌰 𐌻𐌰𐌿𐍆.]</ span>",
+       "noarticletext-nopermission": "𐌽𐌿 𐌽𐌹 𐍃𐌹𐌽𐌳 𐌱𐍉𐌺𐍉𐍃 𐌹𐌽 𐌸𐌰𐌼𐌼𐌰 𐌻𐌰𐌿𐌱𐌰.\n𐌼𐌰𐌲𐍄 [[Special:Search/{{PAGENAME}}|𐍃𐍉𐌺𐌾𐌰𐌽 𐌸𐌰𐍄𐌰 𐌻𐌰𐌿𐌱𐌰-𐌿𐍆𐌰𐍂𐌼𐌴𐌻𐌹]] 𐌹𐌽 𐌰𐌽𐌸𐌰𐍂𐌰𐌹𐌼 𐌻𐌰𐌿𐌱𐌰𐌼, 𐌸𐌰𐌿 <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 𐍃𐍉𐌺𐌾𐌰𐌽 𐌲𐌰𐌷𐌰𐌷𐌾𐍉 𐌲𐌰𐍆𐌰𐍃𐍄𐍉𐍃]</span>, 𐌹𐌸 𐌽𐌹 𐌷𐌰𐌱𐌰𐌹𐍃 𐌰𐌽𐌳𐌻𐌴𐍄 𐍃𐌺𐌰𐍀𐌾𐌰𐌽 𐌸𐌰𐌽𐌰 𐌻𐌰𐌿𐍆.",
        "updated": "(Nuwisan)",
-       "previewnote": "'''𐍃𐌰𐌷 𐌹𐍃𐍄 𐍆𐌰𐌿𐍂𐍃𐌰𐌹𐍈𐌰. 𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍃 𐌲𐌰𐌼𐌴𐌻𐌾𐌹𐌸 𐌽𐌹 𐌰𐍆 𐌸𐌹𐌶𐍉𐍃 𐍃𐌴𐌹𐌳𐍉𐍃!'''",
+       "previewnote": "<strong>𐌲𐌰𐌼𐌹𐌽𐌸𐌴𐌹 𐌸𐌰𐍄𐌴𐌹 𐌸𐌰𐍄𐌰 𐌹𐍃𐍄 𐌸𐌰𐍄𐌰𐌹𐌽𐌴𐌹 𐍆𐌰𐌿𐍂𐌰𐍃𐌹𐌿𐌽𐍃.</strong>\n𐌸𐌴𐌹𐌽𐍉𐍃 𐌹𐌽𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍉𐍃 𐌽𐌰𐌿𐌷 𐌽𐌹 𐌲𐌰𐍆𐌰𐍃𐍄𐌰𐌽𐍉𐍃 𐍃𐌹𐌽𐌳!",
        "editing": "𐌼𐌰𐌹𐌳𐌾𐌰𐌽 𐌰𐍆 $1",
+       "creating": "𐍃𐌺𐌰𐍀𐌾𐌰𐌽𐌳𐍃/𐍃𐌺𐌰𐍀𐌾𐌰𐌽𐌳𐌴𐌹 $1",
        "editingsection": "𐌼𐌰𐌹𐌳𐌾𐌰𐌽 𐌰𐍆 $1 (𐍆𐌴𐍂𐌰)",
        "editingcomment": "𐌼𐌰𐌹𐌳𐌾𐌰𐌽 𐌰𐍆 $1 (𐍂𐍉𐌳𐌾𐌰𐍆𐌴𐍂𐌰)",
-       "yourdiff": "Missalieks",
-       "template-protected": "(ð\90\8c²ð\90\8c°ð\90\8c±ð\90\8c°ð\90\8c¹ð\90\8d\82ð\90\8c²ð\90\8c¾ð\90\8c°ð\90\8c½)",
+       "yourdiff": "𐌼𐌹𐍃𐍃𐌰𐌻𐌴𐌹𐌺𐍉𐍃",
+       "template-protected": "(ð\90\8c·ð\90\8c°ð\90\8c±ð\90\8c°ð\90\8c¹ð\90\8c¸ ð\90\8c¼ð\90\8c¿ð\90\8c½ð\90\8c³)",
        "template-semiprotected": "(halb-gabaírgjan)",
+       "hiddencategories": "𐍃𐌰 𐌻𐌰𐌿𐍆𐍃 𐌹𐍃𐍄 𐌲𐌰𐌳𐌰𐌹𐌻𐌰 {{PLURAL:$1|1 𐌰𐌽𐌰𐌻𐌰𐌿𐌲𐌽𐌹𐍃 𐌺𐌿𐌽𐌾𐌹𐍃|$1 𐌰𐌽𐌰𐌻𐌰𐌿𐌲𐌽𐌰𐌹𐌶𐌴 𐌺𐌿𐌽𐌾𐌴}}:‎",
+       "permissionserrorstext-withaction": "𐌽𐌹 𐌷𐌰𐌱𐌰𐌹𐍃 𐌰𐌽𐌳𐌻𐌴𐍄 𐌳𐌿 $2, 𐌹𐌽 {{PLURAL:$1|𐌹𐍆𐍄𐌿𐌼𐌰𐌹𐌶𐍉𐍃 𐍅𐌰𐌹𐌷𐍄𐌰𐌹𐍃|𐌹𐍆𐍄𐌿𐌼𐌰𐌹𐌶𐍉 𐍅𐌰𐌹𐌷𐍄𐌴}}:",
+       "moveddeleted-notice": "𐍃𐌰 𐌻𐌰𐌿𐍆𐍃 𐌿𐍃𐌽𐌿𐌼𐌰𐌽𐍃 𐌹𐍃𐍄. 𐌿𐍃𐌽𐌿𐌼𐍄𐍃 𐌾𐌰𐌷 𐌲𐌰𐍆𐌰𐍃𐍄𐌰𐌹𐌽𐍃 𐌼𐌹𐌸𐍃𐌰𐍄𐌴𐌹𐌽𐌰𐌹𐍃 𐌿𐍆 𐍃𐌹𐌽𐌳 𐌿𐍃𐍄𐌰𐌹𐌺𐌽𐌴𐌹𐌽𐌰𐌹.",
        "post-expand-template-inclusion-warning": "'''𐌷𐍅𐍉𐍄𐌾𐌰𐌽𐌳𐍃:''' 𐍆𐌰𐌿𐍂𐌰𐌼𐌴𐌻𐌴𐌹𐌽𐍃 𐍃𐌹𐌽𐌳 𐌿𐍆𐌰𐍂𐌼𐌹𐌺𐌹𐌻𐍃. 𐍃𐌿𐌼𐍃 𐍆𐌰𐌿𐍂𐌴𐌼𐌴𐌻𐌴𐌹𐌽𐍉𐍃 𐌽𐌹 𐌼𐌰𐌲 𐍅𐌹𐍃𐌰𐌽 𐌸𐌰𐍂",
        "post-expand-template-inclusion-category": "𐍃𐌴𐌹𐌳𐍉𐌽𐍃 𐌸𐌰𐍂 𐍆𐌰𐌿𐍂𐌰𐌼𐌴𐌻𐌴𐌹𐌽𐍃 𐍃𐌹𐌽𐌳 𐌿𐍆𐌰𐍂𐌼𐌹𐌺𐌹𐌻𐍃",
+       "viewpagelogs": "𐌰𐍄𐌰𐌿𐌲𐌴𐌹 𐌲𐌰𐍆𐌰𐍃𐍄𐌰𐌹𐌽𐌹𐌽𐍃 𐌸𐌰𐌼𐌼𐌰 𐌻𐌰𐌿𐌱𐌰",
        "currentrev": "𐌽𐌿 𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍃",
-       "currentrev-asof": "ð\90\8c°ð\90\8d\86ð\90\8d\84ð\90\8c¿ð\90\8c¼ð\90\8d\83ð\90\8d\84ð\90\8d\83 ð\90\8c²ð\90\8c°ð\90\8c¼ð\90\8c°ð\90\8c¹ð\90\8c³ð\90\8c¾𐌴𐌹𐌽𐍃 𐍆𐍂𐌰𐌼 $1",
-       "revisionasof": "ð\90\8c²ð\90\8c°ð\90\8c¼ð\90\8c°ð\90\8c³ð\90\8c¾ð\90\8c´ð\90\8c¹ 𐍆𐍂𐌰𐌼 $1",
-       "revision-info": "Máideins fram $1 bi $2",
+       "currentrev-asof": "ð\90\8c°ð\90\8d\86ð\90\8d\84ð\90\8c¿ð\90\8c¼ð\90\8c¹ð\90\8d\83ð\90\8d\84ð\90\8c° ð\90\8c²ð\90\8c°ð\90\8c±ð\90\8d\89ð\90\8d\84𐌴𐌹𐌽𐍃 𐍆𐍂𐌰𐌼 $1",
+       "revisionasof": "ð\90\8c²ð\90\8c°ð\90\8c±ð\90\8d\89ð\90\8d\84ð\90\8c´ð\90\8c¹ð\90\8c½ð\90\8d\83 𐍆𐍂𐌰𐌼 $1",
+       "revision-info": "𐌲𐌰𐌱𐍉𐍄𐌴𐌹𐌽𐍃 𐌹𐌽 $1 𐍆𐍂𐌰𐌼 {{GENDER:$6|$2}}$7",
        "previousrevision": "←𐌰𐌹𐍂𐌹𐍃 𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍃",
        "nextrevision": "Iftuma máideins→",
        "currentrevisionlink": "𐌽𐌿𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍃",
        "last": "𐌰𐍆𐍄𐌿𐌼𐌹𐍃𐍄𐍃",
        "page_first": "frumists",
        "page_last": "𐍃𐍀𐌴𐌳𐌿𐌼𐌹𐍃𐍄𐍃",
-       "histfirst": "ð\90\8d\86ð\90\8c°ð\90\8c¿ð\90\8d\82ð\90\8c¸ð\90\8c¹ð\90\8d\83",
-       "histlast": "ð\90\8d\83ð\90\8d\80ð\90\8c´ð\90\8c³ð\90\8c¿ð\90\8c¼ð\90\8c¹ð\90\8d\83ð\90\8d\84ð\90\8d\83",
+       "histfirst": "ð\90\8c°ð\90\8c»ð\90\8c¸ð\90\8c¹ð\90\8c¶ð\90\8d\89",
+       "histlast": "ð\90\8c½ð\90\8c¹ð\90\8c¿ð\90\8c¾ð\90\8c¹ð\90\8d\83ð\90\8d\84ð\90\8d\89",
        "history-feed-item-nocomment": "$1 at $2",
+       "rev-delundel": "𐌹𐌽𐌼𐌰𐌹𐌳𐌴𐌹 𐌰𐌽𐌰𐍃𐌹𐌿𐌽",
        "revdel-restore": "𐌹𐌽𐌼𐌰𐌹𐌳𐌾𐌹𐍃 𐌰𐌽𐌰𐍃𐌹𐌿𐌽𐌼𐌰𐌷𐍄𐌴𐌹𐌲𐍃",
        "revertmerge": "𐌿𐌽𐌲𐌰𐍄𐌹𐌻𐍉𐍃",
-       "history-title": "𐌰𐍂𐌹𐍃𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍃 𐌰𐍆 \"$1\"",
-       "lineno": "𐌱𐍉𐌺𐌰𐍂𐌹𐌲𐌹𐌻𐍉 $1:",
-       "editundo": "𐌽𐌹𐌿𐍃𐌺𐌰𐍀𐌾𐌰𐌽",
-       "searchresults": "𐍃𐍉𐌺𐌽𐌹𐍃 𐍄𐌰𐌿𐌾𐍉𐍃",
-       "searchresults-title": "𐍃𐍉𐌺𐌽𐌹𐍃 𐍄𐌰𐌿𐌾𐍉𐍃 𐍆𐌰𐌿𐍂 \"$1\"",
+       "history-title": "𐌰𐍆𐍄𐍂𐌰𐍃𐌹𐌿𐌽𐌹𐍃𐍀𐌹𐌻𐌻 𐌻𐌰𐌿𐌱𐌹𐍃 \"$1\"",
+       "difference-title": "𐌲𐌰𐍃𐌺𐌰𐌹𐌳𐌴𐌹𐌽𐍃 𐌼𐌹𐌸 𐌰𐍆𐍄𐍂𐌰𐍃𐌹𐌿𐌽𐍉𐌼 𐌻𐌰𐌿𐌱𐌹𐍃 \"$1\"",
+       "lineno": "𐍃𐍄𐍂𐌹𐌺𐍃 $1:",
+       "editundo": "𐍃𐌺𐌰𐍀𐌴𐌹 𐌰𐍆𐍄𐍂𐌰",
+       "diff-multi-sameuser": "({{PLURAL:$1|𐌰𐌹𐌽𐌰 𐌼𐌹𐌳𐌿𐌼𐌰𐌲𐌰𐌱𐍉𐍄𐌴𐌹𐌽𐍃|$1 𐌼𐌹𐌳𐌿𐌼𐌰 𐌲𐌰𐌱𐍉𐍄𐌴𐌹𐌽𐍉𐍃}} 𐍆𐍂𐌰𐌼 𐍃𐌰𐌼𐌹𐌽 𐌱𐍂𐌿𐌺𐌾𐌹𐌽 𐌽𐌹 𐌰𐍄𐌰𐌿𐌲𐌹𐌳𐌰/𐌰𐍄𐌰𐌿𐌲𐌹𐌳𐍉𐍃)",
+       "searchresults": "𐍃𐍉𐌺𐌴𐌹𐌽𐌰𐌹𐍃 𐍄𐍉𐌾𐌰",
+       "searchresults-title": "𐍃𐍉𐌺𐌴𐌹𐌽𐌰𐌹𐍃 𐍄𐍉𐌾𐌰 𐍆𐌰𐌿𐍂 \"$1\"",
        "prevn": "𐌰𐍆𐍄𐌿𐌼𐌰 {{PLURAL:$1|$1}}",
        "nextn": "𐌹𐍆𐍄𐌿𐌼𐌰 {{PLURAL:$1|$1}}",
        "prevn-title": "𐍆𐌰𐌹𐍂𐌽𐌰 $1 {{PLURAL:$1|𐍄𐌰𐌿𐌹|𐍄𐌰𐌿𐌾𐍉𐍃}}",
        "nextn-title": "𐌰𐍆𐍄𐌿𐌼𐌰 $1 {{PLURAL:$1|𐍄𐌰𐌿𐌹|𐍄𐌰𐌿𐌾𐍉𐍃}}",
-       "shown-title": "ð\90\8c°ð\90\8c¿ð\90\8c¾ð\90\8c°ð\90\8c½ð\90\8c³ $1 {{PLURAL:$1|ð\90\8d\84ð\90\8c°ð\90\8c¿ð\90\8c¹|ð\90\8d\84ð\90\8c°ð\90\8c¿ð\90\8c¾ð\90\8d\89ð\90\8d\83}} ð\90\8c¸ð\90\8c°ð\90\8c¹ð\90\8d\82ð\90\8c· ð\90\8d\83ð\90\8c´ð\90\8c¹ð\90\8c³ð\90\8d\89",
+       "shown-title": "ð\90\8c°ð\90\8d\84ð\90\8c°ð\90\8c¿ð\90\8c²ð\90\8c´ð\90\8c¹ $1 {{PLURAL:$1|ð\90\8d\84ð\90\8c°ð\90\8c¿ð\90\8c¹|ð\90\8d\84ð\90\8d\89ð\90\8c¾ð\90\8c°}} ð\90\8d\88ð\90\8c°ð\90\8d\82ð\90\8c¾ð\90\8c°ð\90\8c¼ð\90\8c¼ð\90\8c´ð\90\8c· ð\90\8c»ð\90\8c°ð\90\8c¿ð\90\8c±ð\90\8c°.",
        "viewprevnext": "𐍃𐌹𐌿𐌽𐌴𐌹𐍃 ($1 {{int:pipe-separator}} $2) ($3)",
-       "searchmenu-new": "'''𐍃𐌺𐌰𐍀𐌾𐌹𐍃 𐌸𐍉 𐍃𐌴𐌹𐌳𐍉𐌽 \"[[:$1]]\" 𐌸𐌹𐌶𐍉𐍃 𐍅𐌹𐌺𐌾𐍉𐍃!'''",
-       "searchprofile-articles": "ð\90\8c²ð\90\8c°ð\90\8c·ð\90\8c°ð\90\8c±ð\90\8c¾ð\90\8d\89ð\90\8d\83 ð\90\8d\83ð\90\8c´ð\90\8c¹ð\90\8c³ð\90\8d\89ð\90\8c½𐍃",
-       "searchprofile-images": "ð\90\8c¼ð\90\8c°ð\90\8c½ð\90\8c°ð\90\8c²ð\90\8d\83ð\90\8c¼ð\90\8c´ð\90\8c³ð\90\8c¹𐌰",
+       "searchmenu-new": "<strong>𐍃𐌺𐌰𐍀𐌴𐌹 𐌻𐌰𐌿𐍆 \"[[:$1]]\" 𐌰𐌽𐌰 𐌸𐌹𐌶𐌰𐌹 𐍅𐌹𐌺𐌹!</strong> {{{{PLURAL:$2|0=|𐍃𐌰𐌹 𐌾𐌰𐌷 𐌻𐌰𐌿𐍆 𐌱𐌹𐌲𐌹𐍄𐌰𐌽𐌰 𐌸𐌴𐌹𐌽𐌰𐌹 𐍃𐍉𐌺𐌴𐌹𐌽𐌰𐌹.|𐍃𐌰𐌹 𐌾𐌰𐌷 𐍄𐍉𐌾𐌰 𐍃𐍉𐌺𐌴𐌹𐌽𐌰𐌹𐍃 𐌱𐌹𐌲𐌹𐍄𐌰𐌽𐌰.}}",
+       "searchprofile-articles": "ð\90\8c·ð\90\8c°ð\90\8c±ð\90\8c°ð\90\8c½ð\90\8c³ð\90\8c°ð\90\8c½ð\90\8d\83 ð\90\8c»ð\90\8c°ð\90\8c¿ð\90\8c±ð\90\8d\89𐍃",
+       "searchprofile-images": "ð\90\8c¼ð\90\8c°ð\90\8c½ð\90\8c°ð\90\8c²ð\90\8c¼ð\90\8c´ð\90\8c³ð\90\8c¾𐌰",
        "searchprofile-everything": "𐌰𐌻𐌻",
        "searchprofile-advanced": "𐍆𐌰𐌹𐍂𐍂𐌰𐍆𐍂𐌰𐌼𐌰",
-       "searchprofile-articles-tooltip": "𐍃𐍉𐌺 𐌹𐌽𐌽𐌰 $1",
+       "searchprofile-articles-tooltip": "𐍃𐍉𐌺𐌴𐌹 𐌹𐌽 $1",
        "searchprofile-images-tooltip": "𐍃𐍉𐌺𐌾𐌹𐍃 𐍆𐌴𐌹𐌻𐌰𐌽𐍃",
-       "searchprofile-everything-tooltip": "ð\90\8d\83ð\90\8d\89ð\90\8cºð\90\8c¾ð\90\8c¹ð\90\8d\83 ð\90\8c°ð\90\8c»ð\90\8c» ð\90\8c²ð\90\8c°ð\90\8c·ð\90\8c°ð\90\8c±ð\90\8c¾ð\90\8d\89ð\90\8d\83 (ð\90\8c¸ð\90\8c¹ð\90\8c¶ð\90\8c´ð\90\8c´ð\90\8c¹ ð\90\8c¹ð\90\8d\83ð\90\8d\84 ð\90\8d\83ð\90\8c´ð\90\8c¹ð\90\8c³ð\90\8d\89ð\90\8c½ð\90\8d\83 ð\90\8c²ð\90\8c°ð\90\8d\85ð\90\8c°ð\90\8c¿ð\90\8d\82ð\90\8c³ð\90\8c¾ð\90\8c¹𐍃)",
-       "searchprofile-advanced-tooltip": "ð\90\8d\83ð\90\8cºð\90\8d\89ð\90\8c¾ð\90\8c¹ð\90\8d\83 ð\90\8c¹ð\90\8c½ð\90\8c½ð\90\8c° ð\90\8d\83ð\90\8c¹ð\90\8c»ð\90\8c±ð\90\8c°ð\90\8d\83ð\90\8cºð\90\8c°ð\90\8d\80ð\90\8c¹ð\90\8c¸ð\90\8d\83 ð\90\8c½ð\90\8c°ð\90\8c¼ð\90\8c°ð\90\8c½ð\90\8d\83ð\90\8d\84ð\90\8c°ð\90\8c¸",
+       "searchprofile-everything-tooltip": "ð\90\8d\83ð\90\8d\89ð\90\8cºð\90\8c´ð\90\8c¹ ð\90\8c°ð\90\8c»ð\90\8c» ð\90\8c¸ð\90\8c°ð\90\8d\84ð\90\8c° (ð\90\8c¾ð\90\8c°ð\90\8c· ð\90\8c²ð\90\8c°ð\90\8d\85ð\90\8c°ð\90\8c¿ð\90\8d\82ð\90\8c³ð\90\8c¾ð\90\8c°ð\90\8c»ð\90\8c°ð\90\8c¿ð\90\8c±ð\90\8c°ð\90\8c½𐍃)",
+       "searchprofile-advanced-tooltip": "ð\90\8d\83ð\90\8d\89ð\90\8cºð\90\8c´ð\90\8c¹ ð\90\8c¹ð\90\8c½ ð\90\8c±ð\90\8c¹ð\90\8c¿ð\90\8c·ð\90\8d\84ð\90\8c°ð\90\8c¹ð\90\8c¼ ð\90\8c½ð\90\8c°ð\90\8c¼ð\90\8c°ð\90\8d\82ð\90\8c¿ð\90\8c¼ð\90\8c°ð\90\8c¼",
        "search-result-size": "$1 ({{PLURAL:$2|•𐌰• 𐍅𐌰𐌿𐍂𐌳|•$2• 𐍅𐌰𐌿𐍂𐌳𐌰}})",
        "search-redirect": "(𐌰𐍆𐍄𐍂𐌰𐍅𐌴𐌹𐍄𐍃 𐍆𐍂𐌰𐌼 𐌸𐌰𐌼𐌼𐌰 $1)",
        "search-section": "(𐍆𐌴𐍂𐌰 $1)",
        "search-suggest": "𐍄𐌰𐌹𐌺𐌽𐌹𐌳𐌰 𐌸𐌿: $1",
        "searchall": "𐌰𐌻𐌻𐍃",
+       "search-showingresults": "{{ZPLURAL:$4|𐍄𐌰𐌿𐌹 <strong>$1 𐍅𐌰𐌹𐌷𐍄𐌰𐌹𐍃 <strong>$3|𐍄𐍉𐌾𐌰 <strong>$1 - $2 𐍅𐌰𐌹𐌷𐍄𐌰𐌹𐍃 <strong>$3}}",
        "search-nonefound": "𐌽𐌹 𐌰𐌹𐌽𐌷𐌿𐌽 𐌲𐌰𐌲𐌹𐌱𐌾𐍉 𐍆𐌿𐌻𐌻𐌾𐌹𐌸 𐍃𐍉𐌺𐌴𐌹𐌽",
        "powersearch-legend": "𐍃𐍉𐌺𐌴𐌹𐌸",
        "preferences": "𐌼𐌴𐌹𐌽𐍉𐍃 𐌱𐍂𐌿𐌺𐌾𐌰𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐌴𐌹𐍃",
-       "mypreferences": "ð\90\8c¼ð\90\8c´ð\90\8c¹ð\90\8c½ð\90\8d\89ð\90\8d\83 ð\90\8c±ð\90\8d\82ð\90\8c¿ð\90\8cºð\90\8c¾ð\90\8c°",
+       "mypreferences": "ð\90\8c²ð\90\8c°ð\90\8c»ð\90\8c´ð\90\8c¹ð\90\8cºð\90\8c°ð\90\8c½ð\90\8c³ð\90\8c´ð\90\8c¹ð\90\8c½ð\90\8d\83 ð\90\8d\85ð\90\8c°ð\90\8c¹ð\90\8c·ð\90\8d\84ð\90\8d\83",
        "prefs-skin": "Seidofill",
        "skin-preview": "Faúrsaiƕa",
        "saveprefs": "Melja",
        "searchresultshead": "Sokeiþ",
        "grouppage-sysop": "{{ns:project}}:𐍃𐌴𐌹𐌳𐍉𐍆𐌰𐌸𐍃",
+       "right-writeapi": "𐌱𐍂𐌿𐌺𐌴𐌹𐌽𐍃 API 𐌼𐌴𐌻𐌴𐌹𐌽𐌰𐌹𐍃",
        "rightslog": "Niutandis stutjanlog",
        "nchanges": "$1 {{PLURAL:$1|máidein|máideins}}",
-       "recentchanges": "𐌰𐍆𐍄𐌿𐌼𐌹𐍃𐍄𐍉𐍃 𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐌴𐌹𐍃",
-       "rcshowhideminor": "$1 lietila máideins",
-       "rcshowhidebots": "$1 bota",
-       "rcshowhideliu": "$1 niutandis",
-       "rcshowhideanons": "$1 gasteis",
-       "rcshowhidemine": "$1 mein máideins",
-       "diff": "𐌻𐌴𐌹𐌺𐍃",
-       "hist": "𐍆𐍂𐌼𐌵",
+       "enhancedrc-history": "𐍃𐍀𐌹𐌻𐌻",
+       "recentchanges": "𐌰𐍆𐍄𐌿𐌼𐌹𐍃𐍄𐍉𐍃 𐌹𐌽𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍉𐍃",
+       "recentchanges-summary": "𐌰𐍆𐌰𐍂𐌻𐌰𐌹𐍃𐍄𐌴𐌹 𐌸𐌰𐌹𐌼 𐌰𐌽𐌳𐍅𐌰𐌹𐍂𐌸𐌹𐍃𐍄𐍉𐌼 𐌹𐌽𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍉𐌼 𐌳𐌿 𐍅𐌹𐌺𐌾𐌰 𐌰𐌽𐌰 𐌸𐌰𐌼𐌼𐌰 𐌻𐌰𐌿𐌱𐌰.",
+       "recentchanges-label-newpage": "𐍃𐍉 𐌹𐌽𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍃 𐌲𐌰𐍃𐌺𐍉𐍀 𐌽𐌹𐌿𐌾𐌰𐌽𐌰 𐌻𐌰𐌿𐍆",
+       "recentchanges-label-minor": "𐌸𐌰𐍄𐌰 𐌹𐍃𐍄 𐌻𐌴𐌹𐍄𐌹𐌻𐌰 𐌹𐌽𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍃",
+       "recentchanges-label-bot": "𐍃𐍉 𐌹𐌽𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍃 𐍄𐍉𐌾𐌰𐌳𐌰 𐍅𐌰𐍂𐌸 𐍆𐍂𐌰𐌼 𐌼𐌰𐌷𐍄𐌹𐍃𐌺𐌰𐌻𐌺𐌰 (𐌱𐌰𐌿𐍄)",
+       "recentchanges-label-plusminus": "𐌻𐌰𐌿𐌱𐌰𐌼𐌹𐌺𐌹𐌻𐌴𐌹 𐌹𐌽𐌼𐌰𐌹𐌳𐌹𐌳𐌰 𐌼𐌹𐌸 𐌸𐌹𐌶𐌰𐌹 𐍂𐌰𐌸𐌾𐍉𐌽 𐌱𐌹𐍄𐍉",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (𐍃𐌰𐌹𐍈 𐌾𐌰𐌷[[Special:NewPages|𐍅𐌹𐌺𐍉 𐌽𐌹𐌿𐌾𐌰𐌹𐌶𐌴 𐌻𐌰𐌿𐌱𐌴]])",
+       "rclistfrom": "𐌰𐍄𐌰𐌿𐌲𐌴𐌹 𐌽𐌹𐌿𐌾𐍉𐍃 𐌹𐌽𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐌹𐌽𐍃 𐌰𐌽𐌰𐍃𐍄𐍉𐌳𐌾𐌰𐌽𐌳𐌴𐌹𐌽𐍃 𐍆𐍂𐌰𐌼 $2, $3",
+       "rcshowhideminor": "$1 𐌼𐌹𐌽𐌽𐌹𐌶𐌴𐌹𐌽𐍃 𐌹𐌽𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍉𐍃",
+       "rcshowhideminor-show": "𐌰𐍄𐌰𐌿𐌲𐌴𐌹",
+       "rcshowhideminor-hide": "𐌰𐍆𐍆𐌹𐌻𐌷",
+       "rcshowhidebots": "$1 𐌼𐌰𐌷𐍄𐌹𐍃𐌺𐌰𐌻𐌺𐍉𐍃",
+       "rcshowhidebots-show": "𐌰𐍄𐌰𐌿𐌲𐌴𐌹",
+       "rcshowhidebots-hide": "𐌰𐍆𐍆𐌹𐌻𐌷",
+       "rcshowhideliu": "$1 𐌰𐌽𐌰𐌼𐌴𐌻𐌹𐌳𐌰𐌹 𐌱𐍂𐌿𐌺𐌾𐌰𐌽𐌳𐍃",
+       "rcshowhideliu-hide": "𐌰𐍆𐍆𐌹𐌻𐌷",
+       "rcshowhideanons": "$1 𐌰𐍆𐍆𐌹𐌻𐌷𐌰𐌽𐌰𐌹 𐌱𐍂𐌿𐌺𐌾𐌰𐌽𐌳𐍃",
+       "rcshowhideanons-show": "𐌰𐍄𐌰𐌿𐌲𐌴𐌹",
+       "rcshowhideanons-hide": "𐌰𐍆𐍆𐌹𐌻𐌷",
+       "rcshowhidemine": "$1 𐌼𐌴𐌹𐌽𐍉𐍃 𐌹𐌽𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍉𐍃",
+       "rcshowhidemine-show": "𐌰𐍄𐌰𐌿𐌲𐌴𐌹",
+       "rcshowhidemine-hide": "𐌰𐍆𐍆𐌹𐌻𐌷",
+       "rclinks": "𐌰𐍄𐌰𐌿𐌲𐌴𐌹 𐌰𐍆𐍄𐌿𐌼𐌹𐍃𐍄𐍉𐍃 $1 𐌹𐌽𐌼𐌰𐌹𐌳𐌹𐌽𐌹𐌽𐍃 𐌹𐌽 𐌰𐍆𐍄𐌿𐌼𐌹𐍃𐍄𐌰𐌹𐌼 $2 𐌳𐌰𐌲𐌰𐌼 <br />$3",
+       "diff": "𐌼𐌹𐍃𐍃",
+       "hist": "𐍃𐍀𐌹𐌻𐌻",
        "hide": "𐍆𐌹𐌻𐌷𐌰𐌽",
        "show": "𐌷𐌿𐌻𐌾𐌰𐌽",
        "minoreditletter": "l",
        "newpageletter": "N",
        "boteditletter": "b",
-       "recentchangeslinked": "ð\90\8c¼ð\90\8c°ð\90\8c¹ð\90\8c³ð\90\8c´ð\90\8c¹ð\90\8c½ð\90\8c»ð\90\8c¹ð\90\8c´ð\90\8cº𐍃",
+       "recentchangeslinked": "ð\90\8c²ð\90\8c°ð\90\8d\85ð\90\8c¹ð\90\8c³ð\90\8c°ð\90\8c½ð\90\8d\89ð\90\8d\83 ð\90\8c¹ð\90\8c½ð\90\8c¼ð\90\8c°ð\90\8c¹ð\90\8c³ð\90\8c´ð\90\8c¹ð\90\8c½ð\90\8d\89𐍃",
        "recentchangeslinked-feed": "Máideinlieks",
-       "recentchangeslinked-toolbox": "𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐌻𐌹𐌴𐌺𐍃",
+       "recentchangeslinked-toolbox": "𐌲𐌰𐍅𐌹𐌳𐌰𐌽𐍉𐍃 𐌹𐌽𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍉𐍃",
+       "recentchangeslinked-title": "𐌹𐌽𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍉𐍃 𐌲𐌰𐍅𐌹𐌳𐌰𐌽𐍉𐍃 𐌼𐌹𐌸 \"$1\"",
        "recentchangeslinked-summary": "𐍃𐍉 𐌹𐍃𐍄 𐌻𐌴𐌹𐍃𐍄𐌰 𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐌴 𐌰𐍆𐍄𐌿𐌼𐌹𐍃𐍄𐍃 𐍃𐌺𐍉𐍀 𐌰𐌽𐌰 𐍃𐌴𐌹𐌳𐍉𐌽𐍃 𐌻𐌴𐌹𐌽𐌺𐍉𐌽𐌳 𐌿𐍃 𐌿𐍃𐍃𐌹𐌽𐌳𐌰𐌹 𐍃𐌴𐌹𐌳𐍉𐌽 (𐌰𐌹𐌸𐌸𐌰𐌿 𐌻𐌹𐌸𐌰𐌿𐍃 𐌿𐍃𐍃𐌹𐌽𐌳𐌰𐌹𐌶𐍉𐍃 𐌷𐌰𐌽𐍃𐍉𐍃). 𐍃𐌴𐌹𐌳𐍉𐌽𐍃 [[Special:Watchlist|𐍅𐌹𐍄𐌰𐌽𐌳𐌻𐌴𐌹𐍃𐍄𐍉𐍃 𐌸𐌴𐌹𐌽𐍉𐍃]] 𐍃𐌹𐌽𐌳 '''𐌳𐌹𐌲𐍂𐍃𐍄𐌰𐍆𐍃'''.",
+       "recentchangeslinked-page": "𐌻𐌰𐌿𐌱𐌰𐌽𐌰𐌼𐍉:",
+       "recentchangeslinked-to": "𐌰𐍄𐌰𐌿𐌲𐌴𐌹 𐌹𐌽𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍉𐍃 𐌻𐌰𐌿𐌱𐌴 𐌸𐌰𐌹𐌴𐌹 𐌲𐌰𐍅𐌹𐌳𐌰𐌽𐌰𐌹 𐌳𐌿 𐌲𐌹𐌱𐌰𐌽𐌰𐌼𐌼𐌰 𐌻𐌰𐌿𐌱𐌰.",
        "upload": "𐌿𐍃𐌷𐌻𐌰𐌸𐌰𐌽 𐍆𐌴𐌹𐌻𐌰𐌽𐍃",
        "uploadbtn": "Ushlaþaiþ Feilans",
        "uploadlogpage": "Log af Ushlaþan",
+       "filedesc": "𐌼𐌰𐌿𐍂𐌲𐌿𐍃 𐍃𐌺𐌴𐌹𐍂𐌴𐌹𐌽𐍃",
        "watchthisupload": "Witan so seido",
        "imgfile": "Feilans",
        "listfiles": "Feilans tala",
        "file-anchor-link": "𐍆𐌴𐌹𐌻𐌰𐌽𐍃",
        "filehist": "𐍆𐌴𐌹𐌻𐌰𐌽𐍃 𐌰𐌹𐍂𐌹𐍃",
-       "filehist-help": "ð\90\8cºð\90\8c»ð\90\8c¹ð\90\8cºð\90\8d\89ð\90\8d\83 ð\90\8c°ð\90\8c½ð\90\8c° ð\90\8c³ð\90\8c°ð\90\8d\84ð\90\8c°ð\90\8c¹/ð\90\8d\88ð\90\8c´ð\90\8c¹ð\90\8c»ð\90\8c°ð\90\8c¹ ð\90\8d\83ð\90\8c°ð\90\8c¹ð\90\8d\88ð\90\8c°ð\90\8c½ ð\90\8d\86ð\90\8c´ð\90\8c¹ð\90\8c»ð\90\8c°ð\90\8c½ ð\90\8d\83ð\90\8d\85ð\90\8c´ ð\90\8c°ð\90\8d\84ð\90\8c°ð\90\8c¿ð\90\8c²ð\90\8c¾ð\90\8c¹ð\90\8c³ð\90\8c° ð\90\8d\83ð\90\8c¹ð\90\8cº ð\90\8c¸ð\90\8c°ð\90\8c½.",
+       "filehist-help": "ð\90\8c°ð\90\8d\84ð\90\8d\84ð\90\8c´ð\90\8cº ð\90\8c³ð\90\8c°ð\90\8c²/ð\90\8c¼ð\90\8c´ð\90\8c» ð\90\8c³ð\90\8c¿ ð\90\8c°ð\90\8d\84ð\90\8c°ð\90\8c¿ð\90\8c²ð\90\8c¾ð\90\8c°ð\90\8c½ ð\90\8c³ð\90\8c°ð\90\8d\84ð\90\8c° ð\90\8d\83ð\90\8d\85ð\90\8c°ð\90\8d\83ð\90\8d\85ð\90\8c´ ð\90\8c²ð\90\8c°ð\90\8c±ð\90\8c°ð\90\8c¹ð\90\8d\82ð\90\8c·ð\90\8d\84ð\90\8c¹ð\90\8c³ð\90\8c° ð\90\8c¹ð\90\8c½ ð\90\8c¸ð\90\8c°ð\90\8c¼ð\90\8c¼ð\90\8c° ð\90\8c¼ð\90\8c´ð\90\8c»ð\90\8c°.",
        "filehist-current": "𐌽𐌿",
-       "filehist-datetime": "ð\90\8d\88ð\90\8c´ð\90\8c¹ð\90\8c»ð\90\8c°",
-       "filehist-thumb": "ð\90\8d\86ð\90\8d\89ð\90\8d\82ð\90\8d\83ð\90\8c¾ð\90\8c°ð\90\8c¿",
-       "filehist-thumbtext": "ð\90\8d\86ð\90\8d\89ð\90\8d\82ð\90\8d\83ð\90\8c¾ð\90\8c°ð\90\8c¿ ð\90\8d\86ð\90\8c°ð\90\8c¿ð\90\8d\82 ð\90\8c¿ð\90\8d\83ð\90\8c²ð\90\8c°ð\90\8c±ð\90\8c° ð\90\8d\86ð\90\8d\82ð\90\8c°ð\90\8c¼ $1",
-       "filehist-user": "ð\90\8c½ð\90\8c¹ð\90\8c¿ð\90\8d\84ð\90\8c°ð\90\8c½ð\90\8c³ð\90\8c¹ð\90\8d\83",
+       "filehist-datetime": "ð\90\8c¼ð\90\8c´ð\90\8c»",
+       "filehist-thumb": "ð\90\8c»ð\90\8c´ð\90\8c¹ð\90\8d\84ð\90\8c¹ð\90\8c»ð\90\8c° ð\90\8d\86ð\90\8d\82ð\90\8c¹ð\90\8d\83ð\90\8c°ð\90\8c·ð\90\8d\84ð\90\8d\83",
+       "filehist-thumbtext": "ð\90\8c»ð\90\8c´ð\90\8c¹ð\90\8d\84ð\90\8c¹ð\90\8c»ð\90\8c°ð\90\8d\86ð\90\8d\82ð\90\8c¹ð\90\8d\83ð\90\8c°ð\90\8c·ð\90\8d\84ð\90\8d\83 ð\90\8c¿ð\90\8d\83ð\90\8c¼ð\90\8c´ð\90\8d\82ð\90\8c¾ð\90\8c° ð\90\8c¹ð\90\8c½ $1",
+       "filehist-user": "ð\90\8c±ð\90\8d\82ð\90\8c¿ð\90\8cºð\90\8c¾ð\90\8c°ð\90\8c½ð\90\8c³ð\90\8d\83\90\8c±ð\90\8d\82ð\90\8c¿ð\90\8cºð\90\8c¾ð\90\8c°ð\90\8c½ð\90\8c³ð\90\8c¹",
        "filehist-dimensions": "𐍅𐌰𐌷𐍃𐍄𐌿𐍃",
        "filehist-filesize": "Feilans wahstus",
-       "filehist-comment": "ð\90\8c»ð\90\8c´ð\90\8c¹ð\90\8d\84ð\90\8c»ð\90\8c°ð\90\8d\83ð\90\8d\80ð\90\8c¹ð\90\8c»ð\90\8c»ð\90\8d\89ð\90\8c½",
-       "imagelinks": "ð\90\8d\86ð\90\8c´ð\90\8c¹ð\90\8c»ð\90\8c¹ð\90\8c½ð\90\8d\83 ð\90\8c±ð\90\8d\82ð\90\8c¿ð\90\8cºð\90\8c¹ð\90\8d\83",
+       "filehist-comment": "ð\90\8d\85ð\90\8c°ð\90\8c¿ð\90\8d\82ð\90\8c³",
+       "imagelinks": "ð\90\8c±ð\90\8d\82ð\90\8c¿ð\90\8cºð\90\8c´ð\90\8c¹ð\90\8c½ð\90\8d\83 ð\90\8d\86ð\90\8c°ð\90\8c´ð\90\8c¹ð\90\8c»ð\90\8c´",
        "linkstoimage": "𐌰𐍆𐍄𐌿𐌼𐌰 {{PLURAL:$1|𐍃𐍉 𐍃𐌴𐌹𐌳𐍉 𐌻𐌴𐌹𐌽𐌺𐍉𐌸|𐌸𐍉𐍃 𐍃𐌴𐌹𐌳𐍉𐌽𐍃 𐌻𐌴𐌹𐌽𐌺𐍉𐌽𐌳}} 𐌸𐌹𐌶𐍉𐌶𐌿𐌷 𐍆𐌴𐌹𐌻𐍉𐍃",
-       "sharedupload-desc-here": "ð\90\8d\83ð\90\8c° ð\90\8d\86ð\90\8c´ð\90\8c¹ð\90\8c»ð\90\8c° ð\90\8c¹ð\90\8d\83ð\90\8d\84 ð\90\8d\86ð\90\8d\82ð\90\8c°ð\90\8c¼ $1 ð\90\8c¾ð\90\8c°ð\90\8c· ð\90\8c¼ð\90\8c°ð\90\8c² ð\90\8d\85ð\90\8c¹ð\90\8d\83ð\90\8c°ð\90\8c½ ð\90\8c±ð\90\8d\82ð\90\8c¿ð\90\8cºð\90\8c¾ð\90\8c°ð\90\8c½ð\90\8d\83 ð\90\8d\86ð\90\8d\82ð\90\8c°ð\90\8c¼ ð\90\8c°ð\90\8c»ð\90\8c¾ð\90\8c°ð\90\8c¹ð\90\8c¼ ð\90\8d\86ð\90\8c°ð\90\8c¿ð\90\8d\82ð\90\8c°ð\90\8d\85ð\90\8c°ð\90\8c¿ð\90\8d\82ð\90\8d\80ð\90\8d\89ð\90\8c¼.\nð\90\8d\86ð\90\8c°ð\90\8c¿ð\90\8d\82ð\90\8c°ð\90\8c¼ð\90\8c´ð\90\8c»ð\90\8c¾ð\90\8c°ð\90\8c½ð\90\8c³ð\90\8d\83 ð\90\8c°ð\90\8c½ð\90\8c° ð\90\8d\83ð\90\8c´ð\90\8c¹ð\90\8c³ð\90\8c°ð\90\8c¹ ð\90\8d\86ð\90\8c´ð\90\8c¹ð\90\8c»ð\90\8c°ð\90\8c½ð\90\8d\83ð\90\8d\86ð\90\8c°ð\90\8c¿ð\90\8d\82ð\90\8c°ð\90\8c¼ð\90\8c´ð\90\8c»ð\90\8c¾ð\90\8c°ð\90\8c½ð\90\8c³ð\90\8c¹ð\90\8d\83 ð\90\8c¸ð\90\8c°ð\90\8d\82 ð\90\8c¹ð\90\8d\83ð\90\8d\84 ð\90\8c³ð\90\8c°ð\90\8c»ð\90\8c°ð\90\8c¸ð\90\8c° ð\90\8c¿ð\90\8d\83ð\90\8c²ð\90\8c¹ð\90\8c±ð\90\8c°ð\90\8c½ð\90\8d\83.",
+       "sharedupload-desc-here": "ð\90\8d\83ð\90\8d\89 ð\90\8c³ð\90\8c°ð\90\8d\84ð\90\8c° ð\90\8c¹ð\90\8d\83ð\90\8d\84 ð\90\8d\86ð\90\8d\82ð\90\8c°ð\90\8c¼ $1 ð\90\8c¾ð\90\8c°ð\90\8c· ð\90\8c¼ð\90\8c°ð\90\8c² ð\90\8c±ð\90\8d\82ð\90\8c¿ð\90\8cºð\90\8c¾ð\90\8c°ð\90\8c³ð\90\8c° ð\90\8d\86ð\90\8d\82ð\90\8c°ð\90\8c¼ ð\90\8c°ð\90\8c½ð\90\8c¸ð\90\8c°ð\90\8d\82ð\90\8c°ð\90\8c¹ð\90\8c¼ ð\90\8d\86ð\90\8c°ð\90\8c¿ð\90\8d\82ð\90\8c°ð\90\8d\85ð\90\8c°ð\90\8c¿ð\90\8d\82ð\90\8d\80ð\90\8d\89ð\90\8c¼.\nð\90\8c²ð\90\8c°ð\90\8d\83ð\90\8cºð\90\8c´ð\90\8c¹ð\90\8d\82ð\90\8c´ð\90\8c¹ð\90\8c½ð\90\8d\83 ð\90\8c°ð\90\8c½ð\90\8c° ð\90\8d\83ð\90\8c´ð\90\8c¹ð\90\8c½ð\90\8c°ð\90\8c¼ð\90\8c¼ð\90\8c° [$2 ð\90\8c³ð\90\8c°ð\90\8d\84ð\90\8c° ð\90\8d\83ð\90\8cºð\90\8c´ð\90\8c¹ð\90\8d\82ð\90\8c´ð\90\8c¹ð\90\8c½ð\90\8c¹ð\90\8c»ð\90\8c°ð\90\8c¿ð\90\8c±ð\90\8c°] ð\90\8c¾ð\90\8c°ð\90\8c¹ð\90\8c½ð\90\8c°ð\90\8d\82 ð\90\8c°ð\90\8d\84ð\90\8c°ð\90\8c¿ð\90\8c²ð\90\8c¹ð\90\8c¸ð\90\8d\83 ð\90\8c¹ð\90\8d\83ð\90\8d\84 ð\90\8c¿ð\90\8d\86.",
        "filedelete-submit": "Taíran",
        "mimesearch": "MIME sokeiþ",
        "listredirects": "𐍄𐌰𐌻𐌰 𐌰𐍆 𐍄𐌰𐌹𐌺𐌾𐌰𐌽𐍃𐌴𐌹𐌳𐍉𐍃",
-       "randompage": "ð\90\8d\83ð\90\8c»ð\90\8c¿ð\90\8c¼ð\90\8d\80ð\90\8c¼ð\90\8c°ð\90\8d\83ð\90\8d\83ð\90\8c¹ð\90\8c² ð\90\8d\83ð\90\8c´ð\90\8c¹ð\90\8c³ð\90\8d\89",
+       "randompage": "ð\90\8c¸ð\90\8c¿ð\90\8d\83 ð\90\8c¿ð\90\8c½ð\90\8cºð\90\8c¿ð\90\8c½ð\90\8c¸ð\90\8d\83 ð\90\8c»ð\90\8c°ð\90\8c¿ð\90\8d\86ð\90\8d\83",
        "statistics": "𐍃𐌴𐌹𐌳𐍉𐍃𐍄𐌰𐍄𐌹𐍃𐍄𐌹𐌺",
        "brokenredirects-edit": "(𐌼𐌰𐌹𐌳𐌾𐌰𐌽)",
        "brokenredirects-delete": "(𐍄𐌰𐌹𐍂𐌰𐌽)",
-       "nbytes": "$1 {{PLURAL:$1|ð\90\8c±ð\90\8c°ð\90\8c¹ð\90\8d\84\90\8c±ð\90\8c°ð\90\8c¹𐍄𐌰}}",
+       "nbytes": "$1 {{PLURAL:$1|ð\90\8c±ð\90\8c¹ð\90\8d\84\90\8c±ð\90\8c°𐍄𐌰}}",
        "ncategories": "$1 {{PLURAL:$1|𐌺𐌿𐌽𐌾𐌰|𐌺𐌿𐌽𐌾𐍉𐍃}}",
        "nlinks": "$1 {{PLURAL:$1|táikjanbandi|táikjanbandja}}",
        "nmembers": "$1 {{PLURAL:$1|niutand|niutanda}}",
-       "wantedpages": "Gaírnedum seidam",
+       "wantedpages": "𐌲𐌰𐌹𐍂𐌽𐌹𐌳𐌰𐌹 𐌻𐌰𐌿𐌱𐍉𐍃",
        "shortpages": "𐌻𐌴𐌹𐍄𐌹𐌻𐌰 𐍃𐌴𐌹𐌳𐍉𐍃",
-       "longpages": "𐌻𐌰𐌲𐌲𐌰 𐍃𐌴𐌹𐌳𐍉𐍃",
+       "longpages": "𐌻𐌰𐌲𐌲𐌰𐌹 𐌻𐌰𐌿𐌱𐍉𐍃",
        "listusers": "𐍂𐌴𐌲𐌹𐍃𐍄𐍂𐌴𐍂𐌰𐌳𐌴 𐌱𐍂𐌿𐌺𐌾𐌰𐌽𐌳𐍃",
-       "newpages": "𐌽𐌹𐌿𐌾𐌰 𐍃𐌴𐌹𐌳𐍉𐍃",
+       "newpages": "𐌽𐌹𐌿𐌾𐌰𐌹 𐌻𐌰𐌿𐌱𐍉𐍃",
        "move": "𐌽𐌰𐌼𐌾𐌰𐌽 𐌰𐍆𐍄𐍂𐌰",
-       "movethispage": "𐍃𐌺𐌹𐌿𐌱𐌰𐌽 𐍃𐌰 𐍃𐌴𐌹𐌳𐍉",
+       "movethispage": "𐌼𐌹𐌸𐍃𐌰𐍄𐌴𐌹 𐌸𐌰𐌽𐌰 𐌻𐌰𐌿𐍆",
+       "booksources": "𐌱𐍉𐌺𐌰𐌱𐍂𐌿𐌽𐌽𐌰𐌽𐍃",
+       "booksources-search-legend": "𐍃𐍉𐌺𐌴𐌹 𐌱𐍉𐌺𐌰𐌱𐍂𐌿𐌽𐌽𐌰𐌽𐍃",
+       "booksources-search": "𐍃𐍉𐌺𐌴𐌹",
        "specialloguserlabel": "Niutand:",
        "speciallogtitlelabel": "Namo:",
        "log": "𐌻𐍉𐌲𐌱𐍉𐌺𐍉𐍃",
        "all-logs-page": "𐌰𐌻𐌻𐌰 𐌻𐍉𐌲𐍉𐍃",
-       "allpages": "ð\90\8c°ð\90\8c»ð\90\8c»ð\90\8c¹ð\90\8d\83 ð\90\8d\83ð\90\8c´ð\90\8c¹ð\90\8c³𐍉𐍃",
+       "allpages": "ð\90\8c°ð\90\8c»ð\90\8c»ð\90\8c°ð\90\8c¹ ð\90\8c»ð\90\8c°ð\90\8c¿ð\90\8c±𐍉𐍃",
        "nextpage": "𐌹𐍆𐍄𐌿𐌼𐌰 𐍃𐌴𐌹𐌳𐍉 ($1)",
-       "prevpage": "ð\90\8c°ð\90\8d\86ð\90\8d\84ð\90\8c¿ð\90\8c¼ð\90\8c° ð\90\8d\83ð\90\8c´ð\90\8c¹ð\90\8c³ð\90\8d\89 ($1)",
-       "allarticles": "ð\90\8c°ð\90\8c»ð\90\8c¾ð\90\8c° ð\90\8d\83ð\90\8c´ð\90\8c¹ð\90\8c³𐍉𐍃",
-       "allpagessubmit": "ð\90\8c°ð\90\8d\86ð\90\8c²ð\90\8c°ð\90\8c²ð\90\8c²ð\90\8c°ð\90\8c½",
-       "categories": "ð\90\8cºð\90\8c¿ð\90\8c½ð\90\8c¾ð\90\8d\89ð\90\8d\83",
+       "prevpage": "ð\90\8c°ð\90\8d\86ð\90\8d\84ð\90\8c¿ð\90\8c¼ð\90\8c¹ð\90\8d\83ð\90\8d\84ð\90\8d\83 ð\90\8c»ð\90\8c°ð\90\8c¿ð\90\8d\86ð\90\8d\83 ($1)",
+       "allarticles": "ð\90\8c°ð\90\8c»ð\90\8c»ð\90\8c°ð\90\8c¹ ð\90\8c»ð\90\8c°ð\90\8c¿ð\90\8c±𐍉𐍃",
+       "allpagessubmit": "ð\90\8c²ð\90\8c°ð\90\8c²ð\90\8c²",
+       "categories": "ð\90\8cºð\90\8c¿ð\90\8c½ð\90\8c¾ð\90\8c°",
        "linksearch-ns": "𐍃𐌴𐌹𐌳𐍉𐍆𐌴𐍂𐌰:",
        "emailuser": "𐍃𐌰𐌽𐌳𐌾𐌰𐌽 𐌸𐍉 𐌽𐌹𐌿𐍄𐌰𐌽𐌳 𐌱𐍉𐌺𐍉𐌼",
-       "watchlist": "ð\90\8c¼ð\90\8c´ð\90\8c¹ð\90\8c½ð\90\8d\89ð\90\8d\83 ð\90\8d\85ð\90\8c¹ð\90\8d\84ð\90\8c°ð\90\8c½ð\90\8c³ð\90\8d\83ð\90\8c»ð\90\8c´ð\90\8c¹ð\90\8d\83ð\90\8d\84ð\90\8c°",
-       "mywatchlist": "ð\90\8c¼ð\90\8c´ð\90\8c¹ð\90\8c½ð\90\8d\89ð\90\8d\83 ð\90\8d\85ð\90\8c¹ð\90\8d\84ð\90\8c°ð\90\8c½ð\90\8c³ð\90\8d\83𐌻𐌴𐌹𐍃𐍄𐌰",
+       "watchlist": "ð\90\8d\85ð\90\8c¹ð\90\8d\84ð\90\8c°ð\90\8d\85ð\90\8c¹ð\90\8cºð\90\8d\89",
+       "mywatchlist": "ð\90\8c»ð\90\8c°ð\90\8c¹ð\90\8d\83ð\90\8d\84ð\90\8c°𐌻𐌴𐌹𐍃𐍄𐌰",
        "watch": "𐍅𐌰𐍂𐌰𐌽",
        "watchthispage": "𐍅𐌰𐍂𐌰𐌽 𐍃𐌴𐌹𐌳𐍉",
        "unwatch": "𐌽𐌹𐍅𐌰𐍂𐌰𐌽",
-       "watchlist-details": "{{PLURAL:$1|$1 seido|$1 seidona}} witáiþs inu maþleiseidam.",
+       "watchlist-details": "{{PLURAL:$1|$1 𐌻𐌰𐌿𐍆𐍃|$1 𐌻𐌰𐌿𐌱𐍉𐍃}} 𐌰𐌽𐌰 𐌸𐌴𐌹𐌽𐌰𐌹 𐍅𐌹𐍄𐌰𐍅𐌹𐌺𐍉𐌽, 𐌽𐌹 𐍃𐌿𐌽𐌳𐍂𐍉 𐍂𐌰𐌷𐌽𐌾𐌰𐌽𐌳𐌰 𐌲𐌰𐍅𐌰𐌿𐍂𐌳𐌾𐌰𐌻𐌰𐌿𐌱𐍉𐍃.",
        "watching": "Wita...",
        "unwatching": "Niwita...",
        "created": "𐌲𐌰𐍃𐌺𐌰𐍀𐌾𐌰𐌽",
-       "deletepage": "ð\90\8d\84ð\90\8c°ð\90\8c¹ð\90\8d\82ð\90\8c° ð\90\8d\83ð\90\8c´ð\90\8c¹ð\90\8c³ð\90\8d\89",
+       "deletepage": "ð\90\8d\86ð\90\8d\82ð\90\8c°ð\90\8cµð\90\8c¹ð\90\8d\83ð\90\8d\84ð\90\8c´ð\90\8c¹ ð\90\8c»ð\90\8c°ð\90\8c¿ð\90\8c±ð\90\8c°",
        "delete-legend": "𐍄𐌰𐌹𐍂𐌰𐌽",
        "actioncomplete": "𐍅𐌰𐍃𐌿𐌷 𐌹𐍄𐌰 𐌲𐌰𐌿𐍃𐍄𐌹𐌿𐌷𐌰𐌽",
        "dellogpage": "𐍄𐌰𐌹𐍂𐌰 𐌰𐌹𐍂𐍅𐌱𐍉𐌺𐌰",
        "deleteotherreason": "𐌰𐌽𐌸𐌰𐍂/𐌼𐌰𐌹𐍃 𐌼𐌹𐍄𐍉𐌽𐍃:",
        "deletereasonotherlist": "𐌰𐌽𐌸𐌰𐍂 𐌼𐌹𐍄𐍉𐌽𐍃",
-       "rollbacklink": "𐌰𐍆𐍅𐌰𐌻𐍅𐌾𐌰𐌽",
+       "rollbacklink": "𐌰𐍆𐍅𐌰𐌻𐍅𐌴𐌹",
+       "rollbacklinkcount": "𐌰𐍆𐍅𐌰𐌻𐍅𐌴𐌹 $1 {{PLURAL:$1|𐌹𐌽𐌼𐌰𐌹𐌳𐌴𐌹𐌽|𐌹𐌽𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐌹𐌽𐍃}}",
        "protectlogpage": "Log af Baírgjan",
        "prot_1movedto2": "[[$1]] skiubiþ du [[$2]]",
-       "protect-level-sysop": "ð\90\8d\83ð\90\8c´ð\90\8c¹ð\90\8c³ð\90\8d\89ð\90\8d\86ð\90\8c°ð\90\8c¸ð\90\8d\83 ð\90\8c°ð\90\8c¹ð\90\8c½ð\90\8c°ð\90\8c·ð\90\8c°",
+       "protect-level-sysop": "ð\90\8c°ð\90\8c½ð\90\8c³ð\90\8c»ð\90\8c´ð\90\8d\84ð\90\8c¹ð\90\8c¸ ð\90\8c¸ð\90\8c°ð\90\8d\84ð\90\8c°ð\90\8c¹ð\90\8c½ð\90\8c´ð\90\8c¹ ð\90\8d\82ð\90\8c´ð\90\8c¹ð\90\8cºð\90\8d\83",
        "protect-expiring": "bláuþiþ $1 (UTC)",
        "restriction-type": "Freihals:",
        "restriction-edit": "𐌼𐌰𐌹𐌳𐌾𐌰𐌽",
        "undeletelink": "𐍃𐌰𐌹𐍈𐌰𐌽/𐌰𐍆𐍄𐍂𐌰𐌲𐌰𐍃𐌰𐍄𐌾𐌰𐌽",
        "undeleteviewlink": "𐍃𐌰𐌹𐍈𐌹𐍃",
        "undelete-search-submit": "Sokeiþ",
-       "namespace": "ð\90\8d\83ð\90\8c´ð\90\8c¹ð\90\8c³ð\90\8d\89ð\90\8d\86ð\90\8c´ð\90\8d\82ð\90\8c°:",
+       "namespace": "ð\90\8c½ð\90\8c°ð\90\8c¼ð\90\8c°ð\90\8d\82ð\90\8c¿ð\90\8c¼:",
        "invert": "Afwandjan kustus",
        "blanknamespace": "(𐍆𐍂𐌿𐌼𐌹𐍃𐍄𐍃)",
-       "contributions": "ð\90\8c½ð\90\8c¹ð\90\8c¿ð\90\8d\84ð\90\8c°ð\90\8c½ð\90\8c³ð\90\8c¹ð\90\8d\83 ð\90\8c°ð\90\8c¹ð\90\8d\85ð\90\8c»ð\90\8c°ð\90\8c²ð\90\8c¹ð\90\8d\89ð\90\8d\83",
-       "mycontris": "ð\90\8c¼ð\90\8c´ð\90\8c¹ð\90\8c½ð\90\8d\89ð\90\8d\83 ð\90\8c°ð\90\8c¹ð\90\8d\85ð\90\8c»ð\90\8c°ð\90\8c²ð\90\8c¹ð\90\8d\89𐍃",
+       "contributions": "ð\90\8c±ð\90\8c¹ð\90\8c°ð\90\8c¿ð\90\8cºð\90\8c°ð\90\8c¹ð\90\8c½ð\90\8c´ð\90\8c¹ð\90\8d\83 ð\90\8c±ð\90\8d\82ð\90\8c¿ð\90\8cºð\90\8c¾ð\90\8c°ð\90\8c½ð\90\8c³ð\90\8c¹ð\90\8d\83 {{{{GENDER:$1|User}}",
+       "mycontris": "ð\90\8c±ð\90\8c¹ð\90\8c°ð\90\8c¿ð\90\8cºð\90\8c°ð\90\8c¹ð\90\8c½ð\90\8c´ð\90\8c¹𐍃",
        "contribsub2": "𐍆𐌰𐌿𐍂 $1 ($2)",
-       "uctop": "(háubiþ)",
+       "uctop": "(𐌷𐌰𐌿𐌱𐌹𐌸)",
        "month": "𐍆𐍂𐌰𐌼 𐌼𐌴𐌽𐍉𐌸𐍃 (𐌾𐌰𐌷 𐌰𐍆𐍄𐌿𐌼𐌰):",
        "year": "𐍆𐍂𐌰𐌼 𐌾𐌴𐍂𐌰 (𐌾𐌰𐌷 𐌰𐍆𐍄𐌿𐌼𐌰):",
        "sp-contributions-newbies-sub": "Faúr niujis niutandis",
        "sp-contributions-blocklog": "Logboka af afdraúsjan",
-       "sp-contributions-talk": "Maþleiseido",
-       "whatlinkshere": "𐍈𐌰𐍂𐌾𐌹𐍃 𐍃𐌴𐌹𐌳𐍉𐌽𐍃 𐌷𐌻𐌰𐌲𐌺𐌾𐌰𐌽𐌳 𐌷𐌹𐌳𐍂𐌴",
-       "whatlinkshere-title": "Seidos hwarjis du $1 táiknjan",
+       "sp-contributions-talk": "𐌲𐌰𐍅𐌰𐌿𐍂𐌳𐌾𐌰",
+       "whatlinkshere": "𐌰𐌻𐌻𐌰𐌹 𐌻𐌰𐌿𐌱𐍉𐍃 𐌸𐌰𐌹𐌴𐌹 𐌱𐍂𐌹𐌲𐌲𐌰𐌽𐌳 𐌸𐌿𐌺 𐌷𐌹𐌳𐍂𐌴",
+       "whatlinkshere-title": "𐌻𐌰𐌿𐌱𐍉𐍃 𐌸𐌰𐌹𐌴𐌹 𐍄𐌰𐌹𐌺𐌽𐌾𐌰𐌽𐌳 𐌳𐌿 \"$1\"",
+       "whatlinkshere-page": "𐌻𐌰𐌿𐍆𐍃:",
+       "linkshere": "𐌹𐍆𐍄𐌿𐌼𐌰𐌹 𐌻𐌰𐌿𐌱𐍉𐍃 𐌱𐍂𐌹𐌲𐌲𐌰𐌽𐌳 𐌸𐌿𐌺  <strong>[[:$1]]</strong>:",
        "isredirect": "𐍄𐌰𐌹𐌺𐌾𐌰𐍃𐌴𐌹𐌳𐍉",
        "istemplate": "ináukan",
        "whatlinkshere-prev": "{{PLURAL:$1|aftuma|aftumans $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|iftuma|iftumans $1}}",
        "whatlinkshere-links": "← táikajanbandja",
-       "blockip": "𐌰𐍆𐌳𐍂𐌰𐌿𐍃𐌾𐌰𐌽 𐌽𐌹𐌿𐍄𐌰𐌽𐌳𐌹𐍃",
+       "whatlinkshere-hidelinks": "$1 𐌲𐌰𐍅𐌹𐍃𐍃𐌴𐌹𐍃",
+       "blockip": "𐍆𐌰𐌿𐍂𐌳𐌰𐌼𐌼𐌴𐌹 {{GENDER:$1|user}}",
        "ipbreason": "𐍆𐌰𐌹𐍂𐌹𐌽𐌰:",
        "ipboptions": "𐌱 𐌰𐍅𐍂𐌰:2 hours, 𐌰 𐌳𐌰𐌲𐍃:1 day, 𐌲 𐌳𐌰𐌲𐍉𐍃:3 days, 𐌰 𐍅𐌹𐌺𐍉:1 week, 𐌱 𐍅𐌹𐌺𐍉𐌽𐍃:2 weeks, 𐌰 𐌼𐌴𐌽𐍉𐌸𐍃:1 month, 𐌲 𐌼𐌴𐌽𐍉𐌸𐍉𐍃:3 months, 𐌵 𐌼𐌴𐌽𐍉𐌸𐍉𐍃:6 months, 𐌰 𐌾𐌴𐍂:1 year, 𐌹𐌽𐌿𐍄𐍂𐌹𐌲𐌲𐌴𐌽𐌳𐌴𐌹𐍃:infinite",
        "ipblocklist-submit": "Sokeiþ",
        "infiniteblock": "ajukduþs",
-       "blocklink": "ð\90\8d\85ð\90\8c°ð\90\8d\82ð\90\8c²ð\90\8c¾ð\90\8c°ð\90\8c½",
+       "blocklink": "ð\90\8d\86ð\90\8c°ð\90\8c¿ð\90\8d\82ð\90\8c³ð\90\8c°ð\90\8c¼ð\90\8c¼ð\90\8c´ð\90\8c¹",
        "unblocklink": "𐍅𐌰𐌽𐌳𐌾𐌰𐌽",
        "change-blocklink": "𐌲𐌰𐌼𐌰𐌹𐌳𐌾𐌰𐌽 𐍅𐌰𐌿𐍂𐌾𐌰𐍅𐌰𐌳𐌳𐌾𐌿𐍃",
-       "contribslink": "ð\90\8c²ð\90\8c¹ð\90\8c±ð\90\8d\89𐍃",
+       "contribslink": "ð\90\8c±ð\90\8c¹ð\90\8c°ð\90\8c¿ð\90\8cºð\90\8c°ð\90\8c¹ð\90\8c½ð\90\8c´ð\90\8c¹𐍃",
        "blocklogpage": "𐌻𐍉𐌲𐌱𐍉𐌺𐌰 𐌰𐍆 𐌰𐍆𐌳𐍂𐌰𐌿𐍃𐌾𐌰𐌽",
        "blocklogentry": "𐌰𐍆𐌳𐍂𐌰𐌿𐍃𐌹𐌸 [[$1]] 𐍆𐌰𐌿𐍂 $2 $3",
-       "movearticle": "𐍃𐌺𐌹𐌿𐌱𐌰 𐍃𐌴𐌹𐌳𐍉:",
-       "newtitle": "𐌳𐌿 𐌽𐌹𐌿𐌾𐌹𐍃 𐌽𐌰𐌼𐍉𐍃:",
+       "newtitle": "𐌽𐌹𐌿𐌾𐌹 𐌿𐍆𐌰𐍂𐌼𐌴𐌻𐌹:",
        "move-watch": "𐍅𐌹𐍄𐌰𐌽 𐍃𐍉 𐍃𐌴𐌹𐌳𐍉",
        "movepagebtn": "𐍃𐌺𐌹𐌿𐌱𐌰 𐍃𐌴𐌹𐌳𐍉",
        "movelogpage": "Log af skiubans",
        "movereason": "𐍆𐌰𐌹𐍂𐌹𐌽𐌰:",
        "revertmove": "𐍂𐌰𐌹𐌳𐌾𐌰𐌽",
-       "export": "ð\90\8c¿ð\90\8d\84ð\90\8c¼ð\90\8c¹ð\90\8c¸ð\90\8d\83ð\90\8c°ð\90\8d\84ð\90\8c¾ð\90\8c¹ð\90\8d\83 ð\90\8d\83ð\90\8c´ð\90\8c¹ð\90\8c³ð\90\8d\89𐌽𐍃",
-       "thumbnail-more": "𐌱𐌹𐌰𐌿𐌺𐌰𐌽",
-       "tooltip-pt-userpage": "𐌸𐌴𐌹𐌽𐌰 𐌽𐌹𐌿𐍄𐌰𐌽𐌳𐌹𐍃𐍃𐌴𐌹𐌳𐍉",
-       "tooltip-pt-mytalk": "𐌸𐌴𐌹𐌽𐌰 𐌲𐌰𐍅𐌰𐌿𐍂𐌳𐌾𐌰𐍃𐌴𐌹𐌳𐍉",
-       "tooltip-pt-preferences": "𐌼𐌴𐌹𐌽𐍉𐍃 𐌱𐍂𐌿𐌺𐌾𐌰𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐌴𐌹𐍃",
-       "tooltip-pt-watchlist": "ð\90\8c»ð\90\8c´ð\90\8c¹ð\90\8d\83ð\90\8d\84ð\90\8c° ð\90\8d\83ð\90\8c´ð\90\8c¹ð\90\8c³ð\90\8d\89ð\90\8c½ð\90\8d\83 ð\90\8c´ð\90\8c¹ ð\90\8c¸ð\90\8c¿ ð\90\8c°ð\90\8d\84ð\90\8d\85ð\90\8c¹ð\90\8d\84ð\90\8c°ð\90\8c¹ð\90\8d\83 ð\90\8d\86ð\90\8c°ð\90\8c¿ð\90\8d\82 ð\90\8c¹ð\90\8c½ð\90\8c¼ð\90\8c°ð\90\8c¹ð\90\8c³ð\90\8c´ð\90\8c¹ð\90\8c½ð\90\8c¹ð\90\8c½ð\90\8d\83",
-       "tooltip-pt-mycontris": "𐍄𐌰𐌻𐌰 𐌰𐍆 𐌸𐌴𐌹𐌽 𐌲𐌹𐌱𐍉𐌽𐍃",
-       "tooltip-pt-login": "ð\90\8c¸ð\90\8c¿ ð\90\8c¹ð\90\8d\83 ð\90\8c²ð\90\8c°ð\90\8d\88ð\90\8c°ð\90\8d\84ð\90\8c¾ð\90\8c°ð\90\8c½ð\90\8c³ð\90\8d\83 ð\90\8c°ð\90\8d\84ð\90\8c²ð\90\8c°ð\90\8c²ð\90\8c²ð\90\8c°ð\90\8c½; ð\90\8c°ð\90\8c¸ð\90\8c¸ð\90\8c°ð\90\8c½, ð\90\8c½ð\90\8c¹ð\90\8d\83ð\90\8d\84 ð\90\8c¸ð\90\8c°ð\90\8c¿ð\90\8d\82ð\90\8c±ð\90\8c°ð\90\8c½𐍃",
+       "export": "ð\90\8c¿ð\90\8d\84ð\90\8c±ð\90\8c°ð\90\8c¹ð\90\8d\82 ð\90\8c»ð\90\8c°ð\90\8c¿ð\90\8c±ð\90\8c°𐌽𐍃",
+       "thumbnail-more": "\n𐌼𐌹𐌺𐌹𐌻𐌴𐌹",
+       "tooltip-pt-userpage": "{{GENDER:|Your user}} 𐌻𐌰𐌿𐍆𐍃",
+       "tooltip-pt-mytalk": "{{GENDER:|Your}} 𐌻𐌰𐌿𐍆𐍃 𐌲𐌰𐍅𐌰𐌿𐍂𐌳𐌾𐌹𐍃",
+       "tooltip-pt-preferences": "{{GENDER:|Your}} 𐌲𐌰𐌻𐌴𐌹𐌺𐌰𐌽𐌳𐌴𐌹𐌽𐍃 𐍅𐌰𐌹𐌷𐍄𐍃",
+       "tooltip-pt-watchlist": "ð\90\8d\85ð\90\8c¹ð\90\8cºð\90\8d\89 ð\90\8c»ð\90\8c°ð\90\8c¿ð\90\8c±ð\90\8c´ ð\90\8c¸ð\90\8c¹ð\90\8c¶ð\90\8c´ð\90\8c´ð\90\8c¹ ð\90\8c°ð\90\8d\84ð\90\8d\85ð\90\8c°ð\90\8c¹ð\90\8d\83ð\90\8d\84 ð\90\8c¹ð\90\8c½ð\90\8c¼ð\90\8c°ð\90\8c¹ð\90\8c³ð\90\8c´ð\90\8c¹ð\90\8c½ð\90\8c¹ð\90\8c¼",
+       "tooltip-pt-mycontris": "A list of {{GENDER:|your}} 𐌱𐌹𐌰𐌿𐌺𐌰𐌹𐌽𐌴𐌹𐍃 𐌱𐍂𐌿𐌺𐌾𐌰𐌽𐌳𐌹𐍃",
+       "tooltip-pt-login": "ð\90\8d\84ð\90\8c¹ð\90\8c¼ð\90\8d\82ð\90\8c¾ð\90\8c°ð\90\8c¶ð\90\8c° ð\90\8c³ð\90\8c¿ ð\90\8c°ð\90\8d\84ð\90\8c²ð\90\8c°ð\90\8c²ð\90\8c²ð\90\8c°ð\90\8c½, ð\90\8c¹ð\90\8c¸ ð\90\8c½ð\90\8c¹ð\90\8d\83ð\90\8d\84 ð\90\8d\83ð\90\8cºð\90\8c¿ð\90\8c»ð\90\8c³ ð\90\8c¸ð\90\8c¿𐍃",
        "tooltip-pt-logout": "𐌻𐌴𐌹𐌸𐌰𐌽",
-       "tooltip-ca-talk": "𐌲𐌰𐍅𐌰𐌿𐍂𐌳𐌹 𐌱𐌹 𐌲𐌰𐌷𐌰𐌱𐌾𐌰 𐍃𐌴𐌹𐌳𐍉",
-       "tooltip-ca-edit": "𐌸𐌿 𐌼𐌰𐌲𐍄 𐌼𐌰𐌹𐌳𐌾𐌹𐍃 𐌸𐌰𐍄𐌰 𐍃𐌴𐌹𐌳𐍉. 𐌾𐌰𐌱𐌰𐌹 𐍅𐌹𐌻𐌴𐌹𐍃, 𐌱𐍂𐌿𐌺𐌾𐌹𐍃 𐍆𐌰𐌿𐍂𐍃𐌰𐌹𐍈𐌰𐌹𐍃 𐍆𐍂𐌿𐌼𐌰.",
-       "tooltip-ca-addsection": "𐌰𐌽𐌰𐍃𐍄𐍉𐌳𐌾𐌹𐍃 𐌽𐌹𐌿𐌾𐌰 𐌳𐌰𐌹𐌻",
-       "tooltip-ca-viewsource": "𐍃𐍉 𐍃𐌴𐌹𐌳𐍉 𐌹𐍃𐍄 𐌷𐌻𐌴𐌹𐌱𐌾𐌰𐌽𐌳𐍃\n𐌸𐌿 𐌼𐌰𐌲𐍄 𐍃𐌰𐌹𐍈𐌹𐍃 𐌹𐌶𐍉𐍃 𐌱𐍂𐌿𐌽𐌽𐌰𐌽",
-       "tooltip-ca-history": "𐍆𐌰𐌿𐍂𐌲𐌰𐌼𐌰𐌹𐌳𐌾𐌴𐌹𐌽𐍃 𐌸𐌹𐌶𐌿𐌷 𐍃𐌴𐌹𐌳𐍉𐌽𐍃",
+       "tooltip-pt-createaccount": "𐌱𐌰𐍄𐌹𐌶𐍉 𐌹𐍃𐍄 𐌸𐌿𐍃 𐍃𐌺𐌰𐍀𐌾𐌰𐌽 𐌺𐌰𐍅𐍄𐍃𐌾𐍉𐌽, 𐌹𐌸 𐍃𐌺𐌿𐌻𐌳 𐌽𐌹𐍃𐍄",
+       "tooltip-ca-talk": "𐌲𐌰𐍅𐌰𐌿𐍂𐌳𐌹 𐌱𐌹 𐌷𐌰𐌱𐌰𐌽𐌳𐌰𐌽 𐌻𐌰𐌿𐍆",
+       "tooltip-ca-edit": "𐌹𐌽𐌼𐌰𐌹𐌳𐌴𐌹 𐌸𐌰𐌽𐌰 𐌻𐌰𐌿𐍆",
+       "tooltip-ca-addsection": "𐌰𐌽𐌰𐍃𐍄𐍉𐌳𐌴𐌹 𐌽𐌹𐌿𐌾𐌰 𐌳𐌰𐌹𐌻",
+       "tooltip-ca-viewsource": "𐍃𐌰 𐌻𐌰𐌿𐍆𐍃 𐌷𐌰𐌱𐌰𐌹𐌸 𐌼𐌿𐌽𐌳. 𐌼𐌰𐌲𐍄 𐌸𐌹𐍃 𐌻𐌰𐌿𐌱𐌹𐍃 𐌼𐌿𐌽𐌳 𐍃𐌰𐌹𐍈𐌰𐌽.",
+       "tooltip-ca-history": "𐌰𐍆𐍄𐌿𐌼𐍉𐍃 𐌲𐌰𐌱𐍉𐍄𐌴𐌹𐌽𐍉𐍃 𐌸𐌹𐍃 𐌻𐌰𐌿𐌱𐌹𐍃",
        "tooltip-ca-protect": "𐌱𐌰𐌹𐍂𐌲𐌰 𐌸𐍉 𐍃𐌴𐌹𐌳𐍉",
-       "tooltip-ca-delete": "ð\90\8d\84ð\90\8c°ð\90\8c¹ð\90\8d\82ð\90\8c°ð\90\8c½ ð\90\8d\83ð\90\8d\89 ð\90\8d\83ð\90\8c´ð\90\8c¹ð\90\8c³ð\90\8d\89",
-       "tooltip-ca-move": "ð\90\8d\83ð\90\8cºð\90\8c¹ð\90\8c¿ð\90\8c±ð\90\8c°ð\90\8c½ ð\90\8d\83ð\90\8d\89 ð\90\8d\83ð\90\8c´ð\90\8c¹ð\90\8c³ð\90\8d\89",
-       "tooltip-ca-watch": "ð\90\8c°ð\90\8c½ð\90\8c°ð\90\8c°ð\90\8c¿ð\90\8cºð\90\8c¹ð\90\8d\83 ð\90\8c¸ð\90\8c¹ð\90\8c¶ð\90\8c°ð\90\8c¹ ð\90\8d\83ð\90\8c´ð\90\8c¹ð\90\8c³ð\90\8d\89ð\90\8c½ ð\90\8c°ð\90\8c½ð\90\8c° ð\90\8c¸ð\90\8c´ð\90\8c¹ð\90\8c½ð\90\8c° ð\90\8d\85ð\90\8c¹ð\90\8d\84ð\90\8c°ð\90\8c½ð\90\8c³ð\90\8c»ð\90\8c´ð\90\8c¹ð\90\8d\83ð\90\8d\84ð\90\8c°",
+       "tooltip-ca-delete": "ð\90\8d\86ð\90\8d\82ð\90\8c°ð\90\8cµð\90\8c¹ð\90\8d\83ð\90\8d\84ð\90\8c´ð\90\8c¹ ð\90\8c¸ð\90\8c°ð\90\8c¼ð\90\8c¼ð\90\8c° ð\90\8c»ð\90\8c°ð\90\8c¿ð\90\8c±ð\90\8c°",
+       "tooltip-ca-move": "ð\90\8c¼ð\90\8c¹ð\90\8c¸ð\90\8d\83ð\90\8c°ð\90\8d\84ð\90\8c´ð\90\8c¹ ð\90\8c¸ð\90\8c°ð\90\8c½ð\90\8c° ð\90\8c»ð\90\8c°ð\90\8c¿ð\90\8d\86",
+       "tooltip-ca-watch": "ð\90\8c±ð\90\8c¹ð\90\8c°ð\90\8c¹ð\90\8c°ð\90\8c¿ð\90\8cº ð\90\8c¸ð\90\8c°ð\90\8c½ð\90\8c° ð\90\8c»ð\90\8c°ð\90\8c¿ð\90\8d\86 ð\90\8c³ð\90\8c¿ ð\90\8c¸ð\90\8c´ð\90\8c¹ð\90\8c½ð\90\8c°ð\90\8c¹ ð\90\8d\85ð\90\8c¹ð\90\8d\84ð\90\8c°ð\90\8d\85ð\90\8c¹ð\90\8cºð\90\8d\89ð\90\8c½",
        "tooltip-search": "𐍃𐍉𐌺𐌾𐌰𐌽 {{SITENAME}}",
-       "tooltip-search-go": "𐍆𐌰𐍂𐌹𐍃 𐌳𐌿 𐍃𐌴𐌹𐌳𐍉𐌽 𐌼𐌹𐌸 𐌲𐌻𐌰𐌲𐌲𐌿𐌾𐌰𐌼𐌰 𐌽𐌰𐌼𐌹𐌽 𐌾𐌰𐌱𐌰𐌹 𐌹𐍃𐍄",
-       "tooltip-search-fulltext": "𐍃𐍉𐌺𐌾𐌰𐌽 𐍃𐌴𐌹𐌳𐍉𐌽𐍃 𐍆𐌰𐌿𐍂 𐌸𐌰𐌽𐌰 𐌱𐍉𐌺𐌰𐍅𐌰𐌿𐍂𐌳𐌰𐌽",
-       "tooltip-p-logo": "𐌷𐌰𐌿𐌱𐌹𐌳𐌰𐍃𐌴𐌹𐌳𐍉",
-       "tooltip-n-mainpage": "𐍃𐌰𐌹𐍈𐌰𐌽 𐍃𐌰 𐌷𐌰𐌿𐌱𐌹𐌳𐌰𐍃𐌴𐌹𐌳𐍉",
-       "tooltip-n-mainpage-description": "𐍃𐌰𐌹𐍈𐌰𐌹𐍃 𐍃𐌰 𐌷𐌰𐌿𐌱𐌹𐌳𐌰𐍃𐌴𐌹𐌳𐍉",
-       "tooltip-n-portal": "𐌱𐌹 𐌸𐌹𐌶𐌰𐌹 𐍆𐌰𐌿𐍂𐌰𐍅𐌰𐌿𐍂𐍀𐌰𐌹, 𐍈𐌰𐍃 𐌸𐌿 𐌼𐌰𐌲 𐍄𐌰𐌿𐌾𐌰, 𐍈𐌰𐍃 𐍃𐍄𐌰𐌸𐍃 𐌱𐌹𐌲𐌹𐍄𐌰𐌽 𐌹𐌽𐍃",
-       "tooltip-n-currentevents": "𐌱𐌹𐌲𐌹𐌸𐌹𐍃 𐌱𐌰𐌺𐌲𐌰𐌷𐌰𐌱𐌹 𐌱𐌹 𐌽𐌹𐌿𐌾𐌰𐌽𐍃 𐍅𐌰𐌹𐌷𐍄𐌰𐌽𐍃",
-       "tooltip-n-recentchanges": "𐌻𐌴𐌹𐍃𐍄𐌰 𐌼𐌰𐌹𐌳𐌾𐌴𐌹𐌽𐌴 𐌽𐌿 𐌰𐌽𐌰 𐌸𐌰𐌼𐌼𐌰 𐍅𐌹𐌺𐌾𐌰",
-       "tooltip-n-randompage": "𐌿𐍃𐌻𐌰𐌸𐌰𐌹𐌸 𐍃𐌻𐌿𐌼𐍀𐌼𐌰𐍃𐍃𐌹𐌾𐌹𐍃 𐍃𐌴𐌹𐌳𐍉",
-       "tooltip-n-help": "𐍃𐌰 𐍃𐍄𐌰𐌸𐍃 𐍆𐌹𐌽𐌸𐌰𐌽",
-       "tooltip-t-whatlinkshere": "𐌻𐌴𐌹𐍃𐍄𐌰 𐌰𐌻𐌻𐌹𐍃 𐍅𐌹𐌺𐌾𐍉𐍃 𐍃𐌴𐌹𐌳𐍉𐌽𐍉 𐌴𐌹 𐌻𐌴𐌹𐌽𐌺𐍉𐌽𐌳 𐌷𐌹𐌳𐍂𐌴",
-       "tooltip-t-recentchangeslinked": "𐌲𐌰𐌼𐌰𐌹𐌳𐌾𐌴𐌹𐌽𐍃 𐌽𐌿 𐍅𐌹𐌸𐍂𐌰 𐍃𐌴𐌹𐌳𐍉𐌽𐍃 𐌸𐌰𐍄𐌴𐌹 𐍃𐌹𐌽𐌳 𐌻𐌴𐌹𐌽𐌺𐍉𐌽𐍃 𐌿𐍃 𐌸𐌰𐌼𐌼𐌰 𐍃𐌴𐌹𐌳𐍉𐌽",
-       "tooltip-feed-atom": "𐌰𐍄𐍉𐌼 𐍂𐌹𐌽𐌽𐍉 𐌱𐌹 𐌸𐌹𐌶𐌰𐌹 𐍃𐌴𐌹𐌳𐍉𐌽",
+       "tooltip-search-go": "𐌾𐌰𐌱𐌰𐌹 𐌹𐍃𐍄, 𐌲𐌰𐌲𐌲 𐌳𐌿 𐌻𐌰𐌿𐌱𐌰 𐌼𐌹𐌸 𐍃𐌰𐌼𐌹𐌽 𐌽𐌰𐌼𐌹𐌽.",
+       "tooltip-search-fulltext": "𐍃𐍉𐌺𐌴𐌹 𐌻𐌰𐌿𐌱𐌰𐌽𐍃 𐌸𐌰𐌹𐌼 𐌱𐍉𐌺𐍉𐌼",
+       "tooltip-p-logo": "𐌲𐌰𐍅𐌴𐌹𐍃 𐌷𐌰𐌿𐌱𐌹𐌳𐌰𐌻𐌰𐌿𐌱𐌹𐍃",
+       "tooltip-n-mainpage": "𐌲𐌰𐍅𐌴𐌹𐍃 𐌷𐌰𐌿𐌱𐌹𐌳𐌰𐌻𐌰𐌿𐌱𐌹𐍃",
+       "tooltip-n-mainpage-description": "𐌲𐌰𐍅𐌴𐌹𐍃 𐌷𐌰𐌿𐌱𐌹𐌳𐌰𐌻𐌰𐌿𐌱𐌹𐍃",
+       "tooltip-n-portal": "𐌱𐌹 𐍆𐌰𐌿𐍂𐌰𐍅𐌰𐌿𐍂𐍀𐌰, 𐍈𐌰 𐌼𐌰𐌲𐍄 𐍄𐌰𐌿𐌾𐌰𐌽, 𐍈𐌰𐍂 𐌱𐌹𐌲𐌹𐍄𐌹𐍃 𐍅𐌰𐌹𐌷𐍄𐌹𐌽𐍃",
+       "tooltip-n-currentevents": "𐌱𐌹𐌲𐌹𐍄 𐌼𐌰𐌹𐍃 𐌺𐌿𐌽𐌸𐌹 𐌱𐌹 𐌽𐌹𐌿𐌾𐍉𐍃 𐍅𐌰𐌿𐍂𐌸𐌰𐌽𐍉𐍃 𐍅𐌰𐌹𐌷𐍄𐌹𐌽𐍃",
+       "tooltip-n-recentchanges": "𐍅𐌹𐌺𐍉 𐌰𐌽𐌳𐍅𐌰𐌹𐍂𐌸𐌰𐌹𐌶𐍉 𐌹𐌽𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍉 𐌹𐌽 𐌸𐌰𐌼𐌼𐌰 𐍅𐌹𐌺𐌾𐌰",
+       "tooltip-n-randompage": "𐌿𐍃𐌱𐍂𐌹𐌲𐌲 𐌸𐌿𐍃 𐌿𐌽𐌺𐌿𐌽𐌸𐌰𐌽𐌰 𐌻𐌰𐌿𐍆",
+       "tooltip-n-help": "𐍃𐌰 𐍃𐍄𐌰𐌸𐍃 𐌳𐌿 𐌱𐌹𐌲𐌹𐍄𐌰𐌽",
+       "tooltip-t-whatlinkshere": "𐍅𐌹𐌺𐍉 𐌰𐌻𐌻𐌰𐌹𐌶𐌴 𐍅𐌹𐌺𐌾𐌰𐌻𐌰𐌿𐌱𐌴 𐌸𐌹𐌶𐌴𐌴𐌹 𐌱𐍂𐌹𐌲𐌲𐌰𐌽𐌳 𐌸𐌿𐌺 𐌷𐌹𐌳𐍂𐌴",
+       "tooltip-t-recentchangeslinked": "𐌰𐌽𐌳𐍅𐌰𐌹𐍂𐌸𐍉𐍃 𐌹𐌽𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍉𐍃 𐌹𐌽 𐌻𐌰𐌿𐌱𐌰𐌼 𐌲𐌰𐍅𐌹𐌳𐌰𐌽𐌰𐌹𐌼 𐌰𐍆 𐌸𐌰𐌼𐌼𐌰 𐌻𐌰𐌿𐌱𐌰.",
+       "tooltip-feed-atom": "𐌰𐍄𐍉𐌼 𐍆𐍉𐌳𐌴𐌹𐌽𐍃 𐌸𐌰𐌼𐌼𐌰 𐌻𐌰𐌿𐌱𐌰",
+       "tooltip-t-contributions": "𐍅𐌹𐌺𐍉 𐌱𐌹𐌰𐌿𐌺𐌰𐌹𐌽𐌴 𐍆𐍂𐌰𐌼 {{GENDER:$1|𐌸𐌰𐌼𐌼𐌰 𐌱𐍂𐌿𐌺𐌾𐌹𐌽}}",
        "tooltip-t-upload": "𐌿𐍃𐌷𐌻𐌰𐌸𐌰𐌽 𐍆𐌴𐌹𐌻𐌰𐌽𐍃",
-       "tooltip-t-specialpages": "𐌻𐌴𐌹𐍃𐍄𐌰 𐌸𐌹𐌶𐍉 𐌿𐍃𐍃𐌹𐌽𐌳𐍃𐌴𐌹𐌳𐍉𐌽𐍉",
-       "tooltip-t-print": "𐍅𐍂𐌴𐌹𐍄𐌼𐌰𐌷𐍄𐌴𐌹𐌲 𐌿𐍃𐌲𐌰𐌱𐍉𐍃 𐌸𐌹𐌶𐍉𐍃 𐍃𐌴𐌹𐌳𐍉𐌽𐍃",
-       "tooltip-t-permalink": "𐍃𐌹𐌽𐍄𐌴𐌹𐌽𐍉 𐍃𐍄𐌰𐌽𐌳𐌰𐌽𐍃 𐌻𐌴𐌹𐌽𐌺𐌰 𐍅𐌹𐌸𐍂𐌰 𐌲𐌰𐌼𐌰𐌹𐌳𐌾𐌴𐌹𐌽 𐌸𐌹𐌶𐍉𐍃 𐍃𐌴𐌹𐌳𐍉𐌽𐍃",
-       "tooltip-ca-nstab-main": "𐍃𐌰𐌹𐍈𐌰𐌹𐍃 𐌸𐌰𐍄𐌰 𐌲𐌰𐌷𐌰𐌱𐌾𐌰 𐍃𐌴𐌹𐌳𐍉",
-       "tooltip-ca-nstab-user": "𐍃𐌰𐌹𐍈𐌰𐌽 𐍃𐌰 𐌽𐌹𐌿𐍄𐌰𐌽𐌳𐌹𐍃𐍃𐌴𐌹𐌳𐍉",
-       "tooltip-ca-nstab-image": "𐍃𐌰𐌹𐍈𐌰𐌽 𐌸𐍉 𐍆𐌴𐌹𐌻𐌰𐍃𐌴𐌹𐌳𐍉𐌽",
+       "tooltip-t-specialpages": "𐍅𐌹𐌺𐍉 𐌰𐌻𐌻𐌰𐌹𐌶𐌴 𐌿𐍃𐍃𐌹𐌽𐌳𐌰𐌹𐌶𐌴 𐌻𐌰𐌿𐌱𐌴",
+       "tooltip-t-print": "𐌿𐍃𐌼𐌴𐍂𐌴𐌹𐌽𐍃 𐌸𐌹𐍃 𐌻𐌰𐌿𐌱𐌹𐍃 𐌳𐌿 𐌿𐍃𐌼𐌴𐌻𐌾𐌰𐌽",
+       "tooltip-t-permalink": "𐌰𐌹𐍅𐌴𐌹𐌽𐌰 𐌲𐌰𐍅𐌹𐍃𐍃 𐌳𐌿 𐌸𐌹𐌶𐌰𐌹 𐌰𐍆𐍄𐍂𐌰𐍃𐌹𐌿𐌽𐌰𐌹 𐌸𐌹𐍃 𐌻𐌰𐌿𐌱𐌹𐍃",
+       "tooltip-ca-nstab-main": "𐍃𐌰𐌹𐍈 𐌷𐌰𐌱𐌰𐌽𐌳𐌰𐌽 𐌻𐌰𐌿𐍆",
+       "tooltip-ca-nstab-user": "𐍃𐌰𐌹𐍈 𐌱𐍂𐌿𐌺𐌾𐌰𐌻𐌰𐌿𐍆",
+       "tooltip-ca-nstab-special": "𐍃𐌰 𐌹𐍃𐍄 𐌿𐍃𐍃𐌹𐌽𐌳𐍃 𐌻𐌰𐌿𐍆𐍃 𐌾𐌰𐌷 𐌽𐌹 𐌼𐌰𐌲 𐌹𐌽𐌼𐌰𐌹𐌳𐌾𐌰𐌳𐌰.",
+       "tooltip-ca-nstab-project": "𐌰𐍄𐌰𐌿𐌲𐌴𐌹 𐍆𐌰𐌿𐍂𐌰𐍅𐌰𐌿𐍂𐍀𐌰𐌻𐌰𐌿𐍆",
+       "tooltip-ca-nstab-image": "𐍃𐌰𐌹𐍈 𐍆𐌰𐌴𐌹𐌻𐌰𐌻𐌰𐌿𐍆",
        "tooltip-ca-nstab-template": "𐍃𐌰𐌹𐍈𐌹𐍃 𐍆𐌰𐌿𐍂𐌰𐌼𐌴𐌻𐌴𐌹𐌽",
-       "tooltip-ca-nstab-category": "𐍃𐌰𐌹𐍈𐌹𐍃 𐍃𐌴𐌹𐌳𐍉𐌽 𐌷𐌰𐌽𐍃𐍉",
-       "tooltip-save": "ð\90\8d\83ð\90\8cºð\90\8d\82ð\90\8c´ð\90\8c¹ð\90\8c±ð\90\8c°ð\90\8c¹ð\90\8c½ ð\90\8c¸ð\90\8c´ð\90\8c¹ð\90\8c½ ð\90\8c¼ð\90\8c°ð\90\8c¹ð\90\8c³ð\90\8c´𐌹𐌽𐍃",
+       "tooltip-ca-nstab-category": "𐍃𐌰𐌹𐍈 𐌺𐌿𐌽𐌾𐌰𐌻𐌰𐌿𐍆",
+       "tooltip-save": "ð\90\8c²ð\90\8c°ð\90\8d\86ð\90\8c°ð\90\8d\83ð\90\8d\84 ð\90\8c¸ð\90\8c´ð\90\8c¹ð\90\8c½ð\90\8d\89ð\90\8d\83 ð\90\8c¹ð\90\8c½ð\90\8c¼ð\90\8c°ð\90\8c¹ð\90\8c³ð\90\8c´ð\90\8c¹ð\90\8c½𐌹𐌽𐍃",
        "tooltip-preview": "𐍆𐌰𐌿𐍂𐍃𐌰𐍈𐌹𐍃 𐌹𐌽𐌼𐌰𐌹𐌳𐌾𐌴𐌹𐌽𐍉𐍃 𐌸𐌴𐌹𐌽𐌰, 𐌱𐌹𐌳𐌾𐌰 𐌸𐌿𐌺 𐌱𐍂𐌿𐌺𐌾𐌰𐌽 𐌸𐌰𐍄𐌰 𐍆𐌰𐌿𐍂𐌰 𐌼𐌴𐌻𐌾𐌹𐍃!",
-       "tooltip-diff": "ð\90\8d\83ð\90\8c°ð\90\8c¹ð\90\8d\88ð\90\8c¹ð\90\8c¸ ð\90\8c¸ð\90\8c°ð\90\8c½ð\90\8c¶ð\90\8c´ð\90\8c¹ ð\90\8c¹ð\90\8c½ð\90\8c¼ð\90\8c°ð\90\8c¹ð\90\8c³ð\90\8c¾ð\90\8c´ð\90\8c¹ð\90\8c½ð\90\8d\89ð\90\8d\83 ð\90\8c¸ð\90\8c°ð\90\8d\84ð\90\8c´ð\90\8c¹ ð\90\8c±ð\90\8d\82ð\90\8c¿ð\90\8cºð\90\8c¾ð\90\8c¹ð\90\8d\83 ð\90\8c±ð\90\8d\89ð\90\8cºð\90\8c°ð\90\8d\85ð\90\8c°ð\90\8c¿ð\90\8d\82ð\90\8c³ð\90\8c¹ð\90\8c½ð\90\8d\83",
-       "tooltip-rollback": "\"ð\90\8c°ð\90\8d\86ð\90\8d\85ð\90\8c°ð\90\8c»ð\90\8d\85ð\90\8c¾ð\90\8c°ð\90\8c½\" ð\90\8c±ð\90\8c°ð\90\8cºð\90\8c¼ð\90\8c°ð\90\8c¹ð\90\8c³ð\90\8c¾ð\90\8c¹ð\90\8c¸ ð\90\8c¹ð\90\8c½ð\90\8c¼ð\90\8c°ð\90\8c¹ð\90\8c³ð\90\8c¾ð\90\8c´ð\90\8c¹ð\90\8c½ð\90\8d\83 ð\90\8c±ð\90\8c¹ ð\90\8c¸ð\90\8c¹ð\90\8c¶ð\90\8c°ð\90\8c¹ ð\90\8d\83ð\90\8c´ð\90\8c¹ð\90\8c³ð\90\8d\89ð\90\8c½ ð\90\8d\85ð\90\8c¹ð\90\8d\83ð\90\8c°ð\90\8c½ ð\90\8d\83ð\90\8d\89 ð\90\8c²ð\90\8c°ð\90\8c¼ð\90\8c°ð\90\8c³ð\90\8c¾ð\90\8c´ð\90\8c¹ ð\90\8c¼ð\90\8c°ð\90\8c½ð\90\8c°ð\90\8c²ð\90\8c¹ð\90\8d\83ð\90\8d\84ð\90\8d\83 ð\90\8c½ð\90\8c¹ð\90\8c¿ð\90\8c¾ð\90\8c° ð\90\8c²ð\90\8c¹ð\90\8c±ð\90\8c°ð\90\8c¾ð\90\8c¹ð\90\8c½ð\90\8d\83 ð\90\8d\86ð\90\8d\82ð\90\8c°ð\90\8c¼ ð\90\8c°ð\90\8c¹ð\90\8c½ð\90\8d\83 ð\90\8cºð\90\8c»ð\90\8c¹ð\90\8cº",
+       "tooltip-diff": "ð\90\8c°ð\90\8d\84ð\90\8c°ð\90\8c¿ð\90\8c²ð\90\8c´ð\90\8c¹ ð\90\8d\88ð\90\8c¹ð\90\8c»ð\90\8c´ð\90\8c¹ð\90\8cºð\90\8d\89ð\90\8d\83 ð\90\8c¹ð\90\8c½ð\90\8c¼ð\90\8c°ð\90\8c¹ð\90\8c³ð\90\8c´ð\90\8c¹ð\90\8c½ð\90\8c¹ð\90\8c½ð\90\8d\83 ð\90\8c²ð\90\8c°ð\90\8d\84ð\90\8c°ð\90\8d\85ð\90\8c¹ð\90\8c³ð\90\8c´ð\90\8d\83 ð\90\8c³ð\90\8c¿ ð\90\8c¸ð\90\8c°ð\90\8c¹ð\90\8c¼ ð\90\8c±ð\90\8d\89ð\90\8cºð\90\8d\89ð\90\8c¼",
+       "tooltip-rollback": "\"ð\90\8c°ð\90\8d\86ð\90\8d\85ð\90\8c°ð\90\8c»ð\90\8d\85ð\90\8c´ð\90\8c¹\" ð\90\8c²ð\90\8c°ð\90\8c½ð\90\8c°ð\90\8d\83ð\90\8c¾ð\90\8c¹ð\90\8c¸ ð\90\8c¹ð\90\8c½ð\90\8c¼ð\90\8c°ð\90\8c¹ð\90\8c³ð\90\8c´ð\90\8c¹ð\90\8c½(ð\90\8d\89ð\90\8d\83) ð\90\8c³ð\90\8c¿ ð\90\8c¸ð\90\8c°ð\90\8c¼ð\90\8c¼ð\90\8c° ð\90\8c»ð\90\8c°ð\90\8c¿ð\90\8c±ð\90\8c° ð\90\8c°ð\90\8d\86ð\90\8d\84ð\90\8c¿ð\90\8c¼ð\90\8c¹ð\90\8d\83ð\90\8d\84ð\90\8c¹ð\90\8d\83 ð\90\8c±ð\90\8c¹ð\90\8c°ð\90\8c¿ð\90\8cºð\90\8c°ð\90\8c½ð\90\8c³ð\90\8c¹ð\90\8d\83\90\8c°ð\90\8d\86ð\90\8d\84ð\90\8c¿ð\90\8c¼ð\90\8c¹ð\90\8d\83ð\90\8d\84ð\90\8c°ð\90\8c¹ð\90\8c¶ð\90\8d\89ð\90\8d\83 ð\90\8c±ð\90\8c¹ð\90\8c°ð\90\8c¿ð\90\8cºð\90\8c°ð\90\8c½ð\90\8c³ð\90\8c¾ð\90\8d\89ð\90\8d\83 ð\90\8c¹ð\90\8c½ ð\90\8c°ð\90\8c¹ð\90\8c½ð\90\8c°ð\90\8c¼ð\90\8c¼ð\90\8c° ð\90\8d\83ð\90\8c¹ð\90\8c½ð\90\8c¸ð\90\8c°",
        "tooltip-undo": "\"𐌽𐌹𐌿𐍃𐌺𐌰𐍀𐌾𐌰𐌽\" 𐌱𐌰𐌺𐌼𐌰𐌹𐌳𐌾𐌹𐌸 𐌹𐌽𐌼𐌰𐌹𐌳𐌲𐌴𐌹𐌽𐍃 𐌾𐌰𐌷 𐌿𐍃𐌻𐌿𐌺𐍉𐌸 𐌼𐌰𐌹𐌳𐌾𐌰𐍆𐍉𐍂𐌼𐍉𐌽 𐍃𐍅𐌴 𐍆𐌰𐌿𐍂𐍃𐌰𐌹𐍈𐌰 𐌷𐌹𐍅𐌾𐌰. 𐌸𐌰𐍄𐌰 𐌻𐌴𐍄 𐌰𐌽𐌰𐌿𐌺𐌰𐌽𐌰𐌽 𐍃𐌰𐌿𐌸𐌰 𐌹𐌽 𐌹𐌽𐌽𐌰𐌷𐌰𐌻𐌳𐌰𐌰𐌽𐌲𐌰𐌱𐌰.",
        "tooltip-summary": "𐌰𐍄𐌲𐌰𐌲𐌲𐌹𐍃 𐌹𐌽𐌽𐌰𐌷𐌰𐌻𐌳𐌰𐌰𐌽𐌲𐌰𐌱𐌰 𐌼𐌰𐌿𐍂𐌲𐌾𐌰",
+       "pageinfo-toolboxlink": "𐌺𐌿𐌽𐌸𐌹 𐌻𐌰𐌿𐌱𐌹𐍃",
        "previousdiff": "← 𐌰𐍆𐍄𐌿𐌼𐌰 𐌰𐌹𐍂𐌹𐍃",
-       "nextdiff": "Iftuma áiris →",
+       "nextdiff": "𐌽𐌹𐌿𐌾𐌹𐌶𐌴𐌹 𐌹𐌽𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐍃 →",
        "file-info-size": "$1 × $2 𐍀𐌹𐌺𐍃𐌴𐌻𐌰, 𐍆𐌴𐌹𐌻𐍅𐌰𐌷𐍃𐍄𐌿𐍃: $3, 𐌼𐌹𐌼𐌴 𐌺𐌿𐌽𐌹: $4",
-       "show-big-image": "Fullis wahstus",
+       "show-big-image": "𐍆𐍂𐌿𐌼𐌹𐍃𐍄𐌰 𐌳𐌰𐍄𐌰",
+       "show-big-image-preview": "𐌼𐌹𐌺𐌹𐌻𐌴𐌹 𐌸𐌹𐌶𐍉𐍃 𐍆𐌰𐌿𐍂𐌰𐍃𐌹𐌿𐌽𐌰𐌹𐍃: $1.",
+       "show-big-image-size": "$1 × $2 𐍆𐍂𐌹𐍃𐌰𐌷𐍄𐌹𐍃𐍄𐌰𐌱𐌴𐌹𐍃",
        "ilsubmit": "Sokeiþ",
        "metadata": "𐌿𐍆𐌰𐍂𐌳𐌰𐍄𐌰",
-       "namespacesall": "𐌰𐌻𐌻𐌹𐍃",
+       "exif-colorspace": "𐍆𐌰𐍂𐍅𐌰𐍂𐌿𐌼",
+       "exif-orientation-1": "𐌱𐌹 𐌱𐌹𐌿𐌷𐍄𐌾𐌰",
+       "namespacesall": "𐌰𐌻𐌻",
        "monthsall": "𐌰𐌻𐌻𐌹𐍃",
        "imgmultigo": "Afgaggan!",
        "table_pager_limit_submit": "Affgaggan",
+       "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|𐌲𐌰𐍅𐌰𐌿𐍂𐌳𐌾𐌰]])",
        "version-other": "Anþar",
-       "specialpages": "ð\90\8c¿ð\90\8d\83ð\90\8d\83ð\90\8c¹ð\90\8c½ð\90\8c³ð\90\8d\83ð\90\8c´ð\90\8c¹ð\90\8c³𐍉𐍃",
+       "specialpages": "ð\90\8c¿ð\90\8d\83ð\90\8d\83ð\90\8c¹ð\90\8c½ð\90\8c³ð\90\8c°ð\90\8c¹ ð\90\8c»ð\90\8c°ð\90\8c¿ð\90\8c±𐍉𐍃",
        "tag-filter": "[[Special:Tags|𐍄𐌰𐌹𐌺𐌽𐍉𐍃]] 𐍆𐌹𐌻𐌷𐌰",
-       "rightsnone": "(ni áinshun)"
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|𐍃𐍉𐌺𐌴𐌹𐌽𐌹𐍅𐌰𐌿𐍂𐌳|𐍃𐍉𐌺𐌴𐌹𐌽𐌹𐍅𐌰𐌿𐍂𐌳𐌰}}]]: $2)",
+       "tags-source-header": "𐌱𐍂𐌿𐌽𐌽𐌰",
+       "tags-actions-header": "𐌳𐌴𐌳𐌴𐌹𐍃",
+       "tags-source-none": "𐌽𐌹 𐌾𐌿 𐌱𐍂𐌿𐌺𐌾𐌰𐌳𐌰",
+       "tags-delete": "𐌿𐍃𐌽𐌹𐌼",
+       "tags-activate": "𐌲𐌰𐌵𐌹𐌿𐌴𐌹",
+       "tags-deactivate": "𐌿𐌽𐌲𐌰𐌵𐌹𐌿𐌴𐌹",
+       "tags-create-heading": "𐍃𐌺𐌰𐍀𐌴𐌹 𐌽𐌹𐌿𐌾𐌰𐍄𐌰 𐍃𐍉𐌺𐌰𐍅𐌰𐌿𐍂𐌳",
+       "tags-create-tag-name": "𐌽𐌰𐌼𐍉 𐍃𐍉𐌺𐌰𐍅𐌰𐌿𐍂𐌳𐌹𐍃:",
+       "tags-create-reason": "𐌳𐌿𐌸𐌸𐌴:",
+       "tags-create-submit": "𐍃𐌺𐌰𐍀𐌴𐌹",
+       "tags-create-warnings-below": "𐍅𐌹𐌻𐌴𐌹𐌶𐌿 𐌸𐌰𐌹𐍂𐍈𐌹𐍃𐌰𐌽 𐍃𐌺𐌰𐍀𐌾𐌰𐌽 𐌸𐌰𐍄𐌰 𐍃𐍉𐌺𐌰𐍅𐌰𐌿𐍂𐌳?",
+       "tags-delete-title": "𐌿𐍃𐌽𐌹𐌼 𐍃𐍉𐌺𐌰𐍅𐌰𐌿𐍂𐌳",
+       "tags-delete-explanation-initial": "𐍅𐌰𐌹𐍂𐌸𐌰𐌹𐍃 𐍃𐍉𐌺𐌰𐍅𐌰𐌿𐍂𐌳 \"$1\" 𐌿𐍃𐌽𐌹𐌼𐌰𐌽 𐌿𐍃 𐌲𐌹𐌱𐌰𐌲𐌰𐍃𐌰𐍄𐌴𐌹𐌽𐌰𐌹.",
+       "tags-delete-reason": "𐌳𐌿𐌸𐌸𐌴:",
+       "tags-delete-not-found": "𐍃𐍉𐌺𐌰𐍅𐌰𐌿𐍂𐌳 \"$1\" 𐌽𐌹𐍃𐍄.",
+       "tags-activate-title": "𐌲𐌰𐌵𐌹𐌿𐌴𐌹 𐍃𐍉𐌺𐌰𐍅𐌰𐌿𐍂𐌳",
+       "tags-activate-question": "𐍅𐌰𐌹𐍂𐌸𐌰𐌹𐍃 𐍃𐍉𐌺𐌰𐍅𐌰𐌿𐍂𐌳 \"$1\" 𐌲𐌰𐌵𐌹𐌿𐌾𐌰𐌽.",
+       "tags-activate-reason": "𐌳𐌿𐌸𐌸𐌴:",
+       "tags-activate-not-found": "𐍃𐍉𐌺𐌰𐍅𐌰𐌿𐍂𐌳 \"$1\" 𐌽𐌹𐍃𐍄.",
+       "tags-activate-submit": "𐌲𐌰𐌵𐌹𐌿𐌴𐌹",
+       "tags-deactivate-title": "𐌿𐌽𐌲𐌰𐌵𐌹𐌿𐌴𐌹 𐍃𐍉𐌺𐌰𐍅𐌰𐌿𐍂𐌳",
+       "tags-deactivate-reason": "𐌳𐌿𐌸𐌸𐌴:",
+       "tags-deactivate-submit": "𐌿𐌽𐌲𐌰𐌵𐌹𐌿𐌴𐌹",
+       "logentry-delete-delete": "$1 {{GENDER:$2|𐌿𐍃𐌽𐌰𐌼}} 𐌻𐌰𐌿𐍆 $3",
+       "logentry-move-move": "$1 {{GENDER:$2|𐌼𐌹𐌸𐍃𐌰𐍄𐌹𐌳𐌰}} 𐌻𐌰𐌿𐍆𐍃 $3 𐌳𐌿 $4",
+       "logentry-newusers-create": "𐌱𐍂𐌿𐌺𐌾𐌰𐌺𐌰𐍅𐍄𐍃𐌾𐍉 $1 𐍅𐌰𐍃 {{{{GENDER:$2|𐌲𐌰𐍃𐌺𐌰𐍀𐌰𐌽𐌰}}",
+       "rightsnone": "(ni áinshun)",
+       "searchsuggest-search": "𐍃𐍉𐌺𐌴𐌹"
 }
index 55120ea..489479b 100644 (file)
        "viewyourtext": "Du chasch dr Quälltext vu '''Dyne Bearbeitige''' vu däre Syte aaluege un kopiere.",
        "protectedinterface": "In däre Syte het s Text fir s Sproch-Interface vu dr Software un si isch gsperrt, zum Missbruch z verhindre.",
        "editinginterface": "<strong>Warnig:</strong> Uf däre Syte het s Täxt, wu vu dr MediaWiki-Software brucht wird. Änderigen uf däre Syte wirke si uf d Benutzeroberflechi vu däm Wiki uus.",
-       "translateinterface": "Go Ibersetzige fir alli Wiki zuefiege oder ändere, bruuch bitte [//translatewiki.net/ translatewiki.net], s MediaWiki-Lokalisierigsprojäkt.",
+       "translateinterface": "Go Ibersetzige fir alli Wiki zuefiege oder ändere, bruuch bitte [https://translatewiki.net/ translatewiki.net], s MediaWiki-Lokalisierigsprojäkt.",
        "cascadeprotected": "Die Syte isch fir s Bearbeite gsperrt. Si isch yybunde in {{PLURAL:$1|die Syte, wu do chunnt|die Syte, wu do chemme}} , wu mit ere Kaskadesperroption gschitzt {{PLURAL:$1|isch|sin}}:\n$2",
        "namespaceprotected": "Du hesch kei Berächtigung, die Syte im '''$1'''-Namensruum z bearbeite.",
        "customcssprotected": "Du bisch nid berächtigt, die Syte mit CSS z bearbeite, wel si zue dr persenlige Yystellige vun eme andere Benutzer ghert.",
        "resetpass-temp-password": "Temporär Passwort:",
        "resetpass-abort-generic": "D Passwortänderig isch dur e Erwyterig abbroche wore.",
        "resetpass-expired": "Dy Passwort isch abglofe. Bitte leg e nej Passwort fir d Aamäldig fescht.",
-       "resetpass-expired-soft": "Dy Passwort isch abgloffe un mueß zruckgsetzt wäre. Bitte wehl jetz e nei Passwort uus oder klick uf „{{int:resetpass-submit-cancel}}“, go s speter zrucksetze.",
-       "resetpass-validity-soft": "Dy Passwort isch nit giltig: $1\n\nBitte wehl jetz e nei Passwort oder klick uf „{{int:resetpass-submit-cancel}}“, go s speter zrucksetze.",
+       "resetpass-expired-soft": "Dy Passwort isch abgloffe un mueß zruckgsetzt wäre. Bitte wehl jetz e nei Passwort uus oder klick uf „{{int:authprovider-resetpass-skip-label}}“, go s speter zrucksetze.",
+       "resetpass-validity-soft": "Dy Passwort isch nit giltig: $1\n\nBitte wehl jetz e nei Passwort oder klick uf „{{int:authprovider-resetpass-skip-label}}“, go s speter zrucksetze.",
        "passwordreset": "Passwort zruggsetze",
        "passwordreset-text-one": "Fill des Formular uus go Dy Passwort zrucksetze.",
        "passwordreset-text-many": "{{PLURAL:$1|Fill eis vu dr Fälder uus go Dy Passwort zrucksetze.}}",
        "apihelp-no-such-module": "Ds Modul «$1» lat sech nid la finde.",
        "apisandbox": "API-Sandchaschte",
        "apisandbox-api-disabled": "D API isch uf däm Wiki deaktiviert wore.",
-       "apisandbox-intro": "Die Syte chasch bruche fir Versuech mit dr '''MediaWiki-API'''.\nIn dr [//www.mediawiki.org/wiki/API:Main_page/de Dokumäntation zue dr API] het s no meh Hiiwys zue ihre Nutzig. Byschpel: [//www.mediawiki.org/wiki/API:Main_page/de#Beispiel Dr Inhalt vu dr Hauptsyte abruefe]. Fir meh Byschpel eini vu dr verfiegbare Aktionen uuswehle.",
+       "apisandbox-intro": "Die Syte chasch bruche fir Versuech mit dr '''MediaWiki-API'''.\nIn dr [https://www.mediawiki.org/wiki/API:Main_page/de Dokumäntation zue dr API] het s no meh Hiiwys zue ihre Nutzig. Byschpel: [https://www.mediawiki.org/wiki/API:Main_page/de#Beispiel Dr Inhalt vu dr Hauptsyte abruefe]. Fir meh Byschpel eini vu dr verfiegbare Aktionen uuswehle.",
        "apisandbox-submit": "Aafrog uusfiere",
        "apisandbox-reset": "Lääre",
        "apisandbox-examples": "Byyschpil",
        "allmessagesname": "Name",
        "allmessagesdefault": "Standardtext",
        "allmessagescurrent": "jetzige Tekscht",
-       "allmessagestext": "Des isch e Lischt vu allene meglige Syschtemnochrichte us em MediaWiki Namensruum.\nLueg au uf [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Lokalisierig] un [//translatewiki.net translatewiki.net], wänn Du zue dr MediaWiki-Lokalisierig wit byytrage.",
+       "allmessagestext": "Des isch e Lischt vu allene meglige Syschtemnochrichte us em MediaWiki Namensruum.\nLueg au uf [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Lokalisierig] un [https://translatewiki.net translatewiki.net], wänn Du zue dr MediaWiki-Lokalisierig wit byytrage.",
        "allmessagesnotsupportedDB": "'''{{ns:special}}:Allmessages''' cha nit bruucht wärde will '''$wgUseDatabaseMessages''' abgschalte isch.",
        "allmessages-filter-legend": "Filter",
        "allmessages-filter": "Filter fir dr aapasst Zuestand:",
index e4444d9..8e09dd7 100644 (file)
        "protectedpagetext": "ફેરફારો કે એવું કંઈ પણ થતું રોકવા માટે આ પાનું સુરક્ષિત કરવામાં આવ્યું છે.",
        "viewsourcetext": "આપ આ પાનાનો મૂળ સ્રોત નિહાળી શકો છો અને તેની નકલ (copy) પણ કરી શકો છો:",
        "viewyourtext": "આપ આ પાનાનાં '''આપનાં સંપાદનો'''નો મૂળ સ્રોત નિહાળી શકો છો અને તેની નકલ (copy) પણ કરી શકો છો:",
-       "protectedinterface": "આ પાનું સોફ્ટવેર માટે ઇન્ટરફેઇસ ટેક્સટ આપે છે, અને તેને દુરુપયોગ રોકવા માટે સ્થગિત કર્યું છે.\nબધાંજ વિકિ માટે ભાષાંતર ઉમેરવા કે બદલવા માટે, કૃપા કરી [//translatewiki.net/ translatewiki.net], મિડિયાવિકિ સ્થાનિયકરણ પ્રકલ્પ, વાપરો.",
+       "protectedinterface": "આ પાનું સોફ્ટવેર માટે ઇન્ટરફેઇસ ટેક્સટ આપે છે, અને તેને દુરુપયોગ રોકવા માટે સ્થગિત કર્યું છે.\nબધાંજ વિકિ માટે ભાષાંતર ઉમેરવા કે બદલવા માટે, કૃપા કરી [https://translatewiki.net/ translatewiki.net], મિડિયાવિકિ સ્થાનિયકરણ પ્રકલ્પ, વાપરો.",
        "editinginterface": "<strong>ચેતવણી:</strong> તમે જે પાનામાં ફેરફાર કરી રહ્યા છો તે પાનું સોફ્ટવેર માટે ઇન્ટરફેસ ટેક્સટ પૂરી પાડે છે.\nઅહીંનો બદલાવ આ વિકિ પર ઉપસ્થિત અન્ય સભ્યોના ઇન્ટરફેસનાં દેખાવ ઉપર અસરકર્તા બનશે.",
        "cascadeprotected": "આ પાના પર ફેરફાર પ્રતિબંધિત છે, કારણ કે આ પાનું {{PLURAL:$1|એવા પાનાં}}નું સભ્ય છે કે જેમાં અનુવર્તી(પગથિયામય) સંરક્ષણ લાગુ કરવામાં આવ્યું છે :\n$2",
        "namespaceprotected": "તમને '''$1''' નામાવકાશનાં પાનાંમાં ફેરફાર કરવાની પરવાનગી નથી.",
        "allmessagesname": "નામ",
        "allmessagesdefault": "મૂળ સંદેશ",
        "allmessagescurrent": "વર્તમાન દસ્તાવેજ",
-       "allmessagestext": "આ મિડિયાવિકિ નામસ્થળમાં આવેલ પ્રણાલીજનિત સંદેશાની યાદી આ મુજબ છે.\nજો તમે મિડિયાયાવિકિના સ્થાનીયકરણમાં મદદરૂપ થવા ઇચ્છતા હોવ તો કૃપયા [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] અને [//translatewiki.net translatewiki.net]ની મુલાકાત લો.",
+       "allmessagestext": "આ મિડિયાવિકિ નામસ્થળમાં આવેલ પ્રણાલીજનિત સંદેશાની યાદી આ મુજબ છે.\nજો તમે મિડિયાયાવિકિના સ્થાનીયકરણમાં મદદરૂપ થવા ઇચ્છતા હોવ તો કૃપયા [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] અને [https://translatewiki.net translatewiki.net]ની મુલાકાત લો.",
        "allmessagesnotsupportedDB": "આ પાનું ન વાપરી શકાશે કેમકે '''$wgUseDatabaseMessages'''  નિષ્ક્રીય કરાયું છે",
        "allmessages-filter-legend": "ચાળણી",
        "allmessages-filter": "સ્થાનીયકરણ સ્થિતિ દ્વારા ચાળો",
index 128b824..c7d7099 100644 (file)
                        "Macofe"
                ]
        },
-       "tog-underline": "鏈接加底線:",
-       "tog-hideminor": "隱藏最近更改肚嘅細微編寫",
-       "tog-hidepatrolled": "隱藏最近更改肚巡查過嘅編寫",
-       "tog-newpageshidepatrolled": "隱藏新頁面清單肚巡查過嘅頁面",
-       "tog-extendwatchlist": "展開監視列表來顯示所有更改,毋單淨係最近嘅",
-       "tog-usenewrc": "在最近更改和監視列表肚整合同一頁嘅修改",
-       "tog-numberheadings": "標題自動編號",
-       "tog-showtoolbar": "展示編寫工具欄",
-       "tog-editondblclick": "雙撳編寫頁面",
-       "tog-editsectiononrightclick": "允許右撳標題編寫段落",
-       "tog-watchcreations": "加亻厓建立嘅頁面撈上傳嘅文件加入亻厓嘅監視列表",
-       "tog-watchdefault": "將亻厓編寫嘅頁面撈檔案加入亻厓嘅監視列表",
-       "tog-watchmoves": "將亻厓移動嘅頁面撈檔案加入亻厓嘅監視列表",
+       "tog-underline": "Lièn-chiap kâ-tái sien:",
+       "tog-hideminor": "Yún-chhông chui-khiûn kiên-kói tú ke se-mì phiên-siá",
+       "tog-hidepatrolled": "Yún-chhông chui-khiûn kiên-kói tú sùn-chhà ko ke phiên-siá",
+       "tog-newpageshidepatrolled": "Yún-chhông sîn ya̍p-mien chhîn-tân tú sùn-chhà ko ke ya̍p-mien",
+       "tog-extendwatchlist": "Chán-khôi kâm-sṳ lie̍t-péu lòi hién-sṳ só-yû kiên-kói, m̀  tân-chhiang he chui-khiûn ke",
+       "tog-usenewrc": "Chhai chui-khiûn kiên-kói lâu kâm-sṳ lie̍t-péu tú cháng-ha̍p thùng yit-ya̍p ke siû-kói",
+       "tog-numberheadings": "Phiêu-thì chhṳ-thûng phiên-ho",
+       "tog-showtoolbar": "Chán-sṳ phiên-siá kûng-khí-làn",
+       "tog-editondblclick": "Sûng-khim phiên-siá ya̍p-mien",
+       "tog-editsectiononrightclick": "Yún-hí yu-khim phiêu-thì phiên-siá thon-lo̍k",
+       "tog-watchcreations": "Kâ ngài kien-li̍p ke ya̍p-mien lâu sông-chhòn ke vùn-khien kâ-ngi̍p ngài-ke kâm-sṳ lie̍t-péu",
+       "tog-watchdefault": "Chiông ngài phiên-siá ke ya̍p-mien lâu tóng-on kâ-ngi̍p ngài-ke kâm-sṳ lie̍t-péu",
+       "tog-watchmoves": "Chiông ngài yì-thûng ke ya̍p-mien lâu tóng-on kâ-ngi̍p ngài-ke kâm-sṳ lie̍t-péu",
        "tog-watchdeletion": "加亻厓刪除嘅頁面撈文件入亻厓嘅監視列表",
        "tog-minordefault": "默認標記全部編寫係細微修改",
        "tog-previewontop": "在編寫框上頭顯示預覽",
@@ -42,7 +42,7 @@
        "tog-shownumberswatching": "展示監視中嘅使用人數目",
        "tog-oldsig": "現有簽名:",
        "tog-fancysig": "將簽名看做維基文字(毋會自動產生鏈接)",
-       "tog-uselivepreview": "使用即時預覽(實驗中)",
+       "tog-uselivepreview": "Sṳ́-yung chit-sṳ̀ yi-lám",
        "tog-forceeditsummary": "還吂輸入編寫摘要時提醒亻厓",
        "tog-watchlisthideown": "監視列表肚隱藏亻厓嘅編寫",
        "tog-watchlisthidebots": "監視列表肚隱藏機器人嘅編寫",
        "tog-showhiddencats": "展示隱藏分類",
        "tog-norollbackdiff": "执行回退後毋顯示差別",
        "tog-useeditwarning": "當離開頁面之時變更還吂儲存,請提醒𠊎",
-       "tog-prefershttps": "登入時一直使用安全連線",
+       "tog-prefershttps": "Tên-ngi̍p sṳ̀ yit-chhṳ̍t sṳ́-yung ôn-chhiòn lièn-sien",
        "underline-always": "總係使用",
-       "underline-never": "從來毋用",
-       "underline-default": "外皮或瀏覽器默認",
+       "underline-never": "Chhiùng-lòi m̀-yung",
+       "underline-default": "Ngoi-phì fe̍t liù-lám-hi me̍t-ngin",
        "editfont-style": "編寫區字型樣式:",
-       "editfont-default": "瀏覽器默認",
+       "editfont-default": "Liù-lám-hi me̍t-ngin",
        "editfont-monospace": "等距字型",
        "editfont-sansserif": "無襯線字型",
        "editfont-serif": "襯線字型",
-       "sunday": "禮拜日",
-       "monday": "禮拜一",
-       "tuesday": "禮拜二",
-       "wednesday": "禮拜三",
-       "thursday": "禮拜四",
-       "friday": "禮拜五",
-       "saturday": "禮拜六",
-       "sun": "",
-       "mon": "",
-       "tue": "",
-       "wed": "",
-       "thu": "",
-       "fri": "",
-       "sat": "",
-       "january": "一月",
-       "february": "二月",
-       "march": "三月",
-       "april": "四月",
-       "may_long": "五月",
-       "june": "六月",
-       "july": "七月",
-       "august": "八月",
-       "september": "九月",
-       "october": "十月",
-       "november": "十一月",
-       "december": "十二月",
-       "january-gen": "一月",
-       "february-gen": "二月",
-       "march-gen": "三月",
-       "april-gen": "四月",
-       "may-gen": "五月",
-       "june-gen": "六月",
-       "july-gen": "七月",
-       "august-gen": "八月",
-       "september-gen": "九月",
-       "october-gen": "十月",
-       "november-gen": "十一月",
-       "december-gen": "十二月",
-       "jan": "1月",
-       "feb": "2月",
-       "mar": "3月",
-       "apr": "4月",
-       "may": "5月",
-       "jun": "6月",
-       "jul": "7月",
-       "aug": "8月",
-       "sep": "9月",
-       "oct": "10月",
-       "nov": "11月",
-       "dec": "12月",
-       "january-date": "1月$1日",
-       "february-date": "2月$1日",
-       "march-date": "3月$1日",
-       "april-date": "4月$1日",
-       "may-date": "5月$1日",
-       "june-date": "6月$1日",
-       "july-date": "7月$1日",
-       "august-date": "8月$1日",
-       "september-date": "9月$1日",
-       "october-date": "10月$1日",
-       "november-date": "11月$1日",
-       "december-date": "12月$1日",
-       "pagecategories": "$1隻分類",
-       "category_header": "“$1”分類肚嘅頁面",
-       "subcategories": "子分類",
-       "category-media-header": "“$1”分類肚嘅媒體",
-       "category-empty": "''邇隻分類目前還吂包含頁面或者媒體文件。''",
-       "hidden-categories": "$1隻隱藏分類",
-       "hidden-category-category": "隱藏分類",
-       "category-subcat-count": "{{PLURAL:$2|邇隻分類有下背一隻子分類。|邇隻分類有$2隻子分類,下背列出矣$1隻。}}",
+       "sunday": "Lî-pai-ngit",
+       "monday": "Lî-pai-yit",
+       "tuesday": "Lî-pai-ngi",
+       "wednesday": "Lî-pai-sâm",
+       "thursday": "Lî-pai-si",
+       "friday": "Lî-pai-ńg",
+       "saturday": "Lî-pai-liuk",
+       "sun": "Ngit",
+       "mon": "Yit",
+       "tue": "Ngi",
+       "wed": "Sâm",
+       "thu": "Si",
+       "fri": "Ńg",
+       "sat": "Liuk",
+       "january": "Yit-ngie̍t",
+       "february": "Ngi-ngie̍t",
+       "march": "Sâm-ngie̍t",
+       "april": "Si-ngie̍t",
+       "may_long": "Ńg-ngie̍t",
+       "june": "Liuk-ngie̍t",
+       "july": "Chhit-ngie̍t",
+       "august": "Pat-ngie̍t",
+       "september": "Kiú-ngie̍t",
+       "october": "Sṳ̍p-ngie̍t",
+       "november": "Sṳ̍p-yit-ngie̍t",
+       "december": "Sṳ̍p-ngi-ngie̍t",
+       "january-gen": "Yit-ngie̍t",
+       "february-gen": "Ngi-ngie̍t",
+       "march-gen": "Sâm-ngie̍t",
+       "april-gen": "Si-ngie̍t",
+       "may-gen": "Ńg-ngie̍t",
+       "june-gen": "Liuk-ngie̍t",
+       "july-gen": "Chhit-ngie̍t",
+       "august-gen": "Pat-ngie̍t",
+       "september-gen": "Kiú-ngie̍t",
+       "october-gen": "Sṳ̍p-ngie̍t",
+       "november-gen": "Sṳ̍p-yit-ngie̍t",
+       "december-gen": "Sṳ̍p-ngi-ngie̍t",
+       "jan": "Yit-ngie̍t",
+       "feb": "Ngi-ngie̍t",
+       "mar": "Sâm-ngie̍t",
+       "apr": "Si-ngie̍t",
+       "may": "Ńg-ngie̍t",
+       "jun": "Liuk-ngie̍t",
+       "jul": "Chhit-ngie̍t",
+       "aug": "Pat-ngie̍t",
+       "sep": "Kiú-ngie̍t",
+       "oct": "Sṳ̍p-ngie̍t",
+       "nov": "Sṳ̍p-yit-ngie̍t",
+       "dec": "Sṳ̍p-ngi-ngie̍t",
+       "january-date": "1-ngie̍t $1-ngit",
+       "february-date": "2-ngie̍t $1-ngit",
+       "march-date": "3-ngie̍t $1-ngit",
+       "april-date": "4-ngie̍t $1-ngit",
+       "may-date": "5-ngie̍t $1-ngit",
+       "june-date": "6-ngie̍t $1-ngit",
+       "july-date": "7-ngie̍t $1-ngit",
+       "august-date": "8-ngie̍t $1-ngit",
+       "september-date": "9-ngie̍t $1-ngit",
+       "october-date": "10-ngie̍t $1-ngit",
+       "november-date": "11-ngie̍t $1-ngit",
+       "december-date": "12-ngie̍t $1-ngit",
+       "pagecategories": "{{PLURAL:$1|Category|$1-chak fûn-lui}}",
+       "category_header": "\"$1\" fûn-lui tú ke ya̍p-mien",
+       "subcategories": "Chṳ́ fûn-lui",
+       "category-media-header": "\"$1\" fûn-lui tú ke mòi-thí",
+       "category-empty": "<em>Liá-chak fûn-lui muk-chhièn hàn-mò pâu-hàm ya̍p-mien fe̍t-chá mòi-thí vùn-khien.</em>",
+       "hidden-categories": "$1-chak yún-chhông fûn-lui",
+       "hidden-category-category": "Yún-chhông fûn-lui",
+       "category-subcat-count": "{{PLURAL:$2|Liá-chak fûn-lui yû hâ-poi yit-chak chṳ́ fûn-lui.|Liá-chak fûn-lui yû $2-chak chṳ́ fûn-lui, hâ-poi lie̍t-chhut yí $1-chak.}}",
        "category-subcat-count-limited": "邇隻分類有下背$1隻子分類。",
        "category-article-count": "{{PLURAL:$2|本分類有下背一隻頁面。|本分類有$2隻頁面,下背列出矣$1隻。}}",
        "category-article-count-limited": "邇隻分類有下背$1隻頁面。",
        "category-file-count": "{{PLURAL:$2|邇隻分類有下背一隻文件。|邇隻分類有$2隻文件,下背列出矣$1隻。}}",
        "category-file-count-limited": "邇隻分類有$1隻文件。",
-       "listingcontinuesabbrev": "",
+       "listingcontinuesabbrev": "sa",
        "index-category": "既索引嘅頁面",
-       "noindex-category": "還無索引嘅頁面",
+       "noindex-category": "Hàn-mò sok-yín ke ya̍p-mien",
        "broken-file-category": "含有損壞文件鏈接嘅頁面",
-       "about": "關於",
-       "article": "內容頁面",
-       "newwindow": "(在新視窗肚打開)",
-       "cancel": "取消",
-       "moredotdotdot": "還較多...",
-       "morenotlisted": "邇列表吂完成。",
+       "about": "kôan-yî",
+       "article": "Nui-yùng ya̍p- mien",
+       "newwindow": "(chhai sîn sṳ-chhûng tú tá-khôi)",
+       "cancel": "Chhí-sêu",
+       "moredotdotdot": "Hàn kha-tô...",
+       "morenotlisted": "Liá lie̍t-péu mâng vàn-sṳ̀n.",
        "mypage": "頁面",
-       "mytalk": "交流",
-       "anontalk": "本IP地址嘅交流",
-       "navigation": "導航",
-       "and": "&#32;撈",
-       "qbfind": "找尋",
-       "qbbrowse": "瀏覽",
-       "qbedit": "編寫",
-       "qbpageoptions": "頁面選項",
-       "qbmyoptions": "𠊎嘅頁面",
-       "faq": "常見問題解答",
-       "faqpage": "Project:常見問題解答",
-       "actions": "動作",
-       "namespaces": "名字空間",
-       "variants": "變換",
-       "navigation-heading": "導航菜單",
-       "errorpagetitle": "差錯",
-       "returnto": "轉頭到$1。",
-       "tagline": "從{{SITENAME}}來",
-       "help": "幫手",
-       "search": "搜尋",
-       "searchbutton": "搜尋",
-       "go": "入",
-       "searcharticle": "入",
-       "history": "頁面歷史",
-       "history_short": "歷史",
-       "updatedmarker": "亻厓上擺訪問以來嘅更新",
-       "printableversion": "做得印刷嘅版本",
-       "permalink": "固定連結",
-       "print": "印刷",
-       "view": "查看",
-       "edit": "編寫",
-       "create": "建立",
-       "editthispage": "編寫本頁",
-       "create-this-page": "建立本頁",
-       "delete": "刪除",
-       "deletethispage": "刪除本頁",
-       "undeletethispage": "取消刪除邇頁",
+       "mytalk": "Kâu-liù",
+       "anontalk": "Kâu-liù",
+       "navigation": "Thô-hòng",
+       "and": "&#32;lâu",
+       "qbfind": "Cháu-chhìm",
+       "qbbrowse": "Liù-lám",
+       "qbedit": "Phiên-siá",
+       "qbpageoptions": "Ya̍p-mien sién-hong",
+       "qbmyoptions": "Ngài-ke ya̍p-mien",
+       "faq": "Sòng-kien mun-thì kié-tap",
+       "faqpage": "Project:Sòng-kien mun-thì kié-tap",
+       "actions": "Thûng-chok",
+       "namespaces": "Miàng-sṳ khûng-kiên",
+       "variants": "Pien-von",
+       "navigation-heading": "Thô-hòng chhoi-tân",
+       "errorpagetitle": "Chhâ-chho",
+       "returnto": "Chón-thèu to $1.",
+       "tagline": "Chhiùng {{SITENAME}} lòi",
+       "help": "Pông-sú",
+       "search": "Sêu-chhìm",
+       "searchbutton": "Sêu-chhìm",
+       "go": "Ngi̍p",
+       "searcharticle": "Ngi̍p",
+       "history": "Ya̍p-mien li̍t-sṳ́",
+       "history_short": "Li̍t-sṳ́",
+       "updatedmarker": "ngài sông-pái fóng-mun yî-lòi ke kiên-sîn",
+       "printableversion": "Cho-tet yin-chho ke pán-pún",
+       "permalink": "Ku-thin lièn-kiet",
+       "print": "Yin-chho",
+       "view": "Chhà-khon",
+       "view-foreign": "Chhai $1 kiám-sṳ",
+       "edit": "Phiên-siá",
+       "create": "Kien-li̍p",
+       "create-local": "Sîn-chen pún-thi sot-mìn",
+       "editthispage": "Phiên-siá pún-ya̍p",
+       "create-this-page": "Kien-li̍p pún-ya̍p",
+       "delete": "San-chhù",
+       "deletethispage": "San-chhù pún-ya̍p",
+       "undeletethispage": "Chhí-sêu san-chhù liá-ya̍p.",
        "undelete_short": "恢復$1隻分删除个编寫",
        "viewdeleted_short": "查看$1項已刪除个修訂",
-       "protect": "保護",
-       "protect_change": "更改",
-       "protectthispage": "保護本頁",
+       "protect": "Pó-fu",
+       "protect_change": "Kiên-kói",
+       "protectthispage": "Pó-fu pún-ya̍p",
        "unprotect": "更改保護",
        "unprotectthispage": "更改本頁保護",
-       "newpage": "新頁面",
-       "talkpage": "討論本頁",
-       "talkpagelinktext": "交流",
-       "specialpage": "特殊頁面",
-       "personaltools": "私人工具",
-       "articlepage": "查看內容頁面",
-       "talk": "討論",
-       "views": "查看數",
+       "newpage": "Sîn ya̍p-mien",
+       "talkpage": "Thó-lun pún-ya̍p",
+       "talkpagelinktext": "kâu-liù",
+       "specialpage": "Thi̍t-sû ya̍p-mien",
+       "personaltools": "Sṳ̂-ngìn kûng-khí",
+       "articlepage": "Chhà-khon nui-yùng ya̍p-mien",
+       "talk": "Thó-lun",
+       "views": "Chhà-khon-sú",
        "toolbox": "Kûng-khí-siông",
        "userpage": "查看用戶頁面",
        "projectpage": "查看項目頁面",
-       "imagepage": "查看文件頁面",
-       "mediawikipage": "查看消息頁面",
-       "templatepage": "查看模板頁面",
-       "viewhelppage": "查看幫手頁面",
-       "categorypage": "查看分類頁面",
-       "viewtalkpage": "查看討論",
-       "otherlanguages": "其他語言",
-       "redirectedfrom": "(重定向自$1)",
-       "redirectpagesub": "重定向頁",
-       "lastmodifiedat": "邇隻頁面最近修訂於$1 $2。",
+       "imagepage": "Chhà-khon vùn-khien ya̍p-mien",
+       "mediawikipage": "Chhà-khon sêu-sit ya̍p-mien",
+       "templatepage": "Chhà-khon mù-pán ya̍p-mien",
+       "viewhelppage": "Chhà-khon pông-sú ya̍p-mien",
+       "categorypage": "Chhà-khon fûn-lui ya̍p-mien",
+       "viewtalkpage": "Chhà-khon thó-lun",
+       "otherlanguages": "Khì-thâ ngî-ngièn",
+       "redirectedfrom": "(Chhùng-thin-hiong chhṳ $1)",
+       "redirectpagesub": "Chhùng-thin-hiong ya̍p",
+       "redirectto": "Chhùng-thin-hiong to:",
+       "lastmodifiedat": "Liá-chak ya̍p-mien chui-khiûn siû-thin yî $1 $2.",
        "viewcount": "邇隻頁面已經分人瀏覽過$1次。",
-       "protectedpage": "受保護頁面",
-       "jumpto": "跳轉到:",
-       "jumptonavigation": "導航",
-       "jumptosearch": "搜尋",
+       "protectedpage": "Su pó-fu ya̍p-mien",
+       "jumpto": "Thiàu-chón to:",
+       "jumptonavigation": "thô-hòng",
+       "jumptosearch": "sêu-chhìm",
        "view-pool-error": "好抱歉,太多用戶嘗試緊瀏覽邇頁,使服務器超出負擔。請等多一刻再嘗試。\n\n$1",
        "pool-timeout": "等待鎖定超時",
        "pool-queuefull": "請求隊列满矣",
-       "pool-errorunknown": "毋知得嘅差錯",
-       "aboutsite": "關於 {{SITENAME}}",
-       "aboutpage": "Project:關於",
-       "copyright": "除非另有講明,否則本站內容都係以$1條款提供。",
-       "copyrightpage": "{{ns:project}}:版權信息",
-       "currentevents": "新聞動態",
-       "currentevents-url": "Project:新聞動態",
-       "disclaimers": "免責聲明",
-       "disclaimerpage": "Project:一般免責聲明",
-       "edithelp": "編寫幫手",
-       "mainpage": "頭頁",
-       "mainpage-description": "頭頁",
-       "policy-url": "Project:方針",
-       "portal": "社區主頁",
-       "portal-url": "Project:社區主頁",
-       "privacy": "隱私政策",
-       "privacypage": "Project:隱私政策",
-       "badaccess": "權限差錯",
-       "badaccess-group0": "系統毋准汝執行頭先講求嘅操作。",
+       "pool-errorunknown": "M̀ tî-tet ke chhâ-chho",
+       "aboutsite": "Kôan-yî {{SITENAME}}",
+       "aboutpage": "Project:Kôan-yî",
+       "copyright": "Chhù-fî nang-yû kóng-mìn, féu-chet pún-chhàm nui-yùng tû-he yî $1 thiàu-khóan thì-kiûng.",
+       "copyrightpage": "{{ns:project}}: Pán-khièn sin-sit",
+       "currentevents": "Sîn-vùn thûng-thai",
+       "currentevents-url": "Project:Sîn-vùn thûng-thai",
+       "disclaimers": "Miên-chit sâng-mìn",
+       "disclaimerpage": "Project:Yit-pân miên-chit sâng-mìn",
+       "edithelp": "Phiên-siá pông-sú",
+       "mainpage": "Thèu-ya̍p",
+       "mainpage-description": "Thèu-ya̍p",
+       "policy-url": "Project:Fông-chṳ̂m",
+       "portal": "Sa-khî chú-ya̍p",
+       "portal-url": "Project:Sa-khî chú-ya̍p",
+       "privacy": "Yún-sṳ̂ chṳn-chhet",
+       "privacypage": "Project:Yún-sṳ̂ chṳn-chhet",
+       "badaccess": "Khièn-han chhâ-chho",
+       "badaccess-group0": "Hì-thúng m̀ -chún ngì chṳp-hàng thèu-siên kóng-khiù ke chhâu-chok.",
        "badaccess-groups": "汝正先請求嘅操作單淨有{{PLURAL:$2|邇隻|邇兜}}用戶群組嘅用戶做得使用:$1",
-       "versionrequired": "愛有MediaWiki $1版",
+       "versionrequired": "Oi yû MediaWiki $1 pán",
        "versionrequiredtext": "愛有版本$1嘅MediaWiki正做得使用本頁。\n參詳[[Special:Version|版本頁面]]。",
-       "ok": "做得",
-       "retrievedfrom": "來自\"$1\"",
-       "youhavenewmessages": "汝有$1($2)。",
+       "ok": "Cho-tet",
+       "retrievedfrom": "Lòi chhṳ \"$1\"",
+       "youhavenewmessages": "Ngì yû $1 ($2)",
        "youhavenewmessagesfromusers": "汝有來自{{PLURAL:$3|另一位用戶|$3位用戶}}嘅$1($2)。",
        "youhavenewmessagesmanyusers": "汝有來自多位用戶嘅$1( $2 )。",
        "newmessageslinkplural": "{{PLURAL:$1|yit-thiàu sîn sêu-sit|999=sîn sêu-sit}}",
        "newmessagesdifflinkplural": "chui-khiun{{PLURAL:$1|kiên-kói|kiên-kói}}",
-       "youhavenewmessagesmulti": "汝在$1肚有新消息",
-       "editsection": "編寫",
-       "editold": "編寫",
-       "viewsourceold": "查看源碼",
-       "editlink": "編寫",
-       "viewsourcelink": "查看源碼",
-       "editsectionhint": "編寫章節: $1",
-       "toc": "目錄",
-       "showtoc": "展示",
-       "hidetoc": "隱藏",
-       "collapsible-collapse": "摺叠",
-       "collapsible-expand": "展開",
-       "thisisdeleted": "查看或者恢復$1?",
-       "viewdeleted": "查看$1?",
-       "restorelink": "$1隻分人刪除嘅版本",
-       "feedlinks": "訂閱:",
-       "feed-invalid": "無效嘅訂閱類型。",
+       "youhavenewmessagesmulti": "Ngì chhai $1-tú yû sîn sêu-sit",
+       "editsection": "phiên-siá",
+       "editold": "phiên-siá",
+       "viewsourceold": "chhà-khon ngièn-ma",
+       "editlink": "phiên-siá",
+       "viewsourcelink": "chhà-khon ngièn-ma",
+       "editsectionhint": "Phiên-siá chông-chiet: $1",
+       "toc": "Muk-liu̍k",
+       "showtoc": "Chán-sṳ",
+       "hidetoc": "yún-chhông",
+       "collapsible-collapse": "Chap-thia̍p",
+       "collapsible-expand": "Chán-khôi",
+       "thisisdeleted": "Chhà-khon fe̍t-chá fî-fu̍k $1?",
+       "viewdeleted": "Chhà-khon $1?",
+       "restorelink": "$1-chak fûn ngìn san-chhù ke pán-pún",
+       "feedlinks": "Thin-ye̍t:",
+       "feed-invalid": "Mò-háu ke thin-ye̍t lui-hîn.",
        "feed-unavailable": "毋提供聯合訂閱源",
-       "site-rss-feed": "$1嘅RSS訂閱",
-       "site-atom-feed": "$1嘅Atom訂閱",
-       "page-rss-feed": "“$1”嘅RSS訂閱",
-       "page-atom-feed": "“$1”嘅Atom訂閱",
-       "red-link-title": "$1(頁面還無存在)",
+       "site-rss-feed": "$1-ke RSS thin-ye̍t",
+       "site-atom-feed": "$1-ke Atom thin-ye̍t",
+       "page-rss-feed": "\"$1\"-ke RSS thin-ye̍t",
+       "page-atom-feed": "\"$1\" ke Atom thin-ye̍t",
+       "red-link-title": "$1 (ya̍p-mien hàn-mò chhùn-chhai)",
        "sort-descending": "降序",
        "sort-ascending": "升序",
-       "nstab-main": "頁面",
-       "nstab-user": "用戶頁面",
-       "nstab-media": "媒體頁面",
-       "nstab-special": "特殊頁面",
-       "nstab-project": "項目頁面",
-       "nstab-image": "文件",
-       "nstab-mediawiki": "信息",
-       "nstab-template": "模板",
-       "nstab-help": "幫手頁面",
-       "nstab-category": "分類",
-       "nosuchaction": "無邇條命令",
+       "nstab-main": "Ya̍p-mien",
+       "nstab-user": "Yung-fu ya̍p-mien",
+       "nstab-media": "Mòi-thí ya̍p-mien",
+       "nstab-special": "Thi̍t-sû ya̍p-mien",
+       "nstab-project": "Hong-muk ya̍p-mien",
+       "nstab-image": "Vùn-khien",
+       "nstab-mediawiki": "Sin-sit",
+       "nstab-template": "Mù-pán",
+       "nstab-help": "Pông-sú ya̍p-mien",
+       "nstab-category": "Fûn-lui",
+       "mainpage-nstab": "Thèu-ya̍p",
+       "nosuchaction": "Mò liá-thiàu miang-lin",
        "nosuchactiontext": "邇URL所指定嘅動作無效。\n汝可能打錯URL,或撳到錯誤鏈接。\n還可能係{{SITENAME}}所使用嘅軟件出現矣錯誤。",
        "nosuchspecialpage": "邇隻特殊页面毋存在",
        "nospecialpagetext": "<strong>汝請求嘅特殊頁面無效。</strong>\n\n[[Special:SpecialPages|{{int:specialpages}}]]肚列出矣所有效特殊頁面嘅列表。",
-       "error": "差錯",
-       "databaseerror": "數據庫差錯",
-       "databaseerror-text": "出現資料庫查詢錯誤。\n邇可能表示軟件肚存在錯誤。",
+       "error": "Chhâ-chho",
+       "databaseerror": "Sú-kí-khù chhâ-chho",
+       "databaseerror-text": "Chhut-hien chṳ̂-liau-khù chhà-sûn chho-ngu. \nLiá khó-nèn péu-sṳ ngiôn-khien tú chhùn-chhai chho-ngu.",
        "databaseerror-textcl": "chṳ̂-liau-ku chhà-chhìm chho-ngu",
        "databaseerror-query": "chhà-chhìm:$1",
        "databaseerror-function": "kûng-nèn:$1",
        "databaseerror-error": "chho-ngu:$1",
-       "laggedslavemode": "'''警告:'''頁面可能毋包含最近嘅更新。",
-       "readonly": "數據庫分人鎖定",
-       "enterlockreason": "請撳入禁止訪問原因, 包括估計重新開放嘅時間",
+       "laggedslavemode": "<strong>Kín-ko:</strong> Ya̍p-mien khó-nèn m̀ pâu-hàm chui-khiûn ke kiên-sîn.",
+       "readonly": "Sú-kí-khù fûn ngìn só-thin",
+       "enterlockreason": "Chhiáng khim-ngi̍p kim-chṳ́ fóng-mun ngièn-yîn, pâu-koat kû-kie chhùng-sîn khôi-piong ke sṳ̀-kiên",
        "readonlytext": "數據庫今下禁止輸入新內容撈更改,\n邇好有可能係由於數據庫維修緊,完成後就會恢復。\n\n管理員有下背嘅解釋:$1",
        "missing-article": "數據庫尋毋到文字“$1”$2。\n\n邇通常係由於點撳矣鏈向過期毋同或曆史頁面嘅鏈接,但原有修訂已分刪除所導致嘅。\n\n假使情況毋係恁樣,汝可能尋到矣軟件嘅一隻臭蟲(bug)。請錄下URL地址,並向[[Special:ListUsers/sysop|管理員]]報告。",
        "missingarticle-rev": "(修訂版本號#: $1)",
        "cannotdelete-title": "無辦法刪除頁面「$1」",
        "delete-hook-aborted": "刪除分勾仔中止。\n其毋曾提供任何解釋。",
        "no-null-revision": "mò-fap chhóng-kien \"$1\" ya̍p-mien sîn-ke khûng-pa̍k siû-thin",
-       "badtitle": "有錯嘅標題",
+       "badtitle": "Yû chho ke phiêu-thì",
        "badtitletext": "所請求頁面嘅標題是無效嘅、毋存在嘅,跨語言或跨wiki鏈接嘅標題有錯。其可能包含一隻或還較多做毋得用於標題嘅字符。",
        "perfcached": "下列係緩存數據,因此可能毋係最新嘅。最多{{PLURAL:$1|單淨有1嘅結果|$1嘅結果}}可用。",
        "perfcachedts": "下列係緩存數據,其最後更新時間係$1。單淨有{{PLURAL:$4|一嘅結果|$4嘅結果}}會畀顯示。",
        "querypage-no-updates": "當前禁止對邇頁面進行更新。\n邇位嘅數據將做毋得分立即重新整理。",
-       "viewsource": "查看源碼",
+       "viewsource": "Chhà-khon ngièn-ma",
        "viewsource-title": "查看$1嘅源代碼",
        "actionthrottled": "動作已經壓制",
        "actionthrottledtext": "基於反垃圾嘅考量,短時間內毋可以多次重複某操作,今下汝已經超過邇隻上限。\n請在數分鐘後再嘗試。",
        "protectedpagetext": "邇隻頁面已經分人保護以防止編輯或其他操作。",
        "viewsourcetext": "汝做得查看並複製本頁面嘅源碼:",
        "viewyourtext": "汝可以查看並複製'''汝對邇隻頁面作出編寫後'''嘅源代碼:",
-       "protectedinterface": "邇頁提供此wiki軟體嘅介面文字,其已畀保護以防止惡意修改。\n假使想修改所有wiki嘅翻譯,請到[//translatewiki.net/ translatewiki.net]上嘅MediaWiki本地化計畫。",
-       "editinginterface": "'''警告:'''汝今下編寫緊嘅頁面係用於提供軟件嘅界面文字。\n改變邇頁將影響其他在邇隻wiki上嘅用戶界面外觀。\n假使愛修改所有wiki嘅翻譯,請到[//translatewiki.net/ translatewiki.net]上嘅MediaWiki本地化計劃。",
+       "protectedinterface": "邇頁提供此wiki軟體嘅介面文字,其已畀保護以防止惡意修改。\n假使想修改所有wiki嘅翻譯,請到[https://translatewiki.net/ translatewiki.net]上嘅MediaWiki本地化計畫。",
+       "editinginterface": "'''警告:'''汝今下編寫緊嘅頁面係用於提供軟件嘅界面文字。\n改變邇頁將影響其他在邇隻wiki上嘅用戶界面外觀。\n假使愛修改所有wiki嘅翻譯,請到[https://translatewiki.net/ translatewiki.net]上嘅MediaWiki本地化計劃。",
        "cascadeprotected": "邇隻頁面已經畀保護,因為邇隻頁面被以下已標註\"聯鎖保護\"嘅{{PLURAL:$1|一個|多個}}畀保護頁面包含:\n$2",
        "namespaceprotected": "汝還無權限編輯'''$1'''名字空間嘅頁面。",
        "customcssprotected": "汝還無權限編輯邇隻CSS頁面,因為其包含矣其他用戶嘅個人設置。",
        "mycustomjsprotected": "汝無編輯邇頁JavaScript之權限。",
        "myprivateinfoprotected": "汝無權限編輯汝个個人信息。",
        "mypreferencesprotected": "汝無權限編輯汝个個人設定。",
-       "ns-specialprotected": "邇兜特殊頁面係毋做得編輯嘅。",
+       "ns-specialprotected": "Liá-têu thi̍t-sû ya̍p-mien he m̀ cho-tet phiên-si̍p ke.",
        "titleprotected": "邇隻標題已經分[[User:$1|$1]]保護來防止建立。理由係<em>$2</em>。",
        "filereadonlyerror": "無辦法修改文件「$1」因為文件庫「$2」處於唯讀模式。 !\n管理員鎖定其嘅解釋係:「$3」。",
        "invalidtitle-knownnamespace": "使用名字空間「$2」與文本「$3」嘅無效標題",
        "invalidtitle-unknownnamespace": "使用未知名字空間編號$1與文本“$2”嘅無效標題",
-       "exception-nologin": "還吂登入",
-       "exception-nologin-text": "汝愛[[Special:Userlogin|登入]]本wiki查看邇頁或者進行操作。",
+       "exception-nologin": "Hàn-mò tên-ngi̍p",
+       "exception-nologin-text": "Ngì oi [[Special:Userlogin|tên-ngi̍p]] pún wiki chhà-khon liá-ya̍p fe̍t-chá chin-hàng chhâu-chok.",
        "virus-badscanner": "損壞設定: 未知嘅病毒掃瞄器: ''$1''",
        "virus-scanfailed": "掃瞄失敗 (代碼 $1)",
-       "virus-unknownscanner": "還吂知嘅反病毒軟件:",
-       "logouttext": "'''汝今下既經登出。'''\n\n請注意一兜頁面可能還顯示汝係登入狀態,一直到汝清空汝嘅瀏覽器緩存為止。",
-       "welcomeuser": "歡迎,$1!",
+       "virus-unknownscanner": "hàn m̀-tî ke fán-phiang-thu̍k ngiôn-khien:",
+       "logouttext": "'''Ngì kîm-hâ ki-kîn tên-chhut.'''\n\nChhiáng chu-yi yit-têu ya̍p-mien khó-nèn hàn hién-sṳ ngì he tên-ngi̍p chhong-thai, yit-chhṳ̍t to ngì chhîn-khûng ngì ke liù-lám-hi fòn-chhùn vì-chṳ́.",
+       "welcomeuser": "Fôn-ngiàng, $1!",
        "welcomecreation-msg": "汝嘅賬號已經建立。\n莫添忘訖設置[[Special:Preferences|{{SITENAME}}嘅個人參數]]。",
-       "yourname": "用戶名:",
-       "userlogin-yourname": "用戶名",
-       "userlogin-yourname-ph": "輸入汝嘅用戶名",
+       "yourname": "Yung-fu-miàng:",
+       "userlogin-yourname": "Yung-fu-miàng:",
+       "userlogin-yourname-ph": "Sû-ngi̍p ngì ke Yung-fu-miàng:",
        "createacct-another-username-ph": "輸入用戶名:",
-       "yourpassword": "密碼:",
-       "userlogin-yourpassword": "密碼",
-       "userlogin-yourpassword-ph": "輸入汝嘅密碼",
-       "createacct-yourpassword-ph": "輸入汝嘅密碼",
-       "yourpasswordagain": "再一擺輸入密碼:",
-       "createacct-yourpasswordagain": "確認密碼",
-       "createacct-yourpasswordagain-ph": "再一擺輸入密碼",
-       "remembermypassword": "在邇隻瀏覽器上記下𠊎嘅登入狀態(最長$1日)",
-       "userlogin-remembermypassword": "保持𠊎嘅登入狀態",
+       "yourpassword": "Me̍t-ma:",
+       "userlogin-yourpassword": "Me̍t-ma",
+       "userlogin-yourpassword-ph": "Sû-ngi̍p ngì-ke me̍t-ma",
+       "createacct-yourpassword-ph": "Sû-ngi̍p ngì-ke me̍t-ma",
+       "yourpasswordagain": "Chai yit-pái sû-ngi̍p me̍t-ma:",
+       "createacct-yourpasswordagain": "Khok-ngin me̍t-ma",
+       "createacct-yourpasswordagain-ph": "Chai yit-pái sû-ngi̍p me̍t-ma",
+       "remembermypassword": "Chhai liá-chak liù-lám-hi sông ki-hâ ngài-ke tên-ngi̍p chhong-thai (chui-chhòng $1-ngit)",
+       "userlogin-remembermypassword": "Pó-chhṳ̀ ngài-ke tên-ngi̍p chhong-thai",
        "userlogin-signwithsecure": "使用安全連線",
-       "yourdomainname": "汝嘅域名:",
+       "yourdomainname": "Ngì ke vet-miàng:",
        "password-change-forbidden": "汝做毋得更改本wiki上嘅密碼。",
-       "externaldberror": "邇可能係由於驗證數據庫差錯或者汝分系統禁止更新汝嘅外部賬號。",
-       "login": "登入",
-       "nav-login-createaccount": "登入/建立新帳號",
-       "userlogin": "登入/建立新帳號",
-       "userloginnocreate": "登入",
-       "logout": "登出",
-       "userlogout": "登出",
-       "notloggedin": "還吂登入",
-       "userlogin-noaccount": "還無帳戶係無?",
-       "userlogin-joinproject": "參與 {{SITENAME}}",
-       "nologin": "還無帳號係無?$1。",
-       "nologinlink": "建立帳號",
-       "createaccount": "建立帳號",
-       "gotaccount": "已經擁有帳號係無?$1。",
-       "gotaccountlink": "登入",
-       "userlogin-resetlink": "毋記得汝嘅登入信息?",
-       "userlogin-resetpassword-link": "添忘訖汝嘅密碼?",
+       "externaldberror": "Liá khó-nèn he yù-yî ngiam-chṳn sú-kí-khù chhâ-chho fe̍t-chá ngì fûn hì-thúng kim-chṳ́ kiên-sîn ngì ke ngoi-phu chòng-ho.",
+       "login": "Tên-ngi̍p",
+       "nav-login-createaccount": "Tên-ngi̍p / kien-li̍p sîn chong-ho",
+       "userlogin": "Tên-ngi̍p / kien-li̍p sîn chong-ho",
+       "userloginnocreate": "Tên-ngi̍p",
+       "logout": "Tên-chhut",
+       "userlogout": "Tên-chhut",
+       "notloggedin": "Hàn-mò tên-ngi̍p",
+       "userlogin-noaccount": "Hàn-mò chong-fu he mò?",
+       "userlogin-joinproject": "Chhâm-yi  {{SITENAME}}",
+       "nologin": "Hàn-mò chong-ho he-mò? $1.",
+       "nologinlink": "Kien-li̍p chong-ho",
+       "createaccount": "Kien-li̍p chong-ho",
+       "gotaccount": "Yí-kîn yúng-yû chong-ho he-mò? $1.",
+       "gotaccountlink": "Tên-ngi̍p",
+       "userlogin-resetlink": "M̀-ki-tet ngì-ke tên-ngi̍p sin-sit?",
+       "userlogin-resetpassword-link": "Thiâm mong-ki ngì ke me̍t-ma?",
+       "userlogin-helplink2": "Tên-ngi̍p hia̍p-chhu",
        "userlogin-loggedin": "汝已作為{{GENDER:$1|$1}}登錄。\n利用以下表單以作為另一賬戶登錄。",
-       "createacct-emailrequired": "電郵地址:",
-       "createacct-emailoptional": "電郵地址(可選)",
-       "createacct-email-ph": "設置電郵地址",
+       "createacct-emailrequired": "Thien-yù thi-chí:",
+       "createacct-emailoptional": "Thien-yù thi-chí (khó-sién)",
+       "createacct-email-ph": "Sat-chì thien-yù thi-chí",
        "createacct-another-email-ph": "輸入電郵地址",
-       "createaccountmail": "使用一隻臨時嘅隨機密碼,並將其發送到指定嘅電子郵件地址",
+       "createaccountmail": "Sṳ́-yung yit-chak lìm-sṳ̀ ke sùi-kî me̍t-ma, pin chiông khì fat-sung to chṳ́-thin ke thien-chṳ́ yù-khien thi-chí",
        "createacct-realname": "實名(可選)",
-       "createaccountreason": "原因:",
-       "createacct-reason": "原因",
+       "createaccountreason": "Ngièn-yîn:",
+       "createacct-reason": "Ngièn-yîn:",
        "createacct-reason-ph": "汝做麽嘅愛創建另一隻帳號",
-       "createacct-submit": "建立帳號",
-       "createacct-benefit-heading": "{{SITENAME}}是由撈您共樣嘅人建立。",
-       "createacct-benefit-body1": "$1次編寫",
-       "createacct-benefit-body2": "$1",
-       "createacct-benefit-body3": "近期$1隻貢獻人",
-       "badretype": "汝所撳入嘅密碼並毋相同",
+       "createacct-submit": "Kien-li̍p chong-ho",
+       "createacct-benefit-heading": "{{SITENAME}} he yù lâu Ngì khiung-ngióng ke ngìn kien-li̍p.",
+       "createacct-benefit-body1": "$1-chhṳ phiên-siá",
+       "createacct-benefit-body2": "$1-ya̍p",
+       "createacct-benefit-body3": "khiûn-khì $1-chak kung-hien-ngìn",
+       "badretype": "Ngì só khim-ngi̍p ke me̍t-ma pin m̀  siông-thùng.",
        "userexists": "汝所填入嘅用戶名稱已經存在。\n請另選一隻名稱。",
-       "loginerror": "登入差錯",
-       "createacct-error": "帳戶建立差錯",
-       "createaccounterror": "無辦法建立帳號:$1",
+       "loginerror": "Tên-ngi̍p chhâ-chho",
+       "createacct-error": "Chong-fu kien-li̍p chhâ-chho",
+       "createaccounterror": "Mò phan-fap kien-li̍p chong-ho: $1",
        "nocookiesnew": "本用戶賬號已分建立,但係汝登入失敗。{{SITENAME}}使用cookie登入。汝已停用cookie。請啓用cookie,之後使用汝嘅新用戶名和密碼登入。",
        "nocookieslogin": "{{SITENAME}}用cookie登入。汝已停用cookie。請啓用cookie後再試一擺。",
        "nocookiesfornew": "邇隻用戶嘅賬戶未建立,亻厓兜無法度確認其嘅來源。\n請確定汝已經開啟cookies,重新載入後再試一擺。",
        "noname": "汝還吂輸入一隻有效嘅用戶名。",
-       "loginsuccesstitle": "登入成功",
-       "loginsuccess": "汝今下以\"$1\"嘅身份在{{SITENAME}}登入。",
-       "nosuchuser": "尋毋到用戶 \"$1\"。\n用戶名稱係有大小寫區分嘅。\n檢查汝嘅拼寫,或者用下面嘅表格[[Special:CreateAccount|建立一隻新賬號]]。",
+       "loginsuccesstitle": "Yí-kîn tên-ngi̍p",
+       "loginsuccess": "Ngì kîm-hâ yî \"$1\"-ke sṳ̂n-fun chhai {{SITENAME}} tên-ngi̍p.",
+       "nosuchuser": "Chhìm m̀ -to yung-fu \"$1\". \nYung-fu miàng-chhṳ̂n he yû thai-séu siá khî-fûn ke . \nKiám-chhà ngì ke piâng-siá, fe̍t-chá yung hâ-mien ke péu-kak [[Special:CreateAccount|kien-li̍p yit-chak sîn chòng-ho]].",
        "nosuchusershort": "無有喊做“$1”嘅用戶。請檢查汝輸入嘅文字係毋係有差錯。",
        "nouserspecified": "汝愛指定一隻用戶名。",
        "login-userblocked": "邇隻用戶已分封鎖。毋做得登入。",
        "passwordtooshort": "汝嘅密碼毋得少過$1隻字符。",
        "password-name-match": "汝嘅密碼必須撈汝嘅用戶名毋相同。",
        "password-login-forbidden": "邇隻用戶名稱及密碼嘅使用係分禁止嘅。",
-       "mailmypassword": "重設密碼",
+       "mailmypassword": "Chhùng-sat me̍t-ma",
        "passwordremindertitle": "{{SITENAME}}嘅新臨時密碼",
        "passwordremindertext": "有人(可能係汝本人,來自IP地址$1)已請求{{SITENAME}}嘅新密碼 ($4)。\n用戶\"$2\"嘅一隻新臨時密碼今下已分設定好為\"$3\"。\n係話邇隻動作係汝所指示嘅,汝就愛立即登入並選擇一隻新嘅密碼。\n汝嘅臨時密碼將於{{PLURAL:$5|一|$5}}日之內過期。\n\n假使係其他人發出邇隻請求,或者汝已經回想起汝嘅密碼,故所毋準備改變其,\n汝可以忽略略邇條消息並且繼續使用汝嘅舊密碼。",
        "noemail": "用戶“$1”無登記電子郵件地址。",
        "noemailcreate": "汝愛提供一隻有效嘅電子郵件地址。",
        "passwordsent": "用戶“$1”嘅新密碼已經寄到所登記嘅電子郵件地址。\n請在收到後再登入。",
        "blocked-mailpassword": "汝嘅IP地址處於查封狀態故所毋允許編輯,為矣安全起見,密碼恢復功能已分禁用。",
-       "eauthentsent": "一封確認信已經發送到汝設定嘅電郵地址。\n在任何其他郵件發到賬戶之前,汝必須首先照邇封信嘅指示,確認介隻賬戶確實係汝嘅。",
+       "eauthentsent": "Yit-fûng khok-ngin sin yí-kîn fat-sung to ngì sat-thin ke thien-yù thi-chí. Chhai ngim-hò khì-thâ yù-khien fat-to chòng-fu chṳ̂-chhièn, ngì pit-sî sú-siên cheu liá fûng sin ke chṳ́-sṳ, khok-ngin kie-chak chòng-fu khok-sṳ̍t he ngì-ke.",
        "throttled-mailpassword": "密碼提醒已經在最近$1小時內發送。\n為防止濫用,限定在$1小時內僅發送一次密碼提醒。",
        "mailerror": "發送郵件出差錯:$1",
        "acct_creation_throttle_hit": "在邇隻wiki上係話訪客利用汝个IP地址在昨天創建矣$1個賬戶,係在邇段時間肚的上限。\n結果利用這個IP地址个訪客在邇段時間中無辦法創建更多个賬戶。",
-       "emailauthenticated": "汝嘅電郵地址已經於$2 $3確認。",
+       "emailauthenticated": "Ngì ke thien-yù thi-chí yí-kîn yî $2 $3 khok-ngin.",
        "emailnotauthenticated": "汝个電郵位址還㬟確認。\n將收毋到以下功能相關个電郵。",
        "noemailprefs": "在嘅嘅偏好設定肚指定一隻電子郵件地址來使用邇隻功能。",
        "emailconfirmlink": "確認汝嘅郵箱地址",
        "createaccount-text": "有人在{{SITENAME}}肚利用汝嘅電郵創建矣一隻喊做 \"$2\" 嘅新賬戶($4),密碼係 \"$3\" 。汝應該立即登入並更改密碼。\n\n如果該賬戶建立錯誤嘅話,汝可以忽略邇條訊息。",
        "login-throttled": "汝已經嘗試多次登入動作。\n請等$1後再試。",
        "login-abort-generic": "登入錯誤 - 中止",
-       "loginlanguagelabel": "語言:$1",
+       "loginlanguagelabel": "Ngî-ngièn: $1",
        "suspicious-userlogout": "汝登出嘅要求已經分拒絕,因為其可能係由已損壞嘅瀏覽器或者緩存代理傳送。",
+       "pt-login": "Tên-ngi̍p",
+       "pt-login-button": "Tên-ngi̍p",
+       "pt-createaccount": "Kien-li̍p chong-ho",
+       "pt-userlogout": "Tên-chhut",
        "php-mail-error-unknown": "在PHP嘅mail()參數肚嘅未知錯誤",
        "user-mail-no-addy": "嘗試毋帶電郵地址發送電郵。",
        "user-mail-no-body": "試圖發送空嘅或主體毋合理短嘅電子郵件。",
        "changepassword": "更改密碼",
-       "resetpass_announce": "汝係通過一隻發送到電子郵件肚嘅臨時代碼登入的。愛完成登入,汝必須在邇位設定一隻新密碼:",
-       "resetpass_text": "<!-- 在邇處加入文字 -->",
+       "resetpass_announce": "Oi vàn-sṳ̀n tên-ngi̍p, ngì pit-sî sat-thin yit-chak sîn me̍t-ma:",
+       "resetpass_text": "<!-- Chhai liá-chhú kâ-ngi̍p vùn-sṳ -->",
        "resetpass_header": "更改賬戶密碼",
-       "oldpassword": "舊密碼:",
-       "newpassword": "舊密碼:",
-       "retypenew": "再一擺輸入密碼:",
-       "resetpass_submit": "設定密碼並登入",
-       "changepassword-success": "汝成功更改矣汝嘅密碼!\n今下為汝登入緊...",
+       "oldpassword": "Khiu me̍t-ma:",
+       "newpassword": "Sîn me̍t-ma:",
+       "retypenew": "Chai yit-pái sû-ngi̍p sîn me̍t-ma:",
+       "resetpass_submit": "Sat-thin me̍t-ma pin tên-ngi̍p",
+       "changepassword-success": "Ngì yí-kîn kiên-kói ngì-ke me̍t-ma! \nKîm-hâ vì ngì tên-ngi̍p kín...",
        "resetpass_forbidden": "無辦法更改密碼",
        "resetpass-no-info": "汝必須登入後直接進入邇隻頁面。",
-       "resetpass-submit-loggedin": "更改密碼",
-       "resetpass-submit-cancel": "取消",
+       "resetpass-submit-loggedin": "Kiên-kói me̍t-ma",
+       "resetpass-submit-cancel": "Chhí-sêu",
        "resetpass-wrong-oldpass": "無效嘅臨時或現有嘅密碼。\n汝可能已成功地更改矣汝嘅密碼,或者已經請求一隻新嘅臨時密碼。",
        "resetpass-temp-password": "臨時密碼:",
        "resetpass-abort-generic": "擴充插件已中止矣更改密碼操作。",
-       "passwordreset": "重設密碼",
+       "passwordreset": "Chhùng-sat me̍t-ma",
        "passwordreset-disabled": "邇隻維基上已禁止矣重設密碼。",
        "passwordreset-emaildisabled": "電子郵件功能在此 wiki 上已禁用。",
-       "passwordreset-username": "用戶名:",
-       "passwordreset-domain": "域名:",
+       "passwordreset-username": "Yung-fu-miàng:",
+       "passwordreset-domain": "Vet-miàng:",
        "passwordreset-capture": "查看生成嘅電子郵件係無?",
        "passwordreset-capture-help": "係講汝選中邇隻框,電子郵件(包括臨時密碼)將顯示,並發送分用戶。",
-       "passwordreset-email": "電郵地址:",
+       "passwordreset-email": "Thien-yù thi-chí:",
        "passwordreset-emailtitle": "在{{SITENAME}}上嘅詳細信息",
        "passwordreset-emailsentemail": "密碼重置電子郵件已發送。",
        "changeemail": "更改電子郵件地址",
        "changeemail-no-info": "汝必須登入後直接進入邇隻頁面。",
        "changeemail-oldemail": "當前電郵地址:",
        "changeemail-newemail": "新嘅電郵地址:",
-       "changeemail-none": "(無)",
-       "changeemail-submit": "更改電郵地址",
-       "bold_sample": "粗體文字",
-       "bold_tip": "粗體文字",
-       "italic_sample": "斜體文字",
-       "italic_tip": "斜體文字",
-       "link_sample": "鏈接標題",
-       "link_tip": "內部鏈接",
-       "extlink_sample": "http://www.example.com 鏈接標題",
-       "extlink_tip": "外部鏈接(加前綴 http://)",
-       "headline_sample": "大標題文字",
-       "headline_tip": "2級標題文字",
-       "nowiki_sample": "在邇插入非格式文字",
-       "nowiki_tip": "插入非格式文字",
-       "image_tip": "插入文件",
-       "media_tip": "文件鏈接",
-       "sig_tip": "帶有時間嘅簽名",
-       "hr_tip": "水平線 (小心使用)",
-       "summary": "摘要:",
+       "changeemail-none": "(mò)",
+       "changeemail-submit": "Kiên-kói thien-yù thi-chí",
+       "bold_sample": "Chhû-thí vùn-sṳ",
+       "bold_tip": "Chhû-thí vùn-sṳ",
+       "italic_sample": "Chhià-thí vùn-sṳ",
+       "italic_tip": "Chhià-thí vùn-sṳ",
+       "link_sample": "Lièn-chiap phiêu-thì",
+       "link_tip": "Nui-phu lièn-chiap",
+       "extlink_sample": "http://www.example.com lièn-chiap phiêu-thì",
+       "extlink_tip": "Ngoi-phu lièn-chiap (kâ chhièn-tot http://)",
+       "headline_sample": "Thai phiêu-thì vùn-sṳ",
+       "headline_tip": "2-kip phiêu-thì vùn-sṳ",
+       "nowiki_sample": "Chhai liá chhap-ngi̍p fî kak-sṳt vùn-sṳ",
+       "nowiki_tip": "Chhap-ngi̍p fî kak-sṳt vùn-sṳ",
+       "image_tip": "Chhap-ngi̍p vùn-khien",
+       "media_tip": "Vùn-khien lièn-chiap",
+       "sig_tip": "Tai yû sṳ̀-kiên ke chhiâm-miàng",
+       "hr_tip": "Súi-phìn sien  (séu-sîm sṳ́-yung)",
+       "summary": "Chak-yeu:",
        "subject": "標題:",
-       "minoredit": "邇係一隻細微修改",
-       "watchthis": "監視本頁",
-       "savearticle": "保存本頁",
+       "minoredit": "Liá-he yit-chak se-mì siû-kói",
+       "watchthis": "Kâm-sṳ pún-ya̍p",
+       "savearticle": "Pó-chhùn pún-ya̍p",
        "preview": "預覽",
-       "showpreview": "展示預覽",
-       "showdiff": "展示差別",
-       "anoneditwarning": "'''警告:'''汝還吂登入。\n汝嘅IP地址將記錄在邇頁嘅編寫歷史肚。",
+       "showpreview": "Chán-sṳ yi-lám",
+       "showdiff": "Chán-sṳ chhâ-phe̍t",
+       "anoneditwarning": "<strong>Kín-ko : </strong>Ngì hàn-m̀ tên-ngi̍p. Ngì ke IP thi-chí chiông ki-liu̍k chhai liá-ya̍p ke phiên-siá li̍t-sṳ́ tú. Ká-sṳ́ ngì  <strong>[$1 tên-ngi̍p]</strong> fe̍t  <strong>[$2 kien-li̍p chong-ho]</strong>, ngì ke phiên-si̍p chiông-fi yî ngì ke sṳ́-yung-chá miàng-chhṳ̂n phiêu-sṳ, yúng-yû khì-thâ yù-tiám.",
        "anonpreviewwarning": "“警告:汝還吂登入。汝嘅IP地址將會記錄在邇頁嘅編輯歷史中”",
        "missingsummary": "'''提示:''' 汝無提供一隻編寫摘要。假使汝再次單擊「{{int:savearticle}}」,汝嘅編寫將毋帶編寫摘要保存。",
        "missingcommenttext": "請在下背輸入評論。",
        "nosuchsectiontitle": "Mò-yû liá-ke thon-lo̍k",
        "nosuchsectiontext": "Ngì sòng-chhṳ phiên-cho ke thon-lo̍k pin-put chhùn-chhai.",
        "loginreqtitle": "愛登入",
-       "loginreqlink": "登入",
+       "loginreqlink": "tên-ngi̍p",
        "loginreqpagetext": "汝必須$1正做得查看其他頁面。",
        "accmailtitle": "密碼已經寄出",
        "accmailtext": "'$1' ke pi-me̍t yí-kîn ki-kî to $2.",
-       "newarticle": "(新)",
-       "newarticletext": "汝入到矣一隻還吂建立嘅頁面。\n愛建立本頁面,請在下面嘅編寫框肚輸入內容(詳情參詳[$1 幫手])。\n係講汝係毋小心來到本頁面,直接點擊汝嘅瀏覽器肚嘅“轉頭”撳掣轉頭。",
+       "newarticle": "(Sîn)",
+       "newarticletext": "Ngì ngi̍p-to yí yit-chak hàn-mò kien-li̍p ke ya̍p-mien. \nOi kien-li̍p pún ya̍p-mien, chhiáng chhai hâ-mien ke phiên-siá khiông tú sû-ngi̍p nui-yùng (siòng-chhìn chhâm-siòng [$1 pông-sú]). \nHe-kóng ngì he-m̀ séu-sîm lòi-to pún ya̍p-mien, chhṳ̍t-chiap tiám-kit ngì-ke liù-lám-hi tú ke  <strong>chón-thèu </strong> khim chhe̍t chón-thèu.",
        "anontalkpagetext": "---- ''Liá-he yit-ke hàn-mò kien-li̍p chong-ho ke ngia̍k-miàng yung-fu ke tui-fa-hong. Só-yî chṳ́-nèn yung IP thi-tiám lòi lâu kí lièn-lo̍k. Ke-IP thi-tiám khó-nèn yù-chhai kí-miàng yung-fu khiung-hióng. Kó-yèn ngì-he yit-miàng ngia̍k-miàng yung-fu ngin-vì pún-hong song ke phìn-lî kiên ngì mò-kôan, chhiáng [[Special:UserLogin|Chhóng-kien sîn chong-ho fe̍t-chá Tên-ngi̍p]] khó-yî phit-miên lòi-yì khì-thâ ngia̍k-miàng yung-fu ke fun-lon.''",
-       "noarticletext": "邇頁當前無內容,汝做得在其他頁[[Special:Search/{{PAGENAME}}|搜尋邇頁標題]],\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 搜尋有關日誌],\n或[{{fullurl:{{FULLPAGENAME}}|action=edit}} 編寫邇頁]</span>。",
+       "noarticletext": "Liá-ya̍p tông-chhièn mò nui-yùng, ngì cho-tet chhai khì-thâ [[Special:Search/{{PAGENAME}}|sêu-chhìm liá-ya̍p phiêu-thì]], <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} sêu-chhìm yû-kôan ngit-chì] fe̍t [{{fullurl:{{FULLPAGENAME}}|action=edit}} phiên-siá liá-ya̍p]</span>.",
        "noarticletext-nopermission": "邇頁當前無內容。\n汝做得在其它頁[[Special:Search/{{PAGENAME}}|搜尋邇頁標題]],或者<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 搜尋有關日誌]</span>,但汝無權限建立邇頁。",
        "userpage-userdoesnotexist": "用戶帳號“$1:還吂註冊。\n請在建立/編寫邇隻頁面前先檢查一下。",
        "clearyourcache": "'''Chu-yi:''' Chhai tú-chhùn yî-heu, ngì pit-sî khoai chhái-chhí chhîn-chhù hi-khí chhòi-nèn khon-tó chok-chhut ke kói-pien. '''Mozilla / Firefox / Safari:''' on-tén ''Shift'' chai tiám-kit '' Chhùng-sîn chṳ́n-lî ''(fe̍t-chá on-hâ ''Ctrl-Shift-R'', chhai Phìn-kó Mac song on-hâ ''Cmd-Shift-R''); '''IE:''' on-tén ''Ctrl'' chai tiám-kit ''Chhùng-sîn chṳ́n-lî'', fe̍t-he on-hâ ''Ctrl-F5'';'''Konqueror:''' chak  sî-yeu tiám-kit ''Chhùng-sîn chṳ́n-lî''; '''Opera:''' yung-fu sî-yeu chhai ''kûng-khí-sat-thin'' chûng vàn-cháng-thi chhîn-chhù ke khoai-chhí.",
        "usercsspreview": "'''Chu-yi ngì chak-he chhai yi-liau ngì ke-ngìn CSS, hàn-mò tú-chhùn!'''",
        "userjspreview": "'''記緊汝單單係在測試/預覽汝嘅用戶JavaScript。'''\n'''還吂保存!'''",
        "userinvalidcssjstitle": "'''警告:''' 毋存在外皮“$1”。\n注意自定嘅.css撈.js頁愛使用小寫標題,例如,{{ns:user}}:Foo/vector.css撈 {{ns:user}}:Foo/Vector.css毋同。",
-       "updated": "(已經更新)",
-       "note": "'''注意:'''",
+       "updated": "(Yí-kîn kiên-sîn)",
+       "note": "<strong>Chu-yi:</strong>",
        "previewnote": "'''請記到邇單淨係預覽。'''\n汝嘅更改還吂保存!",
        "previewconflict": "邇隻預覽展示矣上片文字編寫區肚嘅內容。其將在汝選擇保存後出現。",
        "session_fail_preview": "'''好抱歉!由於部份數據遺失,𠊎兜無辦法處理汝嘅編寫。'''\n請試多一擺。\n係講還係失敗,請[[Special:UserLogout|登出]]後重新登入。",
        "session_fail_preview_html": "'''Chṳ̂n tui-put-hí! Phu-fun chṳ̂-liau yí-kîn yì-sṳt, mò-fap chhú-lî ngì-ke phiên-siá.'''\n\n'''Kó-yèn liá-ke phiên-siá ko-chhàng mò-yû mun-thì, chhiáng chai-chhṳ yit-chhṳ. Yìn-yèn yû mun-thì, chhiáng tên-chhut heu chhùng-sîn tên-ngi̍p yit-chhṳ.'''",
-       "editing": "編寫 $1",
-       "creating": "創建 $1",
-       "editingsection": "編寫 $1 (段落)",
+       "editing": "Phiên-siá $1",
+       "creating": "Chhóng-kien $1",
+       "editingsection": "Phiên-siá $1 (thon-lo̍k)",
        "editingcomment": "Chang-chhai phiên-siá $1 (phìn-lun)",
-       "editconflict": "編寫衝突:$1",
+       "editconflict": "Phiên-siá chhûng-thu̍t: $1",
        "explainconflict": "有人在汝開始編寫後更改矣頁面。\n上片嘅文字框內展示嘅是當前本頁嘅內容。\n汝所做嘅修改展示在下背嘅文字框肚。\n汝應該將汝所做嘅修改加入現有嘅內容肚。\n'''單淨'''在上片文字框肚嘅內容會在汝點擊「{{int:savearticle}}」後分保存。",
-       "yourtext": "汝嘅文字",
-       "storedversion": "已保存嘅修訂版本",
+       "yourtext": "Ngì-ke vùn-sṳ",
+       "storedversion": "Yí pó-chhùn ke siû-thin pán-pún",
        "nonunicodebrowser": "'''警告: 汝嘅瀏覽器毋兼容Unicode編碼。'''邇位有一隻工作區將使汝做得安全編寫頁面: 非ASCII字符將以十六進製編碼模式出現在編輯框肚。",
        "editingold": "'''警告:汝在編輯中嘅係本頁嘅舊版本。'''\n係講汝保存其嘅話,在本版本之後嘅任何更改都會遺失。",
-       "yourdiff": "差別",
+       "yourdiff": "Chhâ-phe̍t",
        "copyrightwarning": "Chhiáng chu-yi ngì tui {{SITENAME}} ke só-yû kung-hien tû pûn-ngìn ngin-vì he chhai $2-hâ fat-phu, chhiáng chhà-khon chhai $1-ke se-chiet. Kó-yèn ngì chhin-mò hî-mong ngì-ke vùn-sṳ pûn-ngìn ngim-yi siù-chho lâu chai san-pu, chhiáng mò-yeu thì-kâu.<br /> Ngì thùng-sṳ̀ ya-yeu hiong Wikimedia pó-chṳn ngì só thì-kâu ke nui-yùng he chhṳ-kí só chok, fe̍t-chá lòi-chhṳ yit-ke mò-su pán-khièn pó-fu fe̍t-he siông-thùng chhṳ-yù ke lòi-ngièn. '''Mò-yeu chhai hàn-mò su-khièn ke chhìn-khóng-hâ fat-péu!'''<br />",
        "copyrightwarning2": "請注意汝對{{SITENAME}}嘅所有貢獻\n都可能分其他貢獻人編寫、修改或刪除。\n係講汝毋希望您嘅文字分任意修改撈再散佈,請毋好提交。<br />\n汝同時也愛向𠊎兜保證汝所提交嘅內容係自家所作,或得自一隻毋受版權保護或相似自由嘅來源(參閱$1的細節)。\n'''毋好在未獲授權嘅情況下發表!'''",
        "longpageerror": "'''Chho-ngu: Ngì só thì-kâu ke vùn-sṳ chhòng-thu yû $1KB, liá thai-yî $2KB ke chui-thai chhṳ̍t, ke-vùn-chông put-nèn pûn tú-chhùn.'''",
        "protectedpagewarning": "'''Kín-ko: Pún-chông yí-kîn pûn pó-fu, chṳ́-yû yúng-yû Kón-lî-yèn hí-khó-khièn ke yung-fu chhòi-nèn siù-chho.'''",
        "semiprotectedpagewarning": "'''Chu-yi:''' Pún vùn-chông pûn só-thin, tên-ki ke yung-fu hí-khó phiên-siá.",
        "cascadeprotectedwarning": "'''警告:'''本頁已經分保護,單淨係擁有管理員權限嘅用戶正做得修改,因為本頁已分下背連鎖保護嘅{{PLURAL:$1|一隻|多隻}}頁面所包含:",
-       "templatesused": "邇頁面包含下背{{PLURAL:$1|模板|模板}}:",
+       "templatesused": "Liá ya̍p-mien pâu-hàm hâ-poi {{PLURAL:$1|Mù-pán|Mù-pán}}:",
        "templatesusedpreview": "Chhṳ́-chhṳ yi-siên chûng sṳ́-yung ke mù-pán yû:",
        "templatesusedsection": "Chhai liá-ke thon-lo̍k song sṳ́-yung ke mù-pán yû:",
-       "template-protected": "(保護)",
-       "template-semiprotected": "(半保護)",
-       "hiddencategories": "邇頁屬於$1隻隱藏分類嘅成員:",
+       "template-protected": "(Pó-fu)",
+       "template-semiprotected": "(Pan pó-fu)",
+       "hiddencategories": "Liá-ya̍p su̍k-yî $1-chak yún-chhông fûn-lui ke sṳ̀n-yèn:",
        "edittools": "<!-- 邇肚嘅文字將分展示在編寫撈上傳表單以下。 -->\n<div id=\"editpage-specialchars\" class=\"plainlinks edittools-version-test003\" style=\"margin-top: 15px; border-width: 1px; border-style: solid; border-color: #aaaaaa; padding: 2px;\"> <span id=\"edittools_main\">'''Insert:''' <charinsert>– — … ‘ “ ’ ” ° ″ ′ ≈ ≠ ≤ ≥ ± − × ÷ ← → · § </charinsert></span><span id=\"edittools_name\">&nbsp;&nbsp;'''Sign your username:''' <charinsert>--~~&#126;~</charinsert> <small>(on [[Help:Talk pages|talk pages]])</small></span> ---- <small id=\"edittools_newsectionshere\"><span id=\"edittools_hide_for_script_test\"><span id=\"edittools_wikimarkup\">'''Wiki markup:''' <charinsert><nowiki>{{</nowiki>+<nowiki>}}</nowiki> </charinsert> &nbsp; <charinsert><nowiki>{{{</nowiki>+<nowiki>}}}</nowiki> </charinsert> &nbsp; <charinsert><nowiki>|</nowiki></charinsert> &nbsp; <charinsert>[+]</charinsert> &nbsp; <charinsert>[[+]]</charinsert> &nbsp; <charinsert>[[Category:+]]</charinsert> &nbsp; <charinsert>#REDIRECT&#32;[[+]]</charinsert> &nbsp; <charinsert>{{Subst:Fôn-ngiàng}}</charinsert> &nbsp; <charinsert>{{Subst:PAGENAME}}</charinsert> &nbsp; <charinsert>&nbsp;</charinsert> &nbsp; <charinsert><s>+</s></charinsert> &nbsp; <charinsert><sup>+</sup></charinsert> &nbsp; <charinsert><sub>+</sub></charinsert> &nbsp; <charinsert><code>+</code></charinsert> &nbsp; <charinsert><blockquote>+</blockquote></charinsert> &nbsp; <charinsert><ref>+</ref></charinsert> &nbsp; <charinsert><nowiki>{{</nowiki>Reflist<nowiki>}}</nowiki></charinsert> &nbsp; <charinsert><references/></charinsert> &nbsp; <charinsert><includeonly>+</includeonly></charinsert> &nbsp; <charinsert><noinclude>+</noinclude></charinsert> &nbsp; <charinsert><nowiki>{{</nowiki>DEFAULTSORT:+<nowiki>}}</nowiki></charinsert> &nbsp; <charinsert>&lt;nowiki>+</nowiki></charinsert> &nbsp; <charinsert><nowiki><!-- </nowiki>+<nowiki> --></nowiki></charinsert>&nbsp; <charinsert><nowiki><span class=\"plainlinks\"></nowiki>+<nowiki></span></nowiki></charinsert>&nbsp;&nbsp;&bull;&nbsp; ([[Wikipedia:Template messages|templates]])<br/></span> <span id=\"edittools_symbols\">'''Symbols:''' <charinsert> ~ | ¡ ¿ † ‡ ↔ ↑ ↓ • ¶</charinsert> &nbsp; <charinsert> # ½ ⅓ ⅔ ¼ ¾ ⅛ ⅜ ⅝ ⅞ ∞ </charinsert> &nbsp; <charinsert> ‘ “ ’ ” «+»</charinsert> &nbsp; <charinsert> ¤ ₳ ฿ ₵ ¢ ₡ ₢ $ ₫ ₯ € ₠ ₣ ƒ ₴ ₭ ₤ ℳ ₥ ₦ № ₧ ₰ £ ៛ ₨ ₪ ৳ ₮ ₩ ¥ </charinsert> &nbsp; <charinsert> ♠ ♣ ♥ ♦ </charinsert>&nbsp; <charinsert>m²</charinsert>&nbsp;<charinsert>m³</charinsert><br/></span> <span id=\"edittools_characters\">'''Characters:''' <span class=\"latinx\"> <charinsert> Á á Ć ć É é Í í Ĺ ĺ Ḿ ḿ Ń ń Ó ó Ŕ ŕ Ś ś Ú ú Ý ý Ź ź </charinsert> &nbsp; <charinsert> À à È è Ì ì M̀ m̀  Ǹ ǹ Ò ò Ù ù </charinsert> &nbsp; <charinsert> Â â Ĉ ĉ Ê ê Ĝ ĝ Ĥ ĥ Î î Ĵ ĵ Ô ô Ŝ ŝ Û û Ŵ ŵ Ŷ ŷ </charinsert> &nbsp; <charinsert> A̤ a̤ E̤ e̤ I̤ i̤ O̤ o̤ Ṳ ṳ </charinsert> &nbsp;\n<charinsert> A̍ a̍ E̍ e̍ I̍ i̍ O̍ o̍ U̍ u̍ </charinsert> &nbsp; <charinsert> À̤ à̤ È̤ è̤ Ì̤ ì̤ Ò̤ ò̤ Ṳ̀ ṳ̀ </charinsert> &nbsp;\n<charinsert> Á̤ á̤ É̤ é̤ Í̤ í̤ Ó̤ ó̤ Ṳ́ ṳ́ </charinsert> &nbsp; <charinsert> A̤̍ a̤̍ E̤̍ e̤̍ I̤̍ i̤̍ O̤̍ o̤̍ Ṳ̍ ṳ̍ </charinsert> &nbsp;\n<charinsert> Â̤ â̤ Ê̤ ê̤ Î̤ î̤ Ô̤ ô̤ Ṳ̂ ṳ̂ </charinsert> &nbsp; <charinsert> Â â Ĉ ĉ Ê ê Ĝ ĝ Ĥ ĥ Î î Ĵ ĵ Ô ô Ŝ ŝ Û û Ŵ ŵ Ŷ ŷ </charinsert> &nbsp; <charinsert> Ä ä Ë ë Ï ï Ö ö Ü ü Ÿ ÿ </charinsert> &nbsp; <charinsert> ß </charinsert> &nbsp; <charinsert> Ã ã Ẽ ẽ Ĩ ĩ Ñ ñ Õ õ Ũ ũ Ỹ ỹ</charinsert> &nbsp; <charinsert> Ç ç Ģ ģ Ķ ķ Ļ ļ Ņ ņ Ŗ ŗ Ş ş Ţ ţ </charinsert> &nbsp; <charinsert> Đ đ </charinsert> &nbsp; <charinsert> Ů ů </charinsert> &nbsp; <charinsert> Ǎ ǎ Č č Ď ď Ě ě Ǐ ǐ Ľ ľ Ň ň Ǒ ǒ Ř ř Š š Ť ť Ǔ ǔ Ž ž </charinsert> &nbsp; <charinsert> Ā ā Ē ē Ī ī Ō ō Ū ū Ȳ ȳ Ǣ ǣ </charinsert> &nbsp; <charinsert> ǖ ǘ ǚ ǜ </charinsert> &nbsp; <charinsert> Ă ă Ĕ ĕ Ğ ğ Ĭ ĭ Ŏ ŏ Ŭ ŭ </charinsert> &nbsp; <charinsert> Ċ ċ Ė ė Ġ ġ İ ı Ż ż </charinsert> &nbsp; <charinsert> Ą ą Ę ę Į į Ǫ ǫ Ų ų </charinsert> &nbsp; <charinsert> Ḍ ḍ Ḥ ḥ Ḷ ḷ Ḹ ḹ Ṃ ṃ Ṇ ṇ Ṛ ṛ Ṝ ṝ Ṣ ṣ Ṭ ṭ </charinsert> &nbsp; <charinsert> Ł ł </charinsert> &nbsp; <charinsert> Ő ő Ű ű </charinsert> &nbsp; <charinsert> Ŀ ŀ </charinsert> &nbsp; <charinsert> Ħ ħ </charinsert> &nbsp; <charinsert> Ð ð Þ þ </charinsert> &nbsp; <charinsert> Œ œ </charinsert> &nbsp; <charinsert> Æ æ Ø ø Å å </charinsert> &nbsp; <charinsert> Ə ə </charinsert></span>&nbsp;<span id=\"edittools_latinx_template\">&nbsp;&bull;&nbsp; <charinsert><nowiki>{{</nowiki><nowiki>Unicode|</nowiki>+<nowiki>}}</nowiki></charinsert></span><br/></span> <span id=\"edittools_greek\">'''Hî-lia̍p-vùn:''' <charinsert> Ά ά Έ έ Ή ή Ί ί Ό ό Ύ ύ Ώ ώ </charinsert> &nbsp; <charinsert> Α α Β β Γ γ Δ δ </charinsert> &nbsp; <charinsert> Ε ε Ζ ζ Η η Θ θ </charinsert> &nbsp; <charinsert> Ι ι Κ κ Λ λ Μ μ </charinsert> &nbsp; <charinsert> Ν ν Ξ ξ Ο ο Π π </charinsert> &nbsp; <charinsert> Ρ ρ Σ σ ς Τ τ Υ υ </charinsert> &nbsp; <charinsert> Φ φ Χ χ Ψ ψ Ω ω </charinsert> &nbsp;<span id=\"edittools_greek_template\">•&nbsp; <charinsert><nowiki>{{</nowiki><nowiki>Polytonic|</nowiki>+<nowiki>}}</nowiki></charinsert></span> &nbsp;<span id=\"edittools_greek_example\">•&nbsp; ([[Greek diacritics#Computer encoding|polytonic list]])</span><br/></span> <span id=\"edittools_cyrillic\">'''Cyrillic:''' <charinsert> А а Б б В в Г г </charinsert> &nbsp; <charinsert> Ґ ґ Ѓ ѓ Д д Ђ ђ </charinsert> &nbsp; <charinsert> Е е Ё ё Є є Ж ж </charinsert> &nbsp; <charinsert> З з Ѕ ѕ И и І і </charinsert> &nbsp; <charinsert> Ї ї Й й Ј ј К к </charinsert> &nbsp; <charinsert> Ќ ќ Л л Љ љ М м </charinsert> &nbsp; <charinsert> Н н Њ њ О о П п </charinsert> &nbsp; <charinsert> Р р С с Т т Ћ ћ </charinsert> &nbsp; <charinsert> У у Ў ў Ф ф Х х </charinsert> &nbsp; <charinsert> Ц ц Ч ч Џ џ Ш ш </charinsert> &nbsp; <charinsert> Щ щ Ъ ъ Ы ы Ь ь </charinsert> &nbsp; <charinsert> Э э Ю ю Я я </charinsert> &nbsp;<br/></span> <span id=\"edittools_ipa\">'''IPA:''' <span title=\"Pronunciation in IPA\" class=\"IPA\"><charinsert>t̪ d̪ ʈ ɖ ɟ ɡ ɢ ʡ ʔ </charinsert> &nbsp; <charinsert> ɸ ʃ ʒ ɕ ʑ ʂ ʐ ʝ ɣ ʁ ʕ ʜ ʢ ɦ </charinsert> &nbsp; <charinsert> ɱ ɳ ɲ ŋ ɴ </charinsert> &nbsp; <charinsert> ʋ ɹ ɻ ɰ </charinsert> &nbsp; <charinsert> ʙ ʀ ɾ ɽ </charinsert> &nbsp; <charinsert> ɫ ɬ ɮ ɺ ɭ ʎ ʟ </charinsert> &nbsp; <charinsert> ɥ ʍ ɧ </charinsert> &nbsp; <charinsert> ɓ ɗ ʄ ɠ ʛ </charinsert> &nbsp; <charinsert> ʘ ǀ ǃ ǂ ǁ </charinsert> &nbsp; <charinsert> ɨ ʉ ɯ </charinsert> &nbsp; <charinsert> ɪ ʏ ʊ </charinsert> &nbsp; <charinsert> ɘ ɵ ɤ </charinsert> &nbsp; <charinsert> ə ɚ </charinsert> &nbsp; <charinsert> ɛ ɜ ɝ ɞ ʌ ɔ </charinsert> &nbsp; <charinsert> ɐ ɶ ɑ ɒ </charinsert> &nbsp; <charinsert> ʰ ʷ ʲ ˠ ˤ ⁿ ˡ </charinsert> &nbsp; <charinsert> ˈ ˌ ː ˑ ̪ </charinsert>&nbsp;</span> &nbsp;&bull;&nbsp; <charinsert><nowiki>{{</nowiki><nowiki>IPA|</nowiki>+<nowiki>}}</charinsert></small>\n</div>",
        "nocreatetext": "Chhṳ́ mióng-chham han-chṳ chhóng-chho sîn hong-mien ke kûng-yung. ngì khó-yî fán-fì pin phiên-cho yí-kîn yû ke hong-mien, fe̍t-chá [[Special:UserLogin|tên-liu̍k fe̍t-he chhóng-kien sîn chong-fu]].",
        "nocreate-loggedin": "汝並無權限去創建新頁面。",
-       "permissionserrors": "權限差錯",
+       "permissionserrors": "Khièn-han chhâ-chho",
        "permissionserrorstext": "Kîn-kí yî-ha ke ngièn-yîn, ngì vù-yû khièn-han hi-tso yî-ha ke thung-tsok:",
        "permissionserrorstext-withaction": "根據下背嘅{{PLURAL:$1|原因|原因}},汝並無權限去做$2:",
        "recreate-moveddeleted-warn": "'''警告:汝今下重新建立一隻先前曾經刪除過嘅頁面。'''\n\n汝應該愛考慮一下繼續編寫邇一隻頁面係毋係合適。\n為到方便,邇一個頁面嘅刪除日誌已經在下背提供:",
-       "moveddeleted-notice": "邇隻頁面已經刪除。\n邇隻頁面嘅刪除撈移動日誌已經在下背提供來參考。",
-       "log-fulllog": "查看完整日誌",
-       "edit-hook-aborted": "編寫分鈎取消。\n其並無分出解釋。",
+       "moveddeleted-notice": "Liá-chak ya̍p-mien yí-kîn san-chhù. \nLiá-chak ya̍p-mien ke san-chhù lâu yì-thûng ngit-chì yí-kîn chhai hâ-poi thì-kiûng lòi chhâm-kháu.",
+       "log-fulllog": "Chhà-khon vàn-cháng ngit-chì",
+       "edit-hook-aborted": "Phiên-siá fûn-keu chhí-sêu. \nKhì pin-mò fûn-chhut kié-sṳt.",
        "edit-gone-missing": "毋做得更新頁面。\n其可能正正分刪除。",
-       "edit-conflict": "編寫衝突。",
+       "edit-conflict": "Phiên-siá chhûng-thu̍t.",
        "edit-no-change": "汝嘅編寫已經略過,因為文字無任何改動。",
        "edit-already-exists": "毋做得建立一隻新頁面。\n其已經存在。",
-       "defaultmessagetext": "默認消息文字",
+       "defaultmessagetext": "Me̍t-ngin sêu-sit vùn-sṳ",
        "invalid-content-data": "無效嘅數據內容",
-       "content-model-wikitext": "wiki語法",
-       "content-model-text": "純文字",
+       "content-model-wikitext": "Wki ngî-fap",
+       "content-model-text": "sùn vùn-sṳ",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
        "post-expand-template-inclusion-warning": "警告: 包含模板大小過大。\n一兜模板將毋會包含。",
        "undo-failure": "由於中途嘅編寫毋一致,本編輯毋做得撤銷。",
        "undo-norev": "由於其嘅修訂版本毋存在或已刪除,本編寫毋做得撤銷。",
        "undo-summary": "Chhí-sêu yù [[Special:Contributions/$2|$2]] ([[User talk:$2|tui-fa]]) só chok-chhut ke siû-thin $1",
-       "cantcreateaccounttitle": "無法建立帳號",
+       "cantcreateaccounttitle": "Mò-fap kien-li̍p chong-ho",
        "cantcreateaccount-text": "從邇隻IP地址('''$1''')建立帳號已經分[[User:$3|$3]]禁止。\n\n當中分$3封禁嘅原因是''$2''",
-       "viewpagelogs": "查看邇隻頁面嘅日誌",
+       "viewpagelogs": "Chhà-khon liá-chak ya̍p-mien ke ngit-chì",
        "nohistory": "無本頁嘅修訂版本記錄。",
        "currentrev": "最新版本",
-       "currentrev-asof": "$1嘅最新修訂版本",
-       "revisionasof": "$1嘅修訂版本",
-       "revision-info": "在$1由$2所做嘅修訂版本",
-       "previousrevision": "←上隻版本",
-       "nextrevision": "下隻版本→",
-       "currentrevisionlink": "最新版本",
-       "cur": "當前",
+       "currentrev-asof": "$1 ke chui-sîn siû-thin pán-pún",
+       "revisionasof": "$1 ke siû-thin pán-pún",
+       "revision-info": "chhai $1 yù {{GENDER:$6|$2}} só cho ke siû-thin pán-pún $7",
+       "previousrevision": "← Sông-chak pán-pún",
+       "nextrevision": "Hâ-chak pán-pún →",
+       "currentrevisionlink": "Chui-sîn pán-pún",
+       "cur": "tông-chhièn",
        "next": "下一隻",
-       "last": "上一隻",
-       "page_first": "最早",
-       "page_last": "最尾",
+       "last": "sông yit-chak",
+       "page_first": "chui-chó",
+       "page_last": "chui-mî",
        "histlegend": "差別選擇:標記愛比較版本嘅單選按鈕並點擊底部嘅按鈕進行比較。<br />\n說明:'''({{int:cur}})''' 指撈最新版本比較,'''({{int:last}})''' 指撈上隻版本比較,'''{{int:minoreditletter}}''' = 細微修改。",
-       "history-fieldset-title": "瀏覽歷史",
-       "history-show-deleted": "單淨係已刪除嘅",
-       "histfirst": "最早",
-       "histlast": "最新",
+       "history-fieldset-title": "Liù-lám li̍t-sṳ́",
+       "history-show-deleted": "Tân-chhiang he yí san-chhù ke",
+       "histfirst": "chui-chó",
+       "histlast": "chui-sîn",
        "historysize": "($1字節)",
        "historyempty": "(空)",
        "history-feed-title": "修訂歷史",
        "rev-deleted-event": "(日誌已刪除)",
        "rev-deleted-text-permission": "Ke-vùn-chông siû-thin yí-kîn pûn-chhiùng kûng-khiung vùn-tóng chûng yì-chhù. Chhai [{{fullurl:{{#Special:Log}}/suppress|page={{PAGENAMEE}}}} chhù-thet ngit-ki] chûng khó-nèn kiám-chhà to siòng-se ke sin-sit.",
        "rev-deleted-text-view": "Ke-vùn-chông siû-thin yí-kîn pûn-chhiùng kûng-khiung vùn-tóng chûng yì-chhù. Chok-vi mióng-chham ke kón-lî-yèn, khó-yî kiám-chhà; Chhai[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} chhù-thet ngit-ki] chûng khó-nèn kiám-chhà to siòng-se ke sin-sit.",
-       "rev-delundel": "展現/隱藏",
+       "rev-delundel": "chán-hien / yún-chhông",
        "rev-showdeleted": "展現",
        "revisiondelete": "刪除/恢復刪除修訂版本",
        "revdelete-nooldid-title": "無效嘅目標修訂版本",
        "mergehistory-from": "來源頁面:",
        "mergehistory-into": "目的頁面:",
        "mergehistory-list": "做得合併嘅編寫歷史",
-       "mergehistory-merge": "以下[[:$1]]嘅修訂可以合併到[[:$2]]。用邇選項按鈕欄去合併單淨有在指定時間以前所創建嘅修訂。愛留意嘅係使用導航連接就會重設邇一欄。",
+       "mergehistory-merge": "Yî-hâ [[:$1]] ke siû-thin cho-tet ha̍p-pìn to [[:$2]]. Yung liá sién-hong on-néu-làn hi ha̍p-pìn tân-chhiang yû chhai chṳ́-thin sṳ̀-kiên yî-chhièn só chhóng-kien ke siû-thin. Oi liù-yi ke he sṳ́-yung thô-hòng lièn-chiap chhiu-fi chhùng-sat liá-yit làn.",
        "revertmerge": "解除合併",
-       "history-title": "“$1”嘅修訂歷史",
-       "lineno": "第$1行:",
+       "history-title": "\"$1\" ke siû-thin li̍t-sṳ́",
+       "difference-title": "\"$1\" siû-thin kiên ke chhâ-bie",
+       "lineno": "Thi $1 hàng:",
        "compareselectedversions": "比較選定嘅修訂版本",
-       "editundo": "撤銷",
-       "searchresults": "搜尋結果",
-       "searchresults-title": "搜尋\"$1\"嘅結果",
+       "editundo": "Chha̍t-siau",
+       "searchresults": "Sêu-chhìm kiet-kó",
+       "searchresults-title": "Sêu -chhìm \"$1\" ke kiet-kó",
        "titlematches": "頁面標題相符",
        "textmatches": "頁面內容配得上",
        "notextmatches": "無頁面內容配上",
-       "prevn": "前頭$1隻",
-       "nextn": "後背$1隻",
+       "prevn": "chhièn-thèu $1 chak",
+       "nextn": "heu-poi $1 chak",
        "prevn-title": "前頭$1隻結果",
-       "nextn-title": "後背$1隻結果",
-       "shown-title": "每頁展示$1項結果",
-       "viewprevnext": "查看($1 {{int:pipe-separator}} $2)($3)",
+       "nextn-title": "Heu-poi $1-chak kiet-kó",
+       "shown-title": "Mî-ya̍p chán-sṳ $1-hong kiet-kó",
+       "viewprevnext": "Chhà-khon ( $1 {{int:pipe-separator}} $2) ( $3)",
        "searchmenu-exists": "'''在邇隻wiki上已經有一頁喊做“[[:$1]]”。'''",
-       "searchmenu-new": "'''在本wiki上建立邇隻頁面“[[:$1]]”!'''",
-       "searchprofile-articles": "內容頁面",
-       "searchprofile-images": "多媒體",
-       "searchprofile-everything": "全部",
-       "searchprofile-advanced": "高級",
-       "searchprofile-articles-tooltip": "在$1肚搜尋",
-       "searchprofile-images-tooltip": "搜尋文件",
-       "searchprofile-everything-tooltip": "搜索全部(包括討論頁面)",
-       "searchprofile-advanced-tooltip": "在用戶安名空間肚搜尋",
-       "search-result-size": "$1 ($2隻字)",
+       "searchmenu-new": "<strong>Chhai pún Wiki sông kien-li̍p liá-chak ya̍p-mien \"[[:$1]]\"!</strong>{{PLURAL:$2|0=|fe̍t chhiáng chhâm-kháu ngì sû-ngi̍p ke thiàu-khien cháu-to ke sêu-chhìm kiet-kó. |fe̍t chhiáng chhâm-kháu khì-thâ sêu-chhìm kiet-kó.}}",
+       "searchprofile-articles": "Nui-yùng ya̍p-mien",
+       "searchprofile-images": "Tô mòi-thí",
+       "searchprofile-everything": "Chhiòn-phu",
+       "searchprofile-advanced": "Kô-kip",
+       "searchprofile-articles-tooltip": "Chhai $1 tú sêu-chhìm",
+       "searchprofile-images-tooltip": "Sêu-chhìm vùn-khien",
+       "searchprofile-everything-tooltip": "Sêu-sok chhiòn-phu (pâu-koat thó-lun ya̍p-mien)",
+       "searchprofile-advanced-tooltip": "Chhai yung-fu ôn-miàng khûng-kiên tú sêu-chhìm",
+       "search-result-size": "$1 ($2-chak sṳ)",
        "search-result-category-size": "$1隻成員($2隻子分類,$3隻文件)",
-       "search-redirect": "(重定向 $1)",
-       "search-section": "(段落 $1)",
-       "search-suggest": "汝係毋係尋:$1",
+       "search-redirect": "(Chhùng-thin-hiong $1)",
+       "search-section": "(thon-lo̍k $1)",
+       "search-suggest": "Ngì he-m̀-he chhìm: $1",
        "search-interwiki-caption": "姊妹計劃",
        "search-interwiki-default": "來自$1嘅結果:",
        "search-interwiki-more": "(還較多)",
        "searchrelated": "相關",
-       "searchall": "全部",
+       "searchall": "chhiòn-phu",
        "showingresults": "Ha-mien hién-sṳ chhiùng thi-'''$2'''-thiàu khôi-sṳ́ ke '''$1'''-thiàu kiet-kó:",
-       "search-nonefound": "在查詢肚無結果相符。",
+       "search-showingresults": "{{PLURAL:$4|thi <strong>$1</strong> pit kiet-kó, khiung <strong>$3</strong> pit |thi <strong>$1 - $2</strong> pit kiet-kó, khiung <strong>$3</strong> pit }}",
+       "search-nonefound": "Chhai chhà-sûn tú mò kiet-kó siông-fù.",
        "powersearch-legend": "高級搜尋",
        "powersearch-ns": "在下背嘅名字空間肚搜尋:",
        "powersearch-togglelabel": "監查:",
        "searchdisabled": "{{SITENAME}}由於性能方面嘅原因,全文搜已分暫時停用。汝做得暫時通過Google搜尋。請留意佢兜嘅索引可能會過時。",
        "preferences": "偏好設定",
-       "mypreferences": "偏好設定",
-       "prefs-skin": "外皮",
+       "mypreferences": "Phiên-hó sat-thin",
+       "prefs-skin": "Ngoi-phì",
        "skin-preview": "預覽",
        "datedefault": "預設值",
        "prefs-personal": "用戶資料",
-       "prefs-rc": "最近更改",
+       "prefs-rc": "Chui-khiûn kiên-kói",
        "prefs-watchlist": "監視列表",
        "prefs-watchlist-days": "Kam-sṳ lie̍t-péu chûng hién-sṳ ki-liu̍k ke thiên-su:",
        "prefs-watchlist-edits": "擴展監視列表肚顯示更改次數上限:",
        "prefs-misc": "雜項",
        "saveprefs": "保存",
-       "restoreprefs": "恢復所有默認設定",
+       "restoreprefs": "Fî-fu̍k só-yû me̍t-ngin sat-thin (só-yû hong-muk)",
        "prefs-editing": "編寫緊",
        "rows": "行数:",
        "columns": "列:",
        "searchresultshead": "搜尋",
        "stub-threshold": "<a href=\"#\" class=\"stub\">短頁面鏈接</a>格式門檻值(字節):",
-       "recentchangesdays": "最近更改肚嘅顯示日數:",
+       "recentchangesdays": "Chui-khiûn kiên-kói tú ke hién-sṳ ngit-sú:",
        "recentchangescount": "Chui-khiûn kiên-kói chûng ke phiên-siá chúng-su:",
        "savedprefs": "汝嘅個人偏好設定已經保存。",
        "timezonelegend": "Sṳ̀-khî",
        "badsiglength": "Tshiâm-miàng ko-liong.\nTshòng-tón pit-sî chhai $1-ke sṳ-ngièn yî-ha.",
        "email": "電子郵件",
        "prefs-help-realname": "真名係做得選嘅。\n假使汝選擇提供其,其會用在貢獻署名。",
-       "prefs-help-email": "電郵地址係選填項目,但係,假使汝毋記得汝嘅密碼,其做得用於重設密碼。",
+       "prefs-help-email": "Thien-yù thi-chí he sién-thiàm hong-muk, than-he, ká-sṳ́ ngì m̀-ki-tet ngì-ke me̍t-ma, khì cho-tet yung-yî chhùng-sat me̍t-ma.",
        "prefs-help-email-others": "汝也做得選擇分其他用戶通過汝嘅用戶頁或交流頁上嘅鏈接用電子郵件聯繫汝。\n其他用戶聯繫汝時汝嘅電子郵件毋會顯示出來。",
        "userrights": "用戶權限管理",
        "userrights-lookup-user": "管理用戶群組",
        "group-bureaucrat-member": "行政員",
        "grouppage-bot": "{{ns:project}}:機器人",
        "grouppage-sysop": "{{ns:project}}:管理員",
-       "right-upload": "上傳文件",
-       "newuserlogpage": "新建用戶名冊",
+       "right-upload": "Sông-chhòn vùn-khien",
+       "right-writeapi": "Sṳ́-yung siá-ngi̍p API",
+       "newuserlogpage": "Sîn-kien yung-fu miàng-chhak",
        "newuserlogpagetext": "邇係一隻最近人創建用戶嘅新日誌",
        "rightslog": "用戶權限日誌",
        "rightslogtext": "下背記錄矣用戶權限嘅更改日誌。",
        "action-edit": "編寫本頁",
        "nchanges": "$1次更改",
-       "recentchanges": "最近更改",
-       "recentchanges-legend": "最近更改選項",
-       "recentchanges-summary": "跟蹤本wiki上嘅最新更改。",
-       "recentchanges-feed-description": "跟蹤本訂閱在wiki上嘅最近更改。",
-       "recentchanges-label-newpage": "邇次編輯建立起一隻新頁面",
-       "recentchanges-label-minor": "邇係一隻細微修改",
-       "recentchanges-label-bot": "邇次編寫係由機器人進行",
-       "recentchanges-label-unpatrolled": "邇次編寫還吂巡查過",
+       "enhancedrc-history": "Li̍t-sṳ́",
+       "recentchanges": "Chui-khiûn kiên-kói",
+       "recentchanges-legend": "Chui-khiûn kiên-kói sién-hong",
+       "recentchanges-summary": "Kiên-chiûng pún wiki sông ke chui-sîn kiên-kói.",
+       "recentchanges-feed-description": "Kiên-chiûng pún thin-ye̍t chhai wiki sông ke chui-khiûn kiên-kói.",
+       "recentchanges-label-newpage": "Liá-chhṳ phiên-si̍p kien-li̍p hí yit-chak sîn ya̍p-mien",
+       "recentchanges-label-minor": "Liá-he yit-chak se-mì siû-kói",
+       "recentchanges-label-bot": "Liá-chhṳ phiên-siá he yù kî-hi-ngìn chin-hàng",
+       "recentchanges-label-unpatrolled": "Liá-chhṳ phiên-siá hàn-mò sùn-chhà ko",
+       "recentchanges-label-plusminus": "Kâi ya̍p-mien kiên-kói ke thai-séu  (vi-ngièn-chû)",
+       "recentchanges-legend-heading": "<strong>Chu-yi:</strong>",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (chhiáng chhâm-siòng [[Special:NewPages|sîn ya̍p-mien]])",
        "rcnotefrom": "下背係從'''$2'''起嘅更改(最多展示'''$1'''):",
-       "rclistfrom": "展示從$3 $2以來嘅新更改",
+       "rclistfrom": "Chán-sṳ chhiùng $3 $2 yî-lòi ke sîn kiên-kói",
        "rcshowhideminor": "$1細微編寫",
-       "rcshowhidebots": "$1機器人嘅編寫",
-       "rcshowhideliu": "$1已登入用戶嘅編寫",
-       "rcshowhideanons": "$1匿名用戶嘅編寫",
+       "rcshowhideminor-show": "Chán-sṳ",
+       "rcshowhideminor-hide": "Yún-chhông",
+       "rcshowhidebots": "$1 kî-hi-ngìn ke phiên-siá",
+       "rcshowhidebots-show": "Chán-sṳ",
+       "rcshowhidebots-hide": "Yún-chhông",
+       "rcshowhideliu": "$1 yí-kîn tên-ngi̍p ke yung-fu",
+       "rcshowhideliu-hide": "Yún-chhông",
+       "rcshowhideanons": "$1 nit-miàng yung-fu ke phiên-siá",
+       "rcshowhideanons-show": "Chán-sṳ",
+       "rcshowhideanons-hide": "Yún-chhông",
        "rcshowhidepatr": "$1巡查過嘅編寫",
-       "rcshowhidemine": "$1亻厓嘅編寫",
-       "rclinks": "展示最近$2日內最新嘅$1次改動。<br />$3",
-       "diff": "差別",
-       "hist": "歷史",
-       "hide": "隱藏",
-       "show": "展示",
-       "minoreditletter": "細微",
-       "newpageletter": "新",
-       "boteditletter": "機",
+       "rcshowhidemine": "$1 ngài-ke phiên-siá",
+       "rcshowhidemine-show": "Chán-sṳ",
+       "rcshowhidemine-hide": "Yún-chhông",
+       "rclinks": "Chán-sṳ chui-khiûn $2-ngit nui chui-sîn ke $1 chhṳ kói-thûng. <br />$3",
+       "diff": "chhâ-phe̍t",
+       "hist": "li̍t-sṳ́",
+       "hide": "Yún-chhông",
+       "show": "Chán-sṳ",
+       "minoreditletter": "se-mì",
+       "newpageletter": "Sîn",
+       "boteditletter": "kî",
        "number_of_watching_users_pageview": "[$1隻用戶關注]",
        "rc_categories": "分類界限(以“|”分割)",
        "rc_categories_any": "任意",
+       "rc-change-size-new": "Kiên-kói heu ke $1 vi-ngièn-chû",
        "rc-enhanced-expand": "展示細節 (愛有JavaScript)",
        "rc-enhanced-hide": "隱藏細節",
-       "recentchangeslinked": "相關更改",
+       "recentchangeslinked": "Siông-kôan kiên-kó",
        "recentchangeslinked-feed": "相關更改",
-       "recentchangeslinked-toolbox": "相關更改",
-       "recentchangeslinked-title": "撈“$1”有關嘅更改",
+       "recentchangeslinked-toolbox": "Siông-kôan kiên-kói",
+       "recentchangeslinked-title": "lâu \"$1\" yû-kôan ke kiên-kói",
        "recentchangeslinked-summary": "邇一隻特殊頁面列示''由''所分出嘅一隻頁面之鏈接到頁面嘅最近更改(或者是對於指定分類嘅成員)。\n在[[Special:Watchlist|汝嘅監視列表]]肚嘅頁面會用'''粗體'''顯示。",
-       "recentchangeslinked-page": "頁面名:",
-       "recentchangeslinked-to": "展示連到所分出嘅頁面",
-       "upload": "上傳文件",
-       "uploadbtn": "上傳文件",
+       "recentchangeslinked-page": "Ya̍p-mien miàng:",
+       "recentchangeslinked-to": "Chán-sṳ lièn-to só fûn-chhut ke ya̍p-mien",
+       "upload": "Sông-chhòn vùn-khien",
+       "uploadbtn": "Sông-chhòn vùn-khien",
        "reuploaddesc": "取消上載並返回上載表單",
        "uploadnologin": "還吂登入",
        "uploadnologintext": "汝必須先[[Special:UserLogin|登入]]\n正做得上傳文件。",
        "uploadlogpage": "上傳日誌",
        "uploadlogpagetext": "Yî-ha he chui-khiûn song-chhòn vùn-khien ke chúng-péu.",
        "filename": "文件名",
-       "filedesc": "文件說明",
+       "filedesc": "Vùn-khien sot-mìn",
        "fileuploadsummary": "文件摘要:",
        "filestatus": "版權狀態:",
        "filesource": "來源:",
        "php-uploaddisabledtext": "PHP文件上傳已經停用。請檢查file_uploads設定。",
        "uploadscripted": "邇文件包含可能分網絡瀏覽器錯誤解釋嘅HTML或腳本代碼。",
        "uploadvirus": "邇文件包含有病毒!\n詳情:$1",
-       "sourcefilename": "來源文件名",
-       "destfilename": "目標文件名",
-       "watchthisupload": "監視本文件",
+       "sourcefilename": "Lòi-ngièn vùn-khien miàng:",
+       "destfilename": "Muk-phiêu vùn-khien miàng",
+       "watchthisupload": "Kâm-sṳ pún vùn-khien",
        "filewasdeleted": "早先已經有一隻同名文件分上傳後又分刪除矣。在上傳邇文件之前汝愛檢查$1。",
        "upload-proto-error": "協議毋著",
        "upload-proto-error-text": "遠程上傳要求URL以<code>http://</code>或 <code>ftp://</code>開頭。",
        "upload-file-error": "內部差錯",
-       "upload-file-error-text": "當嘗試在服務器上建立臨時檔案時發生內部差錯。請撈[[Special:ListUsers/sysop|管理員]]聯繫。",
+       "upload-file-error-text": "Tông sòng-sṳ chhai fu̍k-vu-hi sông kien-li̍p lìm-sṳ̀ tóng-on sṳ̀ fat-sâng nui-phu chhâ-chho. Chhiáng lâu [[Special:ListUsers/sysop|Kón-lî-yèn]] lièn-hì.",
        "upload-misc-error": "吂知嘅上傳差錯",
-       "upload-misc-error-text": "在上傳時發生還吂知嘅錯誤。請驗証使用矣正確並可訪問嘅 URL,然後重新嘗試。假使問題還係存在,請撈[[Special:ListUsers/sysop|管理員]]聯繫。",
+       "upload-misc-error-text": "Chhai sông-chhòn sṳ̀ fat-sâng hàn mâng-tî ke chho-ngu. Chhiáng ngiam-chṳn sṳ́-yung yí chang-khok pin-khó fóng-mun ke URL, yèn-heu chhùng-sîn sòng-sṳ. Ká-sṳ́ mun-thì hàn-he chhùn-chhai, chhiáng lâu [[Special:ListUsers/sysop|Kón-lî-yèn]] lièn-hì.",
        "upload-curl-error6": "無法訪問URL",
        "upload-curl-error6-text": "無法訪問所提供嘅URL。請再次檢查邇URL係毋係正確,並且網站嘅訪問係毋係正常。",
        "upload-curl-error28": "上傳超時",
        "upload-curl-error28-text": "網站回應時間過長。請檢查邇網站嘅訪問係毋係正常,過一陣再試。汝可能愛在網路訪問有閒時節再試。",
        "license": "授權:",
-       "license-header": "授權",
+       "license-header": "Su-khièn",
        "nolicense": "無有選定",
        "upload_source_url": " (一隻有效、做得公開訪問嘅URL)",
        "upload_source_file": " (在汝電腦上嘅一隻文件)",
        "listfiles_search_for": "按媒體名搜尋:",
-       "imgfile": "文件",
+       "imgfile": "vùn-khien",
        "listfiles": "文件列表",
        "listfiles_date": "日期",
        "listfiles_name": "名",
        "listfiles_user": "用戶",
        "listfiles_size": "大細",
        "listfiles_description": "描述",
-       "file-anchor-link": "文件",
-       "filehist": "文件歷史",
-       "filehist-help": "點撳日期/時間來查看當時出現過嘅文件。",
+       "file-anchor-link": "vùn-khien",
+       "filehist": "Vùn-khien li̍t-sṳ́",
+       "filehist-help": "Tiám-khim ngit-khì / sṳ̀-kiên lòi chhà-khon tông-sṳ̀ chhut-hien-ko ke vùn-khien.",
        "filehist-deleteone": "刪除",
        "filehist-revert": "恢復",
-       "filehist-current": "當前",
-       "filehist-datetime": "日期/時間",
-       "filehist-thumb": "縮略圖",
-       "filehist-thumbtext": "$1嘅版本嘅縮略圖",
-       "filehist-user": "用戶",
-       "filehist-dimensions": "維度",
-       "filehist-comment": "意見",
-       "imagelinks": "文件用處",
-       "linkstoimage": "下背嘅$1隻頁面鏈接到本文件:",
-       "nolinkstoimage": "無頁面鏈接到本文件。",
-       "sharedupload": "本檔案來自於$1,渠可能在其它計劃項目肚分人應用。",
+       "filehist-current": "tông-chhièn",
+       "filehist-datetime": "Ngit khì / Sṳ̀-kiên",
+       "filehist-thumb": "Suk-lio̍k-thù",
+       "filehist-thumbtext": "$1 ke pán-pún ke Suk-lio̍k-thù",
+       "filehist-user": "Yung-fu",
+       "filehist-dimensions": "Vì-thu",
+       "filehist-comment": "Yi-kien",
+       "imagelinks": "Vùn-khien yung-chhú",
+       "linkstoimage": "Hâ poi ke $1-chak ya̍p-mien lièn-chiap to pún vùn-khien:",
+       "nolinkstoimage": "Mò ya̍p-mien lièn-chiap to pún vùn-khien.",
+       "sharedupload": "Pún tóng-on lòi-chhṳ yî $1, khî khó-nèn chhai khì-thâ kie-va̍k hong-muk tú fûn-ngìn yin-yung.",
        "sharedupload-desc-here": "邇文件來自於$1,其可能在其它計劃項目肚分應用。\n其在[$2文件描述頁面]介片上嘅描述在下背展示。",
        "uploadnewversion-linktext": "上傳邇隻文件嘅新版本",
+       "shared-repo-name-wikimediacommons": "Wikimedia Commons",
+       "upload-disallowed-here": "Ngì mò-fap fu̍k-koi liá-chak tóng-on.",
        "filedelete-submit": "刪除",
        "mimesearch": "MIME搜尋",
        "mimesearch-summary": "本頁面啟用文件MIME類型過濾器。撳入︰內容類型/子類型,如 <code>image/jpeg</code>。",
        "unusedtemplates": "吂使用嘅模板",
        "unusedtemplatestext": "<p>Chhiáng chu-yi khì-thâ mióng-chham khó-nèn chhṳ̍t-chiap theu-ko URL lièn-chiap chhṳ́ thù-hìn, só-yî liá-piên clie̍t-chhut ke thù-hìn yû khó-nèn pûn sṳ́-yung.</p>",
        "unusedtemplateswlh": "其他鏈接",
-       "randompage": "隨機頁面",
+       "randompage": "Sùi-kî ya̍p-mien",
        "randompage-nopages": "Chhai liá-ke miàng-sṳ khûng-kiên chûng mò-yû hong-mien.",
        "randomredirect": "隨機重定向頁",
        "randomredirect-nopages": "Chhai liá-ke miàng-sṳ khûng-kiên mò-yû chhùng-thin hong-mien.",
        "withoutinterwiki": "無有語言鏈接頁面",
        "withoutinterwiki-summary": "下背嘅頁面還吂有語言鏈接到其它語言版本。",
        "fewestrevisions": "最少修訂嘅頁面",
-       "nbytes": "$1字節",
+       "nbytes": "$1 sṳ-chiet",
        "ncategories": "$1隻分類",
        "nlinks": "$1隻鏈接",
-       "nmembers": "$1隻成員",
+       "nmembers": "$1-chak sṳ̀n-yèn",
        "nrevisions": "$1隻修訂版本",
        "specialpage-empty": "本報告無結果。",
        "lonelypages": "孤立頁面",
        "protectedpagesempty": "在邇兜參數下無頁面保護緊。",
        "listusers": "用戶列表",
        "usercreated": "$1 $2{{GENDER:$3|建立}}",
-       "newpages": "新頁面",
+       "newpages": "Sîn ya̍p-mien",
        "newpages-username": "用戶名:",
        "ancientpages": "最舊頁面",
        "move": "移動",
        "notargettitle": "無目標",
        "notargettext": "汝還吂指定一隻目標頁面或用戶來進行邇項操作。",
        "pager-newer-n": "新$1次",
-       "pager-older-n": "舊$1次",
-       "booksources": "網絡書源",
-       "booksources-search-legend": "尋找網絡書源",
+       "pager-older-n": "khiu $1-chhṳ",
+       "booksources": "Mióng-lok sû-ngièn",
+       "booksources-search-legend": "Chhìm-cháu mióng-lok sû-ngièn",
+       "booksources-search": "Chhìm-cháu",
        "booksources-text": "下背係一份銷售新書或二手書嘅列表,並可能有汝尋找緊嘅書嘅進一步信息:",
        "specialloguserlabel": "Yung-fu:",
        "speciallogtitlelabel": "Phêu-thì:",
-       "log": "日誌",
+       "log": "Ngit-chì",
        "alllogstext": "Lièn-ha̍p hién-sṳ song-chhòn, chhù-chhiang, pó-fu, chhà-fûng yî-khi̍p chham-vu",
        "logempty": "在日誌肚無匹配項。",
        "log-title-wildcard": "搜尋以邇隻文字開頭嘅標題",
        "prevpage": "上一頁($1)",
        "allpagesfrom": "顯示從邇處開始嘅頁面:",
        "allpagesto": "顯示從邇位結束嘅頁面:",
-       "allarticles": "全部頁面",
+       "allarticles": "Chhiòn-phu ya̍p-mien",
        "allinnamespace": "所有頁面(屬於$1名字空間)",
-       "allpagessubmit": "提交",
+       "allpagessubmit": "Thì-kâu",
        "allpagesprefix": "顯示有邇前綴(名字空間)嘅頁面:",
        "allpagesbadtitle": "分定嘅頁面標題係非法嘅,或者有一隻內部語言或內部wiki嘅前綴。其可能包含一隻或還較多毋做得用於標題嘅字符。",
-       "categories": "分類",
+       "categories": "Fûn-lui",
        "categoriespagetext": "Yî-ha lie̍t-chhut só-yû ke hong-mien fûn-lui.\n[[Special:UnusedCategories|Unused categories]] are not shown here.\nAlso see [[Special:WantedCategories|wanted categories]].",
        "linksearch": "Ngoi-phu lièn-chiap",
        "linksearch-ok": "搜尋",
        "emailsent": "電子郵件已發送",
        "emailsenttext": "汝嘅電子郵件已經發出。",
        "watchlist": "監視列表",
-       "mywatchlist": "監視列表",
+       "mywatchlist": "Kâm-sṳ lie̍t-péu",
        "watchlistfor2": "$1嘅監視列表$2",
        "nowatchlist": "汝嘅監視列表係空嘅。",
        "watchlistanontext": "請$1來查看或編寫汝嘅監視列表。",
        "watchnologin": "還吂登入",
        "addedwatchtext": "Hong-mien \"[[:$1]]\" yí-kîn pûn kâ-ngi̍p to ngì-ke [[Special:Watchlist|Kam-sṳ chhîn-tân]] chûng. Chiông-lòi yû-kôan chhṳ́ hong-mien khi̍p khì-thâ thó-lun-hong ke ngim-hò siû-cháng chiông-voi chhai hong-mien lie̍t-chhut, song-chhiá hàn-voi chhai [[Special:RecentChanges|Chui-khiûn ke kiên-kói]] chûng ke '''chhû-thí''' hìn-sṳt lie̍t-chhut. Kó-yèn  ngì heu-lòi sióng chhiùng hong-mien kam-sṳ chhîn-tân chûng chhîn-chhù, hí-khó tiám-kit thô-hòng thiàu-chûng \"thìn-chṳ́ kam-sṳ\" ke lièn-kiet。",
        "removedwatchtext": "Vùn-chông \"[[:$1]]\" yí-kîn chhiùng Ngì kekam-sṳ lie̍t-péu mien-chûng yì-chhù.",
-       "watch": "監視",
+       "watch": "Kâm-sṳ",
        "watchthispage": "監視本頁",
        "unwatch": "取消監視",
        "unwatchthispage": "停止監視",
        "actioncomplete": "操作完成",
        "actionfailed": "操作失敗",
        "deletedtext": "“$1”已經分刪除。最近刪除嘅記錄請參見$2。",
-       "dellogpage": "刪除日誌",
+       "dellogpage": "San-chhù ngit-chì",
        "dellogpagetext": "下背係最近刪除嘅列表。",
        "deletionlog": "刪除日誌",
        "reverted": "恢復到早期版本",
        "deleteotherreason": "其它/附加理由:",
        "deletereasonotherlist": "其它理由",
        "rollback": "編寫倒轉頭",
-       "rollbacklink": "打轉頭",
+       "rollbacklink": "tá chón-thèu",
+       "rollbacklinkcount": "chha̍t-siau $1 chhṳ phiên-siá",
        "rollbackfailed": "無法倒轉頭",
        "cantrollback": "編寫無法打轉頭;最後嘅貢獻者人本文嘅唯一作者。",
        "alreadyrolled": "Mò-fap fî-fu̍k yù [[User:$2|$2]] ([[User talk:$2|thó-lun]]) chin-hàng ke [[$1]] ke chui-heu phiên-si̍p; khì-thâ ngìn yí-kîn phiên-siá fe̍t-he fî-fu̍k liáu ke-hong. Chui-heu phiên-si̍p-chá: [[User:$3|$3]] ([[User talk:$3|Thó-lun]])。",
        "editcomment": "Phiên-siá sot-mìn he: <em>$1</em>。",
        "revertpage": "Fî-fu̍k yù [[Special:Contributions/$2|$2]] ([[User talk:$2|tui-fa]]) ke phiên-cho; kiên-kói fì-fu̍k [[User:$1|$1]] ke chui-heu yit-ke pán-pún",
        "sessionfailure": "汝嘅登入會話好像有問題;\n為到防止會話劫持,邇次操作已經畀取消。\n請轉到先前嘅頁面,重新載入邇頁面,然後重試。",
-       "protectlogpage": "保護日誌",
+       "protectlogpage": "Pó-fu ngit-chì",
        "protectlogtext": "Ha-mien he vùn-chông só-thin lâu chhí-sêu só-thin ke lie̍t-péu. Chhiáng chhâm-kháu [[Special:ProtectedPages|Pó-fu vùn-chông chhîn-tân]] yî-khi̍p kiám-sṳ tông-chhièn chin-hàng ke vùn-chông pó-fu.",
        "protectedarticle": "已保護“[[$1]]”",
        "modifiedarticleprotection": "已經更改“[[$1]]”嘅保護等級",
        "undeleterevdel": "Kó-yèn pá chui-sîn siû-thin phu-fun chhù-thet, fán chhù-hi phien mò-fap chin-hàng. Kó-yèn ngi-to liá-chúng chhìn-khóng, ngì pit-sî fán-sién fe̍t-chá fán-chhòng chui-sîn yí-kîn chhù-hi ke siû-thin. Tui-yî ngì mò-yû khièn-han hi kiám-sṳ ke siû-thin he mò-fap fî-fu̍k ke.",
        "undeletehistorynoadmin": "邇隻頁面已經分刪除,刪除原因顯示在下方編寫摘要肚。分刪除前嘅所有修訂版本,連同刪除前貢獻用戶等等細節單淨管理員做得看見。",
        "undelete-revision": "Chhù-thet pán-pún $1 chhṳ $2:",
-       "undeleterevision-missing": "無效或者丟失嘅修訂版本。汝可能使用矣有差錯嘅鏈接,或者本修訂版本既經分從存檔肚恢復或移除。",
+       "undeleterevision-missing": "Mò-háu fe̍t-chá tiû-sṳt ke siû-thin pán-pún. \nNgì khó-nèn sṳ́-yung yí yû chhâ-chho ke lièn-chiap, fe̍t-chá pún siû-thin pán-pún ki kîn-fûn chhiùng chhùn-tóng tú fî-fu̍k fe̍t yì-chhù.",
        "undeletebtn": "恢復",
        "undeletelink": "查看/恢復",
        "undeleteviewlink": "查看",
        "undeletecomment": "Ngièn-yîn:",
-       "undeletedrevisions": "$1隻修訂版本已經恢復",
-       "undeletedrevisions-files": "$1隻版本撈$2隻文件分恢復",
-       "undeletedfiles": "$1隻文件分恢復",
+       "undeletedrevisions": "$1-chak siû-thin pán-pún yí-kîn fî-fu̍k",
+       "undeletedrevisions-files": "$1-chak pán-pún lâu $2-chak vùn-khien fûn fî-fu̍k",
+       "undeletedfiles": "$1-chak vùn-khien fûn fî-fu̍k",
        "cannotundelete": "Fî-fu̍k sṳt-phai; khó-nèn chṳ̂-chhièn yí-kîn pûn khì-thâ-ngìn fî-fu̍k.",
-       "undeletedpage": "'''$1已經分恢復''' 請參考[[Special:Log/delete|刪除日誌]]來查詢刪除撈恢復記錄。",
-       "undelete-header": "假使愛查詢最近嘅記錄請參看[[Special:Log/delete|刪除日誌]]。",
-       "undelete-search-box": "搜尋已刪除頁面",
-       "undelete-search-prefix": "展示頁面自:",
-       "undelete-search-submit": "搜尋",
-       "undelete-no-results": "刪除記錄肚無符合嘅結果。",
-       "namespace": "名字空間:",
-       "invert": "反向選擇",
-       "blanknamespace": "(主要)",
-       "contributions": "{{GENDER:$1|用戶}}貢獻",
+       "undeletedpage": "<strong>$1 yí-kîn fûn fî-fu̍k</strong>\n\nChhiáng chhâm-kháu [[Special:Log/delete|san-chhù ngit-chì]] lòi chhà-sûn san-chhù lâu fî-fu̍k ki-liu̍k.",
+       "undelete-header": "Ká-sṳ́ oi chhà-sûn chui-khiûn ke ki-liu̍k chhiáng chhâm-khon [[Special:Log/delete|san-chhù ngit-chì]].",
+       "undelete-search-box": "Sêu-chhìm yí san-chhù ya̍p-mien",
+       "undelete-search-prefix": "Chán-sṳ ya̍p-mien chhṳ:",
+       "undelete-search-submit": "Sêu-chhìm",
+       "undelete-no-results": "San-chhù ki-liu̍k tú mò fù-ha̍p ke kiet-kó.",
+       "namespace": "Miàng-sṳ khûng-kiên:",
+       "invert": "Fán-hiong sién-tho̍k",
+       "namespace_association": "Siông-kôan miang-miàng khûng-kiên",
+       "blanknamespace": "(Chú-yeu)",
+       "contributions": "{{GENDER:$1|Yung-fu}} kung-hien",
        "contributions-title": "$1嘅用戶貢獻",
-       "mycontris": "貢獻",
+       "mycontris": "Kung-hien",
+       "anoncontribs": "Kung-hien",
        "contribsub2": "$1嘅貢獻($2)",
        "nocontribs": "毋尋到符合特徵嘅更改。",
        "uctop": "(最新修改)",
-       "month": "從邇月(或還較早):",
-       "year": "從邇年(或還較早):",
+       "month": "Chhiùng liá-ngie̍t (fe̍t hàn kha-chó):",
+       "year": "Chhiùng liá-ngièn (fe̍t hàn kha-chó):",
        "sp-contributions-newbies": "單淨展示新建用戶嘅貢獻",
        "sp-contributions-newbies-sub": "新手",
        "sp-contributions-blocklog": "封禁日誌",
        "sp-contributions-username": "IP地址或用戶名:",
        "sp-contributions-toponly": "單淨展示最新修訂版本嘅編寫",
        "sp-contributions-submit": "搜尋",
-       "whatlinkshere": "鏈接入頁面",
-       "whatlinkshere-title": "鏈接到“$1”嘅頁面",
-       "whatlinkshere-page": "頁面:",
-       "linkshere": "下背頁面鏈接到[[:$1]]:",
+       "whatlinkshere": "Lièn-chiap ngi̍p ya̍p-mien",
+       "whatlinkshere-title": "Lièn-chiap to \"$1\" ke ya̍p-mien",
+       "whatlinkshere-page": "Ya̍p-mien:",
+       "linkshere": "Hâ-poi ya̍p-mien lièn-chiap to <strong>[[:$1]]</strong>:",
        "nolinkshere": "無頁面鏈接到'''[[:$1]]'''。",
-       "nolinkshere-ns": "在所選嘅名字空間肚無頁面連接到[[:$1]]。",
-       "isredirect": "重定向頁",
-       "istemplate": "包含",
-       "isimage": "文件鏈接",
-       "whatlinkshere-prev": "前頭$1隻",
-       "whatlinkshere-next": "後背$1隻",
-       "whatlinkshere-links": "←連入",
-       "whatlinkshere-hideredirs": "$1重定向",
-       "whatlinkshere-hidetrans": "$1嵌入",
-       "whatlinkshere-hidelinks": "$1鏈接",
+       "nolinkshere-ns": "Chhai só-sién ke miàng-sṳ khûng-kiên tú mò ya̍p-mien lièn-chiap to [[:$1]].",
+       "isredirect": "chhùng-thin-hiong ya̍p",
+       "istemplate": "pâu-hàm",
+       "isimage": "vùn-khien lièn-chiap",
+       "whatlinkshere-prev": "chhièn-thèu $1-chak",
+       "whatlinkshere-next": "heu-poi $1-chak",
+       "whatlinkshere-links": "← lièn-ngi̍p",
+       "whatlinkshere-hideredirs": "$1 Chhùng-thin-hiong",
+       "whatlinkshere-hidetrans": "$1 pâu-hàm",
+       "whatlinkshere-hidelinks": "$1 lièn-kiet",
        "whatlinkshere-hideimages": "$1條文件鏈接",
-       "whatlinkshere-filters": "過濾器",
-       "blockip": "封禁用戶",
+       "whatlinkshere-filters": "Ko-lì-hi",
+       "blockip": "Fûng-kim {{GENDER:$1|yung-fu}}",
        "blockiptext": "用下背嘅表單來禁止來自某一特定IP地址嘅修改許可權。\n單淨在為防止破壞,撈符合[[{{MediaWiki:Policy-url}}|守則]]嘅情況下正做得採取邇行動。\n請在下背輸入一隻具體嘅理由(例如引述一隻分破壞嘅頁面)。",
-       "ipaddressorusername": "IP地址或用戶名:",
-       "ipbexpiry": "期限:",
-       "ipbreason": "原因:",
-       "ipbreason-dropdown": "*一般嘅封禁理由\n** 多次加入虛假資料\n** 刪除頁面內容\n** 外部鏈接廣告\n** 在頁面肚增加無意義文字\n** 無禮嘅行為、攻擊/騷擾別儕\n** 濫用多隻賬號\n** 做毋得接受嘅用戶名",
-       "ipbcreateaccount": "阻止創建新賬號",
-       "ipbenableautoblock": "自動查封邇用戶最後所用嘅IP地址,撈後來試圖編寫所用嘅所有地址",
-       "ipbsubmit": "查封邇用戶",
+       "ipaddressorusername": "IP thi-chí fe̍t yung-fu-miàng:",
+       "ipbexpiry": "Khì-han:",
+       "ipbreason": "Ngièn-yîn:",
+       "ipbreason-dropdown": "*Yit-pân ke fûng-kim lî-yù \n** Tô-chhṳ kâ-ngi̍p hî-ká chṳ̂-liau \n** San-chhù ya̍p-mien nui-yùng \n** Ngoi-phu lièn-chiap kóng-ko \n** Chhai ya̍p-mien tú chen-kâ mò yi-ngi vùn-sṳ \n** Mò-lî ke hàng-vì, kûng-kit / sâu-yéu phe̍t-sâ \n** Làm-yung tô-chak chòng-ho \n** Cho-m̀ tet chiap-su ke yung-fu-miàng",
+       "ipbcreateaccount": "Chú-chṳ́ chhóng-kien sîn chòng-ho",
+       "ipbenableautoblock": "Chhṳ-thûng chhà-fûng liá yung-fu chui-heu só yung ke IP thi-chí, lâu heu-lòi sṳ-thù phiên-siá só yung ke só-yû thi-chí",
+       "ipbsubmit": "Chhà-fûng liá yung-fu",
        "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": "Chhai chhà-fûng ngit-ki, fa̍t-chhiok chhà-fûng lie̍t-péu yî-khi̍p yung-fu lie̍t-péu chûng yún-chhòng yung-fu-miàng.",
-       "badipaddress": "無效IP地址",
-       "blockipsuccesssub": "查封成功",
+       "badipaddress": "Mò-háu IP thi-chí",
+       "blockipsuccesssub": "Chhà-fûng sṳ̀n-kûng",
        "blockipsuccesstext": "[[Special:Contributions/$1|$1]] yí-kîn pûn chhà-fûng. <br />Chhâm-siòng [[Special:BlockList|pûn-fûng IP thi-tiám lie̍t-péu]] yî fu̍k-sṳ́m chhà-fûng.",
-       "ipb-edit-dropdown": "編寫查封原因",
-       "ipb-unblock-addr": "解封$1",
-       "ipb-unblock": "解封用戶名或IP地址",
-       "ipb-blocklist": "查看今下嘅封禁",
-       "unblockip": "解封用戶",
-       "unblockiptext": "用下背嘅表單來恢復先前分查封嘅IP地址或用戶嘅寫權限。",
+       "ipb-edit-dropdown": "Phiên-siá chhà-fûng ngièn-yîn",
+       "ipb-unblock-addr": "Kié-fûng $1",
+       "ipb-unblock": "Kié-fûng yung-fu miàng fe̍t IP thi-chí",
+       "ipb-blocklist": "Chhà-khon kîm-hâ ke fûng-kim",
+       "unblockip": "Kié-fûng yung-fu",
+       "unblockiptext": "Yung hâ-poi ke péu-tân lòi fî-fu̍k siên-chhièn fûn chhà-fûng ke IP thi-chí fe̍t yung-fu ke siá-khièn han.",
        "ipusubmit": "Kié-chhù kim-fûng",
        "unblocked": "[[User:$1|$1]]已經分解封。",
-       "unblocked-id": "封禁$1已經分移除",
+       "unblocked-id": "Fûng-kim $1 yí-kîn fûn yì-chhù。",
        "ipblocklist": "分封用戶列表",
-       "ipblocklist-submit": "搜尋",
-       "infiniteblock": "無限期",
+       "ipblocklist-submit": "Sêu-chhìm",
+       "infiniteblock": "mò-han-khì",
        "expiringblock": "$1 $2 to-khì",
-       "anononlyblock": "單淨匿名用戶",
-       "noautoblockblock": "禁用自動查封",
-       "createaccountblock": "禁止創建賬戶",
-       "ipblocklist-empty": "查封列表係空嘅。",
-       "ipblocklist-no-results": "所請求嘅IP地址/用戶名無分查封。",
-       "blocklink": "查封",
+       "anononlyblock": "tân-chhiang nit-miàng yung-fu",
+       "noautoblockblock": "kim-yung chhṳ-thûng chhà-fûng",
+       "createaccountblock": "kim-chṳ́ chhóng-kien chòng-fu",
+       "ipblocklist-empty": "Chhà-fûng lie̍t-péu he khûng ke.",
+       "ipblocklist-no-results": "Só chhiáng-khiù ke IP thi-chí fe̍t yung-fu-miàng mò-fûn chhà-fûng.",
+       "blocklink": "chhà-fûng",
        "unblocklink": "解封",
        "change-blocklink": "更改封禁",
-       "contribslink": "貢獻",
+       "contribslink": "Kung-hien",
        "autoblocker": "Ngì-ke IP lâu pûn fûng-liáu ke \"$1\" he yit-yong ke. Fûng-só ngièn-yîn: \"$2\".",
        "blocklogpage": "查封日誌",
        "blocklogentry": "封禁[[$1]],到期時間係$2$3",
        "blocklogtext": "Liá-he kôan-yî yung-fu fûng-kim lâu kié-chhù fûng-kim chhâu-chok ke ki-liu̍k. Pûn chhṳ-thung fûng-kim ke IP thi-tiám mò-yû lie̍t-chhut. Chhiáng chhâm-kháu [[Special:BlockList|Pûn chhà-fûng ke IP thi-tiám lâu yung-fu lie̍t-péu]].",
        "unblocklogentry": "$1已分解封",
-       "block-log-flags-anononly": "單淨匿名用戶",
+       "block-log-flags-anononly": "tân-chhiang nit-miàng yung-fu",
        "block-log-flags-nocreate": "帳號建立已禁",
-       "block-log-flags-noautoblock": "禁用自動查封",
-       "range_block_disabled": "單淨管理員正做得創建禁止查封嘅範圍。",
+       "block-log-flags-noautoblock": "kim-yung chhṳ-thûng chhà-fûng",
+       "range_block_disabled": "Tân-chhiang Kón-lî-yèn chang cho-tet chhóng-kien kim-chṳ́ chhà-fûng ke fam-vì.",
        "ipb_expiry_invalid": "無效嘅終止時間。",
        "ipb_hide_invalid": "Put-tet yit-chak yung-fu; Kì yû chhêu-ko {{PLURAL:$1|$1}} chhṳ-su phiên-siá",
        "ipb_already_blocked": "Yí-kîn fûng-só \"$1\"",
-       "ipb_cant_unblock": "差錯: 尋毋到查封ID$1。可能已經解除封禁。",
-       "ip_range_invalid": "無效嘅IP範圍。",
-       "proxyblocker": "代理封鎖器",
-       "proxyblockreason": "汝嘅IP地址係一隻開放嘅代理,其已經分封鎖。請聯繫汝嘅網際網路服務提供商或技術支援者並講佢兜聽邇隻嚴重嘅安全問題。",
+       "ipb_cant_unblock": "Chhâ-chho: Chhìm m̀ -to chhà-fûng ID $1. Khó-nèn yí-kîn kié-chhù fûng-kim.",
+       "ip_range_invalid": "Mò-háu ke IP fam-vì.",
+       "proxyblocker": "Thoi-lî fûng-só-hi",
+       "proxyblockreason": "Ngì ke IP thi-chí he yit-chak khôi-piong ke thoi-lî, khì yí-kîn fûn-fûng-só. \nChhiáng lièn-hì ngì ke mióng-chi mióng-lu fu̍k-vu thì-kiûng-sông fe̍t kî-su̍t kî-yên-chá pin kóng kì-têu thâng liá-chak ngiàm-chhùng ke ôn-chhiòn mun-thì.",
        "sorbsreason": "Ngì-ke IP chhô-vi pûn DNSBL lie̍t-vi su̍k-yî khôi-fong thoi-lî fu̍k-vu-khí.",
        "sorbs_create_account_reason": "Ngì-ke IP chhô-vi pûn DNSBL lie̍t-vi su̍k-yî khôi-fong thoi-lî fu̍k-vu-khí. Só-yî ngì mò-fap kien-li̍p chong-ho.",
        "lockdb": "鎖定數據庫",
        "movepage-moved": "'''\"$1\" yí-kîn pûn yì-thung to \"$2\"'''",
        "articleexists": "Ke miàng-sṳ ke hong-mien yí-kîn chhùn-chhai, fe̍t-chá ngì sién-chet ke miàng-sṳ mò-háu. Chhiáng chai-hi sién yit-ke miàng-sṳ.",
        "movetalk": "Chhiáng thùng-sṳ̀ yì-thung tui-fa-chông",
-       "movelogpage": "移動日誌",
+       "movelogpage": "Yì-thûng ngit-chì",
        "movelogpagetext": "Yî-ha he yí-kîn yì-thung ke vùn-chông chhîn-tân.",
-       "movereason": "原因:",
+       "movereason": "Ngièn-yîn:",
        "revertmove": "恢復",
-       "delete_and_move_text": "==愛刪除==\n\n目標頁面\"[[:$1]]\"已經存在。汝確認愛刪除原頁面並進行移動係無?",
+       "delete_and_move_text": "Muk-phiêu ya̍p-mien \"[[:$1]]\" yí-kîn chhùn-chhai. \nNgì khok-ngin oi san-chhù ngièn ya̍p-mien pin chin-hàng yì-thûng he-mò?",
        "delete_and_move_confirm": "著,刪除邇頁",
        "delete_and_move_reason": "Chhù-thet yî-phien yì-thung",
        "selfmove": "Ngièn-sṳ́ phêu-thì khi̍p muk-phêu phêu-thì siông-thùng, vù-nèn yì-thung yit-chông fu̍k-koi pún-sṳ̂n.",
-       "export": "導出頁面",
+       "export": "Thô-chhut ya̍p-mien",
        "exporttext": "汝做得將特定頁面或一組頁面嘅文字以及編輯歷史用XML格式導出;恁樣做得將有關頁面通過「[[Special:Import|導入頁面]]」頁面導入到另一隻執行MediaWiki嘅網站。\n\n愛導出頁面,請在下背嘅文字框肚輸入頁面標題,每行一隻標題,並選擇汝係毋係愛匯出帶有頁面歷史嘅以前嘅修訂版本,或係單淨選擇導出帶有最後一次編寫信息嘅當前修訂版本。\n\n另外汝還可以利用鏈接導出文件,例如汝做得使用[[{{#Special:Export}}/{{MediaWiki:Mainpage}}]]導出「[[{{MediaWiki:Mainpage}}]]」頁面。",
        "exportcuronly": "單淨導出當前版本,毋包含完整歷史版本",
        "exportnohistory": "----\n'''注意:''' 由於性能原因,從本表單導出頁面嘅全部歷史已分停用。",
        "allmessagesname": "名",
        "allmessagesdefault": "默認信息文字",
        "allmessagescurrent": "Tông-chhièn ke vùn-sṳ",
-       "allmessagestext": "Liá-piên lie̍t-chhut só-yû hí-khó thin-chṳ ke ne-thúng kie-mien.\nPlease visit [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] and [//translatewiki.net translatewiki.net] if you wish to contribute to the generic MediaWiki localisation.",
+       "allmessagestext": "Liá-piên lie̍t-chhut só-yû hí-khó thin-chṳ ke ne-thúng kie-mien.\nPlease visit [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] and [https://translatewiki.net translatewiki.net] if you wish to contribute to the generic MediaWiki localisation.",
        "allmessagesnotsupportedDB": "Ne-thúng kie-mien kûng-yung chhu-yî kôan-pit chong-thai (wgUseDatabaseMessages)。",
-       "thumbnail-more": "放大",
+       "thumbnail-more": "Piong-thai",
        "filemissing": "Mò-fap cháu-to tóng-on",
        "thumbnail_error": "建立縮略圖差錯:$1",
        "djvu_page_error": "DjVu頁面超出範圍",
        "importlogpagetext": "管理性導入在其他Wiki上有編寫歷史嘅頁面",
        "import-logentry-upload-detail": "$1-ke siû-thin",
        "import-logentry-interwiki-detail": "Lòi-chhṳ $2-ke $1-ke siû-thin",
-       "tooltip-pt-userpage": "汝嘅用戶頁面",
+       "tooltip-pt-userpage": "{{GENDER:|Ngì ke sṳ́-yung-chá}} ya̍p-mien",
        "tooltip-pt-anonuserpage": "Ngì-ke phiên-siá pún-chham só yung IP ke tui-yin yung-fu-chông",
-       "tooltip-pt-mytalk": "汝嘅交流頁",
+       "tooltip-pt-mytalk": "{{GENDER:|Ngì ke}} kâu-liù ya̍p",
        "tooltip-pt-anontalk": "Tui-yî lòi-chhṳ chhṳ́IP thi-tiám phiên-siá ke tui-fa",
-       "tooltip-pt-preferences": "汝嘅偏好設定",
-       "tooltip-pt-watchlist": "汝監視中頁面嘅更改列表",
-       "tooltip-pt-mycontris": "汝嘅貢獻列表",
-       "tooltip-pt-login": "建議汝登入,但係並非必須嘅",
-       "tooltip-pt-logout": "登出",
-       "tooltip-ca-talk": "關於頁面正文嘅討論",
-       "tooltip-ca-edit": "汝做得編寫邇頁,請在保存前用預覽撳掣。",
-       "tooltip-ca-addsection": "開始一隻新段落",
-       "tooltip-ca-viewsource": "本頁面受到保護。\n汝做得查看其嘅源碼。",
-       "tooltip-ca-history": "本頁面早先嘅修訂版本",
+       "tooltip-pt-preferences": "{{GENDER:|Ngì ke}} phiên-hó sat-thin",
+       "tooltip-pt-watchlist": "Ngì kâm-sṳ chûng ya̍p-mien ke kiên-kói lie̍t-péu",
+       "tooltip-pt-mycontris": "{{GENDER:|Ngì ke}} kung-hien lie̍t-péu",
+       "tooltip-pt-login": "Kien-ngi ngì tên-ngi̍p, than-he pin fî pit-sî ke",
+       "tooltip-pt-logout": "Tên-chhut",
+       "tooltip-ca-talk": "Kôan-yî ya̍p-mien chang-vùn ke thó-lun",
+       "tooltip-ca-edit": "Phiên-siá pún-ya̍p",
+       "tooltip-ca-addsection": "Khôi-sṳ́ yit-chak sîn thon-lo̍k",
+       "tooltip-ca-viewsource": "Pún ya̍p-mien su-to pó-fu. \nNgì cho-tet chhà-khon khì ke ngièn-ma.",
+       "tooltip-ca-history": "Pún ya̍p-mien chó-siên ke siû-thin pán-pún",
        "tooltip-ca-protect": "保護邇頁",
        "tooltip-ca-delete": "刪除邇頁",
        "tooltip-ca-undelete": "Chiông liá-ke vùn-chông fî-fu̍k to pûn chhù-hi yî-chhièn ke chhong-khóng",
-       "tooltip-ca-move": "移動本頁",
-       "tooltip-ca-watch": "加邇頁入監視列表",
+       "tooltip-ca-move": "Yì-thûng pún-ya̍p",
+       "tooltip-ca-watch": "Kâ liá-ya̍p ngi̍p kâm-sṳ lie̍t-péu",
        "tooltip-ca-unwatch": "從監視列表肚移除本頁",
-       "tooltip-search": "搜尋{{SITENAME}}",
-       "tooltip-search-go": "係講相同嘅標題存在嘅話就直接到遐頁",
-       "tooltip-search-fulltext": "搜查包含邇兜文字嘅頁",
-       "tooltip-p-logo": "訪問頭頁",
-       "tooltip-n-mainpage": "探訪頭頁",
-       "tooltip-n-mainpage-description": "探訪頭頁",
-       "tooltip-n-portal": "關於本計劃,汝可以做麼嘅,應該愛樣般做",
-       "tooltip-n-currentevents": "提供當前新聞事件嘅背景信息",
-       "tooltip-n-recentchanges": "列出網站肚嘅最近修改",
-       "tooltip-n-randompage": "隨機載入一隻頁面",
-       "tooltip-n-help": "尋找幫手",
-       "tooltip-t-whatlinkshere": "全部鏈接入本頁嘅維基頁面列表",
-       "tooltip-t-recentchangeslinked": "頁面鏈接出嘅所有頁面嘅更改",
+       "tooltip-search": "Sêu-chhìm {{SITENAME}}",
+       "tooltip-search-go": "He kóng siông-thùng ke phiêu-thì chhùn-chhai ke fa chhiu chhṳ̍t-chiap to hâ-ya̍p",
+       "tooltip-search-fulltext": "Sêu-chhà pâu-hàm liá-têu vùn-sṳ ke ya̍p",
+       "tooltip-p-logo": "Fóng-mun thèu-ya̍p",
+       "tooltip-n-mainpage": "Thâm-fóng thèu-ya̍p",
+       "tooltip-n-mainpage-description": "Thâm-fóng thèu-ya̍p",
+       "tooltip-n-portal": "Kôan-yî pún kie-va̍k, ngì cho-tet cho má-ke, yin-kâi oi ngióng-pân cho",
+       "tooltip-n-currentevents": "Thì-kiûng tông-chhièn sîn-vùn sṳ-khien ke poi-kín sin-sit",
+       "tooltip-n-recentchanges": "Lie̍t-chhut mióng-chhàm tú ke chui-khiûn siû-kói",
+       "tooltip-n-randompage": "Sùi-kî chai-ngi̍p yit-chak ya̍p-mien",
+       "tooltip-n-help": "Chhìm-cháu pông-sú",
+       "tooltip-t-whatlinkshere": "Chhiòn-phu lièn-chiap ngi̍p pún-ya̍p ke Vì-kî ya̍p-mien lie̍t-péu",
+       "tooltip-t-recentchangeslinked": "Ya̍p-mien lièn-chiap chhut ke só-yû ya̍p-mien ke kiên-kói",
        "tooltip-feed-rss": "Chṳ́-thin pún vùn-chông li̍t-sṳ́ ke RSS chṳ̂-liau",
-       "tooltip-feed-atom": "訂閱邇頁嘅Atom源",
-       "tooltip-t-contributions": "查看邇隻用戶嘅貢獻列表",
+       "tooltip-feed-atom": "Thin-ye̍t liá-ya̍p ke Atom ngièn",
+       "tooltip-t-contributions": "Chhà-khon {{GENDER:$1|liá-chak yung-fu}} ke kung-hien lie̍t-péu",
        "tooltip-t-emailuser": "向邇隻用戶發送電子郵件",
-       "tooltip-t-upload": "上傳文件",
-       "tooltip-t-specialpages": "全部特殊文章嘅列表",
-       "tooltip-t-print": "本頁面做得打印嘅版本",
-       "tooltip-t-permalink": "邇隻頁面版本嘅固定連結",
-       "tooltip-ca-nstab-main": "查看內容頁",
-       "tooltip-ca-nstab-user": "查看用戶頁面",
+       "tooltip-t-upload": "Sông-chhòn vùn-khien",
+       "tooltip-t-specialpages": "Chhiòn-phu thi̍t-sû vùn-chông ke lie̍t-péu",
+       "tooltip-t-print": "Pún ya̍p-mien cho-tet tá-yin ke pán-pún",
+       "tooltip-t-permalink": "Liá-chak ya̍p-mien pán-pún ke ku-thin lièn-kiet",
+       "tooltip-ca-nstab-main": "Chhà-khon nui-yùng ya̍p",
+       "tooltip-ca-nstab-user": "Chhà-khon yung-fu ya̍p-mien",
        "tooltip-ca-nstab-media": "Chhà-khon hìn-thí-chông",
-       "tooltip-ca-nstab-special": "本頁面係特殊頁面,汝做毋得編寫本頁",
-       "tooltip-ca-nstab-project": "查看項目頁面",
-       "tooltip-ca-nstab-image": "查看文件頁面",
+       "tooltip-ca-nstab-special": "Pún ya̍p-mien he thi̍t-sû ya̍p-mien, ngì cho-m̀-tet phiên-siá pún-ya̍p",
+       "tooltip-ca-nstab-project": "Chhà-khon hong muk ya̍p-mien",
+       "tooltip-ca-nstab-image": "Chhà-khon vùn-khien ya̍p-mien",
        "tooltip-ca-nstab-mediawiki": "Chhà-khon ne-thúng chṳ̂-liau",
-       "tooltip-ca-nstab-template": "查看模板",
+       "tooltip-ca-nstab-template": "Chhà-khon mù-pán",
        "tooltip-ca-nstab-help": "Chhà-khon pông-chhu thiàu-muk",
-       "tooltip-ca-nstab-category": "查看分類頁面",
+       "tooltip-ca-nstab-category": "Chhà-khon fûn-lui ya̍p-mien",
        "tooltip-minoredit": "標記做細微修改",
-       "tooltip-save": "保存汝嘅修改",
-       "tooltip-preview": "預覽汝嘅編寫,請先使用本功能後再保存!",
-       "tooltip-diff": "展示汝對頁面嘅貢獻",
+       "tooltip-save": "Pó-chhùn ngì-ke siû-kói",
+       "tooltip-preview": "Yi-lám ngì-ke phiên-siá, chhiáng siên sṳ́-yung pún kûng-nèn heu chai pó-chhùn.",
+       "tooltip-diff": "Chán-sṳ ngì tui ya̍p-mien ke kung-hien",
        "tooltip-compareselectedversions": "查看本頁分點選嘅兩個版本間嘅差別",
        "tooltip-watch": "加邇頁入監視列表",
        "tooltip-recreate": "Chhùng-kien ke-vùn-chông, mò-lun he-feu pûn chhù-chhîn",
-       "tooltip-rollback": "撳“打轉頭”恢復上一位貢獻人對本頁面嘅編寫",
+       "tooltip-rollback": "Khim \"tá chón-thèu\" fî-fu̍k sông yit-vi kung-hien-ngìn tui pún ya̍p-mien ke phiên-siá",
        "tooltip-undo": "“撤銷”做得在編寫模式上開啟編輯寫表格來方便復原。其允許在摘要肚加入原因。",
-       "tooltip-summary": "輸入一條簡短嘅摘要",
+       "tooltip-summary": "Sû-ngi̍p yit-thiàu kién-tón ke chak-yeu",
        "common.css": "/* Chhṳ́-chhu ke CSS chiông-chhiu yin-yung chhai só-yû ke mien-pán */",
        "common.js": "/* Chhṳ́-chhu ke JavaScript chiông chai-ngi̍p yî só-yû ying-fu mî yit-ke vùn-chông. */",
        "anonymous": "{{SITENAME}} ke ngia̍k-miàng yung-fu",
        "spambot_username": "MediaWiki kóng-ko chhîn-chhù",
        "spam_reverting": "Fî-fu̍k to put pâu-hàm lièn-kiet chṳ $1 ke chui-khiûn pán-pún",
        "spam_blanking": "Só-yû pâu-hàm lièn-kiet chṳ $1 ke siû-thin, chhîn-v",
+       "simpleantispam-label": "Fòng là-sap sêu-sit kiám-chhà yung ke. \nChhiáng  <strong>cho-m̀-tet </strong> thiàm-siá liá-chak làn-vi!",
+       "pageinfo-toolboxlink": "Ya̍p-mien chṳ̂-sín",
        "markaspatrolleddiff": "Phêu-ki sṳ̀n-vì yí-kîn kiám-chhà",
        "markaspatrolledtext": "Phêu-ki chhṳ́ vùn-chông sṳ̀n-vì yí-kîn kiám-chhà",
        "markedaspatrolled": "Phêu-ki yí-kîn kiám-chhà",
        "markedaspatrollederror-noautopatrol": "Ngì mò-fap chiông ngì chhṳ-kí só-chok ke kiên-kói phêu-ki sṳ̀n-vì yí-kîn kiám-chhà.",
        "patrol-log-page": "巡邏檢查日誌",
        "deletedrevision": "已刪除舊版本$1",
-       "previousdiff": "←上隻版本",
-       "nextdiff": "下隻版本→",
+       "previousdiff": "← Sông-hak pán-pún",
+       "nextdiff": "Hâ-chak pán-pún →",
        "mediawarning": "'''Kín-ko''': Ke-tóng-on khó-nèn pâu-hàm ok-yi am-ho, chṳp-hàng kì khó-nèn tui ngì-ke ne-thúng tai-lòi ngùi-hiám.",
        "imagemaxsize": "Chhai thù-chhiong mèu-siá chông tui thù-chhiong thai-séu han-chṳ he:",
        "thumbsize": "Lio̍k-thù thai-séu:",
        "file-info": "tóng-on thai-séu: $1, MIME lui-hìn: $2",
-       "file-info-size": "$1 × $2像素,文件大小:$3,MIME類型:$4",
-       "file-nohires": "無做得提供嘅還較高分辨率。",
+       "file-info-size": "$1 × $2 chhiong-su, vùn-khien thai-séu: $3, MIME lui-hîn: $4",
+       "file-nohires": "Mò cho-tet thì-kiûng ke hàn kha-kô fûn-phièn-sut.",
        "svg-long-desc": "SVG文件,尺寸:$1×$2像素,文件大細:$3",
-       "show-big-image": "完整分辨率",
+       "show-big-image": "Ngièn-pún tóng-on",
+       "show-big-image-preview": "Yi-lám thai séu: $1.",
+       "show-big-image-other": "Khì-thâ {{PLURAL:$2||}} kié-sak-thu: $1.",
+       "show-big-image-size": "$1 × $2 chhiong-su",
        "newimages": "Sîn-kien thù-chhiong ke va̍k-lòng",
        "imagelisttext": "Yî-ha he on $2 phài-lie̍t ke $1-ke tóng-on lie̍t-péu.",
        "noimages": "Mò-khó kiám-sṳ thù-chhiong.",
        "bydate": "on-cheu ngit-khì",
        "sp-newimages-showfrom": "Chhiùng $1 khôi-sṳ́ hién-sṳ sîn thù-phién",
        "bad_image_list": "請按照下列格式編寫:\n\n單淨係有(以*開頭)列出嘅項目會分考慮。\n每一行嘅第一條鏈接必須係損壞文件嘅鏈接。\n然後同一行後方嘅鏈接會分看做例外,也就係講邇文件做得在哪兜頁面肚分顯示。",
-       "metadata": "元數據",
+       "metadata": "Ngièn sú-kí",
        "metadata-help": "邇文件肚包含有擴展嘅信息。邇兜信息可能係由數碼相機或掃描儀在創建或數字化過程肚所加入嘅。\n\n係講邇文件嘅源文件已經分修改,一兜信息在修改後嘅文件肚將毋做得完全反映出來。",
        "metadata-expand": "Hién-sṳ siòng-se ke chṳ̂-liau",
        "metadata-collapse": "Yún-chhòng siòng-se ke chṳ̂-liau",
        "metadata-fields": "在本信息肚所列出嘅EXIF元數據域將包含在圖片顯示頁面,當元數據表損壞時單淨顯示下背信息。\n其他嘅元數據默認做隱藏。\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",
-       "namespacesall": "全部",
-       "monthsall": "全部",
+       "exif-orientation": "Fông-vi",
+       "exif-xresolution": "Súi-phìn kié-sak-thu",
+       "exif-yresolution": "Chhùi-chhṳ̍t kié-sak-thu",
+       "exif-datetime": "Tóng-on siû-kói ngit-khì sṳ̀-kiên",
+       "exif-make": "Siông-kî chṳ-chho-sông",
+       "exif-model": "Siông-kî hîn-ho",
+       "exif-software": "Sṳ́-yung ngiôn-thí",
+       "exif-exifversion": "Exif pán-pún",
+       "exif-colorspace": "Set-chhái khûng-kiên",
+       "exif-datetimeoriginal": "Chṳ̂-liau sán-sâng ke ngit-khì sṳ̀-kiên",
+       "exif-datetimedigitized": "Sú-vi-fa ke ngit-khì sṳ̀-kiên",
+       "exif-orientation-1": "Phiêu-chún",
+       "namespacesall": "chhiòn-phu",
+       "monthsall": "chhiòn-phu",
        "confirmemail": "確認電郵地址",
        "confirmemail_noemail": "汝還吂在汝嘅[[Special:Preferences|用戶偏好設定]]肚輸入一隻有效嘅電郵地址。",
        "confirmemail_text": "Chhṳ́ mióng-chham yêu-khiù ngì chhai sṳ́-yung sin-siông kûng-nèn chṳ̂-chhièn ngiam-chṳn ngì-ke sin-siông thi-tiám. Tiám-kit yî-ha on-néu chhṳ̍t-hiong ngì-ke sin-siông fat-sung yit-fûng khok-ngin sin-siông. Ke-sin-siông pâu-hàm yû yit-hòng me̍t-me̍t lièn-kiet; chhiáng chhai ngì-ke hi-khí chûng kâ-chai chhṳ́ lièn-kiet yî khok-ngin ngì-ke sin-siông thi-tiám he yû-háu ke.",
        "watchlisttools-view": "查看有關更改",
        "watchlisttools-edit": "查看並編寫監視列表",
        "watchlisttools-raw": "編寫原始監視列表",
+       "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|kâu-liù]])",
        "duplicate-defaultsort": "'''警告:'''默認排序關鍵字“$2”蓋過矣先前嘅默認排序關鍵字“$1”。",
        "version": "Pán-pún",
        "fileduplicatesearch-submit": "Chhìm-cháu",
-       "specialpages": "特殊頁",
+       "specialpages": "Thi̍t-sû ya̍p",
        "external_image_whitelist": " #留下撈邇行一樣嘅文字<pre>\n#在下背(//中間部份)輸入正則表達式\n#邇兜將會撈外部(已超鏈接嘅)圖片配合\n#遐兜配合上嘅會顯示成圖片,否則就單淨會顯示成鏈接\n#有#開頭嘅行會當成意見\n#大小寫並無區分\n\n#在邇行上片輸入全部正則表達式。留下撈邇行一樣嘅文字</pre>",
-       "tag-filter": "[[Special:Tags|標籤]]過濾器:",
+       "tag-filter": "[[Special:Tags|Phiêu-chhiam]] ko-lì-hi:",
+       "tag-list-wrapper": "([[Special:Tags|$1 ke phiêu-chhiam]]: $2)",
+       "logentry-delete-delete": "$1 san-chhù ya̍p-mien $3",
        "revdelete-restricted": "yí-kîn yin-yung han-tsṳ tsṳ tshâu-tsok-yèn",
        "revdelete-unrestricted": "yí-kîn yì-tshù yû-kûan tshâu-tsok-yè ke han-tsṳ",
+       "logentry-move-move": "$1 {{GENDER:$2|yí-kîn yì-thûng}} ya̍p-mien $3 to $4",
+       "logentry-newusers-create": "Yí-kîn {{GENDER:$2|kien-li̍p}} sṳ́-yung-chá chong-ho  $1",
+       "logentry-upload-upload": "$1 {{GENDER:$2|yí-kîn sông-chhòn}} $3",
        "rightsnone": "(無)",
-       "revdelete-summary": "piên-sip tsak-yêu"
+       "revdelete-summary": "piên-sip tsak-yêu",
+       "searchsuggest-search": "Chhìm-cháu"
 }
index d7e0e36..7e94b9c 100644 (file)
@@ -42,7 +42,7 @@
        "tog-hideminor": "הסתרת עריכות משניות בדף השינויים האחרונים",
        "tog-hidepatrolled": "הסתרת עריכות בדוקות בדף השינויים האחרונים",
        "tog-newpageshidepatrolled": "הסתרת דפים בדוקים ברשימת הדפים החדשים",
-       "tog-hidecategorization": "הסתרת שינויים בקטגוריות של דפים",
+       "tog-hidecategorization": "הסתרת שינויים בקטגוריות",
        "tog-extendwatchlist": "הרחבת רשימת המעקב כך שתציג את כל השינויים, לא רק את השינויים האחרונים בכל דף",
        "tog-usenewrc": "קיבוץ השינויים לפי דפים בדף השינויים האחרונים וברשימת המעקב",
        "tog-numberheadings": "מספור כותרות אוטומטי",
@@ -60,7 +60,7 @@
        "tog-previewonfirst": "הצגת תצוגה מקדימה בעריכה הראשונה",
        "tog-enotifwatchlistpages": "לשלוח אליי דוא\"ל כאשר משתנה דף או קובץ ברשימת המעקב שלי",
        "tog-enotifusertalkpages": "לשלוח אליי דוא\"ל כאשר נעשה שינוי בדף שיחת המשתמש שלי",
-       "tog-enotifminoredits": "×\9cש×\9c×\95×\97 ×\90×\9c×\99×\99 ×\93×\95×\90\"×\9c ×\92×\9d ×¢×\9c ×¢×¨×\99×\9b×\95ת ×\9eשנ×\99×\95ת ×©×\9c דפים וקבצים",
+       "tog-enotifminoredits": "×\9cש×\9c×\95×\97 ×\90×\9c×\99×\99 ×\93×\95×\90\"×\9c ×\92×\9d ×¢×\9c ×¢×¨×\99×\9b×\95ת ×\9eשנ×\99×\95ת ×\91דפים וקבצים",
        "tog-enotifrevealaddr": "חשיפת כתובת הדוא\"ל שלי בהתראות דוא\"ל",
        "tog-shownumberswatching": "הצגת מספר המשתמשים העוקבים",
        "tog-oldsig": "החתימה הנוכחית:",
@@ -74,9 +74,9 @@
        "tog-watchlistreloadautomatically": "רענון אוטומטי של רשימת המעקב בכל פעם שמסנן משתנה (דרוש JavaScript)",
        "tog-watchlisthideanons": "הסתרת עריכות של משתמשים אנונימיים ברשימת המעקב",
        "tog-watchlisthidepatrolled": "הסתרת עריכות בדוקות ברשימת המעקב",
-       "tog-watchlisthidecategorization": "הסתרת שינויים בקטגוריות של דפים",
+       "tog-watchlisthidecategorization": "הסתרת שינויים בקטגוריות",
        "tog-ccmeonemails": "לשלוח אליי העתקים של הודעות דוא\"ל שאני {{GENDER:|שולח|שולחת}} למשתמשים",
-       "tog-diffonly": "×\91×\99×\98×\95×\9c ×\94צ×\92ת ×ª×\95×\9b×\9f ×\94×\93×£ ×\9eת×\97ת ×\9c×\94ש×\95×\95×\90ת הגרסאות",
+       "tog-diffonly": "×\9c×\90 ×\9c×\94צ×\99×\92 ×\90ת ×ª×\95×\9b×\9f ×\94×\93×£ ×\9eת×\97ת ×\9c×\94×\91×\93×\9c×\99×\9d ×\91×\99×\9f הגרסאות",
        "tog-showhiddencats": "הצגת קטגוריות מוסתרות",
        "tog-norollbackdiff": "לא להציג את ההבדלים בין הגרסאות לאחר ביצוע שחזור",
        "tog-useeditwarning": "הצגת אזהרה בעת עזיבת דף עריכה עם שינויים שטרם נשמרו",
        "category_header": "דפים בקטגוריה \"$1\"",
        "subcategories": "קטגוריות משנה",
        "category-media-header": "קובצי מדיה בקטגוריה \"$1\"",
-       "category-empty": "<strong>קטגוריה זו אינה כוללת דפים או קובצי מדיה.</strong>",
+       "category-empty": "<em>קטגוריה זו אינה מכילה כרגע דפים או קובצי מדיה.</em>",
        "hidden-categories": "{{PLURAL:$1|קטגוריה מוסתרת|קטגוריות מוסתרות}}",
        "hidden-category-category": "קטגוריות מוסתרות",
        "category-subcat-count": "{{PLURAL:$2|קטגוריה זו כוללת את קטגוריית המשנה הבאה בלבד.|קטגוריה זו כוללת את {{PLURAL:$1|קטגוריית המשנה המוצגת להלן|$1 קטגוריות המשנה המוצגות להלן}}, וכוללת בסך־הכול $2 קטגוריות משנה.}}",
        "navigation": "ניווט",
        "and": "&#32;וגם",
        "qbfind": "חיפוש",
-       "qbbrowse": "×\93פ×\93×\95×£",
+       "qbbrowse": "× ×\99×\95×\95×\98",
        "qbedit": "עריכה",
        "qbpageoptions": "אפשרויות דף",
        "qbmyoptions": "האפשרויות שלי",
        "privacy": "מדיניות הפרטיות",
        "privacypage": "Project:מדיניות הפרטיות",
        "badaccess": "שגיאה בהרשאות",
-       "badaccess-group0": "×\90×\99× ×\9a ×\9e×\95רש×\94 ×\9c×\91צע ×\90ת ×\94פע×\95×\9c×\94 ×©×\91×\99קשת.",
-       "badaccess-groups": "הפעולה שביקשת לבצע מוגבלת למשתמשים ב{{PLURAL:$2|קבוצה הבאה|אחת הקבוצות הבאות}}: $1.",
+       "badaccess-group0": "×\90×\99×\9f {{GENDER:|×\9c×\9a\9c×\9a\9c×\9b×\9d}} ×\94רש×\90×\94 ×\9c×\91צע ×\90ת ×\94פע×\95×\9c×\94 ×©{{GENDER:|×\91×\99קשת|×\91×\99קשת|×\91×\99קשת×\9d}}.",
+       "badaccess-groups": "הפעולה ש{{GENDER:|ביקשת|ביקשת|ביקשתם}} לבצע מוגבלת למשתמשים ב{{PLURAL:$2|קבוצה הבאה|אחת הקבוצות הבאות}}: $1.",
        "versionrequired": "נדרשת גרסה $1 של מדיה־ויקי",
        "versionrequiredtext": "גרסה $1 של מדיה־ויקי נדרשת לשימוש בדף זה. למידע נוסף, ראו את [[Special:Version|דף הגרסה]].",
        "ok": "אישור",
        "filenotfound": "הקובץ \"$1\" לא נמצא.",
        "unexpected": "ערך לא צפוי: \"$1\"=\"$2\"",
        "formerror": "שגיאה: לא ניתן היה לשלוח את הטופס.",
-       "badarticleerror": "×\9c×\90 × ×\99ת×\9f ×\9c×\91צע ×¤×¢×\95×\9c×\94 ×\96×\95 בדף זה.",
+       "badarticleerror": "×\9c×\90 × ×\99ת×\9f ×\9c×\91צע ×\90ת ×\94פע×\95×\9c×\94 ×\94×\96×\90ת בדף זה.",
        "cannotdelete": "לא ניתן היה למחוק את הדף או הקובץ \"$1\".\nייתכן שהוא כבר נמחק על־ידי משתמש אחר.",
        "cannotdelete-title": "לא ניתן למחוק את הדף \"$1\"",
        "delete-hook-aborted": "המחיקה הופסקה על־ידי מבנה Hook.\nלא ניתן הסבר.",
        "actionthrottled": "הפעולה הוגבלה",
        "actionthrottledtext": "כאמצעי נגד שימוש לרעה, קיימת מגבלה על ביצוע פעולה זו פעמים רבות מדי בזמן קצר, וחרגת מהמגבלה הזאת.\nנא לנסות שוב בעוד מספר דקות.",
        "protectedpagetext": "דף זה מוגן כדי למנוע עריכה ופעולות אחרות.",
-       "viewsourcetext": "באפשרותכם לצפות בטקסט המקור של הדף ולהעתיקו.",
+       "viewsourcetext": "ב{{GENDER:|אפשרותך|אפשרותך|אפשרותכם}} לצפות בטקסט המקור של הדף ולהעתיקו.",
        "viewyourtext": "באפשרותך לצפות בטקסט המקור של <strong>העריכות שלך</strong> בדף הזה ולהעתיקו.",
-       "protectedinterface": "×\93×£ ×\96×\94 ×\94×\95×\90 ×\90×\97×\93 ×\9eס×\93רת ×\93פ×\99×\9d ×\94×\9eספק×\99×\9d ×\94×\95×\93×¢×\95ת ×\9eער×\9bת ×\9cת×\95×\9b× ×\94 ×\91×\90תר ×\95×\99ק×\99 ×\96×\94, ×\95×\9e×\95×\92×\9f ×\9b×\93×\99 ×\9c×\9e× ×\95×¢ ×\94ש×\97ת×\95ת.\n×\9b×\93×\99 ×\9c×\94×\95ס×\99×£ ×\90×\95 ×\9cשנ×\95ת ×ª×¨×\92×\95×\9e×\99×\9d ×\91×\9b×\9c ×\90תר×\99 ×\94×\95×\95×\99ק×\99, ×\90× ×\90 ×\94שת×\9eש×\95 ×\91Ö¾[//translatewiki.net/ translatewiki.net], פרויקט התרגום של מדיה־ויקי.",
-       "editinginterface": "<strong>אזהרה:</strong> הדף שאתם עורכים הוא אחד הדפים המספקים הודעות מערכת לתוכנה.\nשינויים בדף זה ישפיעו על תצוגת ממשק המשתמש של משתמשים אחרים באתר ויקי זה.",
-       "translateinterface": "×\9b×\93×\99 ×\9c×\94×\95ס×\99×£ ×\90×\95 ×\9cשנ×\95ת ×ª×¨×\92×\95×\9e×\99×\9d ×¢×\91×\95ר ×\9b×\9c ×\90תר×\99 ×\94×\95×\95×\99ק×\99, ×\99ש ×\9c×\94שת×\9eש ×\91Ö¾[//translatewiki.net/ translatewiki.net], פרויקט התרגום של מדיה־ויקי.",
+       "protectedinterface": "×\93×£ ×\96×\94 ×\94×\95×\90 ×\90×\97×\93 ×\94×\93פ×\99×\9d ×\94×\9eספק×\99×\9d ×\94×\95×\93×¢×\95ת ×\9eער×\9bת ×\9cת×\95×\9b× ×\94 ×©×\9eפע×\99×\9c×\94 ×\90ת {{SITENAME}}, ×\95×\94×\95×\90 ×\9e×\95×\92×\9f ×\9b×\93×\99 ×\9c×\9e× ×\95×¢ ×\94ש×\97ת×\95ת.\n×\9b×\93×\99 ×\9c×\94×\95ס×\99×£ ×\90×\95 ×\9cשנ×\95ת ×ª×¨×\92×\95×\9e×\99×\9d ×©×\9c ×\94×\95×\93×¢×\95ת ×\9eער×\9bת ×¢×\91×\95ר ×\9b×\9c ×\90תר×\99 ×\94×\95×\95×\99ק×\99, ×\99ש ×\9c×\94שת×\9eש ×\91Ö¾[https://translatewiki.net/ translatewiki.net], פרויקט התרגום של מדיה־ויקי.",
+       "editinginterface": "<strong>אזהרה:</strong> הדף ש{{GENDER:|אתה עורך|את עורכת|אתם עורכים}} הוא אחד הדפים המספקים הודעות מערכת לתוכנה שמפעילה את {{SITENAME}}.\nשינויים בדף הזה ישפיעו על ממשק המשתמש של משתמשים אחרים באתר.",
+       "translateinterface": "×\9b×\93×\99 ×\9c×\94×\95ס×\99×£ ×\90×\95 ×\9cשנ×\95ת ×ª×¨×\92×\95×\9e×\99×\9d ×©×\9c ×\94×\95×\93×¢×\95ת ×\9eער×\9bת ×¢×\91×\95ר ×\9b×\9c ×\90תר×\99 ×\94×\95×\95×\99ק×\99, ×\99ש ×\9c×\94שת×\9eש ×\91Ö¾[https://translatewiki.net/ translatewiki.net], פרויקט התרגום של מדיה־ויקי.",
        "cascadeprotected": "דף זה מוגן מעריכה כי הוא מוכלל {{PLURAL:$1|בדף הבא, שמופעלת עליו|בדפים הבאים, שמופעלת עליהם}} הגנה מדורגת:\n$2",
-       "namespaceprotected": "אין לך הרשאה לערוך דפים במרחב השם <strong>$1</strong>.",
+       "namespaceprotected": "אין {{GENDER:|לך|לך|לכם}} הרשאה לערוך דפים במרחב השם <strong>$1</strong>.",
        "customcssprotected": "אינך מורשה לערוך דף CSS זה כיוון שהוא כולל הגדרות אישיות של משתמש אחר.",
        "customjsprotected": "אינך מורשה לערוך דף JavaScript זה כיוון שהוא כולל הגדרות אישיות של משתמש אחר.",
        "mycustomcssprotected": "אין לך הרשאה לערוך דף CSS זה.",
        "createacct-benefit-body3": "{{PLURAL:$1|תורם|תורמים}} לאחרונה",
        "badretype": "הסיסמאות שהזנת אינן מתאימות.",
        "usernameinprogress": "יצירת חשבון עבור שם המשתמש הזה כבר התחילה.\nנא להמתין.",
-       "userexists": "שם המשתמש שבחרתם כבר נמצא בשימוש.\nאנא בחרו שם אחר.",
-       "loginerror": "ש×\92×\99×\90×\94 ×\91×\9b× ×\99ס×\94 ×\9c×\90תר",
+       "userexists": "שם המשתמש שבחרת כבר נמצא בשימוש.\nנא לבחור שם אחר.",
+       "loginerror": "ש×\92×\99×\90×\94 ×\91×\9b× ×\99ס×\94 ×\9c×\97ש×\91×\95×\9f",
        "createacct-error": "שגיאה ביצירת חשבון",
        "createaccounterror": "לא ניתן היה ליצור את החשבון: $1",
-       "nocookiesnew": "×\97ש×\91×\95×\9f ×\94×\9eשת×\9eש ×©×\9c×\9b×\9d × ×\95צר, ×\90×\9a ×\9c×\90 × ×\9bנסת×\9d ×\9b×\9eשת×\9eש×\99×\9d ×¨×©×\95×\9e×\99×\9d.\n×\9b×\93×\99 ×\9c×\94×\9b× ×\99ס ×\9eשת×\9eש×\99×\9d ×\9c×\9eער×\9bת ×¢×\95ש×\94 {{SITENAME}} ×©×\99×\9e×\95ש ×\91×¢×\95×\92×\99×\95ת.\n×\91×\93פ×\93פ×\9f ×©×\9c×\9b×\9d ×\94×¢×\95×\92×\99×\95ת ×\9e×\91×\95×\98×\9c×\95ת.\n×\90× ×\90 ×\94פע×\99×\9c×\95 ×\90×\95ת×\9f ×\9e×\97×\93ש, ×\95×\9c×\90×\97ר ×\9e×\9b×\9f ×ª×\95×\9b×\9c×\95 ×\9c×\94×\99×\9bנס ×\9c×\9eער×\9bת ×¢×\9d ×©×\9d ×\94×\9eשת×\9eש ×\95×\94ס×\99ס×\9e×\94 ×\94×\97×\93ש×\99×\9d ×©×\9c×\9b×\9d.",
-       "nocookieslogin": "{{SITENAME}} ×\9eשת×\9eש ×\91×¢×\95×\92×\99×\95ת ×\9b×\93×\99 ×\9c×\94×\9b× ×\99ס ×\9eשת×\9eש×\99×\9d ×\9c×\9eער×\9bת.\n×\91×\93פ×\93פ×\9f ×©×\9c×\9b×\9d ×\94×¢×\95×\92×\99×\95ת ×\9e×\91×\95×\98×\9c×\95ת.\n×\90× ×\90 ×\94פע×\99×\9c×\95 ×\90×\95ת×\9f ×\9e×\97×\93ש ×\95נס×\95 שוב.",
-       "nocookiesfornew": "×\97ש×\91×\95×\9f ×\94×\9eשת×\9eש ×\9c×\90 × ×\95צר, ×\9b×\99×\95×\95×\9f ×©×\9c×\90 ×\99×\9b×\95×\9c× ×\95 ×\9c×\95×\95×\93×\90 ×\90ת ×\9eק×\95ר×\95.\n×\95×\93×\90×\95 ×©×\94×¢×\95×\92×\99×\95ת ×\9e×\95פע×\9c×\95ת ×\91×\93פ×\93פ×\9f ×©×\9c×\9b×\9d, ×\94×¢×\9c×\95 ×\9e×\97×\93ש ×\93×£ ×\96×\94 ×\95נס×\95 שוב.",
+       "nocookiesnew": "×\94×\97ש×\91×\95×\9f ×©×\9c×\9a × ×\95צר, ×\90×\91×\9c ×\9c×\90 × ×\9bנסת ×\9c×\97ש×\91×\95×\9f.\n{{SITENAME}} ×¢×\95ש×\94 ×©×\99×\9e×\95ש ×\91×¢×\95×\92×\99×\95ת (cookies) ×\9b×\93×\99 ×\9c×\94×\9b× ×\99ס ×\9eשת×\9eש×\99×\9d ×\9c×\9eער×\9bת.\n×\91×\93פ×\93פ×\9f ×©×\9c×\9a ×\94×¢×\95×\92×\99×\95ת ×\9e×\91×\95×\98×\9c×\95ת.\n×\99ש ×\9c×\94פע×\99×\9c ×\90×\95ת×\9f, ×\95רק ×\9c×\90×\97ר ×\9e×\9b×\9f ×\9c×\94×\99×\9bנס ×\9c×\97ש×\91×\95×\9f ×¢×\9d ×©×\9d ×\94×\9eשת×\9eש ×\95×\94ס×\99ס×\9e×\94 ×©×\9c×\9a.",
+       "nocookieslogin": "{{SITENAME}} ×¢×\95ש×\94 ×©×\99×\9e×\95ש ×\91×¢×\95×\92×\99×\95ת (cookies) ×\9b×\93×\99 ×\9c×\94×\9b× ×\99ס ×\9eשת×\9eש×\99×\9d ×\9c×\9eער×\9bת.\n×\91×\93פ×\93פ×\9f ×©×\9c×\9a ×\94×¢×\95×\92×\99×\95ת ×\9e×\91×\95×\98×\9c×\95ת.\n×\99ש ×\9c×\94פע×\99×\9c ×\90×\95ת×\9f ×\95×\9c×\90×\97ר ×\9e×\9b×\9f ×\9cנס×\95ת שוב.",
+       "nocookiesfornew": "×\97ש×\91×\95×\9f ×\94×\9eשת×\9eש ×\9c×\90 × ×\95צר, ×\9eש×\95×\9d ×©×\9c×\90 ×\99×\9b×\95×\9c× ×\95 ×\9c×\90×\9eת ×\90ת ×\94×\9eק×\95ר ×©×\9c×\95.\n× ×\90 ×\9c×\95×\95×\93×\90 ×©×\94×¢×\95×\92×\99×\95ת (cookies) ×\91×\93פ×\93פ×\9f ×©×\9c×\9a ×\9e×\95פע×\9c×\95ת, ×\95רק ×\9c×\90×\97ר ×\9e×\9b×\9f ×\9c×\98×¢×\95×\9f ×\9e×\97×\93ש ×\90ת ×\94×\93×£ ×\94×\96×\94 ×\95×\9cנס×\95ת שוב.",
        "createacct-loginerror": "החשבון נוצר בהצלחה, אבל לא ניתן היה להיכנס אליו באופן אוטומטי. נא [[Special:UserLogin|להיכנס באופן ידני]].",
-       "noname": "×\9c×\90 ×\94×\9bנסת ×©×\9d ×\9eשת×\9eש ×ª×§×\99×\9f",
+       "noname": "×\9c×\90 ×\94×\96נת ×©×\9d ×\9eשת×\9eש ×ª×§×\99×\9f.",
        "loginsuccesstitle": "נכנסת לחשבון",
        "loginsuccess": "'''נכנסת ל{{grammar:תחילית|{{SITENAME}}}} בשם \"$1\".'''",
        "nosuchuser": "אין משתמש בשם \"$1\".\nשימו לב ששמות משתמשים הם תלויי־רישיות.\nאנא בִדקו את האיות של שם המשתמש, או [[Special:CreateAccount|צרו חשבון חדש]].",
        "nosuchusershort": "אין משתמש בשם \"$1\".\nנא לוודא שהאיות נכון.",
        "nouserspecified": "יש לציין שם משתמש.",
        "login-userblocked": "משתמש זה חסום. אינכם מורשים להיכנס לחשבון.",
-       "wrongpassword": "×\94ס×\99ס×\9e×\94 ×©×\94ק×\9c×\93ת×\9d ×©×\92×\95×\99×\94.\n×\90× ×\90 × ×¡×\95 שוב.",
-       "wrongpasswordempty": "×\94ס×\99ס×\9e×\94 ×©×\94ק×\9c×\93ת×\9d ×¨×\99ק×\94.\n×\90× ×\90 × ×¡×\95 שוב.",
+       "wrongpassword": "×\94ס×\99ס×\9e×\94 ×©×\94×\96נת ×©×\92×\95×\99×\94.\n× ×\90 ×\9cנס×\95ת שוב.",
+       "wrongpasswordempty": "×\94ס×\99ס×\9e×\94 ×©×\94×\96נת ×¨×\99ק×\94.\n× ×\90 ×\9cנס×\95ת שוב.",
        "passwordtooshort": "סיסמאות חייבות להיות באורך {{PLURAL:$1|תו אחד|$1 תווים}} לפחות.",
        "passwordtoolong": "סיסמאות אינן יכולות להיות ארוכות {{PLURAL:$1|מתו אחד|מ־$1 תווים}}.",
        "passwordtoopopular": "לא ניתן להשתמש בסיסמאות נפוצות. יש לבחור סיסמה ייחודית יותר.",
        "resetpass-temp-password": "סיסמה זמנית:",
        "resetpass-abort-generic": "שינוי הסיסמה בוטל על־ידי הרחבה.",
        "resetpass-expired": "סיסמתכם פקעה. אנא הגדירו סיסמה חדשה כדי להיכנס.",
-       "resetpass-expired-soft": "ס×\99ס×\9eת×\9b×\9d ×¤×§×¢×\94 ×\95×\99ש ×\9c×\90פס ×\90×\95ת×\94. ×\90× ×\90 ×\91×\97ר×\95 ×¡×\99ס×\9e×\94 ×\97×\93ש×\94 ×\9bעת, ×\90×\95 ×\9c×\97צ×\95 ×¢×\9c \"{{int:resetpass-submit-cancel}}\" כדי לאפס אותה מאוחר יותר.",
-       "resetpass-validity-soft": "ס×\99ס×\9eת×\9a ×\90×\99× ×\94 ×ª×§×\99× ×\94: $1\n\n×\99ש ×\9c×\91×\97×\95ר ×¡×\99ס×\9e×\94 ×\97×\93ש×\94 ×¢×\9bש×\99×\95 ×\90×\95 ×\9c×\9c×\97×\95×¥ \"{{int:resetpass-submit-cancel}}\" כדי לאפס את הסיסמה מאוחר יותר.",
+       "resetpass-expired-soft": "×\94ס×\99ס×\9e×\94 ×©×\9c×\9a ×¤×§×¢×\94, ×\95צר×\99×\9a ×\9c×\90פס ×\90×\95ת×\94. ×\99ש ×\9c×\91×\97×\95ר ×¡×\99ס×\9e×\94 ×\97×\93ש×\94 ×\9bעת, ×\90×\95 ×\9c×\9c×\97×\95×¥ ×¢×\9c \"{{int:authprovider-resetpass-skip-label}}\" כדי לאפס אותה מאוחר יותר.",
+       "resetpass-validity-soft": "×\94ס×\99ס×\9e×\94 ×©×\9c×\9a ×\90×\99× ×\94 ×ª×§×\99× ×\94: $1\n\n×\99ש ×\9c×\91×\97×\95ר ×¡×\99ס×\9e×\94 ×\97×\93ש×\94 ×\9bעת ×\90×\95 ×\9c×\9c×\97×\95×¥ ×¢×\9c \"{{int:authprovider-resetpass-skip-label}}\" כדי לאפס את הסיסמה מאוחר יותר.",
        "passwordreset": "איפוס סיסמה",
        "passwordreset-text-one": "מלאו טופס זה כדי לקבל סיסמה זמנית בדוא\"ל.",
        "passwordreset-text-many": "{{PLURAL:$1||מלאו אחד מהשדות הבאים כדי לקבל סיסמה זמנית בדוא\"ל.}}",
        "minoredit": "זוהי עריכה משנית",
        "watchthis": "מעקב אחרי דף זה",
        "savearticle": "שמירת הדף",
+       "savechanges": "שמירת השינויים",
        "publishpage": "פרסום הדף",
+       "publishchanges": "פרסום השינויים",
        "preview": "תצוגה מקדימה",
        "showpreview": "תצוגה מקדימה",
        "showdiff": "הצגת שינויים",
        "blankarticle": "<strong>אזהרה:</strong> הדף שאתם יוצרים הוא ריק.\nאם תלחצו שוב על \"{{int:savearticle}}\", הדף ייווצר ללא תוכן.",
        "anoneditwarning": "<strong>אזהרה:</strong> אינכם מחוברים לחשבון. כתובת ה־IP שלכם תוצג בפומבי אם תבצעו עריכות כלשהן. אם <strong>[$1 תיכנסו לחשבון]</strong> או <strong>[$2 תיצרו חשבון]</strong>, העריכות שלכם תיוחסנה לשם המשתמש שלכם ותקבלו גם יתרונות אחרים.",
-       "anonpreviewwarning": "''אינכם מחוברים לחשבון. שמירה תגרום לכתובת ה־IP שלכם להירשם בהיסטוריית העריכות של הדף.''",
+       "anonpreviewwarning": "<em>אתם לא מחוברים לחשבון. שמירה תגרום לכתובת ה־IP שלכם להירשם בהיסטוריית העריכות של הדף.</em>",
        "missingsummary": "<strong>תזכורת:</strong> לא הזנת תקציר עריכה.\nלחיצה חוזרת על הכפתור \"{{int:savearticle}}\" תגרום לעריכה שלך להישמר בלעדיו.",
        "selfredirect": "<strong>אזהרה:</strong> ניסית ליצור הפניה מדף זה לעצמו.\nאולי כתבת יעד שגוי להפניה, ואולי ערכת את הדף הלא־נכון.\nלחיצה חוזרת על הכפתור \"{{int:savearticle}}\" תגרום להפניה להיווצר בכל זאת.",
        "missingcommenttext": "יש להקליד את ההודעה למטה.",
        "accmailtitle": "הסיסמה נשלחה",
        "accmailtext": "סיסמה אקראית עבור [[User talk:$1|$1]] נשלחה אל $2. ניתן לשנותה בדף '''[[Special:ChangePassword|שינוי הסיסמה]]''' לאחר הכניסה.",
        "newarticle": "(חדש)",
-       "newarticletext": "הגעתם לדף שעדיין אינו קיים.\nכדי ליצור את הדף הזה, התחילו להקליד בתיבת הטקסט שלמטה (ראו את [$1 דף העזרה] למידע נוסף).\nאם הגעתם לכאן בטעות, לחצו על כפתור ה<strong>חזרה</strong> (Back) בדפדפן שלכם.",
-       "anontalkpagetext": "----\n<em>×\96×\94×\95 ×\93×£ ×©×\99×\97×\94 ×©×\9c ×\9eשת×\9eש ×\90× ×\95× ×\99×\9e×\99 ×©×¢×\93×\99×\99×\9f ×\9c×\90 ×\99צר ×\97ש×\91×\95×\9f ×\91×\9eער×\9bת, ×\90×\95 ×©×\94×\95×\90 ×\9c×\90 ×\9eשת×\9eש ×\91×\95.</em>\n×\9c×\9b×\9f ×¢×\9c×\99× ×\95 ×\9c×\94שת×\9eש ×\91×\9bת×\95×\91ת ×\94Ö¾IP ×\94×\9eספר×\99ת ×\9b×\93×\99 ×\9c×\96×\94×\95ת×\95.\n×\99×\99ת×\9b×\9f ×©×\9bת×\95×\91ת IP ×\96×\95 ×ª×\94×\99×\94 ×\9eש×\95תפת ×\9c×\9eספר ×\9eשת×\9eש×\99×\9d.\n×\90×\9d ×\90ת×\9d ×\9eשת×\9eש×\99×\9d ×\90× ×\95× ×\99×\9e×\99×\99×\9d ×\95×\9eר×\92×\99ש×\99×\9d ×©×§×\99×\91×\9cת×\9d ×\94×\95×\93×¢×\95ת ×\91×\9cת×\99 ×¨×\9c×\95×\95× ×\98×\99×\95ת, ×\90× ×\90 [[Special:CreateAccount|צר×\95 ×\97ש×\91×\95×\9f]] ×\90×\95 [[Special:UserLogin|×\94×\99×\9bנס×\95 ×\9c×\97ש×\91×\95×\9f]] ×\9b×\93×\99 ×\9c×\94×\99×\9e× ×¢ ×\9e×\91×\9c×\91×\95×\9c×\99×\9d ×¢×ª×\99×\93×\99×\99×\9d ×¢×\9d ×\9eשת×\9eש×\99×\9d ×\90× ×\95× ×\99×\9e×\99×\99×\9d × ×\95ספים.",
+       "newarticletext": "{{GENDER:|הגעת|הגעת|הגעתם}} לדף שעדיין אינו קיים.\nכדי ליצור את הדף הזה, {{GENDER:|התחל|התחילי|התחילו}} להקליד בתיבת הטקסט שלמטה ({{GENDER:|ראה|ראי|ראו}} את [$1 דף העזרה] למידע נוסף).\nאם {{GENDER:|הגעת|הגעת|הגעתם}} לכאן בטעות, {{GENDER:|לחץ|לחצי|לחצו}} על כפתור ה<strong>חזרה</strong> (Back) בדפדפן {{GENDER:|שלך|שלך|שלכם}}.",
+       "anontalkpagetext": "----\n<em>×\96×\94×\95 ×\93×£ ×©×\99×\97×\94 ×©×\9c ×\9eשת×\9eש ×\90× ×\95× ×\99×\9e×\99 ×©×¢×\93×\99×\99×\9f ×\9c×\90 ×\99צר ×\97ש×\91×\95×\9f ×\91×\90תר, ×\90×\95 ×©×\94×\95×\90 ×\9c×\90 ×\9eשת×\9eש ×\91×\95.</em>\n×\9c×\9b×\9f ×¢×\9c×\99× ×\95 ×\9c×\94שת×\9eש ×\91×\9bת×\95×\91ת ×\94Ö¾IP ×\94×\9eספר×\99ת ×\9b×\93×\99 ×\9c×\96×\94×\95ת×\95.\n×\99×\99ת×\9b×\9f ×©×\9bת×\95×\91ת IP ×\96×\95 ×ª×\94×\99×\94 ×\9eש×\95תפת ×\9c×\9eספר ×\9eשת×\9eש×\99×\9d.\n×\90×\9d ×\90ת×\9d ×\9eשת×\9eש×\99×\9d ×\90× ×\95× ×\99×\9e×\99×\99×\9d ×\95×\9eר×\92×\99ש×\99×\9d ×©×§×\99×\91×\9cת×\9d ×\94×\95×\93×¢×\95ת ×©×\90×\99× ×\9f ×¨×\9c×\95×\95× ×\98×\99×\95ת ×¢×\91×\95ר×\9b×\9d, ×\90× ×\90 [[Special:CreateAccount|צר×\95 ×\97ש×\91×\95×\9f]] ×\90×\95 [[Special:UserLogin|×\94×\99×\9bנס×\95 ×\9c×\97ש×\91×\95×\9f]] ×\9b×\93×\99 ×\9c×\94×\99×\9e× ×¢ ×\9e×\91×\9c×\91×\95×\9c×\99×\9d ×¢×ª×\99×\93×\99×\99×\9d ×¢×\9d ×\9eשת×\9eש×\99×\9d ×\90× ×\95× ×\99×\9e×\99×\99×\9d ×\90×\97רים.",
        "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}}}} יומן המחיקות].",
-       "userpage-userdoesnotexist": "חשבון המשתמש \"$1\" אינו רשום.\nאנא בִדקו אם ברצונכם ליצור/לערוך את הדף הזה.",
+       "userpage-userdoesnotexist": "חשבון המשתמש \"$1\" אינו רשום.\nאנא {{GENDER:|בדוק|בִדקי|בִדקו}} אם {{GENDER:|ברצונך|ברצונך|ברצונכם}} ליצור/לערוך את הדף הזה.",
        "userpage-userdoesnotexist-view": "חשבון המשתמש \"$1\" אינו רשום.",
        "blocked-notice-logextract": "{{GENDER:$1|המשתמש הזה חסום|המשתמשת הזו חסומה}} כרגע.\nהפעולה האחרונה ביומן החסימות מוצגת להלן:",
-       "clearyourcache": "<strong>הערה:</strong> לאחר השמירה, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.\n* <strong>פיירפוקס / ספארי:</strong> להחזיק את המקש <em>Shift</em> בעת לחיצה על <strong>טעינה מחדש</strong> (Reload), או ללחוץ על צירוף המקשים <em>Ctrl-F5</em> או <em>Ctrl-R</em> (במחשב מק: <em dir=\"ltr\">⌘-R</em>)\n* <strong>גוגל כרום:</strong> ללחוץ על צירוף המקשים <em>Ctrl-Shift-R</em> (במחשב מק: <em dir=\"ltr\">⌘-Shift-R</em>)\n* <strong>אינטרנט אקספלורר:</strong> ללחוץ ולהחזיק את המקש <em>Ctrl</em> בעת לחיצה על <strong>רענן</strong> (Refresh), או ללחוץ על צירוף המקשים <em>Ctrl-F5</em>\n* <strong>אופרה:</strong> לפתוח <em>תפריט ← הגדרות</em> (במחשב מק <em>Opera ← העדפות</em>) ואז ללחוץ על <em>פרטיות ואבטחה ← מחק היסטוריית גלישה ← Cached images and files</em>.",
+       "clearyourcache": "<strong>הערה:</strong> לאחר השמירה, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.\n* <strong>פיירפוקס / ספארי:</strong> להחזיק את המקש <em>Shift</em> בעת לחיצה על <strong>טעינה מחדש</strong> (Reload), או ללחוץ על צירוף המקשים <em>Ctrl-F5</em> או <em>Ctrl-R</em> (במחשב מק: <em dir=\"ltr\">⌘-R</em>).\n* <strong>גוגל כרום:</strong> ללחוץ על צירוף המקשים <em>Ctrl-Shift-R</em> (במחשב מק: <em dir=\"ltr\">⌘-Shift-R</em>).\n* <strong>אינטרנט אקספלורר:</strong> להחזיק את המקש <em>Ctrl</em> בעת לחיצה על <strong>רענן</strong> (Refresh), או ללחוץ על צירוף המקשים <em>Ctrl-F5</em>.\n* <strong>אופרה:</strong> לפתוח <em>תפריט ← הגדרות</em> (במחשב מק: <em>Opera ← העדפות</em>) ואז ללחוץ על <em>פרטיות ואבטחה ← מחק היסטוריית גלישה ← Cached images and files</em>.",
        "usercssyoucanpreview": "<strong>עצה:</strong> השתמשו בכפתור \"{{int:showpreview}}\" כדי לבחון את גיליון ה־CSS החדש שלכם לפני השמירה.",
        "userjsyoucanpreview": "<strong>עצה:</strong> השתמשו בכפתור \"{{int:showpreview}}\" כדי לבחון את סקריפט ה־JavaScript החדש שלכם לפני השמירה.",
        "usercsspreview": "<strong>זִכרו שזו רק תצוגה מקדימה של גיליון ה־CSS שלכם.\nהוא עדיין לא נשמר!</strong>",
        "userinvalidcssjstitle": "'''אזהרה:''' העיצוב \"$1\" אינו קיים.\nדפי .css ו־.js מותאמים אישית משתמשים בכותרת עם אותיות קטנות – למשל, {{ns:user}}:דוגמה/vector.css ולא {{ns:user}}:דוגמה/Vector.css.",
        "updated": "(מעודכן)",
        "note": "'''הערה:'''",
-       "previewnote": "<strong>זִכרו שזו רק תצוגה מקדימה.</strong>\nהשינויים שלכם עדיין לא נשמרו!",
+       "previewnote": "<strong>{{GENDER:|זכור|זִכרי|זִכרו}} שזו רק תצוגה מקדימה.</strong>\nהשינויים {{GENDER:|שלך|שלך|שלכם}} עדיין לא נשמרו!",
        "continue-editing": "מעבר לאזור העריכה",
        "previewconflict": "תצוגה מקדימה זו מציגה כיצד ייראה הטקסט בחלון העריכה העליון, אם תבחרו לשמור אותו.",
        "session_fail_preview": "מצטערים! לא ניתן לבצע את עריכתכם עקב אובדן מידע הכניסה.\n\nייתכן שנותקתם מהחשבון. <strong>אנא ודאו שאתם עדיין מחוברים לחשבון ונסו שוב.</strong>\nאם זה עדיין לא עובד, נסו [[Special:UserLogout|לצאת מהחשבון]] ולהיכנס אליו שנית, וודאו שהדפדפן שלכם מאפשר קבלת עוגיות מאתר זה.",
        "session_fail_preview_html": "מצטערים! לא ניתן לבצע את עריכתם עקב אובדן מידע הכניסה.\n\n<em>כיוון שב{{grammar:תחילית|{{SITENAME}}}} אפשרות השימוש ב־HTML גולמי מופעלת, התצוגה המקדימה מוסתרת כדי למנוע התקפות JavaScript.</em>\n\n<strong>אם זהו ניסיון עריכה לגיטימי, אנא נסו שוב.</strong>\nאם זה עדיין לא עובד, נסו [[Special:UserLogout|לצאת מהחשבון]] ולהיכנס אליו שנית, וודאו שהדפדפן שלכם מאפשר קבלת עוגיות מאתר זה.",
        "token_suffix_mismatch": "'''עריכתך נדחתה כיוון שהדפדפן שלך מחק את תווי הפיסוק באסימון העריכה.'''\nהעריכה נדחתה כדי למנוע בעיות כאלה בטקסט של הדף.\nלעתים התקלה מתרחשת עקב שימוש בשירות פרוקסי אנונימי פגום.",
-       "edit_form_incomplete": "'''כמה חלקים מטופס העריכה לא הגיעו לשרת; בדקו היטב שעריכותיכם לא נפגעו ונסו שוב.'''",
+       "edit_form_incomplete": "<strong>חלקים מסוימים מטופס העריכה לא הגיעו לשרת; אנא {{GENDER:|בדוק|בִדקי|בִדקו}} שהעריכה לא נפגעה ו{{GENDER:|נסה|נסי|נסו}} שוב.</strong>",
        "editing": "עריכת הדף \"$1\"",
        "creating": "יצירת הדף \"$1\"",
        "editingsection": "עריכת הדף \"$1\" (פסקה)",
        "sectioneditnotsupported-title": "עריכת פסקאות אינה נתמכת",
        "sectioneditnotsupported-text": "עריכת פסקאות אינה נתמכת בדף זה.",
        "permissionserrors": "שגיאת הרשאה",
-       "permissionserrorstext": "×\90×\99× ×\9b×\9d ×\9e×\95רש×\99×\9d לבצע פעולה זו, {{PLURAL:$1|מהסיבה הבאה|מהסיבות הבאות}}:",
-       "permissionserrorstext-withaction": "×\90×\99× ×\9b×\9d ×\9e×\95רש×\99×\9d $2, {{PLURAL:$1|×\9e×\94ס×\99×\91×\94 ×\94×\91×\90×\94\9e×\94סיבות הבאות}}:",
+       "permissionserrorstext": "×\90×\99×\9f ×\91{{GENDER:|×\90פשר×\95ת×\9a\90פשר×\95ת×\9a\90פשר×\95ת×\9b×\9d}} לבצע פעולה זו, {{PLURAL:$1|מהסיבה הבאה|מהסיבות הבאות}}:",
+       "permissionserrorstext-withaction": "×\90×\99×\9f ×\91{{GENDER:|×\90פשר×\95ת×\9a\90פשר×\95ת×\9a\90פשר×\95ת×\9b×\9d}} $2, ×\9e×\94{{PLURAL:$1|ס×\99×\91×\94 ×\94×\91×\90×\94|סיבות הבאות}}:",
        "contentmodelediterror": "לא ניתן לערוך את הגרסה הזאת כי מודל התוכן שלה הוא <code>$1</code>, השונה ממודל התוכן הנוכחי של הדף, <code>$2</code>.",
        "recreate-moveddeleted-warn": "'''אזהרה: הנכם יוצרים דף חדש שנמחק בעבר.'''\n\nכדאי לשקול אם יהיה זה נכון להמשיך לערוך את הדף.\nיומני המחיקות וההעברות של הדף מוצגים להלן:",
        "moveddeleted-notice": "דף זה נמחק.\nיומני המחיקות וההעברות של הדף מוצגים להלן.",
        "content-failed-to-parse": "פענוח $2 כתוכן מסוג $1 נכשל: $3",
        "invalid-content-data": "מידע שגוי על התוכן",
        "content-not-allowed-here": "תוכן מסוג \"$1\" אינו מותר בדף [[$2]]",
-       "editwarning-warning": "×¢×\96×\99×\91ת ×\93×£ ×\96×\94 ×¢×©×\95×\99×\94 ×\9c×\92ר×\95×\9d ×\9c×\90×\95×\91×\93×\9f ×\9b×\9c ×\94ש×\99× ×\95×\99×\99×\9d ×©×\91×\99צעת×\9d.\n×\90×\9d ×\90ת×\9d ×\9e×\97×\95×\91ר×\99×\9d ×\9c×\97ש×\91×\95×\9f, ×ª×\95×\9b×\9c×\95 ×\9c×\91×\98×\9c ×\90×\96×\94ר×\94 ×\96×\95 ×\91×\97×\9cק \"{{int:prefs-editing}}\" ×©×\91×\94×¢×\93פ×\95ת ×©×\9c×\9b×\9d.",
+       "editwarning-warning": "×¢×\96×\99×\91ת ×\94×\93×£ ×\94×\96×\94 ×¢×\9c×\95×\9c×\94 ×\9c×\92ר×\95×\9d ×\9c×\9a ×\9c×\90×\91×\93 ×\90ת ×\9b×\9c ×\94ש×\99× ×\95×\99×\99×\9d ×©×\91×\99צעת.\n×\90×\9d ×\99ש ×\9c×\9a ×\97ש×\91×\95×\9f ×\91×\90תר, ×\91×\90פשר×\95ת×\9a ×\9c×\91×\98×\9c ×\90ת ×\94×\90×\96×\94ר×\94 ×\94×\96×\90ת ×\91×\97×\9cק \"{{int:prefs-editing}}\" ×©×\91×\94×¢×\93פ×\95ת ×©×\9c×\9a.",
        "editpage-notsupportedcontentformat-title": "סוג התוכן אינו נתמך",
        "editpage-notsupportedcontentformat-text": "תוכן מסוג $1 אינו נתמך על־ידי מודל התוכן $2.",
        "content-model-wikitext": "קוד ויקי",
-       "content-model-text": "×\98קס×\98 ×¤×©×\95×\98",
+       "content-model-text": "×\98קס×\98 ×¨×\92×\99×\9c",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
        "content-json-empty-object": "אוביקט ריק",
        "content-json-empty-array": "מערך ריק",
+       "deprecated-self-close-category": "דפים שמשתמשים בתגיות HTML עם סגירה עצמית בלתי חוקית",
+       "deprecated-self-close-category-desc": "דף זה כולל תגיות HTML עם סגירה עצמית בלתי חוקית, כגון <code dir=\"ltr\">&lt;b/></code> או <code dir=\"ltr\">&lt;span/></code>. ההתנהגות של תגיות אלה תשתנה בקרוב לצורך תאימות עם מפרט HTML5, ולכן יש להימנע משימוש בהן בקוד ויקי.",
        "duplicate-args-warning": "<strong>אזהרה:</strong> [[:$1]] קורא לדף [[:$2]] עם יותר מערך אחד עבור הפרמטר \"$3\". ייעשה שימוש רק בערך האחרון.",
        "duplicate-args-category": "דפים שמשתמשים בפרמטרים כפולים בקריאות לתבניות",
        "duplicate-args-category-desc": "הדף מכיל קריאות לתבניות שמשתמשות בפרמטרים כפולים, כגון <code><nowiki>{{תאריך|יום=1|יום=2}}</nowiki></code> או <code><nowiki>{{שעה|חמש|1=שש}}</nowiki></code>.",
        "parser-unstrip-loop-warning": "נמצאה לולאה בפריסה",
        "parser-unstrip-recursion-limit": "עומק הרקורסיה של הפריסה עבר את המגבלה ($1)",
        "converter-manual-rule-error": "התגלתה שגיאה בכלל המרת שפה ידני",
-       "undo-success": "ניתן לבטל את העריכה.\nאנא בִּדקו את השוואת הגרסאות למטה כדי לוודא שזה אכן מה שאתם רוצים לעשות, ואז שִׁמרו את השינויים למטה כדי לסיים את ביטול העריכה.",
+       "undo-success": "ניתן לבטל את העריכה.\nאנא {{GENDER:|בדוק|בִדקי|בִדקו}} את השוואת הגרסאות שלהלן כדי לוודא שזה אכן מה ש{{GENDER:|אתה רוצה|את רוצה|אתם רוצים}} לעשות, ולאחר מכן {{GENDER:|שמור|שִמרי|שִמרו}} את השינויים למטה כדי לסיים את ביטול העריכה.",
        "undo-failure": "לא ניתן היה לבטל את העריכה עקב התנגשות עם עריכות מאוחרות יותר.",
        "undo-norev": "לא ניתן היה לבטל את העריכה כי היא אינה קיימת או כי היא נמחקה.",
        "undo-nochange": "נראה שהעריכה כבר בוטלה.",
        "last": "קודמת",
        "page_first": "ראשון",
        "page_last": "אחרון",
-       "histlegend": "בחירת גרסאות להשוואה: סמנו את תיבות האפשרויות של הגרסאות המיועדות להשוואה, והקישו על Enter או על הכפתור למטה.<br />\nמקרא: '''({{int:cur}})''' = השוואה עם הגרסה הנוכחית, '''({{int:last}})''' = השוואה עם הגרסה הקודמת, '''{{int:minoreditletter}}''' = שינוי משני.",
+       "histlegend": "בחירת גרסאות להשוואה: {{GENDER:|בחר|בחרי|בחרו}} את הגרסאות ש{{GENDER:|ברצונך|ברצונך|ברצונכם}} להשוות ולאחר מכן {{GENDER:|הקש|הקישי|הקישו}} על Enter או {{GENDER:|לחץ|לחצי|לחצו}} על הכפתור שלמטה.<br />\nמקרא: <strong>({{int:cur}})</strong> = השוואה עם הגרסה הנוכחית, <strong>({{int:last}})</strong> = השוואה עם הגרסה הקודמת, <strong>{{int:minoreditletter}}</strong> = עריכה משנית.",
        "history-fieldset-title": "חיפוש בהיסטוריית הדף",
-       "history-show-deleted": "רק ×\9e×\97×\95ק×\95ת",
+       "history-show-deleted": "ער×\99×\9b×\95ת ×\9e×\95סתר×\95ת ×\91×\9c×\91×\93",
        "histfirst": "הישנות ביותר",
        "histlast": "החדשות ביותר",
-       "historysize": "({{PLURAL:$1|×\91×\99ת ×\90×\97×\93|$1 ×\91תים}})",
+       "historysize": "({{PLURAL:$1|×\91×\99×\99×\98 ×\90×\97×\93|$1 ×\91×\99×\99×\98ים}})",
        "historyempty": "(ריק)",
        "history-feed-title": "היסטוריית גרסאות",
        "history-feed-description": "היסטוריית הגרסאות של הדף הזה בוויקי",
        "rev-delundel": "שינוי מצב התצוגה",
        "rev-showdeleted": "הצגה",
        "revisiondelete": "מחיקה ושחזור של גרסאות",
-       "revdelete-nooldid-title": "×\92רסת ×\9e×\98ר×\94 ×\91×\9cת×\99 תקינה",
-       "revdelete-nooldid-text": "×\90×\95 שלא ציינת שום גרסה שהפעולה תבוצע עליה, או שהגרסה שציינת אינה קיימת, או שניסית להסתיר את הגרסה הנוכחית.",
-       "revdelete-no-file": "×\94ק×\95×\91×¥ ×©×¦×\99×\99נת אינו קיים.",
-       "revdelete-show-file-confirm": "×\94×\90×\9d ×\90ת×\9d ×\91×\98×\95×\97×\99×\9d ×©×\91רצ×\95× ×\9b×\9d ×\9cצפ×\95ת ×\91×\92רס×\94 ×\94×\9e×\97×\95ק×\94 ×©×\9c ×\94ק×\95×\91×¥ \"<nowiki>$1</nowiki>\" ×\9eת×\90ר×\99×\9a $3, $2?",
+       "revdelete-nooldid-title": "×\92רסת ×\94×\99×¢×\93 ×\90×\99× ×\94 תקינה",
+       "revdelete-nooldid-text": "×\99×\99ת×\9b×\9f שלא ציינת שום גרסה שהפעולה תבוצע עליה, או שהגרסה שציינת אינה קיימת, או שניסית להסתיר את הגרסה הנוכחית.",
+       "revdelete-no-file": "×\94ק×\95×\91×¥ ×©×¦×\95×\99×\9f אינו קיים.",
+       "revdelete-show-file-confirm": "×\94×\90×\9d ×\91רצ×\95× ×\9a ×\9cצפ×\95ת ×\91×\92רס×\94 ×\9e×\97×\95ק×\94 ×©×\9c ×\94ק×\95×\91×¥ \"<nowiki>$1</nowiki>\" ×\9eÖ¾$3, $2?",
        "revdelete-show-file-submit": "כן",
        "revdelete-selected-text": "{{PLURAL:$1|הגרסה שנבחרה|הגרסאות שנבחרו}} מתוך הדף [[:$2]]:",
        "revdelete-selected-file": "{{PLURAL:$1|גרסת הקובץ שנבחרה|גרסאות הקובץ שנבחרו}} מתוך [[:$2]]:",
        "logdelete-text": "פעולות יומן שהוסתרו עדיין יופיעו בדפי היומנים, אבל התוכן שלהן לא יהיה זמין לציבור.",
        "revdelete-text-others": "מפעילי מערכת אחרים עדיין יוכלו לגשת לתוכן המוסתר ואף לשחזר אותו, אלא אם כן תוגדרנה הגבלות נוספות.",
        "revdelete-confirm": "אנא אשרו שזה אכן מה שאתם מתכוונים לעשות, שאתם מבינים את התוצאות של מעשה כזה, ושהמעשה מבוצע בהתאם ל[[{{MediaWiki:Policy-url}}|נוהלי האתר]].",
-       "revdelete-suppress-text": "יש להשתמש בהעלמה '''אך ורק''' במקרים הבאים:\n* מידע שעלול להיות לשון הרע\n* חשיפת מידע אישי\n*: <em>כתובות בתים ומספרי טלפון, מספרי זהות, וכו'</em>",
+       "revdelete-suppress-text": "יש להשתמש בהעלמה <strong>אך ורק</strong> במקרים הבאים:\n* מידע שעלול להיות לשון הרע\n* חשיפת מידע אישי\n*: <em>כתובות בתים ומספרי טלפון, מספרי זהות, וכו'</em>",
        "revdelete-legend": "הגדרת הגבלות התצוגה",
-       "revdelete-hide-text": "תוכן הגרסה",
+       "revdelete-hide-text": "×\94סתרת ×ª×\95×\9b×\9f ×\94×\92רס×\94",
        "revdelete-hide-image": "הסתרת תוכן הקובץ",
        "revdelete-hide-name": "הסתרת היעד והפרמטרים",
-       "revdelete-hide-comment": "תקציר העריכה",
-       "revdelete-hide-user": "שם המשתמש או כתובת ה־IP של העורך",
+       "revdelete-hide-comment": "×\94סתרת ×ª×§×¦×\99ר ×\94ער×\99×\9b×\94",
+       "revdelete-hide-user": "×\94סתרת ×©×\9d ×\94×\9eשת×\9eש ×\90×\95 ×\9bת×\95×\91ת ×\94Ö¾IP ×©×\9c ×\94×¢×\95ר×\9a",
        "revdelete-hide-restricted": "העלמת המידע גם ממפעילי מערכת",
        "revdelete-radio-same": "(ללא שינוי)",
-       "revdelete-radio-set": "×\9e×\95סתר",
-       "revdelete-radio-unset": "×\92×\9c×\95×\99",
-       "revdelete-suppress": "×\94×¢×\9c×\9eת ×\94×\9e×\99×\93×¢ ×\92×\9d ×\9e×\9eפע×\99×\9c×\99 ×\94×\9eער×\9bת",
+       "revdelete-radio-set": "×\9b×\9f",
+       "revdelete-radio-unset": "×\9c×\90",
+       "revdelete-suppress": "העלמת המידע גם ממפעילי מערכת",
        "revdelete-unsuppress": "הסרת הגבלות בגרסאות המשוחזרות",
        "revdelete-log": "סיבה:",
        "revdelete-submit": "ביצוע על {{PLURAL:$1|הגרסה שנבחרה|הגרסאות שנבחרו}}",
        "revdel-restore": "שינוי מצב התצוגה",
        "pagehist": "היסטוריית הגרסאות של הדף",
        "deletedhist": "הגרסאות המחוקות",
-       "revdelete-hide-current": "שגיאה בהסתרת הפריט מתאריך $2, $1: זו הגרסה הנוכחית.\nלא ניתן להסתיר אותה.",
-       "revdelete-show-no-access": "שגיאה בהצגת הפריט מתאריך $2, $1: פריט זה סומן כ\"מוגבל\".\nאין לך גישה אליו.",
-       "revdelete-modify-no-access": "שגיאה בשינוי הפריט מתאריך $2, $1: פריט זה סומן כ\"מוגבל\".\nאין לכם גישה אליו.",
+       "revdelete-hide-current": "שגיאה בהסתרת הפריט מ־$2, $1: זו הגרסה הנוכחית.\nלא ניתן להסתיר אותה.",
+       "revdelete-show-no-access": "שגיאה בהצגת הפריט מ־$2, $1: פריט זה סומן כ\"מוגבל\".\nאין לך גישה אליו.",
+       "revdelete-modify-no-access": "שגיאה בשינוי הפריט מ־$2, $1: פריט זה סומן כ\"מוגבל\".\nאין לך גישה אליו.",
        "revdelete-modify-missing": "שגיאה בשינוי פריט מספר $1: הוא אינו נמצא בבסיס הנתונים!",
        "revdelete-no-change": "<strong>אזהרה:</strong> לפריט מ־$2, $1 כבר היו הגדרות התצוגה שביקשת.",
-       "revdelete-concurrent-change": "ש×\92×\99×\90×\94 ×\91ש×\99× ×\95×\99 ×\9eצ×\91 ×\94תצ×\95×\92×\94 ×©×\9c פריט מ־$2, $1: נראה שמצב התצוגה שלו כבר שוּנה על־ידי מישהו אחר בזמן שניסית לשנות אותו.\nבאפשרותך למצוא פרטים ביומנים.",
-       "revdelete-only-restricted": "שגיאה בהסתרת הפריט מתאריך $2, $1: אין באפשרותך להעלים פריטים ממפעילי המערכת מבלי לבחור גם באחת מאפשרויות הנראוּת האחרות.",
+       "revdelete-concurrent-change": "ש×\92×\99×\90×\94 ×\91ש×\99× ×\95×\99 ×\94פריט מ־$2, $1: נראה שמצב התצוגה שלו כבר שוּנה על־ידי מישהו אחר בזמן שניסית לשנות אותו.\nבאפשרותך למצוא פרטים ביומנים.",
+       "revdelete-only-restricted": "שגיאה בהסתרת הפריט מ־$2, $1: לא ניתן להעלים פריטים ממפעילי מערכת מבלי לבחור גם באחת מהאפשרויות האחרות.",
        "revdelete-reason-dropdown": "* סיבות מחיקה נפוצות\n** הפרת זכויות יוצרים\n** תקציר עריכה או מידע אישי לא הולמים\n** שם משתמש לא הולם\n** מידע שעלול להיות לשון הרע",
        "revdelete-otherreason": "סיבה אחרת/נוספת:",
        "revdelete-reasonotherlist": "סיבה אחרת",
        "mergehistory-no-destination": "דף היעד $1 אינו קיים.",
        "mergehistory-invalid-source": "דף המקור חייב להיות בעל כותרת תקינה.",
        "mergehistory-invalid-destination": "דף היעד חייב להיות בעל כותרת תקינה.",
-       "mergehistory-autocomment": "הדף [[:$1]] מוזג לתוך [[:$2]]",
-       "mergehistory-comment": "הדף [[:$1]] מוזג לתוך [[:$2]]: $3",
+       "mergehistory-autocomment": "הדף [[:$1]] מוזג לתוך הדף [[:$2]]",
+       "mergehistory-comment": "הדף [[:$1]] מוזג לתוך הדף [[:$2]]: $3",
        "mergehistory-same-destination": "דפי המקור והיעד זהים",
        "mergehistory-reason": "סיבה:",
        "mergelog": "יומן מיזוגים",
        "searchprofile-everything-tooltip": "חיפוש בכל התוכן (למעט דפי השיחה)",
        "searchprofile-advanced-tooltip": "חיפוש במרחבי שם מותאמים אישית",
        "search-result-size": "$1 ({{PLURAL:$2|מילה אחת|$2 מילים}})",
-       "search-result-category-size": "{{PLURAL:$1|×\97×\91ר ×\90×\97×\93|$1 ×\97×\91רים}} ({{PLURAL:$2|קטגוריית משנה אחת|$2 קטגוריות משנה}}, {{PLURAL:$3|קובץ אחד|$3 קבצים}})",
+       "search-result-category-size": "{{PLURAL:$1|פר×\99×\98 ×\90×\97×\93|$1 ×¤×¨×\99×\98ים}} ({{PLURAL:$2|קטגוריית משנה אחת|$2 קטגוריות משנה}}, {{PLURAL:$3|קובץ אחד|$3 קבצים}})",
        "search-redirect": "(הפניה $1)",
        "search-section": "(פסקה $1)",
        "search-category": "(קטגוריה $1)",
        "search-suggest": "האם התכוונת ל: $1",
        "search-rewritten": "מוצגות התוצאות עבור $1. ניתן לחפש $2 במקום זאת.",
        "search-interwiki-caption": "מיזמי אחות",
-       "search-interwiki-default": "תוצאות מ{{GRAMMAR:תחילית|$1}}:",
+       "search-interwiki-default": "תוצאות מתוך $1:",
        "search-interwiki-more": "(עוד)",
        "search-relatedarticle": "קשור",
        "searchrelated": "קשור",
        "prefs-watchlist-days": "מספר הימים שמוצגים ברשימת המעקב:",
        "prefs-watchlist-days-max": "לכל היותר {{PLURAL:$1|יום אחד|יומיים|$1 ימים}}",
        "prefs-watchlist-edits": "המספר המרבי של העריכות שמוצגות ברשימת המעקב המורחבת:",
-       "prefs-watchlist-edits-max": "לכל היותר: 1000",
+       "prefs-watchlist-edits-max": "לכל היותר: 1,000",
        "prefs-watchlist-token": "אסימון לרשימת המעקב:",
        "prefs-misc": "שונות",
        "prefs-resetpass": "שינוי סיסמה",
        "savedprefs": "ההעדפות שלך נשמרו.",
        "savedrights": "ההרשאות של {{GENDER:$1|המשתמש|המשתמשת}} \"$1\" נשמרו.",
        "timezonelegend": "אזור זמן:",
-       "localtime": "×\96×\9e×\9f ×\9eק×\95×\9e×\99:",
+       "localtime": "שע×\94 ×\9eק×\95×\9e×\99ת:",
        "timezoneuseserverdefault": "ברירת המחדל של האתר ($1)",
        "timezoneuseoffset": "אחר (יש לציין את ההפרש)",
        "servertime": "השעה הנוכחית בשרת:",
        "allowemail": "לאפשר למשתמשים לשלוח לי דואר אלקטרוני",
        "prefs-searchoptions": "חיפוש",
        "prefs-namespaces": "מרחבי שם",
-       "default": "ברירת מחדל",
+       "default": "×\91ר×\99רת ×\94×\9e×\97×\93×\9c",
        "prefs-files": "קבצים",
        "prefs-custom-css": "קובץ CSS מותאם אישית",
        "prefs-custom-js": "קובץ JavaScript מותאם אישית",
        "prefs-common-css-js": "קובצי CSS/JavaScript משותפים לכל העיצובים:",
-       "prefs-reset-intro": "×\91×\90פשר×\95ת×\9a ×\9c×\94שת×\9eש ×\91×\93×£ ×\96×\94 כדי להחזיר את ההעדפות שלך להגדרות ברירת המחדל של האתר.\nלא ניתן לבטל פעולה זו.",
+       "prefs-reset-intro": "×\91×\90פשר×\95ת×\9a ×\9c×\94שת×\9eש ×\91×\90פשר×\95ת ×\96×\95 כדי להחזיר את ההעדפות שלך להגדרות ברירת המחדל של האתר.\nלא ניתן לבטל פעולה זו.",
        "prefs-emailconfirm-label": "אימות כתובת דוא\"ל:",
        "youremail": "דואר אלקטרוני:",
        "username": "שם {{GENDER:$1|המשתמש|המשתמשת}}:",
        "email": "דוא\"ל",
        "prefs-help-realname": "לא חובה למלא את השם האמיתי.\nאם סופק, הוא עשוי לשמש כדי לייחס לך את עבודתך.",
        "prefs-help-email": "כתובת דואר אלקטרוני היא אופציונלית, אבל היא חיונית לאיפוס הסיסמה במקרה ש{{GENDER:|תשכח|תשכחי}} אותה.",
-       "prefs-help-email-others": "×\91×\90פשר×\95ת×\9a ×\92×\9d ×\9c×\91×\97×\95ר ×\9c×\90פשר ×\9c×\9eשת×\9eש×\99×\9d ×\9c×\99צ×\95ר ×\90×\99ת×\9a ×§×©×¨ ×\91×\90×\9eצע×\95ת ×\93×\95×\90\"×\9c ×\93ר×\9a ×§×\99ש×\95ר ×\91×\93×£ ×\94×\9eשת×\9eש ×\90×\95 ×\91×\93×£ ×\94ש×\99×\97×\94 ×©×\9c×\9a.\n×\9bת×\95×\91ת ×\94×\93×\95×\90\"×\9c ×©×\9c×\9a ×\9c×\90 ×ª×\99×\97שף ×\9bש×\9eשת×\9eש×\99×\9d ×\99×\99צר×\95 ×\90×\99ת×\9a ×§×©×¨.",
+       "prefs-help-email-others": "באפשרותך גם לאפשר למשתמשים ליצור איתך קשר באמצעות דוא\"ל דרך קישור בדף המשתמש או בדף השיחה שלך.\nכתובת הדוא\"ל שלך לא תיחשף כשמשתמשים ייצרו איתך קשר.",
        "prefs-help-email-required": "כתובת דואר אלקטרוני נדרשת לכתיבה באתר.",
        "prefs-info": "מידע בסיסי",
        "prefs-i18n": "בינאום",
        "prefs-help-prefershttps": "העדפה זו תיכנס לתוקף בכניסה הבאה לחשבון.",
        "prefswarning-warning": "ביצעת שינויים בהעדפות שלך, והם עדיין לא נשמרו.\nעזיבת דף זה ללא לחיצה על \"$1\" תגרום לכך שההעדפות שלך לא יעודכנו.",
        "prefs-tabs-navigation-hint": "טיפ: ניתן להשתמש במקשי החצים הימני והשמאלי כדי לנווט בין הלשוניות ברשימת הלשוניות.",
-       "userrights": "ניהול הרשאות משתמש",
+       "userrights": "ניהול הרשאות {{GENDER:{{BASEPAGENAME}}|משתמש|משתמשת}}",
        "userrights-lookup-user": "ניהול קבוצות משתמש",
        "userrights-user-editname": "שם משתמש:",
        "editusergroup": "עריכת הקבוצות של ה{{GENDER:$1|משתמש}}",
        "right-autocreateaccount": "כניסה אוטומטית עם חשבון משתמש חיצוני",
        "right-minoredit": "סימון עריכות כמשניות",
        "right-move": "העברת דפים",
-       "right-move-subpages": "העברת דפים עם דפי המשנה שלהם",
+       "right-move-subpages": "×\94×¢×\91רת ×\93פ×\99×\9d ×\99×\97×\93 ×¢×\9d ×\93פ×\99 ×\94×\9eשנ×\94 ×©×\9c×\94×\9d",
        "right-move-rootuserpages": "העברת דפי משתמש שאינם דפי משנה",
        "right-move-categorypages": "העברת דפי קטגוריה",
        "right-movefile": "העברת קבצים",
        "right-suppressredirect": "הימנעות מיצירת הפניות מדפי המקור בעת העברת דפים",
        "right-upload": "העלאת קבצים",
-       "right-reupload": "×\93ר×\99סת קבצים קיימים",
-       "right-reupload-own": "×\93ר×\99סת ×§×\91צ×\99×\9d ×§×\99×\99×\9e×\99×\9d ×©×\94×\95×¢×\9c×\95 ×¢×\9cÖ¾×\99×\93×\99 ×\90×\95ת×\95 ×\94×\9eשת×\9eש",
+       "right-reupload": "×\94×¢×\9c×\90ת ×\92רס×\90×\95ת ×\97×\93ש×\95ת ×©×\9c קבצים קיימים",
+       "right-reupload-own": "×\94×¢×\9c×\90ת ×\92רס×\90×\95ת ×\97×\93ש×\95ת ×©×\9c ×§×\91צ×\99×\9d ×§×\99×\99×\9e×\99×\9d ×©×\94×\95×¢×\9c×\95 ×¢×\9cÖ¾×\99×\93×\99 ×\94×\9eשת×\9eש ×¢×¦×\9e×\95",
        "right-reupload-shared": "דריסה מקומית של קבצים מאתר קובצי המדיה המשותף",
-       "right-upload_by_url": "×\94×¢×\9c×\90ת ×§×\95×\91×¥ ×\9e×\9bת×\95×\91ת ×\90×\99× ×\98רנ×\98",
-       "right-purge": "רענ×\95×\9f ×\96×\99×\9bר×\95×\9f ×\94×\9e×\98×\9e×\95×\9f ×©×\9c ×\94×\90תר ×\9c×\9c×\90 ×\9e×¢×\91ר ×\9cדף אישור",
-       "right-autoconfirmed": "עק×\99פת ×\94×\92×\91×\9cת ×§×¦×\91 ×\94ער×\99×\9b×\95ת ×\94×\9e×\91×\95ססת ×¢×\9c ×\9bת×\95×\91ת IP",
-       "right-bot": "×\98×\99פ×\95×\9c ×\91עריכות כאוטומטיות",
-       "right-nominornewtalk": "×\91×\99×\98×\95×\9c ×©×\9c×\99×\97ת ×\94תר×\90×\94 ×¢×\9c ×\94×\95×\93×¢×\94 ×\97×\93ש×\94 ×\9c×\9eשת×\9eש ×\91עת ×¢×¨×\99×\9b×\94 ×\9eשנ×\99ת ×\91×\93×£ ×©×\99×\97תו",
+       "right-upload_by_url": "×\94×¢×\9c×\90ת ×§×\91צ×\99×\9d ×\9e×\9bת×\95×\91ת ×\90×\99× ×\98רנ×\98 (URL)",
+       "right-purge": "רענ×\95×\9f ×\96×\99×\9bר×\95×\9f ×\94×\9e×\98×\9e×\95×\9f ×©×\9c ×\94×\90תר ×\9c×\9c×\90 ×\9e×¢×\91ר ×\91דף אישור",
+       "right-autoconfirmed": "עק×\99פת ×\94×\94×\92×\91×\9c×\94 ×¢×\9c ×§×¦×\91 ×\94פע×\95×\9c×\95ת ×©× ×\99ת×\9f ×\9c×\91צע ×\9e×\9bת×\95×\91ת IP ×\9eס×\95×\99×\9eת",
+       "right-bot": "×\94ת×\99×\99×\97ס×\95ת ×\9cעריכות כאוטומטיות",
+       "right-nominornewtalk": "×\91×\99×\98×\95×\9c ×©×\9c×\99×\97ת ×\94תר×\90×\94 ×¢×\9c ×\94×\95×\93×¢×\94 ×\97×\93ש×\94 ×\9c×\9eשת×\9eש ×\91עת ×¢×¨×\99×\9b×\94 ×\9eשנ×\99ת ×\91×\93×£ ×\94ש×\99×\97×\94 ×©×\9cו",
        "right-apihighlimits": "שימוש ב־API עם פחות הגבלות",
        "right-writeapi": "שימוש ב־API לשינוי דפים",
        "right-delete": "מחיקת דפים",
-       "right-bigdelete": "×\9e×\97×\99קת ×\93פ×\99×\9d ×¢×\9d ×\94×\99ס×\98×\95ר×\99×\99ת ×\93×£ ×\90ר×\95×\9b×\94",
-       "right-deletelogentry": "×\9e×\97×\99קת ×\95ש×\97×\96×\95ר ×¤×¢×\95×\9c×\95ת ×\9eס×\95×\99×\9e×\95ת ×\91יומן",
-       "right-deleterevision": "×\9e×\97×\99קת ×\95ש×\97×\96×\95ר ×\92רס×\90×\95ת ×\9eס×\95×\99×\9e×\95ת ×©×\9c דפים",
-       "right-deletedhistory": "צפ×\99×\99×\94 ×\91×\92רס×\90×\95ת ×\9e×\97×\95ק×\95ת ×\9c×\9c×\90 ×\94×\98קס×\98 השייך להן",
-       "right-deletedtext": "צפ×\99×\99×\94 ×\91×\98קס×\98 ×\9e×\97×\95ק ×\95×\91×\94×\91×\93×\9c×\99×\9d ×\91×\99×\9f ×\92רס×\90×\95ת ×\9e×\97×\95ק×\95ת",
+       "right-bigdelete": "×\9e×\97×\99קת ×\93פ×\99×\9d ×\94×\9e×\9b×\99×\9c×\99×\9d ×\9b×\9e×\95ת ×\92×\93×\95×\9c×\94 ×©×\9c ×¢×¨×\99×\9b×\95ת ×\91×\94×\99ס×\98×\95ר×\99×\99ת ×\94×\92רס×\90×\95ת",
+       "right-deletelogentry": "×\9e×\97×\99ק×\94 ×\95ש×\97×\96×\95ר ×©×\9c ×¤×¢×\95×\9c×\95ת יומן",
+       "right-deleterevision": "×\9e×\97×\99ק×\94 ×\95ש×\97×\96×\95ר ×©×\9c ×\92רס×\90×\95ת ×\9eס×\95×\99×\9e×\95ת ×\91דפים",
+       "right-deletedhistory": "צפ×\99×\99×\94 ×\91פר×\98×\99×\9d ×©×\9c ×\92רס×\90×\95ת ×©× ×\9e×\97ק×\95, ×\9c×\9c×\90 ×\94ת×\95×\9b×\9f השייך להן",
+       "right-deletedtext": "צפ×\99×\99×\94 ×\91ת×\95×\9b×\9f ×©× ×\9e×\97ק ×\95×\91×\94×\91×\93×\9c×\99×\9d ×\91×\99×\9f ×\92רס×\90×\95ת ×©× ×\9e×\97ק×\95",
        "right-browsearchive": "חיפוש דפים מחוקים",
-       "right-undelete": "ש×\97×\96×\95ר ×\93×£ ×\9e×\97×\95ק",
-       "right-suppressrevision": "×\94צ×\92×\94, ×\94סתר×\94 ×\95×\91×\99×\98×\95×\9c ×\94סתר×\94 ×©×\9c ×\92רס×\90×\95ת ×\9eס×\95×\99×\9e×\95ת ×©×\9c דפים מכל המשתמשים",
-       "right-viewsuppressed": "×\94צ×\92ת ×\92רס×\90×\95ת ×©×\9e×\95סתר×\95ת מכל המשתמשים",
+       "right-undelete": "ש×\97×\96×\95ר ×\93פ×\99×\9d ×\9e×\97×\95ק×\99×\9d",
+       "right-suppressrevision": "צפ×\99×\99×\94, ×\94סתר×\94 ×\95×\91×\99×\98×\95×\9c ×\94סתר×\94 ×©×\9c ×\92רס×\90×\95ת ×\9eס×\95×\99×\9e×\95ת ×\91דפים מכל המשתמשים",
+       "right-viewsuppressed": "צפ×\99×\99×\94 ×\91×\92רס×\90×\95ת ×©×\94×\95סתר×\95 מכל המשתמשים",
        "right-suppressionlog": "צפייה ביומנים פרטיים",
-       "right-block": "×\97ס×\99×\9eת ×\9eשת×\9eש×\99×\9d ×\90×\97ר×\99×\9d ×\9eער×\99×\9b×\94",
-       "right-blockemail": "חסימת משתמש משליחת דואר אלקטרוני",
+       "right-block": "חסימת משתמשים מעריכה",
+       "right-blockemail": "חסימת משתמשים משליחת דואר אלקטרוני",
        "right-hideuser": "חסימת שם משתמש תוך הסתרתו מהציבור",
-       "right-ipblock-exempt": "עק×\99פת ×\97ס×\99×\9e×\95ת ×©×\9c ×\9bת×\95×\91ת IP, ×\97ס×\99×\9e×\95ת ×\90×\95×\98×\95×\9e×\98×\99×\95ת ×\95×\97ס×\99×\9e×\95ת ×\98×\95×\95×\97",
+       "right-ipblock-exempt": "עק×\99פת ×\97ס×\99×\9e×\95ת ×©×\9c ×\9bת×\95×\91×\95ת IP, ×\97ס×\99×\9e×\95ת ×\90×\95×\98×\95×\9e×\98×\99×\95ת ×\95×\97ס×\99×\9e×\95ת ×\98×\95×\95×\97×\99×\9d",
        "right-unblockself": "שחרור חסימה של המשתמש עצמו",
-       "right-protect": "שינוי רמות הגנה ועריכת דפים המוגנים בהגנה מדורגת",
-       "right-editprotected": "עריכת דפים המוגנים ברמת \"{{int:protect-level-sysop}}\"",
-       "right-editsemiprotected": "עריכת דפים המוגנים ברמת \"{{int:protect-level-autoconfirmed}}\"",
-       "right-editcontentmodel": "ער×\99×\9bת ×\9e×\95×\93×\9c ×\94ת×\95×\9b×\9f ×©×\9c ×\93×£",
+       "right-protect": "ש×\99× ×\95×\99 ×¨×\9e×\95ת ×\94×\92× ×\94 ×©×\9c ×\93פ×\99×\9d ×\95ער×\99×\9bת ×\93פ×\99×\9d ×\94×\9e×\95×\92× ×\99×\9d ×\91×\94×\92× ×\94 ×\9e×\93×\95ר×\92ת",
+       "right-editprotected": "עריכת דפים המוגנים ברמת ההגנה \"{{int:protect-level-sysop}}\"",
+       "right-editsemiprotected": "עריכת דפים המוגנים ברמת ההגנה \"{{int:protect-level-autoconfirmed}}\"",
+       "right-editcontentmodel": "ש×\99× ×\95×\99 ×\9e×\95×\93×\9c ×\94ת×\95×\9b×\9f ×©×\9c ×\93פ×\99×\9d",
        "right-editinterface": "עריכת ממשק המשתמש",
-       "right-editusercssjs": "ער×\99×\9bת ×\93פי CSS ו־JavaScript של משתמשים אחרים",
-       "right-editusercss": "ער×\99×\9bת ×\92×\99×\9c×\99×\95× ×\95ת CSS של משתמשים אחרים",
-       "right-edituserjs": "עריכת קבצי JavaScript של משתמשים אחרים",
-       "right-editmyusercss": "ער×\99×\9bת ×\92×\99×\9c×\99×\95× ×\95ת CSS של המשתמש עצמו",
-       "right-editmyuserjs": "עריכת קבצי JavaScript של המשתמש עצמו",
+       "right-editusercssjs": "ער×\99×\9bת ×§×\95×\91צי CSS ו־JavaScript של משתמשים אחרים",
+       "right-editusercss": "ער×\99×\9bת ×§×\95×\91צ×\99 CSS של משתמשים אחרים",
+       "right-edituserjs": "ער×\99×\9bת ×§×\95×\91צ×\99 JavaScript ×©×\9c ×\9eשת×\9eש×\99×\9d ×\90×\97ר×\99×\9d",
+       "right-editmyusercss": "ער×\99×\9bת ×§×\95×\91צ×\99 CSS של המשתמש עצמו",
+       "right-editmyuserjs": "ער×\99×\9bת ×§×\95×\91צ×\99 JavaScript ×©×\9c ×\94×\9eשת×\9eש ×¢×¦×\9e×\95",
        "right-viewmywatchlist": "צפייה ברשימת המעקב של המשתמש עצמו",
-       "right-editmywatchlist": "ער×\99×\9bת ×¨×©×\99×\9eת ×\94×\9eעק×\91 ×©×\9c ×\94×\9eשת×\9eש ×¢×¦×\9e×\95. ×\9eספר ×¤×¢×\95×\9c×\95ת ×¢×\93×\99×\99×\9f ×\99×\95ס×\99פ×\95 ×\93פ×\99×\9d ×\92×\9d ×\9c×\9c×\90 ×\94רש×\90×\94 ×\96×\95.",
-       "right-viewmyprivateinfo": "צפייה במידע הפרטי של המשתמש עצמו (כגון כתובת דוא\"ל, שם אמיתי)",
-       "right-editmyprivateinfo": "עריכת המידע הפרטי של המשתמש עצמו (כגון כתובת דוא\"ל, שם אמיתי)",
+       "right-editmywatchlist": "עריכת רשימת המעקב של המשתמש עצמו. מספר פעולות יוסיפו דפים גם ללא הרשאה זו.",
+       "right-viewmyprivateinfo": "צפייה במידע הפרטי של המשתמש עצמו (כגון: כתובת דוא\"ל, שם אמיתי)",
+       "right-editmyprivateinfo": "עריכת המידע הפרטי של המשתמש עצמו (כגון: כתובת דוא\"ל, שם אמיתי)",
        "right-editmyoptions": "עריכת ההעדפות של המשתמש עצמו",
-       "right-rollback": "ש×\97×\96×\95ר ×\9e×\94×\99ר ×©×\9c ×¢×¨×\99×\9b×\95ת ×\94×\9eשת×\9eש ×\94×\90×\97ר×\95×\9f ×©×¢×¨×\9a ×\93×£ ×\9eס×\95ים",
+       "right-rollback": "ש×\97×\96×\95ר ×\9e×\94×\99ר ×©×\9c ×\94ער×\99×\9b×\95ת ×©× ×¢×©×\95 ×¢×\9cÖ¾×\99×\93×\99 ×\94×¢×\95ר×\9a ×\94×\90×\97ר×\95×\9f ×\91×\93פים",
        "right-markbotedits": "סימון עריכות משוחזרות כעריכות של בוט",
-       "right-noratelimit": "עק×\99פת ×\94×\92×\91×\9cת ×§×¦×\91 ×\94ער×\99×\9bות",
+       "right-noratelimit": "עק×\99פת ×\94×\94×\92×\91×\9c×\94 ×¢×\9c ×§×¦×\91 ×\94פע×\95×\9cות",
        "right-import": "ייבוא דפים מאתרי ויקי אחרים",
-       "right-importupload": "×\99×\99×\91×\95×\90 ×\93פ×\99×\9d ×\91×\90×\9eצע×\95ת ×\94×¢×\9c×\90ת ×§×\95×\91×¥",
+       "right-importupload": "×\99×\99×\91×\95×\90 ×\93פ×\99×\9d ×\91×\90×\9eצע×\95ת ×\94×¢×\9c×\90ת ×§×\91צ×\99×\9d",
        "right-patrol": "סימון עריכות של אחרים כבדוקות",
-       "right-autopatrol": "ס×\99×\9e×\95×\9f ×\90×\95×\98×\95×\9e×\98×\99 ×©×\9c ×¢×¨×\99×\9b×\95ת ×©×\9c ×\94×\9eשת×\9eש כבדוקות",
+       "right-autopatrol": "ס×\99×\9e×\95×\9f ×\90×\95×\98×\95×\9e×\98×\99 ×©×\9c ×¢×¨×\99×\9b×\95ת ×\94×\9eשת×\9eש ×¢×¦×\9e×\95 כבדוקות",
        "right-patrolmarks": "הבחנה בין עריכות שנבדקו לעריכות שטרם נבדקו בדף השינויים האחרונים",
-       "right-unwatchedpages": "×\94צ×\92ת ×¨×©×\99×\9e×\94 ×©×\9c דפים שאינם במעקב",
+       "right-unwatchedpages": "צפ×\99×\99×\94 ×\91רש×\99×\9eת ×\94דפים שאינם במעקב",
        "right-mergehistory": "מיזוג היסטוריית גרסאות של דפים",
-       "right-userrights": "ער×\99×\9bת כל הרשאות המשתמש",
-       "right-userrights-interwiki": "ער×\99×\9bת ×\94רש×\90×\95ת ×\94×\9eשת×\9eש של משתמשים באתרי ויקי אחרים",
+       "right-userrights": "ש×\99× ×\95×\99 כל הרשאות המשתמש",
+       "right-userrights-interwiki": "ש×\99× ×\95×\99 ×\94רש×\90×\95ת של משתמשים באתרי ויקי אחרים",
        "right-siteadmin": "נעילה וביטול נעילה של בסיס הנתונים",
-       "right-override-export-depth": "×\99×\99צ×\95×\90 ×\93פ×\99×\9d ×\9b×\95×\9c×\9c ×\93פ×\99×\9d ×\9eק×\95שר×\99×\9d ×¢×\93 ×¢×\95×\9eק ×©×\9c ×\97×\9e×\99ש×\94",
+       "right-override-export-depth": "×\99×\99צ×\95×\90 ×\93פ×\99×\9d ×\9b×\95×\9c×\9c ×\94×\93פ×\99×\9d ×\94×\9eק×\95שר×\99×\9d (×¢×\93 ×¢×\95×\9eק ×©×\9c 5 ×\93פ×\99×\9d)",
        "right-sendemail": "שליחת דואר אלקטרוני למשתמשים אחרים",
        "right-passwordreset": "צפייה בדואר אלקטרוני של איפוס סיסמה",
        "right-managechangetags": "יצירה, הפעלה וביטול של [[Special:Tags|תגיות]]",
        "right-applychangetags": "החלת [[Special:Tags|תגיות]] יחד עם שינויים",
-       "right-changetags": "×\94×\95ספת ×\95×\94סר×\94 ×©×\9c [[Special:Tags|ת×\92×\99×\95ת]] ×\9b×\9cש×\94×\9f ×\9c×\92רס×\90×\95ת ×\9eס×\95×\99×\9eות ולרשומות יומן",
+       "right-changetags": "×\94×\95ספ×\94 ×\95×\94סר×\94 ×©×\9c [[Special:Tags|ת×\92×\99×\95ת]] ×\9c×\92רס×\90ות ולרשומות יומן",
        "right-deletechangetags": "מחיקת [[Special:Tags|תגיות]] מבסיס הנתונים",
        "grant-generic": "חבילת ההרשאות \"$1\"",
        "grant-group-page-interaction": "אינטראקציה עם דפים",
        "rightslogtext": "יומן זה מציג את השינויים בהרשאות של המשתמשים.",
        "action-read": "לקרוא דף זה",
        "action-edit": "לערוך דף זה",
-       "action-createpage": "×\9c×\99צ×\95ר ×\93פ×\99×\9d",
-       "action-createtalk": "×\9c×\99צ×\95ר ×\93פ×\99 ×©×\99×\97ה",
-       "action-createaccount": "×\9c×\99צ×\95ר ×\90ת ×\97ש×\91×\95×\9f ×\94×\9eשת×\9eש ×\94×\96×\94",
-       "action-autocreateaccount": "ליצור את חשבון המשתמש החיצוני הזה",
+       "action-createpage": "×\9c×\99צ×\95ר ×\93×£ ×\96×\94",
+       "action-createtalk": "×\9c×\99צ×\95ר ×\93×£ ×\96ה",
+       "action-createaccount": "×\9c×\99צ×\95ר ×\97ש×\91×\95× ×\95ת ×\9eשת×\9eש ×\97×\93ש×\99×\9d",
+       "action-autocreateaccount": "ליצור את חשבון המשתמש החיצוני הזה באופן אוטומטי",
        "action-history": "לצפות בהיסטוריה של דף זה",
        "action-minoredit": "לסמן עריכה זו כמשנית",
        "action-move": "להעביר דף זה",
        "action-writeapi": "להשתמש ב־API לשינוי דפים",
        "action-delete": "למחוק דף זה",
        "action-deleterevision": "למחוק גרסה זו",
-       "action-deletedhistory": "×\9cצפ×\95ת ×\91×\94×\99ס×\98×\95ר×\99×\94 ×\94×\9e×\97×\95ק×\94 ×©×\9c ×\93×£ ×\96×\94",
+       "action-deletedhistory": "×\9cצפ×\95ת ×\91×\94×\99ס×\98×\95ר×\99×\94 ×\94×\9e×\97×\95ק×\94 ×©×\9c ×\93פ×\99×\9d",
        "action-browsearchive": "לחפש דפים מחוקים",
        "action-undelete": "לשחזר דף זה",
        "action-suppressrevision": "לבדוק ולשחזר גרסה מוסתרת זו",
-       "action-suppressionlog": "×\9cצפ×\95ת ×\91×\99×\95×\9e×\9f ×¤×¨×\98×\99 זה",
-       "action-block": "לחסום משתמש זה מעריכה",
-       "action-protect": "×\9cשנ×\95ת ×\90ת ×¨×\9eת ×\94×\94×\92× ×\94 ×¢ל דף זה",
-       "action-rollback": "×\9cש×\97×\96ר ×\91×\9e×\94×\99ר×\95ת ×\90ת ×¢×¨×\99×\9b×\95ת ×\94×\9eשת×\9eש ×\94×\90×\97ר×\95×\9f ×©×¢×¨×\9a ×\93×£ ×\9eס×\95ים",
-       "action-import": "לייבא דפים מאתר ויקי אחר",
-       "action-importupload": "×\9c×\99×\99×\91×\90 ×\93פ×\99×\9d ×\91×\90×\9eצע×\95ת ×\94×¢×\9c×\90ת ×§×\95×\91×¥",
+       "action-suppressionlog": "×\9cצפ×\95ת ×\91×\99×\95×\9e×\9f ×\94פר×\98×\99 ×\94זה",
+       "action-block": "לחסום משתמשים מעריכה",
+       "action-protect": "×\9cשנ×\95ת ×\90ת ×¨×\9eת ×\94×\94×\92× ×\94 ×©ל דף זה",
+       "action-rollback": "×\9c×\91צע ×©×\97×\96×\95ר ×\9e×\94×\99ר ×©×\9c ×\94ער×\99×\9b×\95ת ×©× ×¢×©×\95 ×¢×\9cÖ¾×\99×\93×\99 ×\94×¢×\95ר×\9a ×\94×\90×\97ר×\95×\9f ×\91×\93פים",
+       "action-import": "לייבא דפים מאתרי ויקי אחרים",
+       "action-importupload": "×\9c×\99×\99×\91×\90 ×\93פ×\99×\9d ×\91×\90×\9eצע×\95ת ×\94×¢×\9c×\90ת ×§×\91צ×\99×\9d",
        "action-patrol": "לסמן עריכות של אחרים כבדוקות",
-       "action-autopatrol": "לסמן את העריכות שלך כבדוקות",
+       "action-autopatrol": "לסמן את העריכות {{GENDER:|שלך|שלך|שלכם}} כבדוקות",
        "action-unwatchedpages": "לצפות ברשימת הדפים שאינם במעקב",
-       "action-mergehistory": "×\9c×\9e×\96×\92 ×\90ת ×\94×\94×\99ס×\98×\95ר×\99×\94 של דף זה",
-       "action-userrights": "×\9cער×\95×\9a את כל הרשאות המשתמש",
-       "action-userrights-interwiki": "×\9cער×\95×\9a ×\90ת ×\94הרשאות של משתמשים באתרי ויקי אחרים",
-       "action-siteadmin": "×\9c× ×¢×\95×\9c ×\90×\95 ×\9c×\91×\98×\9c ×\90ת × ×¢×\99×\9cת בסיס הנתונים",
-       "action-sendemail": "לשלוח דואר אלקטרוני",
-       "action-editmywatchlist": "לערוך את רשימת המעקב שלך",
-       "action-viewmywatchlist": "לצפות ברשימת המעקב שלך",
-       "action-viewmyprivateinfo": "לצפות במידע הפרטי שלך",
-       "action-editmyprivateinfo": "לערוך את המידע הפרטי שלך",
-       "action-editcontentmodel": "×\9cער×\95×\9a ×\90ת ×\9e×\95×\93×\9c ×\94ת×\95×\9b×\9f ×©×\9c ×\93×£",
-       "action-managechangetags": "×\9c×\99צ×\95ר, ×\9c×\94פע×\99×\9c ×\95לבטל תגיות",
-       "action-applychangetags": "×\9c×\94×\97×\99×\9c ×ª×\92×\99×\95ת ×\99×\97×\93 ×¢×\9d ×\94ש×\99× ×\95×\99×\99×\9d ×©×\9c×\9bם",
-       "action-changetags": "×\9c×\94×\95ס×\99×£ ×\95×\9c×\94ס×\99ר ×ª×\92×\99×\95ת ×\9b×\9cש×\94×\9f ×\9c×\92רס×\90×\95ת ×\9eס×\95×\99×\9e×\95ת ×\95×\9cרשומות יומן",
+       "action-mergehistory": "×\9c×\9e×\96×\92 ×\90ת ×\94×\99ס×\98×\95ר×\99×\99ת ×\94×\92רס×\90×\95ת של דף זה",
+       "action-userrights": "×\9cשנ×\95ת את כל הרשאות המשתמש",
+       "action-userrights-interwiki": "×\9cשנ×\95ת הרשאות של משתמשים באתרי ויקי אחרים",
+       "action-siteadmin": "×\9c× ×¢×\95×\9c ×\90×\95 ×\9c×\91×\98×\9c ×\90ת ×\94× ×¢×\99×\9c×\94 ×©×\9c בסיס הנתונים",
+       "action-sendemail": "לשלוח דואר אלקטרוני למשתמשים",
+       "action-editmywatchlist": "לערוך את רשימת המעקב {{GENDER:|שלך|שלך|שלכם}}",
+       "action-viewmywatchlist": "לצפות ברשימת המעקב {{GENDER:|שלך|שלך|שלכם}}",
+       "action-viewmyprivateinfo": "לצפות במידע הפרטי {{GENDER:|שלך|שלך|שלכם}}",
+       "action-editmyprivateinfo": "לערוך את המידע הפרטי {{GENDER:|שלך|שלך|שלכם}}",
+       "action-editcontentmodel": "×\9cשנ×\95ת ×\90ת ×\9e×\95×\93×\9c ×\94ת×\95×\9b×\9f ×©×\9c ×\93פ×\99×\9d",
+       "action-managechangetags": "×\9c×\99צ×\95ר, ×\9c×\94פע×\99×\9c ×\90×\95 לבטל תגיות",
+       "action-applychangetags": "×\9c×\94×\97×\99×\9c ×ª×\92×\99×\95ת ×\99×\97×\93 ×¢×\9d ×©×\99× ×\95×\99×\99ם",
+       "action-changetags": "×\9c×\94×\95ס×\99×£ ×\90×\95 ×\9c×\94ס×\99ר ×ª×\92×\99×\95ת ×\9e×\92רס×\90×\95ת ×\95×\9eרשומות יומן",
        "action-deletechangetags": "למחוק תגיות מבסיס הנתונים",
        "nchanges": "{{PLURAL:$1|שינוי אחד|$1 שינויים}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|מאז ביקורך האחרון}}",
        "recentchanges-label-minor": "זוהי עריכה משנית",
        "recentchanges-label-bot": "עריכה זו בוצעה על־ידי בוט",
        "recentchanges-label-unpatrolled": "עריכה זו טרם נבדקה",
-       "recentchanges-label-plusminus": "×\92×\95×\93×\9c ×\94×\93×£ ×\94שתנ×\94 ×\91×\9eספר ×\96×\94 ×©×\9c ×\91ת×\99×\9d",
+       "recentchanges-label-plusminus": "×\94ש×\99× ×\95×\99 ×\91×\92×\95×\93×\9c ×\94×\93×£ (×\91×\91×\99×\99×\98×\99×\9d)",
        "recentchanges-legend-heading": "<strong>מקרא:</strong>",
-       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (ראו גם את [[Special:NewPages|רשימת הדפים החדשים]])",
-       "recentchanges-legend-plusminus": "(''±123'')",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ({{GENDER:|ראה|ראי|ראו}} גם את [[Special:NewPages|רשימת הדפים החדשים]])",
+       "recentchanges-legend-plusminus": "(<em>±123</em>)",
        "recentchanges-submit": "הצגה",
        "rcnotefrom": "להלן {{PLURAL:$5|השינוי שבוצע|השינויים שבוצעו}} מאז <strong>$3, $4</strong> (מוצגים עד <strong>$1</strong>).",
        "rclistfrom": "הצגת שינויים חדשים החל מ־$2, $3",
        "rcshowhidemine": "$1 עריכות שלי",
        "rcshowhidemine-show": "הצגת",
        "rcshowhidemine-hide": "הסתרת",
-       "rcshowhidecategorization": "$1 שינויים בקטגוריות של דפים",
+       "rcshowhidecategorization": "$1 שינויים בקטגוריות",
        "rcshowhidecategorization-show": "הצגת",
        "rcshowhidecategorization-hide": "הסתרת",
-       "rclinks": "×\94צ×\92ת $1 ×©×\99× ×\95×\99×\99×\9d ×\90×\97ר×\95× ×\99×\9d ×\91Ö¾$2 ×\94×\99×\9e×\99×\9d ×\94×\90×\97ר×\95× ×\99×\9d.<br /> $3",
+       "rclinks": "×\94צ×\92ת $1 ×\94ש×\99× ×\95×\99×\99×\9d ×\94×\90×\97ר×\95× ×\99×\9d ×\91Ö¾$2 ×\94×\99×\9e×\99×\9d ×\94×\90×\97ר×\95× ×\99×\9d<br />$3",
        "diff": "הבדל",
        "hist": "היסטוריה",
        "hide": "הסתרת",
        "ignorewarnings": "התעלמות מכל האזהרות",
        "minlength1": "שמות קבצים צריכים להיות בני תו אחד לפחות.",
        "illegalfilename": "שם הקובץ \"$1\" מכיל תווים שאינם מותרים בכותרות דפים.\nנא לשנות את השם ולנסות להעלותו שנית.",
-       "filename-toolong": "ש×\9e×\95ת ×§×\91צ×\99×\9d ×\9c×\90 ×\99×\9b×\95×\9c×\99×\9d ×\9c×\94×\99×\95ת ×\90ר×\95×\9b×\99×\9d ×\9eÖ¾240 ×\91תים.",
+       "filename-toolong": "ש×\9e×\95ת ×©×\9c ×§×\91צ×\99×\9d ×\9c×\90 ×\99×\9b×\95×\9c×\99×\9d ×\9c×\94×\99×\95ת ×\90ר×\95×\9b×\99×\9d ×\99×\95תר ×\9eÖ¾240 ×\91×\99×\99×\98ים.",
        "badfilename": "שם הקובץ שונה ל־\"$1\".",
        "filetype-mime-mismatch": "סיומת הקובץ \".$1\" אינה מתאימה לסוג ה־MIME שנמצא לקובץ זה ($2).",
        "filetype-badmime": "לא ניתן להעלות קבצים שסוג ה־MIME שלהם הוא \"$1\".",
        "upload-http-error": "התרחשה שגיאת HTTP‏: $1",
        "upload-copy-upload-invalid-domain": "העלאת קבצים משרת זה אינה אפשרית.",
        "upload-foreign-cant-upload": "באתר הוויקי הזה לא מופעלת האפשרות להעלאת קבצים למאגר הקבצים הזר המבוקש.",
+       "upload-foreign-cant-load-config": "טעינת ההגדרות הדרושות להעלאת קבצים למאגר הקבצים הזר נכשלה.",
+       "upload-dialog-disabled": "אין אפשרות להעלות קבצים באמצעות תיבת הדו־שיח הזאת באתר זה.",
        "upload-dialog-title": "העלאת קובץ",
        "upload-dialog-button-cancel": "ביטול",
        "upload-dialog-button-done": "בוצע",
        "backend-fail-closetemp": "לא הייתה אפשרות לסגור את הקובץ הזמני.",
        "backend-fail-read": "לא ניתן היה לקרוא את הקובץ \"$1\".",
        "backend-fail-create": "לא ניתן היה לכתוב את הקובץ \"$1\".",
-       "backend-fail-maxsize": "×\9c×\90 × ×\99ת×\9f ×\94×\99×\94 ×\9c×\9bת×\95×\91 ×\90ת ×\94ק×\95×\91×¥ \"$1\" ×\9b×\99×\95×\95×\9f ×©×\94×\95×\90 ×\92×\93×\95×\9c ×\99×\95תר {{PLURAL:$2|×\9e×\91×\99ת ×\90×\97×\93\9eÖ¾$2 ×\91תים}}.",
+       "backend-fail-maxsize": "×\9c×\90 × ×\99ת×\9f ×\94×\99×\94 ×\9c×\9bת×\95×\91 ×\90ת ×\94ק×\95×\91×¥ \"$1\" ×\9b×\99×\95×\95×\9f ×©×\94×\95×\90 ×\92×\93×\95×\9c ×\99×\95תר {{PLURAL:$2|×\9e×\91×\99×\99×\98 ×\90×\97×\93\9eÖ¾$2 ×\91×\99×\99×\98ים}}.",
        "backend-fail-readonly": "מאגר האחסון לקבצים \"$1\" הוא כרגע במצב קריאה בלבד. הסיבה שניתנה לכך היא: <em>$2</em>",
        "backend-fail-synced": "הקובץ \"$1\" נמצא במצב לא עקבי בתוך מאגרי אחסון הקבצים הפנימיים",
        "backend-fail-connect": "לא ניתן היה להתחבר למאגר אחסון הקבצים הפנימי \"$1\".",
        "withoutinterwiki-legend": "תחילית",
        "withoutinterwiki-submit": "הצגה",
        "fewestrevisions": "הדפים בעלי מספר העריכות הנמוך ביותר",
-       "nbytes": "{{PLURAL:$1|×\91×\99ת ×\90×\97×\93|$1 ×\91תים}}",
+       "nbytes": "{{PLURAL:$1|×\91×\99×\99×\98 ×\90×\97×\93|$1 ×\91×\99×\99×\98ים}}",
        "ncategories": "{{PLURAL:$1|קטגוריה אחת|$1 קטגוריות}}",
        "ninterwikis": "{{PLURAL:$1|קישור בינוויקי קחד|$1 קישורי בינוויקי}}",
        "nlinks": "{{PLURAL:$1|קישור אחד|$1 קישורים}}",
        "mostimages": "הקבצים המקושרים ביותר",
        "mostinterwikis": "הדפים עם המספר הרב ביותר של קישורי בינוויקי",
        "mostrevisions": "הדפים עם מספר העריכות הגבוה ביותר",
-       "prefixindex": "כל דפים עם התחילית",
-       "prefixindex-namespace": "כל דפים עם התחילית (במרחב השם $1)",
+       "prefixindex": "×\9b×\9c ×\94×\93פ×\99×\9d ×¢×\9d ×\94ת×\97×\99×\9c×\99ת",
+       "prefixindex-namespace": "×\9b×\9c ×\94×\93פ×\99×\9d ×¢×\9d ×\94ת×\97×\99×\9c×\99ת (×\91×\9eר×\97×\91 ×\94ש×\9d $1)",
        "prefixindex-submit": "הצגה",
        "prefixindex-strip": "הסתרת התחילית ברשימה",
        "shortpages": "דפים קצרים",
        "protectedpages-unknown-timestamp": "לא ידוע",
        "protectedpages-unknown-performer": "משתמש לא ידוע",
        "protectedtitles": "כותרות מוגנות",
-       "protectedtitles-summary": "×\91×\93×£ ×\96×\94 ×¨×©×\95×\9e×\95ת ×\94×\9b×\95תר×\95ת ×©×\9e×\95×\92× ×\95ת ×\9bעת ×\9eפנ×\99 ×\99צ×\99ר×\94. ×\9cרש×\99×\9eת ×\94×\93פ×\99×\9d ×\94ק×\99×\99×\9e×\99×\9d ×©×\9e×\95×\92× ×\99×\9d, ×¨×\90×\95 [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].",
+       "protectedtitles-summary": "×\91×\93×£ ×\96×\94 ×¨×©×\95×\9e×\95ת ×\94×\9b×\95תר×\95ת ×©×\9c ×\94×\93פ×\99×\9d ×©×\9e×\95×\92× ×\99×\9d ×\9bעת ×\9eפנ×\99 ×\99צ×\99ר×\94. ×\9cרש×\99×\9eת ×\94×\93פ×\99×\9d ×\94ק×\99×\99×\9e×\99×\9d ×©×\9e×\95×\92× ×\99×\9d, {{GENDER:|ר×\90×\94|ר×\90×\99|ר×\90×\95}} [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].",
        "protectedtitlesempty": "אין כרגע כותרות מוגנות עם הפרמטרים האלה.",
        "protectedtitles-submit": "הצגת הדפים",
        "listusers": "רשימת משתמשים",
        "listusers-editsonly": "הצגת משתמשים עם עריכות בלבד",
-       "listusers-creationsort": "מיון לפי תאריך היצירה",
+       "listusers-creationsort": "מיון לפי תאריך היצירה של החשבון",
        "listusers-desc": "מיון בסדר יורד",
        "usereditcount": "{{PLURAL:$1|עריכה אחת|$1 עריכות}}",
        "usercreated": "{{GENDER:$3|נוצר|נוצרה}} ב־$2, $1",
        "apisandbox": "ארגז החול של ה־API",
        "apisandbox-jsonly": "דרוש JavaScript כדי להשתמש בארגז החול של ה־API.",
        "apisandbox-api-disabled": "API אינו פעיל באתר הזה.",
-       "apisandbox-intro": "השתמשו בדף הזה כדי להתנסות בשימוש ב<strong>שירות ה־API המבוסס Web של מדיה־ויקי</strong>.\nעיינו ב[[mw:API:Main page|תיעוד של ה־API]] (באנגלית) למידע נוסף של שימוש ב־API. למשל: [//www.mediawiki.org/wiki/API#A_simple_example איך לקבל את התוכן של העמוד הראשי]. בחרו באחת הפעולות (actions) לדוגמאות נוספות.\n\nשימו לב שאף שמדובר ב\"ארגז חול\", פעולות שנעשות כאן עשויות לשנות את התוכן של אתר הוויקי.",
+       "apisandbox-intro": "השתמשו בדף הזה כדי להתנסות בשימוש ב<strong>שירות ה־API המבוסס Web של מדיה־ויקי</strong>.\nעיינו ב[[mw:API:Main page|תיעוד של ה־API]] (באנגלית) למידע נוסף של שימוש ב־API. למשל: [https://www.mediawiki.org/wiki/API#A_simple_example איך לקבל את התוכן של העמוד הראשי]. בחרו באחת הפעולות (actions) לדוגמאות נוספות.\n\nשימו לב שאף שמדובר ב\"ארגז חול\", פעולות שנעשות כאן עשויות לשנות את התוכן של אתר הוויקי.",
        "apisandbox-fullscreen": "הרחבת החלונית",
        "apisandbox-fullscreen-tooltip": "הרחבת החלונית של ארגז החול כך שתמלא את חלון הדפדפן.",
        "apisandbox-unfullscreen": "הצגת הדף",
        "booksources-text": "להלן רשימת קישורים לאתרים אחרים המוכרים ספרים חדשים ויד־שנייה, ושבהם עשוי להיות מידע נוסף לגבי ספרים שאתם מחפשים:",
        "booksources-invalid-isbn": "המסת\"ב שניתן כנראה אינו תקין; אנא בדקו אם ביצעתם טעויות בהעתקה מהמידע המקורי.",
        "specialloguserlabel": "בוצעו על־ידי המשתמש:",
-       "speciallogtitlelabel": "×\99×¢×\93 (×\9b×\95תרת ×\90×\95 {{ns:user}}:ש×\9d עבור משתמש):",
+       "speciallogtitlelabel": "×\99×¢×\93 (ש×\9d ×\94×\93×£, ×\90×\95 \"{{ns:user}}:ש×\9d\" עבור משתמש):",
        "log": "יומנים",
        "logeventslist-submit": "הצגה",
        "all-logs-page": "כל היומנים הציבוריים",
        "activeusers-noresult": "לא נמצאו משתמשים.",
        "activeusers-submit": "הצגת משתמשים פעילים",
        "listgrouprights": "רשימת הרשאות לקבוצה",
-       "listgrouprights-summary": "×\96×\95×\94×\99 ×¨×©×\99×\9e×\94 ×©×\9c ×§×\91×\95צ×\95ת ×\94×\9eשת×\9eש ×\94×\9e×\95×\92×\93ר×\95ת ×\91×\90תר ×\96×\94, ×¢×\9d ×\94×\94רש×\90×\95ת ×©×\9c ×\9b×\9c ×\90×\97ת.\nמידע נוסף על ההרשאות ניתן למצוא [[{{MediaWiki:Listgrouprights-helppage}}|כאן]].",
+       "listgrouprights-summary": "×\96×\95×\94×\99 ×¨×©×\99×\9e×\94 ×©×\9c ×§×\91×\95צ×\95ת ×\94×\9eשת×\9eש ×\94×\9e×\95×\92×\93ר×\95ת ×\91×\90תר ×\96×\94, ×¢×\9d ×\94×\94רש×\90×\95ת ×©×\9c ×\9b×\9c ×§×\91×\95צ×\94.\nמידע נוסף על ההרשאות ניתן למצוא [[{{MediaWiki:Listgrouprights-helppage}}|כאן]].",
        "listgrouprights-key": "מקרא:\n* <span class=\"listgrouprights-granted\">הרשאה שהוענקה</span>\n* <span class=\"listgrouprights-revoked\">הרשאה שהוסרה</span>",
        "listgrouprights-group": "קבוצה",
        "listgrouprights-rights": "הרשאות",
        "listgrouprights-helppage": "Help:הרשאות",
        "listgrouprights-members": "(רשימת חברים)",
        "listgrouprights-right-display": "<span class=\"listgrouprights-granted\">$1 <code dir=\"ltr\">($2)</code></span>",
-       "listgrouprights-addgroup": "הוספת {{PLURAL:$2|הקבוצה|הקבוצות}}: $1",
-       "listgrouprights-removegroup": "הסרת {{PLURAL:$2|הקבוצה|הקבוצות}}: $1",
-       "listgrouprights-addgroup-all": "הוספת כל הקבוצות",
-       "listgrouprights-removegroup-all": "הסרת כל הקבוצות",
-       "listgrouprights-addgroup-self": "הוספת {{PLURAL:$2|הקבוצה|הקבוצות}} לחשבון האישי: $1",
-       "listgrouprights-removegroup-self": "הסרת {{PLURAL:$2|הקבוצה|הקבוצות}} מהחשבון האישי: $1",
-       "listgrouprights-addgroup-self-all": "×\94×\95ספת ×\9b×\9c ×\94ק×\91×\95צ×\95ת ×\9c×\97ש×\91×\95×\9f ×\94×\90×\99ש×\99",
-       "listgrouprights-removegroup-self-all": "×\94סרת ×\9b×\9c ×\94ק×\91×\95צ×\95ת ×\9e×\94×\97ש×\91×\95×\9f ×\94×\90×\99ש×\99",
+       "listgrouprights-addgroup": "הוספת משתמשים ל{{PLURAL:$2|קבוצה|קבוצות}}: $1",
+       "listgrouprights-removegroup": "הסרת משתמשים מה{{PLURAL:$2|קבוצה|קבוצות}}: $1",
+       "listgrouprights-addgroup-all": "×\94×\95ספת ×\9eשת×\9eש×\99×\9d ×\9c×\9b×\9c ×\94ק×\91×\95צ×\95ת",
+       "listgrouprights-removegroup-all": "×\94סרת ×\9eשת×\9eש×\99×\9d ×\9e×\9b×\9c ×\94ק×\91×\95צ×\95ת",
+       "listgrouprights-addgroup-self": "הוספת המשתמש עצמו ל{{PLURAL:$2|קבוצה|קבוצות}}: $1",
+       "listgrouprights-removegroup-self": "הסרת המשתמש עצמו מה{{PLURAL:$2|קבוצה|קבוצות}}: $1",
+       "listgrouprights-addgroup-self-all": "×\94×\95ספת ×\94×\9eשת×\9eש ×¢×¦×\9e×\95 ×\9c×\9b×\9c ×\94ק×\91×\95צ×\95ת",
+       "listgrouprights-removegroup-self-all": "×\94סרת ×\94×\9eשת×\9eש ×¢×¦×\9e×\95 ×\9e×\9b×\9c ×\94ק×\91×\95צ×\95ת",
        "listgrouprights-namespaceprotection-header": "הגבלות על מרחבי שם",
        "listgrouprights-namespaceprotection-namespace": "מרחב השם",
        "listgrouprights-namespaceprotection-restrictedto": "ההרשאה או ההרשאות המאפשרות למשתמשים לערוך",
        "trackingcategories-disabled": "הקטגוריה מבוטלת",
        "mailnologin": "אין כתובת לשליחה",
        "mailnologintext": "יש [[Special:UserLogin|להיכנס לחשבון]] ולהגדיר כתובת דואר אלקטרוני תקינה ב[[Special:Preferences|העדפות המשתמש]] כדי לשלוח דואר אלקטרוני למשתמשים אחרים.",
-       "emailuser": "שליחת דוא\"ל ל{{GENDER:{{BASEPAGENAME}}|משתמש זה|משתמשת זו}}",
-       "emailuser-title-target": "שליחת דוא\"ל {{GENDER:$1|למשתמש זה|למשתמשת זו}}",
-       "emailuser-title-notarget": "שליחת דוא\"ל למשתמש",
+       "emailuser": "שליחת דוא\"ל ל{{GENDER:{{BASEPAGENAME}}|משתמש|משתמשת}}",
+       "emailuser-title-target": "שליחת דואר אלקטרוני {{GENDER:$1|למשתמש זה|למשתמשת זו}}",
+       "emailuser-title-notarget": "שליחת דואר אלקטרוני למשתמש",
        "emailpagetext": "ניתן להשתמש בטופס שלהלן כדי לשלוח הודעת דואר אלקטרוני {{GENDER:$1|למשתמש זה|למשתמשת זו}}.\nכתובת הדואר האלקטרוני שהזנת ב[[Special:Preferences|העדפות המשתמש שלך]] תופיע ככתובת שההודעה נשלחה ממנה, כדי לאפשר תגובה ישירה.",
-       "defemailsubject": "דוא\"ל מ{{grammar:תחילית|{{SITENAME}}}} מהמשתמש \"$1\"",
+       "defemailsubject": "דוא\"ל מ{{GRAMMAR:תחילית|{{SITENAME}}}} מה{{GENDER:$1|משתמש|משתמשת}} \"$1\"",
        "usermaildisabled": "שליחת דוא\"ל למשתמשים מבוטלת",
        "usermaildisabledtext": "אינכם מורשים לשלוח דואר אלקטרוני למשתמשים אחרים באתר זה",
        "noemailtitle": "אין כתובת דואר אלקטרוני",
        "wlshowhideanons": "משתמשים אנונימיים",
        "wlshowhidepatr": "עריכות בדוקות",
        "wlshowhidemine": "עריכות שלי",
-       "wlshowhidecategorization": "שינויים בקטגוריות של דפים",
+       "wlshowhidecategorization": "שינויים בקטגוריות",
        "watchlist-options": "אפשרויות ברשימת המעקב",
        "watching": "בהוספה לרשימת המעקב...",
        "unwatching": "בהסרה מרשימת המעקב...",
        "exbeforeblank": "התוכן לפני שרוקן היה: \"$1\"",
        "delete-confirm": "מחיקת הדף \"$1\"",
        "delete-legend": "מחיקה",
-       "historywarning": "<strong>אזהרה:</strong> לדף שאתם עומדים למחוק יש היסטוריית שינויים של {{PLURAL:$1|גרסה אחת|$1 גרסאות}}:",
+       "historywarning": "<strong>אזהרה:</strong> לדף ש{{GENDER:|אתה עומד|את עומדת|אתם עומדים}} למחוק יש היסטוריית שינויים של {{PLURAL:$1|גרסה אחת|$1 גרסאות}}:",
        "historyaction-submit": "הצגה",
        "confirmdeletetext": "אתם עומדים למחוק דף יחד עם כל ההיסטוריה שלו.\n\nאנא אשרו שזה אכן מה שאתם מתכוונים לעשות, שאתם מבינים את התוצאות של מעשה כזה, ושהמעשה מבוצע בהתאם ל[[{{MediaWiki:Policy-url}}|נוהלי האתר]].",
        "actioncomplete": "הפעולה בוצעה",
        "delete-toobig": "דף זה כולל מעל {{PLURAL:$1|גרסה אחת|$1 גרסאות}} בהיסטוריית העריכות שלו. מחיקת דפים כאלה הוגבלה כדי למנוע פגיעה בביצועי האתר.",
        "delete-warning-toobig": "דף זה כולל מעל {{PLURAL:$1|גרסה אחת|$1 גרסאות}} בהיסטוריית העריכות שלו. מחיקה שלו עלולה להפריע לפעולות בבסיס הנתונים; אנא שקלו שנית את המחיקה.",
        "deleteprotected": "אין באפשרותך למחוק את הדף כי הוא מוגן.",
-       "deleting-backlinks-warning": "<strong>אזהרה:</strong> [[Special:WhatLinksHere/{{FULLPAGENAME}}|דפים אחרים]] מקשרים לדף שאתם עומדים למחוק או מכלילים אותו.",
+       "deleting-backlinks-warning": "<strong>אזהרה:</strong> [[Special:WhatLinksHere/{{FULLPAGENAME}}|דפים אחרים]] מקשרים לדף ש{{GENDER:|אתה עומד|את עומדת|אתם עומדים}} למחוק או מכלילים אותו.",
        "rollback": "שחזור עריכות",
        "rollbacklink": "שחזור",
        "rollbacklinkcount": "שחזור {{PLURAL:$1|עריכה אחת|$1 עריכות}}",
        "sessionfailure": "נראה שיש בעיה בחיבורכם לאתר;\nפעולתכם בוטלה כאמצעי זהירות נגד התחזות לתקשורת ממחשבכם.\nאנא חזרו לדף הקודם, העלו אותו מחדש ונסו שוב.",
        "changecontentmodel": "שינוי מודל התוכן של דף",
        "changecontentmodel-legend": "שינוי מודל התוכן",
-       "changecontentmodel-title-label": "×\9b×\95תרת הדף",
+       "changecontentmodel-title-label": "ש×\9d הדף",
        "changecontentmodel-model-label": "מודל התוכן החדש",
        "changecontentmodel-reason-label": "סיבה:",
        "changecontentmodel-submit": "שינוי",
        "changecontentmodel-success-title": "מודל התוכן שוּנה",
-       "changecontentmodel-success-text": "מודל התוכן של [[:$1]] שוּנה.",
+       "changecontentmodel-success-text": "מודל התוכן של הדף [[:$1]] שוּנה.",
        "changecontentmodel-cannot-convert": "לא ניתן להמיר את התוכן של [[:$1]] לסוג $2.",
        "changecontentmodel-nodirectediting": "מודל התוכן $1 אינו תומך בעריכה ישירה",
        "changecontentmodel-emptymodels-title": "לא קיים מודל תוכן מתאים",
        "protect-fallback": "רק משתמשים בעלי הרשאת \"$1\" מורשים",
        "protect-level-autoconfirmed": "רק משתמשים ותיקים מורשים",
        "protect-level-sysop": "רק מפעילי מערכת מורשים",
-       "protect-summary-cascade": "מדורג",
+       "protect-summary-cascade": "מדורגת",
        "protect-expiring": "פוקעת ב{{GRAMMAR:תחילית|$1}} (UTC)",
        "protect-expiring-local": "פוקעת ב{{GRAMMAR:תחילית|$1}}",
        "protect-expiry-indefinite": "בלתי מוגבלת בזמן",
        "restriction-level": "רמת ההגנה:",
        "minimum-size": "גודל מינימלי",
        "maximum-size": "גודל מרבי:",
-       "pagesize": "(×\91×\91תים)",
+       "pagesize": "(×\91×\91×\99×\99×\98ים)",
        "restriction-edit": "עריכה",
        "restriction-move": "העברה",
        "restriction-create": "יצירה",
        "viewdeletedpage": "הצגה של דפים מחוקים",
        "undeletepagetext": "{{PLURAL:$1|הדף שלהלן נמחק, אך הוא עדיין בארכיון וניתן לשחזר אותו|הדפים שלהלן נמחקו, אך הם עדיין בארכיון וניתן לשחזר אותם}}.\nייתכן שהארכיון ינוקה מעת לעת.",
        "undelete-fieldset-title": "שחזור גרסאות",
-       "undeleteextrahelp": "כדי לשחזר את היסטוריית הגרסאות המלאה של הדף, אל {{GENDER:|תסמן|תסמני|תסמנו}} שום תיבת סימון; פשוט {{GENDER:|לחץ|לחצי|לחצו}} על <strong><em>{{int:undeletebtn}}</em></strong>.\nכדי לשחזר גרסאות מסוימות בלבד, {{GENDER:|סמן|סמני|סמנו}} את הגרסאות ש{{GENDER:|ברצונך|ברצונך|ברצונכם}} לשחזר ולאחר מכן {{GENDER:|לחץ|לחצי|לחצו}} על <strong><em>{{int:undeletebtn}}</em></strong>.",
+       "undeleteextrahelp": "כדי לשחזר את היסטוריית הגרסאות המלאה של הדף, אל {{GENDER:|תסמן|תסמני|תסמנו}} שום תיבת סימון; פשוט {{GENDER:|לחץ|לחצי|לחצו}} על <strong>{{int:undeletebtn}}</strong>.\nכדי לשחזר גרסאות מסוימות בלבד, {{GENDER:|סמן|סמני|סמנו}} את הגרסאות ש{{GENDER:|ברצונך|ברצונך|ברצונכם}} לשחזר ולאחר מכן {{GENDER:|לחץ|לחצי|לחצו}} על <strong>{{int:undeletebtn}}</strong>.",
        "undeleterevisions": "{{PLURAL:$1|גרסה אחת נמחקה|$1 גרסאות נמחקו}}",
-       "undeletehistory": "×\90×\9d {{GENDER:|תש×\97×\96ר|תש×\97×\96ר×\99|תש×\97×\96ר×\95}} ×\90ת ×\94×\93×£, ×\9b×\9c ×\94×\92רס×\90×\95ת ×\99ש×\95×\97×\96ר×\95 ×\9c×\94×\99ס×\98×\95ר×\99×\99ת ×\94ש×\99× ×\95×\99×\99×\9d ×©×\9c×\95.\n×\90×\9d ×\94×\93×£ ×\94×\96×\94 × ×\9e×\97ק ×\91×¢×\91ר ×\95×\9c×\90×\97ר ×\9e×\9b×\9f × ×\95צר ×\9e×\97×\93ש, ×\94×\92רס×\90×\95ת ×©{{GENDER:|תש×\97×\96ר|תש×\97×\96ר×\99|תש×\97×\96ר×\95}} ×\99×\9e×\95×\96×\92×\95 ×\9c×\94×\99ס×\98×\95ר×\99×\99ת ×\94ש×\99× ×\95×\99×\99×\9d ×©×\9c ×\94×\93×£ ×\95×\99×\95פ×\99×¢×\95 ×\91ת×\95ר ×\94×\92רס×\90×\95ת ×\94×\99שנ×\95ת ×\91×\99×\95תר ×©×\9c×\95.",
+       "undeletehistory": "אם {{GENDER:|תשחזר|תשחזרי|תשחזרו}} את הדף, הגרסאות ישוחזרו להיסטוריית השינויים שלו.\nאם הדף הזה נמחק בעבר ולאחר מכן נוצר מחדש, הגרסאות ש{{GENDER:|תשחזר|תשחזרי|תשחזרו}} ימוזגו להיסטוריית השינויים של הדף ויופיעו בתור הגרסאות הישנות ביותר שלו.",
        "undeleterevdel": "השחזור לא יכול להתבצע אם הגרסה האחרונה של הדף מחוקה או מוסתרת.\nבמקרה כזה, יש לבטל קודם את ההסתרה של הגרסה האחרונה.",
        "undeletehistorynoadmin": "דף זה נמחק.\nהסיבה למחיקה מוצגת בתקציר שלמטה, וגם פרטים על המשתמשים שערכו את הדף לפני שהוא נמחק.\nהטקסט של הגרסאות הללו זמין למפעילי מערכת בלבד.",
        "undelete-revision": "גרסה שנמחקה מהדף $1 (מ־$5, $4) מאת $3:",
        "sp-contributions-username": "כתובת IP או שם משתמש:",
        "sp-contributions-toponly": "הצגת עריכות שהן הגרסאות האחרונות בלבד",
        "sp-contributions-newonly": "הצגת עריכות שהן יצירות של דפים בלבד",
+       "sp-contributions-hideminor": "הסתרת עריכות משניות",
        "sp-contributions-submit": "חיפוש",
        "whatlinkshere": "דפים המקושרים לכאן",
        "whatlinkshere-title": "דפים המקשרים לדף \"$1\"",
        "autoblockid": "חסימה אוטומטית #$1",
        "block": "חסימת משתמש",
        "unblock": "שחרור חסימה של משתמש",
-       "blockip": "חסימת {{GENDER:$1|משתמש|משתמשת}}",
+       "blockip": "חסימת ה{{GENDER:$1|משתמש|משתמשת}}",
        "blockip-legend": "חסימת משתמש",
        "blockiptext": "השתמשו בטופס שלהלן כדי לחסום את הרשאות הכתיבה מכתובת IP או משתמש מסוימים.\nחסימות כאלה צריכות להתבצע רק כדי למנוע השחתה, ובהתאם ל[[{{MediaWiki:Policy-url}}|נהלים]].\nאנא מלאו את הסיבה הפרטנית לחסימה להלן (לדוגמה, באמצעות ציון דפים מסוימים שהשחית המשתמש).\nבאפשרותכם לחסום טווחי כתובות IP באמצעות תחביר [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR]; הטווח הגדול ביותר שניתן לחסום הוא <span dir=\"ltr\">/$1</span> עבור IPv4 ו־<span dir=\"ltr\">/$2</span> עבור IPv6.",
        "ipaddressorusername": "כתובת IP או שם משתמש:",
        "badipaddress": "משתמש או כתובת IP שגויים.",
        "blockipsuccesssub": "החסימה הושלמה בהצלחה",
        "blockipsuccesstext": "{{GENDER:$1|המשתמש|המשתמשת}} [[Special:Contributions/$1|$1]] {{GENDER:$1|נחסם|נחסמה}}.\n\nראו את [[Special:BlockList|רשימת החסומים]] כדי לצפות בחסימות.",
-       "ipb-blockingself": "אתם עומדים לחסום את עצמכם! האם אתם בטוחים שברצונכם לעשות זאת?",
-       "ipb-confirmhideuser": "אתם עומדים לחסום משתמש עם האפשרות \"הסתרת משתמש\". זה יעלים את שם המשתמש בכל הרשימות ופעולות היומן. האם אתם בטוחים שברצונכם לעשות זאת?",
-       "ipb-confirmaction": "אם אתם באמת בטוחים שברצונכם לעשות זאת, אנא סמנו את השדה \"{{int:ipb-confirm}}\" שבתחתית.",
+       "ipb-blockingself": "{{GENDER:|אתה עומד|את עומדת|אתם עומדים}} לחסום את {{GENDER:|עצמך|עצמך|עצמכם}}! האם {{GENDER:|אתה בטוח שאתה רוצה|את בטוחה שאת רוצה|אתם בטוחים שאתם רוצים}} לעשות את זה?",
+       "ipb-confirmhideuser": "{{GENDER:|אתה עומד|את עומדת|אתם עומדים}} לחסום משתמש עם האפשרות \"הסתרת משתמש\". זה יעלים את שם המשתמש בכל הרשימות ופעולות היומן. האם {{GENDER:|אתה בטוח שברצונך|את בטוחה שברצונך|אתם בטוחים שברצונכם}} לעשות את זה?",
+       "ipb-confirmaction": "אם {{GENDER:|אתה בטוח שברצונך|את בטוחה שברצונך|אתם בטוחים שברצונכם}} לעשות זאת, אנא {{GENDER:|סמן|סמני|סמנו}} את השדה \"{{int:ipb-confirm}}\" שמופיע למטה.",
        "ipb-edit-dropdown": "עריכת סיבות החסימה",
        "ipb-unblock-addr": "שחרור חסימה של $1",
        "ipb-unblock": "שחרור חסימה של משתמש או כתובת IP",
        "ipblocklist-localblock": "חסימה מקומית",
        "ipblocklist-otherblocks": "{{PLURAL:$1|חסימה אחרת|חסימות אחרות}}",
        "infiniteblock": "ללא הגבלת זמן",
-       "expiringblock": "החסימה פוקעת ב{{GRAMMAR:תחילית|$1}} בשעה $2",
+       "expiringblock": "החסימה פוקעת ב־$1 בשעה $2",
        "anononlyblock": "משתמשים אנונימיים בלבד",
        "noautoblockblock": "חסימה אוטומטית מבוטלת",
        "createaccountblock": "יצירת חשבונות נחסמה",
        "emaillink": "שליחת דוא\"ל",
        "autoblocker": "נחסמתם באופן אוטומטי משום שאתם חולקים את כתובת ה־IP שלכם עם [[User:$1|$1]].\nהסיבה שניתנה לחסימת $1 היא \"$2\"",
        "blocklogpage": "יומן חסימות",
-       "blocklog-showlog": "משתמש זה נחסם בעבר.\nיומן החסימות מוצג להלן:",
-       "blocklog-showsuppresslog": "משתמש זה נחסם והוסתר בעבר.\nיומן ההעלמות מוצג להלן:",
+       "blocklog-showlog": "{{GENDER:$1|משתמש זה נחסם|משתמשת זו נחסמה}} בעבר.\nיומן החסימות מוצג להלן:",
+       "blocklog-showsuppresslog": "{{GENDER:$1|משתמש זה נחסם והוסתר|משתמשת זו נחסמה והוסתרה}} בעבר.\nיומן ההעלמות מוצג להלן:",
        "blocklogentry": "חסם את [[$1]] למשך $2 $3",
        "reblock-logentry": "שינה את הגדרות החסימה של [[$1]] עם זמן פקיעה של $2 $3",
        "blocklogtext": "זהו יומן פעולות החסימה והשחרור של משתמשים.\nכתובות IP שנחסמו אוטומטית אינן מופיעות.\nראו גם את [[Special:BlockList|רשימת החסומים]] לרשימה של החרמות וחסימות פעילות כעת.",
        "lockedbyandtime": "(על־ידי $1 ב־$3, $2)",
        "move-page": "העברת הדף \"$1\"",
        "move-page-legend": "העברת דף",
-       "movepagetext": "שימוש בטופס שלהלן ישנה את שמו של דף, ויעביר את כל ההיסטוריה שלו לשם חדש.\nהשם הישן יהפוך לדף הפניה אל הדף עם השם החדש.\nבאפשרותכם לעדכן אוטומטית דפי הפניה לכותרת המקורית.\nאם תבחרו לא לעשות זאת, אנא ודאו שאין [[Special:DoubleRedirects|הפניות כפולות]] או [[Special:BrokenRedirects|שבורות]].\nאתם אחראים לוודא שכל הקישורים ימשיכו להצביע למקום שאליו הם אמורים להצביע.\n\nשימו לב: הדף <strong>לא</strong> יועבר אם כבר יש דף תחת השם החדש, אלא אם הדף השני הוא הפניה ואין לו היסטוריית עריכות קודמות.\nפירוש הדבר שאפשר לשנות חזרה את שמו של דף לשם המקורי אם נעשתה טעות, ושלא ניתן לדרוס דף קיים.\n\n<strong>לתשומת לבכם:</strong>\nשינוי זה עשוי להיות שינוי דרסטי ובלתי צפוי לדף פופולרי;\nאנא ודאו שאתם מבינים את השלכות המעשה לפני שאתם ממשיכים.",
-       "movepagetext-noredirectfixer": "שימוש בטופס שלהלן ישנה את שמו של דף, ויעביר את כל ההיסטוריה שלו לשם חדש.\nהשם הישן יהפוך לדף הפניה אל הדף עם השם החדש.\nאנא ודאו שאין [[Special:DoubleRedirects|הפניות כפולות]] או [[Special:BrokenRedirects|שבורות]].\nאתם אחראים לוודא שכל הקישורים ימשיכו להצביע למקום שאליו הם אמורים להצביע.\n\nשימו לב: הדף <strong>לא</strong> יועבר אם כבר יש דף תחת השם החדש, אלא אם הדף הזה הוא הפניה ואין לו היסטוריית עריכות קודמות.\nפירוש הדבר שאפשר לשנות חזרה את שמו של דף לשם המקורי אם נעשתה טעות, ושלא ניתן לדרוס דף קיים.\n\n<strong>לתשומת לבכם:</strong>\nשינוי זה עשוי להיות שינוי דרסטי ובלתי צפוי לדף פופולרי;\nאנא ודאו שאתם מבינים את השלכות המעשה לפני שאתם ממשיכים.",
-       "movepagetalktext": "×\90×\9d ×\94ת×\99×\91×\94 ×\94×\96×\90ת ×\9eס×\95×\9eנת, ×\93×£ ×\94ש×\99×\97×\94 ×©×\9c ×\93×£ ×\96×\94 ×\99×\95×¢×\91ר ×\90×\95×\98×\95×\9e×\98×\99ת ×\9c×\9b×\95תרת ×\94×\97×\93ש×\94, ×\90×\9c×\90 ×\90×\9d ×§×\99×\99×\9d ×©×\9d ×\93×£ ×©×\99×\97×\94 ×©×\90×\99× ×\95 ×¨×\99ק.\n\n×\91×\9eקר×\94 ×\94×\96×\94, ×ª×¦×\98ר×\9b×\95 ×\9c×\94×¢×\91×\99ר ×\90×\95 ×\9cש×\9c×\91 ×\90ת ×\94×\93פ×\99×\9d ×\91×\90×\95פ×\9f ×\99×\93× ×\99, ×\90×\9d ×ª×¨×¦×\95.",
+       "movepagetext": "{{GENDER:|השתמש|השתמשי|השתמשו}} בטופס שלהלן כדי לשנות את השם של הדף הזה, ולהעביר את כל היסטוריית העריכות שלו לשם החדש.\nהשם הישן יהפוך לדף הפניה אל השם החדש.\n{{GENDER:|באפשרותך|באפשרותך|באפשרותכם}} לעדכן באופן אוטומטי דפי הפניה שכרגע מפנים לשם הנוכחי של הדף.\nאם {{GENDER:|תבחר|תבחרי|תבחרו}} לא לעשות זאת, אנא {{GENDER:|ודא|ודאי|ודאו}} לאחר ההעברה שאין [[Special:DoubleRedirects|הפניות כפולות]] או [[Special:BrokenRedirects|הפניות שבורות]].\nב{{GENDER:|אחריותך|אחריותך|אחריותכם}} לוודא שכל הקישורים ימשיכו לקשר למקומות שאליהם הם אמורים לקשר.\n\n{{GENDER:|שים|שימי|שימו}} לב שהדף <strong>לא</strong> יועבר אם כבר יש דף תחת השם החדש ש{{GENDER:|תבחר|תבחרי|תבחרו}}, אלא אם כן הדף עם השם החדש הוא הפניה ואין לו עריכות קודמות.\nזה אומר ש{{GENDER:|תוכל|תוכלי|תוכלו}} להחזיר את הדף לשם המקורי במקרה שתיעשה טעות, אבל לא ניתן \"לדרוס\" דף קיים.\n\n<strong>לתשומת {{GENDER:|לבך|לבך|לבכם}}:</strong>\nהעברה זו עלולה להיות שינוי דרסטי ומהותי לדף פופולרי;\nאנא {{GENDER:|ודא שאתה מבין|ודאי שאת מבינה|ודאו שאתם מבינים}} את התוצאות של הפעולה הזאת לפני ביצוע ההעברה.",
+       "movepagetext-noredirectfixer": "{{GENDER:|השתמש|השתמשי|השתמשו}} בטופס שלהלן כדי לשנות את השם של הדף הזה, ולהעביר את כל היסטוריית העריכות שלו לשם החדש.\nהשם הישן יהפוך לדף הפניה אל השם החדש.\nאנא {{GENDER:|ודא|ודאי|ודאו}} לאחר ההעברה שאין [[Special:DoubleRedirects|הפניות כפולות]] או [[Special:BrokenRedirects|הפניות שבורות]].\nב{{GENDER:|אחריותך|אחריותך|אחריותכם}} לוודא שכל הקישורים ימשיכו לקשר למקומות שאליהם הם אמורים לקשר.\n\n{{GENDER:|שים|שימי|שימו}} לב שהדף <strong>לא</strong> יועבר אם כבר יש דף תחת השם החדש ש{{GENDER:|תבחר|תבחרי|תבחרו}}, אלא אם כן הדף עם השם החדש הוא הפניה ואין לו עריכות קודמות.\nזה אומר ש{{GENDER:|תוכל|תוכלי|תוכלו}} להחזיר את הדף לשם המקורי במקרה שתיעשה טעות, אבל לא ניתן \"לדרוס\" דף קיים.\n\n<strong>לתשומת {{GENDER:|לבך|לבך|לבכם}}:</strong>\nהעברה זו עלולה להיות שינוי דרסטי ומהותי לדף פופולרי;\nאנא {{GENDER:|ודא שאתה מבין|ודאי שאת מבינה|ודאו שאתם מבינים}} את התוצאות של הפעולה הזאת לפני ביצוע ההעברה.",
+       "movepagetalktext": "×\90×\9d ×\94×\90פשר×\95ת ×\94×\96×\90ת ×\9eס×\95×\9eנת, ×\93×£ ×\94ש×\99×\97×\94 ×©×\9c ×\94×\93×£ ×\94×\96×\94 ×\99×\95×¢×\91ר ×\90×\95×\98×\95×\9e×\98×\99ת ×\9cש×\9d ×\94×\97×\93ש, ×\90×\9c×\90 ×\90×\9d ×§×\99×\99×\9d ×\93×£ ×©×\99×\97×\94 ×©×\90×\99× ×\95 ×¨×\99ק ×ª×\97ת ×\94ש×\9d ×\94×\97×\93ש. ×\91×\9eקר×\94 ×\9b×\96×\94, ×\99ש ×\9c×\94×¢×\91×\99ר ×\90×\95 ×\9c×\9e×\96×\92 ×\90ת ×\94×\93פ×\99×\9d ×\91×\90×\95פ×\9f ×\99×\93× ×\99, ×\91×\9e×\99×\93ת ×\94צ×\95ר×\9a.",
        "moveuserpage-warning": "'''אזהרה:''' אתם עומדים להעביר דף משתמש. שימו לב שרק הדף יועבר וששם המשתמש '''לא''' ישתנה.",
        "movecategorypage-warning": "<strong>אזהרה:</strong> אתם עומדים להעביר דף קטגוריה. שימו לב שרק הדף יועבר ושכל הדפים בקטגוריה הישנה <strong>לא</strong> יסווגו לקטגוריה החדשה.",
        "movenologintext": "עליכם להיות רשומים ו[[Special:UserLogin|להיכנס לחשבון]] כדי להעביר דפים.",
        "move-watch": "מעקב אחרי דף המקור ואחרי דף היעד",
        "movepagebtn": "העברת הדף",
        "pagemovedsub": "ההעברה הושלמה בהצלחה",
-       "movepage-moved": "הדף \"$1\" הועבר לשם \"$2\".",
+       "movepage-moved": "<strong>הדף \"$1\" הועבר לשם \"$2\"</strong>",
        "movepage-moved-redirect": "נוצרה הפניה.",
        "movepage-moved-noredirect": "יצירת ההפניה בוטלה.",
        "articleexists": "קיים כבר דף באותו שם, או שהשם שבחרת אינו תקין.\nנא לבחור שם אחר.",
        "movepage-page-unmoved": "לא ניתן להעביר את הדף $1 לשם $2.",
        "movepage-max-pages": "{{PLURAL:$1|דף אחד כבר הועבר|$1 דפים כבר הועברו}}. זה המספר המרבי ולא ניתן להעביר דפים נוספים אוטומטית.",
        "movelogpage": "יומן העברות",
-       "movelogpagetext": "×\9c×\94×\9c×\9f ×¨×©×\99×\9e×\94 ×©×\9c ×\9b×\9c ×\94×\93פ×\99×\9d ×©×\94×\95×¢×\91ר×\95.",
+       "movelogpagetext": "×\9c×\94×\9c×\9f ×¨×©×\99×\9e×\94 ×©×\9c ×\9b×\9c ×\94×\93פ×\99×\9d ×©×©×\9e×\9d ×©×\95Ö¼× ×\94.",
        "movesubpage": "{{PLURAL:$1|דף משנה|דפי משנה}}",
        "movesubpagetext": "לדף זה יש {{PLURAL:$1|דף משנה אחד המוצג להלן|$1 דפי משנה המוצגים להלן}}.",
        "movenosubpage": "לדף זה אין דפי משנה.",
        "allmessagesname": "שם",
        "allmessagesdefault": "טקסט ברירת המחדל של ההודעה",
        "allmessagescurrent": "הטקסט הנוכחי של ההודעה",
-       "allmessagestext": "זוהי רשימה של כל הודעות המערכת במרחב השם {{ns:mediawiki}}.\nאנא בקרו בדף [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] ובאתר [//translatewiki.net translatewiki.net] אם ברצונכם לתרום לתרגום הכללי של מדיה־ויקי.",
+       "allmessagestext": "זוהי רשימה של כל הודעות המערכת במרחב השם {{ns:mediawiki}}.\nאנא בקרו בדף [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] ובאתר [https://translatewiki.net translatewiki.net] אם ברצונכם לתרום לתרגום הכללי של מדיה־ויקי.",
        "allmessagesnotsupportedDB": "לא ניתן להשתמש בדף זה כיוון ש־wgUseDatabseMessages מבוטל.",
        "allmessages-filter-legend": "מסנן",
        "allmessages-filter": "סינון לפי מצב ההודעה:",
        "tooltip-pt-userpage": "דף {{GENDER:|המשתמש|המשתמשת}} שלך",
        "tooltip-pt-anonuserpage": "דף המשתמש של משתמש אנונימי זה",
        "tooltip-pt-mytalk": "דף השיחה שלך",
-       "tooltip-pt-anontalk": "ש×\99×\97×\94 ×¢×\9c ×ª×¨×\95×\9e×\95ת ×\94×\9eשת×\9eש ×\94×\90× ×\95× ×\99×\9e×\99",
+       "tooltip-pt-anontalk": "×\93×\99×\95×\9f ×¢×\9c ×\94ער×\99×\9b×\95ת ×©× ×¢×©×\95 ×\9e×\9bת×\95×\91ת ×\94Ö¾IP ×\94×\96×\90ת",
        "tooltip-pt-preferences": "ההעדפות שלך",
        "tooltip-pt-watchlist": "רשימת הדפים ש{{GENDER:|אתה עוקב|את עוקבת}} אחרי השינויים בהם",
-       "tooltip-pt-mycontris": "רש×\99×\9eת ×\94תר×\95×\9e×\95ת ×©×\9c×\9a",
+       "tooltip-pt-mycontris": "רש×\99×\9eת ×\94ער×\99×\9b×\95ת ×©×\91×\99צעת",
        "tooltip-pt-anoncontribs": "רשימת העריכות שנעשו מכתובת ה־IP הזאת",
-       "tooltip-pt-login": "מומלץ להיכנס לחשבון; עם זאת, אין חובה לעשות זאת",
+       "tooltip-pt-login": "מומלץ להיכנס לחשבון, אך אין חובה לעשות זאת",
        "tooltip-pt-logout": "יציאה מהחשבון",
-       "tooltip-pt-createaccount": "מומלץ ליצור חשבון ולהיכנס אליו; עם זאת, אין חובה לעשות זאת",
+       "tooltip-pt-createaccount": "מומלץ ליצור חשבון ולהיכנס אליו, אך אין חובה לעשות זאת",
        "tooltip-ca-talk": "שיחה על דף זה",
        "tooltip-ca-edit": "עריכת דף זה",
        "tooltip-ca-addsection": "הוספת פסקה חדשה",
        "tooltip-ca-move": "שינוי השם של דף זה",
        "tooltip-ca-watch": "הוספת דף זה לרשימת המעקב שלך",
        "tooltip-ca-unwatch": "הסרת דף זה מרשימת המעקב שלך",
-       "tooltip-search": "חיפוש ב{{grammar:תחילית|{{SITENAME}}}}",
+       "tooltip-search": "חיפוש ב{{GRAMMAR:תחילית|{{SITENAME}}}}",
        "tooltip-search-go": "מעבר לדף בשם הזה בדיוק, אם הוא קיים",
        "tooltip-search-fulltext": "חיפוש טקסט זה בדפים",
        "tooltip-p-logo": "ביקור בעמוד הראשי",
        "tooltip-n-mainpage": "ביקור בעמוד הראשי",
        "tooltip-n-mainpage-description": "ביקור בעמוד הראשי",
-       "tooltip-n-portal": "×\90×\95×\93×\95ת ×\94×\9e×\99×\96×\9d, ×\9b×\99צ×\93 ×ª×\95×\9b×\9c×\95 ×\9c×¢×\96×\95ר, ×\94×\99×\9b×\9f למצוא דברים",
+       "tooltip-n-portal": "×\90×\95×\93×\95ת ×\94×\9e×\99×\96×\9d, ×\90×\99×\9a ×\90פשר ×\9c×¢×\96×\95ר, ×\90×\99פ×\94 למצוא דברים",
        "tooltip-n-currentevents": "מציאת מידע רקע על האירועים האחרונים",
        "tooltip-n-recentchanges": "רשימת השינויים האחרונים באתר",
        "tooltip-n-randompage": "טעינת דף אקראי",
        "tooltip-n-help": "עזרה בשימוש באתר",
-       "tooltip-t-whatlinkshere": "רש×\99×\9eת ×\9b×\9c ×\94×\93פ×\99×\9d ×\94×\9eק×\95שר×\99×\9d ×\9c×\9b×\90×\9f",
+       "tooltip-t-whatlinkshere": "רש×\99×\9e×\94 ×©×\9c ×\9b×\9c ×\94×\93פ×\99×\9d ×©×\9e×\9b×\99×\9c×\99×\9d ×§×\99ש×\95ר×\99×\9d ×\9c×\93×£ ×\94×\96×\94",
        "tooltip-t-recentchangeslinked": "השינויים האחרונים שבוצעו בדפים המקושרים מדף זה",
        "tooltip-feed-rss": "הזנת RSS עבור דף זה",
        "tooltip-feed-atom": "הזנת Atom עבור דף זה",
        "tooltip-t-emailuser": "שליחת דואר אלקטרוני {{GENDER:$1|למשתמש זה|למשתמשת זו}}",
        "tooltip-t-info": "מידע נוסף על דף זה",
        "tooltip-t-upload": "העלאת קבצים",
-       "tooltip-t-specialpages": "רשימה של כל הדפים המיוחדים",
+       "tooltip-t-specialpages": "רשימה של כל הדפים המיוחדים באתר",
        "tooltip-t-print": "גרסה להדפסה של דף זה",
        "tooltip-t-permalink": "קישור קבוע לגרסה זו של הדף",
        "tooltip-ca-nstab-main": "צפייה בדף התוכן",
        "tooltip-publish": "פרסום השינויים שלך",
        "tooltip-preview": "תצוגה מקדימה של השינויים שלך. נא להשתמש באפשרות זו לפני השמירה.",
        "tooltip-diff": "הצגת השינויים שביצעת בטקסט",
-       "tooltip-compareselectedversions": "צפ×\99×\99×\94 ×\91×\94ש×\95×\95×\90ת ×©×ª×\99 ×\92רס×\90×\95ת ×©×\9c ×\93×£ ×\96×\94",
+       "tooltip-compareselectedversions": "×\94צ×\92ת ×\94×\94×\91×\93×\9c×\99×\9d ×\91×\99×\9f ×©×ª×\99 ×\94×\92רס×\90×\95ת ×©× ×\91×\97ר×\95",
        "tooltip-watch": "הוספת דף זה לרשימת המעקב שלך",
        "tooltip-watchlistedit-normal-submit": "הסרת הדפים",
        "tooltip-watchlistedit-raw-submit": "עדכון רשימת המעקב",
        "tooltip-rollback": "שחזור בלחיצה אחת של העריכה או העריכות של התורם האחרון לדף זה",
        "tooltip-undo": "פתיחת חלון העריכה במצב תצוגה מקדימה כדי לשחזר את העריכה, תוך אפשרות להוספת סיבה בתקציר העריכה",
        "tooltip-preferences-save": "שמירת ההעדפות",
-       "tooltip-summary": "×\9c×\94×\9bנסת ×ª×§×¦×\99ר ×§×¦×¨",
+       "tooltip-summary": "ת×\99×\90×\95ר ×§×¦×¨ ×©×\9c ×\94ש×\99× ×\95×\99×\99×\9d ×©×\91×\99צעת",
        "common.css": "/* הסגנונות הנכתבים כאן ישפיעו על כל העיצובים */",
        "print.css": "/* הסגנונות הנכתבים כאן ישפיעו על הפלט בהדפסה בלבד */",
        "noscript.css": "/* הסגנונות הנכתבים כאן ישפיעו על משתמשים עם ג'אווה-סקריפט מבוטל */",
        "pageinfo-header-properties": "מאפייני הדף",
        "pageinfo-display-title": "כותרת התצוגה",
        "pageinfo-default-sort": "מפתח המיון הרגיל",
-       "pageinfo-length": "×\90×\95ר×\9a ×\94×\93×£ (×\91×\91תים)",
+       "pageinfo-length": "×\90×\95ר×\9a ×\94×\93×£ (×\91×\91×\99×\99×\98ים)",
        "pageinfo-article-id": "מזהה הדף",
        "pageinfo-language": "שפת התוכן של הדף",
-       "pageinfo-content-model": "ס×\95×\92 התוכן של הדף",
+       "pageinfo-content-model": "×\9e×\95×\93×\9c התוכן של הדף",
        "pageinfo-robot-policy": "איסוף על־ידי רובוטים של מנועי חיפוש",
        "pageinfo-robot-index": "מותר",
        "pageinfo-robot-noindex": "אסור",
        "table_pager_limit_label": "מספר פריטים בדף:",
        "table_pager_limit_submit": "הצגה",
        "table_pager_empty": "ללא תוצאות",
-       "autosumm-blank": "×\94סרת ×\9b×\9c ×\94ת×\95×\9b×\9f ×\9e×\93×£ ×\96×\94",
+       "autosumm-blank": "×\94סרת ×\9b×\9c ×\94ת×\95×\9b×\9f ×\9e×\94×\93×£",
        "autosumm-replace": "החלפת הדף בתוכן \"$1\"",
        "autoredircomment": "הפניה לדף [[$1]]",
        "autosumm-new": "יצירת דף עם התוכן \"$1\"",
        "autosumm-newblank": "יצירת דף ריק",
-       "size-bytes": "{{PLURAL:$1|בייט אחד|$1 בייט}}",
-       "size-kilobytes": "$1 קילו־בייט",
-       "size-megabytes": "$1 מגה־בייט",
-       "size-gigabytes": "$1 ג'יגה־בייט",
-       "size-terabytes": "$1 טרה־בייט",
-       "size-petabytes": "$1 פטה־בייט",
-       "size-exabytes": "$1 אקסה־בייט",
-       "size-zetabytes": "$1 זטה־בייט",
-       "size-yottabytes": "$1 יוטה־בייט",
+       "size-bytes": "{{PLURAL:$1|בייט אחד|$1 בייטים}}",
+       "size-kilobytes": "{{PLURAL:$1|קילו־בייט אחד|$1 קילו־בייטים}}",
+       "size-megabytes": "{{PLURAL:$1|מגה־בייט אחד|$1 מגה־בייטים}}",
+       "size-gigabytes": "{{PLURAL:$1|ג'יגה־בייט אחד|$1 ג'יגה־בייטים}}",
+       "size-terabytes": "{{PLURAL:$1|טרה־בייט אחד|$1 טרה־בייטים}}",
+       "size-petabytes": "{{PLURAL:$1|פטה־בייט אחד|$1 פטה־בייטים}}",
+       "size-exabytes": "{{PLURAL:$1|אקסה־בייט אחד|$1 אקסה־בייטים}}",
+       "size-zetabytes": "{{PLURAL:$1|זטה־בייט אחד|$1 זטה־בייטים}}",
+       "size-yottabytes": "{{PLURAL:$1|יוטה־בייט אחד|$1 יוטה־בייטים}}",
        "size-pixel": "{{PLURAL:$1|פיקסל אחד|$1 פיקסלים}}",
+       "size-kilopixel": "{{PLURAL:$1|קילו־פיקסל אחד|$1 קילו־פיקסלים}}",
+       "size-megapixel": "{{PLURAL:$1|מגה־פיקסל אחד|$1 מגה־פיקסלים}}",
+       "size-gigapixel": "{{PLURAL:$1|ג'יגה־פיקסל אחד|$1 ג'יגה־פיקסלים}}",
+       "size-terapixel": "{{PLURAL:$1|טרה־פיקסל אחד|$1 טרה־פיקסלים}}",
+       "size-petapixel": "{{PLURAL:$1|פטה־פיקסל אחד|$1 פטה־פיקסלים}}",
+       "size-exapixel": "{{PLURAL:$1|אקסה־פיקסל אחד|$1 אקסה־פיקסלים}}",
+       "size-zetapixel": "{{PLURAL:$1|זטה־פיקסל אחד|$1 זטה־פיקסלים}}",
+       "size-yottapixel": "{{PLURAL:$1|יוטה־פיקסל אחד|$1 יוטה־פיקסלים}}",
        "lag-warn-normal": "שינויים שבוצעו לפני פחות מ{{PLURAL:$1|שנייה אחת|־$1 שניות}} אינם מוצגים ברשימה זו.",
        "lag-warn-high": "בגלל עיכוב בעדכון בסיס הנתונים, שינויים שבוצעו לפני פחות מ{{PLURAL:$1|שנייה אחת|־$1 שניות}} אינם מוצגים ברשימה זו.",
        "watchlistedit-normal-title": "עריכת רשימת המעקב",
        "tags-edit-success": "השינויים הוחלו.",
        "tags-edit-failure": "החלת השינויים נכשלה:\n$1",
        "tags-edit-nooldid-title": "גרסת היעד אינה תקינה",
-       "tags-edit-nooldid-text": "×\90×\95 שלא ציינת שום גרסה שהפעולה תבוצע עליה, או שהגרסה שציינת אינה קיימת.",
+       "tags-edit-nooldid-text": "×\99×\99ת×\9b×\9f שלא ציינת שום גרסה שהפעולה תבוצע עליה, או שהגרסה שציינת אינה קיימת.",
        "tags-edit-none-selected": "יש לבחור לפחות תגית אחת להוספה או להסרה.",
        "comparepages": "השוואת דפים",
        "compare-page1": "דף 1",
        "logentry-block-reblock": "$1 {{GENDER:$2|שינה|שינתה}} את הגדרות החסימה של {{GENDER:$4|$3}} עם זמן פקיעה של $5 $6",
        "logentry-suppress-block": "$1 {{GENDER:$2|חסם|חסמה}} את {{GENDER:$4|$3}} עם זמן פקיעה של $5 $6",
        "logentry-suppress-reblock": "$1 {{GENDER:$2|שינה|שינתה}} את הגדרות החסימה של {{GENDER:$4|$3}} עם זמן פקיעה של $5 $6",
-       "logentry-import-upload": "$1 {{GENDER:$2|ייבא|ייבאה}} את $3 באמצעות העלאת קובץ",
+       "logentry-import-upload": "$1 {{GENDER:$2|ייבא|ייבאה}} את הדף $3 באמצעות העלאת קובץ",
        "logentry-import-upload-details": "$1 {{GENDER:$2|ייבא|ייבאה}} את $3 באמצעות העלאת קובץ ({{PLURAL:$4|גרסה אחת|$4 גרסאות}})",
-       "logentry-import-interwiki": "$1 {{GENDER:$2|ייבא|ייבאה}} את $3 מאתר ויקי אחר",
-       "logentry-import-interwiki-details": "$1 {{GENDER:$2|ייבא|ייבאה}} את $3 מ־$5&rlm; ({{PLURAL:$4|גרסה אחת|$4 גרסאות}})",
-       "logentry-merge-merge": "$1 {{GENDER:$2|מיזג|מיזגה}} את $3 לתוך $4 (גרסאות עד $5)",
+       "logentry-import-interwiki": "$1 {{GENDER:$2|ייבא|ייבאה}} את הדף $3 מאתר ויקי אחר",
+       "logentry-import-interwiki-details": "$1 {{GENDER:$2|ייבא|ייבאה}} את הדף $3 מ־$5&rlm; ({{PLURAL:$4|גרסה אחת|$4 גרסאות}})",
+       "logentry-merge-merge": "$1 {{GENDER:$2|מיזג|מיזגה}} את הדף $3 לתוך הדף $4 (גרסאות עד $5)",
        "logentry-move-move": "$1 {{GENDER:$2|העביר|העבירה}} את הדף $3 לשם $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|העביר|העבירה}} את הדף $3 לשם $4 בלי להשאיר הפניה",
        "logentry-move-move_redir": "$1 {{GENDER:$2|העביר|העבירה}} את הדף $3 לשם $4 תוך דריסת הפניה",
        "limitreport-ppvisitednodes": "מספר הצמתים שקדם־המפענח ביקר בהם",
        "limitreport-ppgeneratednodes": "מספר הצמתים שקדם־המפענח יצר",
        "limitreport-postexpandincludesize": "גודל הטקסט המוכלל לאחר הפריסה",
-       "limitreport-postexpandincludesize-value": "{{PLURAL:$2|$1 ×\9eת×\95×\9a ×\91×\99ת ×\90×\97×\93|$1/$2 ×\91תים}}",
+       "limitreport-postexpandincludesize-value": "{{PLURAL:$2|$1 ×\9eת×\95×\9a ×\91×\99×\99×\98 ×\90×\97×\93|$1/$2 ×\91×\99×\99×\98ים}}",
        "limitreport-templateargumentsize": "גודל הפרמטרים של התבניות",
-       "limitreport-templateargumentsize-value": "{{PLURAL:$2|$1 ×\9eת×\95×\9a ×\91×\99ת ×\90×\97×\93|$1/$2 ×\91תים}}",
+       "limitreport-templateargumentsize-value": "{{PLURAL:$2|$1 ×\9eת×\95×\9a ×\91×\99×\99×\98 ×\90×\97×\93|$1/$2 ×\91×\99×\99×\98ים}}",
        "limitreport-expansiondepth": "עומק הפריסה הגבוה ביותר",
        "limitreport-expensivefunctioncount": "מספר פונקציות המפענח שגוזלות משאבים",
        "expandtemplates": "פריסת תבניות",
        "pagelang-use-default": "להשתמש בשפה הרגילה",
        "pagelang-select-lang": "בחירת שפה",
        "pagelang-submit": "שליחה",
-       "right-pagelang": "ש×\99× ×\95×\99 ×©×¤×ª ×\94×\93×£",
+       "right-pagelang": "ש×\99× ×\95×\99 ×©×¤×\95ת ×©×\9c ×\93פ×\99×\9d",
        "action-pagelang": "לשנות את שפת הדף",
        "log-name-pagelang": "יומן שינוי שפה",
        "log-description-pagelang": "זהו יומן של שינויים בשפות של הדפים.",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 (<strong>מבוטל</strong>)",
        "mediastatistics": "סטטיסטיקות קבצים",
        "mediastatistics-summary": "סטטיסטיקה על סוגי קבצים שהועלו. הסטטיסטיקה כוללת רק את הגרסה החדשה ביותר של הקובץ: גרסאות ישנות או מחוקות של קבצים אינן כלולות.",
-       "mediastatistics-nbytes": "{{PLURAL:$1|×\91×\99ת ×\90×\97×\93|$1 ×\91תים}} ($2; $3%)",
-       "mediastatistics-bytespertype": "×\94×\92×\95×\93×\9c ×\94×\9b×\95×\9c×\9c ×©×\9c ×\94ק×\91צ×\99×\9d ×\91פרק ×\96×\94: {{PLURAL:$1|×\91×\99ת ×\90×\97×\93|$1 ×\91תים}} ($2; $3%).",
-       "mediastatistics-allbytes": "×\94×\92×\95×\93×\9c ×\94×\9b×\95×\9c×\9c ×©×\9c ×\9b×\9c ×\94ק×\91צ×\99×\9d: {{PLURAL:$1|×\91×\99ת ×\90×\97×\93|$1 ×\91תים}} ($2).",
+       "mediastatistics-nbytes": "{{PLURAL:$1|×\91×\99×\99×\98 ×\90×\97×\93|$1 ×\91×\99×\99×\98ים}} ($2; $3%)",
+       "mediastatistics-bytespertype": "×\94×\92×\95×\93×\9c ×\94×\9b×\95×\9c×\9c ×©×\9c ×\94ק×\91צ×\99×\9d ×\91פרק ×\96×\94: {{PLURAL:$1|×\91×\99×\99×\98 ×\90×\97×\93|$1 ×\91×\99×\99×\98ים}} ($2; $3%).",
+       "mediastatistics-allbytes": "×\94×\92×\95×\93×\9c ×\94×\9b×\95×\9c×\9c ×©×\9c ×\9b×\9c ×\94ק×\91צ×\99×\9d: {{PLURAL:$1|×\91×\99×\99×\98 ×\90×\97×\93|$1 ×\91×\99×\99×\98ים}} ($2).",
        "mediastatistics-table-mimetype": "סוג MIME",
        "mediastatistics-table-extensions": "סיומות אפשריות",
        "mediastatistics-table-count": "מספר הקבצים",
        "mw-widgets-dateinput-no-date": "לא נבחר תאריך",
        "mw-widgets-titleinput-description-new-page": "הדף עדיין לא קיים",
        "mw-widgets-titleinput-description-redirect": "הפניה ל{{GRAMMAR:תחילית|$1}}",
-       "api-error-blacklisted": "נא לבחור כותרת אחרת, המתארת טוב יותר את התוכן.",
        "sessionmanager-tie": "לא ניתן לצרף מספר סוגי אימות זהות: $1.",
        "sessionprovider-generic": "התחברויות של $1",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "התחברויות המבוססות על עוגיות",
        "sessionprovider-nocookies": "ייתכן שאפשרות השימוש בעוגיות כבויה. יש לוודא שאפשרות השימוש בעוגיות מופעלת ולהתחיל מחדש.",
        "randomrootpage": "דף שורש אקראי",
        "log-action-filter-block": "סוג החסימות:",
-       "log-action-filter-contentmodel": "סוג השינויים במודל תוכן:",
+       "log-action-filter-contentmodel": "ס×\95×\92 ×\94ש×\99× ×\95×\99×\99×\9d ×\91×\9e×\95×\93×\9c ×\94ת×\95×\9b×\9f:",
        "log-action-filter-delete": "סוג המחיקות:",
        "log-action-filter-import": "סוג פעולות הייבוא:",
-       "log-action-filter-managetags": "ס×\95×\92 ×¤×¢×\95×\9c×\95ת × ×\99×\94×\95×\9c ×\94תגיות:",
+       "log-action-filter-managetags": "ס×\95×\92 ×\94ש×\99× ×\95×\99×\99×\9d ×\91תגיות:",
        "log-action-filter-move": "סוג ההעברות:",
-       "log-action-filter-newusers": "ס×\95×\92 ×\99צ×\99ר×\95ת ×\94×\97ש×\91×\95×\9f:",
-       "log-action-filter-patrol": "ס×\95×\92 ×\94ש×\99× ×\95×\99×\99×\9d ×\94בדוקים:",
+       "log-action-filter-newusers": "ס×\95×\92 ×¤×¢×\95×\9c×\95ת ×\94×\94רש×\9e×\94:",
+       "log-action-filter-patrol": "ס×\95×\92 ×\94ס×\99×\9e×\95× ×\99×\9d ×©×\9c ×\94ש×\99× ×\95×\99×\99×\9d ×\9bבדוקים:",
        "log-action-filter-protect": "סוג ההגנות:",
-       "log-action-filter-rights": "ס×\95×\92 ×©×\99× ×\95×\99×\99 ×\94×\94רש×\90×\94",
-       "log-action-filter-suppress": "סוג ההעלמות",
+       "log-action-filter-rights": "ס×\95×\92 ×©×\99× ×\95×\99×\99 ×\94×\94רש×\90×\95ת:",
+       "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": "ש×\99× ×\95×\99×\99×\9d ×\91×\9e×\95×\93×\9c ×ª×\95×\9b×\9f",
-       "log-action-filter-contentmodel-new": "×\99צ×\99ר×\95ת ×\93פ×\99×\9d ×¢×\9d ×\9e×\95×\93×\9c ×ª×\95×\9b×\9f ×\9c×\90־ס×\98× ×\93ר×\98×\99",
-       "log-action-filter-delete-delete": "×\9e×\97×\99קת דפים",
-       "log-action-filter-delete-restore": "שחזור דפים מחוקים",
-       "log-action-filter-delete-event": "×\9e×\97×\99קת פעולות יומן",
-       "log-action-filter-delete-revision": "×\9e×\97×\99קת גרסאות",
-       "log-action-filter-import-interwiki": "פע×\95×\9c×\95ת ×\99×\99×\91×\95×\90 מאתרי ויקי אחרים",
-       "log-action-filter-import-upload": "פע×\95×\9c×\95ת ×\99×\99×\91×\95×\90 ×¢×\9cÖ¾×\99×\93×\99 העלאת XML",
+       "log-action-filter-contentmodel-change": "ש×\99× ×\95×\99×\99×\9d ×\91×\9e×\95×\93×\9c ×\94ת×\95×\9b×\9f ×©×\9c ×\93פ×\99×\9d ×§×\99×\99×\9e×\99×\9d",
+       "log-action-filter-contentmodel-new": "×\99צ×\99ר×\95ת ×©×\9c ×\93פ×\99×\9d ×¢×\9d ×\9e×\95×\93×\9c ×ª×\95×\9b×\9f ×©×\95× ×\94 ×\9e×\91ר×\99רת ×\94×\9e×\97×\93×\9c",
+       "log-action-filter-delete-delete": "×\9e×\97×\99ק×\95ת ×©×\9c דפים",
+       "log-action-filter-delete-restore": "שחזורים של דפים מחוקים",
+       "log-action-filter-delete-event": "×\9e×\97×\99ק×\95ת ×©×\9c פעולות יומן",
+       "log-action-filter-delete-revision": "×\9e×\97×\99ק×\95ת ×©×\9c גרסאות",
+       "log-action-filter-import-interwiki": "×\99×\99×\91×\95×\90 ×\93פ×\99×\9d מאתרי ויקי אחרים",
+       "log-action-filter-import-upload": "×\99×\99×\91×\95×\90 ×\93פ×\99×\9d ×\91×\90×\9eצע×\95ת העלאת XML",
        "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": "×\99צ×\99רות על־ידי משתמשים אנונימיים",
-       "log-action-filter-newusers-create2": "יצירות על־ידי משתמשים רשומים",
-       "log-action-filter-newusers-autocreate": "יצירות אוטומטיות",
-       "log-action-filter-newusers-byemail": "יצירות עם סיסמה שנשלחה בדוא\"ל",
-       "log-action-filter-patrol-patrol": "ס×\99×\9e×\95× ×\99×\99×\9d ×\99×\93× ×\99×\99×\9d ×\9b×\91×\93×\95ק",
-       "log-action-filter-patrol-autopatrol": "סימונים אוטומטיים כבדוק",
-       "log-action-filter-protect-protect": "הגנות",
-       "log-action-filter-protect-modify": "שינויי הגנה",
-       "log-action-filter-protect-unprotect": "×\94סר×\95ת ×\94×\92× ×\94",
-       "log-action-filter-protect-move_prot": "×\94×¢×\91ר×\95ת ×©×\9c ×\94×\92× ×\94",
+       "log-action-filter-newusers-create": "×\94רש×\9eות על־ידי משתמשים אנונימיים",
+       "log-action-filter-newusers-create2": "×\99צ×\99ר×\95ת ×©×\9c ×\97ש×\91×\95× ×\95ת ×¢×\9cÖ¾×\99×\93×\99 ×\9eשת×\9eש×\99×\9d ×¨×©×\95×\9e×\99×\9d",
+       "log-action-filter-newusers-autocreate": "יצירות אוטומטיות של חשבונות",
+       "log-action-filter-newusers-byemail": "×\99צ×\99ר×\95ת ×©×\9c ×\97ש×\91×\95× ×\95ת ×¢×\9d ×¡×\99ס×\9e×\94 ×©× ×©×\9c×\97×\94 ×\91×\93×\95×\90\"×\9c",
+       "log-action-filter-patrol-patrol": "ס×\99×\9e×\95× ×\99×\9d ×\99×\93× ×\99×\99×\9d",
+       "log-action-filter-patrol-autopatrol": "סימונים אוטומטיים",
+       "log-action-filter-protect-protect": "×\94פע×\9c×\95ת ×©×\9c ×\94×\92× ×\95ת",
+       "log-action-filter-protect-modify": "שינויים של הגנות",
+       "log-action-filter-protect-unprotect": "×\94סר×\95ת ×©×\9c ×\94×\92× ×\95ת",
+       "log-action-filter-protect-move_prot": "×\94×¢×\91ר×\95ת ×©×\9c ×\94×\92× ×\95ת",
        "log-action-filter-rights-rights": "שינויים ידניים",
        "log-action-filter-rights-autopromote": "שינויים אוטומטיים",
        "log-action-filter-suppress-event": "העלמות של פעולות יומן",
        "log-action-filter-suppress-delete": "העלמות של דפים",
        "log-action-filter-suppress-block": "העלמות של משתמשים באמצעות חסימה",
        "log-action-filter-suppress-reblock": "העלמות של משתמשים באמצעות חסימה מחדש",
-       "log-action-filter-upload-upload": "×\94×¢×\9c×\90×\95ת ×\97×\93ש×\95ת",
-       "log-action-filter-upload-overwrite": "×\93ר×\99סת קבצים קיימים",
+       "log-action-filter-upload-upload": "×\94×¢×\9c×\90×\95ת ×©×\9c ×§×\91צ×\99×\9d ×\97×\93ש×\99×\9d",
+       "log-action-filter-upload-overwrite": "×\93ר×\99ס×\95ת ×©×\9c קבצים קיימים",
        "authmanager-authn-not-in-progress": "האימות נכשל או שנתוני הפעולה נאבדו. נא להתחיל את התהליך מחדש.",
        "authmanager-authn-no-primary": "לא ניתן היה לאמת את האישורים שסופקו.",
        "authmanager-authn-no-local-user": "האישורים שסופקו אינם שייכים לשום משתמש באתר זה.",
        "cannotauth-not-allowed-title": "הגישה נדחתה",
        "cannotauth-not-allowed": "אינך מורשה להשתמש בדף זה",
        "changecredentials": "שינוי האישורים",
-       "changecredentials-submit": "שינוי",
-       "changecredentials-submit-cancel": "ביטול",
+       "changecredentials-submit": "שינוי האישורים",
        "changecredentials-invalidsubpage": "$1 אינו סוג אישור תקין.",
        "changecredentials-success": "האישורים שלך שונו.",
        "removecredentials": "הסרת האישורים",
-       "removecredentials-submit": "הסרה",
-       "removecredentials-submit-cancel": "ביטול",
+       "removecredentials-submit": "הסרת האישורים",
        "removecredentials-invalidsubpage": "$1 אינו סוג אישור תקין.",
        "removecredentials-success": "האישורים שלך הוסרו.",
        "credentialsform-provider": "סוג האישורים:",
        "linkaccounts-success-text": "החשבון קושר.",
        "linkaccounts-submit": "קישור החשבונות",
        "unlinkaccounts": "ביטול הקישור של החשבונות",
-       "unlinkaccounts-success": "קישור החשבון בוטל."
+       "unlinkaccounts-success": "קישור החשבון בוטל.",
+       "authenticationdatachange-ignored": "השינוי בנתוני האימות לא הצליח. ייתכן שלא הוגדר ספק."
 }
index 2becd67..2dff172 100644 (file)
        "protectedpagetext": "यह पृष्ठ संपादनों एवं अन्य कार्यों से सुरक्षित किया हुआ है।",
        "viewsourcetext": "आप इस पृष्ठ का स्रोत देख सकते हैं और उसकी नकल उतार सकते हैं:",
        "viewyourtext": "आप इस पृष्ठ में ''अपने सम्पादन'' का स्रोत देख सकते हैं और उसकी नकल उतार सकते हैं:",
-       "protectedinterface": "यह पृष्ठ इस विकी के सॉफ़्टवेयर का इंटरफ़ेस पाठ देता है, और इसे गलत प्रयोग से बचाने के लिये सुरक्षित कर दिया गया है।\nसभी विकियों के लिए अनुवाद जोड़ने या बदलने के लिए कृपया मीडियाविकि के क्षेत्रीयकरण प्रकल्प [//translatewiki.net/ translatewiki.net] का प्रयोग करें।",
+       "protectedinterface": "यह पृष्ठ इस विकी के सॉफ़्टवेयर का इंटरफ़ेस पाठ देता है, और इसे गलत प्रयोग से बचाने के लिये सुरक्षित कर दिया गया है।\nसभी विकियों के लिए अनुवाद जोड़ने या बदलने के लिए कृपया मीडियाविकि के क्षेत्रीयकरण प्रकल्प [https://translatewiki.net/ translatewiki.net] का प्रयोग करें।",
        "editinginterface": "<strong>चेतावनी:</strong> आप एक ऐसे पृष्ठ को बदल रहे हैं जो सॉफ़्टवेयर का इंटरफ़ेस पाठ प्रदान करता है।\nइस पृष्ठ को बदलने से अन्य सदस्यों को प्रदर्शित इंटरफ़ेस की शक्लोसूरत में बदलाव आएगा।",
-       "translateinterface": "सभी विकियों के लिए अनुवाद जोड़ने या बदलने के लिए मीडियाविकि क्षेत्रीयकरण परियोजना [//translatewiki.net/ translatewiki.net] का प्रयोग करें।",
+       "translateinterface": "सभी विकियों के लिए अनुवाद जोड़ने या बदलने के लिए मीडियाविकि क्षेत्रीयकरण परियोजना [https://translatewiki.net/ translatewiki.net] का प्रयोग करें।",
        "cascadeprotected": "यह पृष्ठ सुरक्षित हैं, क्योंकि यह निम्नलिखित {{PLURAL:$1|पृष्ठ|पृष्ठों}} की सुरक्षा-सीढ़ी में समाविष्ट है:\n$2",
        "namespaceprotected": "आपको '''$1''' नामस्थान में समाविष्ट पृष्ठों को बदलने की अनुमति नहीं है।",
        "customcssprotected": "आपको इस CSS पृष्ठ को संपादित करने की अनुमति नहीं है, क्योंकि इसमें अन्य सदस्य की व्यक्तिगत सेटिंग्स शामिल हैं।",
        "password-change-forbidden": "आप इस विकि पर कूटशब्द नहीं बदल सकते हैं।",
        "externaldberror": "या तो प्रमाणिकरण डाटाबेस में त्रुटि हुई है या फिर आपको अपना बाह्य खाता अपडेट करने की अनुमति नहीं है।",
        "login": "प्रवेश",
+       "login-security": "अपनी पहचान सत्यापित करें",
        "nav-login-createaccount": "सत्रारंभ / खाता खोलें",
        "userlogin": "सत्रारंभ / खाता खोलें",
        "userloginnocreate": "लॉग इन",
        "userlogin-resetpassword-link": "अपना पासवर्ड भूल गए?",
        "userlogin-helplink2": "लॉग इन करने में सहायता",
        "userlogin-loggedin": "आप {{GENDER:$1|$1}} के रूप में पहले से लॉग्ड इन हैं।\nकिसी अन्य सदस्य के रूप में लॉग इन करने के लिए निम्नलिखित फ़ॉर्म का प्रयोग करें।",
+       "userlogin-reauth": "आप {{GENDER:$1|$1}} हो, इसके लिए आपको एक और बार खाते में प्रवेश करना होगा।",
        "userlogin-createanother": "एक अन्य खाता खोलें",
        "createacct-emailrequired": "ई-मेल पता",
        "createacct-emailoptional": "ई-मेल पता (वैकल्पिक)",
        "createacct-email-ph": "अपना ई-मेल पता लिखें",
        "createacct-another-email-ph": "ईमेल पता प्रदान करें",
        "createaccountmail": "एक अस्थायी यादृच्छिक (रैंडम) कूटशब्द चुनें और उसे निर्दिष्ट ई-मेल पते पर भेजें",
+       "createaccountmail-help": "इसका उपयोग बिना पासवर्ड जाने किसी और के लिए खाता खोलने के लिए उपयोग किया जाता है।",
        "createacct-realname": "असली नाम (वैकल्पिक)",
        "createaccountreason": "कारण:",
        "createacct-reason": "कारण",
        "createacct-reason-ph": "आप एक अन्य खाता क्यों बना रहे हैं",
+       "createacct-reason-help": "खाता निर्माण लॉग में यह सन्देश दिखाई देगा।",
        "createacct-submit": "अपना खाता बनाएँ",
        "createacct-another-submit": "खाता बनाएँ",
+       "createacct-continue-submit": "खाता निर्माण जारी रखें",
+       "createacct-another-continue-submit": "खाता निर्माण जारी रखें",
        "createacct-benefit-heading": "{{SITENAME}} आपके जैसे लोगों द्वारा बनायी गई है।",
        "createacct-benefit-body1": "{{PLURAL:$1|सम्पादन}}",
        "createacct-benefit-body2": "{{PLURAL:$1|पृष्ठ}}",
        "noname": "आपने वैध सदस्यनाम नहीं दिया है।",
        "loginsuccesstitle": "प्रवेश हुआ",
        "loginsuccess": "'''आप {{SITENAME}} में \"$1\" सदस्यनाम से लॉग इन हो {{GENDER:$1|चुके|चुकी|चुके}} हैं।'''",
-       "nosuchuser": "\"$1\" नाम का कोई सदस्य नहीं है।\nसदस्यनाम में लघु और दीर्घ अक्षरों से फ़र्क पड़ता है।\nअपनी वर्तनी जाँचें, या [[Special:CreateAccount|नया खाता खोलें]]।",
+       "nosuchuser": "यहाँ \"$1\" नाम का कोई सदस्य नहीं है।\nसदस्यनाम में लघु और दीर्घ अक्षरों से फ़र्क पड़ता है।\nअपनी वर्तनी जाँचें, या [[Special:CreateAccount|नया खाता खोलें]]।",
        "nosuchusershort": "\"$1\" नाम का कोई सदस्य नहीं है।\nकृपया अपनी दी हुई वर्तनी जाँचें।",
        "nouserspecified": "सदस्यनाम देना अनिवार्य है।",
        "login-userblocked": "यह सदस्य प्रतिबन्धित है। सत्रारम्भ की अनुमति नहीं है।",
        "createacct-another-realname-tip": "असली नाम देना आवश्यक नहीं है।\nयदि आप प्रदान करते हैं तो इसका प्रयोग सदस्य के योगदानों के लिये उनको श्रेय (attribution) देने के लिये किया जायेगा।",
        "pt-login": "लॉग इन",
        "pt-login-button": "लॉग इन",
+       "pt-login-continue-button": "प्रवेश जारी रखें",
        "pt-createaccount": "खाता बनाएँ",
        "pt-userlogout": "लॉगआउट",
        "php-mail-error-unknown": "PHP के mail() फ़ंक्शन में अज्ञात त्रुटि हुई।",
        "botpasswords-invalid-name": "जो सदस्य नाम आप बता रहे हो, उसमें बॉट पासवर्ड अलग करने वाला (\"$1\") नहीं है।",
        "botpasswords-not-exist": "सदस्य \"$1\" के आप बॉट पासवर्ड नहीं है, जिसका नाम \"$2\" है।",
        "resetpass_forbidden": "कूटशब्द बदले नहीं जा सकते",
+       "resetpass_forbidden-reason": "पासवर्ड नहीं बदला : $1",
        "resetpass-no-info": "इस पृष्ठ का सीधे प्रयोग करने के लिए आपको लॉग इन करना होगा।",
        "resetpass-submit-loggedin": "कूटशब्द बदलें",
        "resetpass-submit-cancel": "रद्द करें",
        "resetpass-temp-password": "अस्थायी कूटशब्द:",
        "resetpass-abort-generic": "कूटशब्द में बदलाव किसी एक्सटेंशन द्वारा रोक दिया गया है।",
        "resetpass-expired": "आपके पासवर्ड की वैधता अवधि समाप्त हो चुकी है। कृपया लॉग इन करने के लिए एक नया पासवर्ड सेट करें।",
-       "resetpass-expired-soft": "आपका पासवर्ड की वैधता अवधि समाप्त हो गयी है और उसे रीसेट करने की ज़रूरत है। कृपया एक नया पासवर्ड चुनें, या बाद में रीसेट करने के लिए \"{{int:resetpass-submit-cancel}}\" पर क्लिक करें।",
-       "resetpass-validity-soft": "आपका पासवर्ड मान्य नहीं है: $1 \n\nकृपया अब एक नया पासवर्ड चुनें, या उसे बाद में पुनर्स्थापित करने के लिए \"{{int:resetpass-submit-cancel}}\" पर क्लिक करें।",
+       "resetpass-expired-soft": "आपका पासवर्ड की वैधता अवधि समाप्त हो गयी है और उसे रीसेट करने की ज़रूरत है। कृपया एक नया पासवर्ड चुनें, या बाद में रीसेट करने के लिए \"{{int:authprovider-resetpass-skip-label}}\" पर क्लिक करें।",
+       "resetpass-validity-soft": "आपका पासवर्ड मान्य नहीं है: $1 \n\nकृपया अब एक नया पासवर्ड चुनें, या उसे बाद में पुनर्स्थापित करने के लिए \"{{int:authprovider-resetpass-skip-label}}\" पर क्लिक करें।",
        "passwordreset": "कूटशब्द रीसेट",
        "passwordreset-text-one": "अपना कूटशब्द रीसेट करने के लिए यह फ़ॉर्म भरें।",
        "passwordreset-text-many": "{{PLURAL:$1|ईमेल के माध्यम से एक अस्थायी पासवर्ड प्राप्त करने के लिए कोई एक डिब्बा भरें।}}",
        "passwordreset-emailsentusername": "यदि कोई ईमेल इस खाते से जुड़ी है तो पासवर्ड आपके ईमेल में भेज दिया जाएगा।",
        "passwordreset-emailsent-capture": "नीचे दिखाया गया कूटशब्द रीसेट ई-मेल भेज दिया गया है।",
        "passwordreset-emailerror-capture": "नीचे दृष्टित कूटशब्द रीसेट ई-मेल उत्पन्न किया गया था, परंतु उसे {{GENDER:$2|सदस्य}} को भेजना असफल रहा।\nत्रुटि: $1",
+       "passwordreset-emailerror-capture2": "{{GENDER:$2|सदस्य}} को ईमेल भेजना विफल : $1 {{PLURAL:$3|सदस्य नाम और पासवर्ड|सदस्य नाम और पासवर्ड की सूची}} नीचे दिया गया है।",
        "passwordreset-invalideamil": "अवैध ईमेल पता",
        "changeemail": "ई-मेल पता परिवर्तित करें",
        "changeemail-header": "अपना ईमेल पता परिवर्तन हेतु इसे पूरा करें। यदि आप अपना वर्तमान ईमेल पता हटाना चाहते हैं, तो इसे खाली छोड़ दें और इसे भेजें।",
        "accmailtext": "[[User talk:$1|$1]] के लिए एक यंत्र जनित कूटशब्द $2 को भेज दिया गया है। लॉगिन करने के बाद इसे '''[[Special:ChangePassword|कूटशब्द बदलें]]'' वाले पृष्ठ पर बदला जा सकता है।",
        "newarticle": "(नया)",
        "newarticletext": "आप ऐसे पृष्ठ पर आए हैं जो अभी तक बनाया नहीं गया है।\nपृष्ठ बनाने के लिये नीचे के बौक्स में पाठ लिखें। अधिक जानकारी के लिये [$1 सहायता पृष्ठ] देखें।\nअगर आप यहाँ पर गलती से आए हैं तो अपने ब्राउज़र के बैक ('''back''') बटन पर क्लिक करें।",
-       "anontalkpagetext": "----''यह वार्ता पृष्ठ उन बेनामी सदस्यों के लिये है जिन्होंने या तो खाता नहीं खोला है या खाते का प्रयोग नहीं कर रहे हैं।\nइसलिये उनकी पहचान के लिये हमें उनका आइ॰पी पता प्रयोग करना पड़ता है।\nआइ॰पी पता कई सदस्यों के लिए साझा हो सकता है।\nयदि आप एक बेनामी सदस्य हैं और आपको लगता है कि आपके बारे में अप्रासंगिक टीका टिप्पणी की गई है तो कृपया [[Special:CreateAccount|सदस्यता लें]] या [[Special:UserLogin|सत्रारंभ करें]] ताकि अन्य बेनामी सदस्यों में से आपको अलग से पहचाना जा सके।''",
+       "anontalkpagetext": "----\n<em>यह वार्ता पृष्ठ उन बेनामी सदस्यों के लिये है जिन्होंने या तो खाता नहीं खोला है या खाते का प्रयोग नहीं कर रहे हैं।</em>\nइसलिये उनकी पहचान के लिये हमें उनका संख्यात्मक आई॰पी॰ पता प्रयोग करना पड़ता है।\nऐसा आई॰पी॰ पता कई सदस्यों के लिए साझा हो सकता है।\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}}|इस शीर्षक की खोज]] कर सकते हैं,\nया <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} संबंधित लॉग खोज सकते हैं]</span>, परन्तु आपको यह पृष्ठ बनाने की अनुमति नहीं है।",
        "missing-revision": "\"{{FULLPAGENAME}}\" पृष्ठ का अवतरण #$1 मौजूद नहीं है।\n\nआम तौर पर यह एक हटाए गए पृष्ठ के पुराने लिंक पर क्लिक करने से होता है।\nअधिक जानकारी के लिए आप [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} हटाने का लॉग] देख सकते हैं।",
        "apisandbox": "ए॰पी॰आइ प्रयोगस्थल",
        "apisandbox-jsonly": "एपीआई प्रयोगपृष्ठ का उपयोग करने हेतु जावास्क्रिप्ट अनिवार्य है।",
        "apisandbox-api-disabled": "इस स्थल पर ए०पी०आई० सक्षम नहीं हैं।",
-       "apisandbox-intro": "इस पृष्ठ का उपयोग <strong>मीडियाविकि वेब एपीआई</strong> के लिए करें। इसके उपयप्ग हेतु देखें: [[mw:API:Main page|एपीआई प्रलेखन]] उदाहरण: [//www.mediawiki.org/wiki/API#A_simple_example मुख्यपृष्ठ के सामग्री हेतु]",
+       "apisandbox-intro": "इस पृष्ठ का उपयोग <strong>मीडियाविकि वेब एपीआई</strong> के लिए करें। इसके उपयप्ग हेतु देखें: [[mw:API:Main page|एपीआई प्रलेखन]] उदाहरण: [https://www.mediawiki.org/wiki/API#A_simple_example मुख्यपृष्ठ के सामग्री हेतु]",
        "apisandbox-fullscreen": "विस्तार करें",
        "apisandbox-fullscreen-tooltip": "ब्राउज़र को पूरी तरह भरने हेतु विस्तार करें।",
        "apisandbox-unfullscreen": "पृष्ठ दिखाएँ",
        "changecontentmodel-success-text": "[[:$1]] के सामग्री का प्रकार परिवर्तित हुआ।",
        "changecontentmodel-cannot-convert": "[[:$1]] की सामग्री का प्रकार $2 में नहीं बदल सकता है।",
        "changecontentmodel-nodirectediting": "$1 सामग्री सीधे सम्पादन समर्थित नहीं करता है",
+       "changecontentmodel-emptymodels-title": "कोई सामग्री प्रारूप उपलब्ध नहीं",
+       "changecontentmodel-emptymodels-text": "[[:$1]] में सामग्री किसी और प्रकार में परिवर्तित नहीं हो सकती।",
        "log-name-contentmodel": "सामाग्री परिवर्तन लॉग",
        "log-description-contentmodel": "आयोजन जो इस पृष्ठ के सामग्री से मिलते जुलते हैं",
        "logentry-contentmodel-new": "$1 ने  $3 पृष्ठ का {{GENDER:$2|निर्माण}} किया बिना मूल सामग्री प्रारूप के \"$5\"",
        "allmessagesname": "नाम",
        "allmessagesdefault": "डिफॉल्ट पाठ",
        "allmessagescurrent": "वर्तमान पाठ",
-       "allmessagestext": "ये मीडियाविकि नामस्थान में उपलब्ध प्रणाली संदेशों की एक सूची है। यदि आप सामान्य मीडियाविकि क्षेत्रीयकरण में योगदान देना चाहें तो कृपया [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation मीडियाविकि क्षेत्रीयकरण] व [//translatewiki.net translatewiki.net] को देखें।",
+       "allmessagestext": "ये मीडियाविकि नामस्थान में उपलब्ध प्रणाली संदेशों की एक सूची है। यदि आप सामान्य मीडियाविकि क्षेत्रीयकरण में योगदान देना चाहें तो कृपया [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation मीडियाविकि क्षेत्रीयकरण] व [https://translatewiki.net translatewiki.net] को देखें।",
        "allmessagesnotsupportedDB": "इस पृष्ठ का इस्तेमाल नहीं कर सकते क्योंकी '''$wgUseDatabaseMessages''' बंद हैं।",
        "allmessages-filter-legend": "छानें",
        "allmessages-filter": "अनुकूलन स्थिति के आधार पर छानें:",
        "confirmemail_body_set": "किसी ने, शायद आपने ही, आई॰पी पते $1 से,\n{{SITENAME}} पर \"$2\" सदस्य खाते का ई-मेल पता यह ईमेल पता निर्दिष्ट किया है।\n\nइस बात की पुष्टि करने के लिए कि यह सदस्य खाता आपका ही है,\nऔर {{SITENAME}} पर ईमेल सुविधाएँ शुरू करने के लिए निम्न लिंक अपने ब्राउज़र में खोलें:\n\n$3\n\nयदि यह सदस्य खाता आपका नहीं है, ई-मेल पुष्टि रद्द करने के लिए निम्न लिंक पर जाएँ:\n\n$5\n\nयह पुष्टिकरण लिंक $6 को $7 के बाद काम नहीं करेंगे।",
        "confirmemail_invalidated": "इ-मेल एड्रेस प्रमाणिकरण रद्द कर दिया गया हैं",
        "invalidateemail": "इ-मेल प्रमाणिकरण रद्द करें",
+       "notificationemail_subject_changed": "{{SITENAME}} पंजीकृत ईमेल खाता बदला गया।",
+       "notificationemail_subject_removed": "{{SITENAME}} पंजीकृत ईमेल खाता हटाया गया।",
        "scarytranscludedisabled": "[आंतरविकि ट्रान्स्क्लुडिंग बंद हैं]",
        "scarytranscludefailed": "[$1 के लिये साँचा मँगा नहीं पाए]",
        "scarytranscludefailed-httpstatus": "[$1 के लिये साँचा मँगा नहीं पाए, त्रुटि: HTTP $2]",
        "confirm-watch-top": "इस पृष्ठ को अपने ध्यानसूची में जोड़ें?",
        "confirm-unwatch-button": "ठीक है",
        "confirm-unwatch-top": "यह पृष्ठ अपने ध्यानसूचीसे हटाएं?",
+       "confirm-rollback-button": "ठीक है",
+       "confirm-rollback-top": "इस पृष्ठ के सम्पादन पूर्ववत करें?",
        "semicolon-separator": ";",
        "quotation-marks": "\"$1\"",
        "imgmultipageprev": "← पिछला पृष्ठ",
        "watchlistedit-raw-done": "आपकी ध्यानसूची अपडेट कर दी गई हैं",
        "watchlistedit-raw-added": "{{PLURAL:$1|1शीर्षक|$1 शीर्षक}} बढा दिये:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|1शीर्षक|$1 शीर्षक}} हटा दिये:",
-       "watchlistedit-clear-title": "धà¥\8dयानसà¥\82à¤\9aà¥\80 à¤\96ालà¥\80 à¤\95à¥\80",
+       "watchlistedit-clear-title": "धà¥\8dयानसà¥\82à¤\9aà¥\80 à¤\96ालà¥\80 à¤\95रà¥\87à¤\82",
        "watchlistedit-clear-legend": "ध्यानसूची खाली करें",
        "watchlistedit-clear-explain": "आपकी ध्यानसूची से सभी पृष्ठ हटा दिये जायेंगे",
        "watchlistedit-clear-titles": "खिताब:",
        "timezone-local": "स्थानीय",
        "duplicate-defaultsort": "'''Warning:''' पुरानी मूल क्रमांकन कुंजी \"$1\" के बजाय अब मूल क्रमांकन कुंजी \"$2\" होगी।",
        "duplicate-displaytitle": "<strong>चेतावनी:</strong> शीर्षक दिखाएँ \"$2\" पूर्व दिखाए गए शीर्षक \"$1\" पर छा रहा है।",
+       "restricted-displaytitle": "<strong>चेतावनी :</strong> प्रदर्शित शीर्षक \"$1\" को नजरअंदाज किया गया है, क्योंकि यह वास्तविक शीर्षक से मिलता नहीं है।",
        "invalid-indicator-name": "<strong>त्रुटि:</strong> पृष्ठ स्थिति सांकेतक <code>नाम</code> गुण खाली नहीं रहना चाहिए।",
        "version": "रूपान्तर",
        "version-extensions": "इन्स्टॉल की हुई एक्स्टेंशन",
        "version-libraries-license": "अनुज्ञापत्र",
        "version-libraries-description": "विवरण",
        "version-libraries-authors": "लेखक",
-       "redirect": "à¤\85नà¥\81पà¥\8dरà¥\87षित à¤\95रà¥\87à¤\82 à¤«à¤¼à¤¾à¤\87ल, à¤\89पयà¥\8bà¤\97à¤\95रà¥\8dता, à¤¯à¤¾ à¤¸à¤\82शà¥\8bधन à¤ªà¤¹à¤\9aान à¤\95à¥\87 à¤\86धार à¤ªà¤°",
+       "redirect": "फ़ाà¤\87ल, à¤¸à¤¦à¤¸à¥\8dय, à¤ªà¥\83षà¥\8dठ, à¤\85वतरण à¤¯à¤¾ à¤²à¥\89à¤\97 à¤\86à¤\88डà¥\80 à¤¦à¥\8dवारा à¤\85नà¥\81पà¥\8dरà¥\87षित",
        "redirect-summary": "यह विशेष पृष्ठ फ़ाइलनाम प्रदान करने पर फ़ाइल नाम को, पृष्ठ आइ॰दी अथवा अवतरण आइ॰दी देने पर पृष्ठ को, और सदस्य आइ॰दी देने पर सदस्य पृष्ठ को पुनर्प्रेषित करता है। उदाहरण: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], या [[{{#Special:Redirect}}/user/101]]।",
        "redirect-submit": "जायें",
        "redirect-lookup": "ढूँढें:",
        "feedback-useragent": "सदस्य कर्ता:",
        "searchsuggest-search": "खोज",
        "searchsuggest-containing": "...से युक्त",
+       "api-error-autoblocked": "आपका आईपी पता अपने आप अवरोधित हो गया, क्योंकि यह किसी अवरोधित सदस्य द्वारा उपयोग किया गया था।",
        "api-error-badaccess-groups": "आपको इस विकि के लिए फ़ाइलें अपलोड करने की अनुमति नहीं है.",
        "api-error-badtoken": "आंतरिक त्रुटि: बुरी टोकन।",
        "api-error-blocked": "आपको सम्पादन से अवरोधित किया गया है।",
        "log-action-filter-delete-restore": "पृष्ठ न हटाना",
        "log-action-filter-delete-event": "पृष्ठ हटाने का लॉग",
        "log-action-filter-delete-revision": "अवतरण हटाना",
-       "log-action-filter-managetags-create": "टैग निर्मित",
+       "log-action-filter-managetags-create": "चिप्पि निर्मित",
+       "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-upload-overwrite": "फिर से अपलोड",
        "authmanager-create-disabled": "खाता निर्माण निष्क्रिय है।",
        "authmanager-authplugin-setpass-failed-title": "पासवर्ड बदलाव विफल हुआ।",
+       "authmanager-authplugin-setpass-bad-domain": "अमान्य जालस्थल।",
+       "authmanager-autocreate-noperm": "स्वचालित खाता निर्माण की अनुमति नहीं है।",
+       "authmanager-autocreate-exception": "स्वचालित खाता निर्माण को पहले के कुछ त्रुटियों के कारण कुछ समय के लिए निष्क्रिय किया गया है।",
        "authmanager-userdoesnotexist": "सदस्य खाता \"$1\" पंजीकृत नहीं है।",
        "authmanager-email-label": "ईमेल",
        "authmanager-email-help": "ईमेल पता",
        "authmanager-realname-label": "वास्तविक नाम",
+       "authmanager-realname-help": "सदस्य का वास्तविक नाम",
        "authmanager-provider-temporarypassword": "अस्थाई पासवर्ड",
+       "authprovider-confirmlink-request-label": "खाते जो जोड़ने हैं।",
        "authprovider-confirmlink-success-line": "$1 : सफलतापूर्वक जुड़ा।",
+       "authprovider-confirmlink-failed": "खाता जोड़ने का काम पूरी तरह से नहीं हो पाया : $1",
        "authprovider-resetpass-skip-label": "छोड़ें",
        "authform-newtoken": "टोकन लापता है $1",
        "authform-notoken": "टोकन लापता है",
        "authform-wrongtoken": "गलत टोकन",
+       "specialpage-securitylevel-not-allowed-title": "अनुमति नहीं है",
+       "specialpage-securitylevel-not-allowed": "क्षमा करें, आप इस पृष्ठ का उपयोग नहीं कर सकते हैं, क्योंकि आपकी जानकारी सत्यापित नहीं है।",
+       "authpage-cannot-login": "प्रवेश करने में अक्षम।",
+       "authpage-cannot-login-continue": "प्रवेश करने में अक्षम। हो सकता है कि आपका सत्र समय समाप्त हो गया।",
+       "authpage-cannot-create": "खाता निर्माण में अक्षम है।",
+       "authpage-cannot-create-continue": "खाता निर्माण में अक्षम है। हो सकता है कि आपका सत्र समाप्त हो गया हो।",
+       "authpage-cannot-link": "खाता जोड़ना शुरू नहीं कर सकते।",
+       "authpage-cannot-link-continue": "खाता जोड़ने में विफल रहा। हो सकता है कि आपका सत्र समय समाप्त हो गया।",
+       "cannotauth-not-allowed-title": "अनुमति नहीं मिली।",
        "cannotauth-not-allowed": "आपको इस पृष्ठ के उपयोग की अनुमति नहीं है।",
-       "changecredentials-submit": "बदलाव",
-       "changecredentials-submit-cancel": "रद्द करें",
-       "removecredentials-submit": "हटायें",
-       "removecredentials-submit-cancel": "रद्द करें",
+       "changecredentials": "साख बदलें",
+       "changecredentials-submit": "साख बदलें",
+       "changecredentials-invalidsubpage": "$1 सही परिचय प्रकार नहीं है।",
+       "changecredentials-success": "आपका परिचय बदला गया।",
+       "removecredentials": "परिचय निकालें",
+       "removecredentials-submit": "परिचय निकालें",
+       "removecredentials-invalidsubpage": "$1 सही परिचय प्रकार नहीं है।",
+       "removecredentials-success": "आपका परिचय निकाल दिया गया है।",
+       "credentialsform-provider": "परिचय प्रकार :",
        "credentialsform-account": "खाते का नाम:",
        "cannotlink-no-provider-title": "कोई जुड़ा खाता नहीं है।",
        "cannotlink-no-provider": "कोई जुड़ा खाता नहीं है।",
index 6da450d..9197873 100644 (file)
        "protectedpagetext": "Ii panna ke badlao ke rok dewa gais hae, jisse ki ispe koi badlao aur koi action nai kare sake.",
        "viewsourcetext": "Aap ii panna ke source ke dekhe aur nakal utare sakta hai.",
        "viewyourtext": "Aap <strong>aapan badlao</strong> ke source ke ii panna pe  dekhe aur copy kare saktaa hae",
-       "protectedinterface": "Ii panna, ii wiki ke khatir, software ke interface text dewe hai, aur iske barbaadi se roke ke khatir band kar dewa gais hai.\nSab wiki me anuwaad ke jorre nai to badle ke khatir, meharbaani kar ke [//translatewiki.net/ translatewiki.net], the MediaWiki localisation project ke kaam me laao.",
+       "protectedinterface": "Ii panna, ii wiki ke khatir, software ke interface text dewe hai, aur iske barbaadi se roke ke khatir band kar dewa gais hai.\nSab wiki me anuwaad ke jorre nai to badle ke khatir, meharbaani kar ke [https://translatewiki.net/ translatewiki.net], the MediaWiki localisation project ke kaam me laao.",
        "editinginterface": "'''Chetawani:''' Aap ek panna ke badaltaa hai jon ki software ke interface text dewe hae.\nIi panna me badlao ke asar duusra sadasya ke interface pe bhi hoi.",
-       "translateinterface": "Sab wiki me translate kare ke khatir [//translatewiki.net/translatewiki.net], the MediaWiki localisation project, ke kaam me lao.",
+       "translateinterface": "Sab wiki me translate kare ke khatir [https://translatewiki.net/translatewiki.net], the MediaWiki localisation project, ke kaam me lao.",
        "cascadeprotected": "Ii panna ke badlao se bachawa gais hai, kaheki iske {{PLURAL:$1|panna, jon ki|panna, jon ki}} surakchhit hae \"cascading\" option turned on ke saathe me rakkhaa gais hai:\n$2",
        "namespaceprotected": "Aap ke paas '''$1''' namespace me panna ke badle ke adhikar nai hai.",
        "customcssprotected": "Aap ke ii CSS panna ke badle ke ijaajat nai hae, kaahe ki isme duusra sadasya ke personal settings hae.",
        "resetpass-temp-password": "Kachcha password:",
        "resetpass-abort-generic": "Ek extension password ke badlao ke rokis hae.",
        "resetpass-expired": "Aap ke password expire hoe gais hae. Log in kare ke khatir ek nawaa password banao.",
-       "resetpass-expired-soft": "Aap ke password expire hoe gais hae aur iske reset kare ke parri. Meharbani kar ke nawaa pasword choose karo, nai to password ke baad me reset kare ke khatir \"{{int:resetpass-submit-cancel}}\" ke click karo.",
-       "resetpass-validity-soft": "Aap ke password thiik nai hae: $1\n\n\nMeharbani kar ke nawaa pasword choose karo, nai to password ke baad me reset kare ke khatir \"{{int:resetpass-submit-cancel}}\" ke click karo.",
+       "resetpass-expired-soft": "Aap ke password expire hoe gais hae aur iske reset kare ke parri. Meharbani kar ke nawaa pasword choose karo, nai to password ke baad me reset kare ke khatir \"{{int:authprovider-resetpass-skip-label}}\" ke click karo.",
+       "resetpass-validity-soft": "Aap ke password thiik nai hae: $1\n\n\nMeharbani kar ke nawaa pasword choose karo, nai to password ke baad me reset kare ke khatir \"{{int:authprovider-resetpass-skip-label}}\" ke click karo.",
        "passwordreset": "Password ke badlo",
        "passwordreset-text-one": "Aapan password ke reset kare ke khatir ii form ke bharo.",
        "passwordreset-text-many": "{{PLURAL:$1|Temporary password ke email se le ke khatir ek field me likho}}",
        "allmessagesname": "Naam",
        "allmessagesdefault": "Default text",
        "allmessagescurrent": "Abhi ke text",
-       "allmessagestext": "Ii ek system sandes ke suchi hai jon ki MediaWiki namespace me pawa jaae sake hai.\nAgar aap generic MediaWiki localisation ke yogdaan de mangtaa hai tab meharbani kar ke [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] aur [//translatewiki.net translatewiki.net]  pe jao.",
+       "allmessagestext": "Ii ek system sandes ke suchi hai jon ki MediaWiki namespace me pawa jaae sake hai.\nAgar aap generic MediaWiki localisation ke yogdaan de mangtaa hai tab meharbani kar ke [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] aur [https://translatewiki.net translatewiki.net]  pe jao.",
        "allmessagesnotsupportedDB": "Ii panna ke kaam me nai lawa jaae sake hai kahe ki '''$wgUseDatabaseMessages''' ke band kar dewa gais hai.",
        "allmessages-filter-legend": "Chaalo",
        "allmessages-filter": "Customisation state se chhaano",
index 1e7f53f..0869b55 100644 (file)
        "viewsourcetext": "Mahimo mo nga makita kag makopya ang ginhalinan sang sini nga panid:",
        "viewyourtext": "Mahimo mo nga makita kag makopya ang ginhalinan sang '''imo mga pagbag-o''' sa sini nga panid:",
        "protectedinterface": "Ang ini nga panid nagahatag sang mga teksto sang interface para sa software, kag ginapangapinan agod indi maabuso.",
-       "editinginterface": "'''Pahibalo:''' Naga-ilis ka sang panid nga ginagamit sa paghatag sang mga teksto sang interface para sa software.\nAng mga pagbag-o sang sini nga panid maga-apekto sa hitsura sang interface sang panid sang manug-gamit sang iban.\nPara sa mga paglubad/pagbadbad, palihog kilalanon ang paggamit sang [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], ang proyekto sang MediaWiki para sa localisasyon.",
+       "editinginterface": "'''Pahibalo:''' Naga-ilis ka sang panid nga ginagamit sa paghatag sang mga teksto sang interface para sa software.\nAng mga pagbag-o sang sini nga panid maga-apekto sa hitsura sang interface sang panid sang manug-gamit sang iban.\nPara sa mga paglubad/pagbadbad, palihog kilalanon ang paggamit sang [https://translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], ang proyekto sang MediaWiki para sa localisasyon.",
        "cascadeprotected": "Ang ini nga panid ginpangapinan agod nga indi ma-ilisan, bangud nga ini nadal sa masunod nga {{PLURAL:$1|panid, nga|mga panid, nga}} ginapangapinan sang naga-\"kaskad\" nga pililian nga naga-andar:\n$2",
        "namespaceprotected": "Wala ka ginapasugtan nga mag-ilis sang mga panid sa '''$1''' nga lugar-espasyo.",
        "customcssprotected": "Wala ka ginapasugtan nga mag-ilis sang sini nga panid nga CSS, tungod nga may yara ini sang pagpilian sang isa pa gid nga manug-gamit.",
index 3a25615..fd7476b 100644 (file)
                        "Srdjan m",
                        "Teoo3",
                        "Matma Rex",
-                       "Vrhnje"
+                       "Vrhnje",
+                       "Ivi104"
                ]
        },
-       "tog-underline": "Podcrtane poveznice",
+       "tog-underline": "Podcrtavanje poveznica",
        "tog-hideminor": "Sakrij manje izmjene u nedavnim promjenama",
        "tog-hidepatrolled": "Sakrij pregledane izmjene u nedavnim promjenama",
        "tog-newpageshidepatrolled": "Sakrij pregledane stranice iz popisa novih stranica",
@@ -76,7 +77,7 @@
        "tog-ccmeonemails": "Pošalji mi kopiju e-maila kojeg pošaljem drugim suradnicima",
        "tog-diffonly": "Ne prikazuj sadržaj stranice prilikom usporedbe inačica",
        "tog-showhiddencats": "Prikaži skrivene kategorije",
-       "tog-norollbackdiff": "Izostavi razliku nakon upotrebe ukloni",
+       "tog-norollbackdiff": "Izostavi razliku nakon vraćanja",
        "tog-useeditwarning": "Upozori me kad napuštam stranicu za uređivanje bez spremanja izmjena",
        "tog-prefershttps": "Uvijek koristi sigurnu vezu kod prijave",
        "underline-always": "Uvijek",
        "readonly_lag": "Baza podataka je automatski zaključana dok se sekundarni bazni poslužitelji ne usklade s glavnim",
        "internalerror": "Pogreška sustava",
        "internalerror_info": "Interna pogrješka: $1",
+       "internalerror-fatal-exception": "Terminalna pogreška \"$1\"",
        "filecopyerror": "Ne mogu kopirati datoteku \"$1\" u \"$2\".",
        "filerenameerror": "Ne mogu preimenovati datoteku \"$1\" u \"$2\".",
        "filedeleteerror": "Ne mogu obrisati datoteku \"$1\".",
        "cannotdelete": "Ne može se obrisati stranica ili datoteka \"$1\".\nMoguće je da ju je netko drugi već obrisao.",
        "cannotdelete-title": "Brisanje stranice \"$1\" nije moguće",
        "delete-hook-aborted": "Brisanje prekinuto softverskim priključkom (hook).\nNema obrazloženja ili poruke o pogrješci.",
+       "no-null-revision": "Ne mogu stvoriti praznu izmjenu stranice \"$1\"",
        "badtitle": "Loš naslov",
        "badtitletext": "Navedeni naslov stranice nepravilan ili loše formirana interwiki poveznica.",
        "title-invalid-empty": "Naslov tražene stranice je prazan ili sadrži samo naziv prostora imena.",
        "title-invalid-interwiki": "Traženi naziv stranice sadrži interwiki poveznicu koja se ne može koristiti u nazivima.",
        "title-invalid-talk-namespace": "Traženi naziv stranice odnosi se na stranicu rasprave koja ne može postojati.",
        "title-invalid-characters": "Traženi naziv stranice sadrži nevažeće znakove: \"$1\"",
+       "title-invalid-relative": "Naslov ima relativan put. Relativni putovi u naslovu su nevažeći, jer ih web pretraživač često ne može doseći.",
+       "title-invalid-too-long": "Naslov stranice je predugačak. Naslov ne smije biti duži od $1 {{PLURAL:$1|bajt|bajtova}} u UTF-8 kodiranju.",
        "perfcached": "Sljedeći podaci su iz međuspremnika i možda nisu najsvježiji. Međuspremnik sadrži $1 {{PLURAL:$1|rezultat|rezultata}} pretraživanja.",
        "perfcachedts": "Sljedeći podaci su iz međuspremnika i posljednji puta su ažurirani u $1. Međuspremnik sadrži $4 {{PLURAL:$4|rezultat|rezultata}} pretraživanja.",
        "querypage-no-updates": "Osvježavanje ove stranice je trenutačno onemogućeno. Nove promjene neće biti vidljive.",
        "viewsource": "Vidi izvornik",
        "viewsource-title": "Vidi kôd stranice $1",
        "actionthrottled": "Uređivanje je usporeno",
-       "actionthrottledtext": "Kao anti-spam mjeru, ograničeni ste u broju ovih radnji u određenom vremenu, i trenutačno ste dosegli to ograničenje. Pokušajte opet za koju minutu.",
+       "actionthrottledtext": "Kao mjera protiv spama, ograničeni vam je broj ovih radnji u određenom vremenu, i trenutačno ste dostigli to ograničenje. Pokušajte opet za par minuta.",
        "protectedpagetext": "Ova stranica je zaključana da bi se onemogućile izmjene.",
        "viewsourcetext": "Možete pogledati i kopirati izvorni sadržaj ove stranice.",
        "viewyourtext": "Možete vidjeti i kopirati tekst <strong>vaših uređivanja</strong> na ovoj stranici.",
-       "protectedinterface": "Ova stranica je zaštićena od izmjena jer sadrži tekst MediaWiki softvera.\nAko želite prevesti neprevedenu poruku ili popraviti prijevod neke druge poruke za sve MediaWiki wikije, posjetite [//translatewiki.net/  translatewiki.net], projekt za lokalizaciju MediaWiki softvera.",
+       "protectedinterface": "Ova stranica je zaštićena od izmjena jer sadrži tekst MediaWiki softvera.\nAko želite prevesti neprevedenu poruku ili popraviti prijevod neke druge poruke za sve MediaWiki wikije, posjetite [https://translatewiki.net/  translatewiki.net], projekt za lokalizaciju MediaWiki softvera.",
        "editinginterface": "<strong>Upozorenje:</strong> Uređujete stranicu koja se rabi za prikaz teksta u sučelju softvera. Promjene učinjene na ovoj stranici odrazit će se na izgled korisničkog sučelja kod drugih suradnika na ovoj wiki.",
-       "translateinterface": "Za dodavanje ili promjenu prijevoda za sve wikije koristite [//translatewiki.net/ translatewiki.net], projekt za lokalizaciju MediaWikija.",
+       "translateinterface": "Za dodavanje ili promjenu prijevoda za sve wikije koristite [https://translatewiki.net/ translatewiki.net], projekt za lokalizaciju MediaWikija.",
        "cascadeprotected": "Ova je stranica zaključana za uređivanja jer je uključena u {{PLURAL:$1|sljedeću stranicu|sljedeće stranice}}, koje su zaštićene \"prenosivom zaštitom\":\n$2",
        "namespaceprotected": "Ne možete uređivati stranice u imenskom prostoru '''$1'''.",
        "customcssprotected": "Ne možete uređivati ovu CSS stranicu zato što ona sadrži osobne postavke drugog suradnika.",
        "password-change-forbidden": "Ne možete promjeniti zaporku na ovom projektu.",
        "externaldberror": "Došlo je do pogreške s vanjskom autorizacijom ili Vam nije dopušteno osvježavanje vanjskog suradničkog računa.",
        "login": "Prijavi se",
+       "login-security": "Potvrdite svoj identitet",
        "nav-login-createaccount": "Prijavi se",
        "userlogin": "Prijavi se / stvori račun",
        "userloginnocreate": "Prijavi se",
        "resetpass-temp-password": "Privremena lozinka:",
        "resetpass-abort-generic": "Poništena je promjena zaporke.",
        "resetpass-expired": "Istekla Vam je valjanost zaporke. Molimo Vas, potvrdite novu zaporku za prijavu.",
-       "resetpass-expired-soft": "Istekla vam je valjanost zaporke i trebate ju promijeniti. Molimo odaberite novu zaporku ili pritisnite na \"{{int:resetpass-submit-cancel}}\", za kasniju promjenu.",
-       "resetpass-validity-soft": "Zaporka Vam ne vrijedi: $1\n\nMolimo odaberite novu zaporku ili pritisnite na \"{{int:resetpass-submit-cancel}}\", za kasniju promjenu.",
+       "resetpass-expired-soft": "Istekla vam je valjanost zaporke i trebate ju promijeniti. Molimo odaberite novu zaporku ili pritisnite na \"{{int:authprovider-resetpass-skip-label}}\", za kasniju promjenu.",
+       "resetpass-validity-soft": "Zaporka Vam ne vrijedi: $1\n\nMolimo odaberite novu zaporku ili pritisnite na \"{{int:authprovider-resetpass-skip-label}}\", za kasniju promjenu.",
        "passwordreset": "Ponovno postavi lozinku",
        "passwordreset-text-one": "Ispunite ovaj obrazac ako želite ponovno postaviti Vašu zaporku.",
        "passwordreset-text-many": "{{PLURAL:$1|Ispunite jedno od polja da biste dobili privremenu zaporku e-poštom.}}",
        "showdiff": "Prikaži promjene",
        "blankarticle": "<strong>Upozorenje:</strong> Stvorili ste stranicu koja je prazna.\nAko iznova pritisnete na \"{{int:savearticle}}\", stranica će biti stvorena bez ikakvog sadržaja.",
        "anoneditwarning": "<strong>Upozorenje:</strong> niste prijavljeni. Ako napravite uređivanje, Vaša IP adresa će biti javno vidljiva. Ako se <strong>[$1 prijavite]</strong> ili <strong>[$2 stvorite račun]</strong>, Vaša uređivanja će biti pridružena suradničkom imenu, zajedno s ostalim pogodnostima.",
-       "anonpreviewwarning": "''Niste prijavljeni. Spremanjem će Vaše IP adrese ostati zabilježene u starim izmjenama ove stranice.''",
+       "anonpreviewwarning": "<em>Niste prijavljeni. Spremanjem izmjena Vaša će IP adresa ostati zabilježena u povijesti uređivanja ove stranice.</em>",
        "missingsummary": "'''Podsjetnik:''' Niste unijeli sažetak promjena. Ako ponovno kliknete na \"Sačuvaj stranicu\", Vaše će promjene biti snimljene bez sažetka.",
        "selfredirect": "<strong>Upozorenje:</strong> Stvarate preusmjeravanje na isti članak.\nMožda ste izabrali pogrješnu odredišnu stranicu za preusmjeravanje ili uređujete pogrješnu stranicu.\nAko pritisnete na \"{{int:savearticle}}\" još jednom, preusmjeravanje će svejedno biti stvoreno.",
        "missingcommenttext": "Molim unesite sažetak.",
        "saveusergroups": "Snimi suradničke skupine",
        "userrights-groupsmember": "Član:",
        "userrights-groupsmember-auto": "Uključeni član:",
-       "userrights-groups-help": "Možete promijeniti skupine za ovog suradnika:\n* Označena kućica pokazuje skupinu kojoj suradnik pripada.\n* Neoznačena kućica pokazuje skupinu kojoj suradnik ne pripada.\n* Zvjezdica * označava skupinu koju ne možete ukloniti kad ju jednom dodate, ili obratno.",
+       "userrights-groups-help": "Možete promijeniti skupine za ovog suradnika:\n* označena kućica pokazuje skupinu kojoj suradnik pripada;\n* neoznačena kućica pokazuje skupinu kojoj suradnik ne pripada;\n* zvjezdica (*) označava skupinu koju ne možete ukloniti kad ju jednom dodate, ili obratno.",
        "userrights-reason": "Razlog:",
        "userrights-no-interwiki": "Nemate dopuštenje za uređivanje suradničkih prava na drugim wikijima.",
        "userrights-nodatabase": "Baza podataka $1 ne postoji ili nije lokalno dostupna.",
        "unusedimages": "Nekorištene slike",
        "wantedcategories": "Tražene kategorije",
        "wantedpages": "Tražene stranice",
+       "wantedpages-summary": "Niže je popis nepostojećih stranica s najviše poveznica prema njima, osim stranica koje imaju preusmjeravanje na njih. Cijeli popis nepostojećih stranica na koje postoje preusmjeravanja može se vidjeti na [[{{#special:BrokenRedirects}}|popisu]].",
        "wantedpages-badtitle": "Nevaljani naslov kao rezultat: $1",
        "wantedfiles": "Tražene datoteke",
        "wantedfiletext-cat": "Sljedeće datoteke se rabe ali ne postoje. Datoteke iz drugih izvora mogu biti navedene iako ne postoje. Takve datoteke će biti <del>izbrisane</del> s popisa. Osim toga, stranice koje sadrže nepostojeće datoteke popisane su [[:$1|ovdje]].",
        "sp-contributions-username": "IP adresa ili suradnik:",
        "sp-contributions-toponly": "Prikaži samo najnovije izmjene",
        "sp-contributions-newonly": "Pokaži samo stranice koje je suradnik započeo",
+       "sp-contributions-hideminor": "Sakrij manje izmjene",
        "sp-contributions-submit": "Traži",
        "whatlinkshere": "Što vodi ovamo",
        "whatlinkshere-title": "Stranice koje vode na \"$1\"",
        "allmessagesname": "Ime",
        "allmessagesdefault": "Prvotni tekst",
        "allmessagescurrent": "Trenutačni tekst",
-       "allmessagestext": "Ovo je popis svih sistemskih poruka u imenskom prostoru MediaWiki. Molimo posjetite [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation lokalizaciju MediaWikija] i [//translatewiki.net translatewiki.net] ako želite doprinijeti lokalizaciji MediaWiki softvera.",
+       "allmessagestext": "Ovo je popis svih sistemskih poruka u imenskom prostoru MediaWiki. Molimo posjetite [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation lokalizaciju MediaWikija] i [https://translatewiki.net translatewiki.net] ako želite doprinijeti lokalizaciji MediaWiki softvera.",
        "allmessagesnotsupportedDB": "Ova stranica ne može biti korištena jer je isključen parametar '''$wgUseDatabaseMessages'''.",
        "allmessages-filter-legend": "Filtriraj",
        "allmessages-filter": "Filtriraj prema prilagođenom obliku:",
        "svg-long-error": "Nevaljana SVG datoteka: $1",
        "show-big-image": "Vidi sliku u punoj veličini",
        "show-big-image-preview": "Veličina ovog prikaza: $1.",
+       "show-big-image-preview-differ": "Veličina ovog $3 prikaza ove $2 datoteke: $1.",
        "show-big-image-other": "{{PLURAL:$2|Druga rezolucija|Ostale rezolucije}}: $1.",
        "show-big-image-size": "$1 × $2 piksela",
        "file-info-gif-looped": "animacija se ponavlja",
        "mw-widgets-dateinput-placeholder-month": "GGGG-MM",
        "mw-widgets-titleinput-description-new-page": "stranica još ne postoji",
        "mw-widgets-titleinput-description-redirect": "preusmjeravanje na $1",
+       "log-action-filter-newusers": "Način stvaranja računa:",
        "log-action-filter-upload": "Vrsta postavljanja:",
        "log-action-filter-all": "sve",
+       "log-action-filter-newusers-create": "stvorio anonimni suradnik",
+       "log-action-filter-newusers-create2": "stvorio registrirani suradnik",
+       "log-action-filter-newusers-autocreate": "automatski stvoren",
+       "log-action-filter-newusers-byemail": "stvoren lozinkom poslanom na e-poštu",
        "log-action-filter-upload-upload": "novo postavljanje",
        "log-action-filter-upload-overwrite": "ponovno postavljanje"
 }
index ab79a03..70d984b 100644 (file)
        "protectedpagetext": "Die Seit woard geschützt, um Beoorbeitunge sowie annre Aktione zu verhinnre.",
        "viewsourcetext": "Du kannst den Quelltext von der Seit betrachte und kopiere:",
        "viewyourtext": "Du kannst den Quelltext '''deiner Beoorbeitung''' von der Seit betrachte und kopiere:",
-       "protectedinterface": "Dies Seit enthält Text für die Benutzerowerfläch von der Software uff dem Wiki und ist geschützt, um Missbrauch voarzubeiche.\nNutz bittschön [//translatewiki.net/ translatewiki.net], das Lokalisierungsprojekt von MediaWiki, um Üwersetzungen für alle Wikis hinzuzufüche orrer zu ännre.",
-       "editinginterface": "'''Warnung:''' Die Seit enthält von der MediaWiki-Software genutzte Text.\nÄnnrunge uff der Seit wirreke sich uff die Benutzerowerfläch von das Wikis aus.\nNutze bittschön [//translatewiki.net/ translatewiki.net], das Lokalisierungsprojekt von MediaWiki, um Üwersetzunge für all Wikis hinzuzufüche orrer zu ännre.",
+       "protectedinterface": "Dies Seit enthält Text für die Benutzerowerfläch von der Software uff dem Wiki und ist geschützt, um Missbrauch voarzubeiche.\nNutz bittschön [https://translatewiki.net/ translatewiki.net], das Lokalisierungsprojekt von MediaWiki, um Üwersetzungen für alle Wikis hinzuzufüche orrer zu ännre.",
+       "editinginterface": "'''Warnung:''' Die Seit enthält von der MediaWiki-Software genutzte Text.\nÄnnrunge uff der Seit wirreke sich uff die Benutzerowerfläch von das Wikis aus.\nNutze bittschön [https://translatewiki.net/ translatewiki.net], das Lokalisierungsprojekt von MediaWiki, um Üwersetzunge für all Wikis hinzuzufüche orrer zu ännre.",
        "cascadeprotected": "Die Seit ist zur Beoorbeitung gesperrt. Sie ist in die {{PLURAL:$1|follichende Seit|follichende Seite}} ingebundt, wo mittels von der Kaskadesperroption geschützt {{PLURAL:$1|ist|sind}}:\n$2",
        "namespaceprotected": "Du host net die erforderliche Berechtichung, um Seite im Noomeraum '''$1''' beoorbeite zu könne.",
        "customcssprotected": "Du host net die Berechtichung, die CSS enthaltende Seite zu beoorbeite, weil sie die persönliche Einstellunge von en anner Benutzer enthält.",
        "resetpass-temp-password": "Temporäres Passwort:",
        "resetpass-abort-generic": "Die Passwortännrung woard doorrich en Erweitrung abgebroch.",
        "resetpass-expired": "Dein Passwort ist abgeloof. Bittschön leh en neies Passwort zur Oonmeldung fest.",
-       "resetpass-expired-soft": "Dein Passwort ist abgeloof und muss zurückgesetzt sin. Bittschön wähl jetzt en neies Passwort aus orrer klick uff \"{{int:resetpass-submit-cancel}}\", um das später zurückzusetze.",
-       "resetpass-validity-soft": "Dein Passwort ist net gültich: $1\n\nBittschön wähl jetzt en neies Passwort orrer klick uff „{{int:resetpass-submit-cancel}}“, um das später zurückzusetze.",
+       "resetpass-expired-soft": "Dein Passwort ist abgeloof und muss zurückgesetzt sin. Bittschön wähl jetzt en neies Passwort aus orrer klick uff \"{{int:authprovider-resetpass-skip-label}}\", um das später zurückzusetze.",
+       "resetpass-validity-soft": "Dein Passwort ist net gültich: $1\n\nBittschön wähl jetzt en neies Passwort orrer klick uff „{{int:authprovider-resetpass-skip-label}}“, um das später zurückzusetze.",
        "passwordreset": "Passwort zurücksetze",
        "passwordreset-text-one": "Füll das Formular aus, um den Passwort zurückzusetze.",
        "passwordreset-text-many": "{{PLURAL:$1|Füll en von der Felder aus, um en temporäres Passwort por E-Mail zugesandt zu bekomme.}}",
        "querypage-disabled": "Die Spezialseit woard aus Gründe von der Leistungserhaltung deaktiviert.",
        "apisandbox": "API-Spielwies",
        "apisandbox-api-disabled": "Die API woard uff dem Wiki deaktiviert.",
-       "apisandbox-intro": "Die Seit kannst du für Versuche mit der '''MediaWiki-API''' verwenne.\nDie [//www.mediawiki.org/wiki/API:Main_page/de Dokumentation zur API] enthält weitre Hinweise zu ihrer Nutzung. Beispiel: [//www.mediawiki.org/wiki/API:Main_page/de#Ein_einfaches_Beispiel Den Inhalt der Hauptseit abrufe]. Für weitre Beispiele en von der verfüchbare Aktione auswähle.\n\nObwohl das en Spielwies ist, bedenke, dass Aktione, wo du uff der Seit doorrichführst, das Wiki verännre.",
+       "apisandbox-intro": "Die Seit kannst du für Versuche mit der '''MediaWiki-API''' verwenne.\nDie [https://www.mediawiki.org/wiki/API:Main_page/de Dokumentation zur API] enthält weitre Hinweise zu ihrer Nutzung. Beispiel: [https://www.mediawiki.org/wiki/API:Main_page/de#Ein_einfaches_Beispiel Den Inhalt der Hauptseit abrufe]. Für weitre Beispiele en von der verfüchbare Aktione auswähle.\n\nObwohl das en Spielwies ist, bedenke, dass Aktione, wo du uff der Seit doorrichführst, das Wiki verännre.",
        "apisandbox-submit": "Oonfroch ausführe",
        "apisandbox-reset": "Leere",
        "apisandbox-examples": "Beispiel",
        "allmessagesname": "Noome",
        "allmessagesdefault": "Standardtext",
        "allmessagescurrent": "Aktueller Text",
-       "allmessagestext": "Das ist en List von der MediaWiki-Systemtexte.\nBittschön besuch die Seite [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki-Lokalisierung] und [//translatewiki.net translatewiki.net], soweit du dich an der Lokalisierung von MediaWiki beteiliche möchst.",
+       "allmessagestext": "Das ist en List von der MediaWiki-Systemtexte.\nBittschön besuch die Seite [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki-Lokalisierung] und [https://translatewiki.net translatewiki.net], soweit du dich an der Lokalisierung von MediaWiki beteiliche möchst.",
        "allmessagesnotsupportedDB": "Die Spezialseit steht net zur Verfüchung, weil sie üwer den Parameter <tt>$wgUseDatabaseMessages</tt> deaktiviert woard.",
        "allmessages-filter-legend": "Filter",
        "allmessages-filter": "Filter für oongepasst Zustand:",
index ac27ce7..11357f8 100644 (file)
        "protectedpagetext": "Tuta strona je přećiwo wobdźěłowanju abo druhim akcijam škitana.",
        "viewsourcetext": "Móžeš sej žórłowy tekst tuteje strony wobhladać a jón kopěrować:",
        "viewyourtext": "Móžeš sej žórłowy tekst '''swojich změnow''' wobhladać a do slědowaceje strony kopěrować:",
-       "protectedinterface": "Tuta strona wobsahuje tekst za wužiwarski powjerch softwary na tutym wikiju a je škitana, zo by so znjewužiwanje zadźěwało.\nZo by přełožki za wšě wikije přidał abo změnił, wužij prošu [//translatewiki.net/ translatewiki.net], projekt MediaWiki za lokalizaciju.",
+       "protectedinterface": "Tuta strona wobsahuje tekst za wužiwarski powjerch softwary na tutym wikiju a je škitana, zo by so znjewužiwanje zadźěwało.\nZo by přełožki za wšě wikije přidał abo změnił, wužij prošu [https://translatewiki.net/ translatewiki.net], projekt MediaWiki za lokalizaciju.",
        "editinginterface": "<strong>Warnowanje:</strong> Wobdźěłuješ stronu, kotraž so wužiwa, zo by tekst za wužiwarski powjerch softwary k dispoziciji stajiła. Změny na stronje  wuskutkuja so na napohlad wužiwarskeho powjercha za druhich wužiwarjow na tutym wikiju.",
-       "translateinterface": "Zo by přełožki za wšě wikije přidał abo změnił, wužiwajće prošu [//translatewiki.net/ translatewiki.net], lokalizaciski projekt MediaWiki.",
+       "translateinterface": "Zo by přełožki za wšě wikije přidał abo změnił, wužiwajće prošu [https://translatewiki.net/ translatewiki.net], lokalizaciski projekt MediaWiki.",
        "cascadeprotected": "Tuta strona je za wobdźěłowanje zawrjena, dokelž je w {{PLURAL:$1|slědowacej stronje|slědowacymaj stronomaj|slědowacych stronach|slědowacych stronach}} zapřijata, {{PLURAL:$1|kotraž je|kotrejž stej|kotrež su|kotrež su}} přez kaskadowu opciju {{PLURAL:$1|škitana|škitanej|škitane|škitane}}:\n$2",
        "namespaceprotected": "Nimaš dowolnosć, zo by stronu w mjenowym rumje '''$1''' wobdźěłał.",
        "customcssprotected": "Nimaš prawo, zo by tutu CSS-stronu wobdźěłał, dokelž wosobinske nastajenja druheho wužiwarja wobsahuje.",
        "resetpass-temp-password": "Nachwilne hesło:",
        "resetpass-abort-generic": "Měnjenje hesła je so přez rozšěrjenje přetorhnyło.",
        "resetpass-expired": "Twoje hesło je spadnyło. Prošu postaj nowe hesło za přizjewjenje.",
-       "resetpass-expired-soft": "Twoje hesło je spadnyło a dyrbi so wróćo stajić. Prošu wubjer nětko druhe hesło abo klikń na \"{{int:resetpass-submit-cancel}}\", zo by jo pozdźišo wróćo stajił.",
-       "resetpass-validity-soft": "Waše hesło płaćiwe njeje: $1\n\nProšu wubjer nětko nowe hesło abo klikń na \"{{int:resetpass-submit-cancel}}\", zo by jo pozdźišo wróćo stajił.",
+       "resetpass-expired-soft": "Twoje hesło je spadnyło a dyrbi so wróćo stajić. Prošu wubjer nětko druhe hesło abo klikń na \"{{int:authprovider-resetpass-skip-label}}\", zo by jo pozdźišo wróćo stajił.",
+       "resetpass-validity-soft": "Waše hesło płaćiwe njeje: $1\n\nProšu wubjer nětko nowe hesło abo klikń na \"{{int:authprovider-resetpass-skip-label}}\", zo by jo pozdźišo wróćo stajił.",
        "passwordreset": "Hesło wróćo stajić",
        "passwordreset-text-one": "Wupjelń tutón formular, zo by swoje hesło anulował.",
        "passwordreset-text-many": "{{PLURAL:$1|Wupjelń jedne z polow, zo by nachwilne hesło přez e-mejl dóstał.}}",
        "apihelp-no-such-module": "Modul \"$1\" njeje so namakał.",
        "apisandbox": "API-hrajkanišćo",
        "apisandbox-api-disabled": "API je so na tutym sydle znjemóžnił.",
-       "apisandbox-intro": "Wužij tutu stronu, zo by z '''websłužbu Mediawiki API''' eksperimentował.\nHlej [//www.mediawiki.org/wiki/API:Main_page API-dokumentaciju] za dalše podrobnosće za wužiwanje API. Přikład: [//www.mediawiki.org/wiki/API#A_simple_example Wobsah hłowneje strony wotwołać]. Wubjer akciju, zo by dalše přikłady widźał.\n\nDźiwaj na to, zo, hačrunjež to je hrajkanišćo, akcije, kotrež na tutej stronje přewjedźeš, móhli wiki změnić.",
+       "apisandbox-intro": "Wužij tutu stronu, zo by z '''websłužbu Mediawiki API''' eksperimentował.\nHlej [https://www.mediawiki.org/wiki/API:Main_page API-dokumentaciju] za dalše podrobnosće za wužiwanje API. Přikład: [https://www.mediawiki.org/wiki/API#A_simple_example Wobsah hłowneje strony wotwołać]. Wubjer akciju, zo by dalše přikłady widźał.\n\nDźiwaj na to, zo, hačrunjež to je hrajkanišćo, akcije, kotrež na tutej stronje přewjedźeš, móhli wiki změnić.",
        "apisandbox-submit": "Naprašowanje přewjesć",
        "apisandbox-reset": "Wuprózdnić",
        "apisandbox-examples": "Přikład",
        "allmessagesname": "Mjeno",
        "allmessagesdefault": "Standardny tekst",
        "allmessagescurrent": "Aktualny tekst",
-       "allmessagestext": "To je lisćina systemowych zdźělenkow, kotrež w mjenowym rumje MediaWiki k dispoziciji steja. Prošu wopytaj [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation lokalizaciju MediaWiki] a [//translatewiki.net translatewiki.net], jeli chceš k powšitkownej lokalizaciji MediaWiki přinošować.",
+       "allmessagestext": "To je lisćina systemowych zdźělenkow, kotrež w mjenowym rumje MediaWiki k dispoziciji steja. Prošu wopytaj [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation lokalizaciju MediaWiki] a [https://translatewiki.net translatewiki.net], jeli chceš k powšitkownej lokalizaciji MediaWiki přinošować.",
        "allmessagesnotsupportedDB": "Tuta strona njeda so wužiwać, dokelž '''$wgUseDatabaseMessages''' bu znjemóžnjeny.",
        "allmessages-filter-legend": "Filter",
        "allmessages-filter": "Po přiměrjenskim stawje filtrować:",
index 193b5bb..722d650 100644 (file)
        "protectedpagetext": "Paj sa pwoteje pou anpeche tout modifikasyon nou ta kapab fè sou li. Gade paj diskisyon sou li pito.",
        "viewsourcetext": "Ou kapab gade epitou modifye kontni atik sa a pou ou travay anlè li :",
        "protectedinterface": "Paj sa ap bay tèks pou entèfas lojisyèl an e li pwoteje pou anpeche move itilizasyon nou ta kapab fè ak li.",
-       "editinginterface": "'''Pòte atansyon :''' ou ap modifye yon paj ki itilize nan kreyasyon tèks entèfas lojisyèl an. Chanjman yo ap ritounen, li ap depann de kèk sityasyon, nan tout paj ke lòt itilizatè yo kapab wè tou. Pou tradiksyon yo, nap envite w itilize pwojè MediaWiki pou mesaj entènasyonal yo (tradiksyon) nan paj sa [//translatewiki.net/wiki/Main_Page?setlang=fr translatewiki.net].",
+       "editinginterface": "'''Pòte atansyon :''' ou ap modifye yon paj ki itilize nan kreyasyon tèks entèfas lojisyèl an. Chanjman yo ap ritounen, li ap depann de kèk sityasyon, nan tout paj ke lòt itilizatè yo kapab wè tou. Pou tradiksyon yo, nap envite w itilize pwojè MediaWiki pou mesaj entènasyonal yo (tradiksyon) nan paj sa [https://translatewiki.net/wiki/Main_Page?setlang=fr translatewiki.net].",
        "cascadeprotected": "Paj sa pwoteje kounye a paske l nan {{PLURAL:$1|paj ki douvan l|paj yo ki douvan l}}, paske {{PLURAL:$1|l te pwoteje|yo te pwoteje}} ak opsyon « pwoteksyon pou tout paj ki nan premye paj an - kaskad » aktive :\n$2",
        "namespaceprotected": "Ou pa gen dwa modifye paj nan espas non « '''$1''' ».",
        "ns-specialprotected": "Paj yo ki nan espas non « {{ns:special}} » pa kapab modifye.",
index ec08c26..2bbaebe 100644 (file)
        "december-date": "December $1",
        "period-am": "de.",
        "period-pm": "du.",
-       "pagecategories": "{{PLURAL:$1|Kategória|Kategóriák}}",
+       "pagecategories": "{{PLURAL:$1|Kategória|Kategória}}",
        "category_header": "A(z) „$1” kategóriába tartozó lapok",
        "subcategories": "Alkategóriák",
        "category-media-header": "A(z) „$1” kategóriába tartozó médiafájlok",
        "viewyourtext": "Megtekintheted és kimásolhatod a <strong>saját szerkesztéseidet</strong> az alábbi lapra.",
        "protectedinterface": "Ez a lap a szoftver felületéhez szolgáltat szöveget, és a visszaélések elkerülése miatt le van zárva.",
        "editinginterface": "<strong>Vigyázat:</strong> egy olyan lapot szerkesztesz, ami a MediaWiki szoftver felületéhez tartozik. A lap megváltoztatása hatással lesz a kinézetre, ahogy más szerkesztők látják a lapot.",
-       "translateinterface": "Minden wikire kiterjedő fordítások hozzáadásához vagy szerkesztésére használd a [//translatewiki.net/ translatewiki.net]-et, a MédiaWiki lokalizációs projektjét.",
+       "translateinterface": "Minden wikire kiterjedő fordítások hozzáadásához vagy szerkesztésére használd a [https://translatewiki.net/ translatewiki.net]-et, a MédiaWiki lokalizációs projektjét.",
        "cascadeprotected": "Ez a lap szerkesztés elleni védelemmel lett ellátva, mert be van illesztve a következő {{PLURAL:$1|lapon|lapokon}}, ahol be van kapcsolva a „kaszkádolt” védelem:\n$2",
        "namespaceprotected": "Nincs jogosultságod a(z) '''$1''' névtérben található lapok szerkesztésére.",
        "customcssprotected": "Nem szerkesztheted ezt a CSS-lapot, mert egy másik felhasználó személyes beállításait tartalmazza.",
        "createacct-another-realname-tip": "A valódi nevet nem kötelező megadni, de ha úgy döntesz, hogy megadod, azzal leszel feltüntetve a munkád szerzőjeként.",
        "pt-login": "Bejelentkezés",
        "pt-login-button": "Bejelentkezés",
+       "pt-login-continue-button": "Bejelentkezés folytatása",
        "pt-createaccount": "Fiók létrehozása",
        "pt-userlogout": "Kijelentkezés",
        "php-mail-error-unknown": "Ismeretlen hiba a PHP mail() függvényében",
        "resetpass-temp-password": "Ideiglenes jelszó:",
        "resetpass-abort-generic": "A jelszómódosítást megszakította egy kiterjesztés.",
        "resetpass-expired": "A jelszavad lejárt. Adjál meg egy új jelszót a bejelentkezéshez!",
-       "resetpass-expired-soft": "A jelszavad lejárt, ezért újat kell beállítanod. Válassz most egy új jelszót, vagy kattints a {{int:resetpass-submit-cancel}} gombra, ha később akarod csak beállítani.",
-       "resetpass-validity-soft": "Adj meg egy új jelszót most, vagy kattints a \"{{int:resetpass-submit-cancel}}\" gombra, ha később akarod megadni.",
+       "resetpass-expired-soft": "A jelszavad lejárt, ezért újat kell beállítanod. Válassz most egy új jelszót, vagy kattints a {{int:authprovider-resetpass-skip-label}} gombra, ha később akarod csak beállítani.",
+       "resetpass-validity-soft": "Adj meg egy új jelszót most, vagy kattints a \"{{int:authprovider-resetpass-skip-label}}\" gombra, ha később akarod megadni.",
        "passwordreset": "Jelszó visszaállítása",
        "passwordreset-text-one": "A jelszó átmeneti beállításához töltsd ki az űrlapot.",
        "passwordreset-text-many": "{{PLURAL:$1|Az átmeneti jelszó elküldéséhez töltsd ki az alábbi mezők egyikét.}}",
        "passwordreset-emailsentusername": "Ha ehhez a felhasználónévhez tartozik e-mail cím, akkor egy jelszó-visszaállító levelet küld a rendszer.",
        "passwordreset-emailsent-capture": "Az alább látható jelszó-visszaállító e-mail lett elküldve.",
        "passwordreset-emailerror-capture": "A jelszó-visszaállító e-mail generálása megtörtént, mint az alább látszik, de elküldése a {{GENDER:$2|szerkesztőnek}} nem sikerült: $1",
+       "passwordreset-invalideamil": "Érvénytelen e-mail cím",
        "changeemail": "E-mail cím megváltoztatása vagy eltávolítása",
        "changeemail-header": "Töltsd ki ezt az űrlapot az e-mail-címed megváltoztatásához. Ha nem szeretnél semmilyen e-mail-címet kapcsolni a fiókodhoz, hagyd üresen az új e-mail-cím mezőjét az űrlap elküldésekor.",
        "changeemail-passwordrequired": "Meg kell adnod a jelszavadat ennek a változtatásnak a végrehajtásához.",
        "minoredit": "Apró változtatás",
        "watchthis": "A lap figyelése",
        "savearticle": "Lap mentése",
+       "publishpage": "Lap mentése",
        "preview": "Előnézet",
        "showpreview": "Előnézet megtekintése",
        "showdiff": "Változtatások megtekintése",
        "content-model-css": "CSS",
        "content-json-empty-object": "Üres objektum",
        "content-json-empty-array": "Üres tömb",
+       "deprecated-self-close-category": "Érvénytelen önzáró HTML-címkéket használó lapok",
        "duplicate-args-warning": "<strong>Figyelmeztetés:</strong> A(z) [[:$1]] lap dupla értékkel hívja meg a(z) [[:$2]] sablont („$3” paraméter). Csak az utolsó érték lesz felhasználva.",
        "duplicate-args-category": "Dupla paramétermegadást tartalmazó lapok",
        "duplicate-args-category-desc": "Az oldal olyan sablon hívásokat tartalmaz, amely ugyanazt a paramétert használja, például <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> or <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "right-managechangetags": "[[Special:Tags|címkék]] létrehozása és törlése az adatbázisban",
        "right-applychangetags": "[[Special:Tags|címkék]] alkalmazása a változakra",
        "right-changetags": "egyedi lapváltozatokon és naplóbejegyzéseken tetszőleges [[Special:Tags|címkék]] hozzáadása és törlése",
+       "right-deletechangetags": "[[Special:Tags|Címkék]] törlése az adatbázisból",
        "grant-generic": "„$1” jogosultságcsomag",
        "grant-group-page-interaction": "interakció lapokkal",
        "grant-group-file-interaction": "interakció médiával",
        "action-managechangetags": "adatbázis címkék létrehozása és törlése",
        "action-applychangetags": "változtatások címkézése",
        "action-changetags": "egyedi változtatások és napló bejegyzések tetszőleges címkével való ellátása és törlése",
+       "action-deletechangetags": "címkék törlése az adatbáziból",
        "nchanges": "$1 változtatás",
        "enhancedrc-since-last-visit": "$1 az utolsó látogatás óta",
        "enhancedrc-history": "történet",
        "recentchangeslinked-page": "Lap neve:",
        "recentchangeslinked-to": "Inkább az erre linkelő lapok változtatásait mutasd",
        "recentchanges-page-added-to-category": "[[:$1]] hozzáadva a kategóriához",
-       "recentchanges-page-added-to-category-bundled": "[[:$1]] és [[Special:WhatLinksHere/$1|{{PLURAL:$2|egy oldal|$2 oldal}}]] hozzáadva a kategóriához",
+       "recentchanges-page-added-to-category-bundled": "[[:$1]] hozzáadva a kategóriához, [[Special:WhatLinksHere/$1|ez a lap be van illesztve más lapokra]]",
        "recentchanges-page-removed-from-category": "[[:$1]] eltávolítva a kategóriából",
        "recentchanges-page-removed-from-category-bundled": "[[:$1]] és {{PLURAL:$2|egy oldal|$2 oldal}} eltávolítva a kategóriából",
        "upload": "Fájl feltöltése",
        "apisandbox": "API homokozó",
        "apisandbox-jsonly": "Az API-homokozó használatához JavaScriptre van szükség.",
        "apisandbox-api-disabled": "API le van tiltva ezen az oldalon.",
-       "apisandbox-intro": "Ezen az oldalon kísérletezhetsz a <strong>MediaWiki web service API</strong>-val.\nA használattal kapcsolatos további részletek az [[mw:API:Main page|API-dokumentációnál]] találhatók. Példa: [//www.mediawiki.org/wiki/API#A_simple_example olvasd el a főoldal tartalomjegyzékét]. További példákért válassz egy tevékenységet!\n\nFigyelj rá, hogy bár ez csak egy „homokozó”, ettől még az általad végzett műveletek módosíthatják a wikit!",
+       "apisandbox-intro": "Ezen az oldalon kísérletezhetsz a <strong>MediaWiki web service API</strong>-val.\nA használattal kapcsolatos további részletek az [[mw:API:Main page|API-dokumentációnál]] találhatók. Példa: [https://www.mediawiki.org/wiki/API#A_simple_example olvasd el a főoldal tartalomjegyzékét]. További példákért válassz egy tevékenységet!\n\nFigyelj rá, hogy bár ez csak egy „homokozó”, ettől még az általad végzett műveletek módosíthatják a wikit!",
        "apisandbox-fullscreen": "Panel kinyitása",
        "apisandbox-unfullscreen": "Lap mutatása",
        "apisandbox-submit": "Kérés végrehajtása",
        "sp-contributions-username": "IP-cím vagy felhasználónév:",
        "sp-contributions-toponly": "Csak a jelenleg utolsónak számító változtatásokat mutassa",
        "sp-contributions-newonly": "Csak az új oldalt létrehozó szerkesztéseket mutassa",
+       "sp-contributions-hideminor": "Apró szerkesztések elrejtése",
        "sp-contributions-submit": "Keresés",
        "whatlinkshere": "Mi hivatkozik erre",
        "whatlinkshere-title": "A(z) „$1” lapra hivatkozó lapok",
        "lockdbsuccesstext": "Az adatbázist zárolták.\n<br />A karbantartás befejezése után ne feledd el [[Special:UnlockDB|kinyitni]].",
        "unlockdbsuccesstext": "Az adatbázis kinyitása kész.",
        "lockfilenotwritable": "Az adatbázist zároló fájl nem írható. Az adatbázis zárolásához vagy kinyitásához ennek a webkiszolgáló által írhatónak kell lennie.",
+       "databaselocked": "Az adatbázis már le van zárva.",
        "databasenotlocked": "Az adatbázis nincs lezárva.",
        "lockedbyandtime": "($1 zárta le $2 $3-kor)",
        "move-page": "$1 átnevezése",
        "allmessagesname": "Név",
        "allmessagesdefault": "Alapértelmezett szöveg",
        "allmessagescurrent": "Jelenlegi szöveg",
-       "allmessagestext": "Ezen a lapon a MediaWiki-névtérben elérhető rendszerüzenetek listája látható.\nHa részt szeretnél venni a MediaWiki fordításában, látogass el a [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation], valamint a [//translatewiki.net translatewiki.net] oldalra.",
+       "allmessagestext": "Ezen a lapon a MediaWiki-névtérben elérhető rendszerüzenetek listája látható.\nHa részt szeretnél venni a MediaWiki fordításában, látogass el a [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation], valamint a [https://translatewiki.net translatewiki.net] oldalra.",
        "allmessagesnotsupportedDB": "A '''''{{ns:special}}:Allmessages''''' lap nem használható, mert a '''$wgUseDatabaseMessages''' ki van kapcsolva.",
        "allmessages-filter-legend": "Elemek szűrése",
        "allmessages-filter": "Módosítás állapota:",
        "tooltip-ca-nstab-category": "A kategória megtekintése",
        "tooltip-minoredit": "A szerkesztés megjelölése apróként",
        "tooltip-save": "A változtatásaid elmentése",
+       "tooltip-publish": "Változtatásaid közzététele",
        "tooltip-preview": "Mielőtt elmentenéd a lapot, ellenőrizd, biztosan úgy néz-e ki, ahogy szeretnéd!",
        "tooltip-diff": "Nézd meg, milyen változtatásokat végeztél eddig a szövegen",
        "tooltip-compareselectedversions": "A két kiválasztott változat közötti eltérések megjelenítése",
        "confirmemail_success": "Az e-mail címed megerősítve. Most már beléphetsz a wikibe.",
        "confirmemail_loggedin": "E-mail címed megerősítve.",
        "confirmemail_subject": "{{SITENAME}} e-mail cím megerősítés",
-       "confirmemail_body": "Valaki, valószínűleg te, ezzel az e-mail címmel regisztrált\n„$2” néven a(z) {{SITENAME}} wikin, a(z) $1 IP-címről.\n\nAnnak érdekében, hogy megerősítsd, ez az azonosító valóban hozzád tartozik,\nés hogy aktiváld az e-mail címedet, nyisd meg az alábbi linket a böngésződben:\n\n$3\n\nHa ez *nem* te vagy, kattints erre a linkre az\ne-mail cím megerősíthetőségének visszavonásához:\n\n$5\n\nA megerősítésre szánt kód felhasználhatósági idejének lejárata: $4.",
+       "confirmemail_body": "Valaki, valószínűleg te, ezzel az e-mail-címmel regisztrált\n„$2” néven a(z) {{SITENAME}} wikin, a(z) $1 IP-címről.\n\nAnnak érdekében, hogy megerősítsd, ez az azonosító valóban hozzád tartozik,\nés aktiváld az e-mail-címedet, nyisd meg az alábbi linket a böngésződben:\n\n$3\n\nHa ez *nem* te vagy, kattints erre a linkre az\ne-mail-cím megerősíthetőségének visszavonásához:\n\n$5\n\nA megerősítésre szánt kód felhasználhatósági idejének lejárata: $4.",
        "confirmemail_body_changed": "Valaki (vélhetően te, a(z) $1 IP-címről) megváltoztatta a(z) „$2” felhasználói fiók email címét a {{SITENAME}} wikin erre a címre.\n\nAnnak érdekében, hogy megerősítsd, ez az azonosító valóban hozzád tartozik,\nés hogy újra aktiváld az e-mail címedet, nyisd meg az alábbi linket a böngésződben:\n\n$3\n\nHa ez *nem* te vagy, kattints erre a linkre az\ne-mail cím megerősíthetőségének visszavonásához:\n\n$5\n\nA megerősítésre szánt kód felhasználhatósági idejének lejárata: $4.",
        "confirmemail_body_set": "Valaki, valószínűleg te, ezt az email címet adta meg\n„$2” nevű {{SITENAME}}-fiókjához a következő IP-címről: $1.\n\nHa meg szeretnéd erősíteni, hogy a fiók valóban hozzád tartozik, így aktiválva a(z) {{SITENAME}} e-mailes funkcióit, nyisd meg az alábbi linket a böngésződben:\n\n$3\n\nHa a fiók *nem* hozzád tartozik, kövesd az alábbi linket a\nmegerősítés visszavonásához:\n\n$5\n\nEz a megerősítő e-mail $4-ig érvényes.",
        "confirmemail_invalidated": "E-mail-cím megerősíthetősége visszavonva",
        "confirm-watch-top": "Hozzá szeretnéd adni a lapot a figyelőlistádhoz?",
        "confirm-unwatch-button": "OK",
        "confirm-unwatch-top": "El szeretnéd távolítani a lapot a figyelőlistádról?",
+       "confirm-rollback-button": "OK",
+       "confirm-rollback-top": "Visszavonod a változtatásokat?",
        "ellipsis": "…",
        "quotation-marks": "„$1”",
        "imgmultipageprev": "← előző oldal",
        "searchsuggest-containing": "tartalmazza…",
        "api-error-badaccess-groups": "Nincs jogod fájlokat feltölteni erre a wikire.",
        "api-error-badtoken": "Belső hiba: hibás token.",
+       "api-error-blocked": "Letiltották a szerkesztési jogosultságodat.",
        "api-error-copyuploaddisabled": "Az URL-címes feltöltés nem engedélyezett ezen a kiszolgálón.",
        "api-error-duplicate": "Már van {{PLURAL:$1|egy|néhány}} másik fájl az oldalon ugyanilyen tartalommal.",
        "api-error-duplicate-archive": "Az oldalon {{PLURAL:$1|szerepelt|szerepeltek}} más {{PLURAL:$1|fájl|fájlok}} is ugyanezzel a tartalommal, de törölve {{PLURAL:$1|lett|lettek}}.",
        "mw-widgets-dateinput-placeholder-month": "ÉÉÉÉ-HH",
        "mw-widgets-titleinput-description-new-page": "a lap még nem létezik",
        "mw-widgets-titleinput-description-redirect": "átirányítás ide: $1",
-       "api-error-blacklisted": "Válasszon egy másik, leíró címet.",
        "sessionprovider-generic": "$1-munkamenetek",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "sütialapú munkamenetek",
        "sessionprovider-nocookies": "A sütik le lehetnek tiltva. Engedélyezd a sütiket, és próbáld meg újra!",
        "randomrootpage": "Véletlen lap a gyökérből",
+       "log-action-filter-block": "Blokk típusa:",
        "log-action-filter-delete": "Törlés típusa:",
        "log-action-filter-import": "Importálás típusa:",
+       "log-action-filter-move": "Átnevezés típusa:",
+       "log-action-filter-patrol": "Járőrözés típusa:",
+       "log-action-filter-protect": "Lapvédelem típusa:",
        "log-action-filter-all": "Mind",
        "log-action-filter-block-block": "Blokk",
        "log-action-filter-block-reblock": "Blokk módosítása",
        "log-action-filter-block-unblock": "Blokk feloldása",
+       "log-action-filter-delete-delete": "Laptörlés",
+       "log-action-filter-delete-restore": "Visszaállítás",
+       "log-action-filter-delete-event": "Naplótörlés",
        "log-action-filter-newusers-autocreate": "Automatikus létrehozás",
        "log-action-filter-protect-protect": "Lapvédelem",
        "log-action-filter-protect-unprotect": "Védelem feloldása",
-       "log-action-filter-upload-upload": "Új feltöltés"
+       "log-action-filter-upload-upload": "Új feltöltés",
+       "authprovider-resetpass-skip-label": "Kihagy",
+       "cannotauth-not-allowed-title": "Engedély megtagadva",
+       "credentialsform-account": "Fiók neve:"
 }
index 20a247b..a94a60a 100644 (file)
        "protectedpagetext": "Այս էջը պաշտպանված է խմբագումներից։",
        "viewsourcetext": "Դուք կարող եք դիտել և պատճենել այս էջի ելատեքստը.",
        "viewyourtext": "Դուք կարող եք դիտել և պատճենել <strong>ձեր խմբագրումների</strong> ելատեքստը այդ էջում։",
-       "protectedinterface": "Այս էջը պարունակում է ծրագրային ապահովման միջերեսի տեքստ, և պաշտպանված է չարաշահումների կանխարգելման նպատակով։\nԲոլոր վիքիների թարգմանությունները փոփոխելու կամ ավելացնելու համար, խնդրում ենք այցելել ՄեդիաՎիքիի տեղայնացման նախագիծը՝ [//translatewiki.net/ translatewiki.net]։",
-       "editinginterface": "'''Ուշադրություն՝''' Դուք խմբագրում եք ծրագրային ապահովման միջերեսի տեքստ պարունակող էջ։\nԱյս էջի փոփոխությունը կանդրադառնա այլ մասնակիցներին տեսանելի միջերեսը այս վիքիի վրա։\nԹարգմանությունների համար նախընտրելի է օգտագործել [//translatewiki.net/wiki/Main_Page?setlang=hy translatewiki.net]՝ Մեդիավիքի ծրագրի տեղայնացման նախագիծը։",
+       "protectedinterface": "Այս էջը պարունակում է ծրագրային ապահովման միջերեսի տեքստ, և պաշտպանված է չարաշահումների կանխարգելման նպատակով։\nԲոլոր վիքիների թարգմանությունները փոփոխելու կամ ավելացնելու համար, խնդրում ենք այցելել ՄեդիաՎիքիի տեղայնացման նախագիծը՝ [https://translatewiki.net/ translatewiki.net]։",
+       "editinginterface": "'''Ուշադրություն՝''' Դուք խմբագրում եք ծրագրային ապահովման միջերեսի տեքստ պարունակող էջ։\nԱյս էջի փոփոխությունը կանդրադառնա այլ մասնակիցներին տեսանելի միջերեսը այս վիքիի վրա։\nԹարգմանությունների համար նախընտրելի է օգտագործել [https://translatewiki.net/wiki/Main_Page?setlang=hy translatewiki.net]՝ Մեդիավիքի ծրագրի տեղայնացման նախագիծը։",
        "cascadeprotected": "Այս էջը պաշտպանված է խմբագրումից, քանի որ ընդգրկված է հետևյալ {{PLURAL:$1|էջի|էջերի}} տեքստում, {{PLURAL:$1|որը|որոնք}} պաշտպանվել {{PLURAL:$1|է|են}} կասկադային պաշտպանությամբ.\n$2",
        "namespaceprotected": "Դուք չունեք «$1» անվանատարածքի էջերի խմբագրման իրավունք։",
        "customcssprotected": "Դուք չեք կարող խմբագրել այս CSS էջը, քանի որ այն պարունակում է այլ մասնակցի անձնական նախընտրանքներ։",
        "allmessagesname": "Անուն",
        "allmessagesdefault": "Ուղերձի լռելյայն տեքստ",
        "allmessagescurrent": "Ընթացիկ տեքստ",
-       "allmessagestext": "Ստորև բերված է «MediaWiki» անվանատարածքի բոլոր համակարգային ուղերձների ցանկը։\nPlease visit [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] and [//translatewiki.net translatewiki.net] if you wish to contribute to the generic MediaWiki localisation.",
+       "allmessagestext": "Ստորև բերված է «MediaWiki» անվանատարածքի բոլոր համակարգային ուղերձների ցանկը։\nPlease visit [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] and [https://translatewiki.net translatewiki.net] if you wish to contribute to the generic MediaWiki localisation.",
        "allmessagesnotsupportedDB": "Այս էջը չի գործում, քանի որ '''$wgUseDatabaseMessages''' հատկանիշը անջատված է։",
        "allmessages-filter-all": "Բոլորը",
        "allmessages-language": "Լեզու",
index edbaa7d..655058d 100644 (file)
        "protectedpagetext": "Iste pagina ha essite protegite pro impedir le modification o altere actiones.",
        "viewsourcetext": "Tu pote vider e copiar le codice-fonte de iste pagina.",
        "viewyourtext": "Tu pote vider e copiar le fonte de <strong>tu modificationes</strong> de iste pagina.",
-       "protectedinterface": "Iste pagina contine texto pro le interfacie del software de iste wiki, e es protegite pro impedir le abuso. Pro adder o modificar traductiones pro tote le wikis, per favor usa [//translatewiki.net/ translatewiki.net], le projecto de traduction de MediaWiki.",
+       "protectedinterface": "Iste pagina contine texto pro le interfacie del software de iste wiki, e es protegite pro impedir le abuso. Pro adder o modificar traductiones pro tote le wikis, per favor usa [https://translatewiki.net/ translatewiki.net], le projecto de traduction de MediaWiki.",
        "editinginterface": "<strong>Attention:</strong> Le texto de iste pagina face parte del interfacie pro le software.\nOmne modification apportate a iste pagina cambiara le apparentia del interfacie pro altere usatores de iste wiki.",
-       "translateinterface": "Pro adder o modificar traductiones pro tote le wikis, per favor usa [//translatewiki.net/ translatewiki.net], le projecto de localisation de MediaWiki.",
+       "translateinterface": "Pro adder o modificar traductiones pro tote le wikis, per favor usa [https://translatewiki.net/ translatewiki.net], le projecto de localisation de MediaWiki.",
        "cascadeprotected": "Iste pagina ha essite protegite contra modificationes perque illo es transcludite in le sequente {{PLURAL:$1|pagina, le qual|paginas, le quales}} es protegite usante le option \"cascada\":\n$2",
        "namespaceprotected": "Tu non ha le permission de modificar paginas in le spatio de nomines '''$1'''.",
        "customcssprotected": "Tu non ha le permission de modificar iste pagina de CSS perque illo contine le configuration personal de un altere usator.",
        "resetpass-temp-password": "Contrasigno temporari:",
        "resetpass-abort-generic": "Le cambio del contrasigno ha essite abortate per un extension.",
        "resetpass-expired": "Le contrasigno ha expirate. Per favor defini un nove contrasigno pro aperir session.",
-       "resetpass-expired-soft": "Le contrasigno ha expirate e debe esser redefinite. Per favor elige un nove contrasigno ora, o clicca sur \"{{int:resetpass-submit-cancel}}\" pro redefinir lo plus tarde.",
-       "resetpass-validity-soft": "Le contrasigno non es valide: $1\n\nPer favor elige un nove contrasigno ora, o clicca sur \"{{int:resetpass-submit-cancel}}\" pro redefinir lo plus tarde.",
+       "resetpass-expired-soft": "Le contrasigno ha expirate e debe esser redefinite. Per favor elige un nove contrasigno ora, o clicca sur \"{{int:authprovider-resetpass-skip-label}}\" pro redefinir lo plus tarde.",
+       "resetpass-validity-soft": "Le contrasigno non es valide: $1\n\nPer favor elige un nove contrasigno ora, o clicca sur \"{{int:authprovider-resetpass-skip-label}}\" pro redefinir lo plus tarde.",
        "passwordreset": "Reinitialisar contrasigno",
        "passwordreset-text-one": "Completa iste formulario pro reinitialisar tu contrasigno.",
        "passwordreset-text-many": "{{PLURAL:$1|Completa un de iste campos pro reciper un contrasigno temporari in e-mail.}}",
        "minoredit": "Isto es un modification minor",
        "watchthis": "Observar iste pagina",
        "savearticle": "Publicar pagina",
+       "savechanges": "Salveguardar modificationes",
        "publishpage": "Publicar pagina",
+       "publishchanges": "Publicar modificationes",
        "preview": "Previsualisation",
        "showpreview": "Monstrar previsualisation",
        "showdiff": "Detaliar modificationes",
        "rightslogtext": "Isto es un registro de cambios in derectos de usator.",
        "action-read": "leger iste pagina",
        "action-edit": "modificar iste pagina",
-       "action-createpage": "crear paginas",
-       "action-createtalk": "crear paginas de discussion",
+       "action-createpage": "crear iste pagina",
+       "action-createtalk": "crear iste pagina de discussion",
        "action-createaccount": "crear iste conto de usator",
        "action-autocreateaccount": "crear automaticamente iste conto de usator externe",
        "action-history": "vider le historia de iste pagina",
        "upload-http-error": "Un error HTTP occurreva: $1",
        "upload-copy-upload-invalid-domain": "Le incargamento de copias non es disponibile ab iste dominio.",
        "upload-foreign-cant-upload": "Iste wiki non es configurate pro incargar files al repositorio de files externe demandate.",
+       "upload-foreign-cant-load-config": "Impossibile cargar le configuration pro le incargamento de files al repositorio de files externe.",
+       "upload-dialog-disabled": "Le incargamento de files con iste dialogo es disactivate in iste wiki.",
        "upload-dialog-title": "Incargar file",
        "upload-dialog-button-cancel": "Cancellar",
        "upload-dialog-button-done": "Facite",
        "apisandbox": "Cassa de sablo pro API",
        "apisandbox-jsonly": "JavaScript es necessari pro usar le cassa a sablo del API.",
        "apisandbox-api-disabled": "Le API ha essite disactivate in iste sito.",
-       "apisandbox-intro": "Usa iste pagina pro experimentar con le <strong>API de servicio web de MediaWiki</strong>.\nConsulta [[mw:API:Main page|le documentation del API]] pro ulterior detalios concernente le uso del API. Per exemplo: [//www.mediawiki.org/wiki/API#A_simple_example obtener le contento de un Pagina principal]. Selige un action pro vider altere exemplos.\n\nAttention: Ben que isto es un cassa a sablo, le actiones que tu exeque in iste pagina pote modificar tote le wiki.",
+       "apisandbox-intro": "Usa iste pagina pro experimentar con le <strong>API de servicio web de MediaWiki</strong>.\nConsulta [[mw:API:Main page|le documentation del API]] pro ulterior detalios concernente le uso del API. Per exemplo: [https://www.mediawiki.org/wiki/API#A_simple_example obtener le contento de un Pagina principal]. Selige un action pro vider altere exemplos.\n\nAttention: Ben que isto es un cassa a sablo, le actiones que tu exeque in iste pagina pote modificar tote le wiki.",
        "apisandbox-fullscreen": "Expander pannello",
        "apisandbox-fullscreen-tooltip": "Expander le pannello del cassa a sablo pro impler le fenestra del navigator.",
        "apisandbox-unfullscreen": "Monstrar pagina",
        "trackingcategories-msg": "Categoria de sequimento",
        "trackingcategories-name": "Nomine del message",
        "trackingcategories-desc": "Criterios pro inclusion in categoria",
+       "restricted-displaytitle-ignored": "Paginas con titulos a monstrar ignorate",
+       "restricted-displaytitle-ignored-desc": "Le pagina ha un <code><nowiki>{{DISPLAYTITLE}}</nowiki></code> ignorate perque illo non es equivalente al titulo real del pagina.",
        "noindex-category-desc": "Iste pagina es excludite del indice perque illo contine le marca <code><nowiki>__NOINDEX__</nowiki></code> e es in un spatio de nomines ubi le uso de iste marca es permittite.",
        "index-category-desc": "Iste pagina contine le marca <code><nowiki>__INDEX__</nowiki></code> (e es in un spatio de nomines ubi le uso de iste marca es permittite), e dunque es includite in le indice mesmo si illo normalmente non lo esserea.",
        "post-expand-template-inclusion-category-desc": "Le dimension del pagina es plus grande de <code>$wgMaxArticleSize</code> post le expansion de tote le patronos, dunque alcun patronos non ha essite expandite.",
        "rollbacklinkcount": "revocar $1 {{PLURAL:$1|modification|modificationes}}",
        "rollbacklinkcount-morethan": "revocar plus de $1 {{PLURAL:$1|modification|modificationes}}",
        "rollbackfailed": "Revocation fallite",
+       "rollback-missingparam": "Manca parametros obligatori in le requesta.",
        "cantrollback": "Impossibile revocar le modification;\nle ultime contributor es le sol autor de iste pagina.",
        "alreadyrolled": "Non pote revocar le ultime modification de [[:$1]] per [[User:$2|$2]] ([[User talk:$2|discussion]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]);\nun altere persona ha ja modificate o revocate le pagina.\n\nLe ultime modification esseva facite per [[User:$3|$3]] ([[User talk:$3|discussion]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
        "editcomment": "Le summario del modification esseva: <em>$1</em>.",
        "revertpage": "Reverteva modificationes per [[Special:Contributions/$2|$2]] ([[User talk:$2|Discussion]]) al ultime version per [[User:$1|$1]]",
        "revertpage-nouser": "Reverteva modificationes per un usator celate al ultime version per {{GENDER:$1|[[User:$1|$1]]}}",
        "rollback-success": "Revocava modificationes per $1;\nretornava al version per $2.",
+       "rollback-success-notify": "Modificationes de $1 revertite;\nultime version de $2 restaurate. [$3 Monstrar cambiamentos]",
        "sessionfailure-title": "Error de session",
        "sessionfailure": "Il pare haber un problema con tu session de conto;\niste action ha essite cancellate como precaution contra le sequestramento de sessiones.\nPer favor preme \"retro\" e recarga le pagina de ubi tu ha venite, postea reprova.",
        "changecontentmodel": "Cambiar le modello de contento de un pagina",
        "sp-contributions-username": "Adresse IP o nomine de usator:",
        "sp-contributions-toponly": "Monstrar solmente le versiones recente",
        "sp-contributions-newonly": "Monstrar solmente le modificationes que es creationes de pagina",
+       "sp-contributions-hideminor": "Celar modificationes minor",
        "sp-contributions-submit": "Cercar",
        "whatlinkshere": "Paginas ligate a iste",
        "whatlinkshere-title": "Paginas con ligamines verso $1",
        "allmessagesname": "Nomine",
        "allmessagesdefault": "Texto predefinite",
        "allmessagescurrent": "Texto actual",
-       "allmessagestext": "Isto es un lista de messages de systema disponibile in le spatio de nomines MediaWiki.\nPer favor visita [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] e [//translatewiki.net translatewiki.net] si tu desira contribuer al localisation general de MediaWiki.",
+       "allmessagestext": "Isto es un lista de messages de systema disponibile in le spatio de nomines MediaWiki.\nPer favor visita [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] e [https://translatewiki.net translatewiki.net] si tu desira contribuer al localisation general de MediaWiki.",
        "allmessagesnotsupportedDB": "Iste pagina non pote esser usate proque '''$wgUseDatabaseMessages''' ha essite disactivate.",
        "allmessages-filter-legend": "Filtro",
        "allmessages-filter": "Filtrar per stato de personalisation:",
        "confirm-watch-top": "Adder iste pagina a tu observatorio?",
        "confirm-unwatch-button": "OK",
        "confirm-unwatch-top": "Remover iste pagina de tu observatorio?",
+       "confirm-rollback-button": "OK",
+       "confirm-rollback-top": "Reverter le modificationes a iste pagina?",
        "quotation-marks": "“$1”",
        "imgmultipageprev": "← precedente pagina",
        "imgmultipagenext": "sequente pagina →",
        "cannotauth-not-allowed-title": "Permission refusate",
        "cannotauth-not-allowed": "Tu non es autorisate a usar iste pagina",
        "changecredentials": "Cambiar credentiales",
-       "changecredentials-submit": "Cambiar",
-       "changecredentials-submit-cancel": "Cancellar",
+       "changecredentials-submit": "Cambiar credentiales",
        "changecredentials-invalidsubpage": "$1 non es un typo de credential valide.",
        "changecredentials-success": "Tu credentiales ha essite cambiate.",
        "removecredentials": "Remover credentiales",
-       "removecredentials-submit": "Remover",
-       "removecredentials-submit-cancel": "Cancellar",
+       "removecredentials-submit": "Remover credentiales",
        "removecredentials-invalidsubpage": "$1 non es un typo de credential valide.",
        "removecredentials-success": "Tu credentiales ha essite removite.",
        "credentialsform-provider": "Typo de credentiales:",
        "linkaccounts-success-text": "Le conto ha essite ligate.",
        "linkaccounts-submit": "Ligar contos",
        "unlinkaccounts": "Disligar contos",
-       "unlinkaccounts-success": "Le conto ha essite disligate."
+       "unlinkaccounts-success": "Le conto ha essite disligate.",
+       "authenticationdatachange-ignored": "Le cambiamento del datos de authentication non ha succedite. Pote esser que nulle fornitor ha essite configurate?"
 }
index ef604e0..1e7af01 100644 (file)
@@ -45,7 +45,9 @@
                        "WongKentir",
                        "Rachmat.Wahidi",
                        "Arief",
-                       "Nemo bis"
+                       "Nemo bis",
+                       "Mbrt",
+                       "Beeyan"
                ]
        },
        "tog-underline": "Garis bawahi pranala:",
        "protectedpagetext": "Halaman ini telah dikunci untuk menghindari penyuntingan atau tindakan lain.",
        "viewsourcetext": "Anda dapat melihat atau menyalin sumber halaman ini.",
        "viewyourtext": "Anda dapat melihat dan menyalin sumber dari '''suntingan Anda''' ke halaman ini.",
-       "protectedinterface": "Halaman ini memuat teks antarmuka untuk perangkat lunak pada wiki ini, dan dilindungi terhadap penyalahgunaan. Untuk menambah atau mengubah terjemahan pada semua wiki, harap gunakan [//translatewiki.net/ translatewiki.net], proyek pelokalan MediaWiki.",
+       "protectedinterface": "Halaman ini memuat teks antarmuka untuk perangkat lunak pada wiki ini, dan dilindungi terhadap penyalahgunaan. Untuk menambah atau mengubah terjemahan pada semua wiki, harap gunakan [https://translatewiki.net/ translatewiki.net], proyek pelokalan MediaWiki.",
        "editinginterface": "<strong>Peringatan:</strong> Anda menyunting suatu halaman yang digunakan untuk menyediakan teks antarmuka bagi perangkat lunak.\nPerubahan pada halaman ini akan memengaruhi tampilan pada antarmuka pengguna untuk pengguna lain pada wiki ini.",
-       "translateinterface": "Untuk menambah atau mengubah terjemahan semua wiki, mohon gunakan [//translatewiki.net/ translatewiki.net], proyek pelokalan MediaWiki.",
+       "translateinterface": "Untuk menambah atau mengubah terjemahan semua wiki, mohon gunakan [https://translatewiki.net/ translatewiki.net], proyek pelokalan MediaWiki.",
        "cascadeprotected": "Halaman ini telah dilindungi dari penyuntingan karena disertakan di {{PLURAL:$1|halaman|halaman-halaman}} berikut yang telah dilindungi dengan opsi \"runtun\":\n$2",
        "namespaceprotected": "Anda tak memiliki hak akses untuk menyunting halaman di ruang nama '''$1'''.",
        "customcssprotected": "Anda tidak memiliki izin untuk menyunting halaman CSS ini, karena berisi pengaturan pribadi pengguna lain.",
        "userlogin-resetlink": "Lupa detail info masuk Anda?",
        "userlogin-resetpassword-link": "Lupa kata sandi?",
        "userlogin-helplink2": "Bantuan masuk log",
-       "userlogin-loggedin": "Andan telah masuk log sebagai $1.\nGunakan formulir di bawah untuk masuk log sebagai pengguna lain.",
+       "userlogin-loggedin": "Anda telah masuk log sebagai $1.\nGunakan formulir di bawah untuk masuk log sebagai pengguna lain.",
        "userlogin-reauth": "Anda harus masuk log lagi untuk memeriksa bahwa Anda adalah {{GENDER:$1|$1}}",
        "userlogin-createanother": "Buat akun lain",
        "createacct-emailrequired": "Alamat surel",
        "resetpass-temp-password": "Kata sandi sementara:",
        "resetpass-abort-generic": "Perubahan kata sandi telah dibatalkan oleh ekstensi.",
        "resetpass-expired": "Kata sandi Anda telah kedaluarsa. Silakan atur kata sandi baru untuk masuk log.",
-       "resetpass-expired-soft": "Kata sandi Anda telah kedaluarsa dan perlu disetel ulang. Silakan memilih kata sandi baru, atau klik \"{{int:resetpass-submit-cancel}}\" untuk menyetel ulang pada waktu lain.",
-       "resetpass-validity-soft": "Kata sandi tidak valid: $1\n\nSilakan pilih kata sandi baru sekarang, atau klik \"{{int:resetpass-submit-cancel}}\" untuk menyetel ulang pada waktu lain.",
+       "resetpass-expired-soft": "Kata sandi Anda telah kedaluarsa dan perlu disetel ulang. Silakan memilih kata sandi baru, atau klik \"{{int:authprovider-resetpass-skip-label}}\" untuk menyetel ulang pada waktu lain.",
+       "resetpass-validity-soft": "Kata sandi tidak valid: $1\n\nSilakan pilih kata sandi baru sekarang, atau klik \"{{int:authprovider-resetpass-skip-label}}\" untuk menyetel ulang pada waktu lain.",
        "passwordreset": "Ubah kata sandi",
        "passwordreset-text-one": "Lengkapi formulir ini untuk menyetel ulang kata sandi.",
        "passwordreset-text-many": "{{PLURAL:$1|Isi salah satu kotak di bawah ini untuk mendapatkan kata sandi sementara melalui surel.}}",
        "passwordreset-emailsentusername": "Jika ada alamat surel yang berkaitan dengan nama pengguna ini, maka surel untuk menyetel ulang kata sandi akan dikirim.",
        "passwordreset-emailsent-capture": "Surel setel ulang kata sandi telah dikirim, yang ditampilkan di bawah.",
        "passwordreset-emailerror-capture": "Surel setel ulang kata sandi telah dibuat, yang ditampilkan di bawah, namun pengiriman pada {{GENDER:$2|pengguna}} gagal: $1",
+       "passwordreset-emailsent-capture2": "Pemulihan kata sandi {{PLURAL:$1|surel|surel}} telah dikirim. {{PLURAL:$1|Nama pengguna dan kata sandi|Daftar nama pengguna dan kata sandi}} ditampilkan di bawah.",
+       "passwordreset-emailerror-capture2": "Pengiriman surel kepada {{GENDER:$2|pengguna}} gagal: $1 {{PLURAL:$3|Nama pengguna dan kata sandi|Daftar nama pengguna dan kata sandi}} ditampilkan di bawah.",
+       "passwordreset-nocaller": "Pemanggil harus diberikan",
+       "passwordreset-nosuchcaller": "Pemanggil tidak ada: $1",
+       "passwordreset-ignored": "Pemulihan kata sandi tidak tertangani. Mungkin penyedia tidak diatur?",
        "passwordreset-invalideamil": "Alamat surel tidak sah",
        "passwordreset-nodata": "Nama pengguna ataupun alamat surel tidak diberikan",
        "changeemail": "Ubah atau hapus alamat surel",
        "userpage-userdoesnotexist": "Akun pengguna \"<nowiki>$1</nowiki>\" tidak terdaftar.",
        "userpage-userdoesnotexist-view": "Pengguna \"$1\" tidak terdaftar.",
        "blocked-notice-logextract": "Pengguna ini sedang diblokir.\nEntri log pemblokiran terakhir tersedia di bawah ini sebagai rujukan:",
-       "clearyourcache": "'''Catatan:''' Setelah menyimpan, Anda mungkin harus memintas isi singgahan peramban Anda untuk melihat perubahan.\n* '''Firefox / Safari:''' Tahan ''Shift'' sambil mengeklik ''Reload'', atau tekan ''Ctrl-F5'' atau ''Ctrl-R'' (''⌘-R'' di Mac)\n* '''Google Chrome:''' Tekan ''Ctrl-Shift-R'' (''⌘-Shift-R'' di Mac)\n* '''Internet Explorer:''' Tahan ''Ctrl'' sambl mengeklik ''Refresh'', atau tekan ''Ctrl-F5''\n* '''Opera:''' Buka <em> Menu → Settings</em> (<em>Opera → Preferences</em>Privacy & Security  → Clear browsing data  → Cached images and files</em>.",
+       "clearyourcache": "<strong>Catatan:</strong>Setelah disimpan, Anda mungkin perlu melewati tembolok peramban web untuk melihat perubahan.\n* <strong>Firefox/Safari:</strong> Tahan <em>Shift</em> ketika diklik <em>Reload</em>, atau tekan <em>Ctrl-F5</em> atau <em>Ctrl-R</em> (<em>⌘-R</em> di Mac)\n* <strong>Google Chrome:</strong> Tekan <em>Ctrl-Shift-R</em> (<em>⌘-Shift-R</em> di Mac)\n* <strong>Internet Explorer:</strong> Tekan <em>Ctrl</em> ketika diklik <em>Refresh</em>, atau tekan <em>Ctrl-F5</em>\n* <strong>Opera:</strong> Pergi ke <em>Menu → Settings </em> (<em>Opera → Preferences</em> di Mac) lalu ke <em>Privacy & security → Clear browsing data → Cached images and files</em>.",
        "usercssyoucanpreview": "'''Tips:''' Gunakan tombol \"{{int:showpreview}}\" untuk menguji CSS baru Anda sebelum menyimpannya.",
        "userjsyoucanpreview": "'''Tips:''' Gunakan tombol \"{{int:showpreview}}\" untuk menguji JS baru Anda sebelum menyimpannya.",
        "usercsspreview": "'''Ingatlah bahwa Anda sedang menampilkan pratayang dari CSS Anda.\nPratayang ini belum disimpan!'''",
        "right-override-export-depth": "Ekspor halaman termasuk halaman-halaman terkait hingga kedalaman 5",
        "right-sendemail": "Mengirim surel ke pengguna lain",
        "right-passwordreset": "Lihat surel pengaturulangan kata sandi",
-       "right-managechangetags": "Membuat dan menghapus [[Special:Tags|tag]] dari basis data",
+       "right-managechangetags": "Buat dan matikan [[Special:Tags|tag]]",
        "right-applychangetags": "Terapkan [[Special:Tags|tags]] bersamaan dengan perubahan pengguna",
+       "right-changetags": "Tambah dan hapus [[Special:Tags|tag]] arbitrari pada revisi masing-masing dan entri log",
+       "right-deletechangetags": "Hapus [[Special:Tags|tag]] dari basisdata",
        "grant-generic": "\"$1\" bundel hak akses",
        "grant-group-page-interaction": "Berinteraksi dengan halaman",
        "grant-group-file-interaction": "Berinteraksi dengan media",
        "action-viewmyprivateinfo": "lihat informasi pribadi Anda",
        "action-editmyprivateinfo": "sunting informasi pribadi Anda",
        "action-editcontentmodel": "mengedit model konten sebuah halaman",
-       "action-managechangetags": "Membuat dan menghapus tag dari basis data",
+       "action-managechangetags": "buat dan matikan tag",
        "action-applychangetags": "terapkan tag bersamaan dengan perubahan Anda",
        "action-changetags": "menambah dan menghapus tag semaunya pada revisi individu dan entri log",
+       "action-deletechangetags": "hapus tag dari basis data",
        "nchanges": "$1 {{PLURAL:$1|perubahan|perubahan}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|sejak kunjungan terakhir}}",
        "enhancedrc-history": "riwayat",
        "recentchangeslinked-page": "Nama halaman:",
        "recentchangeslinked-to": "Perlihatkan perubahan dari halaman-halaman yang terhubung dengan halaman yang disajikan",
        "recentchanges-page-added-to-category": "[[:$1]] ditambahkan pada kategori",
-       "recentchanges-page-added-to-category-bundled": "[[:$1]] dan [[Special:WhatLinksHere/$1|{{PLURAL:$2|satu halaman|$2 halaman-halaman}}]] lagi halaman ditambahkan pada kategori",
+       "recentchanges-page-added-to-category-bundled": "[[:$1]] ditambahkan ke dalam kategori, [[Special:WhatLinksHere/$1|halaman ini dimasukkan bersama-sama halaman lain]]",
        "recentchanges-page-removed-from-category": "[[:$1]] dihapus dari kategori",
-       "recentchanges-page-removed-from-category-bundled": "[[:$1]] dan {{PLURAL:$2|satu halaman|$2 halaman-halaman}} lagi halaman dihapus dari kategori",
+       "recentchanges-page-removed-from-category-bundled": "[[:$1]] dihapus dari kategori, [[Special:WhatLinksHere/$1|halaman ini dimasukkan bersama halaman lain]]",
        "autochange-username": "Perubahan otomatis MediaWiki",
        "upload": "Pengunggahan berkas",
        "uploadbtn": "Muatkan berkas",
        "uploaded-event-handler-on-svg": "Penetapan atribut <i>event-handler</i> $1=\"$2\" tidak diizinkan dalam berkas SVG.",
        "uploaded-href-attribute-svg": "Atribut href pada berkas SVG hanya dibolehkan untuk ditautkan ke target http:// atau https://, ditemukan <code>&lt;$1 $2=\"$3\"&gt;</code>.",
        "uploaded-href-unsafe-target-svg": "Menemukan href ke data tidak aman: URI menarget <code>&lt;$1 $2=\"$3\"&gt;</code> dalam berkas SVG yang diunggah.",
+       "uploaded-animate-svg": "Ditemukan tag \"animasi\" yang mungkin dapat mengubah href, menggunakan atribut \"from\" <code>&lt;$1 $2=\"$3\"&gt;</code> dalam berkas SVG yang diunggah.",
        "uploaded-setting-event-handler-svg": "Penyetelan atribut event-handler diblokir, menemukan <code>&lt;$1 $2=\"$3\"&gt;</code> dalam berkas SVG yang diunggah.",
+       "uploaded-setting-href-svg": "Menggunakan tag \"set\" untuk menambahkan atribut \"href\" ke elemen utama diblokir.",
+       "uploaded-remote-url-svg": "SVG yang mengatur setiap atribut style dengan URL luar diblokir. $1=\"$2\" ditemui di dalam berkas SVG yang diunggah.",
        "uploadscriptednamespace": "Berkas SVG ini memuat ruang nama ilegal \"$1\"",
        "uploadinvalidxml": "XML dalam berkas yang diunggah tidak bisa diuraikan.",
        "uploadvirus": "Berkas tersebut mengandung virus! Rincian: $1",
        "upload-too-many-redirects": "URL mengandung terlalu banyak pengalihan",
        "upload-http-error": "Kesalahan HTTP terjadi: $1",
        "upload-copy-upload-invalid-domain": "Unggahan salinan tidak tersedia dari domain ini.",
+       "upload-foreign-cant-upload": "Wiki ini tidak diatur untuk mengunggah berkas ke gudang penyimpangan asing.",
        "upload-dialog-title": "Unggah berkas",
        "upload-dialog-button-cancel": "Batalkan",
        "upload-dialog-button-done": "Selesai",
        "upload-form-label-own-work": "Ini adalah karya saya sendiri",
        "upload-form-label-infoform-categories": "Kategori",
        "upload-form-label-infoform-date": "Tanggal",
+       "upload-form-label-own-work-message-generic-local": "Saya menyatakan bahwa saya mengunggah berkas ini dengan mengikuti syarat layanan dan aturan lisensi di {{SITENAME}}.",
+       "upload-form-label-not-own-work-message-generic-local": "Jika Anda tidak dapat mengunggah berkas ini di bawah kebijakan {{SITENAME}}, silakan tutup dialog ini dan cobalah metode lainnya.",
+       "upload-form-label-not-own-work-local-generic-local": "Anda mungkin ingin mencoba [[Special:Upload|halaman pengunggahan baku]].",
+       "upload-form-label-own-work-message-generic-foreign": "Saya mengerti bahwa saya mengunggah berkas ini ke gudang berkas bersama. Saya menyatakan bahwa saya telah menyetujui syarat layanan dan kebijakan lisensi di sana.",
+       "upload-form-label-not-own-work-message-generic-foreign": "Jika Anda tidak dapat mengunggah berkas ini di bawah kebijakan di gudang penyimpanan bersama, silakan tutup dialog ini dan cobalah metode lainnya.",
+       "upload-form-label-not-own-work-local-generic-foreign": "Anda juga mungkin ingin mencoba menggunakan  [[Special:Upload|halaman pengunggahan di {{SITENAME}}]], jika situs tersebut mengizinkan pengunggahan berkas ini menurut kebijakan di situs tersebut.",
        "backend-fail-stream": "Tidak bisa mengalikan berkas $1.",
        "backend-fail-backup": "Tidak dapat mencadangkan berkas $1.",
        "backend-fail-notexists": "Berkas $1 tidak ada.",
        "apisandbox": "Bak pasir API",
        "apisandbox-jsonly": "JavaScript dibutuhkan untuk menggunakan kotak pasir API.",
        "apisandbox-api-disabled": "API dinonaktifkan pada situs ini.",
-       "apisandbox-intro": "Gunakan halaman ini untuk bereksperimen dengan '''API layanan web MediaWiki'''.\nLihat [//www.mediawiki.org/wiki/API:Main_page dokumentasi API] untuk perincian lanjut penggunaan API. Contoh: [//www.mediawiki.org/wiki/API#A_simple_example dapatkan konten Halaman Utama]. Pilih sebuah tindakan untuk melihat contoh lain.\n\nPerhatikan bahwa, meskipun ini adalah bak pasir, tindakan yang Anda lakukan pada halaman ini mungkin dapat mengubah wiki.",
+       "apisandbox-intro": "Gunakan halaman ini untuk bereksperimen dengan <strong>API layanan web MediaWiki</strong>.\nLihat [[mw:API:Main page|dokumentasi API]] untuk perincian lanjut penggunaan API. Contoh: [https://www.mediawiki.org/wiki/API#A_simple_example dapatkan konten Halaman Utama]. Pilih sebuah tindakan untuk melihat contoh lain.\n\nPerhatikan bahwa, meskipun ini adalah bak pasir, tindakan yang Anda lakukan pada halaman ini mungkin dapat mengubah wiki.",
        "apisandbox-fullscreen": "Kembangkan panel",
        "apisandbox-fullscreen-tooltip": "Kembangkan panel kotak pasir untuk mengisi jendela peramban.",
        "apisandbox-unfullscreen": "Tampilkan halaman",
        "listgrouprights-namespaceprotection-namespace": "Ruang nama",
        "listgrouprights-namespaceprotection-restrictedto": "Hak yang mengizinkan pengguna untuk menyunting",
        "listgrants": "Izin",
+       "listgrants-summary": "Berikut ini adalah daftar hak dengan akses terkait kepada hak penggunanya. Pengguna dapat mengizinkan aplikasi untuk menggunakan akun mereka, namun dengan izin terbatas berdasarkan hak yang diberikan oleh pengguna. Aplikasi yang berjalan yang mewakili seorang pengguna tidak dapat menggunakan hak yang tidak dimiliki oleh pengguna tersebut.\nMungkin nanti terdapat [[{{MediaWiki:Listgrouprights-helppage}}|informasi tambahan]] mengenai hak-hak individual.",
        "listgrants-grant": "Izin",
        "listgrants-rights": "Hak",
        "trackingcategories": "Kategori pelacak",
        "trackingcategories-msg": "Kategori pelacak",
        "trackingcategories-name": "Nama pesan",
        "trackingcategories-desc": "Kriteria inklusi kategori",
+       "restricted-displaytitle-ignored": "Halaman-halaman dengan pengabaian tampilan judul",
+       "restricted-displaytitle-ignored-desc": "Halaman ini memiliki pengabaian <code><nowiki>{{DISPLAYTITLE}}</nowiki></code> karena tidak sesuai dengan judul halaman aslinya.",
        "noindex-category-desc": "Halaman tidak diindeks oleh robot karena ini mempunyai kata khusus <code><nowiki>__NOINDEX__</nowiki></code> padanya dan berada dalam ruang nama yang mengizinkan penanda itu.",
        "index-category-desc": "Halaman ini memiliki <code><nowiki>__INDEX__</nowiki></code> di atasnya (dan dalam ruang nama yang mana bendera yang diperbolehkan), dan karenanya diindeks oleh robot di mana itu biasanya tidak akan.",
        "post-expand-template-inclusion-category-desc": "Ukuran laman lebih besar dari <code>$wgMaxArticleSize</code> setelah memperluas semua templat, sehingga beberapa templat tidak diperluas.",
        "rollbacklinkcount": "kembalikan $1 {{PLURAL:$1|suntingan}}",
        "rollbacklinkcount-morethan": "kembalikan lebih dari $1 {{PLURAL:$1|suntingan|suntingan}}",
        "rollbackfailed": "Pengembalian gagal dilakukan",
+       "rollback-missingparam": "Parameter dibutuhkan ketika diminta tidak tersedia.",
        "cantrollback": "Tidak dapat membatalkan suntingan;\nkontributor terakhir adalah satu-satunya penulis halaman ini.",
        "alreadyrolled": "Tidak dapat melakukan pengembalian ke revisi terakhir [[:$1]] oleh [[User:$2|$2]] ([[User talk:$2|bicara]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]);\npengguna lain telah menyunting atau melakukan pengembalian terhadap halaman ini.\n\nSuntingan terakhir dilakukan oleh [[User:$3|$3]] ([[User talk:$3|bicara]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
        "editcomment": "Komentar penyuntingan adalah: <em>$1</em>.",
        "revertpage": "←Suntingan [[Special:Contributions/$2|$2]] ([[User talk:$2|bicara]]) dibatalkan ke versi terakhir oleh [[User:$1|$1]]",
        "revertpage-nouser": "Mengembalikan suntingan oleh (nama pengguna dihapus) ke suntingan terakhir oleh [[User:$1|$1]]",
        "rollback-success": "Pembatalan suntingan oleh $1; dibatalkan ke versi terakhir oleh $2.",
+       "rollback-success-notify": "Mengembalikan suntingan oleh $1; rubah kembali untuk revisi terakhir oleh $2. [$3 Lihat perubahan]",
        "sessionfailure-title": "Kegagalan sesi",
        "sessionfailure": "Sepertinya ada masalah dengan sesi log Anda; log Anda telah dibatalkan untuk mencegah pembajakan. Silakan tekan tombol \"kembali\" dan muat kembali halaman sebelum Anda masuk, lalu coba lagi.",
        "changecontentmodel": "Ubah model isi sebuah halaman",
        "changecontentmodel-success-text": "Jenis konten [[:$1]] telah diubah",
        "changecontentmodel-cannot-convert": "Isi pada [[:$1]] tidak dapat ditukar kepada jenis $2.",
        "changecontentmodel-nodirectediting": "Model isi $1 tidak mendukung suntingan langsung",
+       "changecontentmodel-emptymodels-title": "Tidak tersedia model konten",
+       "changecontentmodel-emptymodels-text": "Konten dalam [[:$1]] tidak dapat diubah ke dalam jenis lain.",
        "log-name-contentmodel": "Log perubahan model konten",
        "log-description-contentmodel": "Peristiwa terkait model konten sebuah halaman",
+       "logentry-contentmodel-new": "$1 {{GENDER:$2|membuat}} halaman $3 menggunakan model konten tak baku \"$5\"",
        "logentry-contentmodel-change": "$1 {{GENDER:$2|mengubah}} model konten halaman $3 dari \"$4\" ke \"$5\"",
        "logentry-contentmodel-change-revertlink": "batalkan",
        "logentry-contentmodel-change-revert": "batalkan",
        "allmessagesname": "Nama",
        "allmessagesdefault": "Teks baku",
        "allmessagescurrent": "Teks sekarang",
-       "allmessagestext": "Ini adalah daftar semua pesan sistem yang tersedia dalam ruang nama MediaWiki.\nSilakan kunjungi [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Pelokalan MediaWiki] dan [//translatewiki.net translatewiki.net] jika Anda ingin berkontribusi untuk pelokalan generik MediaWiki.",
+       "allmessagestext": "Ini adalah daftar semua pesan sistem yang tersedia dalam ruang nama MediaWiki.\nSilakan kunjungi [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Pelokalan MediaWiki] dan [https://translatewiki.net translatewiki.net] jika Anda ingin berkontribusi untuk pelokalan generik MediaWiki.",
        "allmessagesnotsupportedDB": "Halaman ini tidak dapat digunakan karena '''$wgUseDatabaseMessages''' telah dimatikan.",
        "allmessages-filter-legend": "Penyaring",
        "allmessages-filter": "Saring dengan keadaan kustomisasi:",
        "confirmemail_body_set": "Seseorang, mungkin Anda, dari alamat IP $1,\ntelah mengubah surel dari akun \"$2\" pada alamat ini di {{SITENAME}}.\n\nUntuk mengonfirmasi bahwa akun ini adalah milik Anda sekaligus mengaktifkan\nkembali fitur surel pada {{SITENAME}}, ikuti pranala berikut pada browser Anda:\n\n$3\n\nJika akun ini *bukan* milik Anda, ikuti pranala berikut\nuntuk membatalkan konfirmasi alamat surel:\n\n$5\n\nKode konfirmasi ini akan kedaluwarsa pada $4.",
        "confirmemail_invalidated": "Konfirmasi alamat surel dibatalkan",
        "invalidateemail": "Batalkan konfirmasi surel",
+       "notificationemail_subject_changed": "Alamat surel terdaftar {{SITENAME}} telah diganti",
+       "notificationemail_subject_removed": "Alamat surel terdaftar {{SITENAME}} telah dihapus",
+       "notificationemail_body_changed": "Seseorang, mungkin Anda, dari alamat IP $1,\ntelah mengganti alamat surel akun \"$2\" menjadi \"$3\" di {{SITENAME}}",
+       "notificationemail_body_removed": "Seseorang, mungkin Anda, dari alamat IP $1,\ntelah menghapus alamat surel akun \"$2\" di {{SITENAME}}.",
        "scarytranscludedisabled": "[Transklusi interwiki dimatikan]",
        "scarytranscludefailed": "[Pengambilan templat $1 gagal]",
        "scarytranscludefailed-httpstatus": "[Pengambilan templat $1 gagal: HTTP $2]",
        "confirm-watch-top": "Tambahkan halaman ini ke daftar pantauan Anda?",
        "confirm-unwatch-button": "OK",
        "confirm-unwatch-top": "Hapus halaman ini dari daftar pantauan Anda?",
+       "confirm-rollback-button": "OK",
+       "confirm-rollback-top": "Kembalikan suntingan ke halaman ini?",
        "semicolon-separator": ";&#32;",
        "comma-separator": ",&#32;",
        "colon-separator": ":&#32;",
        "timezone-local": "Lokal",
        "duplicate-defaultsort": "Peringatan: Kunci pengurutan baku \"$2\" mengabaikan kunci pengurutan baku \"$1\" sebelumnya.",
        "duplicate-displaytitle": "<strong>Peringatan:</strong> Menampilkan judul \"$2\" menimpa judul tampilan \"$1\" sebelumnya.",
+       "restricted-displaytitle": "<strong>Perhatian:</strong> Tampilan judul \"$1\" diabaikan karena tidak sesuai dengan judul halaman asli.",
        "invalid-indicator-name": "'''Galat:''' Atribut ''nama'' indikator status halaman tidak boleh kosong.",
        "version": "Versi",
        "version-extensions": "Ekstensi terinstal",
        "tags-create-invalid-chars": "Nama tag tidak boleh mengandung koma (<code>,</code>) atau garis miring (<code>/</code>).",
        "tags-create-invalid-title-chars": "Nama tag tidak boleh mengandung karakter yang tidak bisa digunakan dalam judul halaman.",
        "tags-create-already-exists": "Tag \"$1\" sudah ada.",
+       "tags-create-warnings-above": "{{PLURAL:$2|Peringatan|Peringatan}} berikut ditemukan ketika mencoba membuat tag \"$1\":",
        "tags-create-warnings-below": "Apakah Anda ingin melanjutkan pembuatan tanda ini?",
+       "tags-delete-title": "Hapus tag",
+       "tags-delete-explanation-initial": "Anda akan menghapus tag \"$1\" dari basisdata.",
        "tags-delete-reason": "Alasan:",
        "tags-activate-reason": "Alasan:",
        "tags-activate-submit": "Aktifkan",
        "tags-deactivate-submit": "Matikan",
        "tags-apply-blocked": "Anda tidak dapat menerapkan perubahan tag dan perubahan lainnya ketika sedang diblokir.",
        "tags-update-blocked": "Anda tidak dapat menambah atau menghapus tag ketika sedang diblokir.",
+       "tags-edit-existing-tags": "Tag yang ada:",
+       "tags-edit-existing-tags-none": "<em>Tidak ada</em>",
+       "tags-edit-new-tags": "Tag baru:",
+       "tags-edit-add": "Tambahkan tag-tag ini:",
+       "tags-edit-remove": "Hapus tag-tag ini:",
+       "tags-edit-remove-all-tags": "(hapus semua tag)",
+       "tags-edit-chosen-placeholder": "Pilih beberapa tag",
+       "tags-edit-chosen-no-results": "Tidak ada tag yang sesuai",
        "tags-edit-reason": "Alasan:",
+       "tags-edit-revision-submit": "Terapkan perubahan ke {{PLURAL:$1|revisi ini|$1 revisi}}",
+       "tags-edit-logentry-submit": "Terapkan perubahan ke {{PLURAL:$1|entri log ini|$1 entri log}}",
+       "tags-edit-success": "Perubahan diterapkan.",
+       "tags-edit-failure": "Perubahan berikut tidak dapat diterapkan:\n$1",
+       "tags-edit-nooldid-title": "Target revisi tak ditemukan",
+       "tags-edit-nooldid-text": "Anda tidak menentukan revisi tujuan untuk melakukan fungsi ini, atau revisi yang ditentukan tidak tersedia.",
+       "tags-edit-none-selected": "Silakan pilih paling sedikit satu tag untuk ditambahkan atau dihapus.",
        "comparepages": "Bandingkan halaman",
        "compare-page1": "Halaman 1",
        "compare-page2": "Halaman 2",
        "htmlform-cloner-create": "Tambahkan lebih banyak",
        "htmlform-cloner-delete": "Hapus",
        "htmlform-cloner-required": "Paling sedikit satu nilai diperlukan.",
+       "htmlform-title-badnamespace": "[[:$1]] tidak berada dalam ruang nama \"{{ns:$2}}\".",
+       "htmlform-title-not-creatable": "\"$1\" bukan merupakan judul halaman yang dapat dibuat",
        "htmlform-title-not-exists": "$1 tidak ada.",
+       "htmlform-user-not-exists": "<strong>$1</strong> tidak ada.",
+       "htmlform-user-not-valid": "<strong>$1</strong> bukan merupakan nama pengguna sah.",
        "sqlite-has-fts": "$1 dengan dukungan pencarian teks lengkap",
        "sqlite-no-fts": "$1 tanpa dukungan pencarian teks lengkap",
        "logentry-delete-delete": "$1 {{GENDER:$2|menghapus}} halaman $3",
        "logentry-block-reblock": "$1 {{GENDER:$2|mengubah}} pemblokiran {{GENDER:$4|$3}} dengan waktu kedaluwarsa $5 $6",
        "logentry-suppress-block": "$1 {{GENDER:$2|memblokir}} {{GENDER:$4|$3}} dengan waktu kedaluwarsa $5 $6",
        "logentry-suppress-reblock": "$1 {{GENDER:$2|mengubah}} pemblokiran {{GENDER:$4|$3}} dengan waktu kedaluwarsa $5 $6",
+       "logentry-import-upload": "$1 {{GENDER:$2|mengimpor}} $3 melalui pemuatan berkas",
+       "logentry-import-upload-details": "$1 {{GENDER:$2|mengimpor}} $3 dengan pemuatan berkas ($4 {{PLURAL:$4|revisi|revisi}})",
+       "logentry-import-interwiki": "$1 {{GENDER:$2|mengimpor}} $3 dari wiki lain",
+       "logentry-import-interwiki-details": "$1 {{GENDER:$2|mengimpor}} $3 dari $5 ($4 {{PLURAL:$4|revisi|revisi}})",
        "logentry-merge-merge": "$1 {{GENDER:$2|menggabungkan}} $3 dengan $4 (revisi lebih dari $5)",
        "logentry-move-move": "$1 {{GENDER:$2|memindahkan}} halaman $3 ke $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|memindahkan}} halaman $3 ke $4 tanpa membuat pengalihan",
        "logentry-newusers-byemail": "Akun pengguna  $3  {{GENDER:$2|dibuat}} oleh  $1  dan password dikirim melalui surel",
        "logentry-newusers-autocreate": "Akun $1 {{GENDER:$2|dibuat}} secara otomatis",
        "logentry-protect-move_prot": "$1 {{GENDER:$2|memindahkan}} setelan perlindungan dari $4 ke $3",
+       "logentry-protect-unprotect": "$1 {{GENDER:$2|menghapus}} perlindungan dari $3",
        "logentry-protect-protect": "$1 {{GENDER:$2|melindungi}} $3 $4",
+       "logentry-protect-protect-cascade": "$1 {{GENDER:$2|melindungi}} $3 $4 [runtun]",
        "logentry-protect-modify": "$1 {{GENDER:$2|mengubah}} tingkat perlindungan untuk $3 $4",
-       "logentry-rights-rights": "$1 {{GENDER:$2|mengubah}} keanggotaan grup $3 dari $4 menjadi $5",
+       "logentry-protect-modify-cascade": "$1 {{GENDER:$2|mengubah}} tingkat perlindungan untuk $3 $4 [runtun]",
+       "logentry-rights-rights": "$1 {{GENDER:$2|mengubah}} keanggotaan grup {{GENDER:$6|$3}} dari $4 ke $5",
        "logentry-rights-rights-legacy": "$1 {{GENDER:$2|mengubah}} keanggotaan grup $3",
        "logentry-rights-autopromote": "$1 secara otomatis {{GENDER:$2|dipromosikan}} dari $4 menjadi $5",
        "logentry-upload-upload": "$1 {{GENDER:$2|mengunggah}} $3",
        "logentry-upload-overwrite": "$1 {{GENDER:$2|mengunggah}} versi baru dari $3",
        "logentry-upload-revert": "$1 {{GENDER:$2|mengunggah}} $3",
        "log-name-managetags": "Log pengelolaan tag",
+       "log-description-managetags": "Daftar halaman ini mencantumkan tugas-tugas yang terkait dengan [[Special:Tags|tag]]. Lognya hanya mengandung tindakan-tindakan yang dijalankan secara manual oleh pengurus; tag-tag bisa dibuat atau dihapus oleh perangkat lunak wiki tanpa tercatat entrinya dalam log ini.",
        "logentry-managetags-create": "$1 {{GENDER:$2|membuat}} tag \"$4\"",
+       "logentry-managetags-delete": "$1 {{GENDER:$2|menghapus}} tag \"$4\" (dihapus dari $5 {{PLURAL:$5|revisi atau entri log|revisi atau entri log}})",
+       "logentry-managetags-activate": "$1 {{GENDER:$2|mengaktifkan}} tag \"$4\" untuk digunakan oleh pengguna dan bot",
+       "logentry-managetags-deactivate": "$1 {{GENDER:$2|menonaktifkan}} tag \"$4\" untuk digunakan oleh pengguna dan bot",
+       "log-name-tag": "Log tag",
+       "log-description-tag": "Situs ini menampilkan ketika-ketika pengguna menambahkan atau menghapus [[Special:Tags|tag]] dari revisi atau entri log individu. Log ini tidak mencantumkan tindakan tag daftar yang terjadi sebagai sebagian dari tindakan mengedit, menghapus atau sebagainya.",
+       "logentry-tag-update-add-revision": "$1 {{GENDER:$2|menambahkan}} {{PLURAL:$7|tag|tag}} $6 ke revisi $4 dari halaman $3",
+       "logentry-tag-update-add-logentry": "$1 {{GENDER:$2|menambahkan}} {{PLURAL:$7|tag|tag}} $6 ke entri log $5 dari halaman $3",
+       "logentry-tag-update-remove-revision": "$1 {{GENDER:$2|menghapus}} {{PLURAL:$9|tag|tag}} $8 dari revisi $4 dari halaman $3",
+       "logentry-tag-update-remove-logentry": "$1 {{GENDER:$2|menghapus}} {{PLURAL:$9|tag|tag}} $8 dari entri log $5 dari halaman $3",
+       "logentry-tag-update-revision": "$1 {{GENDER:$2|memperbarui}} tag pada revisi $4 dari halaman $3 ({{PLURAL:$7|menambahkan}} $6; {{PLURAL:$9|menghapus}} $8)",
+       "logentry-tag-update-logentry": "$1 {{GENDER:$2|memperbarui}} tag pada entri log $5 dari halaman $3 ({{PLURAL:$7|menambahkan}} $6; {{PLURAL:$9|menghapus}} $8)",
        "rightsnone": "(tidak ada)",
        "revdelete-summary": "ringkasan",
        "feedback-adding": "Menambahkan umpan balik ke halaman...",
        "feedback-bugornote": "Jika Anda sudah siap untuk mendeskripsikan masalah teknis secara rinci silakan [$1 melaporkan bug].\nJika tidak, Anda dapat menggunakan formulir mudah di bawah ini. Komentar Anda akan ditambahkan ke halaman \"[$3 $2]\", bersama dengan nama pengguna Anda dan apa browser yang Anda gunakan.",
        "feedback-cancel": "Batal",
        "feedback-close": "Selesai",
+       "feedback-external-bug-report-button": "Kirim tugas teknis",
        "feedback-dialog-title": "Kirimkan saran dan tanggapan",
        "feedback-dialog-intro": "Anda bisa menggunakan formulir sederhana di bawah untuk mengirimkan saran dan masukan. Komentar Anda akan ditambahkan pada laman \"$1\" bersama nama pengguna Anda.",
        "feedback-error-title": "Kesalahan",
        "feedback-error1": "Galat: Hasil tidak dikenal dari API",
        "feedback-error2": "Galat: Penyuntingan gagal",
        "feedback-error3": "Error: API tidak merespons",
+       "feedback-error4": "Galat: Tidak dapat mengirim ke judul umpan balik yang diberikan",
        "feedback-message": "Pesan:",
        "feedback-subject": "Perihal:",
        "feedback-submit": "Kirim",
+       "feedback-terms": "Saya mengerti bahwa informasi agen saya berisi informasi mengenai versi peramban web dan sistem operasi yang benar-benar saya gunakan dan akan dibagikan secara terbuka di samping umpan balik saya.",
+       "feedback-termsofuse": "Saya menyetujui untuk memberikan umpan balik sesuai dengan Syarat-syarat Penggunaan.",
        "feedback-thanks": "Terima kasih! Umpan balik Anda telah dikirimkan ke halaman \"[$2 $1]\".",
        "feedback-thanks-title": "Terima kasih!",
+       "feedback-useragent": "Agen pengguna:",
        "searchsuggest-search": "Cari",
        "searchsuggest-containing": "berisi...",
        "api-error-autoblocked": "Alamat IP Anda telah diblokir secara otomatis, karena sebelumnya digunakan oleh pengguna yang diblokir.",
        "api-error-nomodule": "Kesalahan internal: tidak ada modul unggahan yang ditetapkan.",
        "api-error-ok-but-empty": "Kesalahan internal: tidak ada tanggapan dari peladen.",
        "api-error-overwrite": "Tidak diizinkan untuk menimpa berkas yang sudah ada.",
+       "api-error-ratelimited": "Anda mencoba untuk mengunggah berkas dalam jeda waktu yang lebih singkat yang diperbolehkan oleh wiki ini. Silakan ulangi kembali dalam beberapa menit.",
        "api-error-stashfailed": "Kesalahan internal: server gagal menyimpan berkas sementara.",
        "api-error-publishfailed": "Kesalahan internal: server gagal menyimpan berkas sementara.",
        "api-error-stasherror": "Terjadi kesalahan saat mengunggah berkas ke penyimpanan.",
+       "api-error-stashedfilenotfound": "Berkas yang disimpan tidak ditemukan ketika mencoba untuk mengunggahnya dari penyimpanan.",
+       "api-error-stashpathinvalid": "Lokasi tempat berkas disimpan yang seharusnya ditemukan tidak sah.",
+       "api-error-stashfilestorage": "Terjadi galat ketika menyimpan berkas ke dalam penyimpanan.",
+       "api-error-stashzerolength": "Peladen tidak dapat menyimpan berkas ini, karena ukuran berkas itu adalah nihil.",
+       "api-error-stashnotloggedin": "Anda harus masuk log untuk menyimpan berkas ke dalam penyimpanan unggahan.",
+       "api-error-stashwrongowner": "Berkas yang Anda coba untuk akses dalam penyimpanan itu bukan milik Anda.",
+       "api-error-stashnosuchfilekey": "Berkas yang Anda coba akses dalam penyimpanan itu tidak ada.",
        "api-error-timeout": "Peladen tidak merespons dalam waktu yang diharapkan.",
        "api-error-unclassified": "Terjadi galat yang tidak diketahui",
        "api-error-unknown-code": "Kesalahan tidak dikenal: \"$1\"",
        "api-error-unknownerror": "Kesalahan tidak dikenal: \"$1\"",
        "api-error-uploaddisabled": "Pengunggahan dinonaktifkan di wiki ini.",
        "api-error-verification-error": "Berkas ini mungkin rusak atau memiliki ekstensi yang salah.",
+       "api-error-was-deleted": "Sebuah berkas dengan nama ini sudah diunggah sebelumnya lalu dihapus.",
        "duration-seconds": "$1 {{PLURAL:$1|detik}}",
        "duration-minutes": "$1 {{PLURAL:$1|menit}}",
        "duration-hours": "$1 {{PLURAL:$1|jam}}",
        "expand_templates_generate_xml": "Tampilkan pohon parser XML",
        "expand_templates_generate_rawhtml": "Tampilkan HTML mentah",
        "expand_templates_preview": "Pratayang",
+       "expand_templates_preview_fail_html_anon": "<em>Karena {{SITENAME}} memiliki HTML mentah yang diaktifkan dan Anda tidak masuk log, pratayang disembunyikan untuk menghindari serangan JavaScript.</em>\n\n<strong>Jika ini merupakan upaya prayatang sah, silakan  [[Special:UserLogin|masuk log]] dan ulang kembali.</strong>",
+       "expand_templates_input_missing": "Anda perlu memasukkan paling sedikit beberapa teks masukan.",
        "pagelanguage": "Ubah bahasa halaman",
        "pagelang-name": "Halaman",
        "pagelang-language": "Bahasa",
        "pagelang-use-default": "Gunakan bahasa baku",
        "pagelang-select-lang": "Pilih bahasa",
+       "pagelang-submit": "Kirim",
        "right-pagelang": "Ubah bahasa halaman",
        "action-pagelang": "mengubah bahasa halaman",
        "log-name-pagelang": "Log perubahan bahasa",
        "mediastatistics-header-drawing": "Gambar vektor",
        "mediastatistics-header-audio": "Audio",
        "mediastatistics-header-video": "Video",
+       "mediastatistics-header-multimedia": "Media kaya",
        "mediastatistics-header-office": "Aplikasi Office",
        "mediastatistics-header-text": "Tekstual",
        "mediastatistics-header-executable": "Program",
        "mediastatistics-header-archive": "Format terkompresi",
+       "mediastatistics-header-total": "Semua berkas",
+       "json-warn-trailing-comma": "$1 {{PLURAL:$1|koma|koma}} pengekor telah digugurkan dari JSON",
+       "json-error-unknown": "Ada masalah dengan JSON. Kesalahan: $1",
        "json-error-depth": "Kedalaman tumpukan maksimal telah terlewati",
+       "json-error-state-mismatch": "JSON tidak sah atau cacat",
+       "json-error-ctrl-char": "Kesalahan aksara kontrol, mungkin salah dikodkan",
        "json-error-syntax": "Kesalahan sintaks",
+       "json-error-utf8": "Aksara UTF-8 cacat, mungkin salah dikodkan",
+       "json-error-recursion": "Setidaknya satu atau lebih referensi rekursif untuk dikodkan di dalam nilai tersebut",
+       "json-error-inf-or-nan": "Setidaknya satu nilai NAN atau INF untuk dikodkan di dalam nilai tersebut",
+       "json-error-unsupported-type": "Sebuah nilai dari tipe yang tidak dapat dikodkan diberikan",
+       "headline-anchor-title": "Pranala ke bagian ini",
        "special-characters-group-latin": "Latin",
        "special-characters-group-latinextended": "Ekstensi Latin",
        "special-characters-group-ipa": "IPA",
        "special-characters-group-symbols": "Simbol",
        "special-characters-group-greek": "Yunani",
+       "special-characters-group-greekextended": "Latin tambahan",
        "special-characters-group-cyrillic": "Sirilik",
        "special-characters-group-arabic": "Arab",
        "special-characters-group-arabicextended": "Arab tambahan",
        "special-characters-title-endash": "en dash",
        "special-characters-title-emdash": "em dash",
        "special-characters-title-minus": "tanda kurang",
+       "mw-widgets-dateinput-no-date": "Tanggal tidak ada yang terpilih",
        "mw-widgets-dateinput-placeholder-day": "TTTT-BB-HH",
        "mw-widgets-dateinput-placeholder-month": "TTTT-BB",
+       "mw-widgets-titleinput-description-new-page": "halaman belum ada",
+       "mw-widgets-titleinput-description-redirect": "mengalihkan ke $1",
        "api-error-blacklisted": "Pilih judul lain yang deskriptif",
+       "sessionmanager-tie": "Tidak dapat menggabungkan banyak jenis otentikasi permintaan: $1.",
+       "sessionprovider-generic": "sesi $1",
+       "sessionprovider-mediawiki-session-cookiesessionprovider": "sesi berdasarkan kuki",
+       "sessionprovider-nocookies": "Kuki mungkin dimatikan. Pastikan Anda telah mengaktifkan kuki dan coba mulai kembali.",
        "randomrootpage": "Halaman dasar sembarang",
        "log-action-filter-block": "Jenis pemblokiran:",
+       "log-action-filter-contentmodel": "Jenis modifikasi modelkonten:",
+       "log-action-filter-delete": "Jenis penghapusan:",
+       "log-action-filter-import": "Jenis impor:",
+       "log-action-filter-managetags": "Jenis tindakan manajemen tag:",
+       "log-action-filter-move": "Jenis pemindahan:",
+       "log-action-filter-newusers": "Jenis pembuatan akun:",
+       "log-action-filter-patrol": "Jenis patroli:",
+       "log-action-filter-protect": "Jenis perlindungan:",
+       "log-action-filter-rights": "Jenis penggantian hak",
+       "log-action-filter-suppress": "Jenis penyembunyian",
+       "log-action-filter-upload": "Jenis pengunggahan:",
        "log-action-filter-all": "Semua",
        "log-action-filter-block-block": "Blokir",
-       "log-action-filter-suppress-block": "Perahasiaan pengguna menurut pemblokiran"
+       "log-action-filter-block-reblock": "Modifikasi blokir",
+       "log-action-filter-block-unblock": "Batalkan pemblokiran",
+       "log-action-filter-contentmodel-change": "Ubah Modelkonten",
+       "log-action-filter-contentmodel-new": "Pembuatan halaman dengan Modelkonten yang tak baku",
+       "log-action-filter-delete-delete": "Penghapusan halaman",
+       "log-action-filter-delete-restore": "Pembatalan penghapusan halaman",
+       "log-action-filter-delete-event": "Log penghapusan",
+       "log-action-filter-delete-revision": "Penghapusan revisi",
+       "log-action-filter-import-interwiki": "Impor transwiki",
+       "log-action-filter-import-upload": "Impor dengan unggahan XML",
+       "log-action-filter-managetags-create": "Pembuatan tag",
+       "log-action-filter-managetags-delete": "Penghapusan tag",
+       "log-action-filter-managetags-activate": "Pengaktifan tag",
+       "log-action-filter-managetags-deactivate": "Penonaktifan tag",
+       "log-action-filter-move-move": "Pindahkan tanpa menimpa pengalihan",
+       "log-action-filter-move-move_redir": "Pindahkan dengan menimpa pengalihan",
+       "log-action-filter-newusers-create": "Pembuatan oleh pengguna anonim",
+       "log-action-filter-newusers-create2": "Pembuatan oleh pengguna terdaftar",
+       "log-action-filter-newusers-autocreate": "Pembuatan otomatis",
+       "log-action-filter-newusers-byemail": "Pembuatan dengan kata sandi yang dikirimkan melalui surel",
+       "log-action-filter-patrol-patrol": "Patroli manual",
+       "log-action-filter-patrol-autopatrol": "Patroli otomatis",
+       "log-action-filter-protect-protect": "Perlindungan",
+       "log-action-filter-protect-modify": "Modifikasi perlindungan",
+       "log-action-filter-protect-unprotect": "Pembatalan perlindungan",
+       "log-action-filter-protect-move_prot": "Pemindahan perlindungan",
+       "log-action-filter-rights-rights": "Penggantian manual",
+       "log-action-filter-rights-autopromote": "Penggantian otomatis",
+       "log-action-filter-suppress-event": "Log penyembunyian",
+       "log-action-filter-suppress-revision": "Penyembunyian revisi",
+       "log-action-filter-suppress-delete": "Penyembunyian halaman",
+       "log-action-filter-suppress-block": "Perahasiaan pengguna menurut pemblokiran",
+       "log-action-filter-suppress-reblock": "Penyembunyian oleh pengguna menurut pemblokiran",
+       "log-action-filter-upload-upload": "Unggahan baru",
+       "log-action-filter-upload-overwrite": "Unggah kembali",
+       "authmanager-authn-not-in-progress": "Otentikasi tidak dilanjutkan atau data sesi telah hilang. Ulang kembali dari awal.",
+       "authmanager-authn-no-primary": "Kredensial yang diberikan tidak dapat diotentikasi.",
+       "authmanager-authn-no-local-user": "Kredensial yang diberikan tidak terkait dengan satu orang pun pengguna di wiki ini.",
+       "authmanager-authn-no-local-user-link": "Kredensial yang diberikan sah namun tidak terkait dengan satu orang pengguna pun di wiki ini. Silakan masuk log dengan cara lain, atau buat akun baru, dan Anda akan diberikan opsi untuk mengaitkan kredensial sebelumnya ke akun tersebut.",
+       "authmanager-authn-autocreate-failed": "Pembuatan otomatis dari akun lokal gagal: $1",
+       "authmanager-change-not-supported": "Kredensial yang diberikan tidak dapat diganti, karena tidak ada yang akan menggunakannya.",
+       "authmanager-create-disabled": "Pembuatan akun dimatikan.",
+       "authmanager-create-from-login": "Untuk membuat akun Anda, silakan isi kolom di bawah.",
+       "authmanager-create-not-in-progress": "Pembuatan akun tidak dilanjutkan atau data sesi telah hilang. Ulang kembali dari awal.",
+       "authmanager-create-no-primary": "Kredensial yang diberikan tidak dapat digunakan untuk pembuatan akun.",
+       "authmanager-link-no-primary": "Kredensial yang diberikan tidak dapat digunakan untuk menautkan akun.",
+       "authmanager-link-not-in-progress": "Penautan akun tidak dilanjutkan atau data sesi telah hilang. Ulang kembali dari awal.",
+       "authmanager-authplugin-setpass-failed-title": "Penggantian kata sandi gagal",
+       "authmanager-authplugin-setpass-bad-domain": "Domain tidak sah.",
+       "authmanager-autocreate-noperm": "Pembuatan akun otomatis tidak diizinkan.",
+       "authmanager-autocreate-exception": "Pembuatan akun otomatis dimatikan sementara karena galat sebelumnya.",
+       "authmanager-userdoesnotexist": "Pengguna \"$1\" tidak terdaftar.",
+       "authmanager-userlogin-remembermypassword-help": "Kata sandi harus diingat selama lebih dari lamanya sesi tersebut.",
+       "authmanager-username-help": "Nama pengguna untuk otentikasi.",
+       "authmanager-password-help": "Kata sandi untuk otentikasi.",
+       "authmanager-domain-help": "Domain untuk otentikasi eksternal.",
+       "authmanager-retype-help": "Ketik kata sandi lagi untuk mengonfirmasikan.",
+       "authmanager-email-label": "Surel",
+       "authmanager-email-help": "Alamat surel",
+       "authmanager-realname-label": "Nama asli",
+       "authmanager-realname-help": "Nama asli pengguna",
+       "authmanager-provider-password": "Otentikasi menurut kata sandi",
+       "authmanager-provider-password-domain": "Otentikasi menurut kata sandi dan domain",
+       "authmanager-provider-temporarypassword": "Kata sandi sementara",
+       "authprovider-confirmlink-message": "Menurut upaya masuk log Anda baru-baru ini, akun berikut dapat ditautkan kepada akun wiki Anda. Menautkannya akan mengizinkan untuk masuk log melalui akun tersebut. Silakan memilih akun mana yang akan ditautkan.",
+       "authprovider-confirmlink-request-label": "Akun yang akan ditautkan",
+       "authprovider-confirmlink-success-line": "$1: berhasil ditautkan.",
+       "authprovider-confirmlink-failed": "Penautan akun tidak berhasil: $1",
+       "authprovider-confirmlink-ok-help": "Lanjutkan setelah menampilkan pesan gagal penautan.",
+       "authprovider-resetpass-skip-label": "Lewati",
+       "authprovider-resetpass-skip-help": "Lewati pemulihan kata sandi.",
+       "authform-nosession-login": "Otentikasi berhasil, namun peramban Anda tidak dapat \"mengingat\" masuk log Anda.\n\n$1",
+       "authform-nosession-signup": "Akun telah dibuat, namun peramban Anda tidak dapat \"mengingat\" bahwa Anda sudah masuk log.\n\n$1",
+       "authform-newtoken": "Token hilang. $1",
+       "authform-notoken": "Token hilang",
+       "authform-wrongtoken": "Token salah",
+       "specialpage-securitylevel-not-allowed-title": "Tidak diizinkan",
+       "specialpage-securitylevel-not-allowed": "Maaf, Anda tidak diizinkan untuk menggunakan halaman ini karena identitas Anda tidak dapat diverifikasi.",
+       "authpage-cannot-login": "Tidak dapat memulai masuk log.",
+       "authpage-cannot-login-continue": "Tidak dapat melanjutkan masuk log. Sesi Anda kemungkinan sudah usang.",
+       "authpage-cannot-create": "Tidak dapat memulai pembuatan akun.",
+       "authpage-cannot-create-continue": "Tidak dapat melanjutkan pembuatan akun. Sesi Anda kemungkinan telah usang.",
+       "authpage-cannot-link": "Tidak dapat memulai penautan akun.",
+       "authpage-cannot-link-continue": "Tidak dapat melanjutkan penautan akun. Sesi Anda kemungkinan telah usang.",
+       "cannotauth-not-allowed-title": "Izin ditolak",
+       "cannotauth-not-allowed": "Anda tidak diizinkan menggunakan halaman ini.",
+       "changecredentials": "Ganti kredensial",
+       "changecredentials-submit": "Ganti kredensial",
+       "changecredentials-invalidsubpage": "$1 adalah jenis kredensial yang tidak sah.",
+       "changecredentials-success": "Kredensial Anda telah diganti.",
+       "removecredentials": "Hapus kredensial",
+       "removecredentials-submit": "Hapus kredensial",
+       "removecredentials-invalidsubpage": "$1 adalah jenis kredensial yang tidak sah.",
+       "removecredentials-success": "Kredensial Anda telah dihapus.",
+       "credentialsform-provider": "Jenis kredensial:",
+       "credentialsform-account": "Nama akun:",
+       "cannotlink-no-provider-title": "Tidak ada akun yang dapat ditautkan",
+       "cannotlink-no-provider": "Tidak ada akun yang dapat ditautkan.",
+       "linkaccounts": "Tautkan akun",
+       "linkaccounts-success-text": "Akun telah ditautkan.",
+       "linkaccounts-submit": "Tautkan akun",
+       "unlinkaccounts": "Lepastautkan akun",
+       "unlinkaccounts-success": "Akun berikut telah dilepastautkan."
 }
index db46511..53a910d 100644 (file)
        "allarticles": "Omni li articules",
        "allpagessubmit": "Applicar",
        "categories": "Categories",
-       "special-categories-sort-count": "Sorte per contar",
-       "special-categories-sort-abc": "Sorte alfabeticmen",
        "linksearch": "Catenunes extern",
        "linksearch-ns": "Spacie de nómine:",
        "linksearch-line": "$1 es ligat de $2",
index d8dae89..f379ef2 100644 (file)
        "protectedpagetext": "Ihüá cedolụ maka orürü ạ gáa bá.",
        "viewsourcetext": "Í nwèríkí lé na Í jé mkpurụ ihüá:",
        "protectedinterface": "Ihü nè nyé édé nke mkpátá màkà ngwa nsónùsòrò, na ó cẹdolu gbò mmelụ.",
-       "editinginterface": "'''Okwu egú:''' I na rü ihü né nyé ihu maka mkpurụ edemede nke eji-a-rü nka.\nGbanwere më ihüa ga mètú ihu élélé nke onye-na-banife maka ndi ozor.\nMaka ikuwaria na asụsụ nke ozor, biko chetu I ji [//translatewiki.net/wiki/Main_Page?setlang=ig translatewiki.net], ihe orü MediaWiki di na ama ama.",
+       "editinginterface": "'''Okwu egú:''' I na rü ihü né nyé ihu maka mkpurụ edemede nke eji-a-rü nka.\nGbanwere më ihüa ga mètú ihu élélé nke onye-na-banife maka ndi ozor.\nMaka ikuwaria na asụsụ nke ozor, biko chetu I ji [https://translatewiki.net/wiki/Main_Page?setlang=ig translatewiki.net], ihe orü MediaWiki di na ama ama.",
        "namespaceprotected": "I weghị ike I rüwa élu ihü nor na '''$1''' áháama.",
        "ns-specialprotected": "Ihü mkpà, a nweriki ru na ya.",
        "virus-badscanner": "Ndose ojọ: amaghị ólélé obubu onyá: ''$1''",
        "sourceurl": "URL mkpọlógwù:",
        "upload-description": "Nkówá usòrò",
        "watchthisupload": "Lèwá ákwúkwó orunotunị",
-       "upload-warning-subj": "Ndọ ntị màkà ntínyé",
        "http-read-error": "Nsogbu Í gü HTTP.",
        "upload-curl-error6": "Ènwéghịkị ruó URL",
        "license": "Nkwényé:",
        "pager-newer-n": "{{PLURAL:$1|1 nke ohúrù|$1 nke ohúrù}}",
        "pager-older-n": "{{PLURAL:$1|1 nke ichié |$1 nke ichié}}",
        "suppress": "Aghọ",
+       "apisandbox-results": "Nfụ́fụ̀tà",
        "booksources": "Ébé ákwúkwó shị",
        "booksources-search-legend": "Tuó íshí akwúkwó shì",
        "specialloguserlabel": "Ọ'bànifé:",
        "move-page-legend": "Páfù ihü",
        "movepagetext": "Í jí ákwúkwó òchá nke di na àlà gi gȯwá ótù ihü áhà ozor, na ȯ gi kwáfu ákíkó mbu ya na áhà nke ohürù.\nÍshí ihü nke ichié gi bu zi nkúfù gi gá áhà ohürù nke áhụ.\nÍ nwèríkí kúwárí nkúfù nke na ga áhà nke mbu na áká ya.\nȮ bu na Í chȯgị, kpàchákwá ánya Í lé má màkà nkúfù na gbá [[Special:DoubleRedirects|abụọ]] ma [[Special:BrokenRedirects|nkúfù gbájírí]].\nȮ dị na áká gi Í kpáchá ánya na jikodo na gá ébé o kwèshírí ga.\n\nChètákwá na ihü nke áhù '''ágághị''' a pú ȯ bu na ȯ dị ihü nwéré áhà áhù, bèelụ mà ȯ díghị ihe nọr ya na ímé ma ȯ bu nkúfù na onwé ya nke enweghị orürü nke mbu.\nIhe á fùtàrà na Í nwèríkí gọwáríá áhà ihü na nke mbu ya ȯ bu na Í gọrọ ọghọm, na Ì nwéghíkí dé na élú ihü di kwa.\n\n'''Kpàchákwá Ntị!'''\nIhe á nwèríkí bu ngbanwe ukwu mákà ihü ne wu;\nBiko kpàchá kwa ánya Í mà na ihe í ne mé na ógè gbárá mbu mgbè Í gí mé ya.",
        "movepagetalktext": "Ihü owu ya gi fwüor na áká ya na ihü nke gárá '''bèelụ mà:'''\n*Ihü okwu nke énwéghị ihe nọr na ímé ya na ȯ dị nà áhà ohürù nke áhù, mà\n*Í piáfù igbé nọr nà àlà ngá.\n\nNa nke, Í gi páfù na Í mékȯtá ihü nà onwé gi ọ bu nà Í chọrọ.",
-       "movearticle": "Páfù ihü:",
        "newtitle": "Gá íshí édémédé nke:",
        "move-watch": "Lèmá ihü ó shị na ihü ȯ na gá",
        "movepagebtn": "Páfù ihü",
        "movelogpage": "Páfù ntínyé",
        "movereason": "Mgbághapụtà:",
        "revertmove": "gbanwe lá àzú",
-       "delete_and_move": "Bakahia na puzie",
        "delete_and_move_text": "== I kachafu gi me ==\nEbe ihü gé rú \"[[:$1]]\" di kwa.\nI chorí kàchafu ya ka uzor mepo maka mpuzie ne me?",
        "delete_and_move_confirm": "Eeh, kàchafu ihüa",
        "immobile-source-page": "Enwerịkị puzie ihüá.",
index 2dff4b6..a9d4378 100644 (file)
        "protectedpagetext": "Nasalakniban daytoy a panid tapno mapawilan ti panagurnos wenno dagiti dadduma pay a tignay.",
        "viewsourcetext": "Mabalinmo a kitaen ken tuladen ti taudan daytoy a panid.",
        "viewyourtext": "Mabalinmo a makita ken tuladen ti taudan dagiti <strong>inurnosmo</strong> iti daytoy panid.",
-       "protectedinterface": "Daytoy a panid ket mangited iti teksto ti interface para iti sopwer iti daytoy a wiki, ken nasalakniban tapno mapawilan ti panagabuso.\nTi aginayon wenno panagibaliw kadagiti panagipatarus para kadagiti amin a wiki,  pangngaasi nga usaren ti [//translatewiki.net/ translatewiki.net], ti lokalisasion a proyekto ti MediaWiki.",
+       "protectedinterface": "Daytoy a panid ket mangited iti teksto ti interface para iti sopwer iti daytoy a wiki, ken nasalakniban tapno mapawilan ti panagabuso.\nTi aginayon wenno panagibaliw kadagiti panagipatarus para kadagiti amin a wiki,  pangngaasi nga usaren ti [https://translatewiki.net/ translatewiki.net], ti lokalisasion a proyekto ti MediaWiki.",
        "editinginterface": "<strong>Ballaag:</strong> Ur-urnosem ti maysa a panid a maar-aramat a mangted iti teksto ti interface para iti sopwer.\nDagiti panagsukat iti daytoy a panid ket maarigan ti langa ti interface ti agar-aramat para kadagiti sabali nga agar-aramat iti daytoy a wiki.",
-       "translateinterface": "Ti aginayon wenno panagibaliw kadagiti panagipatarus para kadagiti amin a wiki,  pangngaasi nga usaren ti [//translatewiki.net/ translatewiki.net], ti lokalisasion a proyekto ti MediaWiki.",
+       "translateinterface": "Ti aginayon wenno panagibaliw kadagiti panagipatarus para kadagiti amin a wiki,  pangngaasi nga usaren ti [https://translatewiki.net/ translatewiki.net], ti lokalisasion a proyekto ti MediaWiki.",
        "cascadeprotected": "Daytoy a panid ket nasalaknibanen manipud iti panagurnos gapu ta nailak-am {{PLURAL:$1|iti sumaganad a panid|kadagiti sumaganad a panid}} a nasalakniban iti nalukatan a pagpilian ti \"sariap\":\n$2",
        "namespaceprotected": "Awan ti pammalubosmo nga agurnos kadagiti panid iti nagan ti espasio ti <strong>$1</strong>.",
        "customcssprotected": "Awan ti pammalubosmo nga agurnos iti daytoy panid ti CSS, ngamin ket naglaon ti personal a pannakaisaad iti sabali agar-aramat.",
        "resetpass-temp-password": "Temporario a kontrasenias:",
        "resetpass-abort-generic": "Ti panagsukat ti kontrasenias ket pinasardeng babaen ti maysa a pagpaatiddog.",
        "resetpass-expired": "Nagpason ti kontraseniasmo. Pangngaasi a mangisaad ti baro a kontrasenias tapno makastrek.",
-       "resetpass-expired-soft": "Nagpason ti kontraseniasmo, ken nasken a maisaad manen. Pangngaasi nga agpili tattan ti baro a kontrasenias, wenno pinduten ti \"{{int:resetpass-submit-cancel}}\"  tapno maisaad intono madamdama.",
-       "resetpass-validity-soft": "Saan nga umisu ti kontraseniasmo: $1\n\nAgpilika tattan ti baro a kontrasenias, wenno pinduten ti \"{{int:resetpass-submit-cancel}}\" tapno maisaad intono madamdama.",
+       "resetpass-expired-soft": "Nagpason ti kontraseniasmo, ken nasken a maisaad manen. Pangngaasi nga agpili tattan ti baro a kontrasenias, wenno pinduten ti \"{{int:authprovider-resetpass-skip-label}}\"  tapno maisaad intono madamdama.",
+       "resetpass-validity-soft": "Saan nga umisu ti kontraseniasmo: $1\n\nAgpilika tattan ti baro a kontrasenias, wenno pinduten ti \"{{int:authprovider-resetpass-skip-label}}\" tapno maisaad intono madamdama.",
        "passwordreset": "Isaad manen ti kontrasenias",
        "passwordreset-text-one": "Kompletuen daytoy a porma tapno makaawat iti temporario a kontrasenias babaen ti esurat.",
        "passwordreset-text-many": "{{PLURAL:$1|Agpunno ti maysa kadagiti pagikabilan tapno makaawat ti temporario a kontrasenias babaen ti esurat.}}",
        "apisandbox": "Pagsubokan ti API",
        "apisandbox-jsonly": "Nasken ti JavaScript tapno mausar ti pagipadasan ti API.",
        "apisandbox-api-disabled": "Ti API ket nabaldado iti daytoy a sitio.",
-       "apisandbox-intro": "Usaren daytoy a panid iti panagsubok ti <strong>MediaWiki a serbisio ti web ti API</strong>.\nKitaen [[mw:API:Main page|ti dokuemntasion ti API]] para iti ad-adu pay a salaysay ti panagusar ti API. Kas pagarigan: [//www.mediawiki.org/wiki/API#A_simple_example alaen ti linaon ti Umuna a Panid].  Agpili ti maaramid tapno makakita dagiti adu pay a pagarigan.\n\nLaglagipen nga uray daytoy ket pagipadasan, dagiti tignay nga aramidem iti daytoy a panid ket mabalin a mangbaliw iti wiki.",
+       "apisandbox-intro": "Usaren daytoy a panid iti panagsubok ti <strong>MediaWiki a serbisio ti web ti API</strong>.\nKitaen [[mw:API:Main page|ti dokuemntasion ti API]] para iti ad-adu pay a salaysay ti panagusar ti API. Kas pagarigan: [https://www.mediawiki.org/wiki/API#A_simple_example alaen ti linaon ti Umuna a Panid].  Agpili ti maaramid tapno makakita dagiti adu pay a pagarigan.\n\nLaglagipen nga uray daytoy ket pagipadasan, dagiti tignay nga aramidem iti daytoy a panid ket mabalin a mangbaliw iti wiki.",
        "apisandbox-fullscreen": "Padakkelen ti entrapanio",
        "apisandbox-fullscreen-tooltip": "Padakkelen ti entrapanio ti pagipadasan tapno mapunnuan ti tawa ti pagbasabasa.",
        "apisandbox-unfullscreen": "Ipakita ti panid",
        "allmessagesname": "Nagan",
        "allmessagesdefault": "Kasisigud a testo ti mensahe",
        "allmessagescurrent": "Agdama a testo ti mensahe",
-       "allmessagestext": "Daytoy ti listaan dagiti mensahe ti sistema a magun-od iti nagan ti espasio ti MediaWiki.\nPangngaasi a bisitaen ti [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Lokalisasion ti MediaWiki] ken [//translatewiki.net translatewiki.net] no kayatmo ti agparawad kadagiti sapasap a panagipatarus ti MediaWiki.",
+       "allmessagestext": "Daytoy ti listaan dagiti mensahe ti sistema a magun-od iti nagan ti espasio ti MediaWiki.\nPangngaasi a bisitaen ti [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Lokalisasion ti MediaWiki] ken [https://translatewiki.net translatewiki.net] no kayatmo ti agparawad kadagiti sapasap a panagipatarus ti MediaWiki.",
        "allmessagesnotsupportedDB": "Daytoy a panid ket saan a musar gapu ta nabaldado ti <strong>$wgUseDatabaseMessages</strong>.",
        "allmessages-filter-legend": "Sagat",
        "allmessages-filter": "Sagaten babaen ti naipaduma a kasasaad:",
index 3cc20c6..d735991 100644 (file)
                        "Shirayuki",
                        "ElizaMag",
                        "Adam-Yourist",
-                       "Matma Rex"
+                       "Matma Rex",
+                       "Tusholi"
                ]
        },
        "tog-underline": "ТIахьожаярга кIала така хьакхар:",
        "tog-hideminor": "Къайладаккха з|амига дола хувцамаш керда хувцамашта юкъера",
-       "tog-hidepatrolled": "Къайладаккха ха дера чакхдаьнна дола хувцамаш керда хувцамашта юкъера",
-       "tog-newpageshidepatrolled": "Къайлаяьккха ха дера чакхъянна йола оагIонаш керда оагIонашта юкъера",
+       "tog-hidepatrolled": "Къайладаккха ха дера чакхдаьнна дола (патрулированные) хувцамаш керда хувцамашта юкъера",
+       "tog-newpageshidepatrolled": "Къайлаяьккха ха дера чакхъянна йола (патрулированные) оагIонаш керда оагIонашта юкъера",
        "tog-hidecategorization": "Къайлаяха оагӀонай категореш",
        "tog-extendwatchlist": "Хьашеръяь йола зем бара список, массадола хувцамаш ше чулоацаш, тIеххьара даь хувцамаш хинна ца Iеш.",
        "tog-usenewrc": "Хувцамаш тоабаш еш леладе керда нийсдарашка а, зем бара списка чу а",
-       "tog-numberheadings": "Ð\90вÑ\82омаÑ\82иÑ\87еÑ\81ки Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ°Ñ\88Ñ\82а Ð½Ñ\83меÑ\80аÑ\86и Ñ\85Ñ\8cае",
+       "tog-numberheadings": "Ð\90вÑ\82омаÑ\82иÑ\87еÑ\81ки Ð½Ñ\83меÑ\80аÑ\86и Ñ\85Ñ\8cае Ð´Ð¾Ð°ÐºÑ\8aой Ñ\86IеÑ\80аÑ\88Ñ\82а",
        "tog-showtoolbar": "ГIирсий панель хьахьокха хувцам беч хана",
        "tog-editondblclick": "Нисъе оагӀонаш шозза IотӀатоӀаеча (JavaScript)",
-       "tog-editsectiononrightclick": "Нийсде дакъа шозза дахка аьтта тоIаер тӀатоӀайича заголовка тIа (JavaScript)",
-       "tog-watchcreations": "Ð\97ем Ð±Ð°Ñ\80а Ñ\81пиÑ\81ка тIатоха аз хьаяь оагIонаши чуяьккха файлаши",
-       "tog-watchdefault": "Ð\97ем Ð±Ð°Ñ\80а Ñ\81пиÑ\81ка тIатоха аз хийца оагIонаши файлай йоазонца сурташ оттадари",
-       "tog-watchmoves": "Ð\97ем Ð±Ð°Ñ\80а Ñ\81пиÑ\81ка тIатоха аз цIи хийца оагIонаши файлаши",
-       "tog-watchdeletion": "Ð\97ем Ð±Ð°Ñ\80а Ñ\81пиÑ\81ка тIатоха аз дIаяьккха оагIонаши файлаши",
+       "tog-editsectiononrightclick": "Нийсде дáкъа шозза дахка аьттехьара тоIаер тӀатоӀайича дáкъа цIера тIа (JavaScript)",
+       "tog-watchcreations": "Ð\97ем Ð±ÐµÑ\88 Ð¹Ð¾Ð»Ð° Ð¾Ð°Ð³IонаÑ\88Ñ\82а Ð° Ñ\84айлаÑ\88Ñ\82а а тIатоха аз хьаяь оагIонаши чуяьккха файлаши",
+       "tog-watchdefault": "Ð\97ем Ð±ÐµÑ\88 Ð¹Ð¾Ð»Ð° Ð¾Ð°Ð³IонаÑ\88Ñ\82а Ð° Ñ\84айлаÑ\88Ñ\82а а тIатоха аз хийца оагIонаши файлай йоазонца сурташ оттадари",
+       "tog-watchmoves": "Ð\97ем Ð±ÐµÑ\88 Ð¹Ð¾Ð»Ð° Ð¾Ð°Ð³IонаÑ\88Ñ\82а Ð° Ñ\84айлаÑ\88Ñ\82а а тIатоха аз цIи хийца оагIонаши файлаши",
+       "tog-watchdeletion": "Ð\97ем Ð±ÐµÑ\88 Ð¹Ð¾Ð»Ð° Ð¾Ð°Ð³IонаÑ\88Ñ\82а Ð° Ñ\84айлаÑ\88Ñ\82а а тIатоха аз дIаяьккха оагIонаши файлаши",
        "tog-minordefault": "Массаза зIамига долаш санна белгалде хувцамаш.",
        "tog-previewontop": "Хьалххе бӀаргтохар хьагойта хувцама кора хьалхашкахь",
        "tog-previewonfirst": "Хувцама дехьавоалаш хан хьалххе бӀаргтохар хьагойта",
-       "tog-enotifwatchlistpages": "ЭлекÑ\82Ñ\80онни Ð¿Ð¾Ñ\87Ñ\82е Ð³Iолла Ñ\81ога Ñ\85оам Ð±Ðµ Ð·ÐµÐ¼ Ð±Ð°Ñ\80а Ñ\81пиÑ\81ка Ñ\87Ñ\83Ñ\80а Ð¾Ð°Ð³Iонай а файлаш хувцарах",
+       "tog-enotifwatchlistpages": "ЭлекÑ\82Ñ\80онни Ð¿Ð¾Ñ\87Ñ\82е Ð³Iолла Ñ\81ога Ñ\85оам Ð±Ðµ Ð·ÐµÐ¼ Ð±ÐµÑ\88 Ð¹Ð¾Ð»Ð° Ð¾Ð°Ð³IонаÑ\88 а файлаш хувцарах",
        "tog-enotifusertalkpages": "Электронни почте гIолла сога хоам бе са дувца оттадара оагIув хийцача",
        "tog-enotifminoredits": "ОагIонашта а файлашта даь хувцамаш геттара зIамига дале а хоам бе сога",
        "tog-enotifrevealaddr": "ДIахайта хоамбараш чу бIаргадейта са почта адрес",
-       "tog-shownumberswatching": "Шоай зем бара списка чу оагIув чуяьккха доакьошхой таьрахь гойта",
+       "tog-shownumberswatching": "Шоаш зем бу оагIонашта юкъе ер оагIув чуяьккха доакьошхоша таьрахь гойта",
        "tog-oldsig": "ХIанзара яздаь кулг:",
        "tog-fancysig": "Кулг яздара ший йола вики-разметка (автоматически тIахьожаярг йоацаш)",
        "tog-uselivepreview": "Пайда эца сиха дола хьалххе бIаргтохар",
        "tog-forceeditsummary": "ДIахьалхадаккха, нагахьа санна хувцама йоазонца сурт оттадара моттиг хьалъйизанза яле",
-       "tog-watchlisthideown": "Са теркама xьат|аяздара хувцамаш къайладаха",
-       "tog-watchlisthidebots": "ТеÑ\80кама xÑ\8cаÑ\82|аÑ\8fздаÑ\80 Ñ\87Ñ\83Ñ\80а Ð±|аÑ\82а хувцамаш къайладаха",
-       "tog-watchlisthideminor": "Са теркама xьат|аяздара з|амига хувцамаш къайладаха",
-       "tog-watchlisthideliu": "ТеÑ\80кама xÑ\8cаÑ\82|аÑ\8fздаÑ\80 Ñ\87Ñ\83Ñ\80а Ñ\85Ñ\8cабайза Ð´Ð¾Ð°ÐºÑ\8aоÑ\88Ñ\85оÑ\88а Ñ\85Ñ\83вÑ\86амаÑ\88 ÐºÑ\8aайладаÑ\85а",
-       "tog-watchlisthideanons": "ТеÑ\80кама xÑ\8cаÑ\82|аÑ\8fздаÑ\80 Ñ\87Ñ\83Ñ\80а Ñ\86|ийоаÑ\86аÑ\87а Ð´Ð¾Ð°ÐºÑ\8aоÑ\88Ñ\85оÑ\88а Ñ\85Ñ\83вÑ\86амаÑ\88 ÐºÑ\8aайладаÑ\85а",
-       "tog-watchlisthidepatrolled": "ТеÑ\80кама xÑ\8cаÑ\82|аÑ\8fздаÑ\80 Ñ\87Ñ\83Ñ\80а Ð´|анийÑ\81даÑ\8c Ñ\85Ñ\83вÑ\86амаÑ\88 ÐºÑ\8aайладаÑ\85а",
+       "tog-watchlisthideown": "Са зем бара хьаязъяьр чура хувцамаш къайладаха",
+       "tog-watchlisthidebots": "Ð\97ем Ð±Ð°Ñ\80а Ñ\85Ñ\8cаÑ\8fзÑ\8aÑ\8fÑ\8cÑ\80 Ñ\87Ñ\83Ñ\80а Ð±Ð¾Ñ\82ий хувцамаш къайладаха",
+       "tog-watchlisthideminor": "Са зем бара хьаязъяьр чура зIамига хувцамаш къайладаха",
+       "tog-watchlisthideliu": "ШоаÑ\88 Ñ\85Ñ\8cабайзийÑ\82а Ð´Ð¾Ð°ÐºÑ\8aоÑ\88Ñ\85оÑ\88а Ñ\85Ñ\83вÑ\86амаÑ\88 ÐºÑ\8aайладаÑ\85а Ð·ÐµÐ¼ Ð±Ð°Ñ\80а Ñ\85Ñ\8cаÑ\8fзÑ\8aÑ\8fÑ\8cÑ\80 Ñ\87Ñ\83Ñ\80а",
+       "tog-watchlisthideanons": "ЦIийоаÑ\86аÑ\87а Ð´Ð¾Ð°ÐºÑ\8aоÑ\88Ñ\85оÑ\88а Ñ\85Ñ\83вÑ\86амаÑ\88 ÐºÑ\8aайладаÑ\85а Ð·ÐµÐ¼ Ð±Ð°Ñ\80а Ñ\85Ñ\8cаÑ\8fзÑ\8aÑ\8fÑ\8cÑ\80 Ñ\87Ñ\83Ñ\80а",
+       "tog-watchlisthidepatrolled": "Ха Ð´Ð°Ñ\8c Ð´Ð¾Ð»Ð° Ñ\85Ñ\83вÑ\86амаÑ\88 ÐºÑ\8aайладаÑ\85а Ð·ÐµÐ¼ Ð±Ð°Ñ\80а Ñ\85Ñ\8cаÑ\8fзÑ\8aÑ\8fÑ\8cÑ\80 Ñ\87Ñ\83Ñ\80а",
        "tog-watchlisthidecategorization": "Къайлаяккха оагӀонай категореш",
-       "tog-ccmeonemails": "Ð\90з Ð´|аÑ\85ийÑ\82аÑ\88 Ð´Ð¾Ð»Ð° Ð´Ð¾Ð°ÐºÑ\8aоÑ\88Ñ\85оÑ\88оа ÐºÐ°Ñ\8cÑ\85аÑ\82аÑ\88 Ñ\81а Ð´-Ñ\85оамни Ñ\82|а Ð´Ð°Ð¹Ñ\82а Ñ\85Ñ\8cа",
-       "tog-diffonly": "Шин Ð½Ð¸Ð¹Ñ\81Ñ\85Ñ\8cале Ð²|аÑ\88инийÑ\81даÑ\80а Ðº|ала Ð±Ð¾Ð»Ð° Ð¾Ð°Ð³|он Ñ\87Ñ\83лоаÑ\86ам Ð¼Ð° Ð³Ð¾Ð¹Ñ\82а",
-       "tog-showhiddencats": "Ð\9aÑ\8aайла ÐºÐ°Ñ\82агаÑ\88 Ð³Ð¾Ð¹Ñ\82а",
+       "tog-ccmeonemails": "Сона Ñ\85Ñ\8cаÑ\82IааÑ\85ийÑ\82а Ð°Ð· Ð´Ð¾Ð°ÐºÑ\8aаÑ\88Ñ\85оÑ\88Ñ\82а Ð´IадаÑ\85ийÑ\82а Ð´Ð¾Ð»Ð° ÐºÐ°Ñ\8cÑ\85аÑ\82ий ÐºÐµÐ¿Ð°Ñ\88",
+       "tog-diffonly": "Ð\9cа Ð³Ð¾Ð¹Ñ\82а Ð¾Ð°Ð³Iон Ñ\87Ñ\83лоаÑ\86ам Ñ\88и Ð²ÐµÑ\80Ñ\81и Ð²IаÑ\88идиÑ\81Ñ\82аÑ\80а ÐºIал",
+       "tog-showhiddencats": "Ð\93ойÑ\82а ÐºÑ\8aайла ÐºÐ°Ñ\82егоÑ\80еÑ\88",
        "tog-useeditwarning": "Хоамбе хьадаь хувцамаш дӀа ца яздеш аз болх дӀаберзабеча ханахь",
        "underline-always": "Даиман",
-       "underline-never": "Ц|аккха",
-       "underline-default": "Ð\9cазаб|аÑ\80глокÑ\85аÑ\80a Ð¾Ñ\82Ñ\82амаÑ\88 Ñ\85айÑ\80аде",
-       "editfont-style": "Ð\9dийÑ\81даÑ\80а Ð¼ÐµÑ\82Ñ\82ига Ñ\87Ñ\83 Ð¹Ð¾Ð»Ð° Ð·Ð°Ñ\80ба Ð±|аÑ\80маÑ\82:",
+       "underline-never": "ЦIаккха",
+       "underline-default": "Ð\91Ñ\80аÑ\83зеÑ\80а Ð³IиÑ\80Ñ\81аÑ\88 Ñ\82оаÑ\8fÑ\80аÑ\88 Ð»ÐµÐ»Ð°е",
+       "editfont-style": "Ð¥Ñ\83вÑ\86ама Ð¼Ð¾Ñ\82Ñ\82иге Ñ\88Ñ\80иÑ\84Ñ\82а Ñ\82айпа:",
        "editfont-default": "Браузерен гӀирса чура шрифт",
-       "editfont-monospace": "Ð\91аÑ\88Ñ\85алон Ð·Ð°Ñ\80ба",
+       "editfont-monospace": "ЦÑ\85Ñ\8cаÑ\82аÑ\80Ñ\80а Ð¹Ð¾Ð°Ñ\86а Ñ\88Ñ\80иÑ\84Ñ\82",
        "editfont-sansserif": "Белгало йоаца шрифт",
        "editfont-serif": "Белгало йола шрифт",
        "sunday": "кIиранди",
        "monday": "оршот",
        "tuesday": "шинара",
        "wednesday": "Кхаьра",
-       "thursday": "ера",
+       "thursday": "éра",
        "friday": "пӀаьраска",
        "saturday": "шоатта",
        "sun": "КIиранди",
        "thu": "Ер",
        "fri": "ПI",
        "sat": "Шоа",
-       "january": "АгIой бутт",
-       "february": "Саь-кур бутт",
-       "march": "Мутт-хьал бутт",
-       "april": "Тушоли бутт",
-       "may_long": "Села бутт",
-       "june": "Этинга бутт",
-       "july": "Баьцамеа бутт",
-       "august": "Мяцхали бутт",
-       "september": "Михий бутт",
-       "october": "АьрхIий бутт",
-       "november": "Лай чилла бутт",
-       "december": "Чан-тар бутт",
-       "january-gen": "АгIой бетт",
+       "january": "АгIой",
+       "february": "Саь-кур",
+       "march": "Мутт-хьал",
+       "april": "Тушоли",
+       "may_long": "Села",
+       "june": "Этинга",
+       "july": "Баьцамеа",
+       "august": "Мяцхали",
+       "september": "Михий",
+       "october": "АьрхIий",
+       "november": "Лай чилла",
+       "december": "Чан-тар",
+       "january-gen": "АгIой",
        "february-gen": "Саь-кур",
-       "march-gen": "Мутт-хьал бетт",
+       "march-gen": "Мутт-хьал",
        "april-gen": "Тушоли",
-       "may-gen": "Села бетт",
-       "june-gen": "Этинга бетт",
-       "july-gen": "Баьцамеа бетт",
-       "august-gen": "Мецхали бетт",
-       "september-gen": "Тов\\Ð\9cиÑ\85ий Ð±ÐµÑ\82Ñ\82",
-       "october-gen": "Ð\90Ñ\80даÑ\80ий\\Ð\90Ñ\8cÑ\80Ñ\85Iий Ð±ÐµÑ\82Ñ\82",
-       "november-gen": "Лай чилла бетт",
-       "december-gen": "Чан-тар бетт",
+       "may-gen": "Села",
+       "june-gen": "Этинга",
+       "july-gen": "Баьцамеа",
+       "august-gen": "Мяцхали",
+       "september-gen": "Ð\9cиÑ\85ий",
+       "october-gen": "Ð\90Ñ\8cÑ\80Ñ\85Iий",
+       "november-gen": "Лай чилла",
+       "december-gen": "Чан-тар",
        "jan": "АгIой",
        "feb": "Саь-кур",
        "mar": "Мутт-хьал",
        "jul": "Баьцамеа",
        "aug": "Мяцхали",
        "sep": "Михий",
-       "oct": "Ð\90Ñ\80даÑ\80ий\\Ð\90Ñ\8cÑ\80Ñ\85Iий",
+       "oct": "АьрхIий",
        "nov": "Лай чилла",
        "dec": "Чан-тар",
-       "january-date": "АгIой бутт $1",
-       "february-date": "Саь-кур бутт $1",
-       "march-date": "Муттхьол $1",
+       "january-date": "АгIой $1",
+       "february-date": "Саь-кур $1",
+       "march-date": "Мутт-хьал $1",
        "april-date": "Тушоли $1",
-       "may-date": "Села бутт $1",
-       "june-date": "Ð\90Ñ\8cÑ\82инг $1",
-       "july-date": "Ð\9a|имаÑ\80Ñ\81 $1",
-       "august-date": "Мангал $1",
-       "september-date": "Ð\9cоажол $1",
-       "october-date": "Тов $1",
-       "november-date": "Лай чилла бутт $1",
-       "december-date": "Чантар $1",
+       "may-date": "Села $1",
+       "june-date": "ЭÑ\82инга $1",
+       "july-date": "Ð\91аÑ\8cÑ\86амеа $1",
+       "august-date": "Мяцхали $1",
+       "september-date": "Ð\9cиÑ\85ий $1",
+       "october-date": "Ð\90Ñ\8cÑ\80Ñ\85Iий $1",
+       "november-date": "Лай чилла $1",
+       "december-date": "Чан-тар $1",
        "period-am": "ДЦ",
        "period-pm": "ДТ",
        "pagecategories": "{{PLURAL:$1|1=Категори|Категореш}}",
        "category-empty": "''Ер категори хӀанза яьсса я (цхьаккха оагIонаш е файлаш йоацаш).''",
        "hidden-categories": "{{PLURAL:$1|1=Къайла категори|Къайла категореш}}",
        "hidden-category-category": "Къайла категореш",
-       "category-subcat-count": "{{PLURAL:$2|Укх категори чу я укхан кIалхара категори.|Укх категори чу я $1 {{PLURAL:$1|кIалхара категори|кIалхара категореш}} $2 массайолчарех.}}",
+       "category-subcat-count": "{{PLURAL:$2|Укх категори чу я алхха ер кIалхара категори.|Укх категори чу $2-нен юкъе $1 {{PLURAL:$1|кIалхара категори|кIалхара категореш}} я}}",
        "category-subcat-count-limited": "Укх категори чу {{PLURAL:$1|кIалхара категори|$1 кIалхара категореш}} я.",
        "category-article-count": "{{PLURAL:$2|Укх категори чу цаI мара оагIув яц.|Укх категори чу я $2 оагӀув, царех оагӀонгахь {{PLURAL:$1|хьагойта $1 оагӀув}}}}",
        "category-article-count-limited": "Укх категори чу {{PLURAL:$1|$1 оагӀув я|1=цаI оагӀув мара яц}}.",
        "noindex-category": "Индекс ца оттаеш оагIонаш",
        "broken-file-category": "Файла тIахьожаяргаш болхбеш йоаца оагIонаш",
        "about": "Сурт оттадар",
-       "article": "Ð\99оазÑ\83в",
+       "article": "СÑ\82аÑ\82Ñ\8cÑ\8f",
        "newwindow": "&nbsp;(керда кора чу)",
        "cancel": "Юхадаккха",
        "moredotdotdot": "ДIахо...",
        "and": "&#32;а",
        "qbfind": "Лахар",
        "qbbrowse": "БIаргтохар",
-       "qbedit": "Нисъе",
+       "qbedit": "Нийсде",
        "qbpageoptions": "ОагIон оттамаш",
-       "qbmyoptions": "Са Ð¾Ñ\82Ñ\82амаш",
+       "qbmyoptions": "Ð¥Ñ\8cа Ð³IиÑ\80Ñ\81аÑ\88 Ñ\82оаÑ\8fÑ\80аш",
        "faq": "КТХ",
        "faqpage": "Project:КТХ",
        "actions": "Ардамаш",
-       "namespaces": "ЦIеÑ\80ий Ð¼Ð¾Ñ\82Ñ\82аш",
+       "namespaces": "ЦIеÑ\80ий Ð°Ñ\80енаш",
        "variants": "Варианташ",
        "navigation-heading": "Навигацен меню",
        "errorpagetitle": "ГӀалат",
        "delete": "ДӀаяккха",
        "deletethispage": "ДӀаяккха ер оагӀув",
        "undeletethispage": "Юхаметтаоттае ер оагӀув",
-       "undelete_short": "ЮÑ\85амеÑ\82Ñ\82аоÑ\82Ñ\82ае {{PLURAL:$1|$1 Ð½Ð¸Ð¹Ñ\81даÑ\80|$1 Ð½Ð¸Ð¹Ñ\81даÑ\80аÑ\88|1=нийÑ\81даÑ\80}}",
+       "undelete_short": "ЮÑ\85амеÑ\82Ñ\82аоÑ\82Ñ\82де {{PLURAL:$1|$1 Ð½Ð¸Ð¹Ñ\81даÑ\80|$1 Ð½Ð¸Ð¹Ñ\81даÑ\80аÑ\88}}",
        "viewdeleted_short": "{{PLURAL:$1|$1 дIадаьккха нийсдарга|дIадаьккха нийсдарга|$1 дIадаьккха нийсдарашга}} хьажар",
-       "protect": "Ð\93Iо Ð´Ð°Ñ\80",
+       "protect": "Ð\93Iо Ð´Ðµ",
        "protect_change": "хувца",
-       "protectthispage": "ГIо де укх оагIон",
+       "protectthispage": "ГIо (лорадар) де укх оагIон",
        "unprotect": "ГIо хувца",
-       "unprotectthispage": "Укх оагIон гIо хувца",
+       "unprotectthispage": "Укх оагIон гIо (лорадар) хувца",
        "newpage": "Керда оагӀув",
        "talkpage": "Ер оагIув ювца",
        "talkpagelinktext": "дувца оттадар",
-       "specialpage": "Ð\91алха оагӀув",
+       "specialpage": "Ð\93\83лакха оагӀув",
        "personaltools": "Доакъашхочун гӀирсаш",
-       "articlepage": "Ð\99оазон Ñ\82|а Ð±|аÑ\80гÑ\82аÑ\81Ñ\81а",
+       "articlepage": "Ð\91IаÑ\80гÑ\82оÑ\85а Ð¾Ð°Ð³Iонга",
        "talk": "Дувца оттадар",
        "views": "Хьажараш",
        "toolbox": "ГӀирсаш",
-       "userpage": "Ð\94оакÑ\8aоÑ\88Ñ\85оÑ\87Ñ\83н Ð¾Ð°Ð³|он Ñ\82|а Ð±|аÑ\80гÑ\82аÑ\81Ñ\81а",
-       "projectpage": "Ð¥Ñ\8cаÑ\85Ñ\8cоадайÑ\82ама Ð¾Ð°Ð³|oн Ñ\82|а Ð±|аÑ\80гÑ\82аÑ\81Ñ\81а",
-       "imagepage": "Ð\9bÑ\83Ñ\80даÑ\80а Ð¾Ð°Ð³|oн Ñ\82|а Ð±|аÑ\80гÑ\82аÑ\81Ñ\81а",
-       "mediawikipage": "Xоаман оаг|ув хьахьокха",
-       "templatepage": "Ч|абала Ð¾Ð°Ð³|oн Ñ\82|а Ð±|аÑ\80гÑ\82аÑ\81Ñ\81а",
-       "viewhelppage": "Ð\93Ó\80о Ñ\85Ñ\8cаэцар",
-       "categorypage": "Ð\9aаÑ\82ага Ð¾Ð°Ð³|oн Ñ\82|а Ð±|аÑ\80гÑ\82аÑ\81Ñ\81а",
-       "viewtalkpage": "Дувцамага б|аргтасса",
+       "userpage": "Ð\94оакÑ\8aаÑ\88Ñ\85оÑ\87Ñ\83н Ð¾Ð°Ð³Iон Ð±IаÑ\80гÑ\82оÑ\85а",
+       "projectpage": "Ð\9fÑ\80оекÑ\82а Ð¾Ð°Ð³Iон Ð±IаÑ\80гÑ\82оÑ\85а",
+       "imagepage": "Файла Ð¾Ð°Ð³Iон Ð±IаÑ\80гÑ\82оÑ\85а",
+       "mediawikipage": "Хьахьокха хоам бара оагIув",
+       "templatepage": "Ð\9bеÑ\80а Ð¾Ð°Ð³Iон Ð±IаÑ\80гÑ\82оÑ\85а",
+       "viewhelppage": "Ð\9dовкÑ\8aоÑ\81Ñ\82ал эцар",
+       "categorypage": "Ð\9aаÑ\82егоÑ\80ен Ð¾Ð°Ð³Iон Ð±IаÑ\80гÑ\82оÑ\85а",
+       "viewtalkpage": "Дувца оттадара бIаргтоха",
        "otherlanguages": "Кхыча меттаех",
-       "redirectedfrom": "($1 тIaра укхаз хьахьожаяь я)",
-       "redirectpagesub": "Ð\94|а-Ñ\85Ñ\8cа Ð´Ð°Ð¹Ñ\82а Ð¾Ð°Ð³|Ñ\83в",
+       "redirectedfrom": "($1 дIа-сахьожаяьй укхаз)",
+       "redirectpagesub": "Ð\9eагIÑ\83в-дIа-Ñ\81аÑ\85Ñ\8cожадаÑ\80",
        "redirectto": "ДIа-сахьожадар укхаза:",
        "lastmodifiedat": "Укх оагIoн тIеххьара хувцам: $2, $1.",
-       "viewcount": "Укх оаг|oн т|а б|аргтассаб {{PLURAL:$1|цхьааца\n|$1 times}}. {{PLURAL:$1|1=цхьазза|$1за}}.",
-       "protectedpage": "Ð\9bоÑ\80ама Ð¾Ð°Ð³|ув",
+       "viewcount": "Укх оагIонга хьежа хиннаб $1{{PLURAL:$1|-зза}}.",
+       "protectedpage": "Ð\93Iо Ð¾Ñ\82Ñ\82адаÑ\8c Ð»Ð¾Ñ\80аÑ\8fÑ\8c Ð¾Ð°Ð³Iув",
        "jumpto": "Дехьавала укхаза:",
        "jumptonavigation": "навигаци",
        "jumptosearch": "лахар",
-       "pool-timeout": "ЧIегатохара сабаран ха чакхаяьннай",
-       "pool-queuefull": "ХаÑ\82Ñ\82аÑ\80ий Ñ\86Ó\80а хьалдизад",
+       "pool-timeout": "ЧIега тохара сабардара ха чакхаяьннай",
+       "pool-queuefull": "Ð\94IаÑ\85аÑ\82Ñ\82аÑ\80ий Ð³Ñ\83лдеÑ\80 хьалдизад",
        "pool-errorunknown": "Довзаш доаца гӀалат",
-       "poolcounter-usage-error": "Ð\9bелдаÑ\80а Ð³|алат: $1",
+       "poolcounter-usage-error": "Ð\9fайда Ñ\8dÑ\86аÑ\80а Ð³Iалат: $1",
        "aboutsite": "{{grammar:genitive|{{SITENAME}}}} лаьца дар",
        "aboutpage": "Project:Сурт оттадар",
-       "copyright": "$1 чулоацамаца тIакхоачаш да.",
+       "copyright": "Чудара тIакхоачилга $1 лицензе бокъонца да, нагахьа кхыдар белгалдаь деце.",
        "copyrightpage": "{{ns:project}}:Автора бокъонаш",
        "currentevents": "ХӀанзара хинна хIамаш",
        "currentevents-url": "Project:ХӀанзара хинна хIамаш",
-       "disclaimers": "Ð\91еÑ\85кÑ\82окÑ\85ам Ñ\85Ñ\8cацаэцар",
-       "disclaimerpage": "Project:Ð\91еÑ\85кÑ\82окÑ\85ам Ñ\85Ñ\8cацаэцар",
+       "disclaimers": "Ð\91еÑ\85кÑ\82окÑ\85ам Ñ\82Iацаэцар",
+       "disclaimerpage": "Project:Ð\91еÑ\85кÑ\82окÑ\85ам Ñ\82Iацаэцар",
        "edithelp": "Хувцам бара новкъостал",
-       "helppage-top-gethelp": "Ð\93Ó\80о",
+       "helppage-top-gethelp": "Ð\9dовкÑ\8a\81Ñ\82ал",
        "mainpage": "Керттера оагӀув",
        "mainpage-description": "Керттера оагӀув",
        "policy-url": "Project:Бокъонаш",
        "portal-url": "Project:Юкъара ков",
        "privacy": "КъайлагIара хIамай политика",
        "privacypage": "Project:КъайлагIара хIамай политика",
-       "badaccess": "ЧÑ\83валаÑ\80a гӀалат",
-       "badaccess-group0": "Оаш хьадийха дулархIам шун де йишяц.",
-       "badaccess-groups": "Дахта кхоачашдар {{PLURAL:$2|1=тоабачара|тоабашкара}} $1 дакъалаьцархой мара де бокъо яц.",
-       "versionrequired": "$1 MediaWiki доржам эша",
-       "versionrequiredtext": "Укх оагӀув бeлха MediaWiki доржамаш эша $1. Хьажа [[Special:Version|version page]].",
-       "ok": "Ð¥Ó\80аа",
+       "badaccess": "ТIакÑ\85оаÑ\87илга гӀалат",
+       "badaccess-group0": "Оаш дIадийха хинна ардам кхоачашде йиш яц шун.",
+       "badaccess-groups": "ДIадийха ардам кхоачашде могаш ба алхха доакъашхой {{PLURAL:$2|1=тоабан «$1»|укх тоабаш чура: $1}}",
+       "versionrequired": "Эшаш я $1 версех йола MediaWiki",
+       "versionrequiredtext": "Укх оагIонца болх бергболаш $1 версех йола MediaWiki эша. Хьажа [[Special:Version|програмни Iалашдарах бола хоамага]].",
+       "ok": "Ð\9cега",
        "retrievedfrom": "Хьаст — «$1»",
-       "youhavenewmessages": "Оаш $1 ($2) дӀайийцад",
-       "youhavenewmessagesmulti": "Ð\9eаÑ\88 $1Ñ\87Ñ\83 ÐºÐµÑ\80да Ñ\85оамаÑ\88 Ð´Ó\80айийÑ\86ад",
+       "youhavenewmessages": "{{PLURAL:$3|Хьога денад}} $1 ($2).",
+       "youhavenewmessagesmulti": "Ð¥Ñ\8cога ÐºÑ\85аÑ\8cÑ\87ад ÐºÐµÑ\80да Ñ\85оамаÑ\88 $1 Ñ\87Ñ\83",
        "editsection": "нийсде",
        "editold": "хувца",
-       "viewsourceold": "xьайоагӀа къайлорг тӀа бӀаргтасса",
+       "viewsourceold": "Хьажа дIадолалу ко́дага",
        "editlink": "хувца",
        "viewsourcelink": "Хьажа дIадолалу ко́дага",
        "editsectionhint": "Дáкъа хувца: $1",
-       "toc": "ЧÑ\83лоаÑ\86ам",
+       "toc": "ЧÑ\83даÑ\80",
        "showtoc": "хьахьокха",
-       "hidetoc": "къайладаккха",
-       "collapsible-collapse": "чудерзаде",
-       "collapsible-expand": "хьадоаржаде",
-       "confirmable-yes": "Xа",
+       "hidetoc": "хьулде",
+       "collapsible-collapse": "дIахьулде",
+       "collapsible-expand": "доаржаде",
+       "confirmable-yes": "XӀа-а",
        "confirmable-no": "A",
-       "thisisdeleted": "$1 бӀаргтасса е юхаметтаоттаде?",
-       "viewdeleted": "$1 бӀаргтасса?",
-       "restorelink": "{{PLURAL:$1|1=д|адaьккха хувцам|$1 д|адaьккха хувцамаш}}",
-       "feedlinks": "ЦÑ\83 тайпара:",
-       "site-rss-feed": "$1 RSS мугӀ",
+       "thisisdeleted": "БIаргтоха е юхаметтаоттае $1?",
+       "viewdeleted": "Хьажа $1?",
+       "restorelink": "{{PLURAL:$1|1=дIадaьккха нийсдар|$1 дIадaьккха нийсдараш}}",
+       "feedlinks": "УкÑ\85 тайпара:",
+       "site-rss-feed": "$1 — RSS-мугI",
        "site-atom-feed": "$1 — Atom-мугI",
-       "page-rss-feed": "\"$1\" RSS мугӀ",
+       "page-rss-feed": "$1 — RSS-мугI",
        "page-atom-feed": "«$1» — Atom-мугI",
        "red-link-title": "$1 (укх тайпара оагӀув яц)",
        "nstab-main": "Статья",
        "nstab-user": "Доакъашхо",
-       "nstab-media": "Медифаг",
+       "nstab-media": "Мультимедиа",
        "nstab-special": "ГIулакха оагӀув",
        "nstab-project": "Проектах лаьца",
        "nstab-image": "Файл",
-       "nstab-mediawiki": "Хоам",
+       "nstab-mediawiki": "Хоамбар",
        "nstab-template": "Ло",
-       "nstab-help": "Ð\93Ó\80о",
+       "nstab-help": "Ð\9dовкÑ\8aоÑ\81Ñ\82ал",
        "nstab-category": "Категори",
        "mainpage-nstab": "Керттера",
-       "nosuchaction": "ЦÑ\83 Ñ\82айпаÑ\80а Ð´Ñ\83лаÑ\80Ñ\85Iам Ð±ац",
-       "nosuchspecialpage": "Изза мо гӀон оагӀув яц",
+       "nosuchaction": "ЦÑ\83 Ñ\82айпаÑ\80а Ð°Ñ\80дам Ð´ац",
+       "nosuchspecialpage": "Изза мо гIулакха оагӀув яц",
        "error": "ГӀалат",
-       "databaseerror-query": "Дехар: $1",
-       "databaseerror-function": "Ð\91елÑ\85ма|ан: $1",
-       "databaseerror-error": "Г|алат: $1",
-       "missing-article": "Ð\9aоÑ\80аде Ð´ÐµÐ·Ð°Ñ\88 Ñ\85инна Ð¾Ð°Ð³Ó\80Ñ\83вни Ñ\8fздам ÐºÐ¾Ñ\80адаÑ\8cдаÑ\86 Â«$1» $2.\n\nÐ\98з Ð¼Ð¾ Ð³Ó\80алаÑ\82 Ð½Ð¸Ð¹Ñ\81алÑ\83Ñ\88 Ñ\85Ñ\83ла, Ñ\81аг Ñ\82иÑ\88Ñ\8aенна Ó\80инкаÑ\86а, Ð´|адаÑ\8cккÑ\85а Ð´Ð¾Ð»Ð° Ð¾Ð°Ð³Ó\80Ñ\83вни Ñ\85Ñ\83вÑ\86а Ð¸Ñ\81каÑ\80а Ñ\82Ó\80а Ñ\87Ñ\83вала Ð³Ó\80еÑ\80Ñ\82аÑ\87а.\n\nÐ\9dаггаÑ\85Ñ\8c Ñ\81анна Ð¸Ð· Ð¸Ñ\88Ñ\82Ñ\82а Ð´ÐµÑ\86e, Ñ\88оана Ð³Ó\80оÑ\80Ñ\81а Ó\80алаÑ\88 Ð´ÐµÑ\87а Ð³Ó\80алаÑ\82 ÐºÐ¾Ñ\80аÑ\8fÑ\8c Ñ\85ила Ð¼ÐµÐ³Ð°.\nÐ\94еÑ\85аÑ\80 Ð´Ð°, [[Special:ListUsers/sysop|мазакÑ\83лгалÑ\85оÑ\87оа]] Ñ\85оам Ð±Ðµ, URL Ñ\85Ñ\8cаÑ\85Ñ\8cокÑ\85аÑ\88.",
-       "missingarticle-rev": "(бÓ\80аÑ\80гоагÓ\80Ñ\83в № $1)",
-       "missingarticle-diff": "(башх: $1, $2)",
+       "databaseerror-query": "ДIадехар: $1",
+       "databaseerror-function": "ФÑ\83нкÑ\86и: $1",
+       "databaseerror-error": "ГIалат: $1",
+       "missing-article": "Ð\94аÑ\80ий Ð³Ñ\83ллам Ñ\87Ñ\83 Ð´IайийÑ\85а Ñ\82екÑ\81Ñ\82 Ñ\8fÑ\86 Ñ\83кÑ\85 Ð¾Ð°Ð³Iон Â«$1» Ñ\87Ñ\83Ñ\80а $2 ÐºÐ¾Ñ\80адаÑ\80 Ð´ÐµÐ·Ð°Ñ\88 Ñ\85инна.\n\nÐ\98з Ð¼Ð¾ Ð³IалаÑ\82 Ð½Ð¸Ð¹Ñ\81алÑ\83Ñ\88 Ñ\85Ñ\83л Ñ\82иÑ\88Ñ\8aенна Ñ\82IаÑ\85Ñ\8cожаÑ\8fÑ\80га Ð³Iолла Ð´IадаÑ\8cккÑ\85а Ð¾Ð°Ð³Ó\80он Ñ\85Ñ\83вÑ\86ама Ð¸Ñ\81Ñ\82оÑ\80и Ñ\82Ó\80а Ð´ÐµÑ\85Ñ\8cавала Ð³Ó\80еÑ\80Ñ\82аÑ\87а.\n\nÐ\9dагаÑ\85Ñ\8cа Ñ\81анна Ð¸Ð· Ð¸Ñ\88Ñ\82Ñ\82а Ð´ÐµÑ\86e, Ñ\88оана Ð¿Ñ\80огÑ\80аммни Ó\80алаÑ\88даÑ\80 Ñ\87Ñ\83 Ð³IалаÑ\82 ÐºÐ¾Ñ\80аÑ\8fÑ\8c Ñ\85ила Ð¼ÐµÐ³Ð°.\nÐ\94еÑ\85аÑ\80 Ð´Ð°, Ñ\86Ñ\83 Ð³IÑ\83лакÑ\85а Ñ\85оам Ð±Ðµ Ñ\86Ñ\85Ñ\8cа [[Special:ListUsers/sysop|мазаÑ\83Ñ\80Ñ\85алдеÑ\80Ñ\87Ñ\83нга]], Ñ\83кÑ\85азаÑ\80 URL Ð±ÐµÐ»Ð³Ð°Ð»Ñ\8fÑ\8cккÑ\85а.",
+       "missingarticle-rev": "(веÑ\80Ñ\81и № $1)",
+       "missingarticle-diff": "(башхало: $1, $2)",
        "internalerror": "Чура гӀалат",
        "internalerror_info": "Чура гӀалат: $1",
-       "cannotdelete-title": "Ð\9eагIÑ\83в Ð´IаÑ\8fккÑ\85а Ð¹Ð¸Ñ\88 Ñ\8fÑ\86 \"$1\"",
+       "cannotdelete-title": "Ð\9cегаÑ\88 Ñ\8fÑ\86 Ð´IаÑ\8fккÑ\85а Ð¾Ð°Ð³IÑ\83в \"$1\"",
        "badtitle": "Мегаш йоаца цӀи",
-       "badtitletext": "Ð\95заÑ\88 Ð¹Ð¾Ð»Ð° Ð¾Ð°Ð³Ó\80он Ñ\86Ó\80и Ð½Ð¸Ð¹Ñ\81а Ñ\8fÑ\86, Ñ\8fÑ\8cÑ\81Ñ\81а Ñ\8f, Ðµ Ñ\85аÑ\80Ñ\86аÑ\85Ñ\8c Ð¹Ð¾Ð°Ð»Ð°Ñ\8fй Ð¼ÐµÑ\82Ñ\82ай Ñ\8eкÑ\8aеÑ\80а Ñ\86Iи Ðµ Ð¸Ð½Ñ\82еÑ\80вики Ñ\86Ó\80и. Ð\98Ñ\88Ñ\82Ñ\82а, Ñ\86Ó\80еÑ\80а Ñ\8eкÑ\8aе Ð¾Ñ\82Ñ\82аде Ð¼ÐµÐ³Ð°Ñ\88 Ð´Ð¾Ð°Ñ\86а Ñ\85Ñ\8cаÑ\80акÑ\8aаÑ\88 Ð½Ð¸Ð¹Ñ\81аденна Ñ\85ила Ñ\82аÑ\80лÑ\83ш да.",
+       "badtitletext": "Ð\95заÑ\88 Ð¹Ð¾Ð»Ð° Ð¾Ð°Ð³Ó\80он Ñ\86Ó\80и Ð½Ð¸Ð¹Ñ\81а Ñ\8fÑ\86, Ñ\8fÑ\8cÑ\81Ñ\81а Ñ\8f, Ðµ Ñ\85аÑ\80Ñ\86аÑ\85Ñ\8c Ð¹Ð¾Ð°Ð»Ð°Ñ\8fй Ð¼ÐµÑ\82Ñ\82ий Ñ\8eкÑ\8aеÑ\80а Ñ\86Iи Ðµ Ð¸Ð½Ñ\82еÑ\80вики Ñ\86Ó\80и. Ð\98Ñ\88Ñ\82Ñ\82а, Ñ\86Ó\80еÑ\80а Ñ\8eкÑ\8aе Ð¾Ñ\82Ñ\82аде Ð¼ÐµÐ³Ð°Ñ\88 Ð´Ð¾Ð°Ñ\86а Ñ\85Ñ\8cаÑ\80акаÑ\88 Ð½Ð¸Ð¹Ñ\81аденна Ñ\85ила Ð¼ÐµÐ³Ð°ш да.",
        "viewsource": "Хьажар",
-       "actionthrottled": "Сихален овзамал",
-       "protectedpagetext": "Ер оаг|ув къайла я хувцамаш дергдоацаш е кхы дола х|амдараш.",
-       "virus-unknownscanner": "довзаÑ\88доаÑ\86а Ð¼Ð°Ð·Ð°Ñ\83ндоÑ\85Ñ\8cалÑ\83Ñ\80г:",
-       "welcomeuser": "Ð\9cаÑ\8cÑ\80Ñ\88а Ð´Ð¾Ð°Ð³|алд, $1!",
-       "yourname": "Ð\94акÑ\8aалаÑ\8cÑ\86аÑ\80Ñ\85оÑ\87Ñ\83нна Ñ\86Ó\80и:",
+       "actionthrottled": "Сухалах доазув дар",
+       "protectedpagetext": "Ер оагIув лораяь я цу тIа хувцамаш е кхы дола ардамаш дергдоацаш.",
+       "virus-unknownscanner": "йовзанза Ð°Ð½Ñ\82ивиÑ\80Ñ\83Ñ\81:",
+       "welcomeuser": "Ð\9cаÑ\8cÑ\80Ñ\88а Ð²Ð¾Ð°Ð³Iалва, Ð´Ð¾Ð°ÐºÑ\8aаÑ\88Ñ\85о $1!",
+       "yourname": "Ð\94агаÑ\80а Ð¹Ð¾Ð°Ð·Ð¾Ð½ Ñ\86Iи:",
        "userlogin-yourname": "Доакъашхочун цӀи",
        "userlogin-yourname-ph": "Iочуязъе хьай учёта яздара (доакъашхочун) цӀи",
-       "createacct-another-username-ph": "Чуйоалае доакъашхочун цӀи",
-       "yourpassword": "КъайладIоагӀа:",
+       "createacct-another-username-ph": "Iочуязъе доакъашхочун цӀи",
+       "yourpassword": "КъайладIоагIа:",
        "userlogin-yourpassword": "Пароль",
        "userlogin-yourpassword-ph": "Iочуязъе хьа пароль",
        "createacct-yourpassword-ph": "Iочуязъе пароль",
-       "yourpasswordagain": "Ð\9aÑ\8aайладIоагÓ\80а Ñ\8eÑ\85а Ó\80оÑ\8fзаде:",
+       "yourpasswordagain": "ЮÑ\85аÑ\8fзде ÐºÑ\8aайладIоагIа:",
        "createacct-yourpasswordagain": "Бакъйе пароль",
        "createacct-yourpasswordagain-ph": "Кхы цхьаькхаза Iочуязъе пароль",
-       "remembermypassword": "(укх $1 {{PLURAL:$1|1=ден|деношкахь}}) мара са чувалара/чуялара дагалоаца дезаш дац",
+       "remembermypassword": "ДагайоагIаш хилийта са дагара йоазув укх компьютер тӀа (цхьан $1 {{PLURAL:$1|дийнахь}})",
        "userlogin-remembermypassword": "Система чу виса",
-       "yourdomainname": "ШÑ\83н Ñ\86Ó\80еноагÓ\80Ñ\83в:",
+       "yourdomainname": "Ð¥Ñ\8cа Ð½Ð°Ð½Ð°-Ñ\86Iа:",
        "login": "Чувала/яла",
-       "nav-login-createaccount": "ЦÓ\80и Ñ\8fÑ\8cккÑ\85а/Ший oагÓ\80Ñ\83в ÐµÐ»Ð°",
-       "userlogin": "ЦÓ\80и Ñ\8fÑ\8cккÑ\85а/Ð\9eагÓ\80Ñ\83в ÐµÐ»Ð°",
-       "userloginnocreate": "ЧÑ\83вала/Ñ\8fла",
+       "nav-login-createaccount": "ШоаÑ\88 Ð´Ð¾Ð²Ð·Ð¸Ð¹Ñ\82аÑ\80 / Ð\94агаÑ\80а Ð¹Ð¾Ð°Ð·Ñ\83в ÐºÑ\85оллаÑ\80",
+       "userlogin": "ШоаÑ\88 Ð´Ð¾Ð²Ð·Ð¸Ð¹Ñ\82аÑ\80 Ðµ Ð´Ð°Ð³Ð°Ñ\80а Ð¹Ð¾Ð°Ð·Ñ\83в ÐºÑ\85оллаÑ\80",
+       "userloginnocreate": "ШоаÑ\88 Ð´Ð¾Ð²Ð·Ð¸Ð¹Ñ\82а",
        "logout": "Аравала/яла",
        "userlogout": "Аравала/яла",
-       "notloggedin": "Оаш шоай цӀи хьааьннадац",
+       "notloggedin": "Оаш шоаш довзийтадац системан",
        "userlogin-noaccount": "Доакъашхочун учета яздар дице хьа?",
        "userlogin-joinproject": "ДIахоттале {{SITENAME}}аца",
-       "nologin": "Ð\9bеламе Ð´IаÑ\8fздаÑ\80 Ð´Ð°Ñ\86? '''$1'''.",
-       "nologinlink": "Ð\9bеламе Ð´IаÑ\8fздаÑ\80 кхолла",
-       "createaccount": "УÑ\87Ñ\91Ñ\82а Ñ\8fздаÑ\80 хьакхолла",
-       "gotaccount": "Укхаза дӀаязабенна дий шо? '''$1'''.",
+       "nologin": "Ð\94агаÑ\80а Ð¹Ð¾Ð°Ð·Ñ\83в Ð¹Ð¸Ñ\86е Ñ\85Ñ\8cога? $1.",
+       "nologinlink": "Ð\94агаÑ\80а Ð¹Ð¾Ð°Ð·Ñ\83в Ñ\85Ñ\8cакхолла",
+       "createaccount": "Ð\94агаÑ\80а Ð¹Ð¾Ð°Ð·Ñ\83в хьакхолла",
+       "gotaccount": "Укхаза тхьовре дӀаяьзденна дий шо? $1.",
        "gotaccountlink": "Чувала/яла",
-       "userlogin-resetlink": "Чувала/яла цӀии дIоагӀаи дийцаденнадий?",
+       "userlogin-resetlink": "Чувалара/ялара дараш дицданнадий шоана?",
        "userlogin-resetpassword-link": "ТIеракхосс хьа пароль?",
        "userlogin-helplink2": "Система чуваларах новкъостал",
-       "createacct-emailoptional": "Электронни почта адрес (ца яздой мегаш да)",
+       "userlogin-createanother": "Кхыдола дагара йоазув хьакхолла",
+       "createacct-emailoptional": "Электронни почта адрес (ца яздича мегаш да)",
        "createacct-email-ph": "Iочуязде хьа электронни почта адрес",
-       "createaccountmail": "Ð\9aÑ\8aайладIоагIа Ð´-Ñ\85оамнеÑ\86 Ñ\85Ñ\8cадайÑ\82а",
+       "createaccountmail": "Ð\9fайда Ñ\8dÑ\86а Ñ\86а Ñ\85овÑ\88 Ð½Ð¸Ð¹Ñ\81денна ÐºÑ\8aайладIоагIа, Ð¸Ñ\88Ñ\82Ñ\82а Ñ\85Ñ\8cадайÑ\82а Ð¸Ð· Ð±ÐµÐ»Ð³Ð°Ð»Ð´Ð°Ñ\8c Ñ\8dлекÑ\82Ñ\80онни Ð¿Ð¾Ñ\87Ñ\82а Ð°Ð´Ñ\80еÑ\81а Ñ\82Ó\80а.",
        "createaccountreason": "Бахьан:",
        "createacct-reason": "Бахьан",
        "createacct-submit": "Хьакхолла учета яздар",
-       "createacct-benefit-heading": "{{SITENAME}} — хьо санна болача наха цхьан беш бола къахьгам ба.",
+       "createacct-another-submit": "Дагара йоазув хьакхолла",
+       "createacct-benefit-heading": "{{SITENAME}} — хьо санна болача наха цхьан беш бола къахьегам ба.",
        "createacct-benefit-body1": "{{PLURAL:$1|нийсдар|нийсдараш}}",
        "createacct-benefit-body2": "{{PLURAL:$1|статья|статьяш}}",
        "createacct-benefit-body3": "{{PLURAL:$1|доакъашхо|доакъашхой}} тӀеххьара хан",
-       "badretype": "Оаша яьккха дIоагIий цIераш шоайл таралуш яц.",
-       "loginerror": "Ð\94акÑ\8aалаÑ\8cÑ\86аÑ\80Ñ\85оÑ\87Ñ\83н Ñ\86Iи Ð½Ð¸Ð¹Ñ\81а Ñ\8fÑ\86",
-       "mailmypassword": "Керда къайлад|оаг|а эца",
-       "mailerror": "Хоам Ð´IабоÑ\85Ñ\8cийÑ\82аÑ\88 Ð³IалаÑ\82 Ð´Ð°Ñ\8cннад: $1",
-       "emailconfirmlink": "Ð\94оаÑ\80жален Ñ\85оамни Ñ\85Ñ\8cожадоÑ\80г Ð´IаÑ\87IоагIаде",
+       "badretype": "Оаша Iочуяьздаь къайладIоагIий цIераш цхьантара яц.",
+       "loginerror": "Ð\94оакÑ\8aаÑ\88Ñ\85о Ð²Ð¾Ð²Ð·Ð°Ñ\80а Ð³IалаÑ\82",
+       "mailmypassword": "КъайладIоагIа тIеракхоссар",
+       "mailerror": "Ð\9aаÑ\8cÑ\85аÑ\82 Ð´IадоÑ\85Ñ\8cиййÑ\82аÑ\88 Ð³Ó\80алаÑ\82 Ñ\85илаÑ\80: $1",
+       "emailconfirmlink": "Ð\91акÑ\8aде Ñ\85Ñ\8cа Ñ\8dлекÑ\82Ñ\80онни Ð¿Ð¾Ñ\88Ñ\82а Ð°Ð´Ñ\80еÑ\81",
        "loginlanguagelabel": "Мотт: $1",
        "pt-login": "Чувала/яла",
        "pt-login-button": "Чувала/яла",
-       "pt-createaccount": "УÑ\87Ñ\91Ñ\82а Ñ\8fздаÑ\80 хьакхолла",
+       "pt-createaccount": "Ð\94агаÑ\80а Ð¹Ð¾Ð°Ð·Ñ\83в хьакхолла",
        "pt-userlogout": "Аравала/яла",
        "changepassword": "КъайладIоaгIа дIахувцар",
        "oldpassword": "Къаьна къайладIоагӀа:",
        "newpassword": "Керда къайладIоагӀа:",
-       "retypenew": "Керда къайладIоагӀа юха Ӏоязаде:",
+       "retypenew": "Юхаязде керда къайладIоагӀа:",
+       "botpasswords-label-appid": "Бóта цӀи:",
+       "botpasswords-label-create": "Хьакхолла",
+       "botpasswords-label-update": "Кердадаккха",
+       "botpasswords-label-cancel": "Эшац",
+       "botpasswords-label-delete": "ДIадаккха",
+       "botpasswords-label-resetpassword": "Пароль тIеракхоссар",
        "resetpass-submit-loggedin": "КъайладIоагӀа дӀахувца",
-       "resetpass-submit-cancel": "ЮÑ\85авал/Ñ\8fлa",
+       "resetpass-submit-cancel": "ЭÑ\88аÑ\86",
        "passwordreset": "Пароль тIеракхоссар",
-       "passwordreset-username": "Дакъалаьцархочунна цӀи:",
-       "passwordreset-email": "Д-хоамни моттиг:",
-       "bold_sample": "Ах-сома текст",
-       "bold_tip": "Ах-сома текст",
+       "passwordreset-username": "Доакъашхочун цӀи:",
+       "passwordreset-domain": "Домен:",
+       "passwordreset-email": "Электронни почта адрес:",
+       "resettokens-tokens": "Токенаш:",
+       "bold_sample": "Сома йоазон текст",
+       "bold_tip": "Сома йоазон текст",
        "italic_sample": "Сиха йоазон текст",
        "italic_tip": "Сиха йоазон текст",
-       "link_sample": "ТIаÑ\85Ñ\8cожаÑ\8fÑ\80га Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº",
+       "link_sample": "ТIаÑ\85Ñ\8cожаÑ\8fÑ\80га Ð´Ã¡ÐºÑ\8aа Ñ\86Iи",
        "link_tip": "Чура тIахьожаярг",
-       "extlink_sample": "http://www.example.com Ñ\82IаÑ\85Ñ\8cожаÑ\8fÑ\80га Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº",
+       "extlink_sample": "http://www.example.com Ñ\82IаÑ\85Ñ\8cожаÑ\8fÑ\80га Ð´Ã¡ÐºÑ\8aа Ñ\86Iи",
        "extlink_tip": "Арахьара тIахьожаярг (йиц ма ялийтта префикс http://)",
-       "headline_sample": "Ð\97аголовка текст",
-       "headline_tip": "2-гӀа лагӀа заголовок",
+       "headline_sample": "Ð\94áкÑ\8aа Ñ\86IеÑ\80а текст",
+       "headline_tip": "2-гӀа лагӀара дáкъа цIи",
        "nowiki_sample": "Укхаза хувца езаш йоаца текст хьачуоттае",
        "nowiki_tip": "Теркал ма е вики-форматировани",
-       "image_tip": "Ð\94IаÑ\87уоттаяь файл",
+       "image_tip": "Чуоттаяь файл",
        "media_tip": "Файла тIахьожавар",
        "sig_tip": "Хьа кулгаяздар а, хӀанзара ха а",
        "hr_tip": "ПхьорагIен така (цох пайда эцар тIехдаьнна кастта ма де)",
-       "summary": "Ð¥Ñ\83вÑ\86амай сурт оттадар",
-       "subject": "Ð\91Ó\80агал/коÑ\80Ñ\82але:",
+       "summary": "Ð¥Ñ\83вÑ\86амий сурт оттадар",
+       "subject": "Тема/даÑ\8cкÑ\8aа Ñ\86Iи:",
        "minoredit": "ЗӀамига хувцам",
        "watchthis": "Зем бе укх оагӀон",
        "savearticle": "ОагӀув дIаязъе",
-       "preview": "Хьалхе бӀаргтассар",
+       "preview": "Хьалххе бIаргтохар",
        "showpreview": "Хьалххе бIаргтохар",
        "showdiff": "Даь дола хувцамаш",
-       "anoneditwarning": "<strong>Теркам бе!</strong> Хьо автор хинна система чуваьннавац. Нагахьа санна Iа моллагIа хувцам бой, Хьа IP-адрес дийла массанен бIаргагуш хургда. Нагахьа санна Хьо <strong>[$1 хьачувоале]</strong> е <strong>[$2 учёта яздар хьакхолле]</strong>, нийсдараш (хувцамаш) бувзам болаш хургда Хьа доакъашхой цIерца, иштта кхыдола толажагIи гIойленагIи дола дикаьш хургда Хьона.",
-       "summary-preview": "Ð\9bоаÑ\86ам Ð±а:",
-       "subject-preview": "Ð\9aоÑ\80Ñ\82але Ñ\85Ñ\83Ñ\80гÑ\8cÑ\8f:",
-       "blockedtitle": "Ð\94акÑ\8aалаÑ\8cÑ\86аÑ\80Ñ\85о Ñ\87Ó\80ега Ð±ÐµÐ»Ð° Ð²Ð°/Ñ\8f",
-       "blockednoreason": "баÑ\85Ñ\8cан Ð´Ð¾Ð°Ñ\86аÑ\88 Ð´Ð°",
-       "loginreqlink": "чувала/яла",
-       "loginreqpagetext": "Ð\9aÑ\85Ñ\8bйола Ð¾Ð°Ð³Ó\80Ñ\83внаÑ\88ка Ñ\85Ñ\8cожаÑ\80гдолаÑ\88, Ð¾Ð°Ñ\88 $1 Ð´Ðµ Ð´ÐµÐ·Ð°.",
+       "anoneditwarning": "<strong>Теркам бе!</strong> Хьо автор хинна система чуваьннавац. Нагахьа санна Iа моллагIа хувцам бой, Хьа IP-адрес дийла массанен бIаргагуш хургда. Нагахьа санна Хьо <strong>[$1 хьачувоале]</strong> е <strong>[$2 дагара йоазув хьакхолле]</strong>, нийсдараш (хувцамаш) бувзам болаш хургда Хьа доакъашхой цIерца, иштта кхыдола толажагIи гIойленагIи дола дикаьш хургда Хьона.",
+       "summary-preview": "СÑ\83Ñ\80Ñ\82 Ð¾Ñ\82Ñ\82адаÑ\80 Ñ\85Ñ\83Ñ\80гда:",
+       "subject-preview": "Ð\94аÑ\8cкÑ\8aа Ñ\86Iи Ñ\85Ñ\83Ñ\80гÑ\8cÑ\8f Ð¸Ñ\88Ñ\82Ñ\82а:",
+       "blockedtitle": "Ð\94оакÑ\8aаÑ\88Ñ\85оÑ\87Ñ\83н Ñ\87Iега Ñ\82еÑ\85аб",
+       "blockednoreason": "баÑ\85Ñ\8cан Ð±ÐµÐ»Ð³Ð°Ð»Ð´Ð°Ñ\8cккÑ\85а Ð´Ð°Ñ\86",
+       "loginreqlink": "довзийта",
+       "loginreqpagetext": "Ð\9eаÑ\88 Ñ\88оаÑ\88 $1 Ð´ÐµÐ·Ð° ÐºÑ\85Ñ\8bйола Ð¾Ð°Ð³IонаÑ\88ка Ñ\85Ñ\8cожаÑ\80гдолаÑ\88.",
        "accmailtitle": "КъайладIоагӀа дӀадахьийтад",
        "newarticle": "(Kерда)",
-       "newarticletext": "Шо Ñ\85Ñ\8cожаÑ\8fÑ\80гаÑ\86а Ð´ÐµÑ\85Ñ\8cадаÑ\8cннад Ð¹Ð¾Ð°Ñ\86а Ð¾Ð°Ð³Ó\80он Ñ\82Ó\80а.\nÐ\98з ÐºÑ\85оллаÑ\80гÑ\8cйолаÑ\88 ÐºÓ\80алÑ\85агÓ\80а Ð´Ð¾Ð°Ð»Ð° ÐºÐ¾Ñ\80аÑ\87Ñ\83 Ñ\82екÑ\81Ñ\82 IоÑ\87Ñ\83Ñ\8fзаде (нагаÑ\85Ñ\8cа ÐºÑ\85еÑ\82аде Ñ\85ала Ð´Ð°Ð»Ðµ [$1 Ð½Ð¾Ð²ÐºÑ\8aоÑ\81Ñ\82алан Ð¾Ð°Ð³Ó\80онга] Ñ\85Ñ\8cажа).\nЦа Ñ\85овÑ\88 Ñ\83кÑ\85аза Ð½Ð¸Ð¹Ñ\81деннадале, Ñ\88оай Ð±Ñ\80аÑ\83зеÑ\80а '''ЮÑ\85а''' (назад) ÐºÐ½Ð¾Ð¿ÐºÐ° Ñ\82Ó\80а Ð¿Ó\80елга тоӀабе.",
-       "noarticletext": "ХIанз укх оагӀув тӀа текст яц.\nШун аьттув ба [[Special:Search/{{PAGENAME}}|цу тайпара цӀи хьоаяр кораде]] кхыйола йоазуваш чу, иштта\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} тара дола тептарий яздаьраш], е\n'''[{{fullurl:{{FULLPAGENAME}}|action=edit}} изза мо цӀи йолаш оагӀув кхолла]'''</span>.",
-       "noarticletext-nopermission": "Ð¥Iанз Ñ\83кÑ\85 Ð¾Ð°Ð³Ó\80он Ñ\82Ó\80а Ñ\82екÑ\81Ñ\82 Ñ\8fÑ\86.\nШÑ\83н Ð°Ñ\8cÑ\82Ñ\82Ñ\83в Ð±Ð° [[Special:Search/{{PAGENAME}}|Ñ\86Ñ\83 Ñ\82айпаÑ\80а Ñ\86Ó\80и Ð±ÐµÐ»Ð³Ð°Ð»Ñ\8aÑ\8fÑ\80 Ñ\85Ñ\8cалаÑ\85а]] ÐºÑ\85Ñ\8bйола Ð¾Ð°Ð³IонаÑ\88 Ñ\82Iа, Ð¸Ñ\88Ñ\82Ñ\82а\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} Ñ\86Ñ\83н Ñ\82аÑ\80а Ð´Ð¾Ð»Ð° Ñ\82епÑ\82аÑ\80ай Ñ\8fздаÑ\8cÑ\80аÑ\88].</span> Ð\98Ñ\88Ñ\82Ñ\82а Ð¹Ð¾Ð»Ð° (Ð\95Ñ\80) оагӀув хьакхолла Хьа бокъо яц.",
-       "note": "'''Ð¥Ó\80амоалар:'''",
-       "previewnote": "'''Ð¥Ñ\8cалÑ\85е Ð±|аÑ\80гÑ\82аÑ\81Ñ\81ам Ð¼Ð°Ñ\80а Ð±Ð°Ñ\86.'''\nЯздам ÐºÑ\85Ñ\8b яздаь дац!",
+       "newarticletext": "Шо Ñ\82IаÑ\85Ñ\8cожаÑ\8fÑ\80гаÑ\86а Ð´ÐµÑ\85Ñ\8cадаÑ\8cннад Ð¹Ð¾Ð°Ñ\86а Ð¾Ð°Ð³Ó\80он Ñ\82Ó\80а.\nÐ\98з Ñ\85Ñ\8cакÑ\85оллаÑ\80гÑ\8cйолаÑ\88 ÐºÓ\80алÑ\85агÓ\80а Ð´Ð¾Ð°Ð»Ð° ÐºÐ¾Ñ\80аÑ\87Ñ\83 Ñ\82екÑ\81Ñ\82 IоÑ\87Ñ\83Ñ\8fзде (нагаÑ\85Ñ\8cа Ñ\81анна ÐºÑ\85еÑ\82аде Ñ\85ала Ð´Ð°Ð»Ðµ [$1 Ð½Ð¾Ð²ÐºÑ\8aоÑ\81Ñ\82алаÑ\80а Ð¾Ð°Ð³Ó\80онга] Ñ\85Ñ\8cажа).\nЦа Ñ\85овÑ\88 Ñ\83кÑ\85аза Ð½Ð¸Ð¹Ñ\81деннадале, Ñ\88оай Ð±Ñ\80аÑ\83зеÑ\80а '''ЮÑ\85а''' (назад) Ñ\82оIаеÑ\80 Ñ\82Ó\80а Ð¿Ó\80елг тоӀабе.",
+       "noarticletext": "ХIанза укх оагӀон тӀа текст яц.\nШун аьттув ба [[Special:Search/{{PAGENAME}}|цу тайпара цӀи хьоаяр кораде]] кхыйола оагIонаш тIа, иштта\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} тара дола тептарий дIаяздаьраш], е\n'''[{{fullurl:{{FULLPAGENAME}}|action=edit}} изза мо цӀи йолаш оагӀув хьакхолла]'''</span>.",
+       "noarticletext-nopermission": "Ð¥Iанз Ñ\83кÑ\85 Ð¾Ð°Ð³Ó\80он Ñ\82Ó\80а Ñ\82екÑ\81Ñ\82 Ñ\8fÑ\86.\nШÑ\83н Ð°Ñ\8cÑ\82Ñ\82Ñ\83в Ð±Ð° [[Special:Search/{{PAGENAME}}|Ñ\86Ñ\83 Ñ\82айпаÑ\80а Ñ\86Ó\80и Ð±ÐµÐ»Ð³Ð°Ð»Ñ\8aÑ\8fÑ\80 Ñ\85Ñ\8cалаÑ\85а]] ÐºÑ\85Ñ\8bйола Ð¾Ð°Ð³IонаÑ\88 Ñ\82Iа, Ð¸Ñ\88Ñ\82Ñ\82а\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} Ñ\82аÑ\80а Ð´Ð¾Ð»Ð° Ñ\82епÑ\82аÑ\80ай Ð´IаÑ\8fздаÑ\8cÑ\80аÑ\88].</span> Ð\95Ñ\80 оагӀув хьакхолла Хьа бокъо яц.",
+       "note": "'''Ð\91елгалдоаÑ\85ар:'''",
+       "previewnote": "'''ТеÑ\80кам Ð±Ðµ, ÐµÑ\80 Ñ\85Ñ\8cалÑ\85Ñ\85е Ð±IаÑ\80гÑ\82оÑ\85аÑ\80 Ð¼Ð°Ñ\80а Ð±Ð°Ñ\86.'''\nÐ¥Ñ\8cа Ñ\85Ñ\83вÑ\86амаÑ\88 Ñ\85Iанза Ð° Ð´Iаяздаь дац!",
        "editing": "Хувцам: $1",
        "creating": "«$1» оагIув хьакхоллар",
        "editingsection": "Хувцам: $1 (оагӀон дáкъа)",
-       "editingcomment": "Ð\93Ó\80алаÑ\82нийÑ\81даÑ\80 $1 (кеÑ\80да Ð´ÐµÐºÑ\8aам)",
-       "editconflict": "Ð\93Ó\80алаÑ\82нийÑ\81даÑ\80а ÐºÑ\8aовÑ\81ам: $1",
-       "yourtext": "Ð¥Ñ\8cа Ñ\8fздам",
-       "copyrightwarning": "Теркам бе, $2 ($1 хьажа) бокъонаца лорадеш, тӀахьежама кӀала уллаш, оаш мел чуяккхаш дола хоамаш, яздамаш долга.\nНаггахь санна шоай яздамаш пурам доацаш мала волашву саго хувца е кхы дола моттиге яздердолаш, безам беци, укхаз Ӏочуцаяздеча, дикаьгӀа да.<br />\nОаш дош лу, даь дола хувцама да волга/йолга, е оаш пурам долаш Ӏочуяздеш да кхычера меттигара шоай яздамаш/хоамаш.\n'''Яздархой бокъоца лорадеш дола хӀамаш, цара пурам доацаш, Ӏочумаязаде!'''",
-       "templatesused": "УкÑ\85 Ð¾Ð°Ð³Iон Ñ\82Iа {{PLURAL:$1|1=пайда Ñ\8dÑ\86а Ð\9bо|пайда Ñ\8dÑ\86а Ð\9bонаш}}:",
-       "templatesusedpreview": "Ð¥Ñ\8cалÑ\85е Ð±Ó\80аÑ\80гÑ\82аÑ\81Ñ\81ама Ð¾Ð°Ð³Ó\80Ñ\83в Ñ\82Ó\80а Ð»ÐµÐ»Ð°Ð´ÐµÑ\88 Ð´Ð¾Ð»Ð° {{PLURAL:$1|1=Ð\9aÑ\83Ñ\86кеп|Ð\9aÑ\83Ñ\86кепаш}}:",
+       "editingcomment": "Ð¥Ñ\83вÑ\86ам: $1 (оагÓ\80он ÐºÐµÑ\80да Ð´Ã¡ÐºÑ\8aа)",
+       "editconflict": "Ð¥Ñ\83вÑ\86ама Ð²IаÑ\88дÑ\83Ñ\85Ñ\8cалÑ\8aоÑ\82Ñ\82ам: $1",
+       "yourtext": "Ð¥Ñ\8cа Ñ\82екÑ\81Ñ\82",
+       "copyrightwarning": "Теркам бе, статьяй текста деррига хувцамаш а, тIатохараш а укх лицензи $2 хьалашца (условия) лоархIаш да (хь. $1).\nНагахь санна Шоай тексташ Шун пурам доацаш лоIаме даржийта а, моллагIа волча саго хувца йиш йолаш хилийта а Шун безам беце, уж укхаз (Википейде) ма язде.<br />\nИштта, Оаш бакъду Шоай тIатохама Шо автораш хилар, е из кеп яьккха укхаз хьачудаккхар лоIаме чудар долча хьаста (источник) тIара.\n'''АВТОРСКИ БОКЪОНАШЦА ЛОРАДЕШ ДОЛА МАТЕРИАЛАШ УКХАЗ ЧУ МА ДАХА!'''",
+       "templatesused": "УкÑ\85 Ð¾Ð°Ð³Iон Ñ\82Iа {{PLURAL:$1|1=пайда Ñ\8dÑ\86а Ð»Ð¾|пайда Ñ\8dÑ\86а Ð»ÐµÑ\80аш}}:",
+       "templatesusedpreview": "Ð\91IаÑ\80гÑ\82оÑ\85аÑ\80а Ñ\80аже {{PLURAL:$1|1=пайда Ñ\8dÑ\86аÑ\88 Ð»Ð¾|пайда Ñ\8dÑ\86аÑ\88 Ð»ÐµÑ\80аш}}:",
        "template-protected": "(лорадаь да)",
        "template-semiprotected": "(цхьа долча даькъе гIо оттадаь да)",
        "hiddencategories": "Ер оагIув {{PLURAL:$1|$1 къайла категориех|1=цаI къайла категорех}} я:",
        "permissionserrorstext-withaction": "Ер $2 де Хьа бокъо яц {{PLURAL:$1|1=из бахьан долаш|из бахьанаш долаш}}:",
-       "recreate-moveddeleted-warn": "'''Ð\97ем Ð±Ðµ! Ð¨Ð¾ Ñ\85Ñ\8cалÑ\85Ñ\85е Ð´IайоаккÑ\85аÑ\88 Ñ\85инна Ð¾Ð°Ð³Ó\80Ñ\83в Ñ\85Ñ\8cае Ð³Ó\80еÑ\80Ñ\82а.'''\n\nÐ¥Ñ\8cажа, Ð±Ð¾ÐºÑ\8aонÑ\86аÑ\85Ñ\8c ÐµÐ·Ð°Ñ\88 Ð¹Ð¾Ð»Ð³Ð°.\nÐ\9aÓ\80алÑ\85агIа Ñ\83кÑ\85 Ð¾Ð°Ð³Ó\80Ñ\83ви Ð´Ó\80адаккÑ\85ами Ñ\86Ó\80и Ñ\85Ñ\83вÑ\86ами Ñ\82епÑ\82аÑ\80аÑ\88 Ñ\85Ñ\8cекÑ\85а Ð´Ð°.",
+       "recreate-moveddeleted-warn": "'''ТеÑ\80кам Ð±Ðµ. Ð¥Ñ\8cо Ñ\8eÑ\85акÑ\85олла Ð³Ó\80еÑ\80Ñ\82а Ñ\85Ñ\8cалÑ\85а Ð´IаÑ\8fÑ\8cккÑ\85а Ñ\85инна Ð¾Ð°Ð³Ó\80Ñ\83в.'''\n\nÐ\94IаÑ\82аÑ\85ка, Ð±Ð¾ÐºÐºÑ\8aонÑ\86а Ñ\8dÑ\88ий Ñ\85Ñ\8cона Ð¸Ð· Ð¾Ð°Ð³IÑ\83в Ñ\8eÑ\85акÑ\85олла.\nÐ\9aÓ\80алÑ\85агIа Ñ\85Ñ\8cекÑ\85а Ð´Ð° Ñ\83кÑ\85 Ð¾Ð°Ð³Ó\80он Ð´Ó\80адаккÑ\85аÑ\80и Ñ\86Ó\80и Ñ\85Ñ\83вÑ\86аÑ\80и Ñ\82епÑ\82аÑ\80аÑ\88.",
        "moveddeleted-notice": "Ер оагӀув дӀаяккха хиннай.\nНовкъостала, кӀалха хьахьекха да дӀадаккхама а хувцама а тептарашкара дIаяздаьраш.",
-       "log-fulllog": "Ð\94еÑ\80Ñ\80ига Ñ\82апÑ\82аÑ\80а Ð±Ó\80аÑ\80гÑ\82аÑ\81Ñ\81а",
-       "edit-conflict": "Ð¥Ñ\83вÑ\86амий ÐºÑ\8aовÑ\81ам.",
-       "post-expand-template-inclusion-warning": "Зембаккхам: жамIан чIабалаш чулоаца дустам геттара доккха да.\nЦхьадола чIабалаш чулоацалургдац.",
-       "post-expand-template-inclusion-category": "ЧÑ\83лоаÑ\86а Ñ\87Iабала Ð¼ÐµÐ³Ð°Ñ\88 Ð´Ð¾Ð»Ð° Ð´Ñ\83Ñ\81Ñ\82ам Ð´Ñ\83кÑ\85алена Ñ\82Ó\80еÑ\85Ñ\8cайоала Ð¾Ð°Ð³Ó\80Ñ\83внаш",
-       "post-expand-template-argument-warning": "Зем бе! Ер оагӀув цаӀ куцкепа |аьлдош мара чулоацац, юхадастара сел доккха дустам йолаш.\nЦу тайпара |аьлдешаш ӀокӀаладаькха да.",
-       "post-expand-template-argument-category": "Ð\9aÑ\83Ñ\86кепий Ñ\82еÑ\80камза |аÑ\8cлдеÑ\88аÑ\88 Ñ\87Ñ\83лоаÑ\86а Ð¾Ð°Ð³Ó\80Ñ\83внаш",
+       "log-fulllog": "Ð\91IаÑ\80гÑ\82оÑ\85а Ñ\82апÑ\82аÑ\80ага Ð±IаÑ\80Ñ\87Ñ\87а",
+       "edit-conflict": "Ð¥Ñ\83вÑ\86ама Ð²IаÑ\88дÑ\83Ñ\85Ñ\8cалÑ\8aоÑ\82Ñ\82ам.",
+       "post-expand-template-inclusion-warning": "<strong>Хьалхдаккхар:</strong> юкъебаьккха лерий жамIа боарам сов боккха ба. Цхьаццабола лераш хьалсага хургбац.",
+       "post-expand-template-inclusion-category": "Ший Ñ\87Ñ\83лоаÑ\86аÑ\87а Ð»ÐµÑ\80ий Ð¼ÐµÐ³Ð°Ñ\88 Ð±Ð¾Ð»Ð° Ð±Ð¾Ð°Ñ\80ам Ñ\81овбаÑ\8cнна Ð¹Ð¾Ð»Ð° Ð¾Ð°Ð³Ó\80онаш",
+       "post-expand-template-argument-warning": "'''Теркам бе:''' укх оагIон чу даржар сов доккха дола белгало (аргумент) йолаш тешаме цаI ло ба.\nЦу тайпара белгалонаш гучадаьккха дац.",
+       "post-expand-template-argument-category": "Ð\9bеÑ\80ий Ñ\82еÑ\80кал Ñ\8fÑ\8c Ð¹Ð¾Ð°Ñ\86а Ð±ÐµÐ»Ð³Ð°Ð»Ð¾Ð½Ð°Ñ\88 (аÑ\80гÑ\83менÑ\82аÑ\88) Ñ\87Ñ\83лоаÑ\86аÑ\88 Ð¾Ð°Ð³Ó\80онаш",
        "viewpagelogs": "Укх оагӀон тептараш хьахьокха",
        "currentrev-asof": "тӀеххьара верси $1",
        "revisionasof": "Верси $1",
        "cur": "хӀанза.",
        "next": "тӀехь.",
        "last": "хьалха.",
-       "page_first": "Ñ\85Ñ\8cалÑ\85аÑ\80а",
+       "page_first": "Ñ\86Ñ\85Ñ\8cоаллагIа",
        "page_last": "тӀехьара",
-       "histlegend": "Ð\9aÑ\85еÑ\82ам: (Ñ\85Ó\80анз.) = Ñ\85Ó\80анза Ð¹Ð¾Ð»Ð°Ñ\87Ñ\83нна Ð±Ó\80аÑ\80гоагÓ\80Ñ\83вни Ñ\85Ñ\8cакÑ\8aоаÑ\81Ñ\82ам Ð±Ð°; (Ñ\85Ñ\8cалÑ\85.) = Ñ\85Ñ\8cалÑ\85а Ñ\85иннаÑ\87Ñ\83нна Ð±Ó\80аÑ\80гоагÓ\80Ñ\83вни Ñ\85Ñ\8cакÑ\8aоаÑ\81Ñ\82ам Ð±Ð°; '''зÓ\80''' = Ð·Ó\80амига Ñ\85Ñ\8cаÑ\85Ñ\83вÑ\86ам Ð±Ð°.",
-       "history-fieldset-title": "Исторе бӀаргтасса",
-       "history-show-deleted": "Ð\94Ó\80адаÑ\8cккÑ\85аÑ\80аÑ\88 Ð¼Ð°Ñ\80а",
-       "histfirst": "къаьнараш",
-       "histlast": "кердараш",
-       "historyempty": "(даьсса)",
+       "histlegend": "Ð\92еÑ\80Ñ\81ий Ñ\85оÑ\80жам: Ð±ÐµÐ»Ð³Ð°Ð»Ñ\8aе Ñ\88Ñ\83н Ð²IаÑ\88и Ð¹Ð¸Ñ\81Ñ\82а Ð±ÐµÐ·Ð°Ð¼ Ð±Ð¾Ð»Ð° Ð¾Ð°Ð³Iон Ð²ÐµÑ\80Ñ\81еÑ\88, Ñ\82IаккÑ\85а Ñ\82оIае '''{{int:compare-submit}}'''.<br />\nÐ\9aÑ\85еÑ\82аваÑ\80: '''({{int:cur}})''' â\80\94 ÐºÐ°Ñ\80аÑ\80а Ð²ÐµÑ\80Ñ\81еÑ\86а Ð´Ð¾Ð»Ð° Ð±Ð°Ñ\88Ñ\85алонаÑ\88; '''({{int:last}})''' â\80\94 Ñ\85Ñ\8cалÑ\85а Ð¹Ð¾Ð°Ð³IаÑ\88 Ð²ÐµÑ\80Ñ\81еÑ\86а Ð´Ð¾Ð»Ð° Ð±Ð°Ñ\88Ñ\85алонаÑ\88; '''{{int:minoreditletter}}''' â\80\94 Ð·Iамига Ñ\85Ñ\83вÑ\86амаÑ\88.",
+       "history-fieldset-title": "Исторена бIаргтоха",
+       "history-show-deleted": "Ð\90лÑ\85Ñ\85а Ð´Ó\80адаÑ\8cккÑ\85аÑ\80аÑ\88",
+       "histfirst": "эггара къаьнагIа",
+       "histlast": "эггара кердагIа",
+       "historyempty": "(яьсса)",
        "history-feed-title": "Хувцамий истори",
-       "history-feed-description": "Укх оагӀуви вики тӀа хувцамий истори",
-       "history-feed-item-nocomment": "$1гӀара $2гӀачу",
+       "history-feed-description": "Укх оагӀон Википейде дола хувцамий истори",
+       "history-feed-item-nocomment": "$1 → укх хан $2",
        "rev-delundel": "хьахьокха/къайлаяккха",
        "rev-showdeleted": "хьахьокха",
-       "revdelete-show-file-submit": "XӀаа",
+       "revdelete-show-file-submit": "XӀа-а",
        "revdelete-radio-set": "Къайла",
        "revdelete-radio-unset": "Гуш йола",
        "revdelete-log": "Бахьан",
-       "revdel-restore": "Ð\9aÑ\83Ñ\81Ñ\82гойÑ\82ам хувца",
-       "pagehist": "ОагӀува истори",
-       "deletedhist": "ДӀадаккхамий истори",
+       "revdel-restore": "Ð\9aÑ\83Ñ\86 хувца",
+       "pagehist": "ОагIон истори",
+       "deletedhist": "ДӀадаккхарий истори",
        "revdelete-reasonotherlist": "Кхыдола бахьан",
-       "mergehistory-list": "ВIашагIатоха хувцамий истори",
-       "mergehistory-go": "Ð\92IаÑ\88агIаÑ\82оÑ\85а Ñ\85Ñ\83вÑ\86амаÑ\88 Ñ\85Ñ\8cаÑ\85Ñ\8cокÑ\85а",
-       "mergehistory-submit": "Ð¥Ñ\83вÑ\86амаÑ\88 Ð²IаÑ\88агIаÑ\82оÑ\85а",
-       "mergehistory-empty": "Ð\92IаÑ\88агIаÑ\82оÑ\85аÑ\80а Ñ\85Ñ\83вÑ\86амаÑ\88 ÐºÐ¾Ñ\80аÑ\8fÑ\8c Ñ\8fÑ\86.",
+       "mergehistory-list": "ВIашагIхотталуш дола нийсдарий истори",
+       "mergehistory-go": "Ð¥Ñ\8cаÑ\85Ñ\8cокÑ\85а Ð²IаÑ\88агIÑ\85оÑ\82Ñ\82алÑ\83Ñ\88 Ð´Ð¾Ð»Ð° Ð½Ð¸Ð¹Ñ\81даÑ\80аÑ\88",
+       "mergehistory-submit": "Ð\92IаÑ\88агIÑ\85оÑ\82Ñ\82а Ð½Ð¸Ð¹Ñ\81даÑ\80аÑ\88",
+       "mergehistory-empty": "Ð\9aоÑ\80адинзаÑ\80 Ð½Ð¸Ð¹Ñ\81даÑ\80аÑ\88 Ð²IаÑ\88агIÑ\85оÑ\82Ñ\82адеÑ\80глолаÑ\88.",
        "mergehistory-reason": "Бахьан:",
-       "revertmerge": "Декъа",
+       "revertmerge": "Дéкъа",
        "history-title": "\"$1\" — хувцамай истори",
        "difference-title": "$1 — версешта юкъе йола башхало",
        "lineno": "МугI $1:",
-       "compareselectedversions": "Ð¥Ñ\8cаÑ\80жа Ð´Ð¾Ñ\80жамаÑ\88а Ñ\82аÑ\80она Ñ\82Iа Ñ\85Ñ\8cажа",
+       "compareselectedversions": "Ð\92IаÑ\88и Ð¹Ð¸Ñ\81Ñ\82а Ñ\85еÑ\80жа Ð²ÐµÑ\80Ñ\81еÑ\88",
        "editundo": "юхадаккха",
-       "diff-multi-sameuser": "({{PLURAL:$1|цхьа юкъ хулаш йола верси|$1 юкъ хулаш йола версеш}}гуш яц цу доакъашхочун)",
+       "diff-multi-sameuser": "({{PLURAL:$1|цхьа юкъ хулаш йола верси|$1 юкъ хулаш йола версеш}} гуш яц цу доакъашхочун)",
        "searchresults": "Лахар чакхдоалаш корадаьр",
        "searchresults-title": "«$1» лахар",
-       "notextmatches": "ОагIувнаша яздамий вIашагIакхетараш дац",
+       "notextmatches": "ОагIонай тексташта юкъе цхьатара хилар дац",
        "prevn": "{{PLURAL:$1|1=хьалхайогIар|хьалхайогIараш}} $1",
        "nextn": "{{PLURAL:$1|1=тIехьайоагIар|тIехьайоагIараш}} $1",
        "prevn-title": "{{PLURAL:$1|1=$1 хьалхара йоазув|$1 хьалхара йоазувнаш}}",
        "nextn-title": "{{PLURAL:$1|ТIадоагIа $1 яздар|ТIадоагIа $1 яздараш}}",
-       "shown-title": "Ð¥Ñ\8cóкÑ\85а $1 {{PLURAL:$1|даÑ\8c Ð¹Ð¾Ð°Ð·Ð¾|даÑ\8c Ð¹Ð¾Ð°Ð·Ð¾Ð½Ð°Ñ\88}} Ñ\83кÑ\85 Ð¾Ã¡Ð³IÑ\83вна тIа",
+       "shown-title": "Ð\93ойÑ\82а $1 {{PLURAL:$1|Ñ\8fздаÑ\8cÑ\80\8fздаÑ\8cÑ\80аÑ\88}} Ñ\83кÑ\85 Ð¾Ã¡Ð³Iон тIа",
        "viewprevnext": "ДIахьажа ($1 {{int:pipe-separator}} $2) ($3)",
-       "searchmenu-exists": "'''УкÑ\85 Ð¼Ð°Ñ\81Ñ\81а-Ñ\85Ñ\8cаÑ\85Ñ\8cоадайÑ\82амаÑ\87 ÐµÑ\80 Ð¾Ð°Ð³|Ñ\83в \"[[:$1]]\" Ñ\8f'''",
+       "searchmenu-exists": "'''УкÑ\85 Ð²Ð¸ÐºÐ¸ Ñ\87Ñ\83 Ð¹Ð¾Ð»Ð°Ñ\88 Ñ\8f Ð¾Ð°Ð³Ó\80Ñ\83в Â«[[:$1]]»'''",
        "searchmenu-new": "<strong>Хьакхолла оагIув «[[:$1]]» укх вики-проекте!</strong>\n{{PLURAL:$2|0=|Иштта хьажа Iайха лийха оагIонга.|Иштта хьажа хьай лахара хьахиннарашка.}}",
        "searchprofile-articles": "Кертера оагIонаш",
        "searchprofile-images": "Мультимедиа",
        "searchprofile-articles-tooltip": "$1 чу лахар",
        "searchprofile-images-tooltip": "Файлаш лахар",
        "searchprofile-everything-tooltip": "Массайола оагIонаш тIа лахар (дувцар оттадара оагIонаш чулоацаш)",
-       "searchprofile-advanced-tooltip": "IоÑ\87Ñ\83Ñ\8fзаÑ\8fÑ\8c Ñ\86IеÑ\80ий Ð¼Ð¾Ñ\82Ñ\82ашка лаха",
+       "searchprofile-advanced-tooltip": "IоÑ\87Ñ\83Ñ\8fзаÑ\8fÑ\8c Ñ\86IеÑ\80ий Ð°Ñ\80енашка лаха",
        "search-result-size": "$1 ({{PLURAL:$2|$2 дош|$2 дешаш}})",
        "search-result-category-size": "{{PLURAL:$1|1=$1 дакъа|$1 дакъаш}} ({{PLURAL:$2|1=$2 кIалцатег|$2 кIалцатегаш}}, {{PLURAL:$3|1=$3 паьла|$3 паьлий}})",
        "search-redirect": "(дIа-сахьожадар $1 тIара)",
-       "search-section": "(дакъа «$1»)",
+       "search-section": "(дáкъа «$1»)",
        "search-suggest": "Хьона эшар ер хила мега: $1",
-       "search-interwiki-caption": "Гаргалон хьахьоадайтамаш",
-       "search-interwiki-default": "$1 хьахиннараш:",
-       "search-interwiki-more": "(кха)",
-       "search-relatedarticle": "шоайл дола",
-       "searchrelated": "гаÑ\80гаÑ\80а",
+       "search-interwiki-caption": "Гаргара проекташ",
+       "search-interwiki-default": "Хьахиннараш укхазар $1:",
+       "search-interwiki-more": "(кхы а)",
+       "search-relatedarticle": "ВIашагIдувзаденна",
+       "searchrelated": "вIаÑ\88агIдÑ\83взаденна",
        "searchall": "деррига",
        "search-showingresults": "{{PLURAL:$4|Кораяьй <strong>$1</strong> — цхьа оагӀув|Из дош корадаьд <strong>$3</strong> оагӀонашка, царех гойта $2 оагӀув}}",
-       "search-nonefound": "Хьа дехар дара вIаши нийса доагIаш хилар корадаьдац.",
-       "powersearch-legend": " Доккха тахкар",
-       "powersearch-ns": " ЦIерий аренашкахь лахар",
+       "search-nonefound": "Хьа дехар дара вIаши нийса доагIаш дар корадаьдац.",
+       "powersearch-legend": "Шердаь лахар",
+       "powersearch-ns": "ЦIерий аренашкахь лахар:",
        "powersearch-toggleall": "Деррига",
        "powersearch-togglenone": "Цхьаккха",
-       "preferences": "Ð\9eÑ\82Ñ\82амаш",
+       "preferences": "Ð\93IиÑ\80Ñ\81 Ñ\82оаÑ\8fÑ\80аш",
        "mypreferences": "ГIирсаш",
-       "prefs-skin": "Ð\91Iагала ÐºÑ\83Ñ\86",
-       "skin-preview": "Ð¥Ñ\8cажа",
-       "prefs-personal": "Ð¥Ñ\8cа Ñ\85Ñ\8cай Ð´Ð°Ð»Ð°Ð¼",
-       "prefs-rc": "Керда хувцамаш",
-       "prefs-watchlist": "ТеÑ\80кама Ð´Ð°Ð³Ð°Ñ\80Ñ\87е",
-       "prefs-watchlist-days": "Ден дукхал",
-       "prefs-resetpass": "Ð\9aÑ\8aайладIоагIа Ñ\85Ñ\83вÑ\86а",
-       "prefs-rendering": "ТIеÑ\80а Ð±IаÑ\81а",
-       "saveprefs": "Дита",
-       "prefs-editing": "Ð\93IалаÑ\82нийÑ\81даÑ\80",
+       "prefs-skin": "ТIеÑ\80а ÐºÐ¸Ð¹Ñ\87даÑ\80а Ñ\82ема",
+       "skin-preview": "Ð¥Ñ\8cалÑ\85Ñ\85е Ð±IаÑ\80гÑ\82оÑ\85аÑ\80",
+       "prefs-personal": "Ð\94оакÑ\8aаÑ\88Ñ\85оÑ\87Ñ\83н Ð´Ð°Ñ\80аÑ\88",
+       "prefs-rc": "Керда нийсдараш",
+       "prefs-watchlist": "Ð\97ем Ð±Ð°Ñ\80а Ñ\85Ñ\8cаÑ\8fзÑ\8aÑ\8fÑ\8cÑ\80",
+       "prefs-watchlist-days": "Дéной дукхал:",
+       "prefs-resetpass": "Ð¥Ñ\83вÑ\86а ÐºÑ\8aайладIоагIа",
+       "prefs-rendering": "ТIеÑ\80а ÐºÑ\83Ñ\86",
+       "saveprefs": "ДIаязде",
+       "prefs-editing": "Ð¥Ñ\83вÑ\86ам",
        "searchresultshead": "Лахаp",
-       "timezonelegend": "СаÑ\85Ñ\8cаÑ\82и Ñ\8eкÑ\8a:",
-       "localtime": "Ð\92ола/Ð\99ола Ð¼Ð¾Ñ\82Ñ\82иги ха:",
-       "timezoneregion-africa": "Ð\90Ñ\8cпÑ\80ик",
-       "timezoneregion-america": "Iаьмрик",
-       "timezoneregion-antarctica": "ЭнÑ\82аÑ\80Ñ\86иÑ\82",
-       "timezoneregion-arctic": "ЭÑ\80Ñ\86иÑ\82",
-       "timezoneregion-asia": "Iаьзик",
-       "timezoneregion-atlantic": "Iаьтланта форд",
-       "timezoneregion-australia": "УÑ\81Ñ\82Ñ\80алик",
-       "timezoneregion-europe": "Ð\90Ñ\8cÑ\80оп",
-       "timezoneregion-indian": "Ð¥Iинда Ñ\84оÑ\80д",
-       "timezoneregion-pacific": "Тийна форд",
+       "timezonelegend": "СаÑ\85Ñ\8cаÑ\82а Ð¾Ð°Ñ\81а:",
+       "localtime": "Ð\9cоÑ\82Ñ\82ига ха:",
+       "timezoneregion-africa": "Ð\90Ñ\84Ñ\80ика",
+       "timezoneregion-america": "Америка",
+       "timezoneregion-antarctica": "Ð\90нÑ\82аÑ\80кÑ\82ика",
+       "timezoneregion-arctic": "Ð\90Ñ\80кÑ\82ика",
+       "timezoneregion-asia": "Ази",
+       "timezoneregion-atlantic": "Малхбузера океан",
+       "timezoneregion-australia": "Ð\90Ñ\81Ñ\82Ñ\80али",
+       "timezoneregion-europe": "Ð\95вÑ\80опа",
+       "timezoneregion-indian": "Ð¥Iиндий Ð¾ÐºÐµÐ°Ð½",
+       "timezoneregion-pacific": "Тийна океан",
        "prefs-searchoptions": "Лахар",
-       "prefs-files": "Паьлаш",
-       "youremail": "Д-хоамни:",
-       "username": "{{GENDER:$1|Доакъошхочун ц|и}}:",
-       "yourrealname": "Шун цIи:",
+       "prefs-namespaces": "ЦIерий аренаш",
+       "prefs-files": "Файлаш",
+       "youremail": "Электронни почта:",
+       "username": "{{GENDER:$1|Доакъашхочун цӀи}}:",
+       "yourrealname": "Бокъонца йола цIи:",
        "yourlanguage": "Мотт:",
-       "gender-male": "Массаоаг|онаш нийсaеш ва из",
-       "gender-female": "Массаоаг|онаш нийсаеш я из",
-       "email": "Д-хоамни",
-       "prefs-help-email": "Д-хоамни моттиг ала эшаш дац, амма новкъа даца, наггахь санна къайладIоагIа шоана дийцалой, цу тIа хьатIадайтаргда.",
-       "prefs-help-email-others": "Кхыбола дакъалаьцархоша шоаца бувзам я йийшхургья шун оагIува тIа гIолла, д-хоамни хьаела ца езаш.",
-       "prefs-signature": "Кулгяздар",
-       "userrights-user-editname": "Дакъалаьцархочунна цIи Iоязаде",
-       "editusergroup": "Дакъалаьцархочунна тоабаш хувца",
-       "saveusergroups": "Дакъалаьцархочунна тоабаш дита",
-       "userrights-groupsmember": "Тоабий дакъалаьцархо:",
+       "gender-male": "ВикиоагIонаш нийсaеш ва из",
+       "gender-female": "ВикиоагIонаш нийсaеш я из",
+       "email": "Email",
+       "prefs-help-email": "Электронни почта адрес оттаде параз дац, амма из эшаш хургда, нагахьа санна хьона хьа къайладIоагIа дицлой.",
+       "prefs-help-email-others": "Иштта цунца кхыболча доакъашхошта аьттув хургба шоаца бувзам бе а, шун оагIон тIа е шун дувца оттадара оагIон тIа йола тIахьожаяргаца.\nШун электронни почта адрес цхьаннена гуш хургъяц.",
+       "prefs-signature": "Кулг яздар",
+       "prefs-preview": "Хьалххе бIаргтохар",
+       "userrights-user-editname": "Iочуязъе доакъашхочун цӀи:",
+       "editusergroup": "Хувца {{GENDER:$1|доакъашхочун}} тоабаш",
+       "saveusergroups": "ДIаязъе {{GENDER:$1|доакъашхочун}} тоабаш",
+       "userrights-groupsmember": "Дакъа лоаца тоабаш чу:",
        "userrights-reason": "Бахьан:",
        "userrights-changeable-col": "Оаш хувца мегаш йола тоабаш",
-       "userrights-unchangeable-col": "Ð\9eаÑ\88 Ñ\85Ñ\83вÑ\86а Ð¼ÐµÐ³Ð°ш йоаца тоабаш",
-       "group": "Тоаб:",
-       "group-user": "Ð\94акÑ\8aалаÑ\8cÑ\86аÑ\80хой",
-       "group-bot": "Бташ",
-       "group-sysop": "Ð\9cазакÑ\83лгалÑ\85ой",
+       "userrights-unchangeable-col": "Ð¥Ñ\8cа Ñ\85Ñ\83вÑ\86а Ð¹Ð¸ш йоаца тоабаш",
+       "group": "Тоаба:",
+       "group-user": "Ð\94оакÑ\8aаÑ\88хой",
+       "group-bot": "Бóташ",
+       "group-sysop": "Ð\90дминиÑ\81Ñ\82Ñ\80аÑ\82оÑ\80аÑ\88",
        "group-all": "(деррига)",
-       "group-user-member": "{{GENDER:$1|дакÑ\8aалаÑ\8cÑ\86аÑ\80Ñ\85о|дакÑ\8aалаÑ\8cÑ\86аÑ\80хо}}",
-       "group-bot-member": "{{GENDER:$1|бт}}",
-       "group-sysop-member": "{{GENDER:$1|мазакÑ\83лгалÑ\85о}}",
-       "grouppage-user": "{{ns:project}}:Ð\94акÑ\8aалаÑ\8cÑ\86аÑ\80хой",
-       "grouppage-bot": "{{ns:project}}:Бташ",
-       "grouppage-sysop": "{{ns:project}}:Ð\9cазакÑ\83лгалÑ\85ой",
-       "right-read": "Ð\9eагIÑ\83внаÑ\88 Ð´ÐµÑ\88а",
-       "right-edit": "Ð\9eагIÑ\83внаÑ\88 Ñ\85Ñ\83вÑ\86а",
-       "right-createtalk": "дувцама оагIувний хьакхоллам",
-       "right-move": "Ð\9eагIÑ\83вний Ñ\86Iи Ñ\85Ñ\83вÑ\86а",
-       "right-movefile": "Паьлий цIи хувца",
+       "group-user-member": "{{GENDER:$1|доакÑ\8aаÑ\88хо}}",
+       "group-bot-member": "{{GENDER:$1|бот}}",
+       "group-sysop-member": "{{GENDER:$1|админиÑ\81Ñ\82Ñ\80аÑ\82оÑ\80}}",
+       "grouppage-user": "{{ns:project}}:Ð\94оакÑ\8aаÑ\88хой",
+       "grouppage-bot": "{{ns:project}}:Боташ",
+       "grouppage-sysop": "{{ns:project}}:Ð\90дминиÑ\81Ñ\82Ñ\80аÑ\82оÑ\80аÑ\88",
+       "right-read": "оагÓ\80онаÑ\88ка Ñ\85Ñ\8cажаÑ\80",
+       "right-edit": "оагÓ\80онаÑ\88 Ð½Ð¸Ð¹Ñ\81Ñ\8aÑ\8fÑ\80",
+       "right-createtalk": "дувца оттадара оагӀонаш кхоллар",
+       "right-move": "оагIонай Ñ\86IеÑ\80аÑ\88 Ñ\85Ñ\83вÑ\86аÑ\80",
+       "right-movefile": "файлай цӀераш хувцар",
        "right-writeapi": "ДIаяздара лаьрххIа API пайда эцар",
        "newuserlogpage": "Доакъашхой дIаязбаь таптар",
-       "rightslog": "Ð\94акÑ\8aалаÑ\8cÑ\86аÑ\80Ñ\85оÑ\87Ñ\83нна Ð±Ð¾ÐºÑ\8aона Ñ\82ептар",
-       "action-read": "УкÑ\85 Ð¾Ð°Ð³IÑ\83ви Ð´ÐµÑ\88ам",
-       "action-edit": "Ð\95Ñ\80 Ð¾Ð°Ð³IÑ\83в Ñ\85Ñ\83вÑ\86а",
-       "nchanges": "$1 {{PLURAL:$1|1=хувцам|хувцамаш}}",
+       "rightslog": "Ð\94оакÑ\8aаÑ\88Ñ\85оÑ\87Ñ\83н Ð±Ð¾ÐºÑ\8aоний Ñ\82éптар",
+       "action-read": "еÑ\80 Ð¾Ð°Ð³Ó\80Ñ\83в Ã©Ñ\88аÑ\80",
+       "action-edit": "еÑ\80 Ð¾Ð°Ð³IÑ\83в Ñ\85Ñ\83вÑ\86аÑ\80",
+       "nchanges": "$1 {{PLURAL:$1|хувцам}}",
        "enhancedrc-history": "истори",
        "recentchanges": "Керда хувцамаш",
-       "recentchanges-legend": "Ð\9aеÑ\80да Ñ\85Ñ\83вÑ\86амай Ð¾Ñ\82Ñ\82амаш",
+       "recentchanges-legend": "Ð\9aеÑ\80да Ñ\85Ñ\83вÑ\86амий Ð³IиÑ\80Ñ\81аÑ\88 Ñ\82оаÑ\8fÑ\80аш",
        "recentchanges-summary": "КIалхагIа ханашца нийсдаь дIаяьздаь да {{grammar:genitive|{{SITENAME}}}}  оагIонай тIеххьара хувцамаш.",
-       "recentchanges-feed-description": "УкÑ\85 Ð»Ð°Ñ\80амÑ\86а Ñ\82IеÑ\85Ñ\8cаÑ\80а Ð¼Ð°Ñ\81Ñ\81аÑ\85Ñ\83вÑ\86амаÑ\88Ñ\82 Ñ\82еÑ\80кам Ð±Ðµ.",
+       "recentchanges-feed-description": "Ð¥Ñ\8céжа Ñ\83кÑ\85 Ð¿Ð¾Ñ\82оке Ð²Ð¸ÐºÐ¸ Ñ\87Ñ\83 Ñ\82IеÑ\85Ñ\8cаÑ\80а Ñ\85Ñ\83вÑ\86амаÑ\88ка.",
        "recentchanges-label-newpage": "Укх хувцамаца керда оагIув кхелла хиннай",
        "recentchanges-label-minor": "Ер зIамига хувцам ба",
        "recentchanges-label-bot": "Ер хувцам ботаца баь ба",
        "rclistfrom": "$3 $2 денза даь хувцамаш хьахьокха",
        "rcshowhideminor": "$1 зIамига нийсдараш",
        "rcshowhideminor-show": "Хьахьокха",
-       "rcshowhideminor-hide": "Ð\94Iакъайладаккха",
+       "rcshowhideminor-hide": "Ð\9aъайладаккха",
        "rcshowhidebots": "$1 боташ",
        "rcshowhidebots-show": "Хьахьокха",
-       "rcshowhidebots-hide": "Ð\94Iакъайладаккха",
+       "rcshowhidebots-hide": "Ð\9aъайладаккха",
        "rcshowhideliu": "$1 бовзийтарчара доакъашхой",
        "rcshowhideliu-hide": "Къайлабаха",
        "rcshowhideanons": "$1 цIияккханза доакъашхой",
        "rcshowhideanons-show": "Хьахьокха",
        "rcshowhideanons-hide": "Къайлабаха",
-       "rcshowhidepatr": "$1 теркам даь хувцамаш",
+       "rcshowhidepatr": "$1 техка хувцамаш",
+       "rcshowhidepatr-show": "Хьахьокха",
+       "rcshowhidepatr-hide": "Къайладаккха",
        "rcshowhidemine": "$1 хьа нийсдараш",
        "rcshowhidemine-show": "Хьахьокха",
-       "rcshowhidemine-hide": "Ð\94Iакъайладаккха",
+       "rcshowhidemine-hide": "Ð\9aъайладаккха",
        "rclinks": "Хьахьокха $2 дийнахь даь хинна тIеххьара $1 хувцамаш\n<br />$3",
        "diff": "башхало",
        "hist": "истори",
        "minoreditletter": "зI",
        "newpageletter": "К",
        "boteditletter": "б",
-       "rc_categories_any": "МоллагIа а",
+       "rc_categories_any": "МоллагIа яр хержа йолчарна юкъера",
        "rc-change-size-new": "Хувцам баьнначул тӀехьагIа бола боарам: $1 {{PLURAL:$1|байт}}",
-       "rc-enhanced-expand": "Ð\9cа Ð´Ð°Ñ\80Ñ\80а Ñ\87Ñ\83лоаÑ\86амаÑ\88 Ñ\85Ñ\8cаÑ\85Ñ\8cокÑ\85а (JavaScriptаÑ\86а)",
-       "rc-enhanced-hide": "Ð\9cа Ð´Ð°Ñ\80Ñ\80а Ñ\87Ñ\83лоаÑ\86амаÑ\88 ÐºÑ\8aайладаккÑ\85а",
+       "rc-enhanced-expand": "Ð¥Ñ\8cаÑ\85Ñ\8cокÑ\85а Ð¼Ð° Ð´Ð°Ñ\80Ñ\80а",
+       "rc-enhanced-hide": "Ð\9aÑ\8aайладаккÑ\85а Ð¼Ð° Ð´Ð°Ñ\80Ñ\80а Ð´Ð°Ñ\80",
        "recentchangeslinked": "ВIашагIдувзаденна нийсдараш",
-       "recentchangeslinked-feed": "Ð\93аÑ\80галон Ñ\85Ñ\83вÑ\86амаш",
-       "recentchangeslinked-toolbox": "УкÑ\85анÑ\86а Ð²IашагIдувзаденна хувцамаш",
+       "recentchangeslinked-feed": "Ð\92IаÑ\88агIдÑ\83взаденна Ð½Ð¸Ð¹Ñ\81даÑ\80аш",
+       "recentchangeslinked-toolbox": "Ð\92IашагIдувзаденна хувцамаш",
        "recentchangeslinked-title": "$1ца вIашидувзаденна хувцамаш",
-       "recentchangeslinked-summary": "Ð\91елгалаÑ\8fÑ\8c Ð¹Ð¾Ð»Ð° Ð¾Ð°Ð³IÑ\83в Ñ\82IаÑ\85Ñ\8cожавеÑ\88 (е Ð±ÐµÐ»Ð³Ð°Ð»Ð°Ñ\8fÑ\8c Ð¹Ð¾Ð»Ð° ÐºÐ°Ñ\82егоÑ\80ен Ñ\8eкÑ\8aейоагIаÑ\88) Ð¹Ð¾Ð»Ñ\87а Ð¾Ð°Ð³IонаÑ\88Ñ\82а Ð´Ð°Ñ\8c Ñ\85Ñ\83вÑ\86амаÑ\88 Ð´Ð° ÐµÑ\80аÑ\88.\n[[Special:Watchlist|Ð¥Ñ\8cа Ð·ÐµÐ¼ Ð±Ð°Ñ\80а Ñ\81пиÑ\81ок]] юкъейоагIаш оагIонаш '''белгалаяьй'''.",
+       "recentchangeslinked-summary": "Ð\91елгалаÑ\8fÑ\8c Ð¹Ð¾Ð»Ð° Ð¾Ð°Ð³IÑ\83в Ñ\82IаÑ\85Ñ\8cожавеÑ\88 (е Ð±ÐµÐ»Ð³Ð°Ð»Ð°Ñ\8fÑ\8c Ð¹Ð¾Ð»Ð° ÐºÐ°Ñ\82егоÑ\80ен Ñ\8eкÑ\8aейоагIаÑ\88) Ð¹Ð¾Ð»Ñ\87а Ð¾Ð°Ð³IонаÑ\88Ñ\82а Ð´Ð°Ñ\8c Ñ\85Ñ\83вÑ\86амаÑ\88 Ð´Ð° ÐµÑ\80аÑ\88.\n[[Special:Watchlist|Ð¥Ñ\8cа Ð·ÐµÐ¼ Ð±Ð°Ñ\80а Ñ\85Ñ\8cаÑ\8fзÑ\8aÑ\8fÑ\8cÑ\80а]] юкъейоагIаш оагIонаш '''белгалаяьй'''.",
        "recentchangeslinked-page": "ОагIон цIи",
        "recentchangeslinked-to": "Вешта, белгаляьккха оагIон тIахьожавеш дола оагIонашта даь хувцамаш хьахьокха.",
        "upload": "Файл чуяккха",
-       "uploadbtn": "Ð\9fаÑ\8cл Ñ\87Ñ\83Ñ\8fÑ\8cккха",
-       "uploadlogpage": "Чуяьккхамий тептар",
+       "uploadbtn": "Файл Ñ\87Ñ\83Ñ\8fккха",
+       "uploadlogpage": "Чуяьккхарий тептар",
        "filedesc": "Лоаца йоазонца сурт оттадар",
-       "fileuploadsummary": "Лоаца лоацам:",
-       "license": "ЦIийÑ\8fздаÑ\80",
-       "license-header": "Лицензирование",
+       "fileuploadsummary": "Лоаца сурт оттадар:",
+       "license": "Ð\9bиÑ\86ензи Ñ\8fлаÑ\80:",
+       "license-header": "Лицензировани",
        "imgfile": "файл",
-       "listfiles": "Ð\9fаÑ\8cлий Ð´Ð°Ð³Ð°Ñ\80Ñ\87е",
-       "listfiles_date": "Ð\94енÑ\85а",
-       "listfiles_name": "Ð\9fаÑ\8cла Ñ\86Iи",
-       "listfiles_user": "Ð\94акÑ\8aалаÑ\8cÑ\86аÑ\80хо",
-       "listfiles_size": "Ð\94Ñ\83Ñ\81Ñ\82ам",
-       "listfiles_description": "Ð\9bоаÑ\86ам",
-       "listfiles_count": "Ð\94оÑ\80жамаÑ\88",
+       "listfiles": "Файлай Ñ\85Ñ\8cаÑ\8fзÑ\8aÑ\8fÑ\8cÑ\80",
+       "listfiles_date": "ТаÑ\8cÑ\80аÑ\85Ñ\8c",
+       "listfiles_name": "Файла Ñ\86Ó\80и",
+       "listfiles_user": "Ð\94оакÑ\8aаÑ\88хо",
+       "listfiles_size": "Ð\91оаÑ\80ам",
+       "listfiles_description": "Ð\99оазонÑ\86а Ñ\81Ñ\83Ñ\80Ñ\82 Ð¾Ñ\82Ñ\82адаÑ\80",
+       "listfiles_count": "Ð\92еÑ\80Ñ\81и",
        "file-anchor-link": "Файл",
-       "filehist": "Файлан истори",
-       "filehist-help": "Ð\9aнопка Ñ\82аÑ\8cÑ\80аÑ\85Ñ\8c\85а Ñ\82оIае Ñ\86Ñ\83 Ñ\85ан Ñ\84айл Ð¼Ð¸Ñ\88Ñ\82а Ñ\85иннай Ñ\85Ñ\8cожаpгволаÑ\88/йолаш",
+       "filehist": "Файла истори",
+       "filehist-help": "ТаÑ\8cÑ\80аÑ\85Ñ\8c\85а Ñ\82Iа Ñ\82оIабе Ñ\86Ñ\83 Ñ\85ан Ñ\84айл Ð¼Ð¸Ñ\88Ñ\82а Ñ\85иннай Ñ\85Ñ\8cожаpгдолаш",
        "filehist-revert": "юхаяьккха",
        "filehist-current": "xIанзара",
        "filehist-datetime": "Таьрахь/Ха",
        "filehist-thumb": "ЗIамигасурт",
        "filehist-thumbtext": "ЗIамига сурт укх версин $1",
        "filehist-user": "Доакъашхо",
-       "filehist-dimensions": "Файлан боарам",
-       "filehist-filesize": "Ð\9fаÑ\8cла Ñ\8eÑ\81Ñ\82аÑ\80ал",
+       "filehist-dimensions": "Файла боарам",
+       "filehist-filesize": "Файла Ð±Ð¾Ð°Ñ\80ам",
        "filehist-comment": "Белгалдаккхар",
        "imagelinks": "Файлах пайда эцар",
-       "linkstoimage": "{{PLURAL:$1|1=ТIехьайоагIача $1 оагIуво тIахьожаву|ТIехьайоагIача $1 оагIувнаша тIахьожаву}} укх файла тIа:",
+       "linkstoimage": "{{PLURAL:$1|1=ТIехьайоагIача $1 оагIо тIахьожаву|ТIехьайоагIача $1 оагIонаш тIахьожаву}} укх файла тIа:",
        "nolinkstoimage": "Укх файла тIахьожавеш йола оагIонаш яц.",
-       "sharedupload": "Ер паьла $1чера я, кхыча хьахьоадайтамча хьахайраде йийшайолаш я.",
-       "sharedupload-desc-here": "Ер файл $1 чура я, иштта кхыйола проекташ чу пайда эца аьттув болаш я.\nЦун [$2 йоазонца сурт оттадара оагIон] информаци кIалхахь хьайоалаяй.",
-       "uploadnewversion-linktext": "УкÑ\85 Ð¿Ð°Ñ\8cлий ÐºÐµÑ\80да Ð±IаÑ\81а Ñ\87Ñ\83Ñ\8fÑ\8cккÑ\85а",
+       "sharedupload": "Ер файл $1 чура я, из пайда эцаш лелае мегаш я кхыйола проекташ чу.",
+       "sharedupload-desc-here": "Ер файл $1 чура я, иштта кхыйола проекташ чу пайда эца аьттув болаш я.\nЦун [$2 сурт оттадара оагIон] хоам кIалхахь хьабоалабаьб.",
+       "uploadnewversion-linktext": "ЧÑ\83Ñ\8fккÑ\85а Ñ\83кÑ\85 Ñ\84айла ÐºÐµÑ\80да Ð²ÐµÑ\80Ñ\81и",
        "upload-disallowed-here": "Хьа бокъо яц ер файл юха дӀаязъе.",
        "filerevert-comment": "Бахьан:",
        "filedelete-comment": "Бахьан:",
-       "filedelete-submit": "ДIадаккха",
+       "filedelete-submit": "ДӀаяккха",
        "filedelete-reason-otherlist": "Кхыдола бахьан",
-       "download": "хьачуяьккха",
-       "unwatchedpages": "ТеÑ\80камза Ð¾Ð°Ð³IÑ\83внаш",
+       "download": "хьачуяккха",
+       "unwatchedpages": "ЦÑ\85Ñ\8cанне Ð° Ð·ÐµÐ¼ Ð±ÐµÑ\88 Ð¹Ð¾Ð°Ñ\86а Ð¾Ð°Ð³Iонаш",
        "randompage": "Ца ховш нийсъенна статья",
-       "statistics": "Дагара куц",
+       "statistics": "Статистика",
+       "statistics-articles": "Статьяш",
        "statistics-pages": "ОагIонаш",
-       "brokenredirects-edit": "хувца",
-       "brokenredirects-delete": "дIадаккха",
+       "brokenredirects-edit": "нийсъе",
+       "brokenredirects-delete": "дӀаяккха",
        "withoutinterwiki-submit": "Хьахьокха",
        "nbytes": "$1 {{PLURAL:$1|байт}}",
        "nmembers": "$1 {{PLURAL:$1|объект}}",
-       "prefixindex": "Ð\9eагIÑ\83внаÑ\88ий Ñ\85Ñ\8cалÑ\85еÑ\80а Ñ\86Iи Ñ\85Ñ\8cагойÑ\82аÑ\80",
-       "shortpages": "Лоаца оагIувнаш",
-       "longpages": "Ð\94оккÑ\85ий Ð¾Ð°Ð³IÑ\83внаш",
+       "prefixindex": "Ð¥Ñ\8cокÑ\85аÑ\80 Ð¾Ð°Ð³Iонай Ñ\86IеÑ\80а Ð´ÐµÑ\88Ñ\85Ñ\8cалÑ\85еÑ\85",
+       "shortpages": "Лоаца оагIонаш",
+       "longpages": "Ð\99IаÑ\8cÑ\85а Ð¾Ð°Ð³Iонаш",
        "protectedpages-page": "ОагIув",
-       "usercreated": "{{GENDER:$3|Чуваьннав|Чуяьннай}} $1  $2",
+       "usercreated": "{{GENDER:$3|система чу дӀаязвеннав|система чу дӀаязъяннай}} $1 $2",
        "newpages": "Керда оагIонаш",
        "move": "ЦIи хувца",
-       "movethispage": "УкÑ\85 Ð¾Ð°Ð³IÑ\83ва Ñ\86Iи Ñ\85Ñ\83вÑ\86а",
+       "movethispage": "ЦIи Ñ\85Ñ\83вÑ\86а Ñ\83кÑ\85 Ð¾Ð°Ð³Iон",
        "pager-newer-n": "{{PLURAL:$1|кердагIа дара|кердагIа дараш|кердагIа долачаьрахь}} $1",
        "pager-older-n": "{{PLURAL:$1|къаьнара дара|къаьнара дараш|къаьнара долaчарех}} $1",
        "booksources": "Джейнай хьасташ (источники)",
        "booksources-search-legend": "Джейнах лаьца хоам лахар",
        "booksources-search": "Хьалáха",
        "log": "Тептараш",
-       "allpages": "Еррига оагIувнаш",
-       "prevpage": "($1) хьалхара оагIув",
-       "allpagesfrom": "ЦÑ\83 Ñ\82айпаÑ\80а Ñ\8eвлаж Ð¹Ð¾Ð»Ð° Ð¾Ð°Ð³IÑ\83внаÑ\88 Ð±ÐµÐ»Ð³Ð°Ð» Ðµ:",
-       "allpagesto": "УкÑ\85 Ð¾Ð°Ð³IÑ\83внаÑ\88 Ñ\82Iа Ð±IаÑ\80га Ð´Ð¸Ñ\82а:",
+       "allpages": "Еррига оагIонаш",
+       "prevpage": "Хьалха йоагIа оагIув ($1)",
+       "allpagesfrom": "Ð\93Ñ\83Ñ\87аÑ\8fккÑ\85а Ð¾Ð°Ð³IонаÑ\88 Ð¹Ð¾Ð»Ð°Ð»Ñ\83Ñ\88 Ð¹Ð¾Ð»Ð° Ñ\83кÑ\85оÑ\85:",
+       "allpagesto": "Ð\90Ñ\80аÑ\8fккÑ\85аÑ\80 Ñ\81оÑ\86адé Ñ\83кÑ\85 Ñ\82Ó\80а:",
        "allarticles": "Еррига оагIонаш",
        "allpagessubmit": "Кхоачашде",
        "categories": "Категореш",
-       "linksearch": "Т|ера|инкаш лахар",
+       "linksearch": "Арахьара тIахьожаяргаш лахар",
+       "linksearch-ns": "ЦIерий аренаш:",
        "linksearch-ok": "Хьалáха",
-       "linksearch-line": "$1 тIа Iинк $2 юкъера",
-       "listgrouprights-members": "(тоабий дагарче)",
-       "emailuser": "Дакъалаьцархочоа д-хоамни:",
-       "watchlist": "Теркама дагарче",
-       "mywatchlist": "Зем бара список",
-       "watchlistfor2": "$1 $2 царна",
-       "addedwatchtext": "\"[[:$1]]\" оагIув, шун [[Special:Watchlist|теркама дагаршкахь]] чуяккха я. \nТехьара мел йола укх оагIувни хувцамаш цу дагаршкахь хоам беш хургья. Вешта [[Special:RecentChanges|керда хувцама дагаршкаехь]] сома къоалмаца хьакъоастлуш хургья.",
-       "removedwatchtext": "\"[[:$1]]\" оагIув, шун [[Special:Watchlist|теркама дарагчера]] дIаяккха хиннай.",
+       "linksearch-line": "$2 — тIахьожаярг укхаз $1",
+       "listgrouprights-members": "(доакъашхой хьаязъяьр)",
+       "listgrouprights-namespaceprotection-namespace": "ЦIерий аре",
+       "emailuser": "Доакъашхочоа каьхат",
+       "watchlist": "Зем бара хьаязъяьр",
+       "mywatchlist": "Зем бара хьаязъяьр",
+       "watchlistfor2": "Цунна $1 $2",
+       "addedwatchtext": "Статья «[[:$1]]» а, цун дувца оттадара оагIув а тIатехай хьа [[Special:Watchlist|зем бара хьаязъяьра]].",
+       "removedwatchtext": "Статья «[[:$1]]» а, иштта цун дувца оттадара оагIув а дIаяьккхай хьа [[Special:Watchlist|зем бара хьаязъяьр]] чура.",
        "watch": "Зем бе",
-       "watchthispage": "Укх оагIува теркам бе",
-       "unwatch": "Лора ма де",
-       "watchlist-details": "Шун теркама дагарченгахь йола  $1 {{PLURAL:$1|1=оагIув|оагIувнаш}}, дувцама оагIувнаш ца лоархIаш.",
-       "wlshowlast": "Тlехьара $1 сахьаташ $2 денош  хьахьокха",
-       "watchlist-options": "Зем баккха дагарена хувцамаш",
-       "watching": "Тохкам беча оагIув тIа тIадаккха",
-       "unwatching": "Тохкам беча оагIув тIера дIадаккха",
-       "deletepage": "ОагIув дIаяьккха",
-       "confirmdeletetext": "Оаш оагIувни (е сурти) барча дIадаккхар хьайийхай кха еррига хувцамий истори долама ковчера. \nДехар да, жоп дала, шоай из бокъонцахь де безам болаш да, шоай даьчоахь хургдолчоахь кхеташ долга, [[{{MediaWiki:Policy-url}}]] декъамачу Iоязадаь дола адаташ ца из деш долга.",
-       "actioncomplete": "ДулархIам баьб",
-       "actionfailed": "Оттам даьдац",
-       "deletedtext": "\"$1\" дIаяьккха хиннай.\nТIехьара дIадаьккха дагарчена хьожаргволаш/хьожаргьйолаш, $2 хьажа.",
+       "watchthispage": "Зем бе укх оагӀон",
+       "unwatch": "Ма бе зем",
+       "notanarticle": "Статья яц",
+       "watchlist-details": "Хьа зем бара хьаязъяьр чу $1 {{PLURAL:$1|оагIув}} я, дувца оттадара оагIонаш ца лоархIаш.",
+       "wlshowlast": "Хьахьокха тIехьара $1 сахьатах $2 дийнахь",
+       "watchlist-options": "Зем бара хьаязъяьра тоадараш",
+       "watching": "Зем бара хьаязъяьр чу тIатохар",
+       "unwatching": "Зем бара хьаязъяьр чура дIадаккхар",
+       "deletepage": "ДIаяккха оагIув",
+       "confirmdeletetext": "Оаш дIадийхад бIарчча дIадаккхар оагIон а (е сурта), цун деррига хувцара истори а. '''Дехар да''', бакъде шоай из бокъонца де безам болаш долга а, из дича хургдар кхеташ долга а, из дар укх [[{{MediaWiki:Policy-url}}|бокъонашца]] долга.",
+       "actioncomplete": "Ардам кхоачашдаьд",
+       "actionfailed": "Ардам кхоачашдаьдац",
+       "deletedtext": "«$1» дIаяьккхай.\nХьажа $2 тIехьара дIадаккхарий хьаязъяьрга бIаргтохаргболаш.",
        "dellogpage": "ДIадаккхарай тептар",
        "deletecomment": "Бахьан:",
        "deleteotherreason": "Кхыдола бахьан/тIатохар:",
        "rollbacklink": "юхаяккха",
        "rollbacklinkcount": "юхататта $1 {{PLURAL:$1|нийсдар}}",
        "protectlogpage": "ГIон тептар",
-       "protectedarticle": "\"[[$1]]\" оагIув лорам деж я",
-       "modifiedarticleprotection": "\"[[$1]]\" оагIувни лорама лагIа хувцаяьннай",
+       "protectedarticle": "Лораяьй оагӀув «[[$1]]»",
+       "modifiedarticleprotection": "Лорадара лагIа хийцад оагIон «[[$1]]»",
        "protectcomment": "Бахьан:",
-       "protectexpiry": "Ð\9aÑ\85оаÑ\87алÑ\83Ñ\88 Ð»Ð°Ñ\82Ñ\82а:",
-       "protect_expiry_invalid": "ЧакÑ\85абоала Ð»Ð¾Ñ\80ама Ñ\85аÑ\80Ñ\86а ха",
-       "protect_expiry_old": "ЧакÑ\85айоала Ñ\85а - Ñ\8fÑ\85а Ð·Ð°Ð¼Ð° Ñ\8f.",
-       "protect-text": "'''$1''' укхаз шоана шоай оагIув лорамлагIа хувца a бIаргтасса a йийш хургья.",
-       "protect-locked-access": "ШÑ\83н Ð»Ð°Ñ\80Ñ\85Iама Ð¹Ð¾Ð°Ð·Ñ\83ви Ð½Ð¸Ð´Ð·Ð° ÐºÑ\85оаÑ\87аÑ\88 Ð±Ð°Ñ\86 Ð¾Ð°Ð³IÑ\83вни Ð»Ð¾Ñ\80ама Ð»Ð°Ð³Iа Ñ\85Ñ\83вÑ\86а. '''$1''' Ð¾Ð°Ð³IÑ\83вни Ð´IаоÑ\82Ñ\82амаш:",
+       "protectexpiry": "ЧакÑ\85доала:",
+       "protect_expiry_invalid": "Ð\9bоÑ\80адаÑ\80 Ñ\87акÑ\85адоала Ñ\85аÑ\80Ñ\86аÑ\85Ñ\8cа ха",
+       "protect_expiry_old": "ЧакÑ\85адалаÑ\80а Ñ\85а â\80\94 Ð´Ð°Ñ\85áÑ\80 Ð´Ð°.",
+       "protect-text": "Хьа йиш я оагIон '''$1''' лорадара лагIа бIаргтоха a, хувца a .",
+       "protect-locked-access": "Ð¥Ñ\8cа Ð´Ð°Ð³Ð°Ñ\80а Ð¹Ð¾Ð°Ð·Ð¾Ð½Ð³Ð° Ñ\82оÑ\8aал Ð±Ð¾ÐºÑ\8aо Ñ\8fÑ\86 Ð¾Ð°Ð³Iон Ð»Ð¾Ñ\80адаÑ\80а Ð»Ð°Ð³Iа Ñ\85Ñ\83вÑ\86а. '''$1''' Ð¾Ð°Ð³Iон ÐºÐ°Ñ\80аÑ\80а Ð¾Ñ\82Ñ\82адаÑ\80аш:",
        "protect-cascadeon": "{{PLURAL:$1|1=КIалхахь хьагойташ йола оагIувчу|КIалхахь хьагойташ йола оагIувнашчу}} ер оагIув чуяккха халарахь, лорам Iоттая я, хурхала лорам Iоттая я. Укх оагIувни лорама лагIа хувца йийш йолаш я, амма хурхала лорам хувцлургдац.",
-       "protect-default": "Ð\9bоÑ\80амза",
-       "protect-fallback": "\"$1\" пурам эша",
-       "protect-level-autoconfirmed": "Ð\9aеÑ\80да Ð°, Ð´Ð°ÐºÑ\8aалаÑ\8cÑ\86абоаÑ\86аÑ\87аÑ\8cÑ\80аÑ\85Ñ\8c Ð° Ð»Ð¾Ñ\80аде",
-       "protect-level-sysop": "Ð\9cазакÑ\83лгалÑ\85о Ð¼Ð°Ñ\80а Ñ\87Ñ\83вала Ð±Ð¾ÐºÑ\8aо Ñ\8fÑ\86",
-       "protect-summary-cascade": "хурхала",
-       "protect-expiring": "чакхайоала $1 (UTC)",
-       "protect-cascade": "УкÑ\85 Ð¾Ð°Ð³IÑ\83ваÑ\87 Ñ\87Ñ\83Ñ\8fÑ\8cккÑ\85а Ð¾Ð°Ð³IÑ\83ваÑ\88 Ð»Ð¾Ñ\80ае (Ñ\85Ñ\83Ñ\80Ñ\85ала Ð»Ð¾Ñ\80ам)",
-       "protect-cantedit": "ШÑ\83н Ñ\83кÑ\85 Ð¾Ð°Ð³IÑ\83вни Ð»Ð¾Ñ\80ама Ð»Ð°Ð³Iа Ñ\85Ñ\83вÑ\86а Ð¼ÐµÐ³Ð°Ñ\88 Ð´Ð°Ñ\86, Ð³IалаÑ\82нийÑ\81даÑ\80а Ñ\88Ñ\83н Ð±Ð¾ÐºÑ\8aо Ð¹Ð¾Ð°Ñ\86андаÑ\8c.",
+       "protect-default": "Ð\9bоÑ\80адаÑ\80 Ð´Ð¾Ð°Ñ\86аÑ\88",
+       "protect-fallback": "Могадаьд алхха ше «$1» волача доакъашхошта",
+       "protect-level-autoconfirmed": "Ð\9cогадаÑ\8cд Ð°Ð»Ñ\85Ñ\85а Ñ\88е-Ñ\88е ÐºÑ\8aоабалбаÑ\8c Ñ\85инна Ð´Ð¾Ð°ÐºÑ\8aаÑ\88Ñ\85оÑ\88Ñ\82а",
+       "protect-level-sysop": "Ð\9cогадаÑ\8cд Ð°Ð»Ñ\85Ñ\85а Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñ\81Ñ\82Ñ\80аÑ\82оÑ\80аÑ\88Ñ\82а",
+       "protect-summary-cascade": "каскадни",
+       "protect-expiring": "чакхъйоала $1 (UTC)",
+       "protect-cascade": "Ð\9bоÑ\80ае Ñ\83кÑ\85 Ð¾Ð°Ð³Iон Ñ\87Ñ\83Ñ\8fÑ\8cккÑ\85а Ð¾Ð°Ð³IонаÑ\88 (каÑ\81кадни Ð»Ð¾Ñ\80адаÑ\80)",
+       "protect-cantedit": "Ð¥Ñ\8cа Ñ\85Ñ\83вÑ\86а Ð¹Ð¸Ñ\88 Ñ\8fÑ\86 Ñ\83кÑ\85 Ð¾Ð°Ð³Iон Ð»Ð¾Ñ\80адаÑ\80а Ð»Ð°Ð³Iа, Ñ\86Ñ\83н Ñ\85Ñ\83вÑ\86ам Ð±Ðµ Ñ\85Ñ\8cа Ð±Ð¾ÐºÑ\8aо Ñ\86а Ñ\85илаÑ\80аÑ\85.",
        "restriction-type": "Бокъонаш:",
-       "restriction-level": "ЧÑ\83воала лагIа:",
-       "restriction-edit": "Ð\93IалаÑ\82нийÑ\81даÑ\80",
+       "restriction-level": "ТIакÑ\85оаÑ\87илга лагIа:",
+       "restriction-edit": "Ð¥Ñ\83вÑ\86ам",
        "restriction-move": "ЦIи хувцаp",
        "restriction-create": "Хьакхоллар",
-       "restriction-upload": "ЧÑ\83даккÑ\85ар",
-       "undeletelink": "Ð\91IаÑ\80гÑ\82аÑ\81Ñ\81а/Ñ\8eÑ\85амеÑ\82Ñ\82аоÑ\82Ñ\82аде",
+       "restriction-upload": "Ð\94оÑ\82Ñ\82ар",
+       "undeletelink": "бIаÑ\80гÑ\82оÑ\85а/Ñ\8eÑ\85адаккÑ\85а",
        "undeleteviewlink": "хьажа",
        "undelete-search-submit": "Хьалáха",
-       "namespace": "ЦIеÑ\80ий Ð¼Ð¾Ñ\82Ñ\82",
-       "invert": "Харжар юхадаккха",
-       "tooltip-invert": "Ð\9eÑ\82Ñ\82ае ÐµÑ\80 Ð±ÐµÐ»Ð³Ð°Ð»Ð¾, Ñ\85еÑ\80жа Ñ\86IеÑ\80ий Ð¼Ð¾Ñ\82Ñ\82а Ñ\87Ñ\83 Ð° (белгалÑ\8aÑ\8fÑ\8c Ñ\8fле Ð²IаÑ\88агIÑ\8aÑ\8eвзаенна Ñ\86IеÑ\80ий Ð¼Ð¾Ñ\82Ñ\82а чу а), оагIонаш тIа а даь хувцамаш къайладоахаргдолаш",
-       "namespace_association": "Ювзаенна Ð¼Ð¾Ñ\82Ñ\82",
-       "tooltip-namespace_association": "Ð\9eÑ\82Ñ\82ае ÐµÑ\80 Ð±ÐµÐ»Ð³Ð°Ð»Ð¾, Ð¸Ñ\88Ñ\82Ñ\82а Ñ\85еÑ\80жа Ñ\86IеÑ\80ий Ð¼Ð¾Ñ\82Ñ\82аÑ\86а Ð²IаÑ\88агIÑ\8aÑ\8eвзаенна Ð´Ñ\83вÑ\86а Ð¾Ñ\82Ñ\82адаÑ\80а Ñ\86IеÑ\80ий Ð¼Ð¾Ñ\82Ñ\82 (е кхыяр) юкъейоаккхаргйолаш",
+       "namespace": "ЦIеÑ\80ий Ð°Ñ\80енаÑ\88:",
+       "invert": "Хержар юхадаккха",
+       "tooltip-invert": "Ð\9eÑ\82Ñ\82ае ÐµÑ\80 Ð±ÐµÐ»Ð³Ð°Ð»Ð¾, Ñ\85еÑ\80жа Ñ\86IеÑ\80ий Ð°Ñ\80е Ñ\87Ñ\83 Ð° (белгалÑ\8aÑ\8fÑ\8c Ñ\8fле Ð²IаÑ\88агIÑ\8aÑ\8eвзаенна Ñ\86IеÑ\80ий Ð°Ñ\80е чу а), оагIонаш тIа а даь хувцамаш къайладоахаргдолаш",
+       "namespace_association": "Ювзаенна Ð°Ñ\80е",
+       "tooltip-namespace_association": "Ð\9eÑ\82Ñ\82ае ÐµÑ\80 Ð±ÐµÐ»Ð³Ð°Ð»Ð¾, Ð¸Ñ\88Ñ\82Ñ\82а Ñ\85еÑ\80жа Ñ\86IеÑ\80ий Ð°Ñ\80еÑ\86а Ð²IаÑ\88агIÑ\8aÑ\8eвзаенна Ð´Ñ\83вÑ\86а Ð¾Ñ\82Ñ\82адаÑ\80а Ñ\86IеÑ\80ий Ð°Ñ\80е (е кхыяр) юкъейоаккхаргйолаш",
        "blanknamespace": "(Кертера)",
        "contributions": "{{GENDER:$1|Доакъашхочун}} къахьегам",
-       "contributions-title": "$1 дакъалаьцархочунна къахьегам",
+       "contributions-title": "{{GENDER:$1|Доакъашхочун}} $1 къахьегам",
        "mycontris": "Са къахьегам",
        "anoncontribs": "Къахьегам",
-       "contribsub2": "{{GENDER:$3|$1}} ($2) баь болх",
-       "uctop": "(xIанзара)",
+       "contribsub2": "Къахьегам {{GENDER:$3|$1}} ($2)",
+       "uctop": "(карара)",
        "month": "Укх бетт (кхы хьалхагIа)",
        "year": "Укх шер (кхы хьалхагIа):",
-       "sp-contributions-newbies": "Ð\9aеÑ\80да Ð´Ð°Ñ\8fзÑ\8cÑ\8f Ð¹Ð¾Ð°Ð·Ð¾Ð½Ð°Ñ\87еÑ\80а Ð¼Ð°Ñ\80а Ð±Ð°Ñ\8c Ð±Ð¾Ð»Ð° ÐºÑ\8aаÑ\85Ñ\8cегам Ð¼Ð° Ñ\85Ñ\8cокÑ\85а",
-       "sp-contributions-blocklog": "чIегаш",
-       "sp-contributions-uploads": "чуяьккхамаш",
+       "sp-contributions-newbies": "Ð¥Ñ\8cаÑ\85Ñ\8cокÑ\85а Ð°Ð»Ñ\85Ñ\85а ÐºÐµÑ\80да Ð´Ð°Ð³Ð°Ñ\80а Ð¹Ð¾Ð°Ð·Ð¾Ð½Ð°Ñ\88Ñ\86а Ð±Ð°Ñ\8c Ð±Ð¾Ð»Ð° ÐºÑ\8aаÑ\85Ñ\8cегам",
+       "sp-contributions-blocklog": "чIега тохараш",
+       "sp-contributions-uploads": "чуяьккхараш",
        "sp-contributions-logs": "тептараш",
-       "sp-contributions-talk": "дувцам",
+       "sp-contributions-talk": "дувца оттадар",
        "sp-contributions-search": "Къахьегама лахар",
-       "sp-contributions-username": "IP-моÑ\82Ñ\82иг Ðµ Ñ\86Iи:",
-       "sp-contributions-toponly": "ТIеÑ\85Ñ\8cаÑ\80а Ð´Ð¾Ñ\80жамаÑ\88 Ð»Ð¾Ð°Ñ\80Ñ\85аÑ\88 Ð´Ð¾Ð»Ð° Ñ\85Ñ\83вÑ\86амаÑ\88 Ð¼Ð°Ñ\80а Ð¼Ð° Ñ\85Ñ\8cокÑ\85а",
+       "sp-contributions-username": "IP-адÑ\80еÑ\81 Ðµ Ð´Ð¾Ð°ÐºÑ\8aаÑ\88Ñ\85оÑ\87Ñ\83н Ñ\86Ó\80и:",
+       "sp-contributions-toponly": "Ð\93ойÑ\82а Ð°Ð»Ñ\85Ñ\85а Ñ\82IеÑ\85Ñ\8cаÑ\80а Ð²ÐµÑ\80Ñ\81еÑ\88 Ñ\81анна Ð»Ð¾Ð°Ñ\80Ñ\85IаÑ\88 Ð´Ð¾Ð»Ð° Ð½Ð¸Ð¹Ñ\81даÑ\80аÑ\88",
        "sp-contributions-submit": "Хьалáха",
        "whatlinkshere": "ТIахьожаяргаш укхаза",
-       "whatlinkshere-title": "\"$1\" тIахьожавеш йола оагIонаш",
+       "whatlinkshere-title": "\"$1а\" тIахьожавеш йола оагIонаш",
        "whatlinkshere-page": "ОагIув:",
        "linkshere": "ТIехьайоагIа оагIонаш тIахьожаву «'''[[:$1]]'''»:",
-       "nolinkshere": "'''[[:$1]]''' оагIув тIа, кхыдола оагIувашкара Iинкаш йоацаш я",
+       "nolinkshere": "ОагIона '''[[:$1]]''' кхыйола оагIонашкара тIахьожаяргаш йоацаш я.",
        "isredirect": "оагIув-дIа-сахьожадар",
        "istemplate": "юкъейоалаяр",
        "isimage": "Файлови тIахьожаярг",
        "whatlinkshere-hideredirs": "$1 дIа-сахьожадараш",
        "whatlinkshere-hidetrans": "$1 юкъейоалаяраш",
        "whatlinkshere-hidelinks": "$1 тIахьожаяргаш",
-       "whatlinkshere-hideimages": "$1 Ñ\81Ñ\83Ñ\80Ñ\82Iинкаш",
-       "whatlinkshere-filters": "Фильтры",
-       "blockip": "УкÑ\85 {{GENDER:$1|доакÑ\8aоÑ\88Ñ\85оÑ\87оа}} Ñ\87|ега Ð±Ð¾Ð»Ð°",
-       "ipboptions": "2 Ñ\81аÑ\85Ñ\8cаÑ\82:2 hours,1 Ð´Ð¸:1 day,3 Ð´Ð¸:3 days,1 ÐºIиÑ\80а:1 week,2 ÐºIиÑ\80а:2 weeks,1 Ð±Ñ\83Ñ\82Ñ\82:1 month,3 Ð±Ñ\83Ñ\82Ñ\82:3 months,6 Ð±Ñ\83Ñ\82Ñ\82:6 months,1 Ñ\88Ñ\83:1 year,Ñ\81иÑ\85а Ñ\86а Ð»Ñ\83Ñ\88:infinite",
-       "ipblocklist": "ЧIега бела дакъалаьцархой",
+       "whatlinkshere-hideimages": "$1 Ñ\84айлай Ñ\82IаÑ\85Ñ\8cожаÑ\8fÑ\80гаш",
+       "whatlinkshere-filters": "Фильтраш",
+       "blockip": "ЧIега Ñ\82оÑ\85а {{GENDER:$1|доакÑ\8aаÑ\88Ñ\85оÑ\87Ñ\83н}}",
+       "ipboptions": "2 Ñ\81аÑ\85Ñ\8cаÑ\82:2 hours,1 Ð´Ð¸:1 day,3 Ð´Ð¸:3 days,1 ÐºIиÑ\80а:1 week,2 ÐºIиÑ\80а:2 weeks,1 Ð±Ñ\83Ñ\82Ñ\82:1 month,3 Ð±Ñ\83Ñ\82Ñ\82:3 months,6 Ð±Ñ\83Ñ\82Ñ\82:6 months,1 Ñ\88Ñ\83:1 year,Ñ\85оадаÑ\8fÑ\8c Ñ\85а Ð¹Ð¾Ð°Ñ\86а:infinite",
+       "ipblocklist": "ЧIега теха доакъашхой",
        "ipblocklist-submit": "Хьалáха",
        "blocklink": "чIегa тоха",
        "unblocklink": "чIега баста",
-       "change-blocklink": "ЧIегатохар хувца",
+       "change-blocklink": "ЧIега тохар хувца",
        "contribslink": "къахьегам",
-       "blocklogpage": "ЧIегаш тoха таптар",
-       "blocklogentry": "[[$1]] чIега белаб,  $2 $3 ха ялалца",
-       "unblocklogentry": "$1 юха яста я",
-       "block-log-flags-nocreate": "Ð\9bаÑ\80Ñ\85Iамий Ð´Ð°Ð³Ð°Ñ\80Ñ\87ена Ñ\86Iи Ñ\8fÑ\8cккÑ\85аÑ\80 Ð¿Ñ\83Ñ\80ам Ñ\8fнза Ñ\8f.",
-       "move-page-legend": "ОагIува цIи хувца",
+       "blocklogpage": "ЧIегаш тoхара таптар",
+       "blocklogentry": "укхан [[$1]] чIега техаб $2 чакхдалалца $3",
+       "unblocklogentry": "чIега баьстаб $1",
+       "block-log-flags-nocreate": "дагаÑ\80а Ð¹Ð¾Ð°Ð·Ð¾Ð½Ð°Ñ\88 ÐºÑ\85оллаÑ\80 Ð¿Ñ\83Ñ\80ам Ð´ÐµÐ½Ð½Ð°Ð´Ð°Ñ\86",
+       "move-page-legend": "ОагIон цIи хувцар",
        "movepagetext": "КIалхара кепаца болхабеча, оаш оагIувни цIи хувцаргья, цунна хувцамий тептар кхыйола меттиге дIачудоаккхаш.\nКIаьнара цIерахь керда цIерий дIачудаккхам хургда.\nКIаьнара цIера тIа даь дола дIачудаккхамаш, шун ший лоIамахь кердадаккха йийш хургья.\nИз оаш ца дой, дехар да, [[Special:DoubleRedirects|шолха]] кхы [[Special:BrokenRedirects|вIашагIаяккха дIачудаккхамий]] кардоламахь хьажа.\nОаш жоп лу, шоай чуяккха йола Iинкаш, даим болхбеш хургдолга.\n\nЗем бахка, оагIувни цIи хувцалургьяц, изза мо цIи йолаш оагIув хилача. \nЙолаш йола оагIув хувца йийш яц, амма хийца йола оагIув юха хьахувца йийш я. \n\n'''Хоамхайтар'''\n\nЦIи хувцар, йовзаш йола оагIувнаший, доккха а цаьхха а хувцамшка дIатIадала мегаш да.\nДехар да, оаш дIахо болх белаьхь, хургдола хIама кхеташ долга, кхеталаш.",
        "movepagetalktext": "ТIатеха дувцама оагIув, ший лоIамахь цIи хувлургья, '''ер дага а доацар, доаца:'''\n\n*Изза мо цIи йолаш яьсса дувцама оагIув я е\n*Оаш кIалхахь белгало даьдац.\n\nИз иштта дале, кулги новкъосталца оагIувнаш вIашагIатоха  е дIадехьаяккха деза шун.",
-       "newtitle": "Керда цIи",
-       "move-watch": "Ер оагIув теркама дагаршкахь чуяккха",
-       "movepagebtn": "ОагIува цIи хувца",
-       "pagemovedsub": "ОагIув керд цIи тилла я",
-       "movepage-moved": "'''\"$1\" оагув \"$2\" хьийца я'''",
-       "articleexists": "Изза мо цIи йола оагIув, йолаш я е оаш тила цIи мегаш яц.\nДехар да, кхыйола цIи хьаржа.",
-       "movetalk": "Ð\9cаIан Ñ\87Ñ\83лоаÑ\86а Ð´Ñ\83вÑ\86ама Ð¾Ð°Ð³IÑ\83вни Ñ\86Iи Ñ\85Ñ\83вÑ\86а",
+       "newtitle": "Керда цIи:",
+       "move-watch": "Ер оагIув зем бара хьаязъяьра юкъеяьккха",
+       "movepagebtn": "ОагIон цIи хувца",
+       "pagemovedsub": "ОагIон керда цIи тиллай",
+       "movepage-moved": "'''«$1» оагIон ер «$2» цIи тиллай'''",
+       "articleexists": "Изза мо цIи йола оагIув тхьовре йолаш я е оаш тилла цIи мегаш яц.\nДехар да, кхыйола цIи харжа.",
+       "movetalk": "ЦIи Ñ\85Ñ\83вÑ\86а Ð´Ñ\83вÑ\86а Ð¾Ñ\82Ñ\82адаÑ\80а Ð¾Ð°Ð³Iон а",
        "movelogpage": "ЦIи хувцара тептар",
-       "movereason": "Бахьан",
-       "revertmove": "юхаяьккха",
+       "movereason": "Бахьан:",
+       "revertmove": "юха",
        "export": "ОагIонай экспорт",
-       "allmessagesname": "ЦIи",
-       "allmessagesdefault": "СаÑ\82ийна Ñ\83лла Ñ\8fздам",
-       "allmessages-filter-all": "Ð\94еÑ\80Ñ\80игаÑ\88",
+       "allmessagesname": "Хоам",
+       "allmessagesdefault": "Ð\9cаÑ\81Ñ\81аза Ð¹Ð¾Ð»Ð° Ñ\82екÑ\81Ñ\82",
+       "allmessages-filter-all": "Ð\95Ñ\80Ñ\80ига",
        "allmessages-language": "Мотт:",
-       "allmessages-filter-submit": "Дехьа гӀо",
+       "allmessages-filter-submit": "Дехьавала",
        "thumbnail-more": "Хьадоаккхаде",
-       "thumbnail_error": "ЗIамигасуртанчий кхеллама гIалат: $1",
-       "import-upload-filename": "Ð\9fаÑ\8cлаÑ\86Iи:",
+       "thumbnail_error": "ЗIамига сурт кхоллара гIалат: $1",
+       "import-upload-filename": "Файла Ñ\86Ó\80и:",
        "tooltip-pt-userpage": "{{GENDER:|Хьа}} доакъашхочун оагIув",
        "tooltip-pt-mytalk": "{{GENDER:|Хьа}} дувца оттадара оагIув",
        "tooltip-pt-preferences": "{{GENDER:|Хьа гIирсаш}}",
        "tooltip-pt-mycontris": "{{GENDER:|хьа}} хувцамаш",
        "tooltip-pt-login": "Укхаза хьай цIи аьле чувала/яла йиша я, амма из параз дац",
        "tooltip-pt-logout": "Аравала/яла",
-       "tooltip-pt-createaccount": "Хьа бокъо я учёта яздар кхелла система чу вала, амма параз долаш дац из.",
-       "tooltip-ca-talk": "Ð\9eагIон Ñ\87Ñ\83лоаÑ\86ам дувца оттадар",
+       "tooltip-pt-createaccount": "Хьа бокъо я дагара йоазув кхелла система чувала, амма параз долаш дац из.",
+       "tooltip-ca-talk": "Ð\9eагIон Ñ\87Ñ\83даÑ\80 дувца оттадар",
        "tooltip-ca-edit": "Нийсъе ер оагIув",
-       "tooltip-ca-addsection": "Керда дакъа хьаде",
+       "tooltip-ca-addsection": "Керда дáкъа хьаде",
        "tooltip-ca-viewsource": "Ер оагIув хувцамбарах гIо теха (лорая) я, амма цунна дIадолалу текстага хьажа а, из тIерхьаязъе а бокъо я.",
        "tooltip-ca-history": "Укх оагIон даь хувцамаш тIа дола тептар",
-       "tooltip-ca-protect": "Eр оагIув лорае",
-       "tooltip-ca-delete": "Ð\95Ñ\80 Ð¾Ð°Ð³IÑ\83в Ð´IаÑ\8fÑ\8cкÑ\85а",
+       "tooltip-ca-protect": "Лорае ер оагIув хувцамаш дергдоацаш",
+       "tooltip-ca-delete": "Ð\94Ó\80аÑ\8fккÑ\85а ÐµÑ\80 Ð¾Ð°Ð³Ó\80Ñ\83в",
        "tooltip-ca-move": "Укх оагIон цIи хувца",
-       "tooltip-ca-watch": "Ð\95Ñ\80 Ð¾Ð°Ð³IÑ\83в IайÑ\85а Ð·Ñ\83вÑ\88 Ð¹Ð¾Ð»Ñ\87а Ð¾Ð°Ð³IонаÑ\88Ñ\82а Ñ\8eкÑ\8aеÑ\8fккÑ\85а",
-       "tooltip-ca-unwatch": "Ð\95Ñ\80 Ð¾Ð°Ð³IÑ\83в Ñ\82еÑ\80кам Ð±ÐµÑ\87а ÐºÐ°Ñ\8cÑ\85аÑ\82а Ñ\82IаÑ\80а Ð´IаÑ\8fÑ\8cкÑ\85а",
+       "tooltip-ca-watch": "ТIаÑ\82оÑ\85а ÐµÑ\80 Ð¾Ð°Ð³IÑ\83в Ñ\85Ñ\8cа Ð·ÐµÐ¼ Ð±Ð°Ñ\80а Ñ\85Ñ\8cаÑ\8fзÑ\8aÑ\8fÑ\8cÑ\80а",
+       "tooltip-ca-unwatch": "Ð\94IаÑ\8fккÑ\85а ÐµÑ\80 Ð¾Ð°Ð³IÑ\83в Ñ\88оай Ð·ÐµÐ¼ Ð±Ð°Ñ\80а Ñ\85Ñ\8cаÑ\8fзÑ\8aÑ\8fÑ\8cÑ\80 Ñ\82IаÑ\80а",
        "tooltip-search": "Хьалáха {{grammar:prepositional|{{SITENAME}}}} чу",
        "tooltip-search-go": "Изза мо цӀи йолаш оагӀон тӀa дехьавала",
-       "tooltip-search-fulltext": "Ð\98зза Ð¼Ð¾ Ñ\8fздаÑ\80 Ð´Ð¾Ð»Ð°Ñ\88 Ð¾Ð°Ð³Ó\80Ñ\83внаш лаха",
+       "tooltip-search-fulltext": "Ð\98зза Ð¼Ð¾ Ñ\82екÑ\81Ñ\82 Ð¹Ð¾Ð»Ð°Ñ\88 Ð¾Ð°Ð³Ó\80онаш лаха",
        "tooltip-p-logo": "Керттера оагIон тIа дехьавала",
        "tooltip-n-mainpage": "Керттера оагIон тIа дехьавала",
        "tooltip-n-mainpage-description": "Керттера оагIон тIа дехьавала",
-       "tooltip-n-portal": "Ð\93IалгIай Ð\92икипедех лаьца дар а, укхаза де мегаш дар а, малагIа фуд а, мича да а",
+       "tooltip-n-portal": "Ð\93IалгIай Ð\92икипейдах лаьца дар а, укхаза де мегаш дар а, малагIа фуд а, мича да а",
        "tooltip-n-currentevents": "ХIанзара хинна хIамах бола хоам",
-       "tooltip-n-recentchanges": "ТÓ\80еÑ\85Ñ\85Ñ\8cаÑ\80а Ñ\85Ñ\83вÑ\86амай Ñ\81пиÑ\81ок",
+       "tooltip-n-recentchanges": "ТÓ\80еÑ\85Ñ\85Ñ\8cаÑ\80а Ñ\85Ñ\83вÑ\86амий Ñ\85Ñ\8cаÑ\8fзÑ\8aÑ\8fÑ\8cÑ\80",
        "tooltip-n-randompage": "Башхало йоаца ца ховш нийсъенна оагӀув хьаела",
        "tooltip-n-help": "Новкъостал лаха мегаш йола моттиг",
        "tooltip-t-whatlinkshere": "Укхаза тIахьожавеш йола оагIонаш",
-       "tooltip-t-recentchangeslinked": "Укх оагIуво тIахьожавеш йолча оагIонай тIеххьара хувцамаш",
-       "tooltip-feed-rss": "Укх оагIувна RSSчу гойтар",
+       "tooltip-t-recentchangeslinked": "Укх оагIо тIахьожавеш йолча оагIонай тIеххьара хувцамаш",
+       "tooltip-feed-rss": "RSS чу гойтар укх оагIон",
        "tooltip-feed-atom": "Укх оагIонна лаьрххIа Atom чу трансляци яр",
        "tooltip-t-contributions": "{{GENDER:$1|Укх доакъашхочо хийца}} йола оагIонаш",
-       "tooltip-t-emailuser": "УкÑ\85 Ð´Ð°ÐºÑ\8aалаÑ\8cÑ\86аÑ\80Ñ\85оÑ\87оа Ð·IÑ\8b Ñ\8fÑ\85Ñ\8cийÑ\82а",
+       "tooltip-t-emailuser": "Ð\94IаÑ\85Ñ\8cийÑ\82а ÐºÐ°Ñ\8cÑ\85аÑ\82 {{GENDER:$1|Ñ\83кÑ\85 Ð´Ð¾Ð°ÐºÑ\8aаÑ\88Ñ\85оÑ\87Ñ\83н}}",
        "tooltip-t-upload": "Файлаш чуяккха",
-       "tooltip-t-specialpages": "ГIулакха оагIувнаш",
+       "tooltip-t-specialpages": "ГIулакха оагIонаш",
        "tooltip-t-print": "Укх оагIон зарба тохара верси",
-       "tooltip-t-permalink": "ОагIон укх версин тIахьожавеш йола даим латташ йола хьожаярг",
-       "tooltip-ca-nstab-main": "ОагIон чурадар",
+       "tooltip-t-permalink": "Ð\9eагIон Ñ\83кÑ\85 Ð²ÐµÑ\80Ñ\81ин Ñ\82IаÑ\85Ñ\8cожавеÑ\88 Ð¹Ð¾Ð»Ð° Ð´Ð°Ð¸Ð¼ Ð»Ð°Ñ\82Ñ\82аÑ\88 Ð¹Ð¾Ð»Ð° Ñ\82IаÑ\85Ñ\8cожаÑ\8fÑ\80г",
+       "tooltip-ca-nstab-main": "ОагIон чударга хьажар",
        "tooltip-ca-nstab-user": "Доакъашхочун ше доалахь йола оагIув",
        "tooltip-ca-nstab-special": "Ер гIулакха оагIув я, из хувца бокъо яц",
        "tooltip-ca-nstab-project": "Проектан оагIув",
-       "tooltip-ca-nstab-image": "Файлан оагӀув",
+       "tooltip-ca-nstab-image": "Файла оагӀув",
        "tooltip-ca-nstab-template": "Лера оагIув",
-       "tooltip-ca-nstab-help": "Ð\93Ó\80он оагIув",
-       "tooltip-ca-nstab-category": "Ð\9aаÑ\82егоÑ\80ий оагӀув",
-       "tooltip-minoredit": "Ð\95Ñ\80 Ñ\85Ñ\83вÑ\86аÑ\80 Ð±Ð°Ñ\88Ñ\85а Ð´Ð¾Ð°Ñ\86а санна белгалде",
-       "tooltip-save": "Хьай хувцамаш лорадеш дIаязде",
-       "tooltip-preview": "Дехар да, оагӀув лораешь дIаязъелехь из мишта я тахка хьалххе хьажарах пайда эцаш!",
+       "tooltip-ca-nstab-help": "Ð\9dовкÑ\8aоÑ\81Ñ\82ала оагIув",
+       "tooltip-ca-nstab-category": "Ð\9aаÑ\82егоÑ\80ен оагӀув",
+       "tooltip-minoredit": "Ð\95Ñ\80 Ñ\85Ñ\83вÑ\86аÑ\80 ÐºIезига Ð´Ð°Ñ\80 санна белгалде",
+       "tooltip-save": "Хьа хувцамаш лорадеш дIаязде",
+       "tooltip-preview": "Дехар да, оагӀув лораешь дIаязъелехь из мишта я тахка хьалххе бIаргтохарах пайда эцаш!",
        "tooltip-diff": "ДIадолалу текстаца даь хувцамаш хьахьокха",
-       "tooltip-compareselectedversions": "Укх оагIувни шин доржамаш тIа юкъера хувцамаш зе.",
-       "tooltip-watch": "Ð\95Ñ\80 Ð¾Ð°Ð³IÑ\83в Ñ\82еÑ\80кам Ð±ÐµÑ\87а ÐºÐ°Ñ\8cÑ\85аÑ\82а Ñ\82Iа Ñ\8fÑ\8cкÑ\85а",
+       "tooltip-compareselectedversions": "Укх оагIон хержа шин версешта юкъе йола башхалога хьажа.",
+       "tooltip-watch": "ТIаÑ\82оÑ\85а ÐµÑ\80 Ð¾Ð°Ð³IÑ\83в Ñ\85Ñ\8cа Ð·ÐµÐ¼ Ð±Ð°Ñ\80а Ñ\85Ñ\8cаÑ\8fзÑ\8aÑ\8fÑ\8cÑ\80а",
        "tooltip-rollback": "Цкъа пIелг тоIабе дIадаккха тIехьара редакторас даь хувцамаш",
        "tooltip-undo": "Даь хувцар дIадаьккха, хьалххе бIаргтохар хьахьокха, дIадаккхара бахьан Iочуязде аьттув болаш.",
-       "tooltip-summary": "Лоаца йоазонца сурт оттадар Iочуязде",
+       "tooltip-summary": "Лоаца сурт оттадар Iочуязде",
        "simpleantispam-label": "Анти-спам тахкар.\n<strong>Цхьа</strong> хIама ма язъе укхаз!",
        "pageinfo-hidden-categories": "{{PLURAL:$1|1=Къайла категори|Къайла категореш}} ($1)",
        "pageinfo-toolboxlink": "ОагIонах бола хоам",
        "previousdiff": "← Хьалхара нийсдар",
        "nextdiff": "ТIайоагIа нийсъар",
-       "file-info-size": "$1 × $2 {{PLURAL:$2|пиксель}}, файлан боарам: $3, MIME-тайпа: $4",
+       "file-info-size": "$1 × $2 {{PLURAL:$2|пиксель}}, файла боарам: $3, MIME-тайпа: $4",
        "file-nohires": "Укхал дуккхагIа доккхал долаш верси яц",
        "svg-long-desc": "SVG-файл, номинально $1 × $2 {{PLURAL:$2|пиксель}}, файлан боарам: $3",
        "show-big-image": "ДIадолалу файл",
        "show-big-image-preview": "Боарам хьалххе бIаргтохач хан: $1.",
-       "show-big-image-other": "{{PLURAL:$2|1=Ð\9aÑ\85Ñ\8bйола  Ñ\80азÑ\80еÑ\88ени|Ð\9aÑ\85Ñ\8bйола  Ñ\80азÑ\80еÑ\88енеÑ\88}}: $1.",
+       "show-big-image-other": "{{PLURAL:$2|1=Ð\9aÑ\85Ñ\8bбола Ñ\82IеÑ\80а Ð±Ð¾Ð°Ñ\80ам|Ð\9aÑ\85Ñ\8bбола Ñ\82IеÑ\80а Ð±Ð¾Ð°Ñ\80ам}}: $1.",
        "show-big-image-size": "$1 × $2 пиксель",
-       "noimages": "СÑ\83Ñ\80Ñ\82\88 Ð±IаÑ\80гагÑ\83Ñ\88 Ð´Ð°Ñ\86.",
+       "noimages": "Суртaш дац.",
        "ilsubmit": "Хьалáха",
-       "bad_image_list": "Ð\91Ñ\83Ñ\81Ñ\82ам Ñ\86Ñ\83 Ñ\82айпаÑ\80а Ñ\85ила Ð±ÐµÐ·Ð°:\n\nÐ\94агаÑ\80лен Ñ\85Ñ\8cаÑ\80акÑ\8aаÑ\88 Ð¼Ð°Ñ\80а Ð»Ð¾Ð°Ñ\80Ñ\85|аÑ\88 Ñ\85Ñ\83Ñ\80гÑ\8cÑ\8fÑ\86 (Ñ\83кÑ\85 Ñ\82амагIалгаÑ\86a * Ð´Ñ\83влаÑ\88дÑ\83 Ð¼Ñ\83гIаÑ\80аÑ\88).\nÐ\9cÑ\83гIаÑ\80ен Ñ\85Ñ\8cалÑ\85аÑ\80а Iинк, Ñ\81Ñ\83Ñ\80Ñ\82 IоÑ\82Ñ\82ае Ð¿Ñ\83Ñ\80ам Ð´Ð¾Ð°Ñ\86а Iинка, Ñ\85ила ÐµÐ·Ð°. \nЦÑ\83 Ð¼Ñ\83гIаÑ\80а Ñ\82IеÑ\85Ñ\8cайоагIа IинкаÑ\88, Ð°Ñ\80адаккÑ\85аÑ\80 Ð¼Ð¾ Ð»Ð¾Ð°Ñ\80Ñ\85|аÑ\88 Ñ\85Ñ\83Ñ\80гÑ\8cÑ\8f, Ð²ÐµÑ\88Ñ\82а Ð°Ñ\8cлÑ\87а, Ð¹Ð¾Ð°Ð·Ñ\83ваÑ\88ка Ñ\87Ñ\83IоÑ\82Ñ\82аде Ð¼ÐµÐ³Ð°Ñ\88 Ð´Ð¾Ð»Ð° Ñ\81Ñ\83Ñ\80Ñ\82 Ñ\81анна Ð»Ð°Ñ\80Ñ\85|а Ð¼ÐµÐ³а.",
+       "bad_image_list": "ФоÑ\80маÑ\82 Ñ\85ила ÐµÐ·Ð° Ð¸Ñ\88Ñ\82Ñ\82а:\n\nÐ\9bоаÑ\80Ñ\85IаÑ\88 Ñ\85Ñ\83Ñ\80гда Ð°Ð»Ñ\85Ñ\85а Ñ\85Ñ\8cаÑ\8fзÑ\8aÑ\8fÑ\8cÑ\80а Ñ\8dлеменÑ\82аÑ\88 (Ñ\83кÑ\85 * Ð±ÐµÑ\85кама Ð±ÐµÐ»Ð³Ð°Ð»Ð¾Ð½Ð°Ñ\86а Ð´Ð¾Ð»Ð°Ð»Ñ\83Ñ\88 Ð´Ð¾Ð»Ð° Ð¼Ð¾Ð³IаÑ\80аÑ\88).\nÐ\9cогIаÑ\80а Ñ\86Ñ\85Ñ\8cоаллагIа Ñ\82IаÑ\85Ñ\8cожаÑ\8fÑ\80г Ñ\87Ñ\83оÑ\82Ñ\82аде Ð¼ÐµÐ³Ð°Ñ\88 Ð´Ð¾Ð°Ñ\86а Ñ\81Ñ\83Ñ\80Ñ\82а Ñ\82IаÑ\85Ñ\8cожавеÑ\88 Ñ\85ила ÐµÐ·Ð°.\nЦÑ\83 Ð¼Ð¾Ð³IаÑ\80а Ñ\82IеÑ\85Ñ\8cайоагIа Ñ\82IаÑ\85Ñ\8cожаÑ\8fÑ\80гаÑ\88 Ð»Ð¾Ð°Ñ\80Ñ\85IаÑ\88 Ñ\85Ñ\83Ñ\80гÑ\8cÑ\8f Ñ\8dÑ\80гамаÑ\88 (иÑ\81клÑ\8eÑ\87ениÑ\8f) Ñ\81анна, Ð²ÐµÑ\88Ñ\82а Ð°Ñ\8cлÑ\87а, Ñ\81Ñ\83Ñ\80Ñ\82 Ñ\87Ñ\83оÑ\82Ñ\82аде Ð¼ÐµÐ³Ð°Ñ\88 Ð¹Ð¾Ð»Ð° Ñ\81Ñ\82аÑ\82Ñ\8cÑ\8fÑ\88 Ñ\81анна.",
        "metadata": "Мета-дараш",
-       "metadata-help": "ФайлаÑ\81 ÐºÑ\85Ñ\8bдола Ñ\85оамаÑ\88 Ñ\87Ñ\83лоаÑ\86а, Ñ\86иÑ\84Ñ\80овой Ñ\81Ñ\83Ñ\80Ñ\82доакÑ\85аÑ\80го Ðµ Ñ\81канеÑ\80о Ñ\82IаÑ\82оÑ\85аÑ\88 Ð´Ð¾Ð»Ð°. Ð\9dагаÑ\85Ñ\8cа Ñ\84айл Ñ\87Ñ\83Ñ\8fкÑ\85аÑ\87Ñ\83л Ñ\82IеÑ\85Ñ\8cа Ñ\85ийÑ\86а Ñ\85инна Ð´Ð°Ð»Ðµ, Ñ\86Ñ\85Ñ\8cаÑ\86Ñ\86айола Ð¿Ð°Ñ\80амеÑ\82Ñ\80аÑ\88 Ñ\85IанзаÑ\80а Ñ\81Ñ\83Ñ\80Ñ\82а Ñ\82ара йоацаш хила мегаш я.",
-       "metadata-expand": "Ð\9aÑ\85Ñ\8bдола Ñ\85IамаÑ\88 Ñ\85Ñ\8cаÑ\85Ñ\8cокÑ\85а",
-       "metadata-collapse": "Ð\9aÑ\85Ñ\8bдола Ñ\85IамаÑ\88 ÐºÑ\8aайладаккÑ\85а",
-       "metadata-fields": "УкÑ\85 Ñ\81пиÑ\81ке Ð´Ð°Ð³aÑ\80адаÑ\8c Ñ\81Ñ\83Ñ\80Ñ\82ай Ð¼ÐµÑ\82аÑ\85оамай Ð¹Ð¸Ñ\81Ñ\82оÑ\88, Ñ\85Ñ\8cаÑ\85Ñ\8cекÑ\85а Ñ\85Ñ\83Ñ\80гда Ñ\81Ñ\83Ñ\80Ñ\82ан Ð¾Ð°Ð³Iон Ñ\82Iа, Ð¼ÐµÑ\82аÑ\85оамай Ñ\82аблиÑ\86а Ñ\85Ñ\8cоаÑ\80Ñ\87аÑ\8f Ð¹олаш. Юхедиса йистош къайла хургда.\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-help": "Файло ÐºÑ\85Ñ\8bдола Ð´Ð°Ñ\80аÑ\88 Ñ\87Ñ\83лоаÑ\86а, Ñ\86иÑ\84Ñ\80овой Ñ\81Ñ\83Ñ\80Ñ\82доакÑ\85аÑ\80го Ðµ Ñ\81канеÑ\80о Ñ\82IаÑ\82оÑ\85аÑ\88 Ð´Ð¾Ð»Ð°. Ð\9dагаÑ\85Ñ\8cа Ñ\84айл Ñ\87Ñ\83Ñ\8fкÑ\85аÑ\87Ñ\83л Ñ\82IеÑ\85Ñ\8cа Ñ\85ийÑ\86а Ñ\85инна Ð´Ð°Ð»Ðµ, Ñ\86Ñ\85Ñ\8cаÑ\86Ñ\86айола Ð¿Ð°Ñ\80амеÑ\82Ñ\80аÑ\88 Ñ\85IанзаÑ\80а Ñ\81Ñ\83Ñ\80Ñ\82а Ñ\82Iара йоацаш хила мегаш я.",
+       "metadata-expand": "Ð¥Ñ\8cаÑ\85Ñ\8cокÑ\85а ÐºÑ\85Ñ\8bдола Ð´Ð°Ñ\80аÑ\88",
+       "metadata-collapse": "Ð\9aÑ\8aайладаккÑ\85а ÐºÑ\85Ñ\8bдола Ð´Ð°Ñ\80аÑ\88",
+       "metadata-fields": "УкÑ\85 Ñ\85Ñ\8cаÑ\8fÑ\8cзÑ\8aÑ\8fÑ\80а Ñ\87Ñ\83 Ð´Ð°Ð³aÑ\80адаÑ\8c Ñ\81Ñ\83Ñ\80Ñ\82ий Ð¼ÐµÑ\82аÑ\85оамий Ð¹Ð¸Ñ\81Ñ\82оÑ\88, Ñ\85Ñ\8cаÑ\85Ñ\8cекÑ\85а Ñ\85Ñ\83Ñ\80гда Ñ\81Ñ\83Ñ\80Ñ\82а Ð¾Ð°Ð³Iон Ñ\82Iа, Ñ\85Ñ\8cоаÑ\80Ñ\87адаÑ\8c Ð¼ÐµÑ\82аÑ\85оамий Ð¸Ð»Ñ\8cг Ð´олаш. Юхедиса йистош къайла хургда.\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-imagewidth": "Шерал",
        "exif-imagelength": "Лакхал",
        "exif-orientation": "Сурта белгало",
-       "exif-xresolution": "Ð\9fÑ\85Ñ\8cоÑ\80агIа Ñ\80азÑ\80еÑ\88ени",
-       "exif-yresolution": "УÑ\80агIа Ñ\80азÑ\80еÑ\88ени",
+       "exif-xresolution": "Ð\9fÑ\85Ñ\8cоÑ\80агIа Ñ\82IеÑ\80а Ð±Ð¾Ð°Ñ\80ам",
+       "exif-yresolution": "УÑ\80агIа Ñ\82IеÑ\80а Ð±Ð¾Ð°Ñ\80ам",
        "exif-datetime": "Файл хийца хинна таьрахьи хаи",
        "exif-imagedescription": "Сурта цIи",
        "exif-make": "Камера кийчъяь арахийцар",
        "exif-model": "Камера модель",
        "exif-software": "Программни Iалашдар",
-       "exif-artist": "ЯздаÑ\80Ñ\85о",
+       "exif-artist": "Ð\90вÑ\82оÑ\80",
        "exif-exifversion": "Верси Exif",
        "exif-colorspace": "Бесай мотт",
        "exif-pixelxdimension": "Сурта шорал",
        "exif-pixelydimension": "Сурта лакхал",
        "exif-datetimeoriginal": "Оригинальни таьрахьи хаи",
        "exif-datetimedigitized": "Оцифровк яь таьрахь а, ха а",
-       "exif-writer": "Яздама Ð´Ð°",
+       "exif-writer": "ТекÑ\81Ñ\82а Ð°Ð²Ñ\82оÑ\80",
        "exif-languagecode": "Мотт",
-       "exif-iimcategory": "ЦаÑ\82ег",
+       "exif-iimcategory": "Ð\9aаÑ\82егоÑ\80и",
        "exif-orientation-1": "гIаьхьа",
-       "exif-scenecapturetype-1": "ЛаьттабIаса",
-       "exif-scenecapturetype-2": "Сурт",
-       "exif-iimcategory-edu": "Дешар",
-       "exif-iimcategory-evn": "Ð\90Ñ\80ен Ð±Ñ\83не",
-       "exif-iimcategory-hth": "Ð\9cогаÑ\80",
-       "exif-iimcategory-hum": "Ð\90дамий Ð¸Ñ\81каÑ\80аш",
-       "exif-iimcategory-rel": "Дини тешари",
-       "exif-iimcategory-sci": "Iилмаи кулгболхи",
-       "exif-iimcategory-soi": "Сагий хаттараш",
-       "exif-iimcategory-spo": "Ð\9dидзоамал",
-       "exif-iimcategory-war": "ТIемаш, кховсамаши латтараши",
+       "exif-scenecapturetype-1": "Ландшафт",
+       "exif-scenecapturetype-2": "Сага сурт",
+       "exif-iimcategory-edu": "Дешарца Iомадар",
+       "exif-iimcategory-evn": "Ð\93онаÑ\85Ñ\8cе",
+       "exif-iimcategory-hth": "УнаÑ\85Ñ\86Iано",
+       "exif-iimcategory-hum": "ЧIоагIа Ð´Ð¸ÐºÐ° Ð¸Ñ\81Ñ\82оÑ\80еш",
+       "exif-iimcategory-rel": "Ди а, тешар а",
+       "exif-iimcategory-sci": "Ӏилма а, техника а",
+       "exif-iimcategory-soi": "СоÑ\86иалÑ\8cни хаттараш",
+       "exif-iimcategory-spo": "СпоÑ\80Ñ\82",
+       "exif-iimcategory-war": "ТIемáш, вIашдухьалъóттамаш, кéгараш",
        "exif-iimcategory-wea": "Хаоттам",
        "namespacesall": "деррига",
        "monthsall": "деррига",
-       "confirm_purge_button": "Ð¥Iаа",
-       "imgmultigo": "Дехьа гӀо!",
-       "imgmultigoto": "$1 оагIув тIа дехьавала",
+       "confirm_purge_button": "Ð\9cега",
+       "imgmultigo": "Дехьавала!",
+       "imgmultigoto": "$1 оагIон тIа дехьавала",
        "table_pager_limit_submit": "Кхоачашде",
-       "watchlisttools-view": "Ð\94агаÑ\80Ñ\87еÑ\80а Ð¾Ð°Ð³IÑ\83внаÑ\88 Ñ\82Iа хувцамаш",
-       "watchlisttools-edit": "Ð\94агаÑ\80Ñ\87е Ñ\85Ñ\8cажа/Ñ\85Ñ\83вÑ\86а",
-       "watchlisttools-raw": "Яздам Ð¼Ð¾ хувца",
+       "watchlisttools-view": "Ð¥Ñ\8cаÑ\8fзÑ\8aÑ\8fÑ\8cÑ\80 Ñ\87Ñ\83Ñ\80а Ð¾Ð°Ð³IонаÑ\88 Ñ\82Iа Ð´Ð¾Ð»а хувцамаш",
+       "watchlisttools-edit": "Ð¥Ñ\8cажа Ð° Ñ\85Ñ\83вÑ\86а Ð° Ñ\85Ñ\8cаÑ\8fзÑ\8aÑ\8fÑ\8cÑ\80",
+       "watchlisttools-raw": "Ð\9cаÑ\81Ñ\81аза Ð¹Ð¾Ð»Ð° Ñ\82екÑ\81Ñ\82 Ñ\81анна хувца",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|дувца оттадар]])",
-       "duplicate-defaultsort": "Ð\97ем Ð±Ðµ. Ð¡Ð°Ñ\82ийна Ð´Iа-Ñ\85Ñ\8cа Ñ\85Ñ\8cоÑ\80жама Ð´Ð¾Ð°Ð³I \"$2\" Ñ\85Ñ\8cалÑ\85аÑ\80а Ñ\81аÑ\82ийна Ð´Iа-Ñ\85Ñ\8cа Ñ\85Ñ\8cоÑ\80жама Ð´Ð¾Ð°Ð³I \"$1\" Ñ\85Ñ\8cаÑ\85Ñ\8cоÑ\80жа.",
-       "version": "Ð\94оÑ\80жам",
-       "version-specialpages": "Ð\91алха оагӀонаш",
+       "duplicate-defaultsort": "ТеÑ\80кам. Ð\94олÑ\87а Ñ\82айпаÑ\80а Ð´IанийÑ\81даÑ\80а Ð´IоагIа Â«$2» Ñ\8eÑ\85акÑ\8aоаÑ\81Ñ\82адÑ\83 Ð´Ð¾Ð»Ñ\87а Ñ\82айпаÑ\80а Ð´IанийÑ\81даÑ\80а Ñ\85Ñ\8cалÑ\85а Ñ\85инна Ð´IоагIа Â«$1».",
+       "version": "Ð\92еÑ\80Ñ\81и",
+       "version-specialpages": "Ð\93\83лакха оагӀонаш",
        "version-version": "($1)",
-       "version-software-version": "Ð\94оÑ\80жам",
-       "fileduplicatesearch-filename": "Ð\9fаÑ\8cлаÑ\86Iи:",
+       "version-software-version": "Ð\92еÑ\80Ñ\81и",
+       "fileduplicatesearch-filename": "Файла Ñ\86Ó\80и:",
        "fileduplicatesearch-submit": "Хьалáха",
-       "specialpages": "ЛаьрххIа йола оагIувнаш",
-       "specialpages-group-users": "Ð\94акÑ\8aалаÑ\8cÑ\86аÑ\80Ñ\85ой, Ñ\86аÑ\80а Ð±Ð¾ÐºÑ\8aо",
-       "specialpages-group-pages": "ОагIувний дагарченаш",
-       "specialpages-group-pagetools": "ОагIувнаша гIирсаш",
-       "external_image_whitelist": "#Ð\95Ñ\80 Ð¼Ñ\83гI Ñ\88ий Ð´Ð¾Ð»Ð°Ñ\88 Ñ\82айпаÑ\80а Ð´Ð¸Ñ\82а<pre>\n#Ð\9aаÑ\81Ñ\82-каÑ\81Ñ\82а Ð¾Ð°Ð»Ð°Ð¼Ð°Ñ\88 Ñ\83кÑ\85аза Ð´IаÑ\8fзаде(Ñ\8eкÑ\8aе Ð´Ð¾Ð»Ð° Ð´Ð°ÐºÑ\8aа //)\n#аÑ\80аÑ\80а Ñ\81Ñ\83Ñ\80Ñ\82ий URLÑ\86а Ð´IанийÑ\81алÑ\83Ñ\80гда Ñ\83Ñ\88.\n#Ð\9fайдан Ð´Ð¾Ð»Ð°, Ñ\81Ñ\83Ñ\80Ñ\82аÑ\88 Ð¼Ð¾ Ñ\85Ñ\8cаÑ\85Ñ\8cекÑ\85а Ñ\85Ñ\83Ñ\80гÑ\8cÑ\8f, Ð´Ð°Ñ\85IодаÑ\80аÑ\88, Ñ\81Ñ\83Ñ\80Ñ\82а Ñ\82Iа IинкаÑ\88 Ð¼Ð¾ Ñ\85Ñ\83pгÑ\8cÑ\8f Ñ\85Ñ\8cаÑ\85Ñ\8cекÑ\85а.\n#УкÑ\85 # Ñ\82амагIалгаÑ\86а Ð´IадÑ\83влаÑ\88 Ð´Ð¾Ð»Ð° Ð¼Ñ\83гIанаÑ\88, Ð¾Ð°Ð»Ð°Ð¼ Ð¼Ð¾ Ð»Ð¾Ð°Ñ\80Ñ\85аÑ\88 Ð´Ð°.\n#Ð\9cÑ\83гIанаÑ\88 Ñ\8fздaÑ\82акÑ\85а ÐºÐ°Ñ\8cда Ð´Ð°\n\n#Ð\9aаÑ\81Ñ\82-каÑ\81Ñ\82а Ð¾Ð°Ð»Ð°Ð¼Ð°Ñ\88 Ñ\83кÑ\85 Ð¼Ñ\83гIа Ð»Ð°ÐºÑ\85е Ð´IаÑ\8fзаде. Ð\98з Ð¼Ñ\83гI Ñ\88ий Ð´Ð¾Ð»Ð°Ñ\88 Ñ\82айпаÑ\80а Ð´ита</pre>",
-       "tag-filter": "[[Special:Tags|белгалонай]] Ð»Ñ\83Ñ\82Ñ\82аÑ\80г:",
-       "tag-filter-submit": "ЦIенÑ\8aе",
+       "specialpages": "ЛаьрххIа йола оагIонаш",
+       "specialpages-group-users": "Ð\94оакÑ\8aаÑ\88Ñ\85ойи Ð±Ð¾ÐºÑ\8aонаÑ\88и",
+       "specialpages-group-pages": "ОагIонай хьаязъяьраш",
+       "specialpages-group-pagetools": "ОагIонашта дола гIирсаш",
+       "external_image_whitelist": "#Ð\95Ñ\80 Ð¼Ñ\83гI Ñ\88ий Ð±Ð¾Ð»Ñ\87а Ñ\82айпаÑ\80а Ð±Ð¸Ñ\82а<pre>\n#УкÑ\85аз Ð¾Ñ\82Ñ\82аде ÐºÐ°Ñ\81Ñ\82Ñ\82а Ð´Ñ\83влаÑ\87а Ð²Ñ\8bÑ\80ажений Ñ\84Ñ\80агменÑ\82аÑ\88 (// Ñ\8eкÑ\8aе Ð´Ð¾Ð»Ð° Ð´Ð°ÐºÑ\8aа)\n#аÑ\80аÑ\85Ñ\8cаÑ\80а Ñ\81Ñ\83Ñ\80Ñ\82ий URL Ð°Ð´Ñ\80еÑ\81аÑ\88Ñ\86а Ð´IанийÑ\81алÑ\83Ñ\80гда Ñ\83Ñ\88.\n#Ð\9cегаÑ\80гдола Ñ\81Ñ\83Ñ\80Ñ\82аÑ\88 Ñ\81анна Ñ\85Ñ\8cаÑ\85Ñ\8cекÑ\85а Ñ\85Ñ\83Ñ\80гда, Ð´IаÑ\85одаÑ\80аÑ\88, Ñ\81Ñ\83Ñ\80Ñ\82аÑ\88Ñ\82а Ñ\82IаÑ\85Ñ\8cожаÑ\8fÑ\80гаÑ\88 Ñ\81анна Ñ\85Ñ\8cаÑ\85Ñ\8cекÑ\85а Ñ\85Ñ\83Ñ\80гда.\n#УкÑ\85анÑ\86а # Ð´Ð¾Ð»Ð°Ð»Ñ\83Ñ\88 Ð´Ð¾Ð»Ð° Ð¼Ð¾Ð³IаÑ\80аÑ\88 Ð°Ð»Ð°Ñ\80аÑ\88 Ñ\81анна Ð»Ð¾Ð°Ñ\80Ñ\85IаÑ\88 Ð´Ð°.\n#Ð\9cогIаÑ\80аÑ\88 Ñ\80егиÑ\81Ñ\82Ñ\80аÑ\86а ÐºIаÑ\8cда Ð´Ð°Ñ\86\n\n#УкÑ\85 Ð¼Ð¾Ð³IаÑ\80а Ð»Ð°ÐºÑ\85е Ð¾Ñ\82Ñ\82аде ÐºÐ°Ñ\81Ñ\82Ñ\82а Ð´Ñ\83влаÑ\87а Ð²Ñ\8bÑ\80ажений Ñ\84Ñ\80агменÑ\82аÑ\88. Ð\95Ñ\80 Ð¼Ñ\83гI Ñ\88ий Ð±Ð¾Ð»Ñ\87а Ñ\82айпаÑ\80а Ð±ита</pre>",
+       "tag-filter": "[[Special:Tags|Ð\91елгалонай]] Ñ\84илÑ\8cÑ\82Ñ\80:",
+       "tag-filter-submit": "Ð\9bиÑ\82Ñ\82а",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|1=Белгало|Белгалонаш}}]]: $2)",
-       "tags-title": "Ð\99оазонаш",
-       "tags-tag": "Ð\99оазон Ñ\86Iи",
-       "tags-hitcount-header": "Ð\91елгалаÑ\8fÑ\8c Ñ\85Ñ\83вÑ\86амаш",
-       "tags-edit": "хувца",
+       "tags-title": "Ð\91елгалонаш",
+       "tags-tag": "Ð\91елгалон Ñ\86Ó\80и",
+       "tags-hitcount-header": "Ð\91елгалдаÑ\8c Ð½Ð¸Ð¹Ñ\81даÑ\80аш",
+       "tags-edit": "нийсде",
        "tags-hitcount": "$1 {{PLURAL:$1|1=хувцам|хувцамаш}}",
        "tags-create-submit": "Хьакхолла",
        "compare-page1": "ЦхьоаллагIа оагIув",
        "compare-page2": "ШоллагIа оагӀув",
-       "compare-rev1": "1. Доржам",
-       "compare-rev2": "2. Доржам",
+       "compare-rev1": "ЦхьоаллагIа верси",
+       "compare-rev2": "ШоллагӀа верси",
        "htmlform-submit": "ДIадахьийта",
        "htmlform-reset": "Хувцамаш юхадаккха",
-       "htmlform-selectorother-other": "Ð\9aÑ\85Ñ\8bдола",
+       "htmlform-selectorother-other": "Ð\9aÑ\85Ñ\8bдаÑ\80",
        "logentry-delete-delete": "$1 {{GENDER:$2|дIаяккхай}} оагIув $3",
        "logentry-move-move": "$1 {{GENDER:$2|цӀи хийцай}} $3 → $4",
-       "logentry-newusers-create": "{{GENDER:$2|Доакъашхочо кхеллай}} учёта яздар $1",
+       "logentry-newusers-create": "{{GENDER:$2|Доакъашхочо хьакхеллад}} дагара йоазув $1",
        "logentry-upload-upload": "$1 {{GENDER:$2|чуяьккхай}} $3",
-       "rightsnone": "(а)",
-       "revdelete-summary": "хувцамий лоацам",
+       "rightsnone": "(яц)",
+       "revdelete-summary": "хувцамий сурт оттадар",
        "searchsuggest-search": "Лахар",
+       "expand_templates_preview": "Хьалххе бIаргтохар",
        "pagelang-name": "ОагIув",
-       "special-characters-group-latin": "Ð\9bаÑ\8cÑ\82мий",
-       "special-characters-group-greek": "Ð\94желÑ\82ий",
-       "special-characters-group-cyrillic": "ЦÑ\8bÑ\80илиÑ\86ий",
-       "special-characters-group-arabic": "Ӏарбий",
-       "special-characters-group-persian": "Фаьранзий",
+       "special-characters-group-latin": "Ð\9bаÑ\82иной",
+       "special-characters-group-greek": "Эллиной",
+       "special-characters-group-cyrillic": "Ð\9aиÑ\80иллиÑ\86а",
+       "special-characters-group-arabic": "Iарбий",
+       "special-characters-group-persian": "Фаьрсий",
        "special-characters-group-hebrew": "Жугтий"
 }
index 3da7522..d781023 100644 (file)
        "export-addcat": "Adjuntar",
        "allmessages": "Omna sistemo-mesaji",
        "allmessagesname": "Nomo",
-       "allmessagestext": "Ico esas listo di omna sistemo-mesaji disponebla en la MediaWiki nomaro.\nVoluntez vizitar [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Lokizado] e [//translatewiki.net translatewiki.net] se vu volus kontributar ad generala MediaWiki lokizado.",
+       "allmessagestext": "Ico esas listo di omna sistemo-mesaji disponebla en la MediaWiki nomaro.\nVoluntez vizitar [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Lokizado] e [https://translatewiki.net translatewiki.net] se vu volus kontributar ad generala MediaWiki lokizado.",
        "allmessages-language": "Linguo:",
        "thumbnail-more": "Grandigar",
        "thumbnail_error": "Ne sucesas krear imajeto: $1",
index fe9bdca..8048a84 100644 (file)
        "protectedpagetext": "Þessari síðu hefur verið læst til að koma í veg fyrir breytingar eða aðrar aðgerðir.",
        "viewsourcetext": "Þú getur skoðað og afritað kóða þessarar síðu.",
        "viewyourtext": "Þú getur skoðað og afritað kóða <strong>breytinganna þinna</strong> yfir á þessa síðu.",
-       "protectedinterface": "Þessi síða gefur textann sem birtist í viðmóti hugbúnaðarins sem keyrir þessa síðu, og sem er læst til að koma í veg fyrir misnotkun.\nTil þess að bæta við eða breyta þýðingum fyrir öll wiki-verkefni, notaðu [//translatewiki.net/ translatewiki.net], staðfærsluverkefni MediaWiki",
+       "protectedinterface": "Þessi síða gefur textann sem birtist í viðmóti hugbúnaðarins sem keyrir þessa síðu, og sem er læst til að koma í veg fyrir misnotkun.\nTil þess að bæta við eða breyta þýðingum fyrir öll wiki-verkefni, notaðu [https://translatewiki.net/ translatewiki.net], staðfærsluverkefni MediaWiki",
        "editinginterface": "<strong>Aðvörun:</strong> Þú ert að breyta síðu sem hefur að geyma texta fyrir notendaumhverfi hugbúnaðarins.\nBreytingar á þessari síðu munu hafa áhrif á notendaumhverfi annarra notenda á þessu vefsvæði.",
-       "translateinterface": "Til þess að bæta við eða breyta þýðingum fyrir öll wiki-verkefni, notaðu [//translatewiki.net/ translatewiki.net], staðfærsluverkefni MediaWiki",
+       "translateinterface": "Til þess að bæta við eða breyta þýðingum fyrir öll wiki-verkefni, notaðu [https://translatewiki.net/ translatewiki.net], staðfærsluverkefni MediaWiki",
        "cascadeprotected": "Þessi síða hefur verið vernduð fyrir breytingum, vegna þess að hún er ítengd eftirfarandi {{PLURAL:$1|síðu, sem er vernduð|síðum, sem eru verndaðar}} með „keðjuverndun“:\n$2",
        "namespaceprotected": "Þú hefur ekki leyfi til að breyta síðum í '''$1''' nafnrýminu.",
        "customcssprotected": "Þú hefur ekki leyfi að breyta þessari CSS-umbrotsíðu, því hún hefur notandastillingar annars notanda.",
        "rightslogtext": "Þetta er skrá yfir breytingar á réttindum notenda.",
        "action-read": "lesa þessa síðu",
        "action-edit": "breyta þessari síðu",
-       "action-createpage": "skapa síður",
-       "action-createtalk": "skapa spjallsíður",
+       "action-createpage": "skapa þessa síðu",
+       "action-createtalk": "skapa þessa spjallsíðu",
        "action-createaccount": "skapa þennan notandaaðgang",
        "action-autocreateaccount": "búa sjálfvirkt til þennan ytri notandaaðgang",
        "action-history": "skoða breytingaskrá þessarar síðu",
        "allmessagesname": "Titill",
        "allmessagesdefault": "Sjálfgefinn texti skilaboða",
        "allmessagescurrent": "Núverandi texti",
-       "allmessagestext": "Þetta er listi yfir kerfismeldingar í MediaWiki-nafnrýminu.\nSkoðaðu vefinn fyrir [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki-staðfærsluna] og [//translatewiki.net translatewiki.net] ef þú vilt taka þátt í almennri MediaWiki-staðfærslu.",
+       "allmessagestext": "Þetta er listi yfir kerfismeldingar í MediaWiki-nafnrýminu.\nSkoðaðu vefinn fyrir [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki-staðfærsluna] og [https://translatewiki.net translatewiki.net] ef þú vilt taka þátt í almennri MediaWiki-staðfærslu.",
        "allmessagesnotsupportedDB": "Það er ekki hægt að nota <strong>$wgUseDatabaseMessages</strong> því hefur verið gert óvirkt.",
        "allmessages-filter-legend": "Sía",
        "allmessages-filter": "Sía með breytingarstöðu:",
        "mw-widgets-dateinput-placeholder-month": "ÁÁÁÁ-MM",
        "mw-widgets-titleinput-description-new-page": "síðan er ekki enn til",
        "mw-widgets-titleinput-description-redirect": "tilvísun á $1",
-       "api-error-blacklisted": "Veldu annan lýsandi titil",
        "sessionmanager-tie": "Get ekki sameinað margar gerðir auðkenningarbeiðna: $1.",
        "sessionprovider-generic": "$1 setur",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "setur með vefkökum",
index 91bfe2b..0ecc963 100644 (file)
@@ -98,7 +98,8 @@
                        "Mpiva",
                        "Urielejh",
                        "Matma Rex",
-                       "Matteocng"
+                       "Matteocng",
+                       "Einreiher"
                ]
        },
        "tog-underline": "Sottolinea i collegamenti:",
        "protectedpagetext": "Questa pagina è stata protetta per impedirne la modifica o altre operazioni.",
        "viewsourcetext": "È possibile visualizzare e copiare il codice sorgente di questa pagina.",
        "viewyourtext": "È possibile visualizzare e copiare il codice sorgente delle <strong>tue modifiche</strong> a questa pagina.",
-       "protectedinterface": "Questa pagina contiene un elemento che fa parte dell'interfaccia utente del software di questo sito ed è protetta per evitare possibili abusi.\nPer aggiungere o modificare le traduzioni valide su tutti i wiki, usa [//translatewiki.net/ translatewiki.net], il progetto di localizzazione di MediaWiki.",
+       "protectedinterface": "Questa pagina contiene un elemento che fa parte dell'interfaccia utente del software di questo sito ed è protetta per evitare possibili abusi.\nPer aggiungere o modificare le traduzioni valide su tutti i wiki, usa [https://translatewiki.net/ translatewiki.net], il progetto di localizzazione di MediaWiki.",
        "editinginterface": "<strong>Attenzione:</strong> il testo di questa pagina fa parte dell'interfaccia utente del software di questo sito. Tutte le modifiche apportate a questa pagina si riflettono sui messaggi visualizzati per tutti gli utenti su questo wiki.",
-       "translateinterface": "Per aggiungere o modificare le traduzioni valide su tutti i wiki, usa [//translatewiki.net/ translatewiki.net], il progetto MediaWiki per la localizzazione.",
+       "translateinterface": "Per aggiungere o modificare le traduzioni valide su tutti i wiki, usa [https://translatewiki.net/ translatewiki.net], il progetto di localizzazione MediaWiki.",
        "cascadeprotected": "Su questa pagina non è possibile effettuare modifiche perché è inclusa {{PLURAL:$1|nella pagina indicata di seguito, che è stata protetta|nelle pagine indicate di seguito, che sono state protette}} selezionando la protezione \"ricorsiva\":\n$2",
        "namespaceprotected": "Non si dispone dei permessi necessari per modificare le pagine del namespace '''$1'''.",
        "customcssprotected": "Non si dispone dei permessi necessari alla modifica di questa pagina CSS, in quanto contiene le impostazioni personali di un altro utente.",
        "password-change-forbidden": "Non è possibile modificare le password su questo wiki.",
        "externaldberror": "Si è verificato un errore con il server di autenticazione esterno, oppure non si dispone delle autorizzazioni necessarie per aggiornare il proprio accesso esterno.",
        "login": "Entra",
+       "login-security": "Verifica la tua identità",
        "nav-login-createaccount": "Entra / registrati",
        "userlogin": "Entra / registrati",
        "userloginnocreate": "Entra",
        "createacct-reason-help": "Messaggio visualizzato nel registro della creazione dell'utenza",
        "createacct-submit": "Crea la tua utenza",
        "createacct-another-submit": "Crea utenza",
+       "createacct-continue-submit": "Continua la creazione dell'utenza",
        "createacct-another-continue-submit": "Continua la creazione dell'utenza",
        "createacct-benefit-heading": "{{SITENAME}} cresce grazie a persone come te.",
        "createacct-benefit-body1": "{{PLURAL:$1|modifica|modifiche}}",
        "createacct-another-realname-tip": "L'indicazione del proprio nome vero è opzionale; se si sceglie di inserirlo, verrà utilizzato per attribuire la paternità dei contenuti inviati.",
        "pt-login": "Entra",
        "pt-login-button": "Entra",
+       "pt-login-continue-button": "Continua l'accesso",
        "pt-createaccount": "Registrati",
        "pt-userlogout": "esci",
        "php-mail-error-unknown": "Errore sconosciuto nella funzione PHP mail()",
        "resetpass-temp-password": "Password temporanea:",
        "resetpass-abort-generic": "La modifica della password è stata interrotta da un'estensione.",
        "resetpass-expired": "La password è scaduta. Si prega di impostare una nuova password per effettuare l'accesso.",
-       "resetpass-expired-soft": "La tua password è scaduta e deve essere reimpostata. Si prega di scegliere una nuova password o fare clic su \"{{int:resetpass-submit-cancel}}\" per reimpostarla successivamente.",
-       "resetpass-validity-soft": "La tua password non è valida: $1\n\nSi prega di scegliere una nuova password o fare clic su \"{{int:resetpass-submit-cancel}}\" per reimpostarla successivamente.",
+       "resetpass-expired-soft": "La tua password è scaduta e deve essere reimpostata. Si prega di scegliere una nuova password o fare clic su \"{{int:authprovider-resetpass-skip-label}}\" per reimpostarla successivamente.",
+       "resetpass-validity-soft": "La tua password non è valida: $1\n\nSi prega di scegliere una nuova password o fare clic su \"{{int:authprovider-resetpass-skip-label}}\" per reimpostarla successivamente.",
        "passwordreset": "Reimposta password",
        "passwordreset-text-one": "Compila questo modulo per reimpostare la tua password.",
        "passwordreset-text-many": "{{PLURAL:$1|Compila uno dei campi per ricevere una password temporanea tramite email.}}",
        "passwordreset-emailsentusername": "Se c'è un indirizzo di posta elettronica associato con questo nome utente, allora verrà inviata una email per reimpostare la password.",
        "passwordreset-emailsent-capture": "È stata inviata una email di reimpostazione della password, il contenuto è riportato di seguito.",
        "passwordreset-emailerror-capture": "È stata generata una email di reimpostazione della password, riportata di seguito. L'invio {{GENDER:$2|all'utente}} non è riuscito: $1",
+       "passwordreset-emailsent-capture2": "L'email di reimpostazione della password {{PLURAL:$1|è stata inviata|sono state inviate}}. {{PLURAL:$1|Il nome|L'elenco di nomi}} utente e password è mostrato di seguito.",
+       "passwordreset-emailerror-capture2": "Invio di email {{GENDER:$2|all'utente}} non riuscito: $1. {{PLURAL:$3|Il nome|L'elenco di nomi}} utente e password è mostrato di seguito.",
+       "passwordreset-nocaller": "Un chiamante deve essere fornito",
+       "passwordreset-nosuchcaller": "Chiamante non esiste: $1",
        "passwordreset-ignored": "La reimpostazione della password non è stata gestita. Forse nessun provider è configurato?",
        "passwordreset-invalideamil": "Indirizzo di posta elettronica non valido",
        "passwordreset-nodata": "Non è stato fornito né un nome utente né un indirizzo di posta elettronica",
        "minoredit": "Questa è una modifica minore",
        "watchthis": "Aggiungi agli osservati speciali",
        "savearticle": "Salva la pagina",
+       "savechanges": "Salva le modifiche",
        "publishpage": "Pubblica pagina",
+       "publishchanges": "Pubblica modifiche",
        "preview": "Anteprima",
        "showpreview": "Visualizza anteprima",
        "showdiff": "Mostra modifiche",
        "previewnote": "'''Ricorda che questa è solo un'anteprima.'''\nLe tue modifiche NON sono ancora state salvate!",
        "continue-editing": "Vai all'area di modifica",
        "previewconflict": "L'anteprima corrisponde al testo presente nella casella di modifica superiore e rappresenta la pagina come apparirà se si sceglie di salvarla in questo momento.",
-       "session_fail_preview": "Spiacenti! Non è stato possibile elaborare la modifica perché sono andati persi i dati relativi alla sessione.\n\nPotresti essere stato disconnesso. <strong>Verifica che sei ancora collegato e riprova</strong>.\nSe il problema persiste, si può tentare di [[Special:UserLogout|scollegarsi]] ed effettuare un nuovo accesso, e controllare che il tuo browser accetti i cookie da questo sito.",
-       "session_fail_preview_html": "Spiacenti! Non è stato possibile elaborare la modifica perché sono andati persi i dati relativi alla sessione.\n\n<em>Poiché {{SITENAME}} ha dell'HTML grezzo attivato e c'è stata una perdita dei dati della sessione, l'anteprima è nascosta come precauzione contro gli attacchi JavaScript.</em>\n\n<strong>Se si tratta di un normale tentativo d'anteprima, riprova.</strong> \nSe il problema persiste, si può tentare di [[Special:UserLogout|scollegarsi]] ed effettuare un nuovo accesso, e controllare che il tuo browser accetti i cookie da questo sito.",
+       "session_fail_preview": "Spiacenti. Non è stato possibile elaborare la modifica perché sono andati persi i dati relativi alla sessione.\n\nPotresti essere stato disconnesso. <strong>Verifica di essere ancora collegato e riprova</strong>.\nSe il problema persiste, puoi provare a [[Special:UserLogout|scollegarti]] ed effettuare un nuovo l'accesso, controllando che il tuo browser accetti i cookie da questo sito.",
+       "session_fail_preview_html": "Spiacenti. Non è stato possibile elaborare la modifica perché sono andati persi i dati relativi alla sessione.\n\n<em>Siccome {{SITENAME}} ha dell'HTML grezzo attivato e c'è stata una perdita dei dati della sessione, l'anteprima è nascosta come precauzione contro gli attacchi JavaScript.</em>\n\n<strong>Se si tratta di un normale tentativo d'anteprima, riprova.</strong> \nSe il problema persiste, puoi provare a [[Special:UserLogout|scollegarti]] ed effettuare un nuovo l'accesso, controllando che il tuo browser accetti i cookie da questo sito.",
        "token_suffix_mismatch": "'''La modifica non è stata salvata perché il client ha mostrato di gestire in modo errato i caratteri di punteggiatura nel token associato alla stessa. Per evitare una possibile corruzione del testo della pagina, è stata rifiutata l'intera modifica. Questa situazione può verificarsi, talvolta, quando vengono usati alcuni servizi di proxy anonimi via web che presentano dei bug.'''",
        "edit_form_incomplete": "'''Alcune parti del modulo di modifica non hanno raggiunto il server; controllare che le modifiche siano intatte e riprovare.'''",
        "editing": "Modifica di $1",
        "content-model-css": "CSS",
        "content-json-empty-object": "Oggetto vuoto",
        "content-json-empty-array": "Array vuoto",
+       "deprecated-self-close-category": "Pagine che utilizzano tag HTML auto-chiusi non validi",
+       "deprecated-self-close-category-desc": "La pagina contiene tag HTML auto-chiusi non validi, come <code>&lt;b/></code> o <code>&lt;span/></code>. Il comportamento di questi presto cambierà per essere coerente con le specifiche HTML5, per questo il loro uso nel wikitesto è deprecato.",
        "duplicate-args-warning": "<strong>Avvertenza:</strong> [[:$1]] chiama [[:$2]] con più di un valore per il parametro \"$3\". Verrà utilizzato solo l'ultimo valore fornito.",
        "duplicate-args-category": "Pagine contenenti chiamate a template con parametri duplicati",
        "duplicate-args-category-desc": "La pagina contiene chiamate a template che utilizzano argomenti duplicati, come ad esempio <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> o <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "rightslogtext": "Di seguito sono elencate le modifiche ai diritti assegnati agli utenti.",
        "action-read": "leggere questa pagina",
        "action-edit": "modificare questa pagina",
-       "action-createpage": "creare pagine",
-       "action-createtalk": "creare pagine di discussione",
+       "action-createpage": "creare questa pagina",
+       "action-createtalk": "creare questa pagina di discussione",
        "action-createaccount": "effettuare questa registrazione",
        "action-autocreateaccount": "creare automaticamente questa utenza esterna",
        "action-history": "vedere la cronologia di questa pagina",
        "upload-http-error": "Si è verificato un errore HTTP: $1",
        "upload-copy-upload-invalid-domain": "Non è consentito il caricamento di copie da questo dominio.",
        "upload-foreign-cant-upload": "Questo wiki non è configurato per caricare i file nel repository di file esterno richiesto.",
+       "upload-dialog-disabled": "Il caricamento di file tramite questa finestra di dialogo è disabilitato in questo wiki.",
        "upload-dialog-title": "Carica file",
        "upload-dialog-button-cancel": "Annulla",
        "upload-dialog-button-done": "Fatto",
        "apisandbox": "Pagina di prova API",
        "apisandbox-jsonly": "È richiesto JavaScript per utilizzare la sandbox API.",
        "apisandbox-api-disabled": "Le funzionalità API sono disabilitate su questo sito.",
-       "apisandbox-intro": "Utilizza questa pagina per sperimentare con le <strong>API web service MediaWiki</strong>.\nPer ulteriori dettagli di utilizzo delle API, fai riferimento alla [[mw:API:Main page|documentazione API]]. Esempio: [//www.mediawiki.org/wiki/API#A_simple_example ottenere il contenuto della pagina principale]. Seleziona un'azione per vedere altri esempi.\n\nNota che, anche se questa è una pagina per le prove, le azioni che esegui qui potrebbero modificare il wiki.",
+       "apisandbox-intro": "Utilizza questa pagina per fare pratica con le <strong>API web service MediaWiki</strong>.\nPer ulteriori dettagli di utilizzo delle API, fai riferimento alla [[mw:API:Main page|documentazione API]]. Esempio: [https://www.mediawiki.org/wiki/API#A_simple_example ottenere il contenuto della pagina principale]. Seleziona un'azione per vedere altri esempi.\n\nNota che, anche se questa è una pagina per le prove, le azioni che esegui qui potrebbero modificare il wiki.",
        "apisandbox-fullscreen": "Espandi pannello",
        "apisandbox-fullscreen-tooltip": "Espandi il pannello sandbox per riempire la finestra del browser.",
        "apisandbox-unfullscreen": "Mostra la pagina",
        "trackingcategories-msg": "Categoria di monitoraggio",
        "trackingcategories-name": "Nome del messaggio",
        "trackingcategories-desc": "Criteri per l'inclusione nella categoria",
-       "restricted-displaytitle-ignored": "Pagine con titoli da visualizzare ignorati.",
+       "restricted-displaytitle-ignored": "Pagine con titoli da visualizzare ignorati",
        "restricted-displaytitle-ignored-desc": "La pagina ha un <code><nowiki>{{DISPLAYTITLE}}</nowiki></code> ignorato perché non è equivalente all'effettivo titolo della pagina.",
        "noindex-category-desc": "La pagina non è indicizzata dai robot perché contiene la parola magica <code><nowiki>__NOINDEX__</nowiki></code> e si trova in un namespace dove tale flag è consentito.",
        "index-category-desc": "La pagina contiene <code><nowiki>__INDEX__</nowiki></code> (e si trova in un namespace dove tale flag è consentito) e quindi è indicizzata dai robot, anche se normalmente non lo sarebbe.",
        "sp-contributions-username": "Indirizzo IP o nome utente:",
        "sp-contributions-toponly": "Mostra solo i contributi che sono le ultime versioni per la pagina",
        "sp-contributions-newonly": "Visualizza solo le modifiche che sono creazioni di pagina",
+       "sp-contributions-hideminor": "Nascondi le modifiche minori",
        "sp-contributions-submit": "Ricerca",
        "whatlinkshere": "Puntano qui",
        "whatlinkshere-title": "Pagine che puntano a \"$1\"",
        "allmessagesname": "Nome",
        "allmessagesdefault": "Testo predefinito",
        "allmessagescurrent": "Testo attuale",
-       "allmessagestext": "Questa è la lista di tutti i messaggi di sistema disponibili nel namespace MediaWiki.\nVisitare [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] e [//translatewiki.net translatewiki.net] se si desidera contribuire alla localizzazione generica di MediaWiki.",
+       "allmessagestext": "Questa è la lista di tutti i messaggi di sistema disponibili nel namespace MediaWiki.\nVisita [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] e [https://translatewiki.net translatewiki.net] se vuoi contribuire alla localizzazione generica di MediaWiki.",
        "allmessagesnotsupportedDB": "Non è possibile utilizzare questa pagina perché il flag '''$wgUseDatabaseMessages''' non è attivo.",
        "allmessages-filter-legend": "Filtro",
        "allmessages-filter": "Filtra per stato di modifica:",
        "import-nonewrevisions": "Nessuna versione importata (erano già tutte presenti, o saltate a causa di errori)",
        "xml-error-string": "$1 a riga $2, colonna $3 (byte $4): $5",
        "import-upload": "Carica dati XML",
-       "import-token-mismatch": "I dati relativi alla sessione sono andati persi. Riprovare.\n\nPotresti essere stato disconnesso. <strong>Verifica che sei ancora collegato e riprova</strong>.\nSe il problema persiste, si può tentare di [[Special:UserLogout|scollegarsi]] ed effettuare un nuovo accesso, e controllare che il tuo browser accetti i cookie da questo sito.",
+       "import-token-mismatch": "I dati relativi alla sessione sono andati persi. Riprovare.\n\nPotresti essere stato disconnesso. <strong>Verifica di essere ancora collegato e riprova</strong>.\nSe il problema persiste, puoi provare a [[Special:UserLogout|scollegarti]] ed effettuare un nuovo l'accesso, controllando che il tuo browser accetti i cookie da questo sito.",
        "import-invalid-interwiki": "Impossibile importare dal progetto wiki indicato.",
        "import-error-edit": "La pagina \"$1\" non è stata importata poiché non sei autorizzato a modificarla.",
        "import-error-create": "La pagina \"$1\" non è stata importata poiché non sei autorizzato a crearla.",
        "confirm-unwatch-button": "OK",
        "confirm-unwatch-top": "Elimina questa pagina dalla tua lista degli osservati speciali?",
        "confirm-rollback-button": "OK",
-       "confirm-rollback-top": "Ripristinare le modifiche a questa pagina?",
+       "confirm-rollback-top": "Ripristinare le modifiche di questa pagina?",
        "percent": "$1&#160;%",
        "quotation-marks": "«$1»",
        "imgmultipageprev": "← pagina precedente",
        "timezone-local": "Locale",
        "duplicate-defaultsort": "Attenzione: la chiave di ordinamento predefinita \"$2\" sostituisce la precedente \"$1\".",
        "duplicate-displaytitle": "<strong>Attenzione:</strong> il titolo visualizzato \"$2\" sostituisce il precedente titolo \"$1\".",
+       "restricted-displaytitle": "<strong>Attenzione:</strong> Il titolo visualizzato \"$1\" è stato ignorato poiché non equivalente al titolo attuale della pagina.",
        "invalid-indicator-name": "<strong>Errore:</strong> attributo <code>name</code> degli indicatori dello stato della pagina non può essere vuoto.",
        "version": "Versione",
        "version-extensions": "Estensioni installate",
        "htmlform-float-invalid": "Il valore specificato non è un numero.",
        "htmlform-int-toolow": "Il valore specificato è inferiore al minimo di $1",
        "htmlform-int-toohigh": "Il valore specificato è superiore al massimo di $1",
-       "htmlform-required": "Questo valore è obligatorio.",
+       "htmlform-required": "Questo valore è obbligatorio.",
        "htmlform-submit": "Invia",
        "htmlform-reset": "Annulla modifiche",
        "htmlform-selectorother-other": "Altro",
        "mw-widgets-dateinput-placeholder-month": "AAAA-MM",
        "mw-widgets-titleinput-description-new-page": "questa pagina non esiste ancora",
        "mw-widgets-titleinput-description-redirect": "reindirizzamento a $1",
-       "api-error-blacklisted": "Per favore scegli un titolo diverso e descrittivo.",
        "sessionmanager-tie": "Non è possibile combinare più tipi di richieste di autenticazione: $1.",
        "sessionprovider-generic": "sessioni $1",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "sessioni basate su cookie",
        "log-action-filter-newusers": "Tipo di creazione utenza:",
        "log-action-filter-patrol": "Tipo di verifica:",
        "log-action-filter-protect": "Tipo di protezione:",
-       "log-action-filter-rights": "Tipo di modifica diritti",
-       "log-action-filter-suppress": "Tipo di soppressione",
+       "log-action-filter-rights": "Tipo di modifica diritti:",
+       "log-action-filter-suppress": "Tipo di soppressione:",
        "log-action-filter-upload": "Tipo di caricamento:",
        "log-action-filter-all": "Tutto",
        "log-action-filter-block-block": "Blocco",
        "log-action-filter-upload-upload": "Nuovo caricamento",
        "log-action-filter-upload-overwrite": "Ricaricamento",
        "authmanager-authn-not-in-progress": "L'autenticazione non è in corso o i dati della sessione sono andati persi. Si prega di ricominciare dall'inizio.",
+       "authmanager-authn-no-primary": "Le credenziali fornite non possono essere autenticate.",
        "authmanager-authn-no-local-user": "Le credenziali fornite non sono associate a nessun utente di questo wiki.",
        "authmanager-authn-no-local-user-link": "Le credenziali fornite sono valide ma non sono associate a nessun utente di questa wiki. Accedi in un modo diverso o crea un nuovo utente, e avrai un'opzione per collegare le tue credenziali precedenti a quell'utenza.",
        "authmanager-authn-autocreate-failed": "Creazione automatica di un'utenza locale fallita: $1",
        "authmanager-create-no-primary": "Le credenziali fornite non possono essere utilizzate per la creazione dell'utenza.",
        "authmanager-link-no-primary": "Le credenziali fornite non possono essere utilizzate per il collegamento dell'utenza.",
        "authmanager-link-not-in-progress": "Il collegamento dell'utenza non è in corso o i dati della sessione sono andati persi. Si prega di ricominciare dall'inizio.",
+       "authmanager-authplugin-setpass-failed-title": "Modifica della password fallita",
        "authmanager-authplugin-setpass-failed-message": "Il plugin di autenticazione ha impedito la modifica della password.",
        "authmanager-authplugin-create-fail": "Il plugin di autenticazione ha impedito la creazione dell'utenza.",
        "authmanager-authplugin-setpass-denied": "Il plugin di autenticazione non consente di cambiare le password.",
        "authmanager-autocreate-exception": "La creazione automatica di utenze è temporaneamente disabilitata a causa di errori precedenti.",
        "authmanager-userdoesnotexist": "L'utenza \"$1\" non è registrata.",
        "authmanager-userlogin-remembermypassword-help": "Se la password deve essere ricordata più a lungo rispetto alla durata della sessione.",
+       "authmanager-username-help": "Nome utente per l'autenticazione.",
        "authmanager-password-help": "Password per l'autenticazione.",
+       "authmanager-domain-help": "Dominio per l'autenticazione esterna.",
        "authmanager-retype-help": "Conferma nuovamente la password.",
+       "authmanager-email-label": "Email",
        "authmanager-email-help": "Indirizzo email",
+       "authmanager-realname-label": "Nome reale",
        "authmanager-realname-help": "Nome reale dell'utente",
        "authmanager-provider-password": "Autenticazione basata su password",
        "authmanager-provider-password-domain": "Autenticazione con password o basata su dominio",
-       "authprovider-confirmlink-message": "Basandosi sui recenti tentativi di accesso, le seguenti utenze possono essere collegate al tuo account wiki. Collegarli ti consente di effettuare l'accesso tramite di esse. Si prega di selezionare quelli che devono essere collegate.",
+       "authmanager-provider-temporarypassword": "Password temporanea",
+       "authprovider-confirmlink-message": "Basandosi sui recenti tentativi di accesso, le seguenti utenze possono essere collegate al tuo account wiki. Collegarle ti consente di effettuare l'accesso tramite di esse. Si prega di selezionare quelle che devono essere collegate.",
+       "authprovider-confirmlink-request-label": "Utenze che dovrebbero essere collegate",
        "authprovider-confirmlink-success-line": "$1: collegato correttamente.",
        "authprovider-confirmlink-failed": "Il collegamento dell'utenza non è pienamente riuscito: $1",
+       "authprovider-confirmlink-ok-help": "Continua dopo la visualizzazione di messaggi di errore di collegamento.",
+       "authprovider-resetpass-skip-label": "Salta",
+       "authprovider-resetpass-skip-help": "Salta reimpostazione della password.",
        "authform-nosession-login": "L'autenticazione ha avuto successo, ma il tuo browser non è in grado di \"ricordare\" che ti sei collegato.\n\n$1",
+       "authform-nosession-signup": "L'utenza è stata creata, ma il tuo browser non è in grado di \"ricordare\" che ti sei collegato.\n\n$1",
        "authform-newtoken": "Token mancante. $1",
        "authform-notoken": "Token mancante",
        "authform-wrongtoken": "Token errato",
        "specialpage-securitylevel-not-allowed-title": "Non consentito",
        "specialpage-securitylevel-not-allowed": "Siamo spiacenti, non sei autorizzato ad utilizzare questa pagina perché la tua identità non può essere verificata.",
+       "authpage-cannot-login": "Impossibile avviare l'accesso.",
        "authpage-cannot-login-continue": "Impossibile continuare l'accesso. La tua sessione è probabilmente scaduta.",
+       "authpage-cannot-create": "Impossibile iniziare la creazione dell'utenza.",
        "authpage-cannot-create-continue": "Impossibile continuare la creazione dell'utenza. La tua sessione è probabilmente scaduta.",
        "authpage-cannot-link": "Impossibile avviare il collegamento dell'utenza.",
        "authpage-cannot-link-continue": "Impossibile continuare il collegamento dell'utenza. La tua sessione è probabilmente scaduta.",
        "cannotauth-not-allowed-title": "Permesso negato",
-       "changecredentials": "Modifica delle credenziali",
-       "changecredentials-submit": "Modifica",
-       "changecredentials-submit-cancel": "Annulla",
+       "cannotauth-not-allowed": "Non sei autorizzato a utilizzare questa pagina",
+       "changecredentials": "Modifica credenziali",
+       "changecredentials-submit": "Modifica credenziali",
        "changecredentials-invalidsubpage": "$1 non è una tipologia di credenziale valida.",
        "changecredentials-success": "Le tue credenziali sono state modificate.",
        "removecredentials": "Rimuovi credenziali",
-       "removecredentials-submit": "Rimuovi",
-       "removecredentials-submit-cancel": "Annulla",
+       "removecredentials-submit": "Rimuovi credenziali",
        "removecredentials-invalidsubpage": "$1 non è una tipologia di credenziale valida.",
        "removecredentials-success": "Le tue credenziali sono state eliminate.",
+       "credentialsform-provider": "Tipo di credenziali:",
+       "credentialsform-account": "Nome utenza:",
        "cannotlink-no-provider-title": "Non ci sono utenze collegabili",
        "cannotlink-no-provider": "Non ci sono utenze collegabili.",
        "linkaccounts": "Collega utenze",
        "linkaccounts-success-text": "L'utenza è stata collegata.",
+       "linkaccounts-submit": "Collega utenze",
        "unlinkaccounts": "Scollega utenze",
        "unlinkaccounts-success": "L'utenza è stata scollegata."
 }
index a240fd2..2264e1d 100644 (file)
@@ -77,9 +77,9 @@
        "tog-underline": "リンクの下線:",
        "tog-hideminor": "最近の更新に細部の編集を表示しない",
        "tog-hidepatrolled": "最近の更新に巡回済みの編集を表示しない",
-       "tog-newpageshidepatrolled": "新しいページの一覧に巡回済みのページを表示しない",
+       "tog-newpageshidepatrolled": "新しいページの一覧に巡回済みのページを表示しない",
        "tog-hidecategorization": "ページのカテゴリ追加・除去を表示しない",
-       "tog-extendwatchlist": "ã\82¦ã\82©ã\83\83ã\83\81ã\83ªã\82¹ã\83\88ã\82\92æ\8b¡å¼µã\81\97ã\80\81æ\9c\80æ\96°ã\81®ã\82\82ã\81®ã\81 ã\81\91ã\81§ã\81¯ã\81ªã\81\8fã\81\99ã\81¹ã\81¦ã\81®å¤\89æ\9b´ã\82\92表示",
+       "tog-extendwatchlist": "ã\82¦ã\82©ã\83\83ã\83\81ã\83ªã\82¹ã\83\88ã\82\92æ\8b¡å¼µã\81\97ã\81¦æ\9c\80æ\96°ã\81®å¤\89æ\9b´ä»¥å¤\96ã\82\82ã\81\99ã\81¹ã\81¦表示",
        "tog-usenewrc": "最近の更新とウォッチリストで、複数の変更をページごとにまとめる",
        "tog-numberheadings": "見出しに番号を自動的に振る",
        "tog-showtoolbar": "編集用のツールバーを表示",
        "tog-ccmeonemails": "他の利用者に送信したメールの控えを自分にも送信",
        "tog-diffonly": "差分の下にページ内容を表示しない",
        "tog-showhiddencats": "隠しカテゴリを表示",
-       "tog-norollbackdiff": "ロールバック後の差分を表示しない",
+       "tog-norollbackdiff": "巻き戻し後の差分を表示しない",
        "tog-useeditwarning": "変更を保存せずに編集画面から離れようとしたら警告",
        "tog-prefershttps": "ログインする際、常に安全な接続を使用する",
        "underline-always": "常に付ける",
        "category_header": "カテゴリ「$1」にあるページ",
        "subcategories": "下位カテゴリ",
        "category-media-header": "カテゴリ「$1」にあるメディア",
-       "category-empty": "<em>このカテゴリには現在、ページやメディアが何もありません。</em>",
+       "category-empty": "<em>現在このカテゴリには、ページまたはメディアがありません。</em>",
        "hidden-categories": "{{PLURAL:$1|隠しカテゴリ}}",
        "hidden-category-category": "隠しカテゴリ",
        "category-subcat-count": "{{PLURAL:$2|このカテゴリには以下の下位カテゴリのみが含まれています。|このカテゴリには下位カテゴリ $2 件が含まれており、そのうち以下の{{PLURAL:$1| $1 件}}を表示しています。}}",
        "protectedpagetext": "このページは編集や他の操作ができないように保護されています。",
        "viewsourcetext": "このページのソースの閲覧やコピーができます。",
        "viewyourtext": "このページへの<strong>あなたの編集</strong>のソースの閲覧やコピーができます。",
-       "protectedinterface": "このページにはこのウィキのソフトウェアのインターフェイスに使用されるテキストが保存されており、いたずらなどの防止のために保護されています。\nすべてのウィキに対して翻訳を追加/変更する場合は、MediaWiki の地域化プロジェクト [//translatewiki.net/wiki/Main_Page?setlang=ja translatewiki.net] を使用してください。",
+       "protectedinterface": "このページにはこのウィキのソフトウェアのインターフェイスに使用されるテキストが保存されており、いたずらなどの防止のために保護されています。\nすべてのウィキに対して翻訳を追加/変更する場合は、MediaWiki の地域化プロジェクト [https://translatewiki.net/wiki/Main_Page?setlang=ja translatewiki.net] を使用してください。",
        "editinginterface": "<strong>警告:</strong> ソフトウェアのインターフェイスに使用されるテキストのページを編集しています。\nこのページを変更すると、このウィキの他の利用者のユーザーインターフェイスの外観に影響します。",
-       "translateinterface": "すべてのウィキに対して翻訳を追加/変更する場合は、MediaWiki の地域化プロジェクト [//translatewiki.net/wiki/Main_Page?setlang=ja translatewiki.net] を使用してください。",
+       "translateinterface": "すべてのウィキに対して翻訳を追加/変更する場合は、MediaWiki の地域化プロジェクト [https://translatewiki.net/wiki/Main_Page?setlang=ja translatewiki.net] を使用してください。",
        "cascadeprotected": "このページは、「カスケード保護」が指定された状態で保護されている以下の{{PLURAL:$1|ページ|ページ群}}でトランスクルードのため読み込まれているので、編集できないように保護されています:\n$2",
        "namespaceprotected": "<strong>$1</strong>名前空間にあるページを編集する権限がありません。",
        "customcssprotected": "この CSS ページは他の利用者の個人設定を含んでいるため、あなたには編集する権限がありません。",
        "password-change-forbidden": "このウィキではパスワードを変更できません。",
        "externaldberror": "認証データベースでエラーが発生したか、または外部アカウントの更新が許可されていません。",
        "login": "ログイン",
+       "login-security": "あなたが同一人であることを確認します",
        "nav-login-createaccount": "ログインまたはアカウント作成",
        "userlogin": "ログインまたはアカウント作成",
        "userloginnocreate": "ログイン",
        "userlogin-resetpassword-link": "パスワードをお忘れですか?",
        "userlogin-helplink2": "ログインについてのヘルプ",
        "userlogin-loggedin": "{{GENDER:$1|$1}} として既にログインしています。\n別の利用者としてログインするには下のフォームを使用してください。",
+       "userlogin-reauth": "あなたが {{GENDER:$1|$1}} であることを確認するために、再度ログインする必要があります。",
        "userlogin-createanother": "別アカウントを作成",
        "createacct-emailrequired": "メールアドレス",
        "createacct-emailoptional": "メールアドレス (省略可能)",
        "createaccountreason": "理由:",
        "createacct-reason": "理由",
        "createacct-reason-ph": "アカウントを作成する理由",
+       "createacct-reason-help": "アカウント作成記録に表示されるメッセージ",
        "createacct-submit": "アカウントを作成",
        "createacct-another-submit": "アカウントを作成",
+       "createacct-continue-submit": "アカウント作成を続行",
+       "createacct-another-continue-submit": "アカウント作成を続行",
        "createacct-benefit-heading": "{{SITENAME}}は、あなたのような人々が創っています。",
        "createacct-benefit-body1": "{{PLURAL:$1|編集}}",
        "createacct-benefit-body2": "{{PLURAL:$1|ページ}}",
        "nocookieslogin": "{{SITENAME}}ではログインに Cookie を使用します。\nCookie を無効にしているようです。\nCookie を有効にしてから、もう一度試してください。",
        "nocookiesfornew": "発信元を確認できなかったため、アカウントは作成されませんでした。\nCookieを有効にしていることを確認して、このページを再読込してもう一度試してください。",
        "nocookiesforlogin": "{{int:nocookieslogin}}",
+       "createacct-loginerror": "アカウントは正常に作成されましたが、自動的にログインすることができませんでした。[[Special:UserLogin|手動でログイン]]をしてください。",
        "noname": "有効な利用者名が指定されていません。",
        "loginsuccesstitle": "ログイン済み",
        "loginsuccess": "<strong>{{SITENAME}}に「$1」としてログインしました。</strong>",
        "botpasswords-invalid-name": "指定された利用者名には、ボット用パスワードの区切りである「$1」 が含まれていません。",
        "botpasswords-not-exist": "利用者「$1」はボット「$2」のパスワードを所持していません。",
        "resetpass_forbidden": "パスワードは変更できません",
+       "resetpass_forbidden-reason": "パスワードは変更できません: $1",
        "resetpass-no-info": "このページに直接アクセスするためにはログインしている必要があります。",
        "resetpass-submit-loggedin": "パスワードを変更",
        "resetpass-submit-cancel": "中止",
        "resetpass-temp-password": "仮パスワード:",
        "resetpass-abort-generic": "拡張機能により、パスワードの変更は取り消されました。",
        "resetpass-expired": "パスワードの有効期限が切れました。ログインするには新しいパスワードを設定してください。",
-       "resetpass-expired-soft": "パスワードの有効期限が切れたため、再設定する必要があります。新しいパスワードを今すぐ設定するか、または「{{int:resetpass-submit-cancel}}」をクリックしてあとで再設定してください。",
-       "resetpass-validity-soft": "あなたのパスワードは無効です: $1\n\n今すぐ新しいパスワードに変更するか、「{{int:resetpass-submit-cancel}}」をクリックして後で再設定してください。",
+       "resetpass-expired-soft": "パスワードの有効期限が切れたため、再設定する必要があります。新しいパスワードを今すぐ設定するか、または「{{int:authprovider-resetpass-skip-label}}」をクリックしてあとで再設定してください。",
+       "resetpass-validity-soft": "あなたのパスワードは無効です: $1\n\n今すぐ新しいパスワードに変更するか、「{{int:authprovider-resetpass-skip-label}}」をクリックして後で再設定してください。",
        "passwordreset": "パスワードの再設定",
        "passwordreset-text-one": "仮パスワードをメールで受け取るにはこのフォームに記入してください。",
        "passwordreset-text-many": "{{PLURAL:$1|仮パスワードをメールで受け取るにはいずれかの欄に記入してください。}}",
        "passwordreset-emailsentusername": "この利用者名に関連付けられたメールアドレスがある場合は、パスワードリセットのメールが送信されます。",
        "passwordreset-emailsent-capture": "下記の内容の、パスワード再設定メールをお送りしました。",
        "passwordreset-emailerror-capture": "以下の内容のパスワード再設定メールを生成しましたが、{{GENDER:$2|利用者}}への送信に失敗しました: $1",
-       "changeemail": "メールアドレスを変更または除去",
+       "passwordreset-emailsent-capture2": "パスワードリセットの{{PLURAL:$1|メール}}が送信されました。{{PLURAL:$1|利用者名とパスワード|利用者名とパスワードの一覧}}は以下のとおりです。",
+       "passwordreset-emailerror-capture2": "{{GENDER:$2|利用者}}へのメール送信に失敗しました: $1{{PLURAL:$3|利用者名とパスワード|利用者名とパスワードの一覧}}は以下のとおりです。",
+       "passwordreset-ignored": "パスワードのリセットが処理されませんでした。プロバイダーが設定されていない可能性があります。",
+       "passwordreset-invalideamil": "無効なメールアドレスです",
+       "changeemail": "メールアドレスの変更または除去",
        "changeemail-header": "あなたのメールアドレスを変更するには、このフォームを完成させます。もし、あなたのアカウントから任意のメールアドレスの関連付けを削除したい場合は、フォームの送信時に、新しいメールアドレスを空白のままにします。",
        "changeemail-passwordrequired": "この変更を確認するためにパスワードを入力する必要があります。",
        "changeemail-no-info": "このページに直接アクセスするためにはログインしている必要があります。",
        "minoredit": "細部の編集",
        "watchthis": "このページをウォッチ",
        "savearticle": "ページを保存",
+       "savechanges": "変更を保存",
        "publishpage": "ページを公開",
        "preview": "プレビュー",
        "showpreview": "プレビューを表示",
        "userpage-userdoesnotexist": "「$1」という利用者アカウントは登録されていません。\nこのページの作成/編集が適切かご確認ください。",
        "userpage-userdoesnotexist-view": "利用者アカウント「$1」は登録されていません。",
        "blocked-notice-logextract": "この利用者は現在ブロックされています。\n参考のために最新のブロック記録項目を以下に表示します:",
-       "clearyourcache": "<strong>注æ\84\8f:</strong> ä¿\9då­\98å¾\8cã\80\81å¤\89æ\9b´ã\82\92確èª\8dã\81\99ã\82\8bã\81«ã\81¯ã\83\96ã\83©ã\82¦ã\82¶ã\83¼ã\81®ã\82­ã\83£ã\83\83ã\82·ã\83¥ã\82\92æ¶\88å\8e»ã\81\99ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8bå ´å\90\88ã\81\8cã\81\82ã\82\8aã\81¾ã\81\99ã\80\82\n* <strong>Firefox / Safari:</strong> <em>Shift</em> ã\82\92æ\8a¼ã\81\97ã\81ªã\81\8cã\82\89 <em>å\86\8d読ã\81¿è¾¼ã\81¿</em> ã\82\92ã\82¯ã\83ªã\83\83ã\82¯ã\81\99ã\82\8bã\81\8bã\80\81<em>Ctrl-F5</em> ã\81¾ã\81\9fã\81¯ <em>Ctrl-R</em> ã\82\92æ\8a¼ã\81\97ã\81¦ã\81\8fã\81 ã\81\95ã\81\84 (Mac ã\81§ã\81¯ <em>&#x2318;-R</em>)\n* <strong>Google Chrome:</strong> <em>Ctrl-Shift-R</em> ã\82\92æ\8a¼ã\81\97ã\81¦ã\81\8fã\81 ã\81\95ã\81\84 (Mac ã\81§ã\81¯ <em>&#x2318;-Shift-R</em>)\n* <strong>Internet Explorer:</strong> <em>Ctrl</em> ã\82\92æ\8a¼ã\81\97ã\81ªã\81\8cã\82\89 <em>æ\9c\80æ\96°ã\81®æ\83\85å ±ã\81«æ\9b´æ\96°</em> ã\82\92ã\82¯ã\83ªã\83\83ã\82¯ã\81\99ã\82\8bã\81\8bã\80\81<em>Ctrl-F5</em> ã\82\92æ\8a¼ã\81\97ã\81¦ã\81\8fã\81 ã\81\95ã\81\84\n* <strong>Opera:</strong> <em>ã\83\84ã\83¼ã\83« â\86\92 è¨­å®\9a</em> からキャッシュをクリアしてください。",
+       "clearyourcache": "<strong>注æ\84\8f:</strong> ä¿\9då­\98å¾\8cã\80\81å¤\89æ\9b´ã\82\92確èª\8dã\81\99ã\82\8bã\81«ã\81¯ã\83\96ã\83©ã\82¦ã\82¶ã\83¼ã\81®ã\82­ã\83£ã\83\83ã\82·ã\83¥ã\82\92æ¶\88å\8e»ã\81\99ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8bå ´å\90\88ã\81\8cã\81\82ã\82\8aã\81¾ã\81\99ã\80\82\n* <strong>Firefox / Safari:</strong> <em>Shift</em> ã\82\92æ\8a¼ã\81\97ã\81ªã\81\8cã\82\89 <em>å\86\8d読ã\81¿è¾¼ã\81¿</em> ã\82\92ã\82¯ã\83ªã\83\83ã\82¯ã\81\99ã\82\8bã\81\8bã\80\81<em>Ctrl-F5</em> ã\81¾ã\81\9fã\81¯ <em>Ctrl-R</em> ã\82\92æ\8a¼ã\81\97ã\81¦ã\81\8fã\81 ã\81\95ã\81\84 (Mac ã\81§ã\81¯ <em>&#x2318;-R</em>)\n* <strong>Google Chrome:</strong> <em>Ctrl-Shift-R</em> ã\82\92æ\8a¼ã\81\97ã\81¦ã\81\8fã\81 ã\81\95ã\81\84 (Mac ã\81§ã\81¯ <em>&#x2318;-Shift-R</em>)\n* <strong>Internet Explorer:</strong> <em>Ctrl</em> ã\82\92æ\8a¼ã\81\97ã\81ªã\81\8cã\82\89 <em>æ\9c\80æ\96°ã\81®æ\83\85å ±ã\81«æ\9b´æ\96°</em> ã\82\92ã\82¯ã\83ªã\83\83ã\82¯ã\81\99ã\82\8bã\81\8bã\80\81<em>Ctrl-F5</em> ã\82\92æ\8a¼ã\81\97ã\81¦ã\81\8fã\81 ã\81\95ã\81\84\n* <strong>Opera:</strong> <em>ã\83¡ã\83\8bã\83¥ã\83¼ â\86\92 è¨­å®\9a</em> (Mac ã\81§ã\81¯ <em>Opera â\86\92 ç\92°å¢\83設å®\9a</em>) ã\81«ç§»å\8b\95ã\81\97ã\80\81<em>ã\83\97ã\83©ã\82¤ã\83\90ã\82·ã\83¼ã\81¨ã\82»ã\82­ã\83¥ã\83ªã\83\86ã\82£ â\86\92 é\96²è¦§ã\83\87ã\83¼ã\82¿ã\82\92æ¶\88å\8e» â\86\92 ã\82­ã\83£ã\83\83ã\82·ã\83¥ã\81\95ã\82\8cã\81\9fç\94»å\83\8fã\81\8aã\82\88ã\81³ã\83\95ã\82¡ã\82¤ã\83«</em> からキャッシュをクリアしてください。",
        "usercssyoucanpreview": "<strong>ヒント:</strong>「{{int:showpreview}}」ボタンを使うと、保存前に新しいCSSを試験できます。",
        "userjsyoucanpreview": "<strong>ヒント:</strong>「{{int:showpreview}}」ボタンを使うと、保存前に新しいJavaScriptを試験できます。",
        "usercsspreview": "<strong>利用者CSSをプレビューしているだけに過ぎません。</strong>\n<strong>まだ保存されていません!</strong>",
        "right-managechangetags": "[[Special:Tags|タグ]]の作成、有効化および無効化",
        "right-applychangetags": "自分の編集に[[Special:Tags|タグ]]を適用する",
        "right-changetags": "個々の版と記録項目の任意の[[Special:Tags|タグ]]の追加と削除",
+       "right-deletechangetags": "データベースから[[Special:Tags|タグ]]を削除します",
        "grant-group-email": "メールの送信",
        "grant-group-customization": "カスタマイズと個人設定",
        "grant-group-other": "その他の活動",
        "rightslogtext": "以下は利用者権限の変更記録です。",
        "action-read": "このページの閲覧",
        "action-edit": "このページの編集",
-       "action-createpage": "ページの作成",
-       "action-createtalk": "議論ページの作成",
+       "action-createpage": "ã\81\93ã\81®ã\83\9aã\83¼ã\82¸ã\81®ä½\9cæ\88\90",
+       "action-createtalk": "この議論ページの作成",
        "action-createaccount": "この利用者アカウントの作成",
        "action-autocreateaccount": "この外部利用者アカウントを自動的に作成",
        "action-history": "このページの履歴の閲覧",
        "action-managechangetags": "タグの作成、有効化および無効化",
        "action-applychangetags": "自分の編集にタグを適用する",
        "action-changetags": "個々の版および記録項目への任意のタグの追加と除去",
+       "action-deletechangetags": "データベースからタグの削除",
        "nchanges": "$1 {{PLURAL:$1|回の変更}}",
        "enhancedrc-since-last-visit": "最終閲覧以降 $1 {{PLURAL:$1|件}}",
        "enhancedrc-history": "履歴",
        "upload-too-many-redirects": "そのURLに含まれるリダイレクトが多すぎます",
        "upload-http-error": "HTTP エラー発生: $1",
        "upload-copy-upload-invalid-domain": "このドメインからのアップロードは許可されていません。",
+       "upload-foreign-cant-upload": "このウィキでは、要求された外部ファイルリポジトリにファイルをアップロードできるように設定されていません。",
+       "upload-foreign-cant-load-config": "外部ファイルリポジトリへのファイルアップロードに使用される設定の読み込みに失敗しました。",
+       "upload-dialog-disabled": "このウィキでは、このダイアログを使用するファイルのアップロードが無効にされています。",
        "upload-dialog-title": "ファイルをアップロード",
        "upload-dialog-button-cancel": "中止",
        "upload-dialog-button-done": "完了",
        "uploadstash-badtoken": "操作を実行できませんでした。編集するための認証の期限切れが原因である可能性があります。再度試してください。",
        "uploadstash-errclear": "ファイルの消去に失敗しました。",
        "uploadstash-refresh": "ファイルの一覧を更新",
+       "uploadstash-thumbnail": "サムネイルを表示",
        "invalid-chunk-offset": "無効なチャンクオフセット",
        "img-auth-accessdenied": "アクセスが拒否されました",
        "img-auth-nopathinfo": "PATH_INFO が見つかりません。\nサーバーが、この情報を渡すように構成されていません。\nCGI ベースであるため、img_auth に対応できない可能性もあります。\nhttps://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization をご覧ください。",
        "apisandbox": "APIサンドボックス",
        "apisandbox-jsonly": "API サンドボックスを利用するには JavaScript が必要です。",
        "apisandbox-api-disabled": "このウェブサイトでは、API は無効になっています。",
-       "apisandbox-intro": "このページでは、<strong>MediaWiki ウェブサービス API</strong> を試用できます。\nAPI の使用方法の詳細は[[mw:API:Main page|API のドキュメント]]をご覧ください。例: [//www.mediawiki.org/wiki/API#A_simple_example Main Pageの内容を取得]。操作を選択すると他の例を閲覧できます。\n\nこれはサンドボックスですが、このページで実行した操作によってウィキが変更される場合があることにご注意ください。",
+       "apisandbox-intro": "このページでは、<strong>MediaWiki ウェブサービス API</strong> を試用できます。\nAPI の使用方法の詳細は[[mw:API:Main page|API のドキュメント]]をご覧ください。例: [https://www.mediawiki.org/wiki/API#A_simple_example Main Pageの内容を取得]。操作を選択すると他の例を閲覧できます。\n\nこれはサンドボックスですが、このページで実行した操作によってウィキが変更される場合があることにご注意ください。",
        "apisandbox-fullscreen": "パネルを展開",
        "apisandbox-fullscreen-tooltip": "ブラウザーウィンドウ内で最大限サンドボックスパネルを展開",
        "apisandbox-unfullscreen": "ページを表示",
        "apisandbox-dynamic-parameters-add-placeholder": "引数名",
        "apisandbox-dynamic-error-exists": "引数名 \"$1\" は既に存在しています。",
        "apisandbox-deprecated-parameters": "廃止予定の引数",
+       "apisandbox-fetch-token": "トークンを自動入力します",
        "apisandbox-submit-invalid-fields-title": "いくつかの欄が不正です。",
        "apisandbox-submit-invalid-fields-message": "印が付いている欄を訂正し、再試行してください。",
        "apisandbox-results": "結果",
        "trackingcategories-msg": "追跡用カテゴリ",
        "trackingcategories-name": "メッセージ名",
        "trackingcategories-desc": "カテゴリに入る基準",
+       "restricted-displaytitle-ignored": "ページ名の表示が無視されているページ",
+       "restricted-displaytitle-ignored-desc": "実際のページ名と等価でないために <code><nowiki>{{DISPLAYTITLE}}</nowiki></code> が無視されているページ。",
        "noindex-category-desc": "このページは <code><nowiki>__NOINDEX__</nowiki></code> というマジックワードを含んでおり、その印が有効になっている名前空間にあるため、ロボットによる収集の対象になりません。",
        "index-category-desc": "このページは <code><nowiki>__INDEX__</nowiki></code> というマジックワードを含んでおり、その印が有効になっている名前空間にあるため、通常と異なり、ロボットによる収集の対象になります。",
        "post-expand-template-inclusion-category-desc": "テンプレートを展開したあとのページ サイズが <code>$wgMaxArticleSize</code> よりも大きいため、一部のテンプレートが展開されなかった",
        "changecontentmodel-submit": "変更",
        "changecontentmodel-success-title": "コンテンツ・モデルは変更されました",
        "changecontentmodel-success-text": "[[:$1]]のコンテンツ・タイプは変更されました。",
-       "changecontentmodel-cannot-convert": "[[:$1]]上のコンテントは$2の型には変換できません。",
+       "changecontentmodel-cannot-convert": "[[:$1]]のコンテンツは$2の型には変換できません。",
        "changecontentmodel-nodirectediting": "$1 コンテンツ・モデルは、ダイレクト編集をサポートしていません。",
+       "changecontentmodel-emptymodels-text": "[[:$1]]のコンテンツはどの型にも変換できません。",
        "log-name-contentmodel": "コンテンツ・モデル変更記録",
        "log-description-contentmodel": "ページのコンテンツ・モデルに関連する出来事",
+       "logentry-contentmodel-new": "$1 が ページ $3 を既定でないコンテンツ・モデル「$5」で{{GENDER:$2|作成しました}}。",
        "logentry-contentmodel-change": "$1 がページ $3 のコンテンツ・モデルを \"$4\" から \"$5\" に{{GENDER:$2|変更しました}}",
        "logentry-contentmodel-change-revertlink": "差し戻し",
        "logentry-contentmodel-change-revert": "差し戻し",
        "sp-contributions-username": "IPアドレスまたは利用者名:",
        "sp-contributions-toponly": "最新版の編集のみを表示",
        "sp-contributions-newonly": "ページ作成を伴う編集のみを表示",
+       "sp-contributions-hideminor": "細部の編集を表示しない",
        "sp-contributions-submit": "検索",
        "whatlinkshere": "リンク元",
        "whatlinkshere-title": "「$1」へリンクしているページ",
        "allmessagesname": "名前",
        "allmessagesdefault": "既定のメッセージ文",
        "allmessagescurrent": "現在のメッセージ文",
-       "allmessagestext": "これは MediaWiki 名前空間で利用できるシステム メッセージの一覧です。\nMediaWiki 全般のローカライズ (地域化) に貢献したい場合は、[https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki のローカライズ]や [//translatewiki.net?setlang=ja translatewiki.net] をご覧ください。",
+       "allmessagestext": "これは MediaWiki 名前空間で利用できるシステム メッセージの一覧です。\nMediaWiki 全般のローカライズ (地域化) に貢献したい場合は、[https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki のローカライズ]や [https://translatewiki.net?setlang=ja translatewiki.net] をご覧ください。",
        "allmessagesnotsupportedDB": "<strong>$wgUseDatabaseMessages</strong>が無効のため、このページを使用できません。",
        "allmessages-filter-legend": "絞り込み",
        "allmessages-filter": "変更状態により絞り込む:",
        "exif-compression-6": "JPEG (旧式)",
        "exif-copyrighted-true": "著作権あり",
        "exif-copyrighted-false": "著作権情報未設定",
+       "exif-photometricinterpretation-0": "黒と白 (白が0)",
        "exif-photometricinterpretation-1": "黒と白(黒が0)",
+       "exif-photometricinterpretation-9": "CIE L*a*b* (ICC エンコード)",
+       "exif-photometricinterpretation-10": "CIE L*a*b* (ITU エンコード)",
+       "exif-photometricinterpretation-32803": "カラーフィルター配列",
+       "exif-photometricinterpretation-34892": "リニア RAW",
        "exif-unknowndate": "不明な日付",
        "exif-orientation-1": "通常",
        "exif-orientation-2": "左右反転",
        "exif-orientation-8": "時計回りに90°回転",
        "exif-planarconfiguration-1": "点順次フォーマット",
        "exif-planarconfiguration-2": "面順次フォーマット",
+       "exif-xyresolution-i": "$1dpi",
+       "exif-xyresolution-c": "$1dpc",
        "exif-colorspace-65535": "その他",
        "exif-componentsconfiguration-0": "存在しない",
        "exif-exposureprogram-0": "未定義",
        "confirmemail_body_set": "誰か (おそらくあなた) が IP アドレス $1 から\n{{SITENAME}} のアカウント「$2」のメールアドレスをこのアドレスに設定しました。\n\nこのアカウントが本当にあなたのものであれば、以下のリンクをブラウザーで開いて、\n{{SITENAME}} のメール機能を有効にしてください。\n\n$3\n\nあなたのアカウントではない場合は、\n以下のリンクをブラウザーで開いて、メールアドレスの確認をキャンセルしてください:\n\n$5\n\nこの確認コードは $4 に期限切れになります。",
        "confirmemail_invalidated": "メールアドレスの確認が中止されました",
        "invalidateemail": "メールアドレスの確認中止",
+       "notificationemail_subject_changed": "{{SITENAME}} に登録されたメールアドレスが変更されました",
+       "notificationemail_subject_removed": "{{SITENAME}} に登録されたメールアドレスが除去されました",
        "notificationemail_body_changed": "誰か (おそらくあなた) が、IP アドレス $1 から、\n{{SITENAME}} のアカウント「$2」のメールアドレスを \"$3\" に変更しました。\n\n変更した覚えがない場合、サイトの管理者に直ちに連絡してください。",
+       "notificationemail_body_removed": "誰か (おそらくあなた) が、IP アドレス $1 から、\n{{SITENAME}} のアカウント「$2」のメールアドレスを除去しました。\n\n変更した覚えがない場合、サイトの管理者に直ちに連絡してください。",
        "scarytranscludedisabled": "[ウィキ間の参照読み込みは無効になっています]",
        "scarytranscludefailed": "[$1に対してテンプレートの取得に失敗しました]",
        "scarytranscludefailed-httpstatus": "[$1に対してテンプレートの取得に失敗しました: HTTP $2]",
        "confirmrecreate": "あなたが編集を開始した後、[[User:$1|$1]] ([[User talk:$1|トーク]]) がこのページを以下の理由で{{GENDER:$1|削除しました}}:\n: <em>$2</em>\nこのままこのページを本当に再作成していいか確認してください。",
        "confirmrecreate-noreason": "あなたが編集を開始した後、[[User:$1|$1]] ([[User talk:$1|トーク]]) がこのページを{{GENDER:$1|削除しました}}。このページを本当に再作成していいかご確認ください。",
        "recreate": "再作成する",
+       "unit-pixel": "ピクセル",
        "confirm_purge_button": "OK",
        "confirm-purge-top": "このページのキャッシュを破棄しますか?",
        "confirm-purge-bottom": "ページをパージすると、キャッシュが破棄され、強制的に最新版が表示されます。",
        "confirm-watch-top": "このページをウォッチリストに追加しますか?",
        "confirm-unwatch-button": "OK",
        "confirm-unwatch-top": "このページをウォッチリストから除去しますか?",
+       "confirm-rollback-button": "OK",
+       "confirm-rollback-top": "このページの編集を差し戻しますか?",
        "semicolon-separator": ";&#32;",
        "comma-separator": "、",
        "colon-separator": ":&#32;",
        "autoredircomment": "[[$1]]への転送ページ",
        "autosumm-new": "ページの作成:「$1」",
        "autosumm-newblank": "空白のページを作成しました",
-       "size-bytes": "$1バイト",
+       "size-bytes": "$1{{PLURAL:$1|バイト}}",
        "size-kilobytes": "$1キロバイト",
        "size-megabytes": "$1メガバイト",
        "size-gigabytes": "$1ギガバイト",
        "size-exabytes": "$1 EB",
        "size-zetabytes": "$1 ZB",
        "size-yottabytes": "$1 YB",
+       "size-pixel": "$1{{PLURAL:$1|ピクセル}}",
+       "size-kilopixel": "$1キロピクセル",
+       "size-megapixel": "$1メガピクセル",
+       "size-gigapixel": "$1ギガピクセル",
+       "size-terapixel": "$1テラピクセル",
+       "size-petapixel": "$1ペタピクセル",
+       "size-exapixel": "$1エクサピクセル",
+       "size-zetapixel": "$1ゼタピクセル",
+       "size-yottapixel": "$1ヨタピクセル",
+       "bitrate-bits": "$1bps",
+       "bitrate-kilobits": "$1kbps",
+       "bitrate-megabits": "$1Mbps",
+       "bitrate-gigabits": "$1Gbps",
+       "bitrate-terabits": "$1Tbps",
+       "bitrate-petabits": "$1Pbps",
+       "bitrate-exabits": "$1Ebps",
+       "bitrate-zetabits": "$1Zbps",
+       "bitrate-yottabits": "$1Ybps",
        "lag-warn-normal": "この一覧には $1 {{PLURAL:$1|秒}}前以降の変更内容が表示されていないおそれがあります。",
        "lag-warn-high": "データベースサーバーの大幅な遅延のため、この一覧には $1 {{PLURAL:$1|秒}}前以降の変更内容が表示されていないおそれがあります。",
        "watchlistedit-normal-title": "ウォッチリストの編集",
        "timezone-local": "ローカル",
        "duplicate-defaultsort": "<strong>警告:</strong> 既定のソートキー「$2」が、その前に書かれている既定のソートキー「$1」を上書きしています。",
        "duplicate-displaytitle": "<strong>警告:</strong> DISPLAYTITLE「$2」が、その前に書かれているDISPLAYTITLE「$1」を上書きしています。",
+       "restricted-displaytitle": "<strong>警告:</strong> 実際のページ名と同じではないため、「$1」の表示名は無視されました。",
        "invalid-indicator-name": "<strong>エラー:</strong> ページ・ステータス・インディケーターの <code>name</code> 属性は空であってはいけません。",
        "version": "バージョン情報",
        "version-extensions": "インストール済み拡張機能",
        "tags-deactivate-not-allowed": "タグ「$1」は無効化できません。",
        "tags-deactivate-submit": "無効化",
        "tags-apply-no-permission": "あなたには変更と同時に変更タグを適応する権限がありません。",
+       "tags-apply-blocked": "ブロックされているため、変更タグの変更を適用できません。",
        "tags-apply-not-allowed-one": "タグ \"$1\" の手動適用は認められていません。",
        "tags-apply-not-allowed-multi": "以下の {{PLURAL:$2|タグ}} は手動適用が認められていません: $1",
        "tags-update-no-permission": "あなたには個々の版または記録項目のタグの追加または除去を行う権限がありません。",
+       "tags-update-blocked": "ブロックされているため、変更タグを追加または除去できません。",
        "tags-update-add-not-allowed-one": "タグ \"$1\" の手動追加は認められていません。",
        "tags-update-add-not-allowed-multi": "以下の {{PLURAL:$2|タグ}} は手動追加が認められていません: $1",
        "tags-update-remove-not-allowed-one": "タグ \"$1\" の除去は認められていません。",
        "logentry-move-move_redir-noredirect": "$1 がページ「$3」をリダイレクトの「$4」に、リダイレクトを残さずに{{GENDER:$2|移動しました}}",
        "logentry-patrol-patrol": "$1 がページ「$3」の版 $4 を巡回済みと{{GENDER:$2|しました}}",
        "logentry-patrol-patrol-auto": "$1 が自動的にページ「$3」の版 $4 を巡回済みと{{GENDER:$2|しました}}",
-       "logentry-newusers-newusers": "利用者アカウント $1 が{{GENDER:$2|作成されました}}",
+       "logentry-newusers-newusers": "$1 によって利用者アカウントが{{GENDER:$2|作成されました}}",
        "logentry-newusers-create": "利用者アカウント $1 が{{GENDER:$2|作成されました}}",
        "logentry-newusers-create2": "利用者アカウント $3 が $1 により{{GENDER:$2|作成されました}}",
        "logentry-newusers-byemail": "利用者アカウント $3 が $1 によって{{GENDER:$2|作成され}}、そのパスワードがメールで送信されました",
        "feedback-useragent": "ユーザーエージェント:",
        "searchsuggest-search": "検索",
        "searchsuggest-containing": "この語句を全文検索",
+       "api-error-autoblocked": "あなたの IP アドレスは、過去にブロックされた利用者によって使用されていたため、自動的にブロックされました。",
        "api-error-badaccess-groups": "このウィキへのファイルのアップロードが許可されていません。",
        "api-error-badtoken": "内部エラー: トークンが正しくありません。",
+       "api-error-blocked": "あなたは編集ブロックされています。",
        "api-error-copyuploaddisabled": "URLによるアップロードはこのサーバーでは無効になっています。",
        "api-error-duplicate": "当ウェブサイト上には、既に同じ内容の{{PLURAL:$1|他のファイルが|他のファイルがいくつか}}存在しています。",
        "api-error-duplicate-archive": "サイト上に同じ内容の{{PLURAL:$1|別のファイルが|他のファイルがいくつか}}既にありましたが、{{PLURAL:$1|それは|それらは}}削除されました。",
        "api-error-nomodule": "内部エラー: アップロードを処理するモジュールが設定されていません。",
        "api-error-ok-but-empty": "内部エラー: サーバーからの応答がありません。",
        "api-error-overwrite": "既存のファイルへの上書きは許可されていません。",
+       "api-error-ratelimited": "あなたは短時間の間に、このウィキで許容されている数より多くのファイルをアップロードしようとしています。\n数分後にもう一度お試しください。",
        "api-error-stashfailed": "内部エラー: サーバーは一時ファイルを格納できませんでした。",
        "api-error-publishfailed": "内部エラー: サーバーは一時ファイルを発行できませんでした。",
        "api-error-stasherror": "ファイルを未公開アップロードする際にエラーが発生しました。",
        "api-error-unknownerror": "不明なエラー:「$1」",
        "api-error-uploaddisabled": "このウィキではアップロードは無効になっています。",
        "api-error-verification-error": "このファイルは壊れているか、間違った拡張子になっています。",
+       "api-error-was-deleted": "この名前のファイルは、以前にアップロードされており、その後削除されています。",
        "duration-seconds": "$1 {{PLURAL:$1|秒}}",
        "duration-minutes": "$1 {{PLURAL:$1|分}}",
        "duration-hours": "$1 {{PLURAL:$1|時間}}",
        "mw-widgets-dateinput-no-date": "選択されたデータ無し",
        "mw-widgets-titleinput-description-new-page": "ページは存在しません",
        "mw-widgets-titleinput-description-redirect": "$1 へのリダイレクト",
-       "api-error-blacklisted": "他の、説明的なタイトルをお選びください。",
+       "sessionmanager-tie": "複数の要求の認証方法を組み合わせることはできません: $1。",
        "sessionprovider-generic": "$1 セッション",
+       "sessionprovider-mediawiki-session-cookiesessionprovider": "クッキーベースのセッション",
+       "sessionprovider-nocookies": "クッキーが無効になっている可能性があります。クッキーが有効になっていることを確認し、もう一度お試しください。",
        "randomrootpage": "おまかせルートページ",
        "log-action-filter-block": "ブロックの種類",
        "log-action-filter-delete": "削除の種類:",
        "log-action-filter-newusers": "アカウント作成の種類:",
        "log-action-filter-patrol": "巡回の種類:",
        "log-action-filter-protect": "保護の種類:",
+       "log-action-filter-suppress": "秘匿の種類:",
        "log-action-filter-upload": "アップロードの種類",
        "log-action-filter-all": "すべて",
        "log-action-filter-block-block": "ブロック",
        "log-action-filter-suppress-delete": "ページの秘匿",
        "log-action-filter-upload-upload": "新規アップロード",
        "log-action-filter-upload-overwrite": "再アップロード",
+       "authmanager-authn-not-in-progress": "認証が行われていない、またはセッションデータが失われました。最初からやり直してください。",
+       "authmanager-authn-no-primary": "指定された証明情報を認証できませんでした。",
+       "authmanager-authn-no-local-user": "指定された証明情報は、このウィキのどの利用者にも関連付けられていません。",
+       "authmanager-authn-no-local-user-link": "指定された証明情報は有効ですが、このウィキのどの利用者にも関連付けられていません。別の方法でログインするか、新しくアカウントを作成し、オプションからそのアカウントに以前の証明情報を関連付けることができます。",
        "authmanager-authn-autocreate-failed": "ローカルアカウントの自動作成が失敗しました: $1",
-       "authmanager-userdoesnotexist": "利用者アカウント「$1」は登録されていません。"
+       "authmanager-change-not-supported": "一切利用されないであろう情報のため、指定された証明情報を変更することはできません。",
+       "authmanager-create-disabled": "アカウントの作成は禁止されています。",
+       "authmanager-create-from-login": "アカウントを作成するには、以下の入力欄に記入してください。",
+       "authmanager-create-not-in-progress": "アカウントの作成が行われていない、またはセッションデータが失われました。最初からやり直してください。",
+       "authmanager-create-no-primary": "指定された証明情報は、アカウントの作成に使用できませんでした。",
+       "authmanager-link-no-primary": "指定された証明情報は、アカウントの関連付けに使用できませんでした。",
+       "authmanager-link-not-in-progress": "アカウントの関連付けが行われていない、またはセッションデータが失われました。最初からやり直してください。",
+       "authmanager-authplugin-setpass-failed-title": "パスワードの変更に失敗しました",
+       "authmanager-authplugin-setpass-failed-message": "パスワードの変更は、認証プラグインによって拒否されました。",
+       "authmanager-authplugin-create-fail": "アカウントの作成は、認証プラグインによって拒否されました。",
+       "authmanager-authplugin-setpass-denied": "パスワードの変更は、認証プラグインによって許可されていません。",
+       "authmanager-authplugin-setpass-bad-domain": "無効なドメインです。",
+       "authmanager-autocreate-noperm": "自動アカウント作成は許可されていません。",
+       "authmanager-autocreate-exception": "自動アカウント作成は、以前のエラーにより一時的に無効になっています。",
+       "authmanager-userdoesnotexist": "利用者アカウント「$1」は登録されていません。",
+       "authmanager-userlogin-remembermypassword-help": "パスワードはセッションの長さよりも長いため、忘れないようにしてください。",
+       "authmanager-username-help": "認証用の利用者名。",
+       "authmanager-password-help": "認証用のパスワード。",
+       "authmanager-domain-help": "外部認証用のドメイン。",
+       "authmanager-retype-help": "パスワードの再確認。",
+       "authmanager-email-label": "メールアドレス",
+       "authmanager-email-help": "メールアドレス",
+       "authmanager-realname-label": "本名",
+       "authmanager-realname-help": "利用者の本名",
+       "authmanager-provider-password": "パスワードベースの認証",
+       "authmanager-provider-password-domain": "パスワードおよびドメインベースの認証",
+       "authmanager-provider-temporarypassword": "仮パスワード",
+       "authprovider-confirmlink-message": "最近のログイン試行に基づいて、以下のアカウントはあなたのウィキのアカウントに関連付けできます。関連付けることで、各々のアカウントを経由してログインすることを可能にします。関連付けるアカウントを選択してください。",
+       "authprovider-confirmlink-request-label": "関連付けるアカウント",
+       "authprovider-confirmlink-success-line": "$1: 関連付けが完了しました。",
+       "authprovider-confirmlink-failed": "アカウントの関連付けは完了されませんでした: $1",
+       "authprovider-confirmlink-ok-help": "関連付けのエラーメッセージが表示された後に続行します。",
+       "authprovider-resetpass-skip-label": "スキップ",
+       "authprovider-resetpass-skip-help": "パスワードのリセットをスキップします。",
+       "authform-nosession-login": "認証に成功しましたが、お使いのブラウザでログイン情報を記憶することはできません。\n\n$1",
+       "authform-nosession-signup": "アカウントは作成されましたが、お使いのブラウザでログイン情報を記憶することはできません。\n\n$1",
+       "authform-newtoken": "トークンがありません。$1",
+       "authform-notoken": "トークンがありません",
+       "authform-wrongtoken": "不正なトークンです",
+       "specialpage-securitylevel-not-allowed-title": "許可されていません",
+       "specialpage-securitylevel-not-allowed": "申し訳ありませんが、あなたが同一人であるか確認できないため、このページを使用することはできません。",
+       "authpage-cannot-login": "ログインを開始できません。",
+       "authpage-cannot-login-continue": "ログインを続行できません。セッションがタイムアウトした可能性が高いです。",
+       "authpage-cannot-create": "アカウントの作成を開始できません。",
+       "authpage-cannot-create-continue": "アカウントの作成を続行できません。セッションがタイムアウトした可能性が高いです。",
+       "authpage-cannot-link": "アカウントの関連付けを開始できません。",
+       "authpage-cannot-link-continue": "アカウントの関連付けを続行できません。セッションがタイムアウトした可能性が高いです。",
+       "cannotauth-not-allowed-title": "アクセスが拒否されました",
+       "cannotauth-not-allowed": "あなたはこのページの使用を許可されていません",
+       "changecredentials": "証明情報の変更",
+       "changecredentials-submit": "証明情報の変更",
+       "changecredentials-invalidsubpage": "「$1」は証明方法として有効なものではありません。",
+       "changecredentials-success": "証明情報が変更されました。",
+       "removecredentials": "証明情報の除去",
+       "removecredentials-submit": "証明情報を除去",
+       "removecredentials-invalidsubpage": "「$1」は証明方法として有効なものではありません。",
+       "removecredentials-success": "証明情報が除去されました。",
+       "credentialsform-provider": "証明方法:",
+       "credentialsform-account": "アカウント名:",
+       "cannotlink-no-provider-title": "関連付け可能なアカウントがありません",
+       "cannotlink-no-provider": "関連付け可能なアカウントがありません。",
+       "linkaccounts": "アカウントの関連付け",
+       "linkaccounts-success-text": "アカウントが関連付けられました。",
+       "linkaccounts-submit": "アカウントを関連付ける",
+       "unlinkaccounts": "アカウントの関連付け解除",
+       "unlinkaccounts-success": "アカウントの関連付けが解除されました。",
+       "authenticationdatachange-ignored": "認証データの変更は処理されませんでした。プロバイダーが設定されていない可能性があります。"
 }
index 34241c6..38a261f 100644 (file)
@@ -8,7 +8,8 @@
                        "아라",
                        "Chabi1",
                        "Katxis",
-                       "Macofe"
+                       "Macofe",
+                       "Dcljr"
                ]
        },
        "tog-underline": "Lingk andalainin",
        "protectedpagetext": "Dis piej protek fi privent editin.",
        "viewsourcetext": "Yu kiahn vyuu ahn kapi di suos a dis piej:",
        "protectedinterface": "Dis piej provaid intafies tex fi di saafwier, ahn iprotek fi privent abyuus.",
-       "editinginterface": "'''Waanin:''' Yu de edit page we yuuz fi provaid intafies tex fi di saafwier.\nChienj tu dis piej wi afek di apierans a di yuuza intafies fi ada yuuzadem.\nFi chranslieshan, begyu kansida fi yuuz [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], di MediaWiki luokalaizieshan projek.",
+       "editinginterface": "'''Waanin:''' Yu de edit page we yuuz fi provaid intafies tex fi di saafwier.\nChienj tu dis piej wi afek di apierans a di yuuza intafies fi ada yuuzadem.\nFi chranslieshan, begyu kansida fi yuuz [https://translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], di MediaWiki luokalaizieshan projek.",
        "cascadeprotected": "Dis piej protek frahn edit, bikaa i'inkluud ina di falarin {{PLURAL:$1|piej, ush|piejdem, ush}} protek wid di \"kiaskiedn\" apshan ton aan:\n$2",
        "namespaceprotected": "Yu no gat no pomishan fi edit piej ina di '''$1''' niemspies.",
        "ns-specialprotected": "Peshal piejdem kyaahn edit.",
        "watchlisttools-view": "Vyuu rilivant chienjdem",
        "watchlisttools-edit": "Vyuu ahn edit wachlis",
        "watchlisttools-raw": "Edit raa wachlis",
-       "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1| talk]])‎",
+       "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|taak]])‎",
        "specialpages": "Peshal piej",
        "tag-filter": "[[Special:Tags|Tag]] filta:",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Tag|Tags}}]]: $2)",
index 72246d0..516949e 100644 (file)
        "moredotdotdot": "Liyané...",
        "morenotlisted": "Pratélan iki ora jangkep.",
        "mypage": "Kaca",
-       "mytalk": "Geguneman",
-       "anontalk": "Geguneman",
+       "mytalk": "Parembugan",
+       "anontalk": "Parembugan",
        "navigation": "Napigasi",
        "and": "&#32;lan",
        "qbfind": "Golèk",
        "faq": "Pitakon Kerep",
        "faqpage": "Project:Pitakon Kerep",
        "actions": "Tumindak",
-       "namespaces": "Lowah aran",
+       "namespaces": "Jagat aran",
        "variants": "Parian",
        "navigation-heading": "Menu napigasi",
        "errorpagetitle": "Cacad",
        "go": "Menyang",
        "searcharticle": "Menyang",
        "history": "Babading kaca",
-       "history_short": "Babad",
+       "history_short": "Sujarah",
        "updatedmarker": "wis inganyaran kawit tekaku sing pungkasan",
        "printableversion": "Cara cithakan",
        "permalink": "Pranala permanèn",
        "unprotectthispage": "Owah rereksan kaca iki",
        "newpage": "Kaca anyar",
        "talkpage": "Rembug kaca iki",
-       "talkpagelinktext": "gunem",
+       "talkpagelinktext": "rembugan",
        "specialpage": "Kaca mirunggan",
        "personaltools": "Piranti priangga",
        "articlepage": "Deleng kaca isi",
-       "talk": "Rerembugan",
+       "talk": "Parembugan",
        "views": "Praèn",
        "toolbox": "Piranti",
        "userpage": "Deleng kaca panganggo",
        "toc": "Isi",
        "showtoc": "tuduhaké",
        "hidetoc": "dhelikaké",
-       "collapsible-collapse": "Neb",
-       "collapsible-expand": "Wenga",
+       "collapsible-collapse": "tutup",
+       "collapsible-expand": "bukak",
        "confirmable-confirm": "{{GENDER:$1|Sampéyan}} yakin?",
        "confirmable-yes": "Iya",
        "confirmable-no": "Ora",
-       "thisisdeleted": "Mirsani utawa mbalèkaké $1?",
+       "thisisdeleted": "Ndeleng utawa mbalèkaké $1?",
        "viewdeleted": "Deleng $1?",
-       "restorelink": "$1 {{PLURAL:$1|suntingan|suntingan}} sing wis kabusak",
+       "restorelink": "$1 {{PLURAL:$1|besutan}} sing wis dibusak",
        "feedlinks": "Asupan:",
        "feed-invalid": "Tipe permintaan asupan ora bener.",
        "feed-unavailable": "Umpan sindikasi (''syndication feeds'') ora kasedyakaké",
        "databaseerror-error": "Cacad: $1",
        "laggedslavemode": "Pènget: Kaca iki mbokmenawa isiné dudu pangowahan pungkasan.",
        "readonly": "Umpak data kagembok",
-       "enterlockreason": "Lebokna alesan panguncèn, kalebu uga prakiran kapan kunci bakal dibuka",
+       "enterlockreason": "Isi alesan ngreksa, kalebu rencana kapan pareksané bakal dibukak",
        "readonlytext": "Juru administrasi sistem sing ngunci iku medhar mangkéné: $1",
        "missing-article": "Basis data ora bisa nemokaké tèks kaca sing kuduné ana, yaiku \"$1\" $2.\nBab iki bisasané disebabaké déning pranala daluwarsa menyang revisi sadurungé kaca sing wis dibusak.\nYèn dudu iki panyebabé, panjenengan manawa bisa nemokaké kasalahan (''bug'') jroning piranti alus (''software''). Mangga dilapuraké bab iki menyang [[Special:ListUsers/sysop|administrator]], kanthi nyebutaké alamat URL sing dituju",
        "missingarticle-rev": "(owahan#: $1)",
        "viewsourcetext": "Sampéyan bisa ndeleng lan nyalin sumbering kaca iki.",
        "viewyourtext": "Sampéyan bisa ndeleng lan nyalin sumbering <strong>besutaning sampéyan</strong> ing kaca iki.",
        "protectedinterface": "Kaca iki isiné tèks antarmuka sing dienggo software lan wis dikunci kanggo menghindari kasalahan.",
-       "editinginterface": "'''Pènget:''' Panjenengan nyunting kaca sing dianggo nyedyakaké tèks antarmuka kanggo piranti alus.\nPangowahan kaca iki bakal awèh pangaruh marang tampilan antarmuka panganggo kanggoné panganggo liya.\nKanggo terjemahan, mangga nganggo [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], proyèk lokalisasi MediaWiki.",
+       "editinginterface": "'''Pènget:''' Panjenengan nyunting kaca sing dianggo nyedyakaké tèks antarmuka kanggo piranti alus.\nPangowahan kaca iki bakal awèh pangaruh marang tampilan antarmuka panganggo kanggoné panganggo liya.\nKanggo terjemahan, mangga nganggo [https://translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], proyèk lokalisasi MediaWiki.",
+       "translateinterface": "Kanggo nambah utawa ngowah pertalan kanggo kabèh wiki, mangga anggoa [https://translatewiki.net/ translatewiki.net] minangka proyèk palokaling MediaWiki.",
        "cascadeprotected": "Kaca iki wis direksa saka panyuntingan amerga disertakaké ing {{PLURAL:$1|kaca|kaca-kaca}} ngisor iki sing wis direksa mawa opsi \"runtun\" diaktifaké:\n$2",
        "namespaceprotected": "Panjenengan ora kagungan idin kanggo nyunting kaca ing bilik nama '''$1'''.",
        "customcssprotected": "Sampéyan ora dililakaké nyunting kaca CSS iki amarga kaisi pangaturan pribadi saka panganggo liya.",
        "createacct-reason-ph": "Kenapa sampeyan nggawe akun liyane",
        "createacct-submit": "Gawé akun sampéyan",
        "createacct-another-submit": "Gawé akun",
+       "createacct-continue-submit": "Banjuraké gawé akun",
+       "createacct-another-continue-submit": "Banjuraké gawé akun",
        "createacct-benefit-heading": "{{SITENAME}} digawé déning wong-wong kaya déné sampéyan.",
        "createacct-benefit-body1": "{{PLURAL:$1|besutan}}",
        "createacct-benefit-body2": "{{PLURAL:$1|kaca}}",
        "nocookiesnew": "Rékening utawa akun panganggo panjenengan wis digawé, nanging panjenengan durung mlebu log. {{SITENAME}} nggunakaké ''cookies'' kanggo  log panganggo. ''Cookies'' ing panjlajah wèb panjengengan dipatèni. Mangga diaktifaké lan mlebu log manèh mawa jeneng panganggo lan tembung sandhi panjenengan.",
        "nocookieslogin": "{{SITENAME}} nggunakaké ''cookies'' kanggo log panganggoné. ''Cookies'' ing panjlajah wèb panjenengan dipatèni. Mangga ngaktifaké manèh lan coba manèh.",
        "nocookiesfornew": "Akun panganggo ora digawé amarga sumberé ora bisa dipesthèkaké.\nPesthèkaké sampéyan wis ngurubaké kuki, banjur balèni ngamot kaca iki lan njajal manèh.",
+       "createacct-loginerror": "Akuné wis kasil digawe nanging sampéyan ora bisa mlebu otomatis. Mangga [[Special:UserLogin|mlebua manual]].",
        "noname": "Asma panganggo sing panjenengan pilih ora sah.",
        "loginsuccesstitle": "Kasil mlebu",
        "loginsuccess": "'''Panjenengan saiki mlebu ing {{SITENAME}} kanthi asma \"$1\".'''",
        "createacct-another-realname-tip": "Jeneng asli ora kudu dilebokake.\n\nYen sampeyan milih nglebokake jeneng asli, jeneng kuwi bakal dinggo ngwenehi atribusi kanggo karya-karyane.",
        "pt-login": "Mlebu",
        "pt-login-button": "Mlebu",
+       "pt-login-continue-button": "Banjuraké mlebu",
        "pt-createaccount": "Gawé akun",
        "pt-userlogout": "Metu",
        "php-mail-error-unknown": "Kasalahan ora dingertèni nèng piguna mail() PHP.",
        "anoneditwarning": "<strong>Penget:</strong> Panjenengan boten mlebet log. Alamat IP Panjenengan badhe katingal dening publik manawi Panjenengan ngayahi ewah-ewahan. Manawi Panjenengan  <strong>[$1 mlebet log]</strong> utawai <strong>[$2 damel akun]</strong>, suntingan Panjenengan badhe kaatribusekaken dhumateng  nama pangangge Panjenengan, lan rupi-rupi  kauntungan sanesipun.",
        "anonpreviewwarning": "''Sampéyan durung mlebu log. Nyimpen bakal nyathet alamat IP Sampéyan nèng riwayat sunting kaca iki.''",
        "missingsummary": "'''Pènget:''' Panjenengan ora nglebokaké ringkesan panyuntingan. Menawa panjenengan mencèt tombol Simpen manèh, suntingan panjenengan bakal kasimpen tanpa ringkesan panyuntingan.",
-       "missingcommenttext": "Tulung lebokna komentar ing ngisor iki.",
+       "missingcommenttext": "Mangga isi tanggapan ing ngisor iki.",
        "missingcommentheader": "'''Pangéling:''' Sampéyan durung nyadhiyakaké judhul/jejer kanggo tanggepan iki.\nYèn Sampéyan klik \"{{int:savearticle}}\" manèh, suntingan Sampéyan bakal kasimpen tanpa kuwi.",
        "summary-preview": "Pratuduh tingkesan:",
        "subject-preview": "Prawuryaning jejer:",
        "parser-unstrip-loop-warning": "Unstrip loop detected",
        "parser-unstrip-recursion-limit": "Unstrip recursion limit exceeded ($1)",
        "converter-manual-rule-error": "Kasalahan kadètèk nèng aturan pangubahan basa manual",
-       "undo-success": "Suntingan iki bisa dibatalaké. Tulung priksa prabandhingan ing ngisor iki kanggo mesthèkaké yèn prakara iki pancèn sing bener panjenengan pèngin lakoni, banjur simpenen pangowahan iku kanggo ngrampungaké pambatalan suntingan.",
+       "undo-success": "Besutan iki kena diwurungaké.\nTiliki bandhingan ngisor iki saperlu mesthèkaké yèn bener iki sing arep kolakoni, nuli simpen owahan ngisor iki kanggo ngiyai yèn besutané diwurungaké.",
        "undo-failure": "Suntingan iki ora bisa dibatalakén amerga ana konflik panyuntingan antara.",
-       "undo-norev": "Suntingan iki ora bisa dibatalaké amerga ora ana utawa wis dibusak.",
-       "undo-summary": "Balèkaké owahan $1 déning [[Special:Contributions/$2|$2]] ([[User talk:$2|gunem]])",
+       "undo-norev": "Besutan iki ora bisa diwurungaké amarga wis ora ana utawa wis dibusak.",
+       "undo-summary": "Mbalèkaké owahan $1 déning [[Special:Contributions/$2|$2]] ([[User talk:$2|rembugan]])",
        "undo-summary-username-hidden": "Batalna revisi $1 saking panganggo kang didhelikake",
        "cantcreateaccounttitle": "Akun ora bisa digawé",
        "cantcreateaccount-text": "Saka alamat IP iki ('''$1''') ora diparengaké nggawé akun utawa rékening. Sing mblokir utawa ora marengaké iku [[User:$3|$3]].\n\nAlesané miturut $3 yaiku ''$2''",
        "last": "sadurung",
        "page_first": "kapisan",
        "page_last": "pungkasan",
-       "histlegend": "Pilihen rong tombol radhio banjur pencèten tombol ''bandhingna'' kanggo mbandhingaké versi. Klik sawijining tanggal kanggo ndeleng versi kaca ing tanggal iku.<br />(skr) = prabédan karo vèrsi saiki, (akir) = prabédan karo vèrsi sadurungé, '''s''' = suntingan sithik, '''b''' = suntingan bot, → = suntingan bagian, ← = ringkesan otomatis",
-       "history-fieldset-title": "Luru babad",
+       "histlegend": "Kanggo mbandhingaké: tandhani kothak radhio révisi-révisi sing arep dibandhingaké lan pencèt ''Enter'' utawa tombol sing ana ing ngisor.<br />\nLegéndha: <strong>({{int:cur}})</strong> = béda karo révisi pungkasan, <strong>({{int:last}})</strong> = béda karo révisi sadurungé, <strong>{{int:minoreditletter}}</strong> = besutan cilik.",
+       "history-fieldset-title": "Luru sujarah",
        "history-show-deleted": "Namung sing dibusak",
        "histfirst": "suwé dhéwé",
        "histlast": "anyar dhéwé",
        "historysize": "($1 {{PLURAL:$1|bét|bét}})",
        "historyempty": "(suwung)",
-       "history-feed-title": "Babad owahan",
-       "history-feed-description": "Babad owahaning kaca iki ing wiki",
+       "history-feed-title": "Sujarah owahan",
+       "history-feed-description": "Sujarah owahaning kaca iki ing wiki",
        "history-feed-item-nocomment": "$1 ing $2",
        "history-feed-empty": "Kaca sing disuwun ora ditemokaké. Mbokmenawa wis dibusak saka wiki, utawa diwènèhi jeneng anyar. Coba [[Special:Search|golèka ing wiki]] kanggo kaca anyar sing rélevan.",
        "rev-deleted-comment": "(tingkesaning besutan dibusak)",
        "logdelete-failure": "'''Aturan pandhelikan ora bisa disèt:'''\n$1",
        "revdel-restore": "Ngowahi visiblitas (pangatonan)",
        "pagehist": "Babading kaca",
-       "deletedhist": "Babad kabusak",
+       "deletedhist": "Sujarah kabusak",
        "revdelete-hide-current": "Gagal ndhelikaké révisi tanggal $2, $1: iki arupa révisi paling anyar.\nRévisi iki ora bisa didhelikaké.",
        "revdelete-show-no-access": "Gagal nampilaké révisi tanggal $1, jam $2: révisi iki wis ditandhani \"kawates\".\nPanjenengan ora nduwèni aksès menyang révisi iki.",
        "revdelete-modify-no-access": "Gagal ngowahi révisi tanggal $1, jam $2: révisi iki wis ditandhani \"kawates\".\nPanjenengan ora nduwèni aksès menyang révisi iki.",
        "revdelete-offender": "Juru pangriptaning owahan:",
        "suppressionlog": "Log barang-barang sing didelikaké (''oversight'')",
        "suppressionlogtext": "Ngisor iki daptar apa-apa waé sing wis dibusak lan diblokir kalebu kontèn sing didhelikaké saka para pangurus.\nDelok [[Special:BlockList|daptar blokiran]] sing isiné daptar apa-apa waé sing lagi dilarang lan diblokir.",
-       "mergehistory": "Gabung babad kaca",
+       "mergehistory": "Gabung sujarah kaca",
        "mergehistory-header": "Ing kaca iki panjenengan bisa nggabung révisi-révisi sajarah saka sawijining kaca sumber menyang kaca anyar.\nPastèkna yèn owah-owahan iki bakal netepaké kasinambungan sajarah kaca.",
        "mergehistory-box": "Gabungna revisi-revisi saka rong kaca:",
        "mergehistory-from": "Kaca sumber:",
        "mergehistory-into": "Kaca paran:",
-       "mergehistory-list": "Babad besutan sing bisa digabung",
+       "mergehistory-list": "Sujarah besutan sing bisa digabung",
        "mergehistory-merge": "Révisi-révisi sing kapacak ing ngisor iki saka [[:$1]] bisa digabungaké menyang [[:$2]].\nGunakna tombol radio kanggo nggabungaké révisi-révisi sing digawé sadurungé wektu tartamtu. Gatèkna, menawa nganggo pranala navigasi bakal ngesèt ulang kolom iki.",
        "mergehistory-go": "Tuduhaké besutan sing bisa digabung",
        "mergehistory-submit": "Gabung owahan",
        "mergelog": "Gabung log",
        "revertmerge": "Batalna panggabungan",
        "mergelogpagetext": "Ing ngisor iki kapacak daftar panggabungan sajarah kaca ing kaca liyané.",
-       "history-title": "Babad owahaning \"$1\"",
+       "history-title": "Sujarah owahaning \"$1\"",
        "difference-title": "Prabéda antara owahan \"$1\"",
        "difference-title-multipage": "Prabédhan antara kaca \"$1\" lan \"$2\"",
        "difference-multipage": "(Prabédhan antar kaca)",
        "notextmatches": "Ora ana tèks kaca sing cocog",
        "prevn": "{{PLURAL:$1|$1}} sadurungé",
        "nextn": "{{PLURAL:$1|$1}} sabanjuré",
+       "prev-page": "kaca sadurungé",
+       "next-page": "kaca sabanjuré",
        "prevn-title": "$1 {{PLURAL:$1|asil|asil}} sadurungé",
        "nextn-title": "$1 {{PLURAL:$1|asil|asil}} sabanjuré",
        "shown-title": "Tuduhaké $1 {{PLURAL:$1|kasil|kasil}} saben kaca",
        "searchprofile-articles-tooltip": "Golèkan ing $1",
        "searchprofile-images-tooltip": "Golèk barkas",
        "searchprofile-everything-tooltip": "Golèk kabèh isi (kalebu kaca guneman)",
-       "searchprofile-advanced-tooltip": "Golèk ing lowah jeneng tinamtu",
+       "searchprofile-advanced-tooltip": "Golèk ing jagat aran tinamtu",
        "search-result-size": "$1 ({{PLURAL:$2|1 tembung|$2 tembung}})",
        "search-result-category-size": "{{PLURAL:$1|1 anggota|$1 anggota}} ({{PLURAL:$2|1 subkatégori|$2 subkatégori}}, {{PLURAL:$3|1 berkas|$3 berkas}})",
        "search-redirect": "(pangalihan $1)",
        "search-section": "(pérangan $1)",
+       "search-category": "(kategori $1)",
+       "search-file-match": "(cocog karo isi barkas)",
        "search-suggest": "Apa karepé sampéyan: $1",
+       "search-rewritten": "Tuduhaké kasilé $1, nanging golèkaké $2.",
        "search-interwiki-caption": "Proyèk-proyèk sababon",
-       "search-interwiki-default": "Pituwas $1:",
+       "search-interwiki-default": "Wohing panggolèk $1:",
        "search-interwiki-more": "(luwih akèh)",
        "search-relatedarticle": "Magepokan",
        "searchrelated": "magepokan",
        "prefs-tokenwatchlist": "Token",
        "prefs-diffs": "Prabédan",
        "prefs-help-prefershttps": "Pamiji iki bakal lumaku mentas sampeyan mbalèni mlebu.",
-       "prefs-tabs-navigation-hint": "Tip: Sampeyan isa nganggo dapat menggunakan tombol panah kiwa lan tengen kanggo navigasi tab-tab ing daftar tab.",
+       "prefs-tabs-navigation-hint": "Saran: Sampeyan bisa nganggo tombol jemparing kiwa lan tengen saperlu navigasi tab-tab ing pratélan tab.",
        "userrights": "Manajemen hak panganggo",
        "userrights-lookup-user": "Ngatur kelompok panganggo",
-       "userrights-user-editname": "Lebokna jeneng panganggo:",
+       "userrights-user-editname": "Isi jeneng panganggo:",
        "editusergroup": "Besut golongan {{GENDER:$1|panganggo}}",
        "editinguser": "Ngganti hak panganggo '''[[User:$1|$1]]''' $2",
        "userrights-editusergroup": "Besut golongan panganggo",
        "userrights-unchangeable-col": "Grup sing ora bisa diowahi panjenengan",
        "userrights-conflict": "Konflik pangowahan hak-hak panganggo! Tulung ditinjau maneh lan konfirmasi Pangowahan sampeyan.",
        "userrights-removed-self": "Sampeyan wis berhasil ngilangake hak-hak sampeyan. Nuli, sampeyan ora isa ngakses kaca niki malih.",
-       "group": "Kelompok:",
+       "group": "Golongan:",
        "group-user": "Para panganggo",
        "group-autoconfirmed": "Panganggo sing otomatis didhedhes (dikonfirmasi)",
        "group-bot": "Bot",
        "grouppage-suppress": "{{ns:project}}:Oversight",
        "right-read": "Maca kaca-kaca",
        "right-edit": "Besut kaca",
-       "right-createpage": "Gawé kaca (sing dudu kaca rerembugan)",
-       "right-createtalk": "Gawé kaca rerembugan",
+       "right-createpage": "Gawé kaca (sing dudu kaca parembugan)",
+       "right-createtalk": "Gawé kaca parembugan",
        "right-createaccount": "Nggawé rékening (akun) panganggo anyar",
        "right-minoredit": "Tandhani minangka besutan cilik",
        "right-move": "Ngalih kaca",
        "right-override-export-depth": "Èkspor kaca klebu kaca kagandhèng nganti tataran/''depth'' 5",
        "right-sendemail": "Ngirim layang listrik (e-mail) menyang panganggo liya",
        "right-passwordreset": "Delok layang èlèktronik panyetèlulangan tembung sandhi",
+       "grant-group-email": "Kirim layang élèktronik",
+       "grant-createaccount": "Gawé akun",
+       "grant-createeditmovepage": "Gawé, besut, lan lih kaca",
+       "grant-delete": "Busak kaca, owahan, lan isian cathetan",
        "newuserlogpage": "Cathetan panganggo anyar",
        "newuserlogpagetext": "Ing ngisor iki kapacak log pandaftaran panganggo anyar.",
        "rightslog": "Log pangowahan hak aksès",
        "action-editmyprivateinfo": "owahi informasi pribadi sampeyan",
        "nchanges": "$1 {{PLURAL:$1|pangowahan|owah-owahan}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|saka keri dhewe mrene}}",
-       "enhancedrc-history": "babad",
+       "enhancedrc-history": "sujarah",
        "recentchanges": "Owahan pungkasan",
        "recentchanges-legend": "Pilihan owah-owahan pungkasan",
        "recentchanges-summary": "Runutna owah-owahan pungkasan ing wiki iki ing kaca iki.",
        "recentchanges-legend-heading": "<strong>Legendha:</strong>",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (uga deleng [[Special:NewPages|pratélaning kaca-kaca anyar]])",
        "recentchanges-legend-plusminus": "(''±123'')",
+       "recentchanges-submit": "Tuduhaké",
        "rcnotefrom": "Ing ngisor iki owah-owahan wiwit <strong>$2</strong> (kapacak nganti <strong>$1</strong> owah-owahan).",
        "rclistfrom": "Tuduhaké owah-owahan anyar kawit $2, $3",
        "rcshowhideminor": "$1 besutan cilik",
        "rcshowhidebots-show": "Tuduhaké",
        "rcshowhidebots-hide": "Dhelikaké",
        "rcshowhideliu": "$1 panganggo karégister",
+       "rcshowhideliu-show": "Tuduhaké",
        "rcshowhideliu-hide": "Dhelikaké",
        "rcshowhideanons": "$1 panganggo anonim",
        "rcshowhideanons-show": "Tuduhaké",
        "rcshowhideanons-hide": "Dhelikaké",
        "rcshowhidepatr": "$1 besutan awasan",
+       "rcshowhidepatr-show": "Tuduhaké",
+       "rcshowhidepatr-hide": "Dhelikaké",
        "rcshowhidemine": "$1 besutanku",
        "rcshowhidemine-show": "Tuduhaké",
        "rcshowhidemine-hide": "Dhelikaké",
+       "rcshowhidecategorization": "$1 kategorisasi kaca",
+       "rcshowhidecategorization-show": "Tuduhaké",
+       "rcshowhidecategorization-hide": "Dhelikaké",
        "rclinks": "Tuduhaké $1 owahan kawit $2 dina kapungkur.<br />$3",
        "diff": "béd",
        "hist": "saj",
        "rc_categories": "Watesana nganti kategori (dipisah karo \"|\")",
        "rc_categories_any": "Apa waé",
        "rc-change-size-new": "$1 {{PLURAL:$1|bét|bét}} sabubaré diowah",
-       "newsectionsummary": "/* $1 */ bagéyan anyar",
+       "newsectionsummary": "/* $1 */ pérangan anyar",
        "rc-enhanced-expand": "Tuduhaké princèn",
        "rc-enhanced-hide": "Dhelikaké princèn",
        "rc-old-title": "kawitané digawé minangka \"$1\"",
        "upload-too-many-redirects": "URL ngandhut kakèhan pengalihan",
        "upload-http-error": "Ana kasalahan HTTP: $1",
        "upload-copy-upload-invalid-domain": "Unggahan salinan ora sumadhiya nèng domain iki.",
+       "upload-dialog-title": "Unggah barkas",
+       "upload-dialog-button-cancel": "Wurung",
+       "upload-dialog-button-done": "Rampung",
+       "upload-dialog-button-save": "Simpen",
+       "upload-dialog-button-upload": "Unggah",
+       "upload-form-label-infoform-title": "Rerincèn",
+       "upload-form-label-infoform-name": "Jeneng",
+       "upload-form-label-usage-filename": "Jeneng barkas",
+       "upload-form-label-own-work": "Iki karyaku dhéwé",
+       "upload-form-label-infoform-categories": "Kategori",
+       "upload-form-label-infoform-date": "Tanggal",
        "backend-fail-stream": "Ora bisa milikaké berkas \"$1\".",
        "backend-fail-backup": "Ora bisa nyadangaké berkas \"$1\".",
        "backend-fail-notexists": "Berkas $1 ora ana.",
        "mostrevisions": "Kaca mawa pangowahan sing akèh dhéwé",
        "prefixindex": "Kabèh kaca mawa ater-ater",
        "prefixindex-namespace": "Kabèh kaca mawa ater-ater (bilik jeneng $1)",
+       "prefixindex-submit": "Tuduhaké",
        "prefixindex-strip": "Busak ater-ater saka pratélan",
        "shortpages": "Kaca cendhak",
        "longpages": "Kaca dawa",
        "protectedpages-cascade": "Amung kaca rineksan kang runtut",
        "protectedpages-noredirect": "Dhelikna alihan",
        "protectedpagesempty": "Saat ini tidak ada halaman yang sedang dilindungi.",
+       "protectedpages-page": "Kaca",
+       "protectedpages-expiry": "Kadaluwarsa",
+       "protectedpages-reason": "Alesan",
        "protectedtitles": "Irah-irahan sing direksa",
        "protectedtitlesempty": "Ora ana irah-irahan utawa judhul sing direksa karo paramèter-paramèter iki.",
        "listusers": "Daftar panganggo",
        "querypage-disabled": "Kaca kusus iki dipatèni kanggo alesan kinerja.",
        "apisandbox": "Kothak wedhi API",
        "apisandbox-api-disabled": "API dipatèni nèng situs iki.",
-       "apisandbox-intro": "Anggo kaca iki kanggo njajal-njajal '''API layanan wèb MediaWiki'''.\nRujuk [//www.mediawiki.org/wiki/API:Main_page the dhokumèntasi API] kanggo panganggoan API luwih rinci. Conto: [//www.mediawiki.org/wiki/API#A_simple_example ngéntukaké kontèn Kaca Utama]. Pilih laku kanggo ndelok conto luwih akèh.",
+       "apisandbox-intro": "Anggo kaca iki kanggo njajal-njajal '''API layanan wèb MediaWiki'''.\nRujuk [https://www.mediawiki.org/wiki/API:Main_page the dhokumèntasi API] kanggo panganggoan API luwih rinci. Conto: [https://www.mediawiki.org/wiki/API#A_simple_example ngéntukaké kontèn Kaca Utama]. Pilih laku kanggo ndelok conto luwih akèh.",
        "apisandbox-submit": "Gawé panjalukan",
        "apisandbox-reset": "Resiki",
        "apisandbox-examples": "Conto",
        "wlheader-showupdated": "Kaca-kaca sing wis owah wiwit ditiliki panjenengan kaping pungkasan, dituduhaké mawa '''aksara kandel'''",
        "wlnote": "Ngisor iki {{PLURAL:$1|owahan pungkasan|'''$1''' owahan pungkasan}} {{PLURAL:$2|jam|'''$2''' jam}} kapungkur, per $3, $4.",
        "wlshowlast": "Tuduhna $1 jam $2 dina  pungkasan",
+       "wlshowhidecategorization": "kategorisasi kaca",
        "watchlist-options": "Pilihaning pawawangan",
        "watching": "Ngawasi...",
        "unwatching": "Ngilangi pangawasan...",
-       "watcherrortext": "Ana kasalahan nalika ngganti pangaturan daptar pangawasan Sampéyan kanggo \"$1\".",
+       "watcherrortext": "Ana cacad nalika ngganti tata latar pawawangané sampéyan tumrap \"$1\".",
        "enotif_reset": "Tandhanana kabèh kaca sing wis ditiliki",
        "enotif_impersonal_salutation": "Panganggo {{SITENAME}}",
        "enotif_subject_deleted": "Halaman $1 di {{SITENAME}} telah dihapus oleh {{gender:$2|$2}}",
        "cantrollback": "Ora bisa mbalèkaké suntingan; panganggo pungkasan iku siji-sijiné penulis artikel iki.",
        "alreadyrolled": "Ora bisa mbalèkaké suntingan pungkasan [[:$1]] déning [[User:$2|$2]] ([[User talk:$2|Wicara]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]); wong liya wis nyunting utawa mbalèkaké kaca artikel iku.\n\nSuntingan pungkasan dilakoni déning [[User:$3|$3]] ([[User talk:$3|Wicara]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
        "editcomment": "Ringkesan suntingan yaiku: <em>$1</em>.",
-       "revertpage": "Besutan sing dibalèkaké [[Special:Contributions/$2|$2]] ([[User talk:$2|gunem]]) bab owahan pungkasan déning [[User:$1|$1]]",
+       "revertpage": "Besutan sing dibalèkaké [[Special:Contributions/$2|$2]] ([[User talk:$2|rembugan]]) bab owahan pungkasan déning [[User:$1|$1]]",
        "revertpage-nouser": "Suntingan déning panganggo sing didhelikake, dibalèkaké nèng benahan pungkasan déning [[User:$1|$1]]",
        "rollback-success": "Suntingan dibalèkaké déning $1;\ndiowahi bali menyang vèrsi pungkasan déning $2.",
        "sessionfailure-title": "Sèsi gagal",
        "protect_expiry_invalid": "Wektu kadaluwarsané ora sah.",
        "protect_expiry_old": "Wektu kadaluwarsané kuwi ana ing jaman biyèn.",
        "protect-unchain-permissions": "Urubaké pilihan panjagan sabanjuré",
-       "protect-text": "Panjenengan bisa mirsani utawa ngganti tingkatan pangreksan kanggo kaca '''$1''' ing kéné.",
+       "protect-text": "Ing kéné, sampéyan bisa ndeleng lan ngganti tataran kareksan tumrap kaca <strong>$1</strong>.",
        "protect-locked-blocked": "Panjenengan ora bisa ngganti tingkat pangreksan yèn lagi diblokir.\nIng ngisor iki kapacak konfigurasi saiki iki kanggo kaca '''$1''':",
        "protect-locked-dblock": "Tingkat pangreksan ora bisa diganti amerga anané panguncèn aktif basis data.\nIng ngisor iki kapacak konfigurasi kanggo kaca '''$1''':",
        "protect-locked-access": "Akun utawa rékening panjenengan ora awèh idin kanggo ngganti tingkat pangreksan kaca. Ing ngisor iki kapacak konfigurasi saiki iki kanggo kaca '''$1''':",
        "undelete-error-long": "Ana kaluputan nalika mbatalaké pambusakan berkas:\n\n$1",
        "undelete-show-file-confirm": "Apa panjenengan yakin arep mirsani révisi berkas \"<nowiki>$1</nowiki>\" sing wis kabusak ing $2 jam $3?",
        "undelete-show-file-submit": "Ya",
-       "namespace": "Lowah aran:",
+       "namespace": "Jagat aran:",
        "invert": "Balèkaké pilihan",
        "tooltip-invert": "Centhang kothak iki kanggo ndhelikaké owahan saka kaca-kaca nèng njero bilik jeneng kapilih (lan bilik jeneng kakait yèn dicenthang)",
-       "namespace_association": "Lowah aran magepokan",
+       "namespace_association": "Jagat aran magepokan",
        "tooltip-namespace_association": "Centhang kothak iki kanggo nglebokaké uga bilik jeneng gumenan utawa subyèk sing kakait karo bilik jeneng kapilih",
        "blanknamespace": "(Pokok)",
        "contributions": "Sumbangan {{GENDER:$1|panganggo}}",
        "contribsub2": "Kanggo {{GENDER:$3|$1}} ($2)",
        "nocontribs": "Ora ditemokaké owah-owahan sing cocog karo kritéria kasebut iku.",
        "uctop": "(saiki)",
-       "month": "Wiwit wulan (lan sadurungé):",
+       "month": "Saka wulan (lan sadurungé):",
        "year": "Wiwit taun (lan sadurungé):",
        "sp-contributions-newbies": "Namung panganggo-panganggo anyar",
        "sp-contributions-newbies-sub": "Kanggo panganggo anyar",
        "lockbtn": "Kunci basis data",
        "unlockbtn": "Buka kunci basis data",
        "locknoconfirm": "Panjenengan ora mènèhi tandha cèk ing kothak konfirmasi.",
-       "lockdbsuccesssub": "Bisa kasil ngunci basis data",
-       "unlockdbsuccesssub": "Bisa kasil buka kunci basis data",
+       "lockdbsuccesssub": "Kasil ngunci sasana dhatah",
+       "unlockdbsuccesssub": "Kasil mbukak kunci sasana dhatah",
        "lockdbsuccesstext": "Basis data wis dikunci.\n<br />Pastèkna panjenengan [[Special:UnlockDB|mbuka kunciné]] sawisé pangopènan bubar.",
        "unlockdbsuccesstext": "Kunci basis data wis dibuka.",
        "lockfilenotwritable": "Berkas kunci basis data ora bisa ditulis. Kanggo ngunci utawa mbuka basis data, berkas iki kudu ditulis déning server wèb.",
        "move-page-legend": "Mindhah kaca",
        "movepagetext": "Formulir ing ngisor iki bakal ngowahi jeneng sawijining kaca, mindhah kabèh sajarahé menyang kaca sing anyar. Irah-irahan utawa judhul sing lawas bakal dadi kaca pangalihan menyang irah-irahan sing anyar. Pranala menyang kaca sing lawas ora bakal diowahi; dadi pastèkna dhisik mriksa pangalihan [[Special:DoubleRedirects|dobel]] utawa [[Special:BrokenRedirects|pangalihan sing rusak]] sawisé pamindhahan. Panjenengan sing tanggung jawab mastèkaké menawa kabèh pranala-pranala tetep nyambung ing kaca panujon kaya samesthiné.\n\nGatèkna yèn kaca iki '''ora''' bakal dipindhah yèn wis ana kaca liyané sing nganggo irah-irahan sing anyar, kejaba kaca iku kosong utawa ora nduwé sajarah panyuntingan. Dadi tegesé panjenengan bisa ngowahi jeneng kaca iku manèh kaya sedyakala menawa panjenengan luput, lan panjenengan ora bisa nimpani kaca sing wis ana.\n\n'''PÈNGET!'''\nPerkara iki bisa ngakibataké owah-owahan sing drastis lan ora kaduga kanggo kaca-kaca sing populèr;\npastekaké dhisik panjenengan ngerti konsekwènsi saka panggayuh panjenengan sadurungé dibanjuraké.",
        "movepagetext-noredirectfixer": "Formulir di bawah ini digunakan untuk mengubah nama suatu halaman dan memindahkan semua data sejarah ke nama baru.\nJudul yang lama akan menjadi halaman peralihan menuju judul yang baru.\nPastikan untuk memeriksa pengalihan [[Special:DoubleRedirects|ganda]] atau [[Special:BrokenRedirects|rusak]].\nAnda bertanggung jawab untuk memastikan bahwa pranala terus menyambung ke halaman yang seharusnya.\n\nPerhatikan bahwa halaman '''tidak''' akan dipindah apabila telah ada halaman yang menggunakan judul yang baru, kecuali bila halaman tersebut kosong atau merupakan halaman peralihan dan tidak mempunyai sejarah penyuntingan.\nIni berarti Anda dapat mengubah nama halaman kembali seperti semula apabila Anda membuat kesalahan, dan Anda tidak dapat menimpa halaman yang telah ada.\n\n'''Peringatan:'''\nHal ini dapat mengakibatkan perubahan yang tak terduga dan drastis bagi halaman yang populer;\nPastikan Anda mengerti konsekuensi dari perbuatan ini sebelum melanjutkan.",
-       "movepagetalktext": "Menawa sampéyan nyénthang kothak iki, kaca geguneman sing magepokan bakal otomatis dilih nyang sesirah anyar, kajaba kaca gegunemané wis ana isiné sadurungé.\n\nYèn mangkéné, sampéyan kudu ngalih utawa nggabung kaca-kaca iku kanthi manual.",
+       "movepagetalktext": "Menawa sampéyan nyénthang kothak iki, kaca parembugan sing magepokan bakal otomatis dilih nyang sesirah anyar, kajaba kaca parembugané sing dituju wis ana isiné.\n\nYèn mangkéné, sampéyan kudu ngalih utawa nggabung kaca-kaca iku kanthi manual.",
        "moveuserpage-warning": "'''Pèngetan:''' Sampéyan arep mindhahaké kaca panganggo. Mangga cathet yèn namung kaca sing bakal dipindhahaké lan panganggo '''ora''' bakal diganti jenengé.",
        "movenologintext": "Panjenengan kudu dadi panganggo sing wis ndaftar lan wis [[Special:UserLogin|mlebu log]] kanggo mindhah kaca.",
        "movenotallowed": "Panjenengan ora pareng ngalihaké kaca.",
        "newtitle": "Sesirah anyar:",
        "move-watch": "Awasna kaca iki",
        "movepagebtn": "Ngalih kaca",
-       "pagemovedsub": "Bisa kasil dipindhahaké",
-       "movepage-moved": "'''\"$1\" dipindhahaké menyang \"$2\".'''",
+       "pagemovedsub": "Kasil dilih",
+       "movepage-moved": "<strong>\"$1\" wis dilih nyang \"$2\"</strong>",
        "movepage-moved-redirect": "Kaca pengalihan wis kacipta.",
        "movepage-moved-noredirect": "Kanggo gawé pengalihan wis ditahan.",
        "articleexists": "Satunggalipun kaca kanthi asma punika sampun wonten, utawi asma ingkang panjenengan pendhet mboten leres. Sumangga nyobi asma sanèsipun.",
        "cantmove-titleprotected": "Panjenengan ora bisa mindhahaké kaca iki menyang lokasi iki, amerga irah-irahan tujuan lagi direksa; ora olèh digawé",
-       "movetalk": "Lih kaca geguneman sing magepokan",
+       "movetalk": "Lih kaca parembugan sing magepokan",
        "move-subpages": "Lih anak kaca (tekan $1)",
-       "move-talk-subpages": "Lih anak kaca saka kaca geguneman (tekan $1)",
+       "move-talk-subpages": "Lih anak kaca saka kaca parembugan (tekan $1)",
        "movepage-page-exists": "Kaca $1 wis ana lan ora bisa ditindhes sacara otomatis.",
        "movepage-page-moved": "Kaca $1 wis dipindhah menyang $2.",
        "movepage-page-unmoved": "Kaca $1 ora bisa dialihaké menyang $2.",
        "immobile-source-namespace": "Ora bisa mindhahaké kaca jroning bilik jeneng \"$1\"",
        "immobile-target-namespace": "Ora bisa mindhahaké kaca menyang bilik jeneng \"$1\"",
        "immobile-target-namespace-iw": "Pranala interwiki dudu target sing sah kanggo pamindhahan kaca.",
-       "immobile-source-page": "Kaca iki ora bisa dipindhahaké.",
+       "immobile-source-page": "Kaca iki ora bisa dilih-lih.",
        "immobile-target-page": "Ora bisa mindhahaké menyang irah-irahan tujuan kasebut.",
-       "bad-target-model": "Halaman yang dituju menggunakan model isi yang berbeda. Tidak dapat mengonversi $1 ke $2.",
+       "bad-target-model": "Tujuan sing diarepaké nganggo gagrag isi sing béda. Ora bisa ngganti $1 dadi $2.",
        "imagenocrossnamespace": "Ora bisa mindhahaké gambar menyang bilik nama non-gambar",
        "nonfile-cannot-move-to-file": "Ora bisa mindhahaké non-berkas nèng bilik jeneng berkas",
        "imagetypemismatch": "Èkstènsi anyar berkas ora cocog karo jenisé",
        "allmessagesname": "Asma (jeneng)",
        "allmessagesdefault": "Tèks baku",
        "allmessagescurrent": "Tèks saiki",
-       "allmessagestext": "Iki dhaptar kabèh pesen saka sistem sing ana ing bilik jeneng MediaWiki.\nMangga pirsani [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] lan [//translatewiki.net translatewiki.net] yèn panjenengan arep kontribusi ing lokalisasi generik MediaWiki.",
+       "allmessagestext": "Iki dhaptar kabèh pesen saka sistem sing ana ing bilik jeneng MediaWiki.\nMangga pirsani [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] lan [https://translatewiki.net translatewiki.net] yèn panjenengan arep kontribusi ing lokalisasi generik MediaWiki.",
        "allmessagesnotsupportedDB": "Kaca iki ora bisa dienggo amerga '''$wgUseDatabaseMessages''' dipatèni.",
        "allmessages-filter-legend": "Penyaring",
        "allmessages-filter": "Saring nganggo kahanan kustomisasi:",
        "import-error-interwiki": "Kaca \"$1\" ora diimpor amarga jenengé dicadhangaké kango pranala njaba (interwiki).",
        "import-error-special": "Kaca \"$1\" ora diimpor amarga kuwi kalebu nèng bilik jeneng kusus sing ora nglilakaké anané kaca.",
        "import-error-invalid": "Kaca \"$1\" ora diimpor amarga jenengé ora sah.",
-       "import-error-unserialize": "Revisi $2 dari halaman \"$1\" tidak dapat di-''unserialized''. Revisi tersebut dilaporkan menggunakan model konten $3 diserialisasi sebagai $4.",
+       "import-error-unserialize": "Revisi $2 saka kaca \"$1\" ora bisa diurutaké. Revisi iku dilapuraké murih nganggo gagrag isi $3 sing diurutaké minangka $4.",
        "import-options-wrong": "{{PLURAL:$2|Opsi|Opsi}} salah: <nowiki>$1</nowiki>",
        "import-rootpage-invalid": "Halaman turunan yang diberikan adalah judul yang salah.",
        "import-rootpage-nosubpage": "Ruang nama \"$1\" di halaman turunan tidak mengizinkan subhalaman.",
        "tooltip-pt-userpage": "Kaca {{GENDER:|panganggoning sampéyan}}",
        "tooltip-pt-anonuserpage": "Kaca panganggo IP panjenengan",
        "tooltip-pt-mytalk": "Kaca gegunemaning {{GENDER:|sampéyan}}",
-       "tooltip-pt-anontalk": "Rerembugan bab besutan-besutan saka alamat IP iki",
+       "tooltip-pt-anontalk": "Parembug ing besutan-besutan saka alamat IP iki",
        "tooltip-pt-preferences": "Pilih-pilihaning {{GENDER:|sampéyan}}",
        "tooltip-pt-watchlist": "Pratélaning kaca sing sampéyan awasi owah-owahané",
        "tooltip-pt-mycontris": "Pratélaning sumbanganing {{GENDER:|sampéyan}}",
        "pageinfo-title": "Inpormasi kanggo \"$1\"",
        "pageinfo-not-current": "Maaf, tidak mungkin memberikan informasi ini ke revisi lama.",
        "pageinfo-header-basic": "Informasi dhasar",
-       "pageinfo-header-edits": "Babad besutan",
+       "pageinfo-header-edits": "Sujarah besutan",
        "pageinfo-header-restrictions": "Perlindungan halaman",
        "pageinfo-header-properties": "Properti kaca",
        "pageinfo-display-title": "Judul tampilan",
        "pageinfo-recent-edits": "Cacahé suntingan saiki (ing $1 kapungkur)",
        "pageinfo-recent-authors": "Cacahé panganggit sing bédha-bédha saiki",
        "pageinfo-magic-words": "{{PLURAL:$1|Tembung|Tembung}} mujarab ($1)",
-       "pageinfo-hidden-categories": "{{PLURAL:$1|Katégori|Katégori}} kadhelikaké ($1)",
+       "pageinfo-hidden-categories": "{{PLURAL:$1|Kategori}} ndhelik ($1)",
        "pageinfo-templates": "{{PLURAL:$1|Templat|Templat}} yang ditransklusi ($1)",
        "pageinfo-transclusions": "{{PLURAL:$1|Kaca|Kaca}} sing ditransklusi ing ($1)",
        "pageinfo-toolboxlink": "Katerangan kaca",
        "filedelete-current-unregistered": "Berkas sing dispésifikasi \"$1\" ora ana sajroning basis data.",
        "filedelete-archive-read-only": "Dirèktori arsip \"$1\" ora bisa ditulis déning server wèb.",
        "previousdiff": "← Besutan sadurungé",
-       "nextdiff": "Besutan luwih anyar →",
+       "nextdiff": "Besutan sawisé →",
        "mediawarning": "'''Pèngetan''': Jinis berkas iki mungkin isiné kodhé mbebayani.\nYèn dilakokaké, sistem Sampéyan bisa kaserang.",
        "imagemaxsize": "Wates ukuran gambar:<br />''(kanggo kaca dhèskripsi berkas)''",
        "thumbsize": "Ukuran gambar cilik (thumbnail):",
        "watchlisttools-view": "Tuduhna owah-owahan sing ana gandhèngané",
        "watchlisttools-edit": "Deleng lan besut pawawangan",
        "watchlisttools-raw": "Besut pawawangan wantahan",
-       "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|geguneman]])",
+       "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|rembugan]])",
        "duplicate-defaultsort": "Pènget: Kunci pilih asal (''Default sort key'') \"$2\" nggantèkaké kunci pilih asal sadurungé \"$1\".",
        "version": "Versi",
        "version-extensions": "Èkstènsi sing wis diinstalasi",
        "logentry-newusers-create2": "Akun panganggo $3 {{GENDER:$2|digawé}} déning $1",
        "logentry-newusers-byemail": "Akun panganggo $3 {{GENDER:$2|digawé}} déning $1 lan tembung sandhine dikirim lewat layang elektronik",
        "logentry-newusers-autocreate": "Akun $1 {{GENDER:$2|digawé}} otomatis",
-       "logentry-rights-rights": "$1 {{GENDER:$2|ngganti}} kaanggotan kelompok kanggo $3 saka $4 dadi $5",
-       "logentry-rights-rights-legacy": "$1 {{GENDER:$2|ngganti}} kanggotaan grup kanggo $3",
+       "logentry-rights-rights": "$1 {{GENDER:$2|ngganti}} golongané {{GENDER:$6|$3}} saka $4 dadi $5",
+       "logentry-rights-rights-legacy": "$1 {{GENDER:$2|ngganti}} golongané $3",
        "logentry-rights-autopromote": "$1 otomatis {{GENDER:$2|dipromosikne}} saka $4 nèng $5",
        "logentry-upload-upload": "$1 {{GENDER:$2|ngunggah}} $3",
        "rightsnone": "(ora ana)",
        "special-characters-group-thai": "Thailand",
        "special-characters-group-lao": "Lao",
        "special-characters-group-khmer": "Khmer",
-       "api-error-blacklisted": "Mangga pilih judhul liya sing njelasaké",
        "randomrootpage": "Kaca dhasaran waton"
 }
index 4ee3c82..8ec2e36 100644 (file)
@@ -26,7 +26,8 @@
                        "SHOTHA",
                        "Gi777ga",
                        "Matma Rex",
-                       "Sopopruidze"
+                       "Sopopruidze",
+                       "Dixtosa"
                ]
        },
        "tog-underline": "ბმულების ხაზგასმა:",
@@ -44,6 +45,7 @@
        "tog-watchdefault": "დაამატე ჩემი კონტროლის სიას ჩემს მიერ რედაქტირებული გვერდები და ფაილები",
        "tog-watchmoves": "ჩასვი გვერდები და ფაილები, რომლებიც მე გადამაქვს, ჩემს კონტროლის სიაში",
        "tog-watchdeletion": "ჩასვი გვერდები და ფაილები, რომლებსაც მე ვშლი, ჩემს კონტროლის სიაში",
+       "tog-watchuploads": "დაამატე ჩემი ატვირთული ფაილები ჩემი კონტროლის სიას ხოლმე",
        "tog-watchrollback": "დაამატე ჩემი კონტროლის სიას გვერდები, სადაც მე სწრაფი გაუქმება განვახორციელე",
        "tog-minordefault": "ყველა რედაქტირების მონიშვნა, როგორც უმნიშვნელო, უპირობოდ",
        "tog-previewontop": "წინასწარი გადახედვის ჩვენება რედაქტირების დაფამდე",
@@ -68,7 +70,7 @@
        "tog-ccmeonemails": "გამომიგზავნე ელფოსტების ასლები, რომლებსაც მე სხვა მომხმარებლებს ვუგზავნი",
        "tog-diffonly": "დამალე გვერდის შიგთავსი ცვლილების ქვევით",
        "tog-showhiddencats": "დამალული კატეგორიების ჩვენება",
-       "tog-norollbackdiff": "á\83\92á\83\90á\83£á\83¥á\83\9bá\83\94á\83\91á\83\98á\83¡á\83\90á\83¡ á\83\92á\83\90á\83\9bá\83\9dá\83¢á\83\9dá\83\95á\83\94á\83\97 ცვლილებათა განსხვავება",
+       "tog-norollbackdiff": "á\83ªá\83\95á\83\9aá\83\98á\83\9aá\83\94á\83\91á\83\98á\83¡ á\83\92á\83\90á\83£á\83¥á\83\9bá\83\94á\83\91á\83\98á\83¡á\83\90á\83¡ á\83\90á\83  á\83\9bá\83\90á\83\9cá\83\90á\83®á\83\9d ცვლილებათა განსხვავება",
        "tog-useeditwarning": "გამაფრთხილე, როდესაც დავტოვებ რედაქტირებად გვერდს, დაუმახსოვრებელი ცვლილებებით",
        "tog-prefershttps": "უსაფრთხო კავშირის მუდამ გამოყენება ავტორიზაციის შემდეგ",
        "underline-always": "მუდამ",
        "viewsourcetext": "თქვენ შეგიძლიათ ნახოთ ამ გვერდის საწყისი ფაილი და მისი ასლი შექმნათ.",
        "viewyourtext": "თქვენ შეგიძლიათ იხილოთ და დააკოპიროთ  <strong>თქვენი რედაქტირებების</strong> საწყისი ტექსტი ამ გვერდზე:",
        "protectedinterface": "ეს გვერდი წარმოადგენს ტექსტურ ინტერფეისს პროგრამული უზრუნველყოფისათვის და დაცულია ვანდალიზმის აღკვეთის მიზნით.",
-       "editinginterface": "'''ყურადღება:''' თქვენ არედაქტირებთ გვერდს, რომელიც პროგრამის ინტერფეისის ტექსტს შეიცავს. \nამ გვერდზე განხორციელებული რედაქტირება გამოიწვევს ამ ვიკის სხვა მომხმარებელთა სამუშაო ინტერფეისის შეცვლასაც. \nიმისათვის, რომ დაამატოთ ან შეცვალოთ თარგმანები ყველა ვიკიში, გთხოვთ, გამოიყენოთ მედიავიკის ლოკალიზაციის პროექტი [//translatewiki.net/ translatewiki.net].",
-       "translateinterface": "თარგმანების ყველა ვიკიში დასამატებლად ან შესაცვლელად, გთხოვთ გამოიყენოთ მედიავიკებისლოკალიზაციის პროექტი [//translatewiki.net/ translatewiki.net].",
+       "editinginterface": "'''ყურადღება:''' თქვენ არედაქტირებთ გვერდს, რომელიც პროგრამის ინტერფეისის ტექსტს შეიცავს. \nამ გვერდზე განხორციელებული რედაქტირება გამოიწვევს ამ ვიკის სხვა მომხმარებელთა სამუშაო ინტერფეისის შეცვლასაც. \nიმისათვის, რომ დაამატოთ ან შეცვალოთ თარგმანები ყველა ვიკიში, გთხოვთ, გამოიყენოთ მედიავიკის ლოკალიზაციის პროექტი [https://translatewiki.net/ translatewiki.net].",
+       "translateinterface": "თარგმანების ყველა ვიკიში დასამატებლად ან შესაცვლელად, გთხოვთ გამოიყენოთ მედიავიკებისლოკალიზაციის პროექტი [https://translatewiki.net/ translatewiki.net].",
        "cascadeprotected": "ეს გვერდი რედაქტირებისგან დაცულია, რადგან იგი ჩართულია შემდეგ {{PLURAL:$1|გვერდში, რომლის|გვერდებში, რომელთა}} დასაცავადაც ჩართულია პარამეტრი \"იერარქიული\":\n$2",
        "namespaceprotected": "თქვენ არ გაქვთ '''$1''' სახელთა სივრცეში გვერდების რედაქტირების უფლება.",
        "customcssprotected": "თქვენ არ გაქვთ ამ CSS გვერდის რედაქტირების უფლება, ვინაიდან ის სხვა მომხმარებლის პირად კონფიგურაციას შეიცავს.",
        "password-change-forbidden": "თქვენ არ შეგიძლიათ ამ ვიკიში პაროლის შეცვლა.",
        "externaldberror": "საგარეო მონაცემთა ბაზაში აუტენტიფიკაციის შეცდომაა, ან თქვენ არ გაქვთ საკმარისი უფლებები საგარეო ანგარიშში ცვლილებების შესატანად.",
        "login": "შესვლა",
+       "login-security": "დაადასტურეთ თქვენი ავთენტურობა",
        "nav-login-createaccount": "შესვლა / რეგისტრაცია",
        "userlogin": "შესვლა/ანგარიშის შექმნა",
        "userloginnocreate": "შესვლა",
        "userlogin-resetpassword-link": "დაგავიწყდათ პაროლი?",
        "userlogin-helplink2": "დახმარება:შესვლა",
        "userlogin-loggedin": "თქვენ უკვე შეხვედით როგორც {{GENDER:$1|$1}}.\nგამოიყენეთ ფორმა ქვემოთ, რათა შეხვიდეთ სხვა ანგარიშიდან.",
+       "userlogin-reauth": "თქვენ კვლავ უნდა შეხვიდეთ სისტემაში რათა შემოწმდეს რომ ხართ $1",
        "userlogin-createanother": "სხვა ანგარიშის შექმნა",
        "createacct-emailrequired": "ელ. ფოსტის მისამართი",
        "createacct-emailoptional": "ელ. ფოსტის მისამართი (არასავალდებულო)",
        "createacct-email-ph": "შეიყვანეთ თქვენი ელ. ფოსტის მისამართი",
        "createacct-another-email-ph": "შეიყვანეთ ელ.ფოსტის მისამართი",
        "createaccountmail": "გამოიყენეთ შემთხვევითობის მეთოდით შერჩეული დროებითი პაროლი და გააგზავნეთ მითითებულ ელ.ფოსტის მისამართზე",
+       "createaccountmail-help": "შეიძლება იქნას გამოყენებული სხვისი პირონების ანგარიშის შექმნისთვის მისი პაროლის ცოდნის გარეშე",
        "createacct-realname": "ნამდვილი სახელი (არააუცილებელი)",
        "createaccountreason": "მიზეზი:",
        "createacct-reason": "მიზეზი",
        "createacct-reason-ph": "რატომ ქმნით ახალ ანგარიშს?",
+       "createacct-reason-help": "მესიჯი რომელიც გამოჩნდება ანგარიშის შექმის აღრიცხვის ჟურნალში",
        "createacct-submit": "შექმენით თქვენი ანგარიში",
        "createacct-another-submit": "ანგარიშის შექმნა",
+       "createacct-continue-submit": "განაგრძე ანგარიშის შექმნა",
+       "createacct-another-continue-submit": "განაგრძე ანგარიშის შექმნა",
        "createacct-benefit-heading": "{{SITENAME}} შექმნილია თქვენნაირი ადამიანების მიერ.",
        "createacct-benefit-body1": "{{PLURAL:$1|რედაქტირება|რედაქტირება}}",
        "createacct-benefit-body2": "{{PLURAL:$1|გვერდი|გვერდი}}",
        "nocookieslogin": "{{SITENAME}} მომხმარებლების შესვლისთვის იყენებს \"ქუქის ჩანაწერს\". თქვენ იგი გათიშეთ. გთხოვთ, ჩართოთ ისინი და ხელმეორედ მოსინჯოთ.",
        "nocookiesfornew": "მომხმარებლის ანგარიში არ შექმნილა, რადგან მისი წყარო ვერ დადასტურდა.\nუზრუნველყოფილი უნდა იყოს ჭდეების აქტიურობა. შემდეგ განაახლეთ გვერდი და სცადეთ ხელახლა",
        "nocookiesforlogin": "{{int:nocookieslogin}}",
+       "createacct-loginerror": "ანგარიში წარმატებით შეიქმნა, თუმცა თქვენ ვერ შეხვალთ სისტემაში ავტომატურად. გთხოვთ გამოიყენოთ [[Special:UserLogin|ეს გვერდი]].",
        "noname": "თქვენს მიერ მითითებული მომხმარებლის სახელი ქმედითი არ არის.",
        "loginsuccesstitle": "სისტემაში შესვლა განხორციელდა",
        "loginsuccess": "'''ამჟამად შესული ხართ {{SITENAME}}-ში როგორც „$1“.'''",
-       "nosuchuser": "á\83\9bá\83\9dá\83\9bá\83®á\83\9bá\83\90á\83 á\83\94á\83\91á\83\94á\83\9aá\83\98 á\83¡á\83\90á\83®á\83\94á\83\9aá\83\90á\83\93 $1 á\83\90á\83  á\83\90á\83 á\83¡á\83\94á\83\91á\83\9dá\83\91á\83¡.\ná\83\9bá\83\9dá\83\9bá\83®á\83\9bá\83\90á\83 á\83\94á\83\91á\83\94á\83\9aá\83\97á\83\90 á\83¡á\83\90á\83®á\83\94á\83\9aá\83\94á\83\91á\83\98 á\83\92á\83 á\83«á\83\9cá\83\9dá\83\91á\83\90á\83\93á\83\98á\83\90 á\83\90á\83¡á\83\9dá\83\94á\83\91á\83\98á\83¡ á\83 á\83\94á\83\92á\83\98á\83¡á\83¢á\83 á\83\90á\83\9bá\83\93á\83\94..\ná\83¨á\83\94á\83\90á\83\9bá\83\9dá\83¬á\83\9bá\83\94á\83\97 á\83¡á\83\90á\83®á\83\94á\83\9aá\83\98á\83¡ á\83\93á\83\90á\83¬á\83\94á\83 á\83\90 á\83\90á\83\9c[[Special:CreateAccount|შექმენით ახალი ანგარიში]].",
+       "nosuchuser": "á\83\9bá\83\9dá\83\9bá\83®á\83\9bá\83\90á\83 á\83\94á\83\91á\83\94á\83\9aá\83\98 á\83¡á\83\90á\83®á\83\94á\83\9aá\83\90á\83\93 $1 á\83\90á\83  á\83\90á\83 á\83¡á\83\94á\83\91á\83\9dá\83\91á\83¡.\ná\83\9bá\83\9dá\83\9bá\83®á\83\9bá\83\90á\83 á\83\94á\83\91á\83\94á\83\9aá\83\97á\83\90 á\83¡á\83\90á\83®á\83\94á\83\9aá\83\94á\83\91á\83¨á\83\98 á\83\90á\83¡á\83\9dá\83\94á\83\91á\83\98á\83¡ á\83 á\83\94á\83\92á\83\98á\83¡á\83¢á\83 á\83¡ á\83\90á\83¥á\83\95á\83¡ á\83\9bá\83\9cá\83\98á\83¨á\83\95á\83\9cá\83\94á\83\9aá\83\9dá\83\91á\83\90.\ná\83¨á\83\94á\83\90á\83\9bá\83\9dá\83¬á\83\9bá\83\94á\83\97 á\83¡á\83\90á\83®á\83\94á\83\9aá\83\98 á\83\90á\83\9c [[Special:CreateAccount|შექმენით ახალი ანგარიში]].",
        "nosuchusershort": "მომხმარებელი სახელით „$1“ არ არსებობს. შეამოწმეთ მართლწერა.",
        "nouserspecified": "საჭიროა მომხმარებლის სახელის მითითება.",
        "login-userblocked": "ეს მომხმარებელი დაბლოკილია. სისტემაში შესვლა არაა ნებადართული.",
        "noemail": "აქ „$1“ მომხმარებლის ელ. ფოსტის მისამართი მითითებული არ არის.",
        "noemailcreate": "თქვენ უნდა მიუთითოთ ელ-ფოსტის კორექტული მისამართი.",
        "passwordsent": "ახალი პაროლი გაიგზავნა ელ-ფოსტით მომხმარებელს \"$1\".\nგთხოვთ შეხვიდეთ სისტემაში მისი მიღების შემდეგ.",
-       "blocked-mailpassword": "á\83\97á\83¥á\83\95á\83\94á\83\9cá\83\98 IP á\83\9bá\83\98á\83¡á\83\90á\83\9bá\83\90á\83 á\83\97á\83\98 á\83 á\83\94á\83\93á\83\90á\83¥á\83¢á\83\98á\83 á\83\94á\83\91á\83\98á\83¡á\83\97á\83\95á\83\98á\83¡ á\83\93á\83\90á\83\91á\83\9aá\83\9dá\83\99á\83\98á\83\9aá\83\98á\83\90, á\83\90á\83\9bá\83\98á\83¢á\83\9dá\83\9b á\83\90á\83  á\83¨á\83\94á\83\92á\83\98á\83«á\83\9aá\83\98á\83\90á\83\97 á\83\9eá\83\90á\83 á\83\9dá\83\9aá\83\98á\83¡ á\83\90á\83¦á\83\93á\83\92á\83\94á\83\9cá\83\98á\83¡ á\83\92á\83\90á\83\9bá\83\9dá\83§á\83\94á\83\9cá\83\94á\83\91á\83\90 á\83\99á\83\9dá\83\9cá\83¤á\83\9aá\83\98á\83¥á\83¢á\83\98á\83¡ á\83\92á\83\90á\83\9bá\83\9d.",
+       "blocked-mailpassword": "á\83\97á\83¥á\83\95á\83\94á\83\9cá\83\98 IP á\83\9bá\83\98á\83¡á\83\90á\83\9bá\83\90á\83 á\83\97á\83\98 á\83\93á\83\90á\83\91á\83\9aá\83\9dá\83\99á\83\98á\83\9aá\83\98á\83\90 á\83 á\83\94á\83\93á\83\90á\83¥á\83¢á\83\98á\83 á\83\94á\83\91á\83\98á\83¡á\83\92á\83\90á\83\9c á\83\93á\83\90 á\83¡á\83\98á\83¡á\83¢á\83\94á\83\9bá\83\98á\83¡ á\83¨á\83\94á\83¡á\83\90á\83«á\83\9aá\83\9d á\83\90á\83 á\83\90á\83\99á\83\94á\83\97á\83\98á\83\9aá\83¡á\83\98á\83\9cá\83\93á\83\98á\83¡á\83\98á\83\94á\83 á\83\98 á\83\92á\83\90á\83\9bá\83\9dá\83§á\83\94á\83\9cá\83\94á\83\91á\83\98á\83¡á\83\92á\83\90á\83\9c á\83\97á\83\90á\83\95á\83\98á\83¡ á\83\90á\83 á\83\98á\83\93á\83\94á\83\91á\83\98á\83¡ á\83\9bá\83\98á\83\96á\83\9cá\83\98á\83\97 á\83\9eá\83\90á\83 á\83\9dá\83\9aá\83\98á\83¡ á\83\90á\83¦á\83\93á\83\92á\83\94á\83\9cá\83\90á\83ª á\83¨á\83\94á\83\96á\83¦á\83£á\83\93á\83£á\83\9aá\83\98á\83\90.",
        "eauthentsent": "A confirmation email has been sent to the specified email address.\nBefore any other email is sent to the account, you will have to follow the instructions in the email, to confirm that the account is actually yours.",
        "throttled-mailpassword": "პაროლის შეხსენება უკვე გაგზავნილია ბოლო {{PLURAL:$1|საათის|$1 საათის}} განმავლობაში.\nბოროტად გამოყენების თავიდან აცილებისთვის, მხოლოდ ერთი შეხსენება იგზავნება ყოველ {{PLURAL:$1|საათში|$1 საათში}}.",
        "mailerror": "შეცდომა ფოსტის გაგზავნაში: $1",
        "createacct-another-realname-tip": "რეალური სახელი არასავალდებულოა.\nთუ თქვენ მას მიუთითებთ, იგი გამოყენებული იქნება იმისათვის, რომ ნაჩვენები იყოს ვის მიერ იყო შეტანილი გვერდის ცვლილება.",
        "pt-login": "შესვლა",
        "pt-login-button": "შესვლა",
+       "pt-login-continue-button": "სისტემაში შესვლის გაგრძელება",
        "pt-createaccount": "ანგარიშის შექმნა",
        "pt-userlogout": "გასვლა",
        "php-mail-error-unknown": "ამოუცნობი შეცდომა PHP-ის mail() ფუნქციაში",
        "botpasswords-invalid-name": "მითითებული მომხმარებელი ბოტის პაროლის გამყოფს (\"$1\").",
        "botpasswords-not-exist": "მომხმარებელ \"$1\"-ს არ აქვს ბოტის პაროლი, სახელად \"$2\".",
        "resetpass_forbidden": "პაროლის შეცვლა შეუძლებელია",
+       "resetpass_forbidden-reason": "პაროლების შეცვლა შეუძლებელია: $1",
        "resetpass-no-info": "კონკრეტულად ამ გვერდთან სამუშაოდ თქვენ უნდა წარადგინოთ თავი სისტემისადმი.",
        "resetpass-submit-loggedin": "პაროლის შეცვლა",
        "resetpass-submit-cancel": "გაუქმება",
        "resetpass-temp-password": "დროებითი პაროლი:",
        "resetpass-abort-generic": "პაროლის შეცვლა შეჩერდა გაფართოების მიერ.",
        "resetpass-expired": "თქვენს პაროლს ვადა გაუვიდა. გთხოვთ, დააყენოთ ახალი.",
-       "resetpass-expired-soft": "თქვენი პაროლის მოქმედების ვადა ამოწურულია და ახლა ის შეცვლილი უნდა იყოს. გთხოვთ, აირჩიეთ ახალი პაროლი ან დააჭირეთ \"{{int:resetpass-submit-cancel}}\", რათა იგი მოგვიანებით შეცვალოთ.",
-       "resetpass-validity-soft": "თქვენი პაროლი არაკორექტულია: $1\n\nგთხოვთ, აირჩიეთ ახალი პაროლი ან დააჭირეთ \"{{int:resetpass-submit-cancel}}\", რათა იგი მოგვიანებით ჩამოყაროთ.",
+       "resetpass-expired-soft": "თქვენი პაროლის მოქმედების ვადა ამოწურულია და ახლა ის შეცვლილი უნდა იყოს. გთხოვთ, აირჩიეთ ახალი პაროლი ან დააჭირეთ \"{{int:authprovider-resetpass-skip-label}}\", რათა იგი მოგვიანებით შეცვალოთ.",
+       "resetpass-validity-soft": "თქვენი პაროლი არაკორექტულია: $1\n\nგთხოვთ, აირჩიეთ ახალი პაროლი ან დააჭირეთ \"{{int:authprovider-resetpass-skip-label}}\", რათა იგი მოგვიანებით ჩამოყაროთ.",
        "passwordreset": "პაროლის აღდგენა",
        "passwordreset-text-one": "შეავსეთ ეს ფორმა, რათა კვლავ დააყენოთ თქვენი პაროლი.",
        "passwordreset-text-many": "{{PLURAL:$1|ელ.ფოსტაზე დროებითი პაროლის მისაღებად შეავსეთ ერთ-ერთი ველი.}}",
        "passwordreset-emailsentusername": "თუ არსებობს მეილი, რომელიც ამ ანგარიშთანაა დაკავშირებული, გაიგზავნება პაროლის თავიდან დასაყენებელი ელექტრონული ფოსტა.",
        "passwordreset-emailsent-capture": "ქვემოთ ნაჩვენები პაროლის თავიდან დასაყენებელი წერილი გაიგზავნა.",
        "passwordreset-emailerror-capture": "ქვემოთ მოცემულია შექმნილი პაროლის დასაყენებელი წერილი, რომლის გაგზავნაც {{GENDER:$2|მომხმარებელთან}} ვერ მოხერხდა: $1 გამო",
+       "passwordreset-emailsent-capture2": "პაროლის გაუქმების შესახებ {{PLURAL:$1|მეილი|მეილები}} გაიგზავნა. {{PLURAL:$1|სახელი და პაროლი|სახელებისა და პაროლების სია}} არის ნაჩვენები ქვემოთ.",
+       "passwordreset-emailerror-capture2": "{{GENDER:$2|მომხმარებელთან}} მეილის გაგზავნა ვერ მოხერხდა: $1 {{PLURAL:$3|სახელი და პაროლი|სახელებისა და პაროლების სია}} არის ნაჩვენები ქვემოთ.",
+       "passwordreset-nocaller": "გამომძახებელი უნდა იყოს მიწოდებული",
+       "passwordreset-nosuchcaller": "გამომძახებელი არ არსებობს: $1",
+       "passwordreset-ignored": "პაროლის გაუქმება არ იქნა შესრულებული. შეიძლება კონფიგურაციაში პროვაიდერი არ იყო გათვალისწინებული?",
+       "passwordreset-invalideamil": "ელ-ფოსტის არასწორი მისამართი",
+       "passwordreset-nodata": "არც მომხმარებლის სახელი და არც ელ-ფოსტის მისამართი არ იყო მოწოდებული",
        "changeemail": "ელ-ფოსტის მისამართის შეცვლა ან წაშლა",
        "changeemail-header": "შეავსეთ ეს ფორმა მეილის შესაცვლელად. თუ გსურთ თქვენი ანგარიში არ იყოს დაკავშირებული არცერთ მეილთან, ახალი მეილის მისამართის ველი დატოვეთ ცარიელი.",
        "changeemail-passwordrequired": "ამ ცვლილების დასადასტურებლად დაგჭირდებათ პაროლის შეყვანა.",
        "minoredit": "მცირე რედაქტირება",
        "watchthis": "უთვალთვალე ამ გვერდს",
        "savearticle": "გვერდის შენახვა",
+       "savechanges": "ცვლილებების შენახვა",
+       "publishpage": "გვერდის გამოქვეყნება",
+       "publishchanges": "ცვლილებების გამოქვეყნება",
        "preview": "წინასწარი გადახედვა",
        "showpreview": "წინასწარი გადახედვის ჩვენება",
        "showdiff": "ცვლილებების ჩვენება",
        "accmailtext": "შემთხვევითი მეთოდით შექმნილი პაროლი მომხმარებლისათვის [[User talk:$1|$1]] გაგზავნილია მისამართზე $2.\n\nავტორიზაციის გავლის შემდეგ შესაძლებელი იქნება ამ ანგარიშის  ''[[Special:ChangePassword|პაროლის შეცვლა]]'' ანგარიშში შესვლის გვერდზე.",
        "newarticle": "(ახალი)",
        "newarticletext": "ბმულის მეშვეობით თქვენ მოხვდით გვერდზე, რომელიც ჯერ არ არსებობს.\nგვერდის შესაქმნელად შეიყვანეთ ინფორმაცია ქვემო ფანჯარაში\n(იხ. [$1 დახმარების გვერდი] დამატებითი ინფორმაციისთვის).\nთუ ამ გვერდზე შეცდომით მოხვდით, დაბრუნდით უკან თქვენი ბრაუზერის მეშვეობით.",
-       "anontalkpagetext": "----''ეს არის ანონიმური მომხმარებლის განხილვის გვერდი, რომელსაც ანგარიში ჯერ არ შეუქმნია ან არ იყენებს მას.\n\nშესაბამისად, ჩვენ მისი ციფრული IP მისამართი უნდა გამოვიყენოთ მისი იდენტიფიცირებისთვის.\n\nამგვარი მისამართი შეიძლება რამდენიმე მომხმარებელმა გამოიყენოს.\n\nთუ თქვენ ანონიმური მომხმარებელი ხართ და თვლით, რომ სხვისთვის გამიზნული მითითება მიიღეთ, გთხოვთ [[Special:CreateAccount|შექმენით ანგარიში ან დარეგისტრირდით]] მომავალში გაუგებრობის თავიდან ასაცილებლად.''",
+       "anontalkpagetext": "----\n<em>ეს არის ანონიმური მომხმარებლის განხილვის გვერდი, რომელსაც ანგარიში ჯერ არ შეუქმნია ან არ იყენებს მას.</em>\n\nშესაბამისად, ჩვენ მისი ციფრული IP მისამართი უნდა გამოვიყენოთ მისი იდენტიფიცირებისთვის.\nამგვარი მისამართი შეიძლება რამდენიმე მომხმარებელმა გამოიყენოს.\n\nთუ თქვენ ხართ ანონიმური მომხმარებელი და თვლით, რომ გაუგებარი მითითებები მიიღეთ, გთხოვთ ან [[Special:UserLogin|შედით სისტემაში]] ან [[Special:CreateAccount|დაარეგისტირიეთ]] თქვენი ანგარიში მომავალში გაუგებრობის თავიდან ასაცილებლად.",
        "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}}|მოძებნოთ ეს სათაური]] სხვა გვერდებზე,\nან <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} მოძებნოთ ჟურნალების შესაბამისი ჩანაწერები].</span> თქვენ არ გაქვთ ამ გვერდის შექმნის ნებართვა.",
        "missing-revision": "ვერსია $1 გვერდისათვის „{{FULLPAGENAME}}“ არ არსებობს.\n\nეს ჩვეულებრივ ხდება მაშინ, თუ მოძველებული ბმულით გადადიხართ გვერდზე, რომელიც წაიშალა.\nდეტალური ინფორმაცია შესაძლებელია იყოს [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} წაშლების ჟურნალში].",
        "userpage-userdoesnotexist": "მომხმარებლის ანგარიში „$1“ არ არსებობს. დარწმუნდით, რომ ნამდვილად გსურთ ამ ანგარიშის შექმნა ან შესწორება.",
        "userpage-userdoesnotexist-view": "მომხმარებელი „$1“ არ არის დარეგისტრირებული.",
        "blocked-notice-logextract": "ეს მომხმარებელი უკვე დაიბლოკა.\nდაბლოკვის მიზეზი შემდეგშია:",
-       "clearyourcache": "'''შენიშვნა:''' შენახვის შემდეგ შესაძლოა დაგჭირდეთ ბრაუზერის ქეშის გაწმენდა ცვლილებების სანახავად. \n* '''Firefox / Safari:''' დააჭირეთ ''Shift'' ''Reload''-ზე დაწკაპებისას, ან დააჭირეთ ''Ctrl-F5'', ან ''Ctrl-R'' (''⌘-R'' Mac-ზე); \n* '''Google Chrome:''' დააჭირეთ ''Ctrl-Shift-R'' (''⌘-Shift-R'' Mac-ზე);\n* '''IE:''' დააჭირეთ ''Ctrl'' ''Refresh''-ზე დაწკაპებისას, ან დააჭირეთ ''Ctrl-F5'';\n* '''Opera''' გაწმინდეთ კეში ''Tools→Preferences''-დან.",
+       "clearyourcache": "<strong>შენიშვნა:</strong> შენახვის შემდეგ შესაძლოა დაგჭირდეთ ბრაუზერის ქეშის გაწმენდა ცვლილებების სანახავად. \n* <strong>Firefox / Safari:</strong> დააჭირეთ <em>Shift</em>  და <em>Reload</em>, ან დააჭირეთ <em>Ctrl-F5</em>, ან <em>Ctrl-R</em> (<em>⌘-R</em> Mac-ზე); \n* <strong>Google Chrome:</strong> დააჭირეთ <em>Ctrl-Shift-R</em> (<em>⌘-Shift-R</em> Mac-ზე);\n* <strong>IE:</strong> დააჭირეთ <em>Ctrl</em> და <em>Refresh</em>, ან დააჭირეთ <em>Ctrl-F5</em>;\n* <strong>Opera</strong> გაწმინდეთ კეში <em>Tools→Preferences</em>-დან.",
        "usercssyoucanpreview": "'''რჩევა:''' შენახვამდე გამოიყენეთ ღილაკი \"{{int:showpreview}}\" თქვენი ახალი CSS ტესტირებისთვის.",
        "userjsyoucanpreview": "'''რჩევა:''' შენახვამდე გამოიყენეთ ღილაკი \"{{int:showpreview}}\" თქვენი ახალი JS ტესტირებისთვის.",
        "usercsspreview": "'''გახსოვდეთ, რომ თქვენ მხოლოდ წინასწარ გადახედვას უყურებთ თქვენს მომხმარებლის CSS-ს, ის ჯერ შენახული არ არის!'''",
        "right-override-export-depth": "გვერდების ექსპორტირება, დაკავშირებული გვერდების ჩათვლით 5-მდე სიიღრმით",
        "right-sendemail": "გაგუგზავნე ელექტრონული ფოსტა სხვა მომხმარებლებს",
        "right-passwordreset": "ელ.ფოსტის ნახვა პაროლის შეცვლით",
-       "right-managechangetags": "[[Special:Tags|tags]] შექმნა და წაშლა მონაცემთა ბაზიდან",
+       "right-managechangetags": "[[Special:Tags|ტეგების]] შექმნა და (დე)აქტივაცია",
        "right-applychangetags": "[[Special:Tags|tags]] მიღება თქვენ ცვლილებებთან ერთად",
        "right-changetags": "თვითნებური [[Special:Tags|tags]] დამატება ან წაშლა ცალკეულ ცვლილებებსა და ჟურნალის ჩანაწერებში",
        "grant-generic": "\"$1\" უფლებები",
        "action-viewmyprivateinfo": "თქვენი პირადი ინფორმაციის ხილვა",
        "action-editmyprivateinfo": "თქვენი პირადი ინფორმაციის რედაქტირება",
        "action-editcontentmodel": "გვერდის კონტენტური მოდელის რედაქტირება",
-       "action-managechangetags": "á\83\93á\83\90á\83¡á\83\90á\83\97á\83\90á\83£á\83 á\83\94á\83\91á\83\98á\83¡ á\83¨á\83\94á\83¥á\83\9bá\83\9cá\83\90 á\83\93á\83\90 á\83¬á\83\90á\83¨á\83\9aá\83\90 á\83\9bá\83\9dá\83\9cá\83\90á\83ªá\83\94á\83\9bá\83\97á\83\90 á\83\91á\83\90á\83\96á\83\98á\83\93á\83\90á\83\9c",
+       "action-managechangetags": "á\83¢á\83\94á\83\92á\83\94á\83\91á\83\98á\83¡ á\83¨á\83\94á\83¥á\83\9bá\83\9cá\83\90 á\83\93á\83\90 (á\83\93á\83\94\83\90á\83¥á\83¢á\83\98á\83\95á\83\90á\83ªá\83\98á\83\90",
        "action-applychangetags": "ტეგების მიღება თქვენ ცვლილებებთან ერთად",
        "action-changetags": "თავისუფალი ტეგების დამატება და წაშლა ცალკეულ ცვლილებებსა და ჟურნალების ჩანაწერებში",
        "nchanges": "$1 ცვლილება",
        "rcshowhidemine": "ჩემი რედაქტირების $1",
        "rcshowhidemine-show": "ჩვენება",
        "rcshowhidemine-hide": "დამალვა",
-       "rcshowhidecategorization": "$1 გვერდის კატეგორიზაცია",
+       "rcshowhidecategorization": "გვერდის კატეგორიზაციის $1",
        "rcshowhidecategorization-show": "ჩვენება",
        "rcshowhidecategorization-hide": "დამალვა",
        "rclinks": "ბოლო $1 ცვლილების ჩვენება უკანასკნელი $2 დღის მანძილზე<br />$3",
        "recentchangeslinked-page": "გვერდის დასახელება:",
        "recentchangeslinked-to": "საპირისპიროდ აჩვენეთ ამ გვერდზე ბმულის მქონე გვერდების ცვლილებები",
        "recentchanges-page-added-to-category": "[[:$1]] დამატებულია კატეგორიაში",
-       "recentchanges-page-added-to-category-bundled": "[[:$1]] და [[Special:WhatLinksHere/$1|{{PLURAL:$2|ერთი გვერდი|$2 გვერდი}}]] დამატებულია კატეგორიაში",
+       "recentchanges-page-added-to-category-bundled": "[[:$1]] დაემატა კატეგორიას, [[Special:WhatLinksHere/$1|ეს გვერდი არის გამოყნებული სხვა გვერდებში]]",
        "recentchanges-page-removed-from-category": "[[:$1]] წაიშალა კატეგორიიდან",
-       "recentchanges-page-removed-from-category-bundled": "[[:$1]] á\83\93á\83\90 [[Special:WhatLinksHere/$1|{{PLURAL:$2|á\83\94á\83 á\83\97á\83\98 á\83\92á\83\95á\83\94á\83 á\83\93á\83\98|$2 á\83\92á\83\95á\83\94á\83 á\83\93á\83\98}}]] á\83¬á\83\90á\83\98á\83¨á\83\90á\83\9aá\83\90 á\83\99á\83\90á\83¢á\83\94á\83\92á\83\9dá\83 á\83\98á\83\98á\83\93á\83\90á\83\9c",
+       "recentchanges-page-removed-from-category-bundled": "[[:$1]] á\83\90á\83\9bá\83\9dá\83\95á\83\90á\83 á\83\93á\83\90 á\83\99á\83\90á\83¢á\83\94á\83\92á\83\9dá\83 á\83\98á\83\98á\83\93á\83\90á\83\9c. [[Special:WhatLinksHere/$1|á\83\94á\83¡ á\83\92á\83\95á\83\94á\83 á\83\93á\83\98 á\83\92á\83\90á\83\9bá\83\9dá\83\98á\83§á\83\94á\83\9cá\83\94á\83\91á\83\90 á\83¡á\83®á\83\95á\83\90 á\83\92á\83\95á\83\94á\83 á\83\93á\83\94á\83\91á\83¨á\83\98]]",
        "autochange-username": "მედიავიკის ავტომატური ცვლილება",
        "upload": "ფაილის დამატება",
        "uploadbtn": "ფაილის დამატება",
        "uploadstash-refresh": "ფაილების სიის განახლება",
        "invalid-chunk-offset": "არასწორი საწყისი წერტილი",
        "img-auth-accessdenied": "მოქმედება აკრძალულია",
-       "img-auth-nopathinfo": "დაკარგულია PATH_INFO.\nთქვენი სერვერი არ არის მომართული ამ ინფორმაციის გადასაცემად.\nშესაძლოა, ის მუშაობს CGI-ის ბაზაზე და არ გააჩნია img_auth მხარდაჭერა.\n[//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization იხილეთ სურათის ავტორიზაცია.]",
+       "img-auth-nopathinfo": "დაკარგულია PATH_INFO.\nთქვენი სერვერი არ არის მომართული ამ ინფორმაციის გადასაცემად.\nშესაძლოა, ის მუშაობს CGI-ის ბაზაზე და არ გააჩნია img_auth მხარდაჭერა.\n[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization იხილეთ სურათის ავტორიზაცია.]",
        "img-auth-notindir": "მოთხოვნილი გზა არ შეესაბამება ატვირთვის ფოლდერს.",
        "img-auth-badtitle": "შეუძლებელია სწორი სათაურის შექმნა \"$1\"-დან.",
        "img-auth-nologinnWL": "თქვენ არ შესულხართ სისტემაში, ხოლო «$1» არ არის თეთრ სიაში.",
        "apisandbox": "API-ს სავარჯიშო",
        "apisandbox-jsonly": "API-ის სავარჯიშოს გამოსაყენებლად საჭიროა JavaScript.",
        "apisandbox-api-disabled": "API ამ საიტზე გამორთულია.",
-       "apisandbox-intro": "გამოიყენეთ ეს გვერდი, თუ გსურთ მოსინჯოთ <strong>MediaWiki web service API</strong>.\nიხილეთ [[mw:API:Main page|API დოკუმენტაცია]] სხვა დეტალებისათვის.\nმაგალითი: [//www.mediawiki.org/wiki/API#A_simple_example მიიღეთ მთავარი გვერდის შინაარსი]. შეგიძლიათ ნახოთ სხვა მაგალითებიც.\n\nგაითვალისწინეთ, რომ თუმცა ეს სავარჯიშოა, თქვენმა მოქმედებამ შესაძლოა შეცვალოს ვიკის გვერდი.",
+       "apisandbox-intro": "გამოიყენეთ ეს გვერდი, თუ გსურთ მოსინჯოთ <strong>MediaWiki web service API</strong>.\nიხილეთ [[mw:API:Main page|API დოკუმენტაცია]] სხვა დეტალებისათვის.\nმაგალითი: [https://www.mediawiki.org/wiki/API#A_simple_example მიიღეთ მთავარი გვერდის შინაარსი]. შეგიძლიათ ნახოთ სხვა მაგალითებიც.\n\nგაითვალისწინეთ, რომ თუმცა ეს სავარჯიშოა, თქვენმა მოქმედებამ შესაძლოა შეცვალოს ვიკის გვერდი.",
        "apisandbox-fullscreen": "პანელის გაშლა",
        "apisandbox-fullscreen-tooltip": "პანელის გაშლა ისე, რომ ბრაუზერის მთელი ფანფარა დაიკავოს.",
        "apisandbox-unfullscreen": "გვერდის ჩვენება",
        "editcomment": "რედაქტირება განმარტებული იყო როგორც: <em>$1</em>.",
        "revertpage": "[[Special:Contributions/$2|$2]]-ის რედაქტირება გაუქმდა; აღდგა ბოლოს [[User:$1|$1]]-ის მიერ რედაქტირებული ვერსია",
        "revertpage-nouser": "მომხმარებლის (მომხმარებლის სახელი დამალულია) ცვლილებები დაბრუნებულია ვერსიაზე {{GENDER:$1|[[User:$1|$1]]}}",
-       "rollback-success": "á\83\92á\83\90á\83£á\83¥á\83\9bá\83\93á\83\90 á\83 á\83\94á\83\93á\83\90á\83¥á\83¢á\83\98á\83 á\83\94á\83\91á\83\90 $1; á\83\93á\83\90á\83\91á\83 á\83£á\83\9cá\83\94á\83\91ა ვერსიაზე $2.",
+       "rollback-success": "á\83\92á\83\90á\83£á\83¥á\83\9bá\83\93á\83\90 á\83 á\83\94á\83\93á\83\90á\83¥á\83¢á\83\98á\83 á\83\94á\83\91á\83\90 $1; á\83\93á\83\90á\83\91á\83 á\83£á\83\9cá\83\93ა ვერსიაზე $2.",
        "sessionfailure-title": "სეანსის შეცდომა",
        "sessionfailure": "ჩანს, რომ პრობლემაა თქვენი რეგისტრაციის სესიისათვის;\nეს მოქმედება შეჩერდა თქვენი სესიაში შემოჭრის თავიდან ასაცილებლად.\nგთხოვთ, დააწკაპუნოთ ღილაკს „უკან“ და თავიდან ჩართოთ გვერდი, რომლიდანაც შემოხვედით და სცადოთ განმეორებით.",
        "changecontentmodel": "გვერდის კონტენტური მოდელის შეცვლა",
        "allmessagesname": "დასახელება",
        "allmessagesdefault": "სტანდარტული ტექსტი",
        "allmessagescurrent": "მიმდინარე ტექსტი",
-       "allmessagestext": "ეს არის სისემურ შეტყობინებათა სია «MediaWiki» სახელთა სივრცეში.\nგთხოვთ ეწვიოთ  [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation ლოკალიზაციის აღმწერ] გვერდს [//translatewiki.net translatewiki.net] პროექტს, თუ გსურთ MediaWiki ლოკალიზაციაში წვლილის შეტანა.",
+       "allmessagestext": "ეს არის სისემურ შეტყობინებათა სია «MediaWiki» სახელთა სივრცეში.\nგთხოვთ ეწვიოთ  [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation ლოკალიზაციის აღმწერ] გვერდს [https://translatewiki.net translatewiki.net] პროექტს, თუ გსურთ MediaWiki ლოკალიზაციაში წვლილის შეტანა.",
        "allmessagesnotsupportedDB": "ამ გვერდის გამოყენება შეუძლებელია, რადგან\n<strong>$wgUseDatabaseMessages</strong> გამორთულია.",
        "allmessages-filter-legend": "ფილტრი",
        "allmessages-filter": "ფილტრი ცვლილებების სტატუსით:",
        "logentry-protect-protect-cascade": "$1-მ {{GENDER:$2|დაიცვა}} $3 $4 [კასკადური]",
        "logentry-protect-modify": "$1-მ {{GENDER:$2|შეცვალა}} დაცვის დონე $3 $4-სთვის",
        "logentry-protect-modify-cascade": "$1 {{GENDER:$2|შეცვალა}} დაცვის დონე $3 $4 [კასკადური]",
-       "logentry-rights-rights": "á\83\9bá\83\9dá\83\9bá\83®á\83\9bá\83\90á\83 á\83\94á\83\91á\83\94á\83\9aá\83\9bá\83\90 $1 {{GENDER:$2|á\83¨á\83\94á\83ªá\83\95á\83\90á\83\9aá\83\90}} á\83¯á\83\92á\83£á\83¤á\83\98á\83¡ á\83¬á\83\94á\83\95á\83 á\83\9dá\83\91á\83\90 $3-á\83\97á\83\95á\83\98ს $4-დან $5-ზე",
+       "logentry-rights-rights": "á\83\9bá\83\9dá\83\9bá\83®á\83\9bá\83\90á\83 á\83\94á\83\91á\83\94á\83\9aá\83\9bá\83\90 $1 {{GENDER:$2|á\83¨á\83\94á\83£á\83ªá\83\95á\83\90á\83\9aá\83\90}} á\83¯á\83\92á\83£á\83¤á\83\98 $3-ს $4-დან $5-ზე",
        "logentry-rights-rights-legacy": "მომხმარებელმა $1 {{GENDER:$2|შეცვალა}} ჯგუფის წევრობა $3-თვის",
        "logentry-rights-autopromote": "მომხმარებელი $1 ავტომატურად იქნა {{GENDER:$2|გადაყვანილი}} $4–დან $5–ში",
        "logentry-upload-upload": "მომხმარებელმა $1 {{GENDER:$2|ატვირთა}} $3",
        "mw-widgets-dateinput-placeholder-month": "წწწწ-თთ",
        "mw-widgets-titleinput-description-new-page": "გვერდი ჯერ არ არსებობს",
        "mw-widgets-titleinput-description-redirect": "გადამისამართება $1-ზე",
-       "api-error-blacklisted": "გთხოვთ, აირჩიეთ სხვა, აღწერილობითი სათაური.",
        "sessionmanager-tie": "შეუძლებელია მრავალი მოთხოვნის ავთენთიფიკაციის ტიპების გაერთიანება: $1.",
        "sessionprovider-generic": "$1 სესიები",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "cookie-სთან დაკავშირებული სესიები",
index 226f578..0dba198 100644 (file)
        "actionthrottledtext": "Spamg'a qarsı gu'res esabında, bunday ha'reketti qısqa waqıtta dım ko'p ma'rte bejeriwin'iz sheklenedi, ha'mde siz usı limitten o'tip ketkensiz.\nBirneshe minuttan keyin qaytadan ha'reket qılıp ko'rin'.",
        "protectedpagetext": "Bul bet o'zgertiwdin' ha'm basqa ha'reketlerdin' aldın alıw ushın qulplang'an.",
        "viewsourcetext": "Bul bettin' deregin qarawın'ızg'a ha'mde ko'shirip alıwın'ızg'a boladı:",
-       "editinginterface": "'''Esletpe:''' Siz ishinde MediaWiki sistema xabarı bar bolg'an betti o'zgertip atırsız.\nBul bettin' o'zgeriwi basqa paydalanıwshılardın' sırtqı interfeysine ta'sir etedi.\nBul xabardın' awdarmasın qosıw yamasa o'zgertiw ushın,  MediaWiki programmasının' lokallastırıw [//translatewiki.net/wiki/Main_Page?setlang=kaa translatewiki.net proektinen] paydalanın'.",
+       "editinginterface": "'''Esletpe:''' Siz ishinde MediaWiki sistema xabarı bar bolg'an betti o'zgertip atırsız.\nBul bettin' o'zgeriwi basqa paydalanıwshılardın' sırtqı interfeysine ta'sir etedi.\nBul xabardın' awdarmasın qosıw yamasa o'zgertiw ushın,  MediaWiki programmasının' lokallastırıw [https://translatewiki.net/wiki/Main_Page?setlang=kaa translatewiki.net proektinen] paydalanın'.",
        "namespaceprotected": "'''$1''' isimler ko'pligindegi betlerdi o'zgertiwge ruxsatın'ız joq.",
        "ns-specialprotected": "\"{{ns:special}}:\" isimler ko'pligindegi betler o'zgertilmeydi",
        "titleprotected": "Bul atamanı jaratıw [[User:$1|$1]] ta'repinen qorg'alg'an.\nKeltirilgen sebep: <em>$2</em>.",
        "allmessagesname": "Atama",
        "allmessagesdefault": "Defolt tekst",
        "allmessagescurrent": "Ha'zirgi tekst",
-       "allmessagestext": "Bul {{ns:mediawiki}} isimler ko'pligindegi bar bolg'an sistema xabarları dizimi.\nPlease visit [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] and [//translatewiki.net translatewiki.net] if you wish to contribute to the generic MediaWiki localisation.",
+       "allmessagestext": "Bul {{ns:mediawiki}} isimler ko'pligindegi bar bolg'an sistema xabarları dizimi.\nPlease visit [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] and [https://translatewiki.net translatewiki.net] if you wish to contribute to the generic MediaWiki localisation.",
        "thumbnail-more": "U'lkeytiw",
        "filemissing": "Fayl tabılmadı",
        "thumbnail_error": "Miniatyura jaratıw qa'teligi: $1",
index 3daac22..cd5ff53 100644 (file)
        "allmessagesname": "Isem",
        "allmessagesdefault": "Aḍris ameslugen",
        "allmessagescurrent": "Aḍris n tura",
-       "allmessagestext": "Wagi d-umuɣ n inzan yestufan deg tallunt MediaWiki.\nẒeṛ [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] dɣa [//translatewiki.net translatewiki.net] ma tebɣiḍ ad ɛiweneḍ i usideg imcettel n MediaWiki.",
+       "allmessagestext": "Wagi d-umuɣ n inzan yestufan deg tallunt MediaWiki.\nẒeṛ [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] dɣa [https://translatewiki.net translatewiki.net] ma tebɣiḍ ad ɛiweneḍ i usideg imcettel n MediaWiki.",
        "allmessagesnotsupportedDB": "'''{{ns:special}}:Allmessages''' ut yezmir ara ad yettuseqdac axaṭer '''$wgUseDatabaseMessages''' yettwakkes.",
        "allmessages-filter-legend": "Tastayt",
        "allmessages-filter": "Ṣeffi s addad n ubeddil :",
index 2a9aad5..ffff096 100644 (file)
        "viewsourcetext": "Мы напэкӀуэцӀым и нэхъыщхьэ тхылъыр мыбдежьым уэплъыфыну, и копиэри ипхыфыну:",
        "viewyourtext": "Мы напэкӀуэцӀым '''уи гъэтэрызыгъуэхэм''' я тхылъым уеплъыфынущ, тхылъым и копиэри пщӀыфынущ:",
        "protectedinterface": "Мы напэкӀуэцӀым интерфейс тхылъ хэтщ, программэтыныгъэм еуэ. Хьэуэйн имыӀэн щхьэкӀэ, и гъэтэрэзыныр теубыдауэ щытщ.",
-       "editinginterface": "'''Гу лъытэ:''' Бгъэтэрэз напэкӀуэцӀым интерфэйс тхылъ хэтщ, программэтыгъэм еуэ.\nИ зэхъуэкӀыгъуэм интерфэйсым и сурэтым хэуэну адрей цӀыхухэтхэм щхьэкӀэ.\nЗэдзэкӀыным шъхьэкӀэ къэбгъэсэбэпыну нэхъыфӀыр [//translatewiki.net/wiki/Main_Page?setlang=ru translatewiki.net], MediaWiki-м и локализациэм и проэктщ.",
+       "editinginterface": "'''Гу лъытэ:''' Бгъэтэрэз напэкӀуэцӀым интерфэйс тхылъ хэтщ, программэтыгъэм еуэ.\nИ зэхъуэкӀыгъуэм интерфэйсым и сурэтым хэуэну адрей цӀыхухэтхэм щхьэкӀэ.\nЗэдзэкӀыным шъхьэкӀэ къэбгъэсэбэпыну нэхъыфӀыр [https://translatewiki.net/wiki/Main_Page?setlang=ru translatewiki.net], MediaWiki-м и локализациэм и проэктщ.",
        "cascadeprotected": "ЗэхъуэкӀыныгъэм щыхъумауэ щыт напэкӀуэцӀыр, хэгъэхьауэ щыт {{PLURAL:$1|яужкӀэ напэкӀуэцӀ итым| яужкӀэ напэкӀуэцӀ итхэм}} каскад хъумэныгъэм:\n$2",
        "namespaceprotected": "ПӀалъэ уиӀэкъым напэкӀуэцӀ '''$1''' хэтхэр бгъэтэрэзын.",
        "ns-specialprotected": "Специал напэкӀуэцӀхэр гъэтэрэзын хъунукъым.",
index db9d962..e8d7ee9 100644 (file)
        "viewsourcetext": "تو صرف مضمونو لوڑیکو بوس وا ھو نقل کوریکو بوس:",
        "viewyourtext": "تو ھیہ موادو لوڑیکو بوس وا ھمو کاپی کوریکو بوس <strong>تہ  ترامیم</strong> ھیہ صفحہا۔",
        "protectedinterface": "ھیہ صفحہ مصنع‌لطیفو بچے سطح‌البینی متن فراہم کورویان، وا  ناجائزاستعمالو سدِبابو بچے ھمو قلف لیگینو بیتی شیر",
-       "editinginterface": "\"'''خبردار:''' تو ای ھش صفحہو تدوینو کوروسان کہ ھیہ مصنع‌لطیفو بچے سطح‌البینی متن فراہم کورویان۔ ھیہ صفحہا کاردو ترمیم، دیگر ممبارانن بچے سطح‌البینو تبدیل کوروی۔\nبراہِ کرم، ترجمہ کوریکو بچے  [//translatewiki.net/wiki/Main_Page?setlang=en '''بیٹاویکی'''] (میڈیاویکی مقامیانی منصوبو) استعمال کورے.\",",
-       "translateinterface": "تمام ویکیپیڈا تبدیلی یا شامل کوریکو بچے، ھمو استعمال کورے [//translatewiki.net/ translatewiki.net]، میڈیا ویکی دارالترجمہ.",
+       "editinginterface": "\"'''خبردار:''' تو ای ھش صفحہو تدوینو کوروسان کہ ھیہ مصنع‌لطیفو بچے سطح‌البینی متن فراہم کورویان۔ ھیہ صفحہا کاردو ترمیم، دیگر ممبارانن بچے سطح‌البینو تبدیل کوروی۔\nبراہِ کرم، ترجمہ کوریکو بچے  [https://translatewiki.net/wiki/Main_Page?setlang=en '''بیٹاویکی'''] (میڈیاویکی مقامیانی منصوبو) استعمال کورے.\",",
+       "translateinterface": "تمام ویکیپیڈا تبدیلی یا شامل کوریکو بچے، ھمو استعمال کورے [https://translatewiki.net/ translatewiki.net]، میڈیا ویکی دارالترجمہ.",
        "namespaceprotected": "\"تتے '''$1''' فضائے نامہ صفحاتن تدوینو کوریکو اِجازت نیکی.\",",
        "mycustomcssprotected": "تے ھیہ سی ایس ایس (CSS) صفحہا ترمیم کوریکو اختیار نیکی۔",
        "mycustomjsprotected": "تتے ھیہ جاوا اسکپرٹ (JavaScript) صفحہا ترمیم کوریکو اختیار نیکی۔",
index 5c72e48..f1d8048 100644 (file)
        "protectedpagetext": "Na pele vurnaisu rê qapan biya.",
        "viewsourcetext": "Sıma şikinê çımê na pele bıvênê u kopya kerê:",
        "protectedinterface": "Na pele ''software'' rê meqalunê caunê bırnau dana, u qapana ke suıstımalu rê engel bo.",
-       "editinginterface": "Teme:''' Sıma hawo jü pela ke serba nustê meqalunê caunê bırnau dana, vurnenê.\nVurnaisê na pele karberunê binu rê serpela karberi kena ke bıasno.\nSerba çarnaişi, yardımê [//translatewiki.net/wiki/Main_Page?setlang=kiu translatewiki.net]i ra procêdoskerdene rê diqet kerê.",
+       "editinginterface": "Teme:''' Sıma hawo jü pela ke serba nustê meqalunê caunê bırnau dana, vurnenê.\nVurnaisê na pele karberunê binu rê serpela karberi kena ke bıasno.\nSerba çarnaişi, yardımê [https://translatewiki.net/wiki/Main_Page?setlang=kiu translatewiki.net]i ra procêdoskerdene rê diqet kerê.",
        "cascadeprotected": "Na pele esterıtene ra sıtar biya, çıke na zerrê {{PLURAL:$1|pela ke|pelunê ke}} dera/derê be \"cascading\" opsiyoni kılit biya, $2 de bena ra.",
        "namespaceprotected": "'''$1''' ''namespace'' de desturê sıma be vurnaisê pelu çino.",
        "ns-specialprotected": "Pelê xususi nêvurrinê.",
index bd17e30..b2a514f 100644 (file)
        "protectedpagetext": "وڭدەۋدى قاقپايلاۋ ٴۇشىن بۇل بەت قۇلىپتالىنعان.",
        "viewsourcetext": "بۇل بەتتىڭ قاينار كوزىن قاراۋىڭىزعا جانە كوشىرىپ الۋڭىزعا بولادى:",
        "protectedinterface": "بۇل بەت باعدارلامالىق جاساقتامانىڭ تىلدەسۋ ٴماتىنىن جەتىستىرەدى, سوندىقتان قىيياناتتى قاقپايلاۋ ٴۇشىن وزگەرتۋى قۇلىپتالعان.",
-       "editinginterface": "'''قۇلاقتاندىرۋ:''' باعدارلامالىق جاساقتامانىڭ تىلدەسۋ ٴماتىنىن جەتىستىرەتىن بەتىن وڭدەپ جاتىرسىز.\nبۇل بەتتىڭ وزگەرتۋى باسقا قاتىسۋشىلارعا پايدالانۋشىلىق تىلدەسۋى قالاي كورىنەتىنە اسەر ەتەدى.\nاۋدارمالار ٴۇشىن, MediaWiki باعدارلاماسىن جەرسىندىرۋ [//translatewiki.net/wiki/Main_Page?setlang=kk translatewiki.net جوباسى] ارقىلى قاراپ شەشىڭىز.",
+       "editinginterface": "'''قۇلاقتاندىرۋ:''' باعدارلامالىق جاساقتامانىڭ تىلدەسۋ ٴماتىنىن جەتىستىرەتىن بەتىن وڭدەپ جاتىرسىز.\nبۇل بەتتىڭ وزگەرتۋى باسقا قاتىسۋشىلارعا پايدالانۋشىلىق تىلدەسۋى قالاي كورىنەتىنە اسەر ەتەدى.\nاۋدارمالار ٴۇشىن, MediaWiki باعدارلاماسىن جەرسىندىرۋ [https://translatewiki.net/wiki/Main_Page?setlang=kk translatewiki.net جوباسى] ارقىلى قاراپ شەشىڭىز.",
        "cascadeprotected": "بۇل بەت وڭدەۋدەن قورعالعان, سەبەبى بۇل كەلەسى «باۋلى قورعاۋى» قوسىلعان {{PLURAL:$1|بەتتىڭ|بەتتەردىڭ}} كىرىكبەتى:\n$2",
        "namespaceprotected": "'''$1''' ەسىم اياسىنداعى بەتتەردى وڭدەۋ ٴۇشىن رۇقساتىڭىز جوق.",
        "ns-specialprotected": "{{ns:special}} ەسىم اياسىنداعى بەتتەر وڭدەلىنبەيدى",
        "allmessagesname": "اتاۋى",
        "allmessagesdefault": "ادەپكى ٴماتىنى",
        "allmessagescurrent": "اعىمدىق ٴماتىنى",
-       "allmessagestext": "مىندا {{ns:mediawiki}} ەسىم اياسىندا جەتىمدى جۇيە حابار ٴتىزىمى بەرىلەدى.\nەگەر امبەباپ MediaWiki جەرسىندىرۋگە ۇلەس قوسقىڭىز كەلسە [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki جەرسىندىرۋ بەتىنە] جانە [//translatewiki.net translatewiki.net جوباسىنا] بارىپ شىعىڭىز.",
+       "allmessagestext": "مىندا {{ns:mediawiki}} ەسىم اياسىندا جەتىمدى جۇيە حابار ٴتىزىمى بەرىلەدى.\nەگەر امبەباپ MediaWiki جەرسىندىرۋگە ۇلەس قوسقىڭىز كەلسە [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki جەرسىندىرۋ بەتىنە] جانە [https://translatewiki.net translatewiki.net جوباسىنا] بارىپ شىعىڭىز.",
        "allmessagesnotsupportedDB": "'''$wgUseDatabaseMessages''' وشىرىلگەن سەبەبىنەن '''{{ns:special}}:AllMessages''' بەتى قولدانىلمايدى.",
        "thumbnail-more": "ۇلكەيتۋ",
        "filemissing": "جوعالعان فايل",
index 0499518..d80554d 100644 (file)
@@ -33,6 +33,7 @@
        "tog-watchdefault": "Мен өңдеген беттерді және файлдарды бақылау тізіміне қосу",
        "tog-watchmoves": "Мен жылжытқан беттерді және файлдарды бақылау тізіміне қосу",
        "tog-watchdeletion": "Мен жойған беттерді және файлдарды бақылау тізіміне қосу",
+       "tog-watchuploads": "Бақылау тізіміме мен жүктеген файлдарды қосу",
        "tog-watchrollback": "Мен шегіндіруін орындаған беттерді бақылау тізіміме қосу",
        "tog-minordefault": "Әдепкі бойынша барлық өңдемелерді шағын деп белгілеу",
        "tog-previewontop": "Қарап шығу аумағын өңдеу терезесінің жоғарғы жағында көрсету",
        "protectedpagetext": "Бұл бет өңдеу немесе басқа әрекеттерді болдырмау үшін қорғалған.",
        "viewsourcetext": "Бұл беттің қайнарын қарауыңызға және көшіріп алуыңызға болады.",
        "viewyourtext": "Осы беттен <strong>өңдемелеріңіздің</strong> қайнарын қарай және көшіре аласыз.",
-       "protectedinterface": "Бұл бет осы уикидің бағдарламалық жасақтамасы үшін интерфейс мәтінін қамтамасыз етеді және қиянаттауды болдырмау үшін қорғалған. Барлық уикилер үшін аудармаларды қосу немесе өзгерту үшін [//translatewiki.net/ translatewiki.net] MediaWiki жерсіндіру жобасын қолданыңыз.",
+       "protectedinterface": "Бұл бет осы уикидің бағдарламалық жасақтамасы үшін интерфейс мәтінін қамтамасыз етеді және қиянаттауды болдырмау үшін қорғалған. Барлық уикилер үшін аудармаларды қосу немесе өзгерту үшін [https://translatewiki.net/ translatewiki.net] MediaWiki жерсіндіру жобасын қолданыңыз.",
        "editinginterface": "<strong>Ескерту:</strong> Бағдарламалық жасақтаманың тілдесу мәтінін жетістіретін бетін өңдеп жатырсыз.\nБұл беттің өзгертілуі басқа қатысушыларға пайдаланушылық интерфейсін қалай көрінетіне әсер етеді.",
-       "translateinterface": "Барлық уикилерге аудармаларды қосу немесе өзгерту үшін [//translatewiki.net/ translatewiki.net] МедиаУики жерсіндіру жобасын қолданыңыз.",
+       "translateinterface": "Барлық уикилерге аудармаларды қосу немесе өзгерту үшін [https://translatewiki.net/ translatewiki.net] МедиаУики жерсіндіру жобасын қолданыңыз.",
        "cascadeprotected": "Бұл бет өңдеуден қорғалған, себебі бұл келесі «баулы қорғауы» қосылған {{PLURAL:$1|бетке|беттерге}} кірістірілген:\n$2",
        "namespaceprotected": "<strong>$1</strong> есім кеңістігіндегі беттерді өңдеу рұқсатыңыз жоқ.",
        "customcssprotected": "Сіздің бұл CSS бетін өңдеуге рұқсатыңыз жоқ, себебі мұнда өзге қатысушының жеке баптауларынан тұрады.",
        "resetpass-temp-password": "Уақытша құпия сөз:",
        "resetpass-abort-generic": "Құпия сөзді өзгерту кеңейтілім арқылы доғарылды.",
        "resetpass-expired": "Құпия сөзіңіз бітуге таяу. Кіру үшін жаңа құпия сөзіңізді орнатыңыз.",
-       "resetpass-expired-soft": "Құпия сөзіңіз бітуге таяу және қайта орнатуды қажет етеді. Қазір жаңа құпия сөзіңізді таңдаңыз немесе «{{int:resetpass-submit-cancel}}» дегенді басып қайта орнатуды кейінге қалдырыңыз.",
-       "resetpass-validity-soft": "Сіздің құпия сөзіңіз жарамды емес: $1\n\n\nҚазір жаңа құпия сөзіңізді таңдағыз немесе «{{int:resetpass-submit-cancel}}» дегенді басып қайта орнатуды кейінге қалдырыңыз.",
+       "resetpass-expired-soft": "Құпия сөзіңіз бітуге таяу және қайта орнатуды қажет етеді. Қазір жаңа құпия сөзіңізді таңдаңыз немесе «{{int:authprovider-resetpass-skip-label}}» дегенді басып қайта орнатуды кейінге қалдырыңыз.",
+       "resetpass-validity-soft": "Сіздің құпия сөзіңіз жарамды емес: $1\n\n\nҚазір жаңа құпия сөзіңізді таңдағыз немесе «{{int:authprovider-resetpass-skip-label}}» дегенді басып қайта орнатуды кейінге қалдырыңыз.",
        "passwordreset": "Құпия сөзді қайтару",
        "passwordreset-text-one": "Уақытша құпия сөзіңізді электрон пошта арқылы қабылдау үшін бұл пішінді толтырыңыз.",
        "passwordreset-text-many": "{{PLURAL:$1|Е-пошта арқылы уақытша құпия сөзді қабылдау үшін жолақтардың бірін толтырыңыз.}}",
        "usermessage-summary": "Жүйе хабарламасы қалдырылуда.",
        "usermessage-editor": "Жүйе мессенжері",
        "watchlist": "Бақылау тізімі",
-       "mywatchlist": "Бақылау тізімі",
+       "mywatchlist": "Бақылау тізімім",
        "watchlistfor2": "$1 ($2) бақылау тізімі",
        "nowatchlist": "Бақылау тізіміңізде еш дана жоқ",
        "watchlistanontext": "Бақылау тізіміңіздегі даналарды қарау не өңдеу үшін кіріңіз.",
        "allmessagesname": "Атауы",
        "allmessagesdefault": "Әдепкі мәтіні",
        "allmessagescurrent": "Ағымдық мәтіні",
-       "allmessagestext": "Мында {{ns:mediawiki}} есім аясында жетімді жүйе хабар тізімі беріледі.\nЕгер әмбебап MediaWiki жерсіндіруге үлес қосқыңыз келсе [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki жерсіндіру бетіне] және [//translatewiki.net translatewiki.net жобасына] барып шығыңыз.",
+       "allmessagestext": "Мында {{ns:mediawiki}} есім аясында жетімді жүйе хабар тізімі беріледі.\nЕгер әмбебап MediaWiki жерсіндіруге үлес қосқыңыз келсе [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki жерсіндіру бетіне] және [https://translatewiki.net translatewiki.net жобасына] барып шығыңыз.",
        "allmessagesnotsupportedDB": "'''$wgUseDatabaseMessages''' өшірілген себебінен '''{{#special:AllMessages}}''' беті қолданылмайды.",
        "allmessages-filter-legend": "Сүзгі",
        "allmessages-filter": "Өзгеру статусы бойынша сүзгілеу",
index 4357312..39773cc 100644 (file)
        "protectedpagetext": "Öñdewdi qaqpaýlaw üşin bul bet qulıptalınğan.",
        "viewsourcetext": "Bul bettiñ qaýnar közin qarawıñızğa jäne köşirip alwñızğa boladı:",
        "protectedinterface": "Bul bet bağdarlamalıq jasaqtamanıñ tildesw mätinin jetistiredi, sondıqtan qïyanattı qaqpaýlaw üşin özgertwi qulıptalğan.",
-       "editinginterface": "'''Qulaqtandırw:''' Bağdarlamalıq jasaqtamanıñ tildesw mätinin jetistiretin betin öñdep jatırsız.\nBul bettiñ özgertwi basqa qatıswşılarğa paýdalanwşılıq tildeswi qalaý körinetine äser etedi.\nAwdarmalar üşin, MediaWiki bağdarlamasın jersindirw [//translatewiki.net/wiki/Main_Page?setlang=kk translatewiki.net jobası] arqılı qarap şeşiñiz.",
+       "editinginterface": "'''Qulaqtandırw:''' Bağdarlamalıq jasaqtamanıñ tildesw mätinin jetistiretin betin öñdep jatırsız.\nBul bettiñ özgertwi basqa qatıswşılarğa paýdalanwşılıq tildeswi qalaý körinetine äser etedi.\nAwdarmalar üşin, MediaWiki bağdarlamasın jersindirw [https://translatewiki.net/wiki/Main_Page?setlang=kk translatewiki.net jobası] arqılı qarap şeşiñiz.",
        "cascadeprotected": "Bul bet öñdewden qorğalğan, sebebi bul kelesi «bawlı qorğawı» qosılğan {{PLURAL:$1|bettiñ|betterdiñ}} kirikbeti:\n$2",
        "namespaceprotected": "'''$1''' esim ayasındağı betterdi öñdew üşin ruqsatıñız joq.",
        "ns-specialprotected": "{{ns:special}} esim ayasındağı better öñdelinbeýdi",
        "allmessagesname": "Atawı",
        "allmessagesdefault": "Ädepki mätini",
        "allmessagescurrent": "Ağımdıq mätini",
-       "allmessagestext": "Mında {{ns:mediawiki}} esim ayasında jetimdi jüýe xabar tizimi beriledi.\nEger ämbebap MediaWiki jersindirwge üles qosqıñız kelse [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki jersindirw betine] jäne [//translatewiki.net translatewiki.net jobasına] barıp şığıñız.",
+       "allmessagestext": "Mında {{ns:mediawiki}} esim ayasında jetimdi jüýe xabar tizimi beriledi.\nEger ämbebap MediaWiki jersindirwge üles qosqıñız kelse [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki jersindirw betine] jäne [https://translatewiki.net translatewiki.net jobasına] barıp şığıñız.",
        "allmessagesnotsupportedDB": "'''$wgUseDatabaseMessages''' öşirilgen sebebinen '''{{ns:special}}:AllMessages''' beti qoldanılmaýdı.",
        "thumbnail-more": "Ülkeýtw",
        "filemissing": "Joğalğan faýl",
index f9a100f..6059e1a 100644 (file)
        "protectedpagetext": "ទំព័រនេះបានត្រូវការពារមិនឱ្យកែប្រែ​ឬធ្វើសកម្មភាពផ្សេងទៀតលើវា។",
        "viewsourcetext": "អ្នកអាចមើលនិងចម្លងកូដរបស់ទំព័រនេះ។",
        "viewyourtext": "អ្នកអាចមើលនិងចម្លងកូដរបស់<strong>ការកែប្រែរបស់អ្នក</strong>មកកាន់ទំព័រនេះ។",
-       "protectedinterface": "ទំព័រនេះផ្ដល់នូវអត្ថបទអន្តរមុខសម្រាប់សូហ្វវែរនៅក្នុងវិគីនេះ និងត្រូវបានចាក់សោដើម្បីចៀសវាងការបំពាន។\nដើម្បីបន្ថែមឬផ្លាស់ប្ដូរការបកប្រែសំរាប់វិគីទាំងអស់ សូមប្រើប្រាស់ [//translatewiki.net/ translatewiki.net] ដែលជាគំរោងបកប្រែរបស់MediaWiki។",
+       "protectedinterface": "ទំព័រនេះផ្ដល់នូវអត្ថបទអន្តរមុខសម្រាប់សូហ្វវែរនៅក្នុងវិគីនេះ និងត្រូវបានចាក់សោដើម្បីចៀសវាងការបំពាន។\nដើម្បីបន្ថែមឬផ្លាស់ប្ដូរការបកប្រែសំរាប់វិគីទាំងអស់ សូមប្រើប្រាស់ [https://translatewiki.net/ translatewiki.net] ដែលជាគំរោងបកប្រែរបស់MediaWiki។",
        "editinginterface": "<strong>ប្រយ័ត្ន៖</strong> អ្នកកំពុងតែកែប្រែទំព័រដែលបានប្រើប្រាស់​ដើម្បីផ្ដល់ជូនអន្តរមុខសម្រាប់សូហ្វវែរ។ បន្លាស់ប្ដូរចំពោះទំព័រនេះ​នឹងប៉ះពាល់ដល់ទ្រង់ទ្រាយរបស់ទំព័រអន្តរមុខសំរាប់អ្នកប្រើប្រាស់​ជាច្រើននាក់ ដែលប្រើប្រាស់វិគីនេះ។",
-       "translateinterface": "ដើម្បីបន្ថែមឬកែប្រែការបកប្រែសម្រាប់វិគីទាំងអស់ សូមប្រើប្រាស់ [//translatewiki.net/ translatewiki.net] ដែលជាគម្រោងបកប្រែវិគីមេឌា។",
+       "translateinterface": "ដើម្បីបន្ថែមឬកែប្រែការបកប្រែសម្រាប់វិគីទាំងអស់ សូមប្រើប្រាស់ [https://translatewiki.net/ translatewiki.net] ដែលជាគម្រោងបកប្រែវិគីមេឌា។",
        "cascadeprotected": "ទំព័រនេះត្រូវបានការពារមិនអោយកែប្រែដោយសារវាមានបង្កប់{{PLURAL:$1|ទំព័រដែល|ទំព័រដែល}} បានដាក់ជម្រើសជាការការពារ\"ជាបណ្ដាក់\"៖\n$2",
        "namespaceprotected": "អ្នកមិនមានសិទ្ធិកែប្រែទំព័រដែលមានលំហឈ្មោះជា<strong>$1</strong>ទេ។",
        "customcssprotected": "អ្នកមិនមាន​ការអនុញ្ញាត​ក្នុងការកែប្រែទំព័រ CSS នេះទេ ព្រោះវាផ្ទុកការកំណត់ផ្ទាល់ខ្លួនផ្សេងៗរបស់អ្នកប្រើប្រាស់ម្នាក់ផ្សេងទៀត។",
        "resetpass-temp-emailed": "អ្នកបានកត់ឈ្មោះចូលដោយប្រើលេខកូដបណ្ដោះអាសន្នផ្ញើតាមអ៊ីមែល។\nដើម្បីបញ្ចប់ការកត់ឈ្មោះចូល អ្នកចាំបាច់ត្រូវតែកំណត់ពាក្យសម្ងាត់ថ្មីនៅទីនេះ៖",
        "resetpass-temp-password": "ពាក្យសម្ងាត់បណ្តោះអាសន្ន:",
        "resetpass-expired": "ពាក្យសម្ងាត់របស់អ្នកហួសសុពលភាពហើយ។ សូមកំណត់ពាក្យសម្ងាត់ថ្មីដើម្បីកត់ឈ្មោះចូល។",
-       "resetpass-expired-soft": "ពាក្យសម្ងាត់របស់អ្នកហួសសុពលភាពហើយ ហើយអ្នកត្រូវតែកំណត់វាឡើងវិញ។ សូមជ្រើសរើសពាក្យសម្ងាត់ថ្មីឥឡូវនេះ ឬចុច\"{{int:resetpass-submit-cancel}}\"ដើម្បីកំណត់វានៅពេលក្រោយ។",
-       "resetpass-validity-soft": "ពាក្យសម្ងាត់របស់អ្នកមិនត្រឹមត្រូវទេ៖ $1\n\nសូមជ្រើសរើសពាក្យសម្ងាត់ថ្មីមួយឥឡូវនេះ ឬក៏ចុច\"{{int:resetpass-submit-cancel}}\" ដើម្បីកំណត់វាឡើងវិញនៅពេលក្រោយ។",
+       "resetpass-expired-soft": "ពាក្យសម្ងាត់របស់អ្នកហួសសុពលភាពហើយ ហើយអ្នកត្រូវតែកំណត់វាឡើងវិញ។ សូមជ្រើសរើសពាក្យសម្ងាត់ថ្មីឥឡូវនេះ ឬចុច\"{{int:authprovider-resetpass-skip-label}}\"ដើម្បីកំណត់វានៅពេលក្រោយ។",
+       "resetpass-validity-soft": "ពាក្យសម្ងាត់របស់អ្នកមិនត្រឹមត្រូវទេ៖ $1\n\nសូមជ្រើសរើសពាក្យសម្ងាត់ថ្មីមួយឥឡូវនេះ ឬក៏ចុច\"{{int:authprovider-resetpass-skip-label}}\" ដើម្បីកំណត់វាឡើងវិញនៅពេលក្រោយ។",
        "passwordreset": "កំណត់​ពាក្យសម្ងាត់​ឡើងវិញ",
        "passwordreset-text-one": "បំពេញសំណុំបែបបទនេះដើម្បីស្ដារពាក្យសម្ងាត់របស់អ្នក។",
        "passwordreset-text-many": "{{PLURAL:$1|សូមបំពេញក្នុងប្រអប់មួយក្នុងចំណោមប្រអប់ខាងក្រោមដើម្បីទទួលពាក្យសម្ងាត់បណ្ដោះអាសន្នមួយតាមរយៈអ៊ីមែល។}}",
index e8993dd..b594b92 100644 (file)
        "protectedpagetext": "ಈ ಪುಟವನ್ನು ಸಂಪಾದನೆ ಮಾಡಲಾಗದಂತೆ ಸಂರಕ್ಷಿಸಲಾಗಿದೆ.",
        "viewsourcetext": "ಈ ಪುಟದ ಮೂಲವನ್ನು ನೀವು ವೀಕ್ಷಿಸಬಹುದು ಮತ್ತು ನಕಲು ಮಾಡಬಹುದು:",
        "viewyourtext": "ನೀವು \"ನಿಮ್ಮ ಸಂಪಾದನೆಗಳ\"ನ್ನು ವಿಕ್ಷಿಸಿ ಮತ್ತು ಅದರ ಮೂಲವನ್ನು ಈ ಹಾಳೆಗೆ ನಕಲಿಸಬಹುದು:",
-       "protectedinterface": "ಈ ಪುಟವು ತಾಂತ್ರಿಕತೆಗೆ ಸಂಪರ್ಕ ಪಠ್ಯವನ್ನು ವಿಕಿಯಲ್ಲಿ ಒದಗಿಸುತ್ತದೆ, ಹಾಗು ದುರುಪಯೋಗ ಆಗದಿರಲೆಂದು ಇದನ್ನು ಸಂರಕ್ಷಿಸಲಾಗಿದೆ. ಎಲ್ಲ ವಿಕಿಗಳಿಗೆ ಭಾಷಾಂತರವನ್ನು ಕೂಡಿಸಲು ಹಾಗು ಬದಲಿಸಲು, [//translatewiki.net/ translatewiki.net], the MediaWiki localisation ಯೋಜನೆಯನ್ನು ಉಪಯೊಗಿಸಿ",
-       "editinginterface": "'''ಎಚ್ಚರಿಕೆ:''' ನೀವು ತಂತ್ರಾಂಶವು ತಾಣವನ್ನು ಪ್ರದರ್ಶಿಸಲು ಉಪಯೋಗಿಸುವ ಪಠ್ಯವನ್ನು ಹೊಂದಿರುವ ಪುಟವೊಂದನ್ನು ಸಂಪಾದಿಸುತ್ತಿರುವಿರಿ.\nಈ ಪುಟದಲ್ಲಾಗುವ ಬದಲಾವಣೆಗಳು ಇತರ ಬಳಕೆದಾರರಿಗೆ ತಾಣವು ಕಾಣುವ ರೀತಿಯನ್ನು ಬದಲಾಯಿಸುತ್ತದೆ.\nಅನುವಾದಗಳನ್ನು ಮಾಡುತ್ತಿದ್ದರೆ, ದಯವಿಟ್ಟು ಮೀಡಿಯವಿಕಿಯ ಪ್ರಾಂತೀಯತೆ ಯೋಜನೆ [//translatewiki.net/ translatewiki.net], the MediaWiki localisation project ಯೋಜನೆಯನ್ನು ಉಪಯೊಗಿಸಿ",
+       "protectedinterface": "ಈ ಪುಟವು ತಾಂತ್ರಿಕತೆಗೆ ಸಂಪರ್ಕ ಪಠ್ಯವನ್ನು ವಿಕಿಯಲ್ಲಿ ಒದಗಿಸುತ್ತದೆ, ಹಾಗು ದುರುಪಯೋಗ ಆಗದಿರಲೆಂದು ಇದನ್ನು ಸಂರಕ್ಷಿಸಲಾಗಿದೆ. ಎಲ್ಲ ವಿಕಿಗಳಿಗೆ ಭಾಷಾಂತರವನ್ನು ಕೂಡಿಸಲು ಹಾಗು ಬದಲಿಸಲು, [https://translatewiki.net/ translatewiki.net], the MediaWiki localisation ಯೋಜನೆಯನ್ನು ಉಪಯೊಗಿಸಿ",
+       "editinginterface": "'''ಎಚ್ಚರಿಕೆ:''' ನೀವು ತಂತ್ರಾಂಶವು ತಾಣವನ್ನು ಪ್ರದರ್ಶಿಸಲು ಉಪಯೋಗಿಸುವ ಪಠ್ಯವನ್ನು ಹೊಂದಿರುವ ಪುಟವೊಂದನ್ನು ಸಂಪಾದಿಸುತ್ತಿರುವಿರಿ.\nಈ ಪುಟದಲ್ಲಾಗುವ ಬದಲಾವಣೆಗಳು ಇತರ ಬಳಕೆದಾರರಿಗೆ ತಾಣವು ಕಾಣುವ ರೀತಿಯನ್ನು ಬದಲಾಯಿಸುತ್ತದೆ.\nಅನುವಾದಗಳನ್ನು ಮಾಡುತ್ತಿದ್ದರೆ, ದಯವಿಟ್ಟು ಮೀಡಿಯವಿಕಿಯ ಪ್ರಾಂತೀಯತೆ ಯೋಜನೆ [https://translatewiki.net/ translatewiki.net], the MediaWiki localisation project ಯೋಜನೆಯನ್ನು ಉಪಯೊಗಿಸಿ",
        "cascadeprotected": "ಈ ಪುಟವು ಸಂಪಾದನೆ ಮಾಡಲಾಗದಂತೆ ಸಂರಕ್ಷಿಸಲಾಗಿದೆ. ಇದಕ್ಕೆ ಕಾರಣ ಈ ಪುಟವನ್ನು ಈ ಕೆಳಗಿನ ತಡಸಲು-ಸಂರಕ್ಷಣೆ ಅಳವಡಿಸಲಾದ {{PLURAL:$1|ಪುಟದಲ್ಲಿ|ಪುಟಗಳಲ್ಲಿ}} ಉಪಯೋಗಿಸಲಾಗಿದೆ:\n$2",
        "namespaceprotected": "ನಿಮಗೆ '''$1''' ಪುಟಪ್ರಬೇಧಕ್ಕೆ ಸೇರಿರುವ ಪುಟಗಳನ್ನು ಸಂಪಾದಿಸುವ ಅನುಮತಿ ಇಲ್ಲ.",
        "customcssprotected": "ಈ ಸಿಎಸ್ಎಸ್ ಪುಟವನ್ನು ಸಂಪಾದಿಸಲು ಈ ಪುಟವು ಇನ್ನೊಬ್ಬ ಬಳಕೆದಾರನ ವಯುಕ್ತಿಕ ವ್ಯವಸ್ಥೆಯನ್ನು ಹೊಂದಿರುವುದರಿಂದ ಅನುಮತಿ ಇಲ್ಲ",
index 1a8bd45..208652e 100644 (file)
@@ -77,9 +77,9 @@
        "tog-editondblclick": "더블 클릭으로 문서 편집하기",
        "tog-editsectiononrightclick": "제목을 오른쪽 클릭해서 문단 편집하기 활성화",
        "tog-watchcreations": "내가 만든 문서와 내가 올린 파일을 주시문서 목록에 추가",
-       "tog-watchdefault": "ë\82´ê°\80 í\8e¸ì§\91í\95\98ë\8a\94 문서와 파일을 주시문서 목록에 추가",
-       "tog-watchmoves": "ë\82´ê°\80 ì\9d´ë\8f\99í\95\98ë\8a\94 문서와 파일을 주시문서 목록에 추가",
-       "tog-watchdeletion": "ë\82´ê°\80 ì\82­ì \9cí\95\98ë\8a\94 문서와 파일을 주시문서 목록에 추가",
+       "tog-watchdefault": "ë\82´ê°\80 í\8e¸ì§\91í\95\9c 문서와 파일을 주시문서 목록에 추가",
+       "tog-watchmoves": "ë\82´ê°\80 ì\9d´ë\8f\99í\95\9c 문서와 파일을 주시문서 목록에 추가",
+       "tog-watchdeletion": "ë\82´ê°\80 ì\82­ì \9cí\95\9c 문서와 파일을 주시문서 목록에 추가",
        "tog-watchuploads": "내가 올린 파일을 주시문서 목록에 추가",
        "tog-watchrollback": "내가 되돌리기 기능을 사용한 문서를 주시문서 목록에 추가",
        "tog-minordefault": "모든 편집에 기본적으로 사소한 편집을 표시",
        "category_header": "\"$1\" 분류에 속하는 문서",
        "subcategories": "하위 분류",
        "category-media-header": "\"$1\" 분류에 속하는 미디어",
-       "category-empty": "이 분류에 속하는 문서나 자료가 없습니다.",
+       "category-empty": "<em>현재 이 분류에는 문서나 미디어가 하나도 없습니다.</em>",
        "hidden-categories": "{{PLURAL:$1|숨은 분류|숨은 분류}}",
        "hidden-category-category": "숨은 분류",
        "category-subcat-count": "{{PLURAL:$2|이 분류에는 하위 분류 1개만이 속해 있습니다.|다음은 이 분류에 속하는 {{PLURAL:$1|하위 분류}} $2개 가운데 $1개입니다.}}",
        "databaseerror-query": "쿼리: $1",
        "databaseerror-function": "함수: $1",
        "databaseerror-error": "오류: $1",
-       "transaction-duration-limit-exceeded": "쓰기 시간($1)이 $2 초 제한을 초과하였으므로 이 트랜잭션은 중단되었습니다. 이는 높은 수준의 반복 지연을 피하기 위해서입니다.\n한번에 수많은 항목을 변경하려면, 작업을 여러 작은 단위로 나누어 시도하십시오.",
+       "transaction-duration-limit-exceeded": "쓰기 시간($1)이 $2 초 제한을 초과하였으므로 이 트랜잭션은 중단되었습니다. 이는 높은 수준의 반복 지연을 피하기 위해서입니다.\n한 번에 수많은 항목을 변경하려면, 작업을 여러 작은 단위로 나누어 시도하십시오.",
        "laggedslavemode": "<strong>경고:</strong> 문서가 최근에 바뀐 내용을 포함하지 않을 수도 있습니다.",
        "readonly": "데이터베이스 잠김",
        "enterlockreason": "데이터베이스를 잠그는 이유와 예상되는 기간을 적어 주세요.",
        "protectedpagetext": "이 문서는 편집하거나 다른 명령을 할 수 없도록 보호되어 있습니다.",
        "viewsourcetext": "문서의 원본을 보거나 복사할 수 있습니다.",
        "viewyourtext": "이 문서에 속한 <strong>당신의 편집</strong>의 원본을 보고 복사할 수 있습니다.",
-       "protectedinterface": "이 문서는 이 위키의 소프트웨어 인터페이스에 쓰이는 문서로, 부정 행위를 막기 위해 보호되어 있습니다.\n모든 위키에 대한 번역을 추가하거나 바꾸려면 미디어위키 지역화 프로젝트인 [//translatewiki.net/wiki/Main_Page?setlang=ko translatewiki.net]에 참여하시기 바랍니다.",
+       "protectedinterface": "이 문서는 이 위키의 소프트웨어 인터페이스에 쓰이는 문서로, 부정 행위를 막기 위해 보호되어 있습니다.\n모든 위키에 대한 번역을 추가하거나 바꾸려면 미디어위키 지역화 프로젝트인 [https://translatewiki.net/wiki/Main_Page?setlang=ko translatewiki.net]에 참여하시기 바랍니다.",
        "editinginterface": "<strong>경고:</strong> 소프트웨어 인터페이스에 쓰이는 문서를 고치고 있습니다.\n이 문서에 있는 내용을 바꾸면 이 위키에 있는 모든 사용자에게 영향을 끼칩니다.",
-       "translateinterface": "모든 위키를 위해 번역을 추가하거나 바꾸려면, 미디어위키 지역화 프로젝트인 [//translatewiki.net/ translatewiki.net]을 사용해 주시기 바랍니다.",
+       "translateinterface": "모든 위키를 위해 번역을 추가하거나 바꾸려면, 미디어위키 지역화 프로젝트인 [https://translatewiki.net/ translatewiki.net]을 사용해 주시기 바랍니다.",
        "cascadeprotected": "이 문서는 다음 \"연쇄적\" 보호가 걸린 {{PLURAL:$1|문서|문서들}}에 포함되어 있어 함께 보호됩니다:\n$2",
        "namespaceprotected": "<strong>$1</strong> 이름공간의 문서를 편집할 권한이 없습니다.",
        "customcssprotected": "여기에는 다른 사용자의 개인 설정이 포함되어 있기 때문에 이 CSS 문서를 편집할 수 없습니다.",
        "resetpass-temp-password": "임시 비밀번호:",
        "resetpass-abort-generic": "비밀번호 바꾸기가 확장 기능에 의해 중단되었습니다.",
        "resetpass-expired": "비밀번호가 만료되었습니다. 로그인하려면 새 비밀번호를 설정해야 합니다.",
-       "resetpass-expired-soft": "비밀번호가 만료되어 재설정해야 합니다. 지금 새로운 비밀번호를 선택하거나, \"{{int:resetpass-submit-cancel}}\"를 클릭하고 나중에 재설정해주세요.",
-       "resetpass-validity-soft": "귀하의 비밀번호는 유효하지 않습니다: $1\n\n새로운 비밀번호를 지금 설정하거나, \"{{int:resetpass-submit-cancel}}\"을 눌러 나중에 재설정하세요.",
+       "resetpass-expired-soft": "비밀번호가 만료되어 재설정해야 합니다. 지금 새로운 비밀번호를 선택하거나, \"{{int:authprovider-resetpass-skip-label}}\"를 클릭하고 나중에 재설정해주세요.",
+       "resetpass-validity-soft": "귀하의 비밀번호는 유효하지 않습니다: $1\n\n새로운 비밀번호를 지금 설정하거나, \"{{int:authprovider-resetpass-skip-label}}\"을 눌러 나중에 재설정하세요.",
        "passwordreset": "비밀번호 재설정",
        "passwordreset-text-one": "이메일을 통해 임시 비밀번호를 받으려면 이 양식을 채우세요.",
        "passwordreset-text-many": "{{PLURAL:$1|이메일을 통해 임시 비밀번호를 받으려면 필드 중 하나를 채우세요.}}",
        "passwordreset-emailsent-capture": "비밀번호 재설정 이메일이 발송되었으며, 아래에 나타나 있습니다.",
        "passwordreset-emailerror-capture": "비밀번호 재설정 이메일이 생성되어 아래에 나타나 있지만, {{GENDER:$2|사용자}}에게 발송하는 데에는 실패했습니다: $1",
        "passwordreset-emailsent-capture2": "비밀번호 재설정 이메일을 보냈습니다. {{PLURAL:$1|사용자 이름과 비밀번호는|사용자 이름과 비밀번호의 목록은}} 아래에 나타납니다.",
-       "passwordreset-emailerror-capture2": "사용자 이메일 보내기 실패: $1 {{PLURAL:$3|사용자 이름과 비밀번호가|사용자 이름과 비밀번호의 목록이}} 아래에 나타납니다.",
+       "passwordreset-emailerror-capture2": "{{GENDER:$2|사용자}} 이메일 보내기 실패: $1 {{PLURAL:$3|사용자 이름과 비밀번호가|사용자 이름과 비밀번호의 목록이}} 아래에 나타납니다.",
        "passwordreset-nocaller": "호출자를 지정해야 합니다",
        "passwordreset-nosuchcaller": "호출자가 존재하지 않습니다: $1",
        "passwordreset-ignored": "비밀번호 재설정을 처리하지 못했습니다. 제공자가 구성되지 않았기 때문일 수 있습니다.",
        "minoredit": "사소한 편집입니다",
        "watchthis": "이 문서 주시하기",
        "savearticle": "문서 저장",
+       "savechanges": "변경 사항 저장",
        "publishpage": "문서 게시",
+       "publishchanges": "변경 사항 게시",
        "preview": "미리 보기",
        "showpreview": "미리 보기",
        "showdiff": "차이 보기",
        "userpage-userdoesnotexist": "\"$1\" 사용자 계정은 등록되어 있지 않습니다.\n이 문서를 만들거나 편집하기 전에 계정이 존재하는지 확인해주세요.",
        "userpage-userdoesnotexist-view": "\"$1\" 사용자 계정은 등록되어 있지 않습니다.",
        "blocked-notice-logextract": "이 사용자는 현재 차단되어 있습니다.\n해당 사용자의 최근 차단 기록을 참조하십시오:",
-       "clearyourcache": "<strong>참고:</strong> 설정을 저장한 후에 바뀐 점을 확인하기 위해서는 브라우저의 캐시를 새로 고쳐야 합니다.\n* <strong>파이어폭스 / 사파리</strong>: <em>Shift</em> 키를 누르면서 새로 고침을 클릭하거나, <em>Ctrl-F5</em> 또는 <em>Ctrl-R</em> 을 입력 (Mac에서는 <em>⌘-R</em>)\n* <strong>구글 크롬</strong>: <em>Ctrl-Shift-R</em>키를 입력 (Mac에서는 <em>⌘-Shift-R</em>)\n* <strong>인터넷 익스플로러</strong>: <em>Ctrl</em> 키를 누르면서 새로 고침을 클릭하거나, <em>Ctrl-F5</em>를 입력.\n* <strong>오페라:</strong> <em>메뉴 → 설정</em>(맥의 경우 <em>오페라 → 환경 설정</em>)으로 이동한 다음 <em>개인 정보 보호 및 보안 → 검색 데이터 지우기 → 캐시한 이미지 및 파일</em>을 누름.",
+       "clearyourcache": "<strong>참고:</strong> 설정을 저장한 후에 바뀐 점을 확인하기 위해서는 브라우저의 캐시를 새로 고쳐야 합니다.\n* <strong>파이어폭스 / 사파리</strong>: <em>Shift</em> 키를 누르면서 새로 고침을 클릭하거나, <em>Ctrl-F5</em> 또는 <em>Ctrl-R</em>을 입력 (Mac에서는 <em>⌘-R</em>)\n* <strong>구글 크롬</strong>: <em>Ctrl-Shift-R</em>키를 입력 (Mac에서는 <em>⌘-Shift-R</em>)\n* <strong>인터넷 익스플로러</strong>: <em>Ctrl</em> 키를 누르면서 새로 고침을 클릭하거나, <em>Ctrl-F5</em>를 입력.\n* <strong>오페라:</strong> <em>메뉴 → 설정</em>(맥의 경우 <em>오페라 → 환경 설정</em>)으로 이동한 다음 <em>개인 정보 보호 및 보안 → 검색 데이터 지우기 → 캐시한 이미지 및 파일</em>을 누름.",
        "usercssyoucanpreview": "'''안내''': CSS 문서를 저장하기 전에 \"{{int:showpreview}}\" 기능을 통해 작동을 확인해주세요.",
        "userjsyoucanpreview": "'''안내''': 자바스크립트 문서를 저장하기 전에 \"{{int:showpreview}}\" 기능을 통해 작동을 확인해주세요.",
        "usercsspreview": "'''사용자 CSS의 미리 보기입니다.'''\n'''아직 저장하지 않았습니다!'''",
        "content-model-css": "CSS",
        "content-json-empty-object": "빈 오브젝트",
        "content-json-empty-array": "빈 배열",
+       "deprecated-self-close-category": "유효하지 않은, 스스로 닫는 HTML 태그를 사용하고 있는 문서",
+       "deprecated-self-close-category-desc": "이 문서는 <code>&lt;b/></code>나 <code>&lt;span/></code>와 같은 유효하지 않은, 스스로 닫는 HTML 태그를 포함하고 있습니다. 이 태그들의 동작은 곧 HTML5 사양과 일관되도록 변경될 예정이므로 위키텍스트에서 이것들을 사용하는 것은 권장되지 않습니다.",
        "duplicate-args-warning": "<strong>경고:</strong> [[:$1]] 문서는 [[:$2]]에 \"$3\" 변수를 하나보다 더 많이 입력했습니다. 마지막으로 주어진 값만이 유효합니다.",
        "duplicate-args-category": "중복된 인수를 사용한 틀의 호출을 포함한 문서",
        "duplicate-args-category-desc": "문서에 <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code>나 <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>와 같은, 인수를 중복하여 사용한 틀 호출을 포함합니다.",
        "last": "이전",
        "page_first": "처음",
        "page_last": "마지막",
-       "histlegend": "비교하려는 판을 선택한 다음 엔터나 아래의 버튼을 누르세요.<br />\n설명: <strong>({{int:cur}})</strong> = 최신 판과 비교, <strong>({{int:last}})</strong> = 이전 판과 비교, <strong>{{int:minoreditletter}}</strong>= 사소한 편집",
+       "histlegend": "차이 선택: 비교하려는 판의 라디오 상자를 선택한 다음 엔터나 아래의 버튼을 누르세요.<br />\n설명: <strong>({{int:cur}})</strong> = 최신 판과 비교, <strong>({{int:last}})</strong> = 이전 판과 비교, <strong>{{int:minoreditletter}}</strong>= 사소한 편집",
        "history-fieldset-title": "역사 찾아보기",
        "history-show-deleted": "삭제된 것만",
        "histfirst": "오래됨",
        "gender-female": "위키 문서를 편집하는 여자입니다",
        "prefs-help-gender": "이 환경 설정은 선택 사항입니다.\n소프트웨어는 적절한 성별 문법을 사용하여 다른 사용자에게 당신을 언급하는 것을 해결하기 위해 사용됩니다.\n이 정보는 공개됩니다.",
        "email": "이메일",
-       "prefs-help-realname": "실명은 선택 사항입니다.\n실명을 입력하면 당신의 기여에 대한 저작자표시에 쓰이게 될 수 있습니다.",
+       "prefs-help-realname": "실명은 선택 사항입니다.\n실명을 입력하면 당신의 기여에 대한 저작자 표시에 쓰이게 될 수 있습니다.",
        "prefs-help-email": "이메일 주소 입력은 선택 사항입니다. 다만 비밀번호를 잊었을 때 비밀번호를 재설정하기 위해 필요합니다.",
        "prefs-help-email-others": "자신의 문서나 토론 문서에 있는 이메일 보내기 링크로 다른 사용자가 연락할 수 있게 할 수도 있습니다.\n이 경우에도 이메일 주소는 다른 사용자가 연락할 때 공개되지 않습니다.",
        "prefs-help-email-required": "이메일 주소가 필요합니다.",
        "right-move-rootuserpages": "최상위 사용자 문서 이동",
        "right-move-categorypages": "분류 문서 이동",
        "right-movefile": "파일 이동",
-       "right-suppressredirect": "문서 옮길 때 원래 문서 이름으로 된 넘겨주기를 만들지 않기",
+       "right-suppressredirect": "문서 옮길 때 원래 문서 이름으로 된 넘겨주기를 만들지 않기",
        "right-upload": "파일 올리기",
        "right-reupload": "이미 존재하는 파일을 다시 올리기",
        "right-reupload-own": "자신이 이미 올린 파일 덮어쓰기",
        "rightslogtext": "사용자 권한 조정 기록입니다.",
        "action-read": "이 문서를 읽기",
        "action-edit": "문서 편집",
-       "action-createpage": "문서 만들기",
-       "action-createtalk": "토론 문서 만들기",
+       "action-createpage": "이 문서 만들기",
+       "action-createtalk": "이 토론 문서 만들기",
        "action-createaccount": "새 계정 만들기",
        "action-autocreateaccount": "자동으로 이 외부 사용자 계정 생성하기",
        "action-history": "이 문서의 역사 보기",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|새 문서 목록]]도 보세요)",
        "recentchanges-legend-plusminus": "(<em>±123</em>)",
        "recentchanges-submit": "보기",
-       "rcnotefrom": "아래는 <strong>$3, $4</strong>부터 시작하는 {{PLURAL:$5|바뀜이 있습니다}}. (최대 <strong>$1</strong>개가 보여집니다)",
+       "rcnotefrom": "아래는 <strong>$3, $4</strong>부터 시작하는 {{PLURAL:$5|바뀜이 있습니다}}. (최대 <strong>$1</strong>개가 표시됨)",
        "rclistfrom": "$3 $2부터 시작하는 새로 바뀐 문서 보기",
        "rcshowhideminor": "사소한 편집 $1",
        "rcshowhideminor-show": "보이기",
        "uploaddisabledtext": "파일 올리기 기능이 비활성화되어 있습니다.",
        "php-uploaddisabledtext": "PHP 파일 올리기가 비활성화되었습니다. 파일 올리기 설정을 확인하십시오.",
        "uploadscripted": "이 파일에는 HTML이나 다른 스크립트 코드가 포함되어 있어, 웹 브라우저에서 오류를 일으킬 수 있습니다.",
-       "upload-scripted-pi-callback": "XML 스타일시트 프로세싱 명령을 포함하는 파일은 업로드 할 수 없습니다.",
-       "uploaded-script-svg": "업로드 된 SVG 파일에서 스크립트로 만들 수 있는 \"$1\" 요소를 발견했습니다.",
-       "uploaded-hostile-svg": "업로드 된 SVG 파일의 스타일 요소에 안전하지 못한 CSS가 있습니다.",
+       "upload-scripted-pi-callback": "XML 스타일시트 처리 명령을 포함하는 파일은 업로드할 수 없습니다.",
+       "uploaded-script-svg": "업로드된 SVG 파일에서 스크립트로 만들 수 있는 \"$1\" 요소를 발견했습니다.",
+       "uploaded-hostile-svg": "업로드된 SVG 파일의 스타일 요소에 안전하지 않은 CSS가 있습니다.",
        "uploaded-event-handler-on-svg": "이벤트 핸들러 속성 <code>$1=\"$2\"</code> 설정은 SVG 파일에서 사용할 수 없습니다.",
        "uploaded-href-attribute-svg": "SVG 파일의 href 속성은 http:// 또는 https:// 대상의 링크만 허용되지만 <code>&lt;$1 $2=\"$3\"&gt;</code>를 발견했습니다.",
        "uploaded-href-unsafe-target-svg": "안전하지 않은 데이터를 가리키는 href를 발견했습니다: 업로드된 SVG 파일의 URI 대상 <code>&lt;$1 $2=\"$3\"&gt;</code>",
        "upload-http-error": "HTTP 오류 발생: $1",
        "upload-copy-upload-invalid-domain": "이 도메인에 속하지 않는 웹사이트의 파일을 올릴 수 없습니다.",
        "upload-foreign-cant-upload": "이 위키는 요청된 외부 파일 저장소에 파일을 업로드할 수 있도록 구성되어 있지 않습니다.",
+       "upload-foreign-cant-load-config": "외부 파일 저장소의 파일 업로드 구성을 불러오는데 실패했습니다.",
+       "upload-dialog-disabled": "이 대화창을 이용한 파일 올리기는 이 위키에서 비활성화되어 있습니다.",
        "upload-dialog-title": "파일 올리기",
        "upload-dialog-button-cancel": "취소",
        "upload-dialog-button-done": "완료",
        "uploadstash-thumbnail": "섬네일 보기",
        "invalid-chunk-offset": "청크 오프셋이 잘못되었습니다.",
        "img-auth-accessdenied": "접근이 거부됨",
-       "img-auth-nopathinfo": "PATH_INFO를 잃었습니다.\n서버가 이 정보를 받을 수 있도록 설정되어 있지 않습니다.\n이러한 경우는 서버가 CGI 기반이고 img_auth를 지원하지 않을 때 나타날 수 있습니다.\nhttps://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization 을 참조하십시오.",
+       "img-auth-nopathinfo": "PATH_INFO를 잃었습니다.\n서버가 이 정보를 받을 수 있도록 설정되어 있지 않습니다.\n이러한 경우는 서버가 CGI 기반이고 img_auth를 지원하지 않을 때 나타날 수 있습니다.\nhttps://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization을 참조하십시오.",
        "img-auth-notindir": "요청한 경로가 설정한 올리기 디렉터리에 없습니다.",
        "img-auth-badtitle": "\"$1\"에서 올바른 제목을 만들 수 없습니다.",
        "img-auth-nologinnWL": "로그인하지 않았으며 \"$1\" 파일은 화이트리스트에 존재하지 않습니다.",
        "unusedimages": "사용하지 않는 파일 목록",
        "wantedcategories": "필요한 분류 목록",
        "wantedpages": "필요한 문서 목록",
-       "wantedpages-summary": "다른 문서들에 링크는 걸려 있지만 존재하지 않는 문서들 중, 넘겨주기 문서를 제외한 목록입니다.\n존재하지 않는 문서로 넘겨주는 문서 목록을 보려면 [[{{#special:BrokenRedirects}}|the list of broken redirects]]를 참조하세요.",
+       "wantedpages-summary": "다른 문서들에 링크는 걸려 있지만 존재하지 않는 문서들 중, 넘겨주기 문서를 제외한 목록입니다. 존재하지 않는 문서로 넘겨주는 문서 목록을 보려면 [[{{#special:BrokenRedirects}}|끊긴 넘겨주기 목록]]을 참조하세요.",
        "wantedpages-badtitle": "문서 제목이 잘못되었습니다: $1",
        "wantedfiles": "필요한 파일 목록",
        "wantedfiletext-cat": "다음 파일은 쓰이고는 있지만 없는 파일입니다. 바깥 저장소에 있는 파일은 실제로는 있지만 여기 올라 있을 수 있습니다. 그런 오류는 <del>삭제선</del>이 그어질 것입니다. 또한 없는 파일을 포함하고 있는 문서는 [[:$1]]에 올라 있습니다.",
        "pager-newer-n": "{{PLURAL:$1|다음 1개|다음 $1개}}",
        "pager-older-n": "{{PLURAL:$1|이전 1개|이전 $1개}}",
        "suppress": "기록보호자",
-       "querypage-disabled": "이 특수 문서는 성능상의 이유로 비활성화되었습니다.",
+       "querypage-disabled": "이 특수 문서는 성능 상의 이유로 비활성화되었습니다.",
        "apihelp": "API 도움말",
        "apihelp-no-such-module": "\"$1\" 모듈을 찾을 수 없습니다.",
        "apisandbox": "API 실험실",
        "apisandbox-jsonly": "API 연습장을 이용하려면 자바스크립트가 필요합니다.",
        "apisandbox-api-disabled": "이 사이트에서는 API가 꺼져 있습니다.",
-       "apisandbox-intro": "<strong>미디어위키 웹 서비스 API</strong>를 시험해보려면 이 페이지를 이용해보세요. API 용법에 대해서는 [[mw:API:Main page|API 문서]]을 참고하십시오. 예: [//www.mediawiki.org/wiki/API#A_simple_example 대문의 내용 요청하기]. 더 많은 예를 보려면 액션을 선택하세요.\n\n여기가 연습장이라도 이 페이지에서 실행하는 동작때문에 위키를 변경할 수도 있다는 점에 유의하십시오.",
+       "apisandbox-intro": "<strong>미디어위키 웹 서비스 API</strong>를 시험해보려면 이 페이지를 이용해보세요. API 용법에 대해서는 [[mw:API:Main page|API 문서]]를 참고하십시오. 예: [https://www.mediawiki.org/wiki/API#A_simple_example 대문의 내용 요청하기]. 더 많은 예를 보려면 액션을 선택하세요.\n\n여기가 연습장이라도 이 페이지에서 실행하는 동작 때문에 위키를 변경할 수도 있다는 점에 유의하십시오.",
        "apisandbox-fullscreen": "패널 늘리기",
        "apisandbox-fullscreen-tooltip": "브라우저 창에 맞도록 샌드박스 패널 늘리기",
        "apisandbox-unfullscreen": "페이지 보기",
        "linksearch-ns": "이름공간:",
        "linksearch-ok": "검색",
        "linksearch-text": "\"*.wikipedia.org\"와 같이 와일드 카드를 사용할 수 있습니다.\n적어도 \"*.org\"와 같이 최상위 도메인을 입력해야 합니다.<br />\n지원하는 {{PLURAL:$2|프로토콜}}: $1 (프로토콜을 지정하지 않을 때 기본값은 http://)",
-       "linksearch-line": "$2에서 $1 을 링크하고 있습니다.",
+       "linksearch-line": "$1가 $2에서 링크됩니다.",
        "linksearch-error": "와일드카드는 주소의 처음 부분에만 사용될 수 있습니다.",
        "listusersfrom": "다음으로 시작하는 사용자 보기:",
        "listusers-submit": "보기",
        "listgrants-grant": "부여",
        "listgrants-rights": "권한",
        "trackingcategories": "추적용 분류",
-       "trackingcategories-summary": "이 페이지는 미디어위키 소프트웨어에 의해 자동으로 만들어지는 추적용 분류를 나열합니다. 그들의 이름은 {{ns:8}} 이름공간에 관련된 시스템 메시지를 바꾸어서 바꿀 수 있습니다.",
+       "trackingcategories-summary": "이 페이지는 미디어위키 소프트웨어에 의해 자동으로 만들어지는 추적용 분류를 나열합니다. 이들의 이름은 {{ns:8}} 이름공간의 관련 시스템 메시지들을 변경함으로써 바꿀 수 있습니다.",
        "trackingcategories-msg": "추적용 분류",
        "trackingcategories-name": "메시지 이름",
        "trackingcategories-desc": "분류 포함 기준",
+       "restricted-displaytitle-ignored": "제목 표시가 무시된 문서",
+       "restricted-displaytitle-ignored-desc": "문서의 실제 제목과 일치하지 않기 때문에 무시된 <code><nowiki>{{DISPLAYTITLE}}</nowiki></code>이 있는 문서입니다.",
        "noindex-category-desc": "문서는 그것과 그 플래그가 허용된 곳에 있는 이름공간에서 <code><nowiki>__NOINDEX__</nowiki></code> 특수 명령이 있기 때문에 로봇이 색인하지 않습니다.",
        "index-category-desc": "문서는 그것(과 플래그가 허용된 곳에 있는 이름공간에 있는 것)에 <code><nowiki>__INDEX__</nowiki></code>가 있어서, 정상적이지 않을 곳에 로봇에 의해 색인됩니다.",
        "post-expand-template-inclusion-category-desc": "모든 틀을 전개하였을 때, 문서 크기가 <code>$wgMaxArticleSize</code>보다 커지므로, 어떤 틀은 전개하지 않았습니다.",
        "post-expand-template-argument-category-desc": "틀 변수 (<code>{{{Foo}}}</code>와 같은, 중괄호가 세 개 있는 무언가)를 확장하고 나서 문서는 <code>$wgMaxArticleSize</code>보다 커집니다.",
        "expensive-parserfunction-category-desc": "문서에 (<code>#ifexist</code>와 같은) 느린 파서 함수가 너무 많이 쓰이고 있습니다. [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit]를 보세요.",
        "broken-file-category-desc": "문서에 깨진 파일 링크 (파일이 존재하지 않을 때 포함되는 링크)를 포함합니다.",
-       "hidden-category-category-desc": "기본적으로 문서에 분류 링크 상자가 보여지는 것에서 막기 위한, 분류의 문서 내용에 <code><nowiki>__HIDDENCAT__</nowiki></code>를 포함합니다.",
+       "hidden-category-category-desc": "분류의 본문에 <code><nowiki>__HIDDENCAT__</nowiki></code>를 포함하고 있으며, 기본적으로 문서의 분류 링크 상자에서 보이지 않게 합니다.",
        "trackingcategories-nodesc": "사용할 수 있는 설명이 없습니다.",
        "trackingcategories-disabled": "분류가 비활성화되어 있습니다",
        "mailnologin": "보낼 이메일 주소가 없음",
        "enotif_body_intro_moved": "{{SITENAME}} $1 문서를 $PAGEEDITDATE에 $2 사용자가 {{GENDER:$2|이동하였으며}} 현재 판은 $3 에서 볼 수 있습니다.",
        "enotif_body_intro_restored": "{{SITENAME}} $1 문서를 $PAGEEDITDATE에 $2 사용자가 {{GENDER:$2|되살렸으며}} 현재 판은 $3 에서 볼 수 있습니다.",
        "enotif_body_intro_changed": "{{SITENAME}} $1 문서를 $PAGEEDITDATE에 $2 사용자가 {{GENDER:$2|바꾸었으며}} 현재 판은 $3 에서 볼 수 있습니다.",
-       "enotif_lastvisited": "마지막으로 방문한 뒤 생긴 모든 바뀜을 보려면 $1 을 보세요.",
-       "enotif_lastdiff": "이 바뀜을 보려면 $1 을 보세요.",
+       "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_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",
        "created": "만들었",
        "changed": "바꾸었",
        "deletepage": "문서 삭제",
        "sp-contributions-username": "IP 주소 또는 사용자 이름:",
        "sp-contributions-toponly": "최신판만 보기",
        "sp-contributions-newonly": "새 글인 기여만 보기",
+       "sp-contributions-hideminor": "사소한 편집 숨기기",
        "sp-contributions-submit": "검색",
        "sp-contributions-explain": "",
        "whatlinkshere": "여기를 가리키는 문서",
        "ipbnounblockself": "자기 스스로를 차단 해제할 수 없습니다.",
        "lockdb": "데이터베이스 잠그기",
        "unlockdb": "데이터베이스 잠금 해제",
-       "lockdbtext": "데이터베이스를 잠그면 모든 사용자의 편집, 환경 설정 바꾸기, 주시문서 편집 등 데이터베이스를 요구하는 모든 기능이 정지됩니다.\n정말로 잠가야 하는지를 다시 한번 확인해주세요. 관리 작업이 끝난 뒤에는 데이터베이스 잠금을 풀어야 합니다.",
-       "unlockdbtext": "데이터베이스를 잠금 해제하면 모든 사용자의 편집, 환경 설정 바꾸기, 주시문서 편집 등 데이터베이스를 요구하는 모든 기능이 복구됩니다.\n정말로 잠금을 해제하려는지를 다시 한번 확인해주세요.",
+       "lockdbtext": "데이터베이스를 잠그면 모든 사용자의 편집, 환경 설정 바꾸기, 주시문서 편집 등 데이터베이스에서 변경을 요구하는 모든 기능이 정지됩니다.\n정말로 잠가야 하는지 확인해 주세요. 관리 작업이 끝난 뒤에는 데이터베이스 잠금을 풀어야 합니다.",
+       "unlockdbtext": "데이터베이스를 잠금 해제하면 모든 사용자의 편집, 환경 설정 바꾸기, 주시문서 편집 등 데이터베이스에서 변경을 요구하는 모든 기능이 복구됩니다.\n정말로 잠금을 해제해야 하는지 확인해주세요.",
        "lockconfirm": "네, 데이터베이스를 잠급니다.",
        "unlockconfirm": "네, 데이터베이스를 잠금 해제합니다.",
        "lockbtn": "데이터베이스 잠그기",
        "allmessagesname": "이름",
        "allmessagesdefault": "기본 메시지 글",
        "allmessagescurrent": "현재 문자열",
-       "allmessagestext": "미디어위키 이름공간에 있는 모든 시스템 메시지의 목록입니다.\n미디어위키의 번역 작업에 관심이 있으면 [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation 미디어위키 지역화]나 [//translatewiki.net translatewiki.net]에 참가해주세요.",
+       "allmessagestext": "미디어위키 이름공간에 있는 모든 시스템 메시지의 목록입니다.\n미디어위키의 번역 작업에 관심이 있으면 [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation 미디어위키 지역화]나 [https://translatewiki.net translatewiki.net]에 참가해주세요.",
        "allmessagesnotsupportedDB": "'''$wgUseDatabaseMessages'''가 비활성화되어 있어서 이 문서를 사용할 수 없습니다.",
        "allmessages-filter-legend": "필터",
        "allmessages-filter": "수정 상태로 거르기:",
        "watchlistedit-clear-submit": "주시목록 문서 지우기 (이는 영구적입니다!)",
        "watchlistedit-clear-done": "주시문서 목록을 지웠습니다.",
        "watchlistedit-clear-removed": "{{PLURAL:$1|문서 1개|문서 $1개}}를 제거했습니다:",
-       "watchlistedit-too-many": "여기에 보여질 문서가 너무 많습니다.",
+       "watchlistedit-too-many": "여기에 표시할 문서가 너무 많습니다.",
        "watchlisttools-clear": "주시문서 목록 비우기",
        "watchlisttools-view": "주시문서 최근 바뀜",
        "watchlisttools-edit": "주시문서 목록 보기/편집하기",
        "version-ext-colheader-license": "라이선스",
        "version-ext-colheader-description": "설명",
        "version-ext-colheader-credits": "저자",
-       "version-license-title": "$1ì\9a© ë\9d¼ì\9d´ì\84¼스",
+       "version-license-title": "$1ì\9a© ë\9d¼ì\9d´ì\84 스",
        "version-license-not-found": "이 확장 기능에 대한 자세한 라이선스 정보가 없습니다.",
        "version-credits-title": "$1의 작성자",
        "version-credits-not-found": "이 확장 기능에 대한 자세한 제작진 정보가 없습니다.",
        "specialpages-group-developer": "개발자 도구",
        "blankpage": "빈 문서",
        "intentionallyblankpage": "일부러 비워 둔 문서입니다.",
-       "external_image_whitelist": " #ì\9d´ ì¤\84ì\9d\80 ê·¸ë\8c\80ë¡\9c ë\91\90ì\8b­ì\8b\9cì\98¤<pre>\n#ì \95ê·\9c í\91\9cí\98\84ì\8b\9d(// ì\82¬ì\9d´ì\97\90 ì\9e\88ë\8a\94 ë¶\80ë¶\84\9d\84 ì\95\84ë\9e\98ì\97\90 ì\9e\85ë ¥í\95\98ì\84¸ì\9a\94.\n#ì\9d´ ëª©ë¡\9dì\9d\80 ë°\94ê¹¥ ê·¸ë¦¼ì\9d\98 URLê³¼ ë\8c\80ì¡°í\95  ê²\83ì\9e\85ë\8b\88ë\8b¤.\n#ì\9d´ ëª©ë¡\9dê³¼ ì\9d¼ì¹\98í\95\98ë\8a\94 ê²\83ì\9d\80 ê·¸ë¦¼ì\9d´ ì§\81ì \91 ë³´ì\97¬ì§\80지만, 그렇지 않은 경우 그림을 가리키는 링크만 보이게 될 것입니다.\n#\"#\" 문자에서 줄의 끝까지는 주석입니다\n#이 목록은 대소문자를 구별하지 않습니다\n\n#모든 정규 표현식은 이 줄 위에 넣어 주십시오. 그리고 이 줄은 그대로 두십시오.</pre>",
+       "external_image_whitelist": " #ì\9d´ ì¤\84ì\9d\80 ê·¸ë\8c\80ë¡\9c ë\91\90ì\8b­ì\8b\9cì\98¤<pre>\n#ì \95ê·\9c í\91\9cí\98\84ì\8b\9d(// ì\82¬ì\9d´ì\97\90 ì\9e\88ë\8a\94 ë¶\80ë¶\84\9d\84 ì\95\84ë\9e\98ì\97\90 ì\9e\85ë ¥í\95\98ì\84¸ì\9a\94.\n#ì\9d´ ëª©ë¡\9dì\9d\80 ë°\94ê¹¥ ê·¸ë¦¼ì\9d\98 URLê³¼ ë\8c\80ì¡°í\95  ê²\83ì\9e\85ë\8b\88ë\8b¤.\n#ì\9d´ ëª©ë¡\9dê³¼ ì\9d¼ì¹\98í\95\98ë\8a\94 ê²\83ì\9d\80 ê·¸ë¦¼ì\9c¼ë¡\9c í\91\9cì\8b\9cë\90\98지만, 그렇지 않은 경우 그림을 가리키는 링크만 보이게 될 것입니다.\n#\"#\" 문자에서 줄의 끝까지는 주석입니다\n#이 목록은 대소문자를 구별하지 않습니다\n\n#모든 정규 표현식은 이 줄 위에 넣어 주십시오. 그리고 이 줄은 그대로 두십시오.</pre>",
        "tags": "올바른 편집 태그",
        "tag-filter": "[[Special:Tags|태그]] 필터:",
        "tag-filter-submit": "필터",
        "api-error-ratelimited": "짧은 시간 안에 위키가 허용하는 것 보다 더 많은 파일을 업로드하려고 합니다.\n몇 분 뒤에 다시 시도해 주십시오.",
        "api-error-stashfailed": "내부 오류: 서버가 임시 파일을 저장하지 못했습니다.",
        "api-error-publishfailed": "내부 오류: 서버가 임시 파일을 게시하지 못했습니다.",
-       "api-error-stasherror": "파일을 안전한 곳으로 업로드 하는 동안 오류가 발생했습니다.",
+       "api-error-stasherror": "파일을 미공개 위치로 업로드하는 동안 오류가 발생했습니다.",
        "api-error-stashedfilenotfound": "임시 저장된 파일이 임시 저장소에서 올리려고 했을 때 찾을 수 없었습니다.",
        "api-error-stashpathinvalid": "임시 저장된 파일이 존재해야 할 경로에 유효한 파일이 없습니다.",
        "api-error-stashfilestorage": "파일을 임시 저장하는 동안 오류가 발생했습니다.",
        "limitreport-expansiondepth": "최대 전개 깊이",
        "limitreport-expensivefunctioncount": "부하 높은 파서 함수 수",
        "expandtemplates": "틀 전개",
-       "expand_templates_intro": "이 특수 문서는 글의 모든 틀을 끝까지 풀어 줍니다.\n<code><nowiki>{{</nowiki>#language:…}}</code> 같은 파서 함수나\n<code><nowiki>{{</nowiki>CURRENTDAY}}</code> 같은 변수를 풀어줍니다.\n사실 두개의 중괄호 사이에 있는 것은 거의 모두 풀어줍니다.",
+       "expand_templates_intro": "이 특수 문서는 글의 모든 틀을 끝까지 풀어 줍니다.\n<code><nowiki>{{</nowiki>#language:…}}</code> 같은 파서 함수나\n<code><nowiki>{{</nowiki>CURRENTDAY}}</code> 같은 변수를 풀어줍니다.\n사실 두 개의 중괄호 사이에 있는 것은 거의 모두 풀어줍니다.",
        "expand_templates_title": "문서 이름 ({{FULLPAGENAME}} 등):",
        "expand_templates_input": "전개할 내용:",
        "expand_templates_output": "결과",
        "log-name-pagelang": "언어 바꾸기 기록",
        "log-description-pagelang": "문서 언어를 바꾼 기록입니다.",
        "logentry-pagelang-pagelang": "$1님이 $3의 언어를 $4에서 $5로 {{GENDER:$2|바꾸었습니다}}",
-       "default-skin-not-found": "이런! 당신의 위키에 <code dir=\"ltr\">$wgDefaultSkin</code>에 <code>$1</code>(으)로 지정한 기본 스킨은 사용할 수 없습니다.\n\n설치에는 다음 {{PLURAL:$4|스킨}}이 포함된 것으로 보입니다. 스킨을 활성화{{PLURAL:$4||하고 기본값으로 선택}}하는 방법에 대한 정보에 대해서는 [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: 스킨 설정]을 보세요.\n\n$2\n\n; 미디어위키를 설치했다면:\n: 아마 git에서 설치했거나, 어떤 다른 방법을 사용하여 직접 설치했을 수 있을 것으로 봅니다. [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org의 스킨 디렉터리]에서 어떤 스킨을 설치해보세요:\n:* 여러 스킨과 확장 기능이 들어 있는 [https://www.mediawiki.org/wiki/Download tarball 설치 관리자]를 다운로드하세요. 거기서 <code>skins/</code> 디렉터리를 복사하여 붙여 넣을 수 있습니다.\n:* [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org]에서 개별 스킨 tarball을 다운로드하세요.\n:* 미디어위키 설치의 <code dir=\"ltr\">skins/</code> 디렉터리 안에 git를 통해 <code>mediawiki/skins/*</code> 저장소 중 하나를 복제하세요.\n: 당신이 미디어위키 개발자이면 당신의 git 저장소를 방해하면 안됩니다.\n\n; 미디어위키를 업그레이드했다면:\n: 미디어위키 1.24와 새 버전은 더 이상 설치된 스킨을 자동으로 활성화하지 않습니다 ([https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: 스킨 자동발견]을 보세요). 현재 설치된 {{PLURAL:$5|스킨|모든 스킨}}을 활성화하려면 <code>LocalSettings.php</code> 안에 다음 {{PLURAL:$5|줄}}을 붙여 넣을 수 있습니다:\n\n<pre dir=\"ltr\">$3</pre>\n\n; <code>LocalSettings.php</code>를 수정했다면:\n: 스킨 이름에 오타가 났는지 다시 확인하세요.",
-       "default-skin-not-found-no-skins": "이런! 당신의 위키에 <code dir=\"ltr\">$wgDefaultSkin</code>에 <code>$1</code>(으)로 지정한 기본 스킨은 사용할 수 없습니다.\n\n설치된 스킨은 없습니다.\n\n; 미디어위키를 설치했거나 업그레이드했다면:\n: 아마 git에서 설치했거나, 어떤 다른 방법을 사용하여 직접 설치했을 수 있을 것으로 봅니다. 미디어위키 1.24와 새 버전은 주 저장소에 어떠한 스킨도 포함되어 있지 않습니다. [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org의 스킨 디렉터리]에서 어떤 스킨을 설치해보세요:\n:* 여러 스킨과 확장 기능이 들어 있는 [https://www.mediawiki.org/wiki/Download tarball 설치 관리자]를 다운로드하세요. 거기서 <code>skins/</code> 디렉터리를 복사하여 붙여 넣을 수 있습니다.\n:* [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org]에서 개별 스킨 tarball을 다운로드하세요.\n:* 미디어위키 설치의 <code dir=\"ltr\">skins/</code> 디렉터리 안에 git를 통해 <code>mediawiki/skins/*</code> 저장소 중 하나를 복제하세요.\n: 당신이 미디어위키 개발자이면 당신의 git 저장소를 방해하면 안됩니다. 스킨을 활성화하고 기본값으로 선택하는 방법에 대한 정보에 대해서는 [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: 스킨 설정]을 보세요.",
+       "default-skin-not-found": "이런! 당신의 위키에 <code dir=\"ltr\">$wgDefaultSkin</code>에 <code>$1</code>(으)로 지정한 기본 스킨은 사용할 수 없습니다.\n\n설치에는 다음 {{PLURAL:$4|스킨}}이 포함된 것으로 보입니다. 스킨을 활성화{{PLURAL:$4||하고 기본값으로 선택}}하는 방법에 대한 정보에 대해서는 [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: 스킨 설정]을 보세요.\n\n$2\n\n; 미디어위키를 설치했다면:\n: 아마 git에서 설치했거나, 어떤 다른 방법을 사용하여 직접 설치했을 수 있을 것으로 봅니다. [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org의 스킨 디렉터리]에서 어떤 스킨을 설치해보세요:\n:* 여러 스킨과 확장 기능이 들어 있는 [https://www.mediawiki.org/wiki/Download tarball 설치 관리자]를 다운로드하세요. 거기서 <code>skins/</code> 디렉터리를 복사하여 붙여 넣을 수 있습니다.\n:* [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org]에서 개별 스킨 tarball을 다운로드하세요.\n:* 미디어위키 설치의 <code dir=\"ltr\">skins/</code> 디렉터리 안에 git를 통해 <code>mediawiki/skins/*</code> 저장소 중 하나를 복제하세요.\n: 당신이 미디어위키 개발자이면 당신의 git 저장소를 방해하면 안 됩니다.\n\n; 미디어위키를 업그레이드했다면:\n: 미디어위키 1.24와 새 버전은 더 이상 설치된 스킨을 자동으로 활성화하지 않습니다 ([https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: 스킨 자동발견]을 보세요). 현재 설치된 {{PLURAL:$5|스킨|모든 스킨}}을 활성화하려면 <code>LocalSettings.php</code> 안에 다음 {{PLURAL:$5|줄}}을 붙여 넣을 수 있습니다:\n\n<pre dir=\"ltr\">$3</pre>\n\n; <code>LocalSettings.php</code>를 수정했다면:\n: 스킨 이름에 오타가 났는지 다시 확인하세요.",
+       "default-skin-not-found-no-skins": "이런! 당신의 위키에 <code dir=\"ltr\">$wgDefaultSkin</code>에 <code>$1</code>(으)로 지정한 기본 스킨은 사용할 수 없습니다.\n\n설치된 스킨은 없습니다.\n\n; 미디어위키를 설치했거나 업그레이드했다면:\n: 아마 git에서 설치했거나, 어떤 다른 방법을 사용하여 직접 설치했을 수 있을 것으로 봅니다. 미디어위키 1.24와 새 버전은 주 저장소에 어떠한 스킨도 포함되어 있지 않습니다. [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org의 스킨 디렉터리]에서 어떤 스킨을 설치해보세요:\n:* 여러 스킨과 확장 기능이 들어 있는 [https://www.mediawiki.org/wiki/Download tarball 설치 관리자]를 다운로드하세요. 거기서 <code>skins/</code> 디렉터리를 복사하여 붙여 넣을 수 있습니다.\n:* [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org]에서 개별 스킨 tarball을 다운로드하세요.\n:* 미디어위키 설치의 <code dir=\"ltr\">skins/</code> 디렉터리 안에 git를 통해 <code>mediawiki/skins/*</code> 저장소 중 하나를 복제하세요.\n: 당신이 미디어위키 개발자이면 당신의 git 저장소를 방해하면 안 됩니다. 스킨을 활성화하고 기본값으로 선택하는 방법에 대한 정보에 대해서는 [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: 스킨 설정]을 보세요.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (활성화)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 (<strong>비활성화</strong>)",
        "mediastatistics": "미디어 통계",
        "mw-widgets-dateinput-no-date": "선택된 날짜 없음",
        "mw-widgets-titleinput-description-new-page": "문서가 존재하지 않습니다",
        "mw-widgets-titleinput-description-redirect": "$1 문서로 넘겨주기",
-       "api-error-blacklisted": "이 파일을 설명할 수 있는 다른 제목을 선택하세요.",
        "sessionmanager-tie": "여러 요청 인증 유형 결합할 수 없습니다: $1.",
        "sessionprovider-generic": "$1 세션",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "쿠키 기반 세션",
        "log-action-filter-newusers": "계정 생성 종류:",
        "log-action-filter-patrol": "점검 종류:",
        "log-action-filter-protect": "보호 종류:",
-       "log-action-filter-rights": "권한 변경 종류",
-       "log-action-filter-suppress": "숨기기 종류",
+       "log-action-filter-rights": "권한 변경 종류:",
+       "log-action-filter-suppress": "숨기기 종류:",
        "log-action-filter-upload": "업로드 종류:",
        "log-action-filter-all": "모두",
        "log-action-filter-block-block": "차단",
        "log-action-filter-upload-upload": "새로 업로드",
        "log-action-filter-upload-overwrite": "다시 업로드",
        "authmanager-authn-not-in-progress": "인증이 진행 중이 아니거나 세션 데이터를 분실했습니다. 처음부터 다시 시작해 주십시오.",
+       "authmanager-authn-no-primary": "제공된 자격 증명으로 인증할 수 없습니다.",
+       "authmanager-authn-no-local-user": "자격 증명으로 이 위키의 어느 사용자로도 로그인할 수 없습니다.",
+       "authmanager-authn-no-local-user-link": "제공된 자격 증명은 유효하지만 이 위키의 어느 사용자와도 연결되어 있지 않습니다. 다른 방식으로 로그인하거나, 새로운 사용자를 생성하면 자격 증명을 계정에 추가할 수 있게 됩니다.",
        "authmanager-authn-autocreate-failed": "로컬 계정 자동 생성 실패: $1",
+       "authmanager-change-not-supported": "지정된 자격 증명을 사용하고 있는 곳이 없어서 변경할 수 없습니다.",
        "authmanager-create-disabled": "계정 만들기가 금지되어 있습니다.",
        "authmanager-create-from-login": "계정을 만드려면, 아래의 칸들을 채워 주십시오.",
        "authmanager-create-not-in-progress": "계정 만들기가 진행 중이 아니거나 세션 데이터를 분실했습니다. 처음부터 다시 시작해 주십시오.",
+       "authmanager-create-no-primary": "제공된 자격 증명은 계정 생성에 쓰일 수 없습니다.",
+       "authmanager-link-no-primary": "제공된 자격 증명은 계정을 연결하는 데 쓰일 수 없습니다.",
        "authmanager-link-not-in-progress": "계정 연결이 진행 중이 아니거나 세션 데이터를 분실했습니다. 처음부터 다시 시작해 주십시오.",
        "authmanager-authplugin-setpass-failed-title": "비밀번호 변경 실패",
        "authmanager-authplugin-setpass-failed-message": "인증 플러그인이 비밀번호 변경을 거부했습니다.",
        "authprovider-resetpass-skip-help": "비밀번호 재설정을 건너뜁니다.",
        "authform-nosession-login": "인증은 성공했으나 사용자의 브라우저가 로그인 상태를 저장하지 못했습니다.\n\n$1",
        "authform-nosession-signup": "계정은 생성되었으나 사용자의 브라우저가 로그인 상태를 저장하지 못했습니다.\n\n$1",
+       "authform-newtoken": "토큰이 없습니다. $1",
+       "authform-notoken": "토큰이 없습니다",
        "authform-wrongtoken": "잘못된 토큰",
        "specialpage-securitylevel-not-allowed-title": "허용하지 않음",
+       "specialpage-securitylevel-not-allowed": "자격을 확인할 수 없으므로 이 페이지를 사용할 수 없습니다.",
        "authpage-cannot-login": "로그인을 시작할 수 없습니다.",
        "authpage-cannot-login-continue": "로그인을 계속할 수 없습니다. 사용자 세션의 시간이 초과되었을 가능성이 높습니다.",
        "authpage-cannot-create": "계정 만들기를 시작할 수 없습니다.",
        "authpage-cannot-link-continue": "계정 연결을 계속할 수 없습니다. 사용자 세션의 시간이 초과되었을 가능성이 높습니다.",
        "cannotauth-not-allowed-title": "권한이 없음",
        "cannotauth-not-allowed": "이 문서의 이용을 허용하지 않습니다.",
-       "changecredentials-submit": "수정",
-       "changecredentials-submit-cancel": "취소",
-       "removecredentials-submit": "제거",
-       "removecredentials-submit-cancel": "취소",
+       "changecredentials": "자격 증명 수정",
+       "changecredentials-submit": "자격 증명 수정",
+       "changecredentials-invalidsubpage": "$1은 유효한 자격 증명이 아닙니다.",
+       "changecredentials-success": "자격 증명이 변경되었습니다.",
+       "removecredentials": "자격 증명 제거",
+       "removecredentials-submit": "자격 증명 제거",
+       "removecredentials-invalidsubpage": "$1은(는) 유효한 자격 증명이 아닙니다.",
+       "removecredentials-success": "자격 증명이 제거되었습니다.",
+       "credentialsform-provider": "자격 증명:",
        "credentialsform-account": "계정 이름:",
        "cannotlink-no-provider-title": "연결할 수 있는 계정이 없음",
        "cannotlink-no-provider": "연결할 수 있는 계정이 없습니다.",
        "linkaccounts-success-text": "계정이 연결되었습니다.",
        "linkaccounts-submit": "계정 연결",
        "unlinkaccounts": "계정 연결 해제",
-       "unlinkaccounts-success": "계정의 연결이 해제되었습니다."
+       "unlinkaccounts-success": "계정의 연결이 해제되었습니다.",
+       "authenticationdatachange-ignored": "인증 데이터 변경을 처리하지 못했습니다. 제공자를 설정하지 않으셨습니까?"
 }
index 2cc313f..9bf914e 100644 (file)
        "templatesusedpreview": "Одзвыв нёджалан листбок вылiсь {{PLURAL:$1|1=шаблон|шаблоннэз}}:",
        "template-protected": "(дорйöм)",
        "template-semiprotected": "(мымдакö дорйöм)",
-       "hiddencategories": "Этiя листбок пырö $1 {{PLURAL:$1|сайöвтöм категория|сайöвтöм категорияэз|сайöвтöм категория}} коласö:",
+       "hiddencategories": "Этiя листбок пырö $1 {{PLURAL:$1|сайöвтöм категория|сайöвтöм категория|сайöвтöм категорияэз}} коласö:",
        "permissionserrorstext-withaction": "Тэныт оз позь керны $2 то {{PLURAL:$1|1=мыля|мыля}}:",
        "viewpagelogs": "Мыччавны журналлэз этiя листбок понда",
        "currentrev": "Медбöрья версия",
        "block-log-flags-nocreate": "виль уджкерисьöн лоны оз позь",
        "movepagetext": "Кöр улiсь форма сьöртi вежан нимсö листбокыслiсь, öтдырйи вештан мöдлаö и вильмöтöм сьöртi журналсö. Важ ним лоас иньдöтанöн виль ним дынö. Тэ верман автоматическöя вильмöтны нiйо иньдöтаннэсö, кöдна ыстiсö важ ним дынö. Он кö кер сiдз, видзöт жö [[Special:DoubleRedirects|кыкпöвса]] да [[Special:BrokenRedirects|орöтöм иньдöтöммесö]]. Тэ ачыт видзан кыв сы понда, медбы ыстöттэз и одзлань вайöтiсö, сэтчö, кытчö колö. Тöд, листбокыслöн нимыс оз вежсьы, кöр виль нима листбокыс эм ни, и сыкоста оз ло мöдлаö иньдöтанöн нето тыртöмöн, и сэтчин абу мöдкодьсьöтöммес . Сiдзкö тэ верман сетны листбокыслö ним, кöда сылöн öнтай вöлi, сорасин кö ним вежико, но тэ он вермы казявтöг чышкыны тыр листбок.\n'''Тöд!'''\nНим вежöмыссянь вермасö лоны ыджыт и виччисьтöм мöдкодьсьöтöммез «йöзлы радейтана» листбоккез вылын.\nБура жö думайт сы вотодз, кыдз пондан мыйко керны, мый вермас этасянь аркмыны.",
        "movepagetalktext": "Сы йылiсь сёрнитан сiдзжö керсяс виль нимаöн аспонадсис. Но кöр:\n* Сэтшöм жö нима пондöтöм листбокыс эм ни, нето\n* Абу сувтöтöмыт улiсьжык ыбкоддьöмо вожок, сэк ковсяс вештыны нето öтлаöтны листбоккесö  кипонiсь.",
-       "movearticle": "Вежны листбокыслiсь ним:",
        "newtitle": "Виль ним:",
        "move-watch": "Пыртны этiйö листбоксö синмалöм понда нимлёдзö",
        "movepagebtn": "Вежны листбоклiсь ним",
index 3a4caa7..18976ba 100644 (file)
        "protectedpagetext": "Редакторлукъ неда башха зат этилмез ючюн бу бет джакъланыбды.",
        "viewsourcetext": "Сиз бу бетни башланнган текстине къараргъа эм аны копия этерге боллукъсуз:",
        "viewyourtext": "Бу бетде '''кесигизни тюрлендириулеригизни''' къайнакъ текстине къараргъа эм копия этерге боллукъсуз:",
-       "protectedinterface": "Бу бетде программаны интерфейс билдириую барды.\nБютеу викиледе да бу билдириуню кёчюрмесин къошар неда тюрлендирир ючюн MediaWiki-ни локализациясыны сайты [//translatewiki.net/ translatewiki.net]-ни хайырландырыгъыз.",
-       "editinginterface": "'''Эс бёл:''' Сен системаны интерфейс бетин тюрлендире тураса. Бу, викини башха къошулуучуларына да тиерик затды. Кёчюрюр ючюн неда кёчюрмелени тюрлендирир ючюн, MediaWiki-ни локализация этиу проекти [//translatewiki.net/ translatewiki.net]-ни хайырландырыгъыз.",
+       "protectedinterface": "Бу бетде программаны интерфейс билдириую барды.\nБютеу викиледе да бу билдириуню кёчюрмесин къошар неда тюрлендирир ючюн MediaWiki-ни локализациясыны сайты [https://translatewiki.net/ translatewiki.net]-ни хайырландырыгъыз.",
+       "editinginterface": "'''Эс бёл:''' Сен системаны интерфейс бетин тюрлендире тураса. Бу, викини башха къошулуучуларына да тиерик затды. Кёчюрюр ючюн неда кёчюрмелени тюрлендирир ючюн, MediaWiki-ни локализация этиу проекти [https://translatewiki.net/ translatewiki.net]-ни хайырландырыгъыз.",
        "cascadeprotected": "Бу бет тюрлениуледен джакъланыбды, ол каскадлы джакълау къабыл этилиннген {{PLURAL:$1|бетге|бетлеге}} киргени ючюндю:\n$2",
        "namespaceprotected": "«$1» ат аламда бетлени тюрлендирирге эркинлигигиз джокъду.",
        "customcssprotected": "Бу CSS-бетни тюрлендирирге эркинлигигиз джокъду, бу бетде башха къошулуучуну энчи джарашдырыулары барды.",
        "allmessagesname": "Ат",
        "allmessagesdefault": "Оригинал текст",
        "allmessagescurrent": "Хайырлана тургъан текст",
-       "allmessagestext": "Бу тизме MediaWiki ат аламында бар болгъан система билдириулени тизмесиди.\nMediaWiki локализациясына юлюш къошаргъа излей эсегиз, [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki локализация] бла [//translatewiki.net translatewiki.net] сайтлагъа киригиз.",
+       "allmessagestext": "Бу тизме MediaWiki ат аламында бар болгъан система билдириулени тизмесиди.\nMediaWiki локализациясына юлюш къошаргъа излей эсегиз, [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki локализация] бла [https://translatewiki.net translatewiki.net] сайтлагъа киригиз.",
        "allmessagesnotsupportedDB": "'''$wgUseDatabaseMessages''' джабыкъ болгъаны ючюн '''{{ns:special}}:Allmessages''' хайырланыугъа ачыкъ тюлдю.",
        "allmessages-filter-legend": "Фильтр",
        "allmessages-filter": "Тюрлендириуюне кёре фильтрлендир:",
index aab1026..ede9c55 100644 (file)
        "actions": "Actiòndèm",
        "namespaces": "Nemspasiodèm",
        "variants": "Variantdèm",
+       "navigation-heading": "Navigeshòn mènu",
        "errorpagetitle": "Èrròr",
        "returnto": "Go bak $1.",
        "tagline": "Dhis kòmòt {{SITENAME}}",
        "printableversion": "Printebul versiòn",
        "permalink": "Pèrmanènt link",
        "print": "Print",
+       "view": "Viu",
        "edit": "Èdit",
        "create": "Kreat",
        "editthispage": "Èdit dhis pej",
        "nstab-template": "Tèmplat",
        "nstab-help": "Hèppej",
        "nstab-category": "Katègòri",
+       "mainpage-nstab": "Men Pej",
        "nosuchaction": "Dha kain aktiòn nò de",
        "nosuchactiontext": "Dhi wiki nò de ùndarstan dhi aktiòn we dhi URL tèll am fòdu",
        "nosuchspecialpage": "Dha kain spèshial pej nò de",
        "badtitle": "Bad titulo",
        "viewsource": "Luk dhi sòrs",
        "yourname": "Yuzmannem:",
+       "userlogin-yourname": "Yuzarnem:",
+       "userlogin-yourname-ph": "Rait yu yuzarnem",
        "yourpassword": "Passwòrd",
+       "userlogin-yourpassword": "Passwòrd",
+       "createacct-yourpassword-ph": "Rait passwòrd",
        "yourpasswordagain": "Retayp passwòrd",
+       "createacct-yourpasswordagain": "Kònfarm passwòrd",
+       "createacct-yourpasswordagain-ph": "Rerait passwòrd",
        "login": "Lògin",
        "nav-login-createaccount": "Lògin / Mek yu yon akkaunt",
        "userlogin": "Lògin / Mek yu yon akkaunt",
        "createaccount": "Kreat yu yon akkaunt",
        "gotaccount": "Yu dòn mek yu akkaunt? '''$1'''.",
        "gotaccountlink": "Lògin",
+       "createacct-emailoptional": "Email (òpshòn)",
+       "createacct-email-ph": "Rait yu email",
        "createaccountmail": "Yuz shòrttèm randòm passwòrd èn sèn am go dhi imel address we spesifay",
+       "createacct-submit": "Kreat yu yon akkaunt",
        "badretype": "Dhi passwòrddèm we yu taip nò mach.",
        "userexists": "Odhar pòrsin de yuz dha yuzmannem.\nYu go gèt fòr pik differènt wan.",
        "mailmypassword": "Resèt passwòrd",
        "loginlanguagelabel": "Tòk: $1",
+       "pt-login": "Lògin",
+       "pt-login-button": "Lògin",
+       "pt-createaccount": "Kreat yu yon akkaunt",
+       "pt-userlogout": "Lògòt",
        "bold_sample": "Bold tèkst",
        "bold_tip": "Bold tèkst",
        "italic_sample": "Italik tèkst",
        "anoneditwarning": "'''Tek tèm o:''' Yu nò lògin yet.\nSo dèn go sev yu IP addrèss na dhi pejim èdithistoria",
        "missingsummary": "'''Mèmbar se:''' yu nò mek èditsùmmari.\nIf yu prèss sev bak, dhèm go sev yu èdit nòmor.",
        "missingcommenttext": "Rait yu kòmmènt ùndar hyar",
+       "loginreqlink": "lògin",
        "newarticle": "(Nyu)",
        "editing": "De èdit $1",
        "editingsection": "De èdit $1 (sèktiòn)",
        "yourrealname": "Real nem",
        "newuserlogpage": "Yuzman kreattin lòg",
        "action-edit": "èdit dhis pej",
+       "enhancedrc-history": "history",
        "recentchanges": "Resènt chenjdèm",
        "recentchanges-legend": "Risènt chenj òptiòndèm",
        "recentchanges-label-newpage": "Dhis edit kreat nyu pej",
        "recentchanges-label-bot": "Na bòt perform dhis èdit",
        "recentchanges-label-unpatrolled": "Dhis èdit nò patrol yet",
        "rcshowhideminor": "$1 smòll editdèm",
+       "rcshowhideminor-show": "Show",
+       "rcshowhideminor-hide": "Haid",
+       "rcshowhidebots-show": "Show",
+       "rcshowhidebots-hide": "Haid",
        "rcshowhideliu": "$1 yuzmandèm we dòn règistar",
+       "rcshowhideliu-hide": "Haid",
        "rcshowhideanons": "$1 nògètnem yuzmandèm",
+       "rcshowhideanons-show": "Show",
+       "rcshowhideanons-hide": "Haid",
        "rcshowhidemine": "$1 mi èditdèm",
+       "rcshowhidemine-show": "Show",
+       "rcshowhidemine-hide": "Haid",
        "diff": "diff",
        "hist": "hist",
        "hide": "Haid",
        "watchthisupload": "Wach dhis fail",
        "file-anchor-link": "Fail",
        "filehist": "failhistòria",
+       "filehist-help": "Klik pan det/tèm fòr luk dhi fail lèkkè haw i bin be dha tèm dher",
        "filehist-deleteone": "delet",
        "filehist-current": "kùrrènt",
        "filehist-datetime": "Dat/Tèm",
        "nolinkstoimage": "Nò pej nò de we de link kam dhis fail hyar.",
        "filedelete-submit": "Delet",
        "randompage": "Randòm pej",
+       "randomincategory-submit": "Go",
        "statistics": "Statistikdèm",
        "brokenredirects-edit": "èdit",
        "brokenredirects-delete": "delet",
        "movethispage": "Muf dhis pej hyar",
        "booksources": "Buk sòrsdèm",
        "booksources-search-legend": "Sarcg fòr buk sòrsdèm",
+       "booksources-search": "Sarch",
        "log": "Lògdèm",
        "allpages": "Òll pejdèm",
        "allarticles": "Òll pejdèm",
        "allpagessubmit": "Go",
        "categories": "Katègòridèm",
        "linksearch-ok": "Sarch",
+       "activeusers-submit": "sho",
        "listgrouprights-members": "(member list)",
        "emailuser": "Emel dhis yuzman",
        "watchlist": "Wachlist",
        "tooltip-pt-mycontris": "Yu kòntribushònlist",
        "tooltip-pt-login": "I go bèttèr if yu lògin, bùt i nò mandatòri",
        "tooltip-pt-logout": "Lògòt",
+       "tooltip-pt-createaccount": "Wi ènkòrej yu fòr kreat yu yon akkaunt èn lògin bùt nòto mandatòry kòndishòn",
        "tooltip-ca-talk": "Diskùsshòn bòt dhi kòntènt pej",
-       "tooltip-ca-edit": "Yu ebul fòr èdit dhis pej hyar\nBùt yuz dhi prevyu bùtin bifor yu sev",
+       "tooltip-ca-edit": "Èdit dhis pej",
        "tooltip-ca-addsection": "Start nyu sèkshòn.",
        "tooltip-ca-viewsource": "Dèn dòn protèkt dhis pej hyar.\nYu go ebul luk im sòrs.",
        "tooltip-ca-history": "Dhis pejim ol versiòndèm.",
        "tooltip-t-permalink": "Pèrmanènt link fòr go dhis vèrsiòn",
        "tooltip-ca-nstab-main": "Luk kòntènt pej",
        "tooltip-ca-nstab-user": "Luk dhi yuzmanpej",
+       "tooltip-ca-nstab-special": "Dhis na spèshal pej we nò kin èdito",
        "tooltip-ca-nstab-project": "Luk dhi projèkt pej",
        "tooltip-ca-nstab-image": "Luk dhi fail pej",
        "tooltip-ca-nstab-template": "Vyu dhi tèmplat",
        "tooltip-compareselectedversions": "Si dhi difèrèntia pan dhi pejim tu vèrsiòndèm we dòn selèkt",
        "tooltip-watch": "Put dhis pej na yu wachlist",
        "tooltip-summary": "Èntar shòrt sùmmari",
+       "pageinfo-toolboxlink": "Pej infòrmeshòn",
+       "previousdiff": "Mòr-ol èdit",
        "file-nohires": "Rèsòlutiòn we haih pass dhis nò de",
        "show-big-image": "Original fail",
        "ilsubmit": "Sarch",
        "metadata": "Mètadata",
+       "exif-orientation-1": "Nòrmal",
        "namespacesall": "òll",
        "monthsall": "òll",
        "confirmemail": "Kònfirm yu emel addrèss",
        "table_pager_limit_submit": "Go",
        "watchlisttools-edit": "Vyu èn èdit wachlist",
        "fileduplicatesearch-submit": "Sarch",
-       "specialpages": "Spèshal pejdèm"
+       "specialpages": "Spèshal pejdèm",
+       "searchsuggest-search": "Sarch"
 }
diff --git a/languages/i18n/krl.json b/languages/i18n/krl.json
new file mode 100644 (file)
index 0000000..17f733d
--- /dev/null
@@ -0,0 +1,518 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Flrn",
+                       "Ilja.mos",
+                       "Likopiän tyttö",
+                       "Mashoi7",
+                       "Matma Rex",
+                       "Ontoi",
+                       "Theunitedstatesofme",
+                       "Varvana"
+               ]
+       },
+       "tog-oldsig": "Nykyni allakirjutuš",
+       "tog-showhiddencats": "Näytä peitetyt luokat",
+       "underline-always": "Aina",
+       "underline-never": "Konšana",
+       "sunday": "Pyhäpäivä",
+       "monday": "Enšiarki",
+       "tuesday": "Toiniarki",
+       "wednesday": "Serota",
+       "thursday": "Nelläšpäivä",
+       "friday": "Piätinččä",
+       "saturday": "Šuovatta",
+       "sun": "Pyh",
+       "mon": "Enš",
+       "tue": "Toin",
+       "wed": "Ser",
+       "thu": "Nel",
+       "fri": "Piä",
+       "sat": "Šuo",
+       "january": "Pakkaiskuu",
+       "february": "Tuiskukuu",
+       "march": "Kevätkuu",
+       "april": "Šulakuu",
+       "may_long": "Oraškuu",
+       "june": "Kešäkuu",
+       "july": "Heinäkuu",
+       "august": "Elokuu",
+       "september": "Šyyškuu",
+       "october": "Šajekuu",
+       "november": "Pimiekuu",
+       "december": "Talvikuu",
+       "january-gen": "Pakkaiskuu",
+       "february-gen": "Tuiskukuu",
+       "march-gen": "Kevätkuu",
+       "april-gen": "Šulakuu",
+       "may-gen": "Oraškuu",
+       "june-gen": "Kešäkuu",
+       "july-gen": "Heinäkuu",
+       "august-gen": "Elokuu",
+       "september-gen": "Šyyškuu",
+       "october-gen": "Šajekuu",
+       "november-gen": "Pimiekuu",
+       "december-gen": "Talvikuu",
+       "jan": "Pak",
+       "feb": "Tuis",
+       "mar": "Kev",
+       "apr": "Šul",
+       "may": "Oraš",
+       "jun": "Keš",
+       "jul": "Hein",
+       "aug": "Elok",
+       "sep": "Šyyš",
+       "oct": "Šaj",
+       "nov": "Pim",
+       "dec": "Tal",
+       "january-date": "$1. pakkaiskuuta",
+       "february-date": "$1. tuiskukuuta",
+       "march-date": "$1. kevätkuuta",
+       "april-date": "$1. šulakuuta",
+       "may-date": "$1. oraškuuta",
+       "june-date": "$1. kešäkuuta",
+       "july-date": "$1. heinäkuuta",
+       "august-date": "$1. elokuuta",
+       "september-date": "$1. šyyškuuta",
+       "october-date": "$1. šajekuuta",
+       "november-date": "$1. pimiekuuta",
+       "december-date": "$1. talvikuuta",
+       "pagecategories": "{{PLURAL:$1|Luokka|Luokat}}",
+       "category_header": "Šivut, kumpaset ollah luokašša $1",
+       "subcategories": "Alaluokat",
+       "category-media-header": "Medijafailit luokašša «$1»",
+       "hidden-categories": "{{PLURAL:$1|Peitetty luokka|Peitetyt luokat}}",
+       "hidden-category-category": "Peitetyt luokat",
+       "category-subcat-count": "{{PLURAL:$2|Täššä luokašša on vain tämä alaluokka.|Täššä luokašša on nämä {{PLURAL:$1|subcategory|$1 alaluokkua}}, kaikkieštah $2.}}",
+       "category-article-count": "{{PLURAL:$2|Täššä luokašša on vain tämä šivu.|{{PLURAL:$1|Tämä šivu on|$1 Nämä šivut ollah}} täššä luokašša, $2 kaikkieštah.}}",
+       "category-file-count": "{{PLURAL:$2|Täššä luokašša on vain tämä šivu.|{{PLURAL:$1|Tämä šivu on|$1 Nämä šivut ollah}} täššä luokašša, $2 kaikkieštah.}}",
+       "listingcontinuesabbrev": "jatkuu",
+       "about": "Tietuo",
+       "article": "Šivu",
+       "newwindow": "(avautuu uuvešša ikkunašša)",
+       "cancel": "Keškeytä",
+       "moredotdotdot": "Lisyä...",
+       "mypage": "Šivu",
+       "mytalk": "Pakinat",
+       "navigation": "Navigacija",
+       "and": "&#32;ta",
+       "qbfind": "Eči",
+       "qbedit": "Kohenna",
+       "qbpageoptions": "Tämä šivu",
+       "qbmyoptions": "Omat šivut",
+       "namespaces": "Nimitilat",
+       "variants": "Variantit",
+       "navigation-heading": "Navigacija",
+       "errorpagetitle": "Hairahuš",
+       "returnto": "Myöššy šivulla $1.",
+       "tagline": "Lähteh {{SITENAME}}",
+       "help": "Kyšy apuo",
+       "search": "Eči",
+       "searchbutton": "Eči",
+       "go": "Mäne",
+       "searcharticle": "Mäne",
+       "history": "Šivun istorija",
+       "history_short": "Istorija",
+       "printableversion": "Painattava versijo",
+       "permalink": "Vakituini linkki",
+       "view": "Näytä",
+       "view-foreign": "Näytä $1",
+       "edit": "Kohentele",
+       "create": "Luaji šivu",
+       "create-local": "Lisyä paikallini kuvauš",
+       "editthispage": "Kohentele tätä šivuo",
+       "create-this-page": "Luaji tämä šivu",
+       "delete": "Poistua",
+       "deletethispage": "Poissa tämä šivu",
+       "newpage": "Uuši šivu",
+       "talkpagelinktext": "pakina",
+       "personaltools": "Henkilökohtaset ruatokalut",
+       "talk": "Pakina",
+       "views": "Kačonnat",
+       "toolbox": "Ruatokalut",
+       "otherlanguages": "Muilla kielillä",
+       "redirectedfrom": "(Šiirretty sivulta $1)",
+       "redirectto": "Ohjauš šivulla:",
+       "lastmodifiedat": "Viimesekši tätä šivuo on kohenneltu $1, $2 aikah.",
+       "jumpto": "Šiirry:",
+       "jumptonavigation": "navigacija",
+       "jumptosearch": "eči",
+       "aboutsite": "Tietuo {{SITENAME}}",
+       "aboutpage": "Project:Tietoja",
+       "copyrightpage": "{{ns:project}}:Tekijänoikeuvet",
+       "currentevents": "Ajankohtaset tapahtumat",
+       "currentevents-url": "Project:Ajankohtaset tapahukšet",
+       "disclaimers": "Vaštuuvapauš",
+       "disclaimerpage": "Project:Vaštuuvapauš",
+       "edithelp": "Apu kohentelomiseh",
+       "mainpage": "Piäšivu",
+       "mainpage-description": "Piäšivu",
+       "portal": "Ryhmän portali",
+       "portal-url": "Project:Ryhmän portali",
+       "privacy": "Tietošuojakäytäntö",
+       "privacypage": "Project:Tietošuojakäytäntö",
+       "ok": "OK",
+       "retrievedfrom": "Lähte - \"$1\"",
+       "youhavenewmessages": "{{PLURAL:$3|Šiula on}} $1 ($2).",
+       "editsection": "kohentele",
+       "editold": "kohenna",
+       "viewsourceold": "näytä wikiteksti",
+       "editlink": "kohentele",
+       "viewsourcelink": "näytä lähtehkoodi",
+       "editsectionhint": "Korjua ošua: $1",
+       "toc": "Šisällyšluvettelo",
+       "showtoc": "näytä",
+       "hidetoc": "peitä",
+       "confirmable-yes": "Kyllä",
+       "confirmable-no": "Ei",
+       "viewdeleted": "Näytä $1?",
+       "site-rss-feed": "$1-RSS-šyöteh",
+       "site-atom-feed": "$1-Atom-šyöteh",
+       "page-atom-feed": "\"$1\" Atom-šyöteh",
+       "red-link-title": "$1 (šivuo ei ole)",
+       "nstab-main": "Šivu",
+       "nstab-user": "Käyttäjäšivu",
+       "nstab-media": "Mediašivu",
+       "nstab-special": "Toimintosivu",
+       "nstab-project": "Projektišivu",
+       "nstab-image": "Faili",
+       "nstab-template": "Malli",
+       "nstab-category": "Luokka",
+       "mainpage-nstab": "Piäšivu",
+       "error": "Hairahuš",
+       "databaseerror-query": "Kyšely: $1",
+       "databaseerror-error": "Hairahuš: $1",
+       "badtitle": "Šivun nimi ei kelpua",
+       "badtitletext": "Šiun annetti šivunimi oli virheellini, tyhjä tahi viärin linkitetty kielienvälini tahi wikienvälini nimi.\nSiinä suattau olla yksi tahi usiempi sellani merkki, kumpasta ei voi käyttyä šivujen nimissä.",
+       "viewsource": "näytä lähtehkoodi",
+       "yourname": "Käyttäjänimi:",
+       "userlogin-yourname": "Käyttäjänimi",
+       "userlogin-yourname-ph": "Kirjuta käyttäjänimi",
+       "yourpassword": "Tunnuššana:",
+       "userlogin-yourpassword": "Tunnuššana",
+       "userlogin-yourpassword-ph": "Kirjuta tunnuššana",
+       "createacct-yourpassword-ph": "Kirjuta tunnuššana",
+       "createacct-yourpasswordagain": "Vahvista tunnuššana",
+       "createacct-yourpasswordagain-ph": "Kirjuta tunnuššana uuvveštah",
+       "userlogin-remembermypassword": "Pijä miut kirjuttautunuona",
+       "login": "Kirjauvu šiämeh",
+       "nav-login-createaccount": "Kirjauvu šiämeh / rekisteriyvy",
+       "userlogin": "Kirjauvu šiämeh / rekisteriyvy",
+       "userloginnocreate": "Kirjauvu šiämeh",
+       "logout": "Kirjauvu pois",
+       "userlogout": "Kirjauvu pois",
+       "userlogin-noaccount": "Eikö šiula vielä ole käyttäjätunnušta?",
+       "userlogin-joinproject": "Liity {{SITENAME}}",
+       "createaccount": "Luaji käyttäjätili",
+       "gotaccountlink": "Kirjauvu šiämeh",
+       "userlogin-resetpassword-link": "Unohitko tunnuššanan?",
+       "userlogin-helplink2": "Apu kirjuttautumiseh",
+       "createacct-emailoptional": "Sähköpostiadressi (ei tarviče vältämättäh kirjuttua)",
+       "createacct-email-ph": "Kirjuta oma sähkopostiadressi",
+       "createaccountreason": "Šyy:",
+       "createacct-reason": "Šyy",
+       "createacct-submit": "Luaji oma käyttäjätunnuš",
+       "createacct-benefit-heading": "{{SITENAME}} on šiun kaltasien ihmisien luatima.",
+       "createacct-benefit-body1": "{{PLURAL:$1|kohennuš|kohennukšet}}",
+       "createacct-benefit-body2": "$1 {{PLURAL:$1|šivu|šivuo}}",
+       "createacct-benefit-body3": "{{PLURAL:$1|Jälkimmäini käyttäjä|Jälkimmäistä käyttäjyä}}",
+       "loginlanguagelabel": "Kieli: $1",
+       "pt-login": "Kirjuttauvu",
+       "pt-login-button": "Kirjauvu šiämeh",
+       "pt-createaccount": "Luo tunnuš",
+       "pt-userlogout": "Kirjauvu pois",
+       "oldpassword": "Vanha tunnuššana:",
+       "newpassword": "Uuši tunnuššana:",
+       "passwordreset": "Kirjuta šalašana uuvveštah",
+       "passwordreset-username": "Käyttäjänimi:",
+       "passwordreset-domain": "Domain:",
+       "bold_sample": "Sankie teksta",
+       "bold_tip": "Sankie teksta",
+       "italic_sample": "Kuršivoitu teksti",
+       "italic_tip": "Kuršivointa",
+       "link_sample": "Linkki",
+       "link_tip": "Šiämilinkki",
+       "extlink_sample": "http://www.example.com linkin nimi",
+       "extlink_tip": "Ulkohini linkki (musta http:// alkuh)",
+       "headline_sample": "Rupriekkatekšta",
+       "headline_tip": "Tašon 2 rupriekka",
+       "nowiki_sample": "Lisyä täh teksti, kumpaista ei pijä korjata",
+       "nowiki_tip": "Penkuo wiki-korjaušta",
+       "image_tip": "Tallennettu faili",
+       "media_tip": "Linkki failih",
+       "sig_tip": "Teijän allakirjutuš ta aika",
+       "hr_tip": "Horišontualini viiva (älä käytä liijakši)",
+       "summary": "Yhtehveto",
+       "minoredit": "Tämä on pieni muutoš",
+       "watchthis": "Tarkkaile tätä šivuo",
+       "savearticle": "Tallenna šivu",
+       "showpreview": "Esikačo",
+       "showdiff": "Näytä muutokšet",
+       "anoneditwarning": "<strong>Varotuš:</strong> Et ole kirjuttautun šisäh. Šiun IP-ošoiteh näkyy julkisešti kaikilla, još luatinet kohennukšie. Još <strong>[$1 kirjuttauvut šisäh]</strong> tahi <strong>[$2 luot tunnukšen]</strong>, šiun kohennukšet kirjatah šiun käyttäjätunnukšeš luatimiksi ta šamalla šuat käyttöh hyövyllisie välinehie.",
+       "blockednoreason": "ei šyytä annettu",
+       "loginreqlink": "kirjauvu šiämeh",
+       "newarticle": "(Uuši)",
+       "newarticletext": "Olet piätynyn šivulla, kumpasta ei ole. Ku luatie šivu, rupie kirjuttamah alla olijah juaššiekkah (kačo [$1 ohjavošivulta] lisätietuo).\nKu ollet piätynyn tänne petties, käytä livaimen <strong>mennä järilleh</strong>-toimintuo.",
+       "noarticletext": "Tällä šivulla ei ole juuri nyt tekstie.\nVoit [[Special:Search/{{PAGENAME}}|eččie šivun nimellä]] muilta šivuilta,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} eččie šitä koškijua logie],\ntahi [{{fullurl:{{FULLPAGENAME}}|action=edit}} luuvva tämän šivun]</span>.",
+       "noarticletext-nopermission": "Tällä šivulla ei ole juuri nyt tekstie.\nVoit [[Special:Search/{{PAGENAME}}|eččie šivun nimellä]] muilta šivuilta, tahi <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} eččie šivuo koškijua logie]</span>, ka šiula ei ole oikeutta luuvva tätä šivuo.",
+       "editing": "Kohennellah sivuu $1",
+       "creating": "Luajitah šivuu \"$1\"",
+       "editingsection": "Kohennellah $1 (alaluku)",
+       "templatesused": "Tällä šivulla {{PLURAL:$1|käytetty malli|käytetyt mallit}}:",
+       "template-protected": "(šuojattu)",
+       "template-semiprotected": "(ošittain šuojattu)",
+       "hiddencategories": "Tämä šivu kuuluu {{PLURAL:$1|1 peitettyh kategorijah|$1 peitettylöih kategorijoih}}:",
+       "permissionserrorstext-withaction": "Šiula ei ole oikeutta {{lcfirst:$2}} {{PLURAL:$1|šeuruavašta šyyštä|šeuruavista šyistä}}:",
+       "moveddeleted-notice": "Tämä šivu on otettu iäre. Šivun iäreotanta- ta siirtoistorija ollah annettu alla viittavuksena.",
+       "viewpagelogs": "Näytä tämän šivun lokit",
+       "currentrev-asof": "Nykyni versija $1",
+       "revisionasof": "Versija $1",
+       "revision-info": "Versija $1 {{GENDER:$6|$2}}$7",
+       "previousrevision": "← Vanhempi versija",
+       "nextrevision": "Uuvvempi versija →",
+       "currentrevisionlink": "Nykyni versija",
+       "cur": "nyk.",
+       "last": "iell.",
+       "page_last": "iell.",
+       "rev-delundel": "muuta näkyvyttä",
+       "history-title": "Šivun ”$1” muutošistorija",
+       "difference-title": "Ero šivun ”$1” versijien välillä",
+       "lineno": "Rivi $1:",
+       "editundo": "lakauttua",
+       "diff-multi-sameuser": "({{PLURAL:$1|Yksi keskitason versija |$1 keskitason versijua}} samalta käyttäjältä ei näytetty)",
+       "searchresults": "Eččimisen tulokšet",
+       "searchresults-title": "Eči \"$1\"",
+       "prevn": "iellini {{PLURAL:$1|$1}}",
+       "nextn": "tulija {{PLURAL:$1|$1}}",
+       "nextn-title": "Šeuruava $1 {{PLURAL:$1|tuloš|tulokšet}}",
+       "shown-title": "Näytä $1 {{PLURAL:$1|tuloš|tulošta}} šivulla",
+       "viewprevnext": "Näytä ($1 {{int:pipe-separator}} $2) ($3)",
+       "searchmenu-new": "<strong>Luaji šivu \"[[:$1]]\" täh wikih!</strong> {{PLURAL:$2|0=|Kačo niise šiun eččolla löyvetyt šivut.|Kačo niise löyvetyt ečon tulokšet.}}",
+       "searchprofile-articles": "Šisältöšivut",
+       "searchprofile-images": "Multimedija",
+       "searchprofile-everything": "Kaikki",
+       "searchprofile-advanced": "Levennetty",
+       "searchprofile-articles-tooltip": "Eči kohašta $1",
+       "searchprofile-images-tooltip": "Eči failija",
+       "searchprofile-everything-tooltip": "Eči kaikilta šivuloilta (niise pakinoista)",
+       "searchprofile-advanced-tooltip": "Eči miärätyistä nimitiloista",
+       "search-result-size": "$1 ({{PLURAL:$2|1 šana|$2 šanua}})",
+       "search-redirect": "(šiirretty $1)",
+       "search-section": "(alaluku $1)",
+       "search-suggest": "Tarkoititko: $1",
+       "searchall": "kaikki",
+       "search-showingresults": "{{PLURAL:$4|Tuloš <strong>$1</strong> / <strong>$3</strong>|Tulokšet <strong>$1 - $2</strong> / <strong>$3</strong>}}",
+       "search-nonefound": "Kyšelyh ei löytyn tulokšie.",
+       "mypreferences": "Ašetukšet",
+       "searchresultshead": "Ečindy",
+       "right-writeapi": "Käyttyä kirjutuš-APIe",
+       "newuserlogpage": "Uušien käyttäjien luvettelo",
+       "enhancedrc-history": "istorija",
+       "recentchanges": "Uuvvet muutokšet",
+       "recentchanges-legend": "Verekšien kohennukšien ašetukšet",
+       "recentchanges-summary": "Tällä šivulla voit šeurata verekšie täh wikih luajittuja muutokšie.",
+       "recentchanges-label-newpage": "Tämä kohennuš on johtan uuvven šivun luatimiseh",
+       "recentchanges-label-minor": "Tämä on pieni kohennuš",
+       "recentchanges-label-bot": "Tämän kohennukšen šuoritti botti",
+       "recentchanges-label-unpatrolled": "Tätä kohennušta ei ole vielä tarkissettu",
+       "recentchanges-label-plusminus": "Šivu on kašvan [] baitilla",
+       "recentchanges-legend-heading": "<strong>Šelityš:</strong>",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (kačo niise [[Special:NewPages|uušien sivujen luvettelo]])",
+       "rclistfrom": "Näytä uuvvet kohennukšet $3 $2 alkuan",
+       "rcshowhideminor": "$1 pienet kohennukšet",
+       "rcshowhideminor-show": "Näytä",
+       "rcshowhideminor-hide": "Peitä",
+       "rcshowhidebots": "$1 botit",
+       "rcshowhidebots-show": "Näytä",
+       "rcshowhidebots-hide": "Peitä",
+       "rcshowhideliu": "$1 rekisteröitynyöt käyttäjät",
+       "rcshowhideliu-hide": "Peitä",
+       "rcshowhideanons": "$1 anonimiset käyttäjät",
+       "rcshowhideanons-show": "Näytä",
+       "rcshowhideanons-hide": "Peitä",
+       "rcshowhidemine": "$1 miun kohennukšet",
+       "rcshowhidemine-show": "Näytä",
+       "rcshowhidemine-hide": "Peitä",
+       "rclinks": "Näytä $1 vereštä kohennušta viimesen $2 päivän ajalta.<br />$3",
+       "diff": "ero",
+       "hist": "ist",
+       "hide": "Peitä",
+       "show": "Näytä",
+       "minoreditletter": "p",
+       "newpageletter": "U",
+       "boteditletter": "b",
+       "rc-change-size-new": "$1 {{PLURAL:$1|baitti|baittie}} muutokšien jälkeh",
+       "recentchangeslinked": "Toini toišeh liittyjät kohennukšet",
+       "recentchangeslinked-toolbox": "Toini toiseh liittyjät kohennukšet",
+       "recentchangeslinked-title": "Šivuo \"$1\" koškijat muutokšet",
+       "recentchangeslinked-summary": "Tämä on niijen šivujen korjaukšien luvettelo, kumpasih viittuau tämä šivu (tahi šiih luokkah kuulujat). Šivut, kumpaset kuulutah [[Special:Watchlist|teijän valvontaluvetteloh]], ollah kirjutettu <strong>lihavalla</strong>.",
+       "recentchangeslinked-page": "Šivun nimi:",
+       "recentchangeslinked-to": "Näytä šen šijah muutokšet šivuloih, kumpasista on linkki täh šivuh",
+       "upload": "Tallenna faili",
+       "filedesc": "Yhtehveto",
+       "license-header": "Lisenssi",
+       "imgfile": "faili",
+       "file-anchor-link": "Faili",
+       "filehist": "Failin istorija",
+       "filehist-help": "Klikkua päivämiäryä/aikua, jotta kaččuo, mimmoni faili oli šilloin",
+       "filehist-current": "nykyhini",
+       "filehist-datetime": "Päiväyš",
+       "filehist-thumb": "Pieni kuva",
+       "filehist-thumbtext": "Pieni kuva versijah $1",
+       "filehist-user": "Käyttäjä",
+       "filehist-dimensions": "Koko",
+       "filehist-comment": "Kommentti",
+       "imagelinks": "Failin käyttö",
+       "linkstoimage": "{{PLURAL:$1|Tämä šivu viittuau|$1 Nämä šivut viitatah}} täh failih:",
+       "nolinkstoimage": "Täh failih viittuajua šivuo ei ole.",
+       "sharedupload-desc-here": "Tämä faili on otettu täštä: $1 ta šitä voit käyttyä toisissa projektiloissa.\nŠen kuvauš [$2 failin kuvauššivulta] näkyy alempana.",
+       "upload-disallowed-here": "Et voi tallentua uutta tiijoštuo tämän tilalla.",
+       "randompage": "Sattumanvarani šivu",
+       "brokenredirects-edit": "kohentele",
+       "nbytes": "$1 {{PLURAL:$1|baitti|baittie}}",
+       "nmembers": "$1 {{PLURAL:$1|käyttäjä|käyttäjyä}}",
+       "newpages": "Uuvvet šivut",
+       "move": "siirdyä",
+       "pager-older-n": "{{PLURAL:$1|1 vanhempi|$1 vanhempua}} →",
+       "booksources": "Kirjalähtehet",
+       "booksources-search-legend": "Eči kirjalähtehie",
+       "booksources-search": "Eči",
+       "log": "Lokit",
+       "allarticles": "Kai artikkelit",
+       "allpagessubmit": "Mäne",
+       "categories": "Kategorijat",
+       "linksearch-ok": "Ečindy",
+       "watchlist": "Kaččuolistu",
+       "mywatchlist": "Valvontaluvettelo",
+       "watch": "Valvo",
+       "dellogpage": "Iäreotantaistorija",
+       "rollbacklink": "Tuo entini versija",
+       "rollbacklinkcount": "palauta $1 {{PLURAL:$1|muutoš|muutošta}}",
+       "protectlogpage": "Šuojavusistorija",
+       "protectcomment": "Šyy",
+       "restriction-edit": "Kohennuš",
+       "undelete-search-submit": "Ečindy",
+       "namespace": "Nimitilat:",
+       "invert": "Päinvaštani valinta",
+       "tooltip-invert": "Valiče tämä kohta, još haluot peittyä tämän šivun muutokšet valitullla nimitilalla",
+       "namespace_association": "Liittyjät nimitilat",
+       "tooltip-namespace_association": "Valiče tämä kohta, još haluot lisätä niise valittuh nimitilah liittyjät pakina- tahi aihenimitilat",
+       "blanknamespace": "(Piä)",
+       "contributions": "{{GENDER:$1|Käyttäjän}} panoš",
+       "mycontris": "Omat kohennukšet",
+       "anoncontribs": "Omat kohennukšet",
+       "month": "Täššä kuušša (tahi aijempi)",
+       "year": "Vuosi",
+       "sp-contributions-submit": "Ečindy",
+       "whatlinkshere": "Linkit tänne",
+       "whatlinkshere-title": "Šivut, kumpaset košketah šivuu \"$1\"",
+       "whatlinkshere-page": "Šivu:",
+       "linkshere": "Šeuruavilta šivuilta on linkki šivulla <strong>[[:$1]]</strong>:",
+       "isredirect": "ohjauššivu",
+       "istemplate": "šisällytetty",
+       "isimage": "failin linkki",
+       "whatlinkshere-prev": "{{PLURAL:$1|iellini|iellini $1}}",
+       "whatlinkshere-next": "{{PLURAL:$1|tulija|tulija $1}}",
+       "whatlinkshere-links": "← linkit",
+       "whatlinkshere-hideredirs": "$1 ohjaukšet",
+       "whatlinkshere-hidetrans": "$1 šisällytykšet",
+       "whatlinkshere-hidelinks": "$1 linkit",
+       "whatlinkshere-filters": "Filtrit",
+       "ipblocklist-submit": "Ečindy",
+       "blocklink": "Lukiče",
+       "contribslink": "kohennukšet",
+       "movelogpage": "Šiirrä loki",
+       "movereason": "Šyy",
+       "export": "Vie šivuja",
+       "allmessagesname": "Nimi",
+       "allmessages-filter-translate": "Kiännä",
+       "thumbnail-more": "Šuurenna",
+       "tooltip-pt-userpage": "{{GENDER:|Oma käyttäjäšivu}}",
+       "tooltip-pt-mytalk": "Oma paginsivu",
+       "tooltip-pt-preferences": "{{GENDER:|Omat ašetukset}}",
+       "tooltip-pt-watchlist": "Lista šivuista, kumpasien muutokšie valvot",
+       "tooltip-pt-mycontris": "Luvettelo {{GENDER:|šiun}} kirjutukšista",
+       "tooltip-pt-login": "Täššä voit kirjuttautuo, ka še ei ole välttämätöintä",
+       "tooltip-pt-logout": "Kirjauvu pois",
+       "tooltip-pt-createaccount": "Voit luuvva käyttäjätunnuš ta kirjuttautuo järještelmäh. Še ei kuiteinkana ole pakollista.",
+       "tooltip-ca-talk": "Pakaja piäšivušta",
+       "tooltip-ca-edit": "Kohentele tätä šivuo",
+       "tooltip-ca-addsection": "Luaji uuši alaluku",
+       "tooltip-ca-viewsource": "Tämä šivu on šuojattu.\nVoit kaččuo šen lähtehkoodin",
+       "tooltip-ca-history": "Tämän šivun jälkimmäiset versijat",
+       "tooltip-ca-move": "Šiirrä tämä šivu",
+       "tooltip-ca-watch": "Lisyä tämä šivu omah valvontaluvetteloh",
+       "tooltip-search": "Eči {{SITENAME}}",
+       "tooltip-search-go": "Mäne šivulla, kumpasella on šama nimi",
+       "tooltip-search-fulltext": "Eči šivuja, kumpasissa on tätä tekstie",
+       "tooltip-p-logo": "Šiirry piäšivulla",
+       "tooltip-n-mainpage": "Mäne piäšivulla",
+       "tooltip-n-mainpage-description": "Mäne piäšivulla",
+       "tooltip-n-portal": "Tietuo täšta projektista, mitä voit ruatua, missä mitä on",
+       "tooltip-n-currentevents": "Lisätietuo tämänhetkisistä tapahtumista",
+       "tooltip-n-recentchanges": "Luvettelo vaštaluajituista muutokšista",
+       "tooltip-n-randompage": "Kačo šattumanvarani šivu",
+       "tooltip-n-help": "Täštä voit kyšyö apuo",
+       "tooltip-t-whatlinkshere": "Kaikkien šivujen luvettelo, kumpasista on linkki täh šivuh",
+       "tooltip-t-recentchangeslinked": "Viimesimmät muokkaukšet šivuloilla, kumpasih viitatah tältä šivulta",
+       "tooltip-feed-atom": "Atom-šyöte tällä sivulla",
+       "tooltip-t-contributions": "Lista tämän käyttäjän kirjutukšista {{GENDER:$1|this user}}",
+       "tooltip-t-upload": "Tallenna failija",
+       "tooltip-t-specialpages": "Kaikkien erikoisien šivujen luvettelo",
+       "tooltip-t-print": "Šivun tuloštettava versija",
+       "tooltip-t-permalink": "Vakituini linkki šivun täh versijah",
+       "tooltip-ca-nstab-main": "Näytä šisältöšivu",
+       "tooltip-ca-nstab-user": "Näytä käyttäjäšivu",
+       "tooltip-ca-nstab-special": "Tämä on erikoini šivu, šitä ei voi kohennella",
+       "tooltip-ca-nstab-project": "Näytä projektišivu",
+       "tooltip-ca-nstab-image": "Näytä failin šivu",
+       "tooltip-ca-nstab-template": "Näytä malli",
+       "tooltip-ca-nstab-category": "Näytä luokkašivu",
+       "tooltip-save": "Tallenna muutokšet",
+       "tooltip-preview": "Esikačo muutokšet. Ole hyvä, luaji šitä aina ennen tallennušta.",
+       "tooltip-diff": "Näytä luajitut muutokšet",
+       "tooltip-rollback": "Pyyhi pois viimesen kohentelijan luatimat muutokšet yhellä kertua",
+       "tooltip-undo": "Kumoamini palauttau tämän muutokšen ta avuau artikkelin esikaččelussa. Yhtehvetokenttäh voi kirjuttua palautukšen šyyn.",
+       "tooltip-summary": "Kirjuta lyhyt kuvauš",
+       "simpleantispam-label": "Anti-spam-tarkissuš. \n<strong>älä</strong> täytä tätä!",
+       "pageinfo-toolboxlink": "Šivun tiijot",
+       "previousdiff": "← Vanhempi muutoš",
+       "nextdiff": "Uuvvempi muutoš →",
+       "file-info-size": "$1 × $2 pikselie, failin koko: $3, MIME-laji: $4",
+       "file-nohires": "Tarkempua kuvua ei ole šuatavilla.",
+       "svg-long-desc": "SVG-faili, oletuštarkkuš $1 × $2 pikselie, failin koko: $3",
+       "show-big-image": "Alkuperäni faili",
+       "show-big-image-preview": "Tämän failin koko: $1.",
+       "show-big-image-other": "{{PLURAL:$2|Toini resolutija|Toiset resolutijat}}: $1.",
+       "show-big-image-size": "$1 × $2 kuvapistehtä",
+       "ilsubmit": "Ečintä",
+       "metadata": "Metatiijoštot",
+       "metadata-help": "Failih kuulutah lisätiijot, kumpasie tavan mukah lisätäh digikameralla tahi skannerilla. Još kuvua on muokattu šen alkuperäsen luonnan jälkeh, niin eryähät parametrit voijah erota nykyseštä kuvašta.",
+       "metadata-fields": "Šeuruavat metatietojen kentät ruvetah näkymäh kuvašivulla, konša metatietojen taulukko ei ole näkyvissä.\nMuut kentät ollah automattisešti piilotettuja.\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": "Šuunta",
+       "exif-xresolution": "Kuvan resoluutijo vuakašuorašša",
+       "exif-yresolution": "Vertikualini resolutsija",
+       "exif-datetime": "Failin muutokšen päivä ta aika",
+       "exif-make": "Kameran valmistaja",
+       "exif-model": "Kameran malli",
+       "exif-software": "Käytetty ohjelmisto",
+       "exif-exifversion": "Exif-versija",
+       "exif-colorspace": "Väritila",
+       "exif-datetimeoriginal": "Tietojen luomisen päivä ta aika",
+       "exif-datetimedigitized": "Digitointapäivämiärä",
+       "exif-orientation-1": "Tavallini",
+       "namespacesall": "kaikki",
+       "monthsall": "kaikki",
+       "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|pakaja]])",
+       "version": "Versijo",
+       "version-specialpages": "Toimintošivut",
+       "fileduplicatesearch-submit": "Ečindy",
+       "specialpages": "Erikoiset šivut",
+       "tag-filter": "[[Special:Tags|Tag]] filtri:",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Merkki|Merkit}}]]: $2)",
+       "logentry-delete-delete": "$1 {{GENDER:$2|iäreotettu}} šivu $3",
+       "logentry-move-move": "$1 {{GENDER:$2|šiirretty}} šivu $3 kohtah $4",
+       "logentry-newusers-create": "Käyttäjätunnuš $1 {{GENDER:$2|oli luotu}}",
+       "logentry-upload-upload": "$1 {{GENDER:$2|päivitetty}} $3",
+       "searchsuggest-search": "Eči"
+}
index ce4419a..3b1f7d5 100644 (file)
@@ -28,6 +28,7 @@
        "tog-watchdefault": "Donn Sigge beim Ändere automattesch för ming Oppaßlėß vörschlonn",
        "tog-watchmoves": "Donn Sigge beim Ömnänne automattesch för ming Oppaßlėß vörschlonn",
        "tog-watchdeletion": "Donn Sigge beim Fottschmiiße automattesch för ming Oppaßlėß vörschlonn",
+       "tog-watchuploads": "Donn neu huhjelahde Datteije en ming Oppassleß.",
        "tog-watchrollback": "Donn Sigge beim schtantepee retuur Nämme vun Änderonge automattesch för ming Oppaßlėß vörschlonn",
        "tog-minordefault": "Dun all ming Änderonge jehdes Mohl als klein Mini-Änderonge vörschlonn",
        "tog-previewontop": "Zeisch de Vör-Aanseesch övver däm Fäld för der Täx enzejävve aan.",
        "viewyourtext": "Mer kann de Quälle vun de eije Ännderonge aan heh dä Sigg beloore un kopeere.",
        "protectedinterface": "Op dä Sigg heh schteihd ene Täx uß dä Schnettschtäll vun de Wikki nom Minsch. Dröm es däh och jäje Ännderonge jeschöz, domet keine Meßß domet aanjestallt weed.",
        "editinginterface": "<strong>Opjepass:</strong>\nOp dä Sigg heh schteiht Täx uß de Beehnbovverfläsch vum Wikki.\nDenk dran, heh Änndere deit et\nUßsinn un de Wöht ändere, met dänne et Wikki op de Metmaacher un de\nBesöhker aankütt!",
-       "translateinterface": "Övversäzonge för <stron>alle</strong> Wikis jonn blohß op [//translatewiki.net/ translatewiki.net], woh mer MedijaWiki övversaz weed.",
+       "translateinterface": "Övversäzonge för <strong>alle</strong> Wikis jonn blohß op [https://translatewiki.net/ translatewiki.net], woh MehdijaWikki övversaz weed.",
        "cascadeprotected": "Di Sigg es jeschöz, un mer kann se nit ändere. Se es en en Schotz-Kaskad enjebonge, zosamme met dä {{PLURAL:$1|Sigg|Sigge}}:\n$2",
        "namespaceprotected": "Do darfs Sigge em Appachtemang „$1“ nit ändere.",
        "customcssprotected": "Do darfs di <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Cascading Style Sheet\">CSS</i>-Sigg heh nit ändere. Se jehööd enem andere Metmaacher, un es e Schtök fun dämm singe Enschtällonge.",
        "userlogin-resetpassword-link": "Paßwoot verjäße?",
        "userlogin-helplink2": "Hölp mem Enlogge",
        "userlogin-loggedin": "Do bes ald als {{GENDER:$1|dä Metmaacher|de Metmaacherėn|dä Metmaacher|de Metmaacherėn|dä Metmaacher}} [[User:$1|$1]] enjelogg. Met heh dämm Fommolaa kanns De jäz ävver onger enem andere Nahme enlogge.",
+       "userlogin-reauth": "Do moß desch norr_ens enlogge, öm nohzewiise, dat De verhaftesch {{GENDER:$1|dä|dat|dä Metmaacher|de|dat}} $1 bes.",
        "userlogin-createanother": "Donn ene zohsäzlejje Zohjang aanlääje",
        "createacct-emailrequired": "Ding Addräß för de <i lang=\"en\">e-mail</i>",
        "createacct-emailoptional": "Ding Addräß för de <i lang=\"en\">e-mail</i>, kann fott bliive",
        "nocookiesnew": "Dinge neue Metmaacher Name es enjerich, ävver dat automatisch Enlogge wor dann nix.\nSchad.\n{{ucfirst:{{GRAMMAR:Nom|{{SITENAME}}}}}} bruch Cookies, öm ze merke, wä enjelogg es.\nWann De Cookies avjeschald häs en Dingem Brauser, dann kann dat nit laufe.\nSök Der ene Brauser, dä et kann, dun se enschalte, un dann log Dich noch ens neu en, met Dingem neue Metmaacher Name un Passwood.",
        "nocookieslogin": "{{ucfirst:{{GRAMMAR:Nominativ|{{SITENAME}}}}}} bruch <i lang=\"en\">cookies</i> för et Enlogge. Et süht esu us, als hätts De de <i lang=\"en\">cookies</i> avjeschalt. Dun se aanschalte un dann versök et noch ens. Odder söök Der ene Brauser, dä et kann.",
        "nocookiesfornew": "Et wood keine Zohjang opjemaat, weil mer nit jeweß sin künne, woh de Daate her kohme.\nDinge Brauser moß <i lang=\"en\">cookies</i> enjeschalldt han.\nDonn dat prööfe, donn heh di Sigg norr_ens neu laade, un dann versöhk et norr_ens.",
+       "nocookiesforlogin": "{{int:nocookieslogin}}",
        "noname": "Dat jeiht nit als ene Metmaacher Name. Jetz muss De et noch ens versöke.",
        "loginsuccesstitle": "Enjelogg",
        "loginsuccess": "'''Do bes jetz enjelogg {{GRAMMAR:en|{{SITENAME}}}}, un Dinge Name als ene Metmaacher es „$1“.'''",
-       "nosuchuser": "Dä Metmaacher Name „$1“ wor verkihrt.\nJroß- un Kleinboochshtabe maache ene Ungerscheid!\n<br />\nJetz muss De et noch ens versöke.\nUdder donn_[[Special:CreateAccount|ene neue Metmaacher aanmelde]].",
+       "nosuchuser": "Dä Metmaacher-Name „$1“ wohr verkihrt.\nJrohß- un Kleinbohchschtahbe maache ene Ongerscheid!\nSchrihv en eeschtesch, udder donn_[[Special:CreateAccount|ene neue Metmaacher aanmälde]].",
        "nosuchusershort": "Dä Metmaacher Name „$1“ wor verkihrt. Jetz muss De et noch ens versöke.",
        "nouserspecified": "Dat jeiht nit als ene Metmaacher Name",
        "login-userblocked": "Heh dä Kääl es jesperrt. Enlogge verbodde.",
        "resetpass-temp-password": "Zweschepasswood:",
        "resetpass-abort-generic": "E Zohsazprojramm häd_et nit zohjelohße, et Paßwoot ze ändere.",
        "resetpass-expired": "Di Paßwood es afjeloufe. Donn jetz e neu Passwoot för et Enlogg faßlääje.",
-       "resetpass-expired-soft": "Ding Paßwood es afjeloufe un moß neu jesaz wähde. Bes esu johd_un donn e neu Paßwoot ußsöhke, udder jangk op {{int:resetpass-submit-cancel}}, öm et schpääder ze säze.",
-       "resetpass-validity-soft": "Ding Kännwood es nit johd: $1\n\nSöhk Der e neu Kännwood us, udder jangg_op <em>{{int:resetpass-submit-cancel}}</em>, öm dat schpääder ze donn.",
+       "resetpass-expired-soft": "Ding Paßwood es afjeloufe un moß neu jesaz wähde. Bes esu johd_un donn e neu Paßwoot ußsöhke, udder jangk op {{int:authprovider-resetpass-skip-label}}, öm et schpääder ze säze.",
+       "resetpass-validity-soft": "Ding Kännwood es nit johd: $1\n\nSöhk Der e neu Kännwood us, udder jangg_op <em>{{int:authprovider-resetpass-skip-label}}</em>, öm dat schpääder ze donn.",
        "passwordreset": "Et Paßwoot zeröck säze",
        "passwordreset-text-one": "Föll dat Fommolaa uß, öm Ding Paßwoot ze ändere.",
        "passwordreset-text-many": "{{PLURAL:$1|Föll ei vun dä Fälder en heh däm Fommolaa uß, öm e Zwesche_Paßwoot ze krijje.}}",
        "minoredit": "Dat es en klein Änderong (mini)",
        "watchthis": "Op di Sigg heh oppaßße",
        "savearticle": "De Sigg Avspeichere",
+       "savechanges": "Afschpeijschere",
        "publishpage": "Veröffentlesche",
+       "publishchanges": "Veröffentlesche",
        "preview": "Vör-Ansich",
        "showpreview": "Vöraff belohre",
        "showdiff": "Veränderonge zeije",
        "previewerrortext": "Ene Fähler es beim Versohch opjetrodde, de Sigg met de Änderonge aanzezeije.",
        "blockedtitle": "Dä Metmaacher es jesperrt",
        "blockedtext": "'''Dinge Metmaacher-Nahme oder IP Adress es vun „$1“ jesperrt woode.'''\n\nAls Jrund es enjedrage: „''$2''“\n\nDo kanns heh em Wiki immer noch lässe. Do sühß ävver di Sigg heh, wann De op rude Links klicks, neu Sigge aanlääje, udder Sigge ändere wells, denn doför bes De jäz jeschperrt.\n\nDo kanns met $1 oder enem andere [[{{MediaWiki:Grouppage-sysop}}|Wiki-Köbes]] övver dat Schpärre schwaade, wann De wells.\nDo kanns ävver nor dann „''E-Mail aan dä Metmaacher''“ aanwände, wann De ald en E-Mail Adress en Dinge [[Special:Preferences|Enstellunge]] enjedrage un freijejovve häs un wann et E-mail schecke nit metjesperrt es.\n\nDun en Ding Aanfroge nenne:\n* Dä Wikki-Köhbeß, dä jeschpächt hät: $1\n* Der Jrond för et Schpärre: $2\n* Da wood jesperrt: $8\n* De Sperr soll loufe bes: $6\n* De Nommer vun dä Schpärr: #$5\n* Ding IP-Adress is jetz: $3\n* Di Sperr es wäje odde jäje: $7\n\nDo kanns och noch en et <span class=\"plainlinks\">[{{fullurl:Special:IPBlockList|&action=search&limit=&ip=%23}}$5 Logbohch met de Schpärre]</span> loore.",
-       "autoblockedtext": "'''Ding IP Adress es automattesch jesperrt woode.'''\n<br />\n'''Se wor vun enem Metmaacher jebruch woode, dä vun „$1“ jesperrt woode es.'''\n<br />\nAls Jrund es enjedrage: „''$2''“\n\nDo kanns heh em Wiki immer noch lesse. Do sühß ävver di Sigg heh, wann De op rude Links klicks, neu Sigge aanlääje, odder Sigge ändere wells, denn doför bes De jetz jesperrt.\n\nDo kanns met $1 oder enem andere [[{{MediaWiki:Grouppage-sysop}}|Wiki-Köbes]] övver dat Schpärre schwaade, wann De wells.\nDo kanns ävver nor dann „''e-mail aan dä Metmaacher''“ aanwende, wann De ald en e-mail Adress en Dinge [[Special:Preferences|Enstellunge]] enjedrage un freijejovve häs un wann et e-mail schecke nit metjeschperrt es.\n\nDun en Dinge Aanfrore nänne:\n* Dä Wiki-Köbeß, dä jesperrt hät: $1\n* Der Jrond för et Sperre: $2\n* Da wood jesperrt: $8\n* De Sperr soll loufe bes: $6\n* De Nommer vun dä Sperr: #$5\n* Ding IP-Adress is jetz: $3\n* Di Sperr es wäje odde jäje: $7\n\nDo kanns och noch en et <span class=\"plainlinks\">[{{fullurl:Special:IPBlockList|&action=search&limit=&ip=%23}}$5 {{int:ipblocklist}}]</span> loore.",
+       "autoblockedtext": "'''Ding IP Adress es automattesch jeschpächt woode.'''\n<br />\n'''Se wohr vun enem Metmaacher jebruch woode, dä vun „$1“ jeschpächt woode es.'''\n<br />\nAls Jrond es enjedrage: „''$2''“\n\nDo kanns heh em Wikki emmer noch lesse. Do sühß ävver di Sigg heh, wann De op ene rude Lengk klrks, neu Sigge aanlääje, udder Sigge änndere wells, denn doför bes De jäz jeschpächt.\n\nDo kanns met $1 oder enem andere [[{{MediaWiki:Grouppage-sysop}}|Wiki-Köbes]] övver dat Schpärre schwaade, wann De wells.\nDo kanns ävver nor dann „''e-mail aan dä Metmaacher''“ aanwende, wann De ald en e-mail Adress en Dinge [[Special:Preferences|Enstellunge]] enjedrage un freijejovve häs un wann et e-mail schecke nit metjeschperrt es.\n\nDun en Dinge Aanfrore nänne:\n* Dä Wiki-Köbeß, dä jesperrt hät: $1\n* Der Jrond för et Sperre: $2\n* Da wood jesperrt: $8\n* De Sperr soll loufe bes: $6\n* De Nommer vun dä Sperr: #$5\n* Ding IP-Adress is jetz: $3\n* Di Sperr es wäje odde jäje: $7\n\nDo kanns och noch en et <span class=\"plainlinks\">[{{fullurl:Special:IPBlockList|&action=search&limit=&ip=%23}}$5 {{int:ipblocklist}}]</span> loore.",
        "blockednoreason": "Keine Aanlass aanjejovve",
        "whitelistedittext": "Do mööts ald $1, öm heh em Wiki Sigge ändere ze dürfe.",
        "confirmedittext": "Do muss Ding E-Mail Adress ald bestätich han, ih dat De heh Sigge ändere darfs.\nDrag Ding E-Mail Adress en Ding [[Special:Preferences|ming Ennschtällong]] en, un dun „Dun Ding <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"„de eläktrohnesche Poß“\">e-mail</i>-Adräß bestätije looße“ klicke.",
        "last": "met dovör",
        "page_first": "Aanfang",
        "page_last": "Engk",
-       "histlegend": "Heh kanns De Versione för et Verjliiche ußsöke: Dun met dä Knöpp di zweij markiere,\nzwesche dänne De de Ungerscheid jezeich krije wells, dann dröck „<b style=\"padding:2px; background-color:#ddd;\ncolor:black\">{{int:compareselectedversions}}</b>“ udder „<b style=\"padding:2px; background-color:#ddd;\ncolor:black\">{{int:visualcomparison}}</b>“ udder „<b style=\"padding:2px; background-color:#ddd;\ncolor:black\">{{int:wikicodecomparison}}</b>“ met Dinge Taste, oder klick op ein vun dä Knöpp övver oder unger de Liss.<br />\nVerklierung:\n({{int:cur}}) = donn met de neuste Väsjohn verjliche,\n({{int:last}}) = donn met de Väsjohn ein doför verjliche,\n<b>M</b> = en klein <b>M</b>ini-Änderong,\nDattum+Uhrzigg = don de Version fun dämm Daach un dä Zigg aanzeije.",
+       "histlegend": "Heh kanns De Väsiohne för et Verjliische ußsöhke: Dun met dä Knöpp di zweij makehre, zwesche dänne De de Ungerscheid jezeich krije wells, dann dröck „<b style=\"padding:2px; background-color:#ddd; color:black\">{{int:compareselectedversions}}</b>“ udder klek op ein vun dä Knöpp övver udder onger dä Less.<br />\nVerklierung:\n({{int:cur}}) = donn met de neuste Väsjohn verjliische,\n({{int:last}}) = donn met de Väsjohn ein doför verjliische,\n<b>{{int:minoreditletter}}</b> = en klein <strong>M</strong>ini-Änderong,\nDattum+Uhrzigg = don de Väsjohn fun dämm Daach un dä Zigg aanzeije.",
        "history-fieldset-title": "Wat uß de Verjangeheit ußwähle?",
        "history-show-deleted": "blohß fottjeschmeße Versione",
        "histfirst": "de Ählste",
        "mergehistory-from": "Ursprongssigg:",
        "mergehistory-into": "Zielsigg:",
        "mergehistory-list": "Versione, di zosamme jelaat wäde künne",
-       "mergehistory-merge": "De Versione onge künne fun „[[:$1]]“ noh „[[:$2]]“ övverdraare wäde.\nDonn de Version makeere bes wohen (inklusive) dat övverdraare wäde sull. Donn drop aachjevve, dat de Ußwahl fott es, wann De op eine fun dä Links klicks.",
+       "mergehistory-merge": "De Versione onge künne fun „[[:$1]]“ noh „[[:$2]]“ övverdrahre wäde.\nDonn de Väsjon makehre bes wohen (inklusive) dat övverdrahre wähde sull. Donn drobb aachjevve, dat de Ußwahl fott es, wann De op eine fun dä Lengk kleks.",
        "mergehistory-go": "Don Versione zeije, di mer zosamme läje künne",
        "mergehistory-submit": "Versione zosamme läje",
        "mergehistory-empty": "Mer han kei Versione för zesammezeläje",
        "difference-title-multipage": "Ongerscheide zwesche dä Sigge „$1“ un „$2“",
        "difference-multipage": "(Ongerscheide zwesche Sigge)",
        "lineno": "Reih $1:",
-       "compareselectedversions": "Dun de markehte Väsjohn verjliiche",
+       "compareselectedversions": "Dun de markehte Väsjohne verjliiche",
        "showhideselectedversions": "De ußjewählte Versione aanzeije udder vershteiche",
        "editundo": "De läzde Änderong zeröck nämme",
        "diff-empty": "(Keine Ongerscheid)",
        "action-read": "di Sigg ze lesse",
        "action-edit": "di Sigg ze ändere",
        "action-createpage": "di Sigg aanzeläje",
-       "action-createtalk": "Klaafsigge aanzeläje",
+       "action-createtalk": "he di Klaafsigg aanzeläje",
        "action-createaccount": "hee dä neue Metmaacher aanzemelde",
        "action-autocreateaccount": "automattesch heh dä Metmaacher vun Ußerhallf aanzelähje",
        "action-history": "de Leß met de fröhjere Väsohne vun heh dä Sigg ze belohre",
        "rcshowhidemine-hide": "verschteihsche",
        "rcshowhidecategorization": "De Sigge ier Ennohdenong $1",
        "rcshowhidecategorization-show": "Aanzeije!",
-       "rcshowhidecategorization-hide": "Verschteische!",
+       "rcshowhidecategorization-hide": "verschteihsche",
        "rclinks": "Zeisch de läzde {{int:pipe-separator}}$1{{int:pipe-separator}} Änderonge us de läzde {{int:pipe-separator}}$2{{int:pipe-separator}} Däch, un dun {{int:pipe-separator}} $3.",
        "diff": "Ongerscheid",
        "hist": "Väsjohne",
        "nbytes": "$1 Byte{{PLURAL:$1||s|}}",
        "ncategories": "{{PLURAL:$1| ein Saachjropp | $1 Saachjroppe | keij Saachjroppe }}",
        "ninterwikis": "{{PLURAL:$1|Eine Engerwikilengk|$1 Engerwikilengks|Keine Engerwikilengk}}",
-       "nlinks": "{{PLURAL:$1|eine Link|$1 Links}}",
+       "nlinks": "{{PLURAL:$1|eine Lengk|$1 Lengks|Keijne Lengk}}",
        "nmembers": "met {{PLURAL:$1|ein Sigg|$1 Sigge}} dren",
        "nmemberschanged": "met&nbsp;$1&nbsp;→&nbsp;{{PLURAL:$2|eine Sigg|$2&nbsp;Sigge|keine Sigg}}",
        "nrevisions": "{{PLURAL:$1|Ein Änderong|$1 Änderonge|Keij Änderong}}",
        "apisandbox": "De <i lang=\"en\">API</i> ußprobeere",
        "apisandbox-jsonly": "Der ohne JavaSkrepp kam_mer de <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Application Programming Interface\">API</i> för zom erömprobehre nit bruche.",
        "apisandbox-api-disabled": "Dat <i lang=\"en\">API</i> es en heh dämm Wiki afjeschalldt.",
-       "apisandbox-intro": "Op heh dä Sigg kanns De met dä <strong>MediaWiki web service <i lang=\"en\">API</i></strong> eröm schpelle.\nBeloor Der de Einzelheite, wi di jebruch weed, op dä iere [[mw:API:Main_page Sigg met de Verklieronge]].\nE Beiscpell: [//www.mediawiki.org/wiki/API#A_simple_example De Houpsigg holle].\nSöhk ene {{int:Apisb-label-action}} uß, öm mieh Beishpell aanjezeisch ze krijje.\nOch wann dat heh nor zom Ußprobeere es, kann dat, wat De heh mähß, et Wiki verändere.",
-       "apisandbox-unfullscreen": "Sigg aanzeije",
+       "apisandbox-intro": "Op heh dä Sigg kanns De met dä <strong><i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Application Programming Interface\">API</i> vum MehdijaWikki singem Wäbdehns</strong> eröm schpelle.\nBeloor Der de Einzelheijte, un wi di jebruch weed, op dä iere [[mw:API:Main_page Sigg met de Verklieronge]].\nE Beischpell: [https://www.mediawiki.org/wiki/API#A_simple_example De Houpsigg holle].\nSöhk ene {{int:Apisb-label-action}} uß, öm mih Beischpelle aanjezeisch ze krijje.\nOch wann dat heh nor zom Ußprobehre es, kann dat, wat De heh mähß, et Wikki veränndere.",
+       "apisandbox-fullscreen": "Om jannze Scherrem zeije",
+       "apisandbox-unfullscreen": "De Sigg nommahl aanzeije",
        "apisandbox-submit": "Lohß jonn!",
        "apisandbox-reset": "Läddesch maache",
        "apisandbox-retry": "Norr_ens versöhke",
        "apisandbox-results": "Erus jekumme:",
        "apisandbox-request-url-label": "Dä <i lang=\"en\">URL</i> vun dä Aanfrooch:",
        "apisandbox-request-time": "De Zigg vum Afroof: $1",
+       "apisandbox-alert-page": "Heh op dä Sigg sin onjölltejje Aanjahbe.",
+       "apisandbox-alert-field": "Dä Wääd en dämm Fäld heh es onjölltesch.",
        "booksources": "Böcher",
        "booksources-search-legend": "Söök noh Bezochsquelle för Bööcher",
        "booksources-isbn": "ISBN:",
        "specialloguserlabel": "Dä Metmaacher, dä et jedonn hät:",
        "speciallogtitlelabel": "Betroffe wohr: (dä Tittel vun ener Sigg udder enem Metmaacher singe Nahme)",
        "log": "Logböcher ehr Opzeichnunge (all)",
+       "logeventslist-submit": "Lohß jonn!",
        "all-logs-page": "All de öffentlich Logböcher",
        "alllogstext": "Dat heh es en jesampte Less us all dä Logböhscher {{GRAMMAR:en|{{SITENAME}}}}.\nDä Logböhscher ehre Enhald kam_mer all noh de Aat, de Metmaacher,\noder de Sigge ehr Name, un esu, einzel zoteht aanluhre.\nBei dä Name moß mer op Jruß- un Kleinschreff aachjävve.",
        "logempty": "Mer han kein zopaß Endrähsch en däm Logbooch.",
        "cachedspecial-viewing-cached-ts": "Dat heh küdd ussem Zewescheschpeischer un nünnt nidd om neuste Schtand sin.",
        "cachedspecial-refresh-now": "De neuste Väsjohn.",
        "categories": "Saachjroppe",
+       "categories-submit": "Lohß jonn!",
        "categoriespagetext": "Heh {{PLURAL:$1|es nur en Saachjropp|sin nur Saachjroppe|es kein Saachjropp}} jeleß, woh jät dren {{PLURAL:$1|es|es|wöhr}}. Mer han_er eije Leßte för de\n[[Special:UnusedCategories|Saachjropp met nix dren]], un de\n[[Special:WantedCategories|jewönschte un nit aanjelaate Saachjroppe]].",
        "categoriesfrom": "Zeijsch Saachjroppe vun heh af:",
        "deletedcontributions": "Fottjeschmeße Väsjohne",
        "activeusers-hidebots": "De Bots fott lohße",
        "activeusers-hidesysops": "De Wiki_Köbesse fott lohße",
        "activeusers-noresult": "Kein Metmaacher jefonge.",
+       "activeusers-submit": "Lohß jonn!",
        "listgrouprights": "Metmaacher_Jroppe-Rääschte",
        "listgrouprights-summary": "Hee kütt de Leß met dä Jroppe vun Metmaacher, di dat Wikki heh kennt, un dänne ier Rääschde.\nMih övver de einzel Rääschde fenkd_Er op de [[{{MediaWiki:Listgrouprights-helppage}}|Hölp-Sigg övver de Metmaacher ier Rääschde]].",
        "listgrouprights-key": "Lejend:\n* E <span class=\"listgrouprights-granted\">jejovve Rääsch</span>\n* E <span class=\"listgrouprights-revoked\">fottjenumme Rääsch</span>",
        "enotif_body_intro_changed": "{{GENDER:$2|Dä Metmaacher|Et|Dä Metmaacher|De Metmaacherėn|Dä Metmaacher}} $2 hät di Sigg $1 {{GRAMMAR:en 3|{{ucfirst:{{SITENAME}}}}}} aam $PAGEEDITDATE verändert. Op $3 fengks De der aktoälle Schtand vun dä Sigg.",
        "enotif_lastvisited": "Lohr onger „$1“ - doh fengks de all di Ännderonge zigg Dingem läzde Besohch heh.",
        "enotif_lastdiff": "Loor op $1 för heh di Änderong aan_ze_lohre.",
-       "enotif_anon_editor": "Dä namelose Metmaacher $1",
+       "enotif_anon_editor": "Dä nahmelohse Metmaacher $1",
        "enotif_body": "Leeven $WATCHINGUSERNAME,\n\n$PAGEINTRO $NEWPAGE\n\n{{int:summary}} „$PAGESUMMARY“ $PAGEMINOREDIT\n\nDo kanns dä Metmaacher „$PAGEEDITOR“ aanschpräsche:\n* Övver e-mail: $PAGEEDITOR_EMAIL\n* Em Wiki: $PAGEEDITOR_WIKI\n\nDo kreß vun jetz aan kein e-mail mih, bes dat Do\nDer di Sigg aanjeluurt häs wann De enjelogg bes,\noch wann se norr_ens verändert weed. Do kanns ävver\noch all di Märker för e-mail för di Sigge en Dinger\nOppaßleß op eimohl ändere.\n\nEne schöne Jrohß {{GRAMMAR:vun|{{SITENAME}}}}.\n\n-- \nÖm de Enschtällonge för Nohreeschte aan Desch ze ändere,\njangk op:\n{{canonicalurl:{{#special:Preferences}}}}\n\nDo kanns heh Ding Oppaßleß ändere:\n{{canonicalurl:{{#special:EditWatchlist}}}}\n\nÖm di Sigg vun Dinger Oppaßleß ze schmiiße:\n$UNWATCHURL\n\nDo kanns heh noh Hölp luhre:\n$HELPPAGE",
        "created": "neu aanjelaht",
        "changed": "jeändert",
        "sp-contributions-username": "Metmaachername odder IP-Address:",
        "sp-contributions-toponly": "Bloß neuste Versione zeije",
        "sp-contributions-newonly": "Blohß neu aanjelaate Sigge zeije.",
+       "sp-contributions-hideminor": "Donn kein Minni-Ännderonge ußblände.",
        "sp-contributions-submit": "Söhke",
        "whatlinkshere": "Wat noh heh link",
        "whatlinkshere-title": "Sigge, woh Lengks op „$1“ dren sen",
        "isimage": "weed aanjezeisch",
        "whatlinkshere-prev": "de vörijje {{PLURAL:$1||$1|noll}} zeije",
        "whatlinkshere-next": "de nächste {{PLURAL:$1||$1|noll}} zeije",
-       "whatlinkshere-links": "← Links",
+       "whatlinkshere-links": "← Lengks",
        "whatlinkshere-hideredirs": "de Ömleijdonge $1",
        "whatlinkshere-hidetrans": "de Oproofe $1",
        "whatlinkshere-hidelinks": "de nommahle Lengks $1",
        "ipblocklist-otherblocks": "Ander {{PLURAL:$1|Sperr|Sperre|-nix-}}",
        "infiniteblock": "för iwich",
        "expiringblock": "bes aam $1 öm $2 Uhr",
-       "anononlyblock": "nor namelose",
+       "anononlyblock": "nor Nahmelohse",
        "noautoblockblock": "automattesch Schpärre avjeschalt",
        "createaccountblock": "neu Aanmelde verbodde",
        "emailblock": "<i lang=\"en\">e-Mail</i> Schecke verbodde",
        "allmessagesname": "Nahme",
        "allmessagesdefault": "Dä standaadmäßije Tex",
        "allmessagescurrent": "Esu es dä Tex jetz",
-       "allmessagestext": "Heh kütt en Liss met Texte, Texstöck, un Nohreechte em Appachtemeng „MediaWiki“ — Do draan Ändere löht et Wiki anders ußsin, dat darf dröm nit Jede maache.\nWenn De jenerell aan [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki singe Översezung] jet anders han wells, do jangk noh [//translatewiki.net translatewiki.net].",
+       "allmessagestext": "Heh kütt en Liss met Texte, Texstöck, un Nohreechte em Appachtemeng „MediaWiki“ — Do draan Ändere löht et Wiki anders ußsin, dat darf dröm nit Jede maache.\nWenn De jenerell aan [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki singe Översezung] jet anders han wells, do jangk noh [https://translatewiki.net translatewiki.net].",
        "allmessagesnotsupportedDB": "<strong>Dat wor nix!</strong> Mer künne „{{#special:allmessages}}“ nit zeije, <code>$wgUseDatabaseMessages</code> es usjeschalt!",
        "allmessages-filter-legend": "Ußsöhke — wat för en Täxte o Nohreeshte aazeije?",
        "allmessages-filter": "Zohshtand:",
        "exif-orientation-1": "Nommahl",
        "exif-orientation-2": "Op der Kopp jespeejelt",
        "exif-orientation-3": "Op der Kopp jedrieht",
-       "exif-orientation-4": "Links-Räähß jespehjelt",
+       "exif-orientation-4": "Lingks-Rääschß jeschpehjelt",
        "exif-orientation-5": "En Vehdelsdriehjong mem Uhrzeijer un dann lengks-rähß jespehjelt",
        "exif-orientation-6": "En Veedelsdriejong mem Uhrzeijer",
        "exif-orientation-7": "En Veedelsdriejong jääje der Uhrzeijer un dann lengks-rähß jespehjelt",
        "specialpages-group-login": "Enlogge udder Aanmälde",
        "specialpages-group-changes": "Läzde Änderonge un Logböhscher",
        "specialpages-group-media": "Dateije — Huhlahde un Opleßte",
-       "specialpages-group-users": "Metmaacher un denne ier Rääschte",
+       "specialpages-group-users": "Metmaacher un dänne ier Rääschde",
        "specialpages-group-highuse": "Öff jebruch…",
        "specialpages-group-pages": "Siggeleste",
        "specialpages-group-pagetools": "Werrekzüch för Sigge",
        "tags": "De jöltijje Makkehronge för Änderonge",
        "tag-filter": "[[Special:Tags|Makkehronge]] ußsöhke:",
        "tag-filter-submit": "Beschränke!",
-       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Ein|$1|Kein}} Kännzeijsche]]: $2)",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1||$1|Keij}} Kännzeijsche]]: $2)",
        "tags-title": "Makeeronge",
        "tags-intro": "Heh sin alle de Makeerunge opjeliß, di et Wikki för Änderunge verjävve kann, un wat se bedügge.",
        "tags-tag": "Dä Makkehrong iere Nahme",
        "mw-widgets-dateinput-no-date": "Kein Dattom es ußjewählt",
        "mw-widgets-titleinput-description-new-page": "di Sigg jidd_et noch nit",
        "mw-widgets-titleinput-description-redirect": "ömleijde op „$1“",
-       "api-error-blacklisted": "Söhk Der ene anndere Nahme uß, dä mih drövver säht.",
        "randomrootpage": "Zofällige Aanfangs-Sigg",
+       "log-action-filter-rights": "De Zoot Ännderong aan de Rääschte:",
+       "log-action-filter-suppress": "De Zoot Ongerdrökong:",
+       "log-action-filter-all": "Alle",
+       "log-action-filter-block-block": "Schpärre",
+       "log-action-filter-block-unblock": "Sperr ophävve",
        "log-action-filter-delete-delete": "En Sigg wohd fott jeschmeße",
+       "authmanager-create-disabled": "Neu Aanmelde es afjeschalldt",
+       "authmanager-create-from-login": "Öm Der ene Zohjang aanzelähje, bes esu johd, un föll heh di Fällder us:",
        "authmanager-authplugin-setpass-failed-title": "Dat Paßwoot ze änndere hät nit jeflupp",
        "authmanager-userdoesnotexist": "Ene Metmaacher mem Nahme „$1“ es nit ennjedrahre.",
        "authmanager-domain-help": "De Domäijn för de Zohjangsdaht vun ußerhallef beschtähtech ze krijje.",
+       "authmanager-retype-help": "Norr_ens dat Paßwoot zom beschähtejje",
        "authmanager-email-label": "<i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"„de eläktrohnesche Poß“\">e-mail</i>",
        "authmanager-email-help": "De Addräß för de <i lang=\"en\">e-mail</i>",
        "authmanager-realname-label": "Der „reeschteje“ Nahme",
        "authmanager-provider-temporarypassword": "Zweschepasswood:",
+       "authprovider-confirmlink-failed": "Et Zohjang-Verlengke hät nit kumplätt jeflupp: $1",
        "authprovider-resetpass-skip-label": "Övverjonn",
+       "authform-newtoken": "Keij CSRF Makkehrong:FUZZY!!$1",
+       "authform-notoken": "Keij CSRF Makkehrong!FUZZY!!",
        "specialpage-securitylevel-not-allowed-title": "Nit zohjelohße",
        "cannotauth-not-allowed-title": "Zohjang verbodde.",
+       "cannotauth-not-allowed": "Do häs nit dat Rääsch, he di Sigg ze bruche.",
        "changecredentials-submit": "Ändere",
-       "changecredentials-submit-cancel": "Ophüre",
-       "removecredentials-submit": "Fott nämme",
-       "removecredentials-submit-cancel": "Ophüre"
+       "removecredentials-submit": "Fott nämme"
 }
index b95b31f..ebee06b 100644 (file)
@@ -34,7 +34,7 @@
        "tog-editsectiononrightclick": "Beşekê bi rast-klîkekê biguherîne",
        "tog-watchcreations": "Rûpelên min çêkirin û dosyeyên min barkirin, têxe nav lîsteya min a şopandinê",
        "tog-watchdefault": "Rûpelên min guhertin û dosyeyên min barkirin, têxe nav lîsteya min a şopandinê",
-       "tog-watchmoves": "Rûpelên min navê wan guhertin, têxe nav lîsteya min a şopandinê",
+       "tog-watchmoves": "Rûpel û dosyeyên ku ez navên wan diguherînim, têxe nav lîsteya min a şopandinê",
        "tog-watchdeletion": "Rûpel û dosyeyên min jêbirin, têxe nav lîsteya min a şopandinê",
        "tog-minordefault": "Her guhertinekê weke guhertineke biçûk nîşan bide",
        "tog-previewontop": "Pêşdîtina gotarê li jorî cihê guherandinê nîşan bide",
        "protectedpagetext": "Ev rûpel ji bo guhertin û karên din ne kirin hatiye parastin.",
        "viewsourcetext": "Tu dikarî li çavkaniya vê rûpelê binêrî û wê kopî bikî.",
        "viewyourtext": "Hûn çavkaniyê <strong>guhertinê xwe</strong> yê di vê rûpelê de dikarin bibînin û kopî bikin:",
-       "protectedinterface": "Di vê rûpelê de nivîsandin ji bo navrû(interface)yî zimanan yê vê nivîsbariyê ye û ew tê parastin ku vandalîzm li vê derê çênebe.\nBo lêzêdekirin an jî guherandina wergerên bo hemû wîkiyan ji kerema xwe re mehelîkirina Mediawîkiyê [//translatewiki.net/ translatewiki.net]'ê bi kar bîne.",
-       "editinginterface": "'''Hişyarî:''' Tu rûpelekê a ku di Wîkîpediya de ji bo sîstemê girîng e,  diguherînî. Guherandinên di vê rûpelê de wê ji aliyê hemû bikarhêneran ve werin dîtin. Ji bo wergerê ji kerema xwe di [//translatewiki.net/wiki/Main_Page?setlang=ku-latn translatewiki.net] de bixebite, projeya MediaWiki.",
+       "protectedinterface": "Di vê rûpelê de nivîsandin ji bo navrû(interface)yî zimanan yê vê nivîsbariyê ye û ew tê parastin ku vandalîzm li vê derê çênebe.\nBo lêzêdekirin an jî guherandina wergerên bo hemû wîkiyan ji kerema xwe re mehelîkirina Mediawîkiyê [https://translatewiki.net/ translatewiki.net]'ê bi kar bîne.",
+       "editinginterface": "'''Hişyarî:''' Tu rûpelekê a ku di Wîkîpediya de ji bo sîstemê girîng e,  diguherînî. Guherandinên di vê rûpelê de wê ji aliyê hemû bikarhêneran ve werin dîtin. Ji bo wergerê ji kerema xwe di [https://translatewiki.net/wiki/Main_Page?setlang=ku-latn translatewiki.net] de bixebite, projeya MediaWiki.",
        "cascadeprotected": "Ev rûpel hatiye parastin ji ber guherandinê, ji ber ku ev rûpela di {{PLURAL:$1|vê rûpelê|van rûpelan da}} tê bikaranîn:\n$2",
        "namespaceprotected": "Destûra te ji bo guhertina vê rûpelê '''$1''' di valahiya nav de nîne.",
        "customjsprotected": "Destûra te tune ye ku tu vê rûpela JavaScriptê biguherînî ji ber ku ew eyarên kesane yên bikarhênerên din dihewîne.",
        "botpasswords-label-cancel": "Betal bike",
        "botpasswords-label-delete": "Jê bibe",
        "botpasswords-bad-appid": "Navê bot \"$1\" ne derbasdar e.",
+       "botpasswords-deleted-title": "Şîfreya robot hate jêbirin",
        "resetpass_forbidden": "Şîfre nikarin werin guhertin",
        "resetpass-submit-loggedin": "Şîfreyê biguherîne",
        "resetpass-submit-cancel": "Betal bike",
        "resetpass-temp-password": "Şîfreya demkî:",
        "resetpass-expired": "Wextê şîfreya te derbas bû. Ji kerema xwe re\nji bo têketinê şîfreyek nû çêke.",
-       "resetpass-expired-soft": "Wextê şîfreya te derbas bû û hewceye ko be guhertin. Ji kerema xwe re şîfreyek nû çêke an jî ji bo paşî çêkî li \"{{int:resetpass-submit-cancel}}\" bitikîne.",
-       "resetpass-validity-soft": "Şîfreya te derbasdar nîne: $1\n\nJi kerema xwe re şîfreyek nû çêke an jî ji bo paşî çêkî li \"{{int:resetpass-submit-cancel}}\" bitikîne.",
+       "resetpass-expired-soft": "Wextê şîfreya te derbas bû û hewceye ko be guhertin. Ji kerema xwe re şîfreyek nû çêke an jî ji bo paşî çêkî li \"{{int:authprovider-resetpass-skip-label}}\" bitikîne.",
+       "resetpass-validity-soft": "Şîfreya te derbasdar nîne: $1\n\nJi kerema xwe re şîfreyek nû çêke an jî ji bo paşî çêkî li \"{{int:authprovider-resetpass-skip-label}}\" bitikîne.",
        "passwordreset": "Şîfreyê nû bike",
        "passwordreset-text-one": "Ji bo ji nû ve sazkirina şîfreyê vê formê dagire.",
        "passwordreset-username": "Navê bikarhêner:",
        "passwordreset-emailtitle": "Hûragahiyên hesab li ser {{SITENAME}}",
        "passwordreset-emailelement": "Navê bikarhêner:\n$1\n\nŞîfreya niha:\n$2",
        "passwordreset-emailsentemail": "E-nameyeke bibîrxistinê hate şandin.",
+       "passwordreset-invalideamil": "Navnîşana enameyê ya nederbasdar",
        "changeemail": "Navnîşana enameya xwe biguherîne an rabike",
        "changeemail-oldemail": "Navnîşana e-nameya niha:",
        "changeemail-newemail": "Navnîşana e-nameya nû:",
        "changeemail-none": "(nîne)",
+       "changeemail-password": "Şîfreya te ya {{SITENAME}}ê:",
        "changeemail-submit": "Enameyê biguherîne",
        "resettokens": "Mifteya jê bibe",
        "bold_sample": "Nivîsa stûr",
        "minoredit": "Ev guhertineke biçûk e",
        "watchthis": "Vê gotarê bişopîne",
        "savearticle": "Rûpelê tomar bike",
+       "savechanges": "Guherandinan tomar bike",
+       "publishpage": "Rûpelê biweşîne",
+       "publishchanges": "Guherandinan biweşîne",
        "preview": "Pêşdîtin",
        "showpreview": "Pêşdîtinê nîşan bide",
        "showdiff": "Guherandinan nîşan bide",
        "postedit-confirmation-restored": "Ev rûpel hate restorekirin.",
        "postedit-confirmation-saved": "Guhertina te hate tomarkirin.",
        "edit-already-exists": "Nikarî rûpeleka nuh çêke.\nEw berê heye.",
+       "defaultmessagetext": "Nivîsa peyamê ya standart",
        "invalid-content-data": "Daneyên naverokê yên nederbasdar",
        "content-model-wikitext": "wîkînivîs",
        "content-model-text": "nivîsê sade",
        "showingresults": "{{PLURAL:$1|Encamek|'''$1''' encam}}, bi #'''$2''' dest pê dike.",
        "search-nonefound": "Ti rûpelên wek ya daxwazkirî nînin.",
        "powersearch-legend": "Lêgerîna pêşketî",
-       "powersearch-ns": "Di valahiya navan de lêbigere:",
+       "powersearch-ns": "Di valahiya navan de lê bigere:",
        "powersearch-togglelabel": "Kontrol bike:",
        "powersearch-toggleall": "Hemû",
        "powersearch-togglenone": "Tune",
        "right-sendemail": "Ji bikarhênerên di re ename bişîne",
        "grant-editpage": "Rûpelên ku hene biguherîne",
        "grant-editprotected": "Rûpelên parastî bigûherîne",
+       "grant-uploadfile": "Dosyeyên nû bar bike",
        "grant-basic": "Mafên bingehîn",
        "newuserlogpage": "Çêkirina hesabê nû",
        "newuserlogpagetext": "Ev têketina hesabên bikarhêneriyê ye ên ku nû hatine afirandin.",
        "rightslogtext": "Ev guhertineke ji bo mafên bikarhêneriyê ye.",
        "action-read": "vê rûpelê bixwîne",
        "action-edit": "vê rûpelê biguherîne",
-       "action-createpage": "rûpelan çêke",
-       "action-createtalk": "rûpelên gotûbêjan çêke",
+       "action-createpage": "vê rûpelê çêke",
+       "action-createtalk": "vê rûpela gotûbêjê çêke",
        "action-createaccount": "vê hesabê bikarhênerîyê çêke",
        "action-minoredit": "vê weke guhertineke biçûk nîşan bide",
        "action-move": "vê rûpelê bigerîne",
        "recentchanges-label-plusminus": "Qebareya vê rûpelê bi ev qas biteyan hate guherandin",
        "recentchanges-legend-heading": "<strong>Ravekirina kurtenavan:</strong>",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (here [[Special:NewPages|lîsteya rûpelên nû]])",
+       "recentchanges-submit": "Nîşan bide",
        "rclistfrom": "Guherandinên ji $3 $2 şûnde nîşan bide",
        "rcshowhideminor": "Guherandinên biçûk $1",
        "rcshowhideminor-show": "nîşan bide",
        "unblocklink": "astengkirinê rake",
        "change-blocklink": "Astengkirinê biguherîne",
        "contribslink": "beşdarî",
-       "emaillink": "e-name bişîne",
+       "emaillink": "e-name bişîne",
        "autoblocker": "Otomatîk hate astengkirin ji ber ku IP'ya wê û ya \"[[User:$1|$1]]\" yek in. Sedem: \"''$2''\"",
        "blocklogpage": "Astengkirina têketinê",
        "blocklogentry": "\"[[$1]]\" ji bo dema $2, $3 asteng kir",
        "tooltip-ca-nstab-category": "Li rûpelê kategorîyê seke",
        "tooltip-minoredit": "Vê guherandinê weka biçûk îşaret bike",
        "tooltip-save": "Guherandinên xwe tomarbike",
+       "tooltip-publish": "Guherandinên xwe biweşîne",
        "tooltip-preview": "Guherandinên xwe bibîne, berî ku tu wî qeyd bikî!",
        "tooltip-diff": "Guherandinên ku te di nivîsê de kirîyî nîşan bide",
        "tooltip-compareselectedversions": "Cudatiyên guhertoyên hilbijartî yên vê rûpelê bibîne.",
        "pageinfo-category-pages": "Hejmara rûpelan",
        "pageinfo-category-subcats": "Hejmara binkategoriyan",
        "pageinfo-category-files": "Hejmara dosyeyan",
-       "markaspatrolleddiff": "Wek serrastkirî nîşan bide",
-       "markaspatrolledtext": "Vê rûpelê wek serrastkirî nîşan bide",
-       "markedaspatrolled": "Wek serrastkirî tê nîşandan",
+       "markaspatrolleddiff": "Wek sererastkirî nîşan bide",
+       "markaspatrolledtext": "Vê rûpelê wek sererastkirî nîşan bide",
+       "markedaspatrolled": "Wek sererastkirî tê nîşandan",
        "markedaspatrolledtext": "Guherandina rûpelê wek serrastkirî tê nîşandan.",
        "patrol-log-page": "Têketina kontrolkirinê",
        "deletedrevision": "Guhertoya berê $1 hate jêbirin.",
        "imagemaxsize": "Sînorê mezinahiya wêneyî:<br /><em>(bo rûpelên danasîna wêneyan)</em>",
        "thumbsize": "Mezinahiya wêne:",
        "widthheight": "$1 x $2",
-       "widthheightpage": "$1 × $2, $3 rûpel",
+       "widthheightpage": "$1 × $2, $3 {{PLURAL:$3|rûpel}}",
        "file-info": "mezinbûna daneyê: $1, MIME type: $2",
        "file-info-size": "$1 × $2 pixel, mezinbûnê data: $3, MIME-typ: $4",
        "file-nohires": "Versyonekî jê mezintir tune.",
        "confirm-purge-top": "Bîra vê rûpelê jêbîbe ?",
        "confirm-watch-button": "Temam",
        "confirm-unwatch-button": "Baş e",
+       "confirm-rollback-button": "Baş e",
        "quotation-marks": "\"$1\"",
        "imgmultipageprev": "← rûpela berî vê",
        "imgmultipagenext": "rûpela din →",
        "searchsuggest-search": "Lêgerîn",
        "searchsuggest-containing": "dihundirîne...",
        "api-error-filename-tooshort": "Navê dosyeyê pir kurt e.",
+       "api-error-unclassified": "Çewtiyeke nenas pêk hat.",
        "api-error-unknown-code": "Çewtiya nenas: \"$1\".",
        "api-error-unknownerror": "Çewtiya nenas: \"$1\".",
        "duration-years": "$1 {{PLURAL:$1|sal}}",
        "mw-widgets-titleinput-description-new-page": "rûpel hê tune ye",
        "mw-widgets-titleinput-description-redirect": "beralî bike ber bi $1 ve",
        "log-action-filter-all": "Hemû",
-       "log-action-filter-block-block": "Asteng bike"
+       "log-action-filter-block-block": "Asteng bike",
+       "log-action-filter-upload-upload": "Barkirina nû",
+       "authmanager-email-label": "E-name",
+       "authmanager-email-help": "Navnîşana e-nameyê"
 }
index db42da9..b8ab58d 100644 (file)
        "protectedpagetext": "Huic paginae protectio data est, ne redigatur neu aliter tractetur.",
        "viewsourcetext": "Fontem videas et exscribeas:",
        "protectedinterface": "Haec pagina dat textum interfaciei pro logiciali, et est protecta ad vandalismum vetandum.",
-       "editinginterface": "'''Caveat censor:''' Emendas iam paginam quae textum interfaciei logicialem dat. Mutationes vultum {{grammar:genitive|{{SITENAME}}}} omnibus usoribus afficient. In nuntia MediaWiki vertendo, quaesumus te uti [//translatewiki.net/wiki/Main_Page?setlang=la translatewiki.net].",
+       "editinginterface": "'''Caveat censor:''' Emendas iam paginam quae textum interfaciei logicialem dat. Mutationes vultum {{grammar:genitive|{{SITENAME}}}} omnibus usoribus afficient. In nuntia MediaWiki vertendo, quaesumus te uti [https://translatewiki.net/wiki/Main_Page?setlang=la translatewiki.net].",
        "namespaceprotected": "Tibi non licet paginas spatii nominalis '''$1''' recensere.",
        "ns-specialprotected": "Paginae speciales recenseri non possunt.",
        "titleprotected": "Hic titulus protectus est ab usore [[User:$1|$1]] ne creetur.\nRatio data est <em>$2</em>.",
index f38737b..4f3f53a 100644 (file)
        "nstab-template": "Şablón",
        "nstab-help": "Ayudo",
        "nstab-category": "Kategoría",
+       "mainpage-nstab": "La Primera Hoja",
        "nosuchaction": "No egziste esa aksyon",
        "nosuchactiontext": "La aksyon espesefikada por el URL es invalido.\nEs posivle ke el URL fue eskrito mal, o ke segite un enlase inkorrecto.\nTambiem puede indikar un yerro en la programa uzado por {{SITENAME}}.",
        "nosuchspecialpage": "No ay tala hoja especial",
        "protectedpagetext": "La pajina esta guardado kontra esdisyones i otras aksyones.",
        "viewsourcetext": "Puede ver i kopiar la fuente de este pajina:",
        "viewyourtext": "Puede ver i kopiar la fuente de \"tus edisyones\" a esta pajina:",
-       "protectedinterface": "Esta pajina abastese teksto de la interfaz para la programa de este viki, i es guardado para empedir abuso.\nPara anyadir o kambiar traduksyones para todos los vikis, uza [//translatewiki.net/translatewiki.net], el projecto de lokalizasyon de MediaWiki.",
-       "editinginterface": "'''Aviso:''' Estas editando una pajina uzada para abasteser teksto de la interfaz para la programa.\nKambios a esta pajina afectara la aparesemiento de la interfaz de usuario para los otros usuarios en este viki.\nPara anyadir o kambiar traduksyones para todos los vikis, uza [//translatewiki.net/translatewiki.net], el projecto de lokalizasyon de MediaWiki.",
+       "protectedinterface": "Esta pajina abastese teksto de la interfaz para la programa de este viki, i es guardado para empedir abuso.\nPara anyadir o kambiar traduksyones para todos los vikis, uza [https://translatewiki.net/translatewiki.net], el projecto de lokalizasyon de MediaWiki.",
+       "editinginterface": "'''Aviso:''' Estas editando una pajina uzada para abasteser teksto de la interfaz para la programa.\nKambios a esta pajina afectara la aparesemiento de la interfaz de usuario para los otros usuarios en este viki.\nPara anyadir o kambiar traduksyones para todos los vikis, uza [https://translatewiki.net/translatewiki.net], el projecto de lokalizasyon de MediaWiki.",
        "virus-unknownscanner": "antivirus deskonosido:",
        "welcomeuser": "Bienvinidos, $1",
        "yourname": "Nombre de kullaneador:",
        "accountcreated": "Cuento creado",
        "accountcreatedtext": "El kuento de usuario para [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) fue kreado.",
        "loginlanguagelabel": "Lingua: $1",
+       "pt-login": "Entrar",
+       "pt-createaccount": "Criar un cuento",
        "changepassword": "Trocar el kóddiche",
        "resetpass_header": "Kambiar kontrasenya del kuento",
        "oldpassword": "Kóddiche viejo:",
index eb80b45..12b6ec3 100644 (file)
        "protectedpagetext": "Dës Säit ass fir Ännerungen an aner Aktioune gespaart.",
        "viewsourcetext": "Dir kënnt de Quelltext vun dëser Säit kucken a kopéieren.",
        "viewyourtext": "Dir kënnt de Quelltext vun <strong>Ären Ännerungen</strong> op dëser Säit kucken a kopéieren.",
-       "protectedinterface": "Op dëser Säit fannt Dir Text fir de Sprooch-Interface vun der Software op dëser Wiki an dofir ass si gespaart fir Mëssbrauch ze verhënneren.\n\nFir Iwwersetzungen fir all Wikien bäizesetzen oder z'änneren gitt w.e.g. op [//translatewiki.net/ translatewiki.net], de MediaWiki-Lokalisatiouns-Projet.",
+       "protectedinterface": "Op dëser Säit fannt Dir Text fir de Sprooch-Interface vun der Software op dëser Wiki an dofir ass si gespaart fir Mëssbrauch ze verhënneren.\n\nFir Iwwersetzunge fir all Wikien bäizesetzen oder z'änneren gitt w.e.g. op [https://translatewiki.net/ translatewiki.net], de MediaWiki-Lokalisatiouns-Projet.",
        "editinginterface": "<strong>Opgepasst:</strong> Dir sidd am Gaang, eng Säit z'änneren, déi do ass, fir Interface-Text fir d'Software ze liwweren. \nÄnnerungen op dëser Säit änneren den Interface-Text, jee no Kontext, op allen oder verschiddene Säiten, déi vun alle Benotzer op dëser Wiki gesi ginn.",
-       "translateinterface": "Fir Iwwersetzunge fir all Wikien z'änneren oder dobäizesetze benotzt w.e.g.  [//translatewiki.net/ translatewiki.net], de Projet fir d'Lokalisatioun vu MediaWiki.",
+       "translateinterface": "Fir Iwwersetzunge fir all Wikien z'änneren oder dobäizesetze benotzt w.e.g.  [https://translatewiki.net/ translatewiki.net], de Projet fir d'Lokalisatioun vu MediaWiki.",
        "cascadeprotected": "Dës Säit gouf fir Ännerunge gespaart, well se duerch Cascadeprotectioun vun {{PLURAL:$1|dëser Säit|dëse Säite}} gespaart ass mat der Cascadenoptioun:\n$2",
        "namespaceprotected": "Dir hutt net déi néideg Rechter fir d'Säiten am Nummraum '''$1''' ze änneren.",
        "customcssprotected": "Dir hutt net d'Recht dës CSS-Säit z'änneren, well dorop déi perséinlech Astellunge vun engem anere Benotzer gespäichert sinn.",
        "password-change-forbidden": "Dir däerft op dëser Wiki Passwierder net änneren.",
        "externaldberror": "Entweder ass e Feeler bei der externer Authentifizéierung geschitt, oder Dir däerft Ären externe Benotzerkont net aktualiséieren.",
        "login": "Aloggen",
+       "login-security": "Iwwerpréift Är Idnetitéit",
        "nav-login-createaccount": "Aloggen / Benotzerkont uleeën",
        "userlogin": "Aloggen / Benotzerkont uleeën",
        "userloginnocreate": "Umellen",
        "createacct-reason-ph": "Fir wat Dir een anere Benotzerkonnt uleet",
        "createacct-submit": "Äre Benotzerkont uleeën",
        "createacct-another-submit": "Benotzerkont uleeën",
+       "createacct-continue-submit": "Virufuere mam Uleeë vum Benotzerkont",
+       "createacct-another-continue-submit": "Virufuere mam Uleeë vum Benotzerkont",
        "createacct-benefit-heading": "{{SITENAME}} gëtt vu Leit wéi Iech gemaach.",
        "createacct-benefit-body1": "{{PLURAL:$1|Ännerung|Ännerungen}}",
        "createacct-benefit-body2": "{{PLURAL:$1|Säit|Säiten}}",
        "createacct-another-realname-tip": "De richtegen Numm ass fakultativ.\n\nWann Dir en ugitt, gëtt e benotzt fir d'Benotzerattributiounen fir Är Aarbecht zouzeuerdnen.",
        "pt-login": "Aloggen",
        "pt-login-button": "Aloggen",
+       "pt-login-continue-button": "Virufuere mam Aloggen",
        "pt-createaccount": "Benotzerkont opmaachen",
        "pt-userlogout": "Ausloggen",
        "php-mail-error-unknown": "Onbekannte Feeler an der PHP-Mail-Funktioun",
        "resetpass-temp-password": "Temporäert Passwuert:",
        "resetpass-abort-generic": "D'Ännere vum Passwuert gouf duerch eng Erweiderung ofgebrach.",
        "resetpass-expired": "Äert Passwuert ass ofgelaf. Gitt w.e.g. en neit Passwuert u fir Iech anzeloggen.",
-       "resetpass-expired-soft": "Äert Passwuert ass ofgelaf a muss zeréckgesat. Sicht w.e.g. elo en neit Passwuert eraus oder klickt  \"{{int:resetpass-submit-cancel}}\" fir et spéider zeréckzesetzen.",
+       "resetpass-expired-soft": "Äert Passwuert ass ofgelaf a muss zeréckgesat. Sicht w.e.g. elo en neit Passwuert eraus oder klickt  \"{{int:authprovider-resetpass-skip-label}}\" fir et spéider zeréckzesetzen.",
        "resetpass-validity-soft": "Ärt Passwuert ass net valabel: $1",
        "passwordreset": "Passwuert zrécksetzen",
        "passwordreset-text-one": "Fëllt dëse Formulaire aus fir Äert Passwuert zréckzesetzen.",
        "passwordreset-emailsent-capture": "Eng Mail fir d'Passwuert zréckzesetze gouf geschéckt, Dir gesitt se hei drënner.",
        "passwordreset-emailerror-capture": "Eng Mail fir d'Passwuert zréckzesetze gouf geschéckt, Dir gesitt se hei drënner, awer de {{GENDER:$2|Benotzer}} konnt se net kréien: $1",
        "passwordreset-invalideamil": "Net-valabel E-Mail-Adress",
+       "passwordreset-nodata": "Et gouf weder e Benotzernumm nach e Passwuert uginn",
        "changeemail": "E-Mail-Adress änneren oder ewechhuelen",
        "changeemail-header": "Fëllt dëse Formulaire aus fir Är E-Mailadress z'änneren.  Wann Dir d'Verbindung tëscht Ärer E-Mailadress an Ärem Benotzerkont ewechhuele wëllt, da loosst d'Feld e-Mailadress eidel wann Dir de Formulaire späichert.",
        "changeemail-passwordrequired": "Dir musst Äert Passwuert agi fir dës Ännerung ze konfirméieren.",
        "minoredit": "Dëst ass eng kleng Ännerung",
        "watchthis": "Dës Säit iwwerwaachen",
        "savearticle": "Säit späicheren",
+       "savechanges": "Ännerunge späicheren",
        "publishpage": "Säit publizéieren",
+       "publishchanges": "Ännerunge publizéieren",
        "preview": "Kucken ouni ofzespäicheren",
        "showpreview": "Kucken ouni ofzespäicheren",
        "showdiff": "Ännerunge weisen",
        "blankarticle": "<strong>Opgepasst:</strong> D'Säit déi Dir uleet ass eidel.\nWann Dir nach eng Kéier op \"{{int:savearticle}}\" klickt, da gëtt d'Säit ugeluecht.",
-       "anoneditwarning": "<strong>Opgepasst:</strong> Dir sidd net ageloggt. Dowéinst gëtt amplaz vun engem Benotzernumm Är IP Adress ëffentlech gewise wann Dir Ännerunge maacht. Wann Dir <strong>[$1 Iech aloggt]</strong> oder <strong>[$2 e Bnotzerkont opmaachen]</strong>, Är Ännerunge ginn dann Ärem Benotzerkont zougedeelt, genee wéi aner Avantagen.",
+       "anoneditwarning": "<strong>Opgepasst:</strong> Dir sidd net ageloggt. Dowéinst gëtt amplaz vun engem Benotzernumm Är IP Adress ëffentlech gewise wann Dir Ännerunge maacht. Wann Dir <strong>[$1 Iech aloggt]</strong> oder <strong>[$2 e Benotzerkont opmaachen]</strong>, Är Ännerunge ginn dann Ärem Benotzerkont zougedeelt, genee wéi aner Avantagen.",
        "anonpreviewwarning": "''Dir sidd net ageloggt. Wann Dir ofspäichert gëtt Är IP-Adress an der Lëscht vun de Versioune vun dëser Säit enregistréiert.''",
        "missingsummary": "'''Erënnerung:''' Dir hutt kee Resumé aginn.\nWann Dir nacheemol op \"{{int:savearticle}}\" klickt, gëtt Är Ännerung ouni Resumé ofgespäichert.",
        "selfredirect": "<strong>Opgepasst:</strong> Dir maacht eng Viruleedung vun dëser Aäit op sech selwer.\n\nEt ka sinn datt Dir déi falsch Zilsäit fir d'Viruleedung aginn hutt oder datt Dir déi falsch Säit ännert.\n\nWann Dir nach eng Kéier op \"{{int:savearticle}}\" klickt, da gëtt d'Viruleedung trotzdem ugeluecht.",
        "accmailtext": "En zoufälleg generéiert Passwuert fir [[User talk:$1|$1]] gouf op $2 geschéckt.\n\nEt kann op der ''[[Special:ChangePassword|Passwuert ännere]]'' Säit beim Alogge geännert ginn.",
        "newarticle": "(Nei)",
        "newarticletext": "Dir hutt op e Link vun enger Säit geklickt, déi et nach net gëtt. Fir déi Säit unzeleeën, gitt w.e.g. Ären Text an déi Këscht hei drënner an (kuckt d'[$1 Hëllef Säit] fir méi Informatiounen). Wann Dir duerch een Iertum heihi komm sidd, da klickt einfach op de Knäppchen '''Zréck''' vun Ärem Browser.",
-       "anontalkpagetext": "---- ''Dëst ass d'Diskussiounssäit fir en anonyme Benotzer deen nach kee Kont opgemaach huet oder en net benotzt. Dowéinst musse mir d'IP Adress benotzen, fir de Benotzer z'identifizéieren.\nSou eng IP Adress ka vun e puer Benotzer gedeelt ginn.\nWann Dir en anonyme Benotzer sidd an Dir irrelevant Bemierkunge krut, [[Special:CreateAccount|maacht w.e.g. e Kont op]] oder [[Special:UserLogin|loggt Iech an]], fir weider Verwiesselunge mat aneren anonyme Benotzer ze verhënneren.''",
+       "anontalkpagetext": "---- <em>Dëst ass d'Diskussiounssäit fir en anonyme Benotzer deen nach kee Kont opgemaach huet oder en net benotzt. Dowéinst musse mir d'IP Adress benotzen, fir de Benotzer z'identifizéieren.\nSou eng IP Adress ka vun e puer Benotzer gedeelt ginn.\nWann Dir en anonyme Benotzer sidd an Dir net-relevant Bemierkunge krut, [[Special:CreateAccount|maacht w.e.g. e Kont op]] oder [[Special:UserLogin|loggt Iech an]], fir weider Verwiesselunge mat aneren anonyme Benotzer ze verhënneren.</em>",
        "noarticletext": "Dës Säit huet elo keen Text.\nDir kënnt op anere Säiten no [[Special:Search/{{PAGENAME}}|dësem Säitentitel sichen]],\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} an den entspriechende Logbicher nokucken] oder [{{fullurl:{{FULLPAGENAME}}|action=edit}} dës Säit uleeën]</span>.",
        "noarticletext-nopermission": "Elo ass keen Text op dëser Säit.\nDir kënnt op anere Säiten [[Special:Search/{{PAGENAME}}|no dësem Säitentitel sichen]], oder <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} an de Logbicher sichen]</span>, mä Dir hutt net déi néideg Rechter fir dës Säit unzeleeën.",
        "missing-revision": "D'Versioun #$1 vun der Säit mam Numm \"{{FULLPAGENAME}}\" gëtt et net.\n\nDat geschitt normalerweis wann Dir op e vereelste Link vun enger Versioun vun enger Säit klickt déi geläscht ginn ass.\nDetailer fannt Dir am [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} Logbuch vum Läschen].",
        "userpage-userdoesnotexist": "De Benotzerkont \"<nowiki>$1</nowiki>\" ass net registréiert.\nIwwerpréift w.e.g. op Dir dës Säit uleeën/ännere wëllt.",
        "userpage-userdoesnotexist-view": "De Benotzerkont \"$1\" ass net registréiert.",
        "blocked-notice-logextract": "Dëse Benotzer ass elo gespaart.\nDéi lescht Entrée am Logbuch vun de Späre steet als Referenz hei drënner:",
-       "clearyourcache": "'''Opgepasst - Nom Späichere muss der Ärem Browser seng Cache eidel maachen, fir d'Ännerungen ze gesinn.'''\n* '''Firefox / Safari:''' Halt ''Shift'' während Dir ''Reload'' klickt oder dréckt entweder ''Ctrl-F5'' oder ''Ctrl-R'' (''⌘-R'' op engem Mac);\n* '''Google Chrome:''' Dréckt ''Ctrl-Shift-R'' (''⌘-Shift-R'' op engem Mac)\n* '''Internet Explorer:''' dréckt ''Ctrl'' während Dir op ''Refresh'' klickt oder dréckt ''Ctrl-F5.''\n* '''Opera:''' maacht de Cache eidel an ''Tools → Preferences;''",
+       "clearyourcache": "<strong>Opgepasst - Nom Späichere muss der Ärem Browser seng Cache eidel maachen, fir d'Ännerungen ze gesinn.</strong>\n* <strong>Firefox / Safari:</strong> Halt <em>Shift</em> während Dir <em>Reload</em> klickt oder dréckt entweder <em>Ctrl-F5</em> oder <em>Ctrl-R</em> (<em>⌘-R</em> op engem Mac);\n* <strong>Google Chrome:</strong> Dréckt <em>Ctrl-Shift-R</em> (<em>⌘-Shift-R</em> op engem Mac)\n* <strong>Internet Explorer:</strong> dréckt <em>Ctrl</em> während Dir op <em>Refresh</em> klickt oder dréckt <em>Ctrl-F5.</em>\n* <strong>Opera:</strong> Gitt op de <em>Menu → Settings</em> (<em>Opera → Preferences</em> op engem  Mac) an dann op <em>Privacy & security → Clear browsing data → Cached images and files</em>.",
        "usercssyoucanpreview": "'''Tipp:''' Benotzt de \"{{int:showpreview}}\"-Knäppchen, fir Ären neien CSS virum Späicheren ze testen.",
        "userjsyoucanpreview": "'''Tipp:''' Benotzt de ''{{int:showpreview}}''-Knäppchen, fir Ären neie JavaScript virum Späicheren ze testen.",
        "usercsspreview": "'''Bedenkt: Dir kuckt just är Benotzer CSS.\nSi gouf nach net gespäichert!'''",
        "previewnote": "'''Denkt drun datt dëst nëmmen eng net gespäichert Versioun ass.'''\nÄr Ännerunge sinn nach net gespäichert!",
        "continue-editing": "Gitt weider an de Beräich fir z'änneren",
        "previewconflict": "Dir gesitt an dem ieweschten Textfeld wéi den Text ausgesi wäert, wann Dir späichert.",
-       "session_fail_preview": "<strong>Är Ännerung konnt net gespäichert gi well d'Date vun Ärer Sessioun verluergaange sinn.</strong>\nVersicht et w.e.g. nach eng Kéier.\nWann de Problem dann ëmmer nach bestoe sollt, da versicht Iech [[Special:UserLogout|auszeloggen]] an dann erëm anzeloggen.",
+       "session_fail_preview": "Är Ännerung konnt net gespäichert gi well d'Date vun Ärer Sessioun verluergaange sinn.\nDir gouft eventuell ausgeloggt. <strong>Iwwerpréift w.e.g. ob Dir nach ageloggt sidd a probéiert nach eng Kéier</strong>.\nWann de Problem dann ëmmer nach bestoe sollt, da versicht Iech [[Special:UserLogout|auszeloggen]] an dann erëm anzeloggen an iwwerpréift datt Äre Browser Cookië vun dësem Site  akzeptéiert.",
        "session_fail_preview_html": "Är Ännerung konnt net gespäichert gi well d'Date vun Ärer Sessioun verluergaange sinn.\n\n<em>Well op {{SITENAME}} 'raw HTML' aktivéiert ass, gouf d'Uweise vun der nach net gespäicherter Versioun ausgeblennt fir JavaScript-Attacken ze vermeiden.</em>\n\n<strong>Wann Dir eng berechtegt Ännerung maache wëllt, da versicht et w.e.g. nach eng Kéier.</strong>\n\nWann de Problem dann ëmmer nach bestoe sollt, versicht Iech [[Special:UserLogout|auszeloggen]] an dann erëm anzeloggen a vergewëssert Iech datt Äre Browser d^Späichere vu Cookieë vun dësem Site zouléisst.",
        "token_suffix_mismatch": "'''Är Ännerung gouf refuséiert, well Äre Browser Zeechen am Ännerungs-Identifiant verännert huet.'''\nD'Ännerung gouf refuséiert, fir ze verhënneren datt den Text op der Säit onliesbar gëtt.\nDëst geschitt heiansdo wann Dir en anonyme Proxy-Service um Internet benotzt.",
        "edit_form_incomplete": "'''En Deel vum Ännerungsformulaire koum net um Server un; iwwerpréift w.e.g ob Är Ännerunge komplett sinn a probéiert nach emol.'''",
        "mergehistory-empty": "Et kënne keng Versioune zesummegeluecht ginn.",
        "mergehistory-done": "{{PLURAL:$3|1 Versioun gouf|$3 Versioune goufe}} vu(n) $1 op [[:$2]] zesummegeluecht.",
        "mergehistory-fail": "Versiounszesummeleeung war net méiglech, kuckt w.e.g. d'Säiten an d'Zäit-Parameter no.",
+       "mergehistory-fail-bad-timestamp": "Zäitstempel ass net valabel.",
+       "mergehistory-fail-invalid-source": "Quellsäit ass net valabel.",
+       "mergehistory-fail-invalid-dest": "Zilsäit ass net valabel.",
        "mergehistory-fail-toobig": "D'zesummeleeë vun der Lëscht vun de Versioune konnt net gemaach ginn well méi wéi d'Limite vun $1 {{PLURAL:$1|Versioun|Versioune}} geréckelt géife ginn",
        "mergehistory-no-source": "Originalsäit \"$1\" gëtt et net.",
        "mergehistory-no-destination": "Zilsäit \"$1\" gëtt et net.",
        "right-unwatchedpages": "Lëscht vun den net iwwerwaachte Säite weisen",
        "right-mergehistory": "Zesummeféierung vum Historique vun de Versioune vu Säiten",
        "right-userrights": "All Benotzerrechter änneren",
-       "right-userrights-interwiki": "Benotzerrechter vu Benotzer op anere Wiki-Siten änneren",
+       "right-userrights-interwiki": "Benotzerrechter vu Benotzer op anere Wiki-Sitten änneren",
        "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",
        "rightslogtext": "Dëst ass d'Lëscht vun den Ännerunge vu Benotzerrechter.",
        "action-read": "dës Säit ze liesen",
        "action-edit": "dës Säit z'änneren",
-       "action-createpage": "Säiten unzelleeën",
-       "action-createtalk": "Diskussiounssäiten unzeleeën",
+       "action-createpage": "dës Säit uleeën",
+       "action-createtalk": "dës Diskussiounssäit uleeën",
        "action-createaccount": "dëse Benotzerkont unzeleeën",
        "action-history": "d'Versioune vun dëser Säit weisen",
        "action-minoredit": "dës Ännerung als kleng Ännerung ze markéieren",
        "upload-too-many-redirects": "Et waren zevill Viruleedungen fir d'URL do",
        "upload-http-error": "Et ass en HTTP-Feeler geschitt: $1",
        "upload-copy-upload-invalid-domain": "Vun dësem Domain ass d'Eropluede vu Kopien net méiglech.",
+       "upload-dialog-disabled": "D'Eropluede vu Fichieren mat dësem Dialog ass op dëser Wiki desaktivéiert.",
        "upload-dialog-title": "Fichier eroplueden",
        "upload-dialog-button-cancel": "Ofbriechen",
        "upload-dialog-button-done": "Fäerdeg",
        "apisandbox-dynamic-parameters": "Zousätzlech Parameteren",
        "apisandbox-dynamic-parameters-add-label": "Parameter derbäisetzen:",
        "apisandbox-dynamic-parameters-add-placeholder": "Numm vum Parameter",
+       "apisandbox-dynamic-error-exists": "Et gëtt schonn e Parameter mam Numm \"$1\".",
        "apisandbox-deprecated-parameters": "Vereelst Parameter",
        "apisandbox-submit-invalid-fields-title": "E puer Felder sinn net valabel.",
        "apisandbox-results": "Resultater",
        "apisandbox-request-url-label": "URL fir Ufroen:",
        "apisandbox-request-time": "Dauer vun der Ufro: {{PLURAL:$1|$1 ms}}",
        "apisandbox-alert-page": "Felder op dëser Säit sinn net valabel.",
+       "apisandbox-alert-field": "De wäert vun dësem Feld ass net valabel.",
        "booksources": "Bicherreferenzen",
        "booksources-search-legend": "No Bicherreferenze sichen",
        "booksources-search": "Sichen",
        "sp-contributions-username": "IP-Adress oder Benotzernumm:",
        "sp-contributions-toponly": "Nëmmen Ännerunge weisen déi déi lescht Versioun sinn",
        "sp-contributions-newonly": "Nëmmen Ännerunge weisen déi Säiten uleeën",
+       "sp-contributions-hideminor": "Kleng Ännerunge verstoppen",
        "sp-contributions-submit": "Sichen",
        "whatlinkshere": "Linken op dës Säit",
        "whatlinkshere-title": "Säiten, déi mat \"$1\" verlinkt sinn",
        "lockedbyandtime": "(vum $1 de(n) $2 ëm $3 Auer)",
        "move-page": "Réckel $1",
        "move-page-legend": "Säit réckelen",
-       "movepagetext": "Wann Dir dëse Formulaire benotzt gitt Dir enger Säit en aneren Numm a réckelt se mat hirem Historique op den neien Numm.\nDen alen Titel gëtt eng Viruleedung op déi nei Säit.\nDir kënnt Viruleedungen déi op déi al Säit ginn automatesch aktualiséieren.\nWann Dir dat net maacht, da vergewëssert Iech datt keng [[Special:DoubleRedirects|duebel]] oder [[Special:BrokenRedirects|futtis Viruleedungen]] am Spill sinn.\nDir sidd responsabel datt d'Linke weiderhin dohinner pointéieren, wou se hi sollen.\n\nBeuecht w.e.g. datt d'Säit '''net''' geréckelt gëtt, wann et schonn eng Säit mat deem Titel gëtt, ausser déi ass eidel, ass eng Viruleedung oder huet keen Historique.\nDëst bedeit datt Dir eng Säit zréck op hiren ursprénglechen Numm ëmbenenne kënnt wann Dir Iech geiert hat an datt Dir keng Säit iwwerschreiwe kënnt, déi et scho gëtt.\n\n'''OPGEPASST!'''\nDëst kann en drastesche Changement fir eng populär Säit bedeiten;\nverstitt w.e.g. d'Konsequenze vun Ärer Handlung ier Dir dëst maacht.",
-       "movepagetext-noredirectfixer": "Wann Dir dëse Formulaire benotzt, réckelt Dir eng komplett Säit mat hirem Historique op en neien Numm.\nDen alen Titel gëtt eng Viruleedung op den neien Titel.\nDir kënnt Viruleedungen déi op déi al Säit ginn automatesch aktualiséieren.\nVergewëssert Iech datt keng [[Special:DoubleRedirects|duebel]] oder [[Special:BrokenRedirects|futtis Viruleedungen]] am Spill sinn.\nDir sidd responsabel datt d'Linke weider dohi pointéieren, wou se hi sollen.\n\nDenkt w.e.g. drun datt d'Säit '''net''' geréckelt gëtt, wann et schonn eng Säit mat deem Titel gëtt, ausser déi ass eidel, ass eng Viruleedung oder huet keen Historique.\nDëst bedeit datt dir eng Säit zréck op deen Numm dee se virdrun hat ëmbenenne kënnt wann Dir e Feeler maacht an datt Dir keng Säit iwwerschreiwe kënnt, déi et scho gëtt.\n\n'''OPGEPASST!'''\nDëst kann en drastesche Changement fir eng populär Säit sinn;\nverstitt w.e.g. d'Konsequenze vun ärer Handlung ier Dir dëst maacht.",
+       "movepagetext": "Wann Dir dëse Formulaire benotzt gitt Dir enger Säit en aneren Numm a réckelt se mat hirem Historique op den neien Numm.\nDen alen Titel gëtt eng Viruleedung op déi nei Säit.\nDir kënnt Viruleedungen déi op déi al Säit ginn automatesch aktualiséieren.\nWann Dir dat net maacht, da vergewëssert Iech datt keng [[Special:DoubleRedirects|duebel]] oder [[Special:BrokenRedirects|futtis Viruleedungen]] am Spill sinn.\nDir sidd responsabel datt d'Linke weiderhin dohinner pointéieren, wou se hi sollen.\n\nBeuecht w.e.g. datt d'Säit '''net''' geréckelt gëtt, wann et schonn eng Säit mat deem Titel gëtt, ausser déi ass eidel, ass eng Viruleedung oder huet keen Historique.\nDëst bedeit datt Dir eng Säit zréck op hiren ursprénglechen Numm ëmbenenne kënnt wann Dir Iech geiert hat an datt Dir keng Säit iwwerschreiwe kënnt, déi et scho gëtt.\n\n<strong>Notiz:</strong>\nDëst kann en drastesche Changement fir eng populär Säit bedeiten;\nverstitt w.e.g. d'Konsequenze vun Ärer Handlung ier Dir dëst maacht.",
+       "movepagetext-noredirectfixer": "Wann Dir dëse Formulaire benotzt, réckelt Dir eng komplett Säit mat hirem Historique op en neien Numm.\nDen alen Titel gëtt eng Viruleedung op den neien Titel.\nDir kënnt Viruleedungen déi op déi al Säit ginn automatesch aktualiséieren.\nVergewëssert Iech datt keng [[Special:DoubleRedirects|duebel]] oder [[Special:BrokenRedirects|futtis Viruleedungen]] am Spill sinn.\nDir sidd responsabel datt d'Linke weider dohi pointéieren, wou se hi sollen.\n\nDenkt w.e.g. drun datt d'Säit <strong>net</strong> geréckelt gëtt, wann et schonn eng Säit mat deem Titel gëtt, ausser déi ass eidel, ass eng Viruleedung oder huet keen Historique.\nDëst bedeit datt dir eng Säit zréck op deen Numm dee se virdrun hat ëmbenenne kënnt wann Dir e Feeler maacht an datt Dir keng Säit iwwerschreiwe kënnt, déi et scho gëtt.\n\n<strong>Notiz:</strong>\nDëst kann en drastesche Changement fir eng populär Säit sinn;\nverstitt w.e.g. d'Konsequenze vun ärer Handlung ier Dir dëst maacht.",
        "movepagetalktext": "Wann Dir dës Këscht uklickt da gëtt déi associéiert Diskussiounssäit, am Fall wou  eng do ass, automatesch op deen neien Numm matgeréckelt, '''ausser:''' Et gëtt schonn eng Diskussiounssäit mat dësem Numm déi net eidel ass.\n\nAn deem Fäll musst Dir d'Diskussiounssäit manuell réckelen oder fusionéieren.",
        "moveuserpage-warning": "'''Opgepasst:''' Dir sidd am gaang eng Benotzersäit ze réckelen. Denkt w.e.g. dorunn datt just d'Säit geréckelt gëtt an datt de Benotzer ''net'' ëmbenannt gëtt.",
        "movecategorypage-warning": "<strong>Opgepasst:</strong> Dir sidd am Gaang eng Kategorie-Säit ze réckelen. Denkt drun datt nëmmen déi Säit geréckelt gëtt an all Säiten an der aler Kategorie ginn <em>net</em> an déi nei ëmkategoriséiert.",
        "move-leave-redirect": "Viruleedung uleeën",
        "protectedpagemovewarning": "<strong>OPGEPASST:</strong> Dës Säit gouf gespaart sou datt nëmme Benotzer mat Administreursrechter se réckele kënnen.\nDéi lescht Zeil aus de Logbicher fannt Dir zu Ärer Informatioun hei ënnendrënner.",
        "semiprotectedpagemovewarning": "'''OPGEPASST:''' Dës Säit gouf gespaart sou datt nëmme confirméiert Benotzer se réckele kënnen. Déi lescht Zeil aus de Logbicher fannt Dir zu Ärer Informatioun hei ënnendrënner.",
-       "move-over-sharedrepo": "== De Fichier gëtt et ==\n[[:$1]] gëtt et op engem gedeelte Repertoire. Wann dir e Fichier op dësen Titel réckelt dann ass dee gedeelte Fichier net méi accessibel.",
+       "move-over-sharedrepo": "== De Fichier gëtt et ==\n[[:$1]] gëtt et op engem gedeelte Repertoire. Wann Dir e Fichier op dësen Titel réckelt da gëtt dee gedeelte Fichier verstoppt.",
        "file-exists-sharedrepo": "Den Numm vum Fichier deen Dir erausgesicht hutt gëtt schonn op engem gemeinsame Repertoire benotzt.\nSicht Iech w.e.g. en aneren Numm.",
        "export": "Säiten exportéieren",
        "exporttext": "Dir kënnt den Text an den Historique vun enger bestëmmter Säit, oder engem Set vu Säiten, an XML agepakt, exportéieren, déi dann an eng aner Wiki mat MediaWiki Software importéiert gi mat Hëllef vun der [[Special:Import|Import-Säit]].\n\nFir eng Säit z'exportéieren, gitt den Titel an d'Textkëscht heidrënner an, een Titel pro Linn, a wielt aus op Dir nëmmen déi aktuell Versioun oder all Versioune mam ganzen Historique exportéiere wëllt.\n\nWann nëmmen déi aktuell Versioun exportéiert soll ginn, kënnt Dir och e Link benotze wéi z. B. [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] fir d'\"[[{{MediaWiki:Mainpage}}]]\".",
        "allmessagesname": "Numm",
        "allmessagesdefault": "Standardtext",
        "allmessagescurrent": "Aktuellen Text",
-       "allmessagestext": "Dëst ass eng Lëscht vun alle '''Messagen am MediaWiki:Nummraum, déi vun der MediaWiki-Software benotzt ginn.\nBesicht w.e.g. [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisatioun] an [//translatewiki.net translatewiki.net] wann Dir wëllt bei de MediaWiki Iwwersetzunge matschaffen.",
+       "allmessagestext": "Dëst ass eng Lëscht vun alle '''Messagen am MediaWiki:Nummraum, déi vun der MediaWiki-Software benotzt ginn.\nBesicht w.e.g. [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisatioun] an [https://translatewiki.net translatewiki.net] wann Dir wëllt bei de MediaWiki Iwwersetzunge matschaffen.",
        "allmessagesnotsupportedDB": "Dës Säit kann net benotzt gi well '''$wgUseDatabaseMessages''' ausgeschalt ass.",
        "allmessages-filter-legend": "Filter",
        "allmessages-filter": "Filter nom ugepassten Zoustand:",
        "import-nonewrevisions": "Et goufe keng Versiounen importéiert (se waren al entweder scho virdrun importéiert ginn oder se goufen iwwersprong well Feeler dra waren).",
        "xml-error-string": "$1 an der Zeil $2, Spalt $3, (Byte $4): $5",
        "import-upload": "XML-Daten importéieren",
-       "import-token-mismatch": "D'Date vun ärer Sessioun si verluer gaang. Versicht et w.e.g. nach eemol.",
+       "import-token-mismatch": "D'Date vun ärer Sessioun si verluer gaang.\n\nDir sidd eventuell ausgeloggt ginn. <strong>Kuckt w.e.g. no ob Dir nach ageloggt sidd a probéiert nach eng Kéier</strong>.\nWann et dann nach net geet, probéiert [[Special:UserLogout|Iech auszeloggen]] an duerno nees anzeloggen a kuckt no ob Äre Browser Cookië vun dësem Site akzeptéiert.",
        "import-invalid-interwiki": "Aus der Wiki déi Dir uginn hutt kann näischt importéiert ginn.",
        "import-error-edit": "D'Säit \"$1\" gouf net importéiert well Dir se net änneren däerft.",
        "import-error-create": "D'Säit \"$1\" gouf net importéiert well Dir se net uleeën däerft.",
        "tooltip-pt-preferences": "{{GENDER:|Är}} Astellungen",
        "tooltip-pt-watchlist": "Lëscht vu Säiten, bei deenen Dir op Ännerungen oppasst",
        "tooltip-pt-mycontris": "Lëscht vun {{GENDER:|Äre}} Kontributiounen",
+       "tooltip-pt-anoncontribs": "Eng Lëscht vun Ännerungen déi vun dëser IP-Adress aus gemaach goufen",
        "tooltip-pt-login": "Sech umelle gëtt gäre gesinn, Dir musst et awer net maachen.",
        "tooltip-pt-logout": "Ofmellen",
        "tooltip-pt-createaccount": "Et gëtt Iech geroden e Benotzerkont unzeleeën an Iech anzeloggen; dat ass awer net obligatoresch",
        "mw-widgets-dateinput-placeholder-month": "JJJJ-MM",
        "mw-widgets-titleinput-description-new-page": "Säit gëtt et nach net",
        "mw-widgets-titleinput-description-redirect": "viruleeden op $1",
-       "api-error-blacklisted": "Sicht w.e.g. en aneren Titel, dee méi iwwer de Sujet ausseet.",
        "sessionprovider-generic": "$1-Sessiounen",
        "randomrootpage": "Zoufalls-Stammsäit",
        "log-action-filter-block": "Typ vun der Spär:",
        "authprovider-resetpass-skip-label": "Iwwersprangen",
        "authprovider-resetpass-skip-help": "D'Zrécksetze vum Passwuert iwwersprangen",
        "specialpage-securitylevel-not-allowed-title": "Net erlaabt",
+       "specialpage-securitylevel-not-allowed": "Leider däerft Dir dës Säit net benotze well Är Identitéit net konnt iwwerpréift ginn.",
        "cannotauth-not-allowed-title": "Erlaabnes refuséiert",
-       "changecredentials-submit": "Änneren",
-       "changecredentials-submit-cancel": "Ofbriechen",
+       "cannotauth-not-allowed": "Dir däerft dës Säit net benotzen",
+       "changecredentials-submit": "Idendifikatiounsinformatiounen änneren",
        "changecredentials-success": "Är Idendifikatiounsinformatioune goufe geännert.",
-       "removecredentials-submit": "Ewechhuelen",
-       "removecredentials-submit-cancel": "Ofbriechen",
+       "removecredentials-submit": "Idendifikatiounsinformatiounen ewechhuelen",
        "credentialsform-account": "Numm vum Kont:",
        "cannotlink-no-provider-title": "Et gëtt keng Benotzerkonte fir ze verlinken",
        "linkaccounts": "Benotzerkonte verbannen",
index 5b8c07d..f1d9a18 100644 (file)
        "move-page-legend": "Юзун хъувун",
        "movepagetext": "Ишлемишиз кlеневай къаб,чарчин тlар дегишариp, кьиспесдин  чка дегишарун, цlийи тlар авун.\nИски тlарцlи ракъурда цlийи тlарцlел.\nКвевай жеда цlийи хъийиз ракъурун, къалурзай дуьз тlарцlел вуч вичиз.\nКвез кlанзаштlа,рекlел алудмир ахтармишиз инна [[Special:DoubleRedirects|double]] ва [[Special:BrokenRedirects|broken redirects]].\nКуьне тухузва шаидвал,мадни гьабур гьамиша алукьдайвал, гьиниз гьабур фена кlанзатl.\n\nАхтармиша, чар ''ваъ''' ракъур хьун, гьахьтин тlар алай чар ава, гьама ичlиди ятlа, ракъурнатlа ва дегишарунин кьиспес авачтlа.\nКевай жеда гьа чар тlар дегишараз кьулукъ гьаниз элкъуьриз, гьина гьадан тlар дегиш авунатlа, куьне гъалатl авунатlа, куьне чин тийиз авай чарчик гъалатl тада.\n\n'''Килига!'''\nАмма бейхабар жеда гзаф герекзай чарариз;\nБуюр, килиг , куьне фикирзатlа вуч жезатlа, кхьин хъийидади.",
        "movepagetalktext": "Ухшар авай чарар ихтилатдин, фида масса чкадал вуч вичиз ибур галаз''',амма:'''                                                                               *Эчlи чар ихтилатдин ава цlийи тlар алаз, ва                                                                                                                                           *Куьне иляйда пайдах кlеникай                                                                                                                                                                                  Гьа вахтунда, куьне чка дегишар авун или санал авуна чар гъилелди, кlанда",
-       "movearticle": "Юзун хъувун:",
        "newtitle": "ЦӀийи тӀвар:",
        "move-watch": "Гелкъуьн и хъувун",
        "movepagebtn": "Юзун хъувун",
        "movelogpage": "ТӀвар эхцигунрин журнал",
        "movereason": "Фагьум:",
        "revertmove": "Рахкъурун",
-       "delete_and_move": "Алудун ва тӀвар эхцигун",
        "export": "Ччинрин экспорт",
        "export-addns": "Алава авун",
        "export-download": "Файл хьиз хуьн",
index 17b837b..dd1e9d4 100644 (file)
        "loginerror": "Era de entra",
        "loginsuccesstitle": "Entra susedente",
        "loginsuccess": "'''Tu ia entrada aora a {{SITENAME}} como \"$1\".'''",
-       "nosuchuser": "Es no usor con la nom \"$1\".\nEsamina la spele, o [[Special:UserLogin/signup|crea un conta nova]].",
+       "nosuchuser": "Es no usor con la nom \"$1\".\nEsamina la spele, o [[Special:CreateAccount|crea un conta nova]].",
        "nosuchusershort": "Es no usor con esta nom \"$1\". Esamina la spele.",
        "nouserspecified": "Tu debe indica un nom de usor.",
        "wrongpassword": "La sinia de entra no es coreta. Per favore, atenta ancora.",
        "move-page-legend": "Move paje",
        "movepagetext": "Usa la forma a su va cambia la nom de un paje, e va move tota se istoria a la nom nova.\nLa titulo vea va deveni un paje de redirije a la titulo nova.\nLias a la titulo de la paje vea no va es cambiada;\nTu debe vide serta ce es redirijes duple o rompeda.\nTu es respondable per es serta ce la lias va continua vade a la locas intendeda.\n\nNota ce la paje '''no''' va es moveda si es ja un paje a la titulo nova, sin el es vacua o un redirije e no ave un istoria de editas presedente.\nEsta sinifia ce tu pote cambia la nom de un paje a la loca presedente si tu era, e tu no pote scrive supra un paje ce esiste ja.\n\n'''AVISA!'''\nEsta pote es un cambia dramos e nonespetada per un paje poplal;\nper favore, es serta ce tu comprende la resulta de esta ata ante tu continua.",
        "movepagetalktext": "La paje de discuta de esta paje va es moveda automatica con el '''eseta si:'''\n*Un paje de discuta ce no es vacua esiste ja su la nom nova, o\n*Tu cambia la indica en la caxa su.\n\nEn esta casos, tu va nesesa move o fusa la paje per mano, si desirada.",
-       "movearticle": "Move paje:",
        "newtitle": "A titulo nova:",
        "move-watch": "Oserva esta paje",
        "movepagebtn": "Move paje",
index 2dc0222..af7f9be 100644 (file)
        "allmessagesname": "Erinnya",
        "allmessagesdefault": "Ebigambo ebya bulijjo",
        "allmessagescurrent": "Ebiriwo kakano",
-       "allmessagestext": "Luno lwe lukalala olw'obubaka obwa sisitemu obw'omu kkuŋŋaanizo erya MediaWiki.\n\nOb'oyagala okuyamba ku kuvvuunula eby'omu MediaWiki yonna, kebera ku [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] ne [//translatewiki.net translatewiki.net].",
+       "allmessagestext": "Luno lwe lukalala olw'obubaka obwa sisitemu obw'omu kkuŋŋaanizo erya MediaWiki.\n\nOb'oyagala okuyamba ku kuvvuunula eby'omu MediaWiki yonna, kebera ku [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] ne [https://translatewiki.net translatewiki.net].",
        "allmessages-filter-legend": "Ensunsula",
        "allmessages-filter": "Londamu:",
        "allmessages-filter-unmodified": "Ebitannakyusibwamu",
index 1875dee..5c22e14 100644 (file)
        "viewsourcetext": "De kèns de brónteks van dees pagina bekieke en kopiëre:",
        "viewyourtext": "Doe kans \"dien bewèrkinge\" ane brónteks van dees pagina bekieke en euverkopiëre:",
        "protectedinterface": "Deze pagina bevat teks veur berichte van de software en is beveilig om misbroek te veurkomme.",
-       "editinginterface": "'''Waarsjoewing:''' Doe bewirks 'n pagina die gebroek waert door de software. Bewirkinge op dees pagina beïnvlode de gebroekersinterface van jederein. Euverwaeg veur euverzèttinge [//translatewiki.net/wiki/Main_Page?setlang=li translatewiki.net] te gebroeke, 't euverzèttingssprojek veur MediaWiki.",
+       "editinginterface": "'''Waarsjoewing:''' Doe bewirks 'n pagina die gebroek waert door de software. Bewirkinge op dees pagina beïnvlode de gebroekersinterface van jederein. Euverwaeg veur euverzèttinge [https://translatewiki.net/wiki/Main_Page?setlang=li translatewiki.net] te gebroeke, 't euverzèttingssprojek veur MediaWiki.",
        "cascadeprotected": "Deze pagina kin neet bewirk waere, omdet zie is opgenome in de volgende {{PLURAL:$1|pagina|pagina's}} die beveilig {{PLURAL:$1|is|zeen}} mèt de kaskaad-optie:\n$2",
        "namespaceprotected": "Doe höbs gein rechte om pagina's in de naamruumde '''$1''' te bewirke.",
        "customcssprotected": "De kèns dees CSS-pagina neet bewirke ómdet die persuunlike insjtèllinge van 'ne angere gebroeker bevat.",
        "querypage-disabled": "Dees speciaal pagina steit oet veur performanceredene.",
        "apisandbox": "API-zandjbak",
        "apisandbox-api-disabled": "API is oetgesjakeld op deze site.",
-       "apisandbox-intro": "Gebroek dees pagina óm te experimentere mit de '''MediaWiki API'''.\nZuuch de [//www.mediawiki.org/wiki/API:Main_page API-dokkemèntatie] veur mier details euver 't gebroek van de API.",
+       "apisandbox-intro": "Gebroek dees pagina óm te experimentere mit de '''MediaWiki API'''.\nZuuch de [https://www.mediawiki.org/wiki/API:Main_page API-dokkemèntatie] veur mier details euver 't gebroek van de API.",
        "apisandbox-submit": "Verzeuk oetveure",
        "apisandbox-results": "Rizzeltaat",
        "apisandbox-request-url-label": "Verzeuk-URL:",
        "allmessagesname": "Naam",
        "allmessagesdefault": "Obligaten teks",
        "allmessagescurrent": "Hujige teks",
-       "allmessagestext": "Dit is 'n lies van alle systeemberichte besjikbaar in de MediaWiki-naamruumde.\nBezeuk [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki-lokalisatie] en [//translatewiki.net translatewiki.net] es doe wils biedrage aon lokalisatie.",
+       "allmessagestext": "Dit is 'n lies van alle systeemberichte besjikbaar in de MediaWiki-naamruumde.\nBezeuk [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki-lokalisatie] en [https://translatewiki.net translatewiki.net] es doe wils biedrage aon lokalisatie.",
        "allmessagesnotsupportedDB": "Deze pagina kan neet gebroek waere omdet '''$wgUseDatabaseMessages''' oet steit.",
        "allmessages-filter-legend": "Filter",
        "allmessages-filter": "Filter óp aangepas:",
index cd2aa8c..de75f5e 100644 (file)
        "protectedpagetext": "Sta paggina a l'è stæta protezûa pe impedîne a modiffica ò di atre açioin.",
        "viewsourcetext": "L'è poscibbile amiâ e copiâ a sorgente de sta paggina.",
        "viewyourtext": "L'è poscibbile amiâ e copiâ a sorgente de <strong>teu modiffiche</strong> a sta paggina.",
-       "protectedinterface": "Sta paggina a conten un elemento ch'o fa parte de l'interfaccia utente do software de sto scito e a l'è protetta pe evitâ poscibbili abuxi.\nPe azonze o modificâ e tradussioin vallide insce tutti i wiki, deuvia [//translatewiki.net/ translatewiki.net], o progetto de localizzassion de MediaWiki.",
+       "protectedinterface": "Sta paggina a conten un elemento ch'o fa parte de l'interfaccia utente do software de sto scito e a l'è protetta pe evitâ poscibbili abuxi.\nPe azonze o modificâ e tradussioin vallide insce tutti i wiki, deuvia [https://translatewiki.net/ translatewiki.net], o progetto de localizzassion de MediaWiki.",
        "editinginterface": "<strong>Attension:</strong> o scrito de sta paggina o fa parte de l'interfaccia utente do software de questo scito. Tutte e modiffiche apportæ a questa paggina se riflettan in scî messaggi visualizzæ pe tutti i utenti in sce questo wiki.",
-       "translateinterface": "Pe azonze ò modificâ e tradussioin vallide insce tutti i wiki, deuvia [//translatewiki.net/ translatewiki.net], o progetto MediaWiki pe-a localizzassion.",
+       "translateinterface": "Pe azonze ò modificâ e tradussioin vallide insce tutti i wiki, deuvia [https://translatewiki.net/ translatewiki.net], o progetto MediaWiki pe-a localizzassion.",
        "cascadeprotected": "Insce sta paggina no l'è poscibbile effettuâ modiffiche perché a l'è inclusa {{PLURAL:$1|inta paggina indicâ de seguito, ch'a l'è stæta protetta|inte paggine indicæ de seguito, ch'en stæte protette}} selessionando a protession \"ricorsciva\":\n$2",
        "namespaceprotected": "No ti g'hæ i permissi necessai pe modificâ e paggine do namespace '''$1'''.",
        "customcssprotected": "No ti g'hæ i permissi pe cangiâ sta pagina CSS percose a conten e impostaçioin personale de 'n atro utente.",
        "resetpass-temp-password": "Poula segretta temporannia:",
        "resetpass-abort-generic": "A modiffica da poula segretta a l'è stæta interotta da un'estenscion.",
        "resetpass-expired": "A to poula segretta a l'è descheita. Pe piaxei impòstine un-a neuva pe intrâ.",
-       "resetpass-expired-soft": "A to poula segretta a l'è descheita e a g'ha da ese reimpostâ. Pe piaxei çèrnine un-a neuva òua ò clicca in sce \"{{int:resetpass-submit-cancel}}\" pe reimpostâla ciu tardi.",
-       "resetpass-validity-soft": "A to poula segretta a no l'è vallida: $1\n\nPe piaxei çèrnine un-a neuva òua, ò clicca in sce \"{{int:resetpass-submit-cancel}}\" pe reimpostala ciu tardi.",
+       "resetpass-expired-soft": "A to poula segretta a l'è descheita e a g'ha da ese reimpostâ. Pe piaxei çèrnine un-a neuva òua ò clicca in sce \"{{int:authprovider-resetpass-skip-label}}\" pe reimpostâla ciu tardi.",
+       "resetpass-validity-soft": "A to poula segretta a no l'è vallida: $1\n\nPe piaxei çèrnine un-a neuva òua, ò clicca in sce \"{{int:authprovider-resetpass-skip-label}}\" pe reimpostala ciu tardi.",
        "passwordreset": "Reimposta a poula segretta",
        "passwordreset-text-one": "Compilla sto formulaio pe riçeive a teu poula segretta temporannia via e-mail.",
        "passwordreset-text-many": "{{PLURAL:$1|Compilla un di campi pe riçeive una poula segretta temporannia via e-mail.}}",
index 9feb651..0eec9c6 100644 (file)
        "block-log-flags-nocreate": "kontod lūomi um kīeldtõd",
        "movepagetext": "Siedā formõ kȭlbatõs sōtõ līed tuoizõks nimtõ. Līed istōrij nustõbõd ūd pēļikēra alā automātlistiz. Paldīž-vȯļļijiz pēļizkēraks līedst sōb jeddõpēḑõn sōtimiz lēḑ ūd līedpūol jūrõ. Sōd jedmõļiz pēļikēra jūrõ sidābõd jeddõpēḑõn sōtimizt automātlistiz parāntõ. Až tēg siedā äb tīend, vaņtlõgid lebbõ, ku jarā vīmiz pierāst ūo īenõd pāikal [[Special:DoubleRedirects|kōd-kȭrdaliži]] äbkā [[Special:BrokenRedirects|kaţkiži jeddõpēḑõn sōtimiži]].\nSin ilzandõks um ūoļikšõ sīe jedstõ, ku amād ažād īebõd strōdõm, nemē jeddõ nǟdõt. Pan tǟdõl, ku līetõ '''äb vībõd''' jeddõpēḑõn  siz, až ūd pēļizkēraks līedpūol um jubā vȯlmizõs, bäz luggõmõt až vȯlmizõs līedpūol um tijā agā bäz redigīerimiz istōrijõ jeddõpēḑõn sōtimiz lēḑ. \nSe tǟntõb, ku äb sō iļ kēratõ jubā vȯlmizõs līedpūoltõ, bet sōb äbvȯņštõn ūtstõ nimtimiz tāgiž kīerõ. \n\n'''Kūondõks!''' Se võib vȱlda lugdõb līed jūs ikš väggi tuožžī ja bäz vȯdlõmõt mõitõks; jedmõl jatkimizt pōlaks mõtlõgid iļ rezultātõd.",
        "movepagetalktext": "Īdskubs kēratõks līedkõks sōtõbõd jeddõpēḑõn automātlistiz ka nõvpidāmiz-lēḑ, '''bäs.luggõmõt siz, až:''' \n* ūd pēļikēra allõ um jubā nõvpidāmiz-lēḑ, mis äb.ūo tijā;\n* tēg jetīztõ allõ vȯlbiz merk rūţ bäz vēļõmõt. \nAž sugīz nei, sōd līed tōdõs kädūdõks jeddõpēḑõn sōtõ agā jūrõ-pānda.",
-       "movearticle": "Sōtõgid se lēḑ jeddõpēḑõn",
        "newtitle": "Ūd pēļizkēra alā:",
        "move-watch": "Vaņ iļ siedā līedtõ",
        "movepagebtn": "Sōtõgid se lēḑ jeddõpēḑõn",
index dbc94bc..39466e0 100644 (file)
@@ -6,7 +6,8 @@
                        "Lakzon",
                        "Mjbmr",
                        "Macofe",
-                       "Huji"
+                       "Huji",
+                       "Miladrahimi"
                ]
        },
        "tog-underline": "کڕ(خط)کیشائن ژێر پیوندەل:",
        "october-date": "$1 اکتبر",
        "november-date": "$1 نوامبر",
        "december-date": "$1 دسامبر",
+       "period-am": "صو",
+       "period-pm": "ظور",
        "pagecategories": "{{PLURAL:$1|ڕِزگ|ڕِزگەل}}",
        "category_header": "\"وەڵگەل ڕزگ(رده) \"$1",
        "subcategories": "ژێر ڕزگەل",
        "protectedpagetext": ".ئئ وةڵگة ئةرا جلوگیری إژ دةسکاری یا فعالیت تر محافظت بیة",
        "viewsourcetext": ":می‌توانید متن مبدأ این صفحه را مشاهده کنید یا از آن نسخه بردارید",
        "viewyourtext": "می‌توانید کد مبدأ <strong>ویرایش‌هایتان</strong> در این صفحه را ببینید و کپی کنید.",
-       "protectedinterface": "این صفحه ارائه‌دهندهٔ متنی برای واسط کاربر این نرم‌افزار در این ویکی است و به منظور پیشگیری از خرابکاری محافظت شده‌است.\nبرای افزودن یا تغییر دادن ترجمه برای همهٔ ویکی‌ها، لطفاً از [//translatewiki.net/ translatewiki.net]، پروژهٔ محلی‌سازی مدیاویکی، استفاده کنید.",
+       "protectedinterface": "این صفحه ارائه‌دهندهٔ متنی برای واسط کاربر این نرم‌افزار در این ویکی است و به منظور پیشگیری از خرابکاری محافظت شده‌است.\nبرای افزودن یا تغییر دادن ترجمه برای همهٔ ویکی‌ها، لطفاً از [https://translatewiki.net/ translatewiki.net]، پروژهٔ محلی‌سازی مدیاویکی، استفاده کنید.",
        "editinginterface": "<strong>هشدار:</strong> صفحه‌ای که ویرایش می‌کنید شامل متنی است که در واسط کاربر این نرم‌افزار به کار رفته‌است.\nتغییر این صفحه منجر به تغییر ظاهر واسط کاربر این نرم‌افزار برای دیگر کاربران خواهد شد.",
-       "translateinterface": "برای افزودن یا تغییر دادن ترجمه برای همهٔ ویکی‌ها، لطفاً از [//translatewiki.net/ translatewiki.net]، پروژهٔ محلی‌سازی مدیاویکی، استفاده کنید.",
+       "translateinterface": "برای افزودن یا تغییر دادن ترجمه برای همهٔ ویکی‌ها، لطفاً از [https://translatewiki.net/ translatewiki.net]، پروژهٔ محلی‌سازی مدیاویکی، استفاده کنید.",
        "cascadeprotected": "این صفحه در مقابل ویرایش محافظت شده‌است چون در {{PLURAL:$1|صفحهٔ|صفحه‌های}} محافظت‌شدهٔ زیر که گزینهٔ «آبشاری» در {{PLURAL:$1|آن|آن‌ها}} انتخاب شده قرار گرفته‌است:\n$2",
        "namespaceprotected": ".هؤمة اجازهٔ دةسکاری وةڵگةل فضای نام '''$1''' نئرین",
        "customcssprotected": "هؤمة  اجازهٔ دةسکاری این صفحهٔ سی‌اس‌اس را ندارید، زیرا حاوی تنظیم‌های شخصی یک کاربر دیگر است.",
        "virus-scanfailed": "  )$1 پویش ناموفق (کد",
        "virus-unknownscanner": ":ضدویروس ناشناخته",
        "logouttext": "'''ایسة دةر چئن هؤمة ثبت بیة.'''\nتوجه داشته باشید که تا حافظهٔ نهان مرورگرتان را پاک نکنید، بعضی از صفحات ممکن است همچنان به گونه‌ای نمایش یابند که انگار وارد شده‌اید.",
+       "cannotlogoutnow-title": "نمه‌تونین ایسه بچینه‌در",
+       "cannotlogoutnow-text": "ئه‌دررچین نماو هنی $1",
        "welcomeuser": "خؤةش هةتینة/هاتینة $1!",
        "welcomecreation-msg": "حساوو کاربری هۆمە دؤرس بی.\nویرتان نەچوو(فراموش نشە) گإ [[Special:Preferences|تمارزووەل(ترجیحات) {{SITENAME}}]] ووِژت بگؤەڕنین( تغییر دهی).",
        "yourname": ":نۆم کاربەری",
        "remembermypassword": "رمزعبورت وة ئئ رایانة ئةویرت/یادت بو(تابیشترإژ$1{{PLURAL:$1|رووژةل|رووژ}})",
        "userlogin-remembermypassword": "مإ وارد  بی بیل",
        "userlogin-signwithsecure": "إژ ورود امن استفاده کةن",
+       "cannotloginnow-title": "ایسه نمه‌تونین باینه نوم",
        "yourdomainname": ":دامنهٔ شما",
        "password-change-forbidden": ".شما نمی‌توانید گذرواژه‌ها را در این ویکی تغییر دهید",
        "externaldberror": "خطایی در ارتباط با پایگاه داده رخ داده است یا اینکه شما اجازهٔ به‌روزرسانی حساب خارجی خود را ندارید.",
        "login": "إ نۆم هەتن سیستم",
+       "login-security": "وژت معرفی‌که",
        "nav-login-createaccount": " إ نؤم هةتن سیستم/ حساوو کاربةری سازین",
        "userlogin": " إ نؤم هةتن سیستم/ حساوو کاربةری سازین",
        "userloginnocreate": "نؤم هۀتن سیستم",
        "resetpass-temp-password": ":رمز عبور موقت",
        "resetpass-abort-generic": "تغییر گذرواژه به دست یکی از افزونه‌ها لغو شده است.",
        "resetpass-expired": "رمز عبور شما منقضی شده‌است. لطفاً برای ورود رمز عبور جدیدی را تنظیم کنید.",
-       "resetpass-expired-soft": "رمز عبور شما منقضی شده‌است، و نیاز به تنظیم مجدد دارد. لطفاً اکنون رمز عبور جدیدی را انتخاب کنید، یا برای تنظیم مجدد آن بعدآً، دکمه \"{{int:resetpass-submit-cancel}}\" را کلیک کنید.",
-       "resetpass-validity-soft": "گذرواهٔ شما صحیح نیست: $1\n\nلطفاً یک گذرواژهٔ تازه الآن انتخاب کنید یا بر «{{int:resetpass-submit-cancel}}» کلیک کنید که دوباره آن را بعداً انتخاب کنید.",
+       "resetpass-expired-soft": "رمز عبور شما منقضی شده‌است، و نیاز به تنظیم مجدد دارد. لطفاً اکنون رمز عبور جدیدی را انتخاب کنید، یا برای تنظیم مجدد آن بعدآً، دکمه \"{{int:authprovider-resetpass-skip-label}}\" را کلیک کنید.",
+       "resetpass-validity-soft": "گذرواهٔ شما صحیح نیست: $1\n\nلطفاً یک گذرواژهٔ تازه الآن انتخاب کنید یا بر «{{int:authprovider-resetpass-skip-label}}» کلیک کنید که دوباره آن را بعداً انتخاب کنید.",
        "passwordreset": "بازنشانی گذرواژه",
        "passwordreset-text-one": "برای بازنشانی گذرواژه‌تان این فرم را کامل کنید.",
        "passwordreset-text-many": "{{PLURAL:$1|برای دریافت یک گذرواژهٔ موقت از طریق ایمیل، یکی از خانه‌ها را پر کنید.}}",
        "allmessagesname": "نۆم",
        "allmessagesdefault": "متن پیش‌فرض پیغام",
        "allmessagescurrent": "متن کنونی پیغام",
-       "allmessagestext": "این فهرستی از پیغام‌های سامانه‌ای موجود در فضای نام مدیاویکی است.\nچنانچه مایل به مشارکت در محلی‌سازی مدیاویکی هستید لطفاً [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation محلی‌سازی مدیاویکی] و [//translatewiki.net translatewiki.net] را ببینید.",
+       "allmessagestext": "این فهرستی از پیغام‌های سامانه‌ای موجود در فضای نام مدیاویکی است.\nچنانچه مایل به مشارکت در محلی‌سازی مدیاویکی هستید لطفاً [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation محلی‌سازی مدیاویکی] و [https://translatewiki.net translatewiki.net] را ببینید.",
        "allmessagesnotsupportedDB": "این صفحه نمی‌تواند استفاده شود به این دلیل که <bdi>'''$wgUseDatabaseMessages'''</bdi> غیرفعال شده‌است.",
        "allmessages-filter-legend": "پالانۀل/فیلترۀل",
        "allmessages-filter": "پالودن بر اساس وضعیت شخصی‌سازی:",
        "special-characters-title-minus": "علامت منفی",
        "mw-widgets-dateinput-no-date": "هیچ داده‌ای انتخاب نشده",
        "mw-widgets-titleinput-description-new-page": "اێ وەڵگە هەنی(هالی)وجود نِئرێ",
-       "mw-widgets-titleinput-description-redirect": "گؤەڕانن/تغییر مسیر به $1",
-       "api-error-blacklisted": "لطفاً یک عنوان توصیفی متفاوت انتخاب کنید."
+       "mw-widgets-titleinput-description-redirect": "گؤەڕانن/تغییر مسیر به $1"
 }
index 9aa2d1a..822718f 100644 (file)
        "actionthrottled": "Asiù ritardàda",
        "protectedpagetext": "Chela pagina chi l'è stata blucàda per impedinn la mudifica o altre azion.",
        "viewsourcetext": "L'è pussibil vèd e cupià el codes surgent de chela pagina chí:",
-       "editinginterface": "'''Ocio''': Te see adree a mudifegà una pàgina che la se dröva per generà 'l test de l'interfacia del prugrama. Ogna mudìfega fada la cambierà l'interfacia de tüt i druvadur. Se te gh'hee intenzión de fà una tradüzión, per piasì cunsiderà la pussibilità de druvà [//translatewiki.net/ translatewiki.net], 'l pruget de lucalizazión de MediaWiki.",
+       "editinginterface": "'''Ocio''': Te see adree a mudifegà una pàgina che la se dröva per generà 'l test de l'interfacia del prugrama. Ogna mudìfega fada la cambierà l'interfacia de tüt i druvadur. Se te gh'hee intenzión de fà una tradüzión, per piasì cunsiderà la pussibilità de druvà [https://translatewiki.net/ translatewiki.net], 'l pruget de lucalizazión de MediaWiki.",
        "namespaceprotected": "Te g'hét mìa 'l permès nesesàre per mudificà le pàgine del namespace <strong>$1</strong>.",
        "mypreferencesprotected": "Te g'hét mìa i permès nesesàre per mudificà le tò preferènse",
        "ns-specialprotected": "I paginn special i pören mía vess mudifegaa",
        "resetpass-temp-password": "Password temporànea:",
        "resetpass-abort-generic": "La mudìfica de la password l'è stàda blocàda de 'n estensiù.",
        "resetpass-expired": "La tò password l'è scadìda. Te g'harèset de defenéser 'na password nöa semài che te öt autenticàt.",
-       "resetpass-validity-soft": "La tò password l'è mìa bùna: $1\n\nTe g'harèset de catà fò 'n ótra password o clicà sö \"{{int:resetpass-submit-cancel}}\" per turnà a definìla piö tàrde.",
+       "resetpass-validity-soft": "La tò password l'è mìa bùna: $1\n\nTe g'harèset de catà fò 'n ótra password o clicà sö \"{{int:authprovider-resetpass-skip-label}}\" per turnà a definìla piö tàrde.",
        "passwordreset": "Tùrna a defenéser la password",
        "passwordreset-text-one": "Empenés chèsto mòdulo per turnà a defenéser la tò password.",
        "passwordreset-disabled": "La ridefinisiù de la password l'è mìa atìva sö chèsta wiki",
index b45d90c..690b149 100644 (file)
@@ -3,7 +3,8 @@
                "authors": [
                        "Passawuth",
                        "Tuinui",
-                       "아라"
+                       "아라",
+                       "Iberia2011"
                ]
        },
        "tog-underline": "ຂີດເສັ້ນກ້ອງລິງກ໌:",
        "disclaimers": "ຂໍ້ປະຕິເສດຄວາມຮັບຜິດຊອບ",
        "disclaimerpage": "Project:ຂໍ້ປະຕິເສດຄວາມຮັບຜິດຊອບ",
        "edithelp": "ວິທີດັດແກ້ໜ້າ",
+       "helppage-top-gethelp": "ຊ່ວຍເຫຼືອ",
        "mainpage": "ໜ້າຫຼັກ",
        "mainpage-description": "ໜ້າຫຼັກ",
        "policy-url": "Project:ປະຕູສູ່ຊຸມຊົນ",
        "linksearch": "ຄົ້ນຫາການເຊື່ອມຕໍ່ຫາເວັບ",
        "listusers-submit": "ສະແດງ",
        "emailuser": "ສົ່ງອີເມລ ຫາ ຜູ້ໃຊ້ນີ້",
-       "emailpage": "ສົ່ງອີເມລ ຫາ ຜູ້ໃຊ້",
        "emailpagetext": "ຖ້າຜູ້ໃຊ້ນີ້ ຂຽນທີ່ຢູ່ອີເມລຢ່າງຖືກຕ້ອງຢູ່ການຕັ້ງຄ່າຂອງລາວ, ຟອມທາງລຸ່ມນີ້​ ຈະສົ່ງຂໍ້ຄວາມໜຶ່ງຫາທີ່ຢູ່ອີເມລນັ້ນ.\nທີ່ຢູ່ອີເມລ ທີ່ທ່ານຂຽນຢູ່ການຕັ້ງຄ່າຂອງທ່ານ, ຈະປະກົດຂຶ້ນ ຢູ່ຊ່ອງ \"From\" ຂອງ ອີເມລ ເພື່ອໃຫ້ ຜູ້ຮັບສາມາດທຳການຕອບໄດ້.",
        "noemailtitle": "ບໍ່ມີ ທີ່ຢູ່ອີເມລ",
        "emailfrom": "ຈາກ",
        "move-page-legend": "ຍ້າຍໜ້າ",
        "movepagetext": "ທ່ານສາມາດ ປ່ຽນຊື່ໜ້າ ແລະ ຍ້າຍປະຫວັດການດັດແກ້ ຂອງໜ້າໃດໜຶ່ງ ໄປ ໜ້າໃໝ",
        "movepagetalktext": "ໜ້າສົນທະນາຈະຖືກຍ້າຍໄປພ້ອມກັນ '''ເວັ້ນເສຍແຕ່:''",
-       "movearticle": "ຍ້າຍໜ້າ:",
        "newtitle": "ຫາ ຫົວຂໍ້ໃໝ່",
        "move-watch": "ຕິດຕາມໜ້ານີ້",
        "movepagebtn": "ຍ້າຍໜ້າ",
        "movetalk": "ຍ້າຍທັງ ໜ້າສົນທະນາ ທີ່ ກ່ຽວພັນ.",
        "movelogpage": "ບັນທຶກການຍ້າຍ",
        "movereason": "ເຫດຜົນ:",
-       "delete_and_move": "ລຶບ ແລະ ຍ້າຍ",
        "delete_and_move_confirm": "ແມ່ນແລ້ວ, ລຶບໜ້ານີ້",
        "delete_and_move_reason": "ລຶບແລ້ວ ເພື່ອ ຍ້າຍໜ້າອື່ນ ມານີ້",
        "allmessages": "ຂໍ້ຄວາມ ຂອງ ລະບົບ",
index f511adc..4a0cbcc 100644 (file)
        "nlinks": "$1 {{PLURAL:$1|ling'ki|ling'ki}}",
        "nmembers": "$1 {{PLURAL:$1|peta|petani}}",
        "nrevisions": "$1 {{PLURAL:$1|hloli|hlolina}}",
-       "nviews": "$1 {{PLURAL:$1|kamukile|kamukile}}",
        "specialpage-empty": "Kamukile ni sa bundau.",
        "lonelypages": "Petulo coni ling'ki di a",
        "lonelypagestext": "Petulo kamukile ni sa con ling'ki di xeti petulo di {{SITENAME}}.",
        "listusers-submit": "Kamukile",
        "listusers-noresult": "Ni-di sebelu.",
        "emailuser": "Imeli bye sebelu",
-       "emailpage": "Imeli sebelu",
        "defemailsubject": "{{SITENAME}} meli",
        "noemailtitle": "Ni meli adresi",
        "noemailtext": "Bye sebelu ni sa meli adresi,\ndicon sa sosize ni sa meli di kupo sebelu.",
        "deleteotherreason": "Xetewi/ewi lyangutukezi:",
        "deletereasonotherlist": "Xetewi lyangutukezi",
        "rollback": "Afi hlolina ye ng'i lila",
-       "rollback_short": "Afi hloli ye ng'i lila",
        "rollbacklink": "afi hloli ye ng'i lila",
        "rollbackfailed": "Bufosi dafi hloli ye ng'i lila",
        "protectlogpage": "Desu di bukelize",
        "move-page-legend": "Nyanganyisize petulo",
        "movepagetext": "A sa nyanganyisize xete bundau di nom nca e petulo.\nXisiti nom sa petulo abezi post nyanganyisize.\nLing'ki di xisiti nom no kenki; luku di petulo abezi bufosi e petulo abezi sa bužemi.\nA sa gutukilimisize di ling'ki.\n\nPetulo sa '''no''' nyanganyisize di nca nom e nca nom sa xete, xete a sa petulo abezi e ni bundau/no selt petulo. A sa nyanganyisize petulo a orži.\n\n'''!'''\nPetulo populari sa drastiki bufosi e nyanganyisize;\na sa gukilize di nyanganyisize.",
        "movepagetalktext": "Bulelezi sa nyanganyisize '''teri:'''\n*Bulelezi e selt sa kwa nca nom,\n*Okižekilize sisebelisoni.\n\nTeri yaki, a nyanganyisize.",
-       "movearticle": "Nyanganyisize petulo:",
        "newtitle": "Di nca petulo:",
        "move-watch": "Kentezi bye petulo",
        "movepagebtn": "Nyanganyisize petulo",
        "movelogpagetext": "Bye mukoloko sa mukoloko di petulo nyanganyisize.",
        "movereason": "Lyangutukezi:",
        "revertmove": "afi",
-       "delete_and_move": "Afi kulobala alo-di nyanganyisize",
        "export": "Petulo export",
        "export-submit": "Petulo export",
        "allmessages": "Mulumiwani",
        "allmessagesname": "Sebu",
        "allmessagesdefault": "Selt orge",
        "allmessagescurrent": "Selt nca",
-       "allmessagestext": "Bye mukoloko sa mukoloko di mulumiwani di MediaWiki poo.\nPlease visit [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] and [//translatewiki.net translatewiki.net] if you wish to contribute to the generic MediaWiki localisation.",
+       "allmessagestext": "Bye mukoloko sa mukoloko di mulumiwani di MediaWiki poo.\nPlease visit [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] and [https://translatewiki.net translatewiki.net] if you wish to contribute to the generic MediaWiki localisation.",
        "thumbnail-more": "Pusize",
        "thumbnail_error": "Bufosi hloli tumbneli: $1",
        "import": "Petulo import",
index eab4db5..7aed884 100644 (file)
        "protectedpagetext": "نأبوٙە د ئی بألگە ڤیرایئشت کاریا کاریاریا هأنی نە سئیل بأکیت.",
        "viewsourcetext": "شوما می توٙنید سأرچئشمە ئی بألگە نە سئیل بأکیت و دئش ڤئرداریت:",
        "viewyourtext": "شوما می توٙنیت سأرچئشمە ڤیرایئشتیا توٙنە د ئی بألگە سئیل بأکیت و دئشوٙ ڤئرداریت:",
-       "protectedinterface": "ئی بألگە سی نأرم أفزار کئ ها د ئی ڤیکی نیسئسە آمادە میکە،و ڤئ د موزاحئمە ت کاری پأر و پیم کاری بیە\nسی ئضاف کئردئن یا آلئشت دأئن د هأمە ڤیکی یا لوطف بأکیت [//translatewiki.net/ translatewiki.net] نە ڤئ کار بئیریت، پوروجە ڤولات نئشین سازی ڤیکیمئدیا.",
+       "protectedinterface": "ئی بألگە سی نأرم أفزار کئ ها د ئی ڤیکی نیسئسە آمادە میکە،و ڤئ د موزاحئمە ت کاری پأر و پیم کاری بیە\nسی ئضاف کئردئن یا آلئشت دأئن د هأمە ڤیکی یا لوطف بأکیت [https://translatewiki.net/ translatewiki.net] نە ڤئ کار بئیریت، پوروجە ڤولات نئشین سازی ڤیکیمئدیا.",
        "editinginterface": "<strong>ڤارئسکاری کئردئن:</strong> شوما داریت یئ گئل بألگە نە کئ سی یئ گئل نیسئسە یا نأرم أفزار پئیڤأندکار ڤئ کار گئرئتە بیە ڤیرایئشت میکیت.\nآلئشت دأئن ئی بألگە ری رئخت و بارت پئیڤأندکاری کئ کاریاری هأنی ڤئ نە ڤئ کار مئیرئن کارگئرایی دارە.",
-       "translateinterface": "سی ئضاف کئردئن یا آلئشت دأئن ڤالئرئسە یا د تأموٙم ڤیکی یا،لوطف بأکیت [//translatewiki.net/ translatewiki.net] نە ڤئ کار بئیریت، پوروجە ڤولات نئشین سازی ڤیکی مئدیا.",
+       "translateinterface": "سی ئضاف کئردئن یا آلئشت دأئن ڤالئرئسە یا د تأموٙم ڤیکی یا،لوطف بأکیت [https://translatewiki.net/ translatewiki.net] نە ڤئ کار بئیریت، پوروجە ڤولات نئشین سازی ڤیکی مئدیا.",
        "cascadeprotected": "ئی بألگە د ڤیرایئشت پأر و پیم کاری بییە سی یە کئ د ڤأر گئرئتە بألگە {{PLURAL:$1|ڤئ بألگە یە|ڤئنوٙ بألگە ن}} ە کئ ڤئ خوش ڤا نئماجا تاف نئمایی پأر و پیم کاری بیە و چیا هأنی د ئیچئ رأڤاندیاری بینە:\n$2",
        "namespaceprotected": "شوما صئلا ڤیرایئشت بألگە یایی کئ هان د نومجا <strong>$1</strong> ناریت.",
        "customcssprotected": "شوما صئلا ڤیرایئشت ئی بألگە سی ئس ئس نە ناریت سی یە کئ میزوٙنکاری دوٙنئسمأنیا شأصقی یئ گئل کاریار هأنی ها دئش.",
        "resetpass-temp-password": "رازینە گوڤاردئن موڤأقأت:",
        "resetpass-abort-generic": "آلئشت دأئن رازینە گوڤاردئن ڤا یئ گئل دئمادیس خئراڤ بییە.",
        "resetpass-expired": "گات دیاری رازینە گوڤاردئن شوما تأموم بییە. لوطف بأکیت یئ گئل رازینە گوڤاردئن هأنی نە سی ڤامین ئوٙمائن میزوٙنکاری بأکیت.",
-       "resetpass-expired-soft": "گات دیاری رازینە گوڤاردئن شوما تأموم بییە و باس د نۊ زئنە با. لوطف بأکیت یئ گئل رازینە گوڤاردئن هأنی نە ئنتئخاڤ بأکیت، یا سی د نۊ زئنە کئردئن د نئهاتئر د ئیچئ \"{{int:resetpass-submit-cancel}}\" بأپوٙرنیت.",
-       "resetpass-validity-soft": "رازینە گوڤاردئن توٙ نادیاره:$1\n\n لوطف بأکیت یئ گئل رازینە گوڤاردئن هأنی نە ئنتئخاڤ بأکیت، یا سی د نۊ زئنە کئردئن د نئهاتئر د ئیچئ \"{{int:resetpass-submit-cancel}}\" بأپوٙرنیت.",
+       "resetpass-expired-soft": "گات دیاری رازینە گوڤاردئن شوما تأموم بییە و باس د نۊ زئنە با. لوطف بأکیت یئ گئل رازینە گوڤاردئن هأنی نە ئنتئخاڤ بأکیت، یا سی د نۊ زئنە کئردئن د نئهاتئر د ئیچئ \"{{int:authprovider-resetpass-skip-label}}\" بأپوٙرنیت.",
+       "resetpass-validity-soft": "رازینە گوڤاردئن توٙ نادیاره:$1\n\n لوطف بأکیت یئ گئل رازینە گوڤاردئن هأنی نە ئنتئخاڤ بأکیت، یا سی د نۊ زئنە کئردئن د نئهاتئر د ئیچئ \"{{int:authprovider-resetpass-skip-label}}\" بأپوٙرنیت.",
        "passwordreset": "د نۊ دأئن رازینە گوڤاردئن",
        "passwordreset-text-one": "ئی نوم بألگە نە سی گئرئتئن یئ گئل رازینە گوڤاردئن موڤأقأت ڤا أنجومانامە توٙ پور بأکیت.",
        "passwordreset-text-many": "{{PLURAL:$1|یئ گئل د جاگە یا نە سی گئرئتئن رازینە گوڤاردئن موڤأقأتی نە ڤا أنجومانامە گئرئتە بوٙأ پور بأکیت.}}",
        "allmessagesname": "نوم",
        "allmessagesdefault": "سفارشت متنی پيش فرض",
        "allmessagescurrent": "نیسسه ایسنی پیغوم",
-       "allmessagestext": "یه یه گل نومگه د پیغومیا سامونه یی یه که هان د نوم ورگه ویکی وارسگر.\nاری میهایت د ویکی وارسگر نه ولاتمن بکیت لطف بکیت [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation ولاتمن کردن ویکی وارسگر] و [//translatewiki.net translatewiki.net] نه سیل بکیت.",
+       "allmessagestext": "یه یه گل نومگه د پیغومیا سامونه یی یه که هان د نوم ورگه ویکی وارسگر.\nاری میهایت د ویکی وارسگر نه ولاتمن بکیت لطف بکیت [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation ولاتمن کردن ویکی وارسگر] و [https://translatewiki.net translatewiki.net] نه سیل بکیت.",
        "allmessagesnotsupportedDB": "ای بلگه وه کار گرتنی نئ سی یه که <bdi>'''$wgUseDatabaseMessages'''</bdi> ناکنشتگر بیه.",
        "allmessages-filter-legend": "فیلتر",
        "allmessages-filter": "فیلتر کردن د اساس شخصی کردن:",
index 377504b..4afc969 100644 (file)
        "protectedpagetext": "Šis puslapis yra užrakintas, saugant jį nuo redagavimo.",
        "viewsourcetext": "Jūs galite peržiūrėti ir kopijuoti puslapio kodą:",
        "viewyourtext": "Jūs galite peržiūrėti ir kopijuoti <strong>savo pakeitimų</strong> kodą į šį puslapį:",
-       "protectedinterface": "Šiame puslapyje yra apsaugotas nuo piktnaudžiavimo programinės įrangos sąsajos tekstas. Norėdami pridėti ar pakeisti vertimus visose wiki, naudokite [//translatewiki.net/ translatewiki.net] MediaWiki vertimų projektą.",
+       "protectedinterface": "Šiame puslapyje yra apsaugotas nuo piktnaudžiavimo programinės įrangos sąsajos tekstas. Norėdami pridėti ar pakeisti vertimus visose wiki, naudokite [https://translatewiki.net/ translatewiki.net] MediaWiki vertimų projektą.",
        "editinginterface": "'''Dėmesio:''' Jūs redaguojate puslapį, kuris yra naudojamas programinės įrangos sąsajos tekste. Pakeitimai šiame puslapyje taip pat pakeis naudotojo sąsajos išvaizdą ir kitiems naudotojams šiame wiki.",
-       "translateinterface": "Kad pridėtumėte vertimus visoms wiki, naudokitės  [//translatewiki.net/ translatewiki.net] – projektu, skirtu MediaWiki vertimams į vietines kalbas.",
+       "translateinterface": "Kad pridėtumėte vertimus visoms wiki, naudokitės  [https://translatewiki.net/ translatewiki.net] – projektu, skirtu MediaWiki vertimams į vietines kalbas.",
        "cascadeprotected": "Šis puslapis buvo apsaugotas nuo redagavimo, kadangi jis yra įtrauktas į {{PLURAL:$1|šį puslapį, kuris yra apsaugotas|šiuos puslapius, kurie yra apsaugoti}} su „pakopinės apsaugos“ parinktimi:\n$2",
        "namespaceprotected": "Jūs neturite teisės redaguoti puslapių '''$1''' srityje.",
        "customcssprotected": "Jūs neturite teisės keisti šį CSS puslapį, nes jame yra kito naudotojo asmeniniai nustatymai.",
        "resetpass-temp-password": "Laikinas slaptažodis:",
        "resetpass-abort-generic": "Slaptažodžio keitimas buvo nutrauktas nuo ekstenzijos.",
        "resetpass-expired": "Jūsų slaptažodžio galiojimas baigėsi. Prašome nustatyti naują prisijungimo slaptažodį.",
-       "resetpass-expired-soft": "Jūsų slaptažodžio galiojimas baigėsi ir jį reikia atkurti iš naujo. Pasirinkite naują slaptažodį dabar arba spauskite \"{{int:resetpass-submit-cancel}}\", kad būtų atstatytas vėliau.",
-       "resetpass-validity-soft": "Jūsų slaptažodis netinkamas: $1\n\nPasirinkite naują slaptažodį dabar arba spauskite \"{{int:resetpass-submit-cancel}}\", kad būtų atkurtas vėliau.",
+       "resetpass-expired-soft": "Jūsų slaptažodžio galiojimas baigėsi ir jį reikia atkurti iš naujo. Pasirinkite naują slaptažodį dabar arba spauskite \"{{int:authprovider-resetpass-skip-label}}\", kad būtų atstatytas vėliau.",
+       "resetpass-validity-soft": "Jūsų slaptažodis netinkamas: $1\n\nPasirinkite naują slaptažodį dabar arba spauskite \"{{int:authprovider-resetpass-skip-label}}\", kad būtų atkurtas vėliau.",
        "passwordreset": "Atstatyti slaptažodį",
        "passwordreset-text-one": "Užpildykite šią formą, norėdami atkurti savo slaptažodį.",
        "passwordreset-text-many": "{{PLURAL:$1|Užpildykite vieną iš laukų slaptažodžio atkūrimui.}}",
        "minoredit": "Tai smulkus pataisymas",
        "watchthis": "Stebėti šį puslapį",
        "savearticle": "Išsaugoti puslapį",
+       "savechanges": "Išsaugoti pakeitimus",
        "publishpage": "Skelbti puslapį",
+       "publishchanges": "Skelbti pakeitimus",
        "preview": "Peržiūra",
        "showpreview": "Rodyti peržiūrą",
        "showdiff": "Rodyti skirtumus",
        "action-read": "skaityti šį puslapį",
        "action-edit": "keisti šį puslapį",
        "action-createpage": "kurti puslapius",
-       "action-createtalk": "kurti aptarimų puslapius",
+       "action-createtalk": "sukurti šį diskusijų puslapį",
        "action-createaccount": "kurti šią naudotojo paskyrą",
        "action-autocreateaccount": "Automatiškai sukurti šią išorinę naudotojo paskyrą",
        "action-history": "peržiūrėti šio puslapio istoriją",
        "apihelp-no-such-module": "Modulis „$1“ nerastas.",
        "apisandbox": "API smėlio dėžės",
        "apisandbox-api-disabled": "API yra išjungtas šioje svetainėje.",
-       "apisandbox-intro": "Naudokite šį puslapį norėdami eksperimentuoti su '''MediaWiki API \"„.\n\tIeškokite [//www.mediawiki.org/wiki/API:Main_page API dokumentacijoje] Išsamesnės informacijos apie API naudojimo.",
+       "apisandbox-intro": "Naudokite šį puslapį norėdami eksperimentuoti su '''MediaWiki API \"„.\n\tIeškokite [https://www.mediawiki.org/wiki/API:Main_page API dokumentacijoje] Išsamesnės informacijos apie API naudojimo.",
        "apisandbox-fullscreen": "Išplėsti skydelį",
        "apisandbox-unfullscreen": "Rodyti puslapį",
        "apisandbox-submit": "Pateikti prašymą",
        "allmessagesname": "Pavadinimas",
        "allmessagesdefault": "Pradinis tekstas",
        "allmessagescurrent": "Dabartinis tekstas",
-       "allmessagestext": "Čia pateikiamas sisteminių pranešimų sąrašas, esančių MediaWiki vardų srityje.\nAplankykite [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation „MediaWiki“ lokaliziciją] ir [//translatewiki.net „translatewiki.net“], jei norite prisidėti prie bendrojo „MediaWiki“ lokalizavimo.",
+       "allmessagestext": "Čia pateikiamas sisteminių pranešimų sąrašas, esančių MediaWiki vardų srityje.\nAplankykite [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation „MediaWiki“ lokaliziciją] ir [https://translatewiki.net „translatewiki.net“], jei norite prisidėti prie bendrojo „MediaWiki“ lokalizavimo.",
        "allmessagesnotsupportedDB": "Šis puslapis nepalaikomas, nes nuostata '''$wgUseDatabaseMessages''' yra išjungtas.",
        "allmessages-filter-legend": "Filtras",
        "allmessages-filter": "Perkošti pagal būseną:",
        "mw-widgets-dateinput-no-date": "Nepasirinkta data",
        "mw-widgets-titleinput-description-new-page": "puslapis dar neegzistuoja",
        "mw-widgets-titleinput-description-redirect": "nukreipti į $1",
-       "api-error-blacklisted": "Prašome pasirinkti kitą, aprašomąją antraštę.",
        "sessionmanager-tie": "Negalima kombinuoti kelių užklausų autentikacijos tipų: $1.",
        "sessionprovider-generic": "$1 sesijos",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "sesijos su slapukais",
        "sessionprovider-nocookies": "Slapukai gali būti neaktyvuoti. Įsitikinkite, kad slapukai yra aktyvuoti ir pradėkite vėl.",
        "randomrootpage": "Atsitiktinis šakninis puslapis",
+       "log-action-filter-rights": "Teisių tipo keitimas:",
        "log-action-filter-all": "Visi",
        "log-action-filter-newusers-autocreate": "Automatinis kūrimas",
        "log-action-filter-protect-protect": "Apsauga"
index b60e023..7f67c7c 100644 (file)
        "move-page-legend": "Puorceļt puslopu",
        "movepagetext": "Itamā lopā tu vari puorsaukt voi puorlikt lopu, kūpā ar tuos izmaiņu hronologeju puorlīkūt tū iz cytu nūsaukumu.\nĪprīškejuo lopa klius par lopu, kas puoradresēs iz jaunū lopu.\nIte var automatiskai izmaineit vysys puoradresacejis (redirektus) iz itū lopu (2. atzeime apakšā).\nSaitis puorejuos lopuos iz īprīškejū lopu nabyus maineitys. Ka gribi namaineit puoradresacejis automatiskai, puorbaud i izloboj, napīļaunūt [[Special:DoubleRedirects|dubultu puoradresaceji]] voi [[Special:BrokenRedirects|puoradresaceji iz naasūšu lopu]].\nTev ir juopuorsalīcynoj, voi saitis vēļ vys īt iz tīni, kur tuos ir īdūmuotys.\n\nJem vārā, ka lopa '''nabyus''' puorvītuota, ka jau eksistej kaida cyta lopa ar itaidu nūsaukumu (izjemūt gadīņus, kod tei ir tukša voi kod tei ir puoradresacejis lopa, kai ari tod, ka tai nav izmaiņu hronologejis).\nTys zeimoj, ka tu vari puorlikt lopu atpakaļ, nu kurīnis tu jau nazkod esi tū puorlics, ka byusi pīlaids klaidu, bet tu navari puorraksteit jau asūšu lopu.\n\n'''BREIDYNUOJUMS!'''\nPopularom lopom tei var byut kruosa i nagaideita puormaiņa;\npyrma tuoluok īsšonys apdūmoj, voi tu saprūt, kū eistyn dori.",
        "movepagetalktext": "Saisteituo sarunu lopa, ka taida eksistej, tiks automatiski puorvītuota, '''izjemūt gadejumus, kod''':\n*tu puorlīc lopu iz cytu paleiglopu,\n*ar jaunū nūsaukumu jau eksistej sarunu lopa, voi ari\n*atzeimiesi zamuok atrūnamū lauceņu.\n\nKa gribiesi, tod tev itei sarunu lopa byus juopuolīk voi juoapvīnoj pošam.",
-       "movearticle": "Puorceļt puslopu",
        "newtitle": "Jauna pasauka:",
        "move-watch": "Puorraudzeit itū lopu",
        "movepagebtn": "Puorceļt puslopu",
        "movesubpage": "{{PLURAL:$1|Zampuslopa|Zampuslopys}}",
        "movereason": "Īmesle:",
        "revertmove": "atsaukt",
-       "delete_and_move": "Iztreit i puorceļt",
        "delete_and_move_confirm": "Nui, iztreit puslopu",
        "export": "Eksportēt lopu",
        "export-addcattext": "Dalikt puslopys nu kategorejis",
        "watchlisttools-raw": "Maineit puorraugamūs rokstu listes kodu",
        "version": "Verseja",
        "version-specialpages": "Specialuos puslopys",
-       "version-version": "(Verseja $1)",
+       "version-version": "($1)",
        "version-license": "Liceņceja",
        "version-poweredby-others": "cyti",
        "version-software-product": "Produkts",
index a1532c4..2b001c6 100644 (file)
        "protectedpagetext": "He phêk hi khawih danglam theih emaw tihchingpen theih loh nana venhim hrih a ni.",
        "viewsourcetext": "A hnar i lachhawngin i en thei ang:",
        "viewyourtext": "'''I siamţhatte''' chu he phêkah hian i enin i lachhawng thei ang.",
-       "protectedinterface": "He phêk hian khawlthluak tan hmangtu-ţawng a phuhru a, hman khawloh a nih loh nan venhim hrih a ni. Lehlinna tidanglam tur emaw belh tur chuan [//translatewiki.net/ translatewiki.net], MediaWiki lehzauna hmachhawp hi i hmang dawn nia.",
+       "protectedinterface": "He phêk hian khawlthluak tan hmangtu-ţawng a phuhru a, hman khawloh a nih loh nan venhim hrih a ni. Lehlinna tidanglam tur emaw belh tur chuan [https://translatewiki.net/ translatewiki.net], MediaWiki lehzauna hmachhawp hi i hmang dawn nia.",
        "cascadeprotected": "He phêk hi siam danglam phal a ni hrih lo, a chhan chu {{PLURAL:$1|he phêk|hêng phêk}}, \"a huhova venhim\" tih hmanga ven chhunga awm a nih vang a ni: \n$2",
        "namespaceprotected": "'''$1''' tih hminghmun chhunga phêkte siamţhat phalna i nei lo.",
        "customcssprotected": "Hmangtu dang mimal thil a awm avangin he CSS phêk hi siam danglam phal a ni lo.",
index 3eb98b1..5f16639 100644 (file)
        "actionthrottled": "Darbība netika atļauta",
        "protectedpagetext": "Šī lapa ir aizsargāta, lai novērstu tās izmainīšanu vai citas darbības.",
        "viewsourcetext": "Tu vari apskatīt un nokopēt šīs lapas vikitekstu.",
-       "protectedinterface": "Šī lapa satur programmatūras interfeisā lietotu tekstu un ir bloķēta pret izmaiņām, lai pasargātu no bojājumiem.\nLai pievienotu izmaiņas tulkojumā visās ''wiki'', lūdzam izmantot ''MediaWiki'' lokalizēšanas projektu [//translatewiki.net/ translatewiki.net].",
-       "editinginterface": "'''Brīdinājums:''' Tu izmaini lapu, kuras saturu izmanto wiki programmatūras lietotāja saskarnē (''interfeisā''). Šīs lapas izmaiņas ietekmēs lietotāja saskarni citiem lietotājiem. Pēc modificēšanas šīs izmaiņas būtu lietderīgi pievienot arī ''MediaWiki'' lokalizēšanas projektā [//translatewiki.net/ translatewiki.net].",
+       "protectedinterface": "Šī lapa satur programmatūras interfeisā lietotu tekstu un ir bloķēta pret izmaiņām, lai pasargātu no bojājumiem.\nLai pievienotu izmaiņas tulkojumā visās ''wiki'', lūdzam izmantot ''MediaWiki'' lokalizēšanas projektu [https://translatewiki.net/ translatewiki.net].",
+       "editinginterface": "'''Brīdinājums:''' Tu izmaini lapu, kuras saturu izmanto wiki programmatūras lietotāja saskarnē (''interfeisā''). Šīs lapas izmaiņas ietekmēs lietotāja saskarni citiem lietotājiem. Pēc modificēšanas šīs izmaiņas būtu lietderīgi pievienot arī ''MediaWiki'' lokalizēšanas projektā [https://translatewiki.net/ translatewiki.net].",
        "namespaceprotected": "Tev nav atļaujas izmainīt lapas, kas atrodas '''$1''' ''namespacē''.",
        "customcssprotected": "Jums nav tiesību rediģēt šo CSS lapu, jo tā satur cita lietotāja personiskos iestatījumus.",
        "customjsprotected": "Jums nav tiesību rediģēt šo JavaScript lapu, jo tā satur cita lietotāja personiskos iestatījumus.",
        "password-change-forbidden": "Šajā wiki paroles nevar mainīt.",
        "externaldberror": "Notikusi vai nu ārējās autentifikācijas datubāzes kļūda, vai arī tev nav atļauts izmainīt savu ārējo kontu.",
        "login": "Pieslēgties",
+       "login-security": "Apstiprini savu identitāti",
        "nav-login-createaccount": "Izveidot jaunu lietotāju vai doties iekšā",
        "userlogin": "Izveidot jaunu lietotāju vai doties iekšā",
        "userloginnocreate": "Pieslēgties",
        "createacct-reason-ph": "Kāpēc jūs veidojat citu kontu",
        "createacct-submit": "Izveidot savu kontu",
        "createacct-another-submit": "Izveidot citu dalībnieka kontu",
+       "createacct-continue-submit": "Turpināt konta izveidi",
+       "createacct-another-continue-submit": "Turpināt konta izveidi",
        "createacct-benefit-heading": "{{SITENAME}} darbojas ar tādu cilvēku kā Tu ieguldījumu.",
        "createacct-benefit-body1": "{{PLURAL:$1|labojumi|labojums|labojumi}}",
        "createacct-benefit-body2": "{{PLURAL:$1|lapas|lapa|lapas}}",
        "newpassword": "Jaunā parole",
        "retypenew": "Atkārto jauno paroli",
        "resetpass_submit": "Uzstādīt paroli un ieiet",
-       "changepassword-success": "Jūsu parole tika nomainīta veiksmīgi!",
+       "changepassword-success": "Tava parole tika nomainīta!",
+       "botpasswords": "Botu paroles",
+       "botpasswords-existing": "Esošās botu paroles",
+       "botpasswords-createnew": "Izveidot jaunu bota paroli",
+       "botpasswords-editexisting": "Rediģētu esošu bota paroli",
        "botpasswords-label-appid": "Bota nosaukums:",
        "botpasswords-label-create": "Izveidot",
        "botpasswords-label-update": "Atjaunināt",
        "botpasswords-label-resetpassword": "Atiestatīt paroli",
        "botpasswords-label-restrictions": "Lietošanas ierobežojumi:",
        "botpasswords-label-grants-column": "Piešķirts",
+       "botpasswords-deleted-title": "Bota parole dzēsta",
        "resetpass_forbidden": "Paroles nav iespējams nomainīt",
        "resetpass-no-info": "Jums ir nepieciešams ieiet, lai tūlīt piekļūtu šai lapai.",
        "resetpass-submit-loggedin": "Mainīt paroli",
        "passwordreset-emailsentemail": "Paroles atiestatīšanas e-pasts ir nosūtīts.",
        "passwordreset-emailsent-capture": "Atgādinājuma e-pasta ziņojums ir nosūtīts, tas parādīts zemāk.",
        "passwordreset-emailerror-capture": "Atgādinājuma e-pasta ziņojums tika izveidots, tas parādīts zemāk, bet nosūtīšana lietotājam neizdevās: $1",
+       "passwordreset-nosuchcaller": "Izsaucējs nepastāv: $1",
+       "passwordreset-invalideamil": "Nederīga e-pasta adrese",
        "changeemail": "Mainīt e-pasta adresi",
        "changeemail-header": "Mainīt konta e-pasta adresi",
        "changeemail-oldemail": "Pašreizējā e-pasta adrese:",
        "minoredit": "Maznozīmīgs labojums",
        "watchthis": "Uzraudzīt šo lapu",
        "savearticle": "Saglabāt lapu",
+       "publishpage": "Saglabāt lapu",
+       "publishchanges": "Publicēt izmaiņas",
        "preview": "Pirmskats",
        "showpreview": "Rādīt pirmskatu",
        "showdiff": "Rādīt izmaiņas",
        "userpage-userdoesnotexist": "Lietotājs \"<nowiki>$1</nowiki>\" nav reģistrēts.\nLūdzu, pārliecinies vai vēlies izveidot/izmainīt šo lapu.",
        "userpage-userdoesnotexist-view": "Dalībnieks \"$1\" nav reģistrēts.",
        "blocked-notice-logextract": "Šis dalībnieks pašlaik ir nobloķēts.\n\nPēdējais bloķēšanas reģistra ieraksts ir apskatāms zemāk:",
-       "clearyourcache": "'''Piezīme:''' Lai redzētu izmaiņas, pēc saglabāšanas jums var nākties iztīrīt sava pārlūka kešatmiņu.\n* '''Firefox / Safari:''' Pieturiet ''Shift'' un klikšķiniet uz ''Pārlādēt'' vai nospiediet ''Ctrl-F5'' vai ''Ctrl-R'' (''Command-R'' uz Mac)\n* '''Google Chrome:''' Nospiediet ''Ctrl-Shift-R'' (''Command-Shift-R'' uz Mac)\n* '''Internet Explorer:''' Pieturiet ''Ctrl'' un klikšķiniet uz ''Pārlādēt'' vai nospiediet ''Ctrl-F5''\n* '''Konqueror:''' Klikšķiniet uz ''Pārlādēt'' vai nospiediet ''F5''\n* '''Opera:''' Iztīriet kešatmiņu ''Tools → Preferences''",
+       "clearyourcache": "<strong>Piezīme:</strong> Lai redzētu izmaiņas, pēc saglabāšanas var nākties iztīrīt sava pārlūka kešatmiņu.\n* <strong>Firefox / Safari:</strong> Pieturi <em>Shift</em> un klikšķini uz <em>Pārlādēt</em> vai nospied <em>Ctrl-F5</em> vai <em>Ctrl-R</em> (<em>⌘-R</em> uz Mac)\n* <strong>Google Chrome:</strong> Nospied <em>Ctrl-Shift-R</em> (<em>⌘-Shift-R</em> uz Mac)\n* <strong>Internet Explorer:</strong> Pieturi <em>Ctrl</em> un klikšķini uz <em>Pārlādēt</em> vai nospied <em>Ctrl-F5</em>\n* <strong>Opera:</strong> Dodies uz <em>Menu → Settings</em> (<em>Opera → Preferences</em> uz Mac) un pēc tam uz <em>Privacy & security → Clear browsing data → Cached images and files</em>.",
        "usercssyoucanpreview": "'''Ieteikums:''' Lieto pogu \"{{int:showpreview}}\", lai pārbaudītu savu jauno CSS pirms saglabāšanas.",
        "userjsyoucanpreview": "'''Ieteikums:''' Lieto pogu \"{{int:showpreview}}\", lai pārbaudītu savu jauno JavaScript pirms saglabāšanas.",
        "usercsspreview": "'''Atceries, ka šis ir tikai tava dalībnieka CSS pirmskats, lapa vēl nav saglabāta!'''",
        "history-feed-empty": "Pieprasītā lapa nepastāv.\nIespējams, tā ir izdzēsta vai pārdēvēta.\nMēģiniet [[Special:Search|meklēt]], lai atrastu saistītas lapas!",
        "rev-deleted-comment": "(labojuma kopsavilkums dzēsts)",
        "rev-deleted-user": "(lietotāja vārds nodzēsts)",
-       "rev-deleted-event": "(reģistra ieraksts nodzēsts)",
+       "rev-deleted-event": "(reģistra detaļas noņemtas)",
        "rev-deleted-user-contribs": "[lietotājvārds vai IP adrese ir dzēsta — izmaiņa slēpta no devuma]",
        "rev-deleted-text-permission": "Šī lapas versija ir '''dzēsta'''.\nSīkāku informāciju var atrast [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} dzēšanas reģistrā].",
        "rev-deleted-text-view": "Šī lapas versija ir '''dzēsta'''.\nTo varat apskatīt, jo esat administrators. Sīkāku informāciju var atrast [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} dzēšanas reģistrā].",
        "right-editusercssjs": "Izmainīt citu dalībnieku CSS un JS failus",
        "right-editusercss": "Izmainīt citu dalībnieku CSS failus",
        "right-edituserjs": "Izmainīt citu dalībnieku JS failus",
+       "right-editmyusercss": "Rediģējiet savus dalībnieka CSS failus",
+       "right-editmyuserjs": "Rediģējiet savus dalībnieka JavaScript failus",
        "right-viewmywatchlist": "Apskatīt savu uzraugāmo rakstu sarakstu",
        "right-rollback": "Ātri veikt atriti pēdējā dalībnieka labojumiem, kas veica izmaiņas kādā konkrētā lapā",
        "right-markbotedits": "Atzīmēt labojumus, kam veikta atrite, kā bota labojumus",
        "right-siteadmin": "Bloķēt un atbloķēt datubāzi",
        "right-sendemail": "Sūtīt e-pastu citiem dalībniekiem",
        "right-passwordreset": "Apskatīt paroles atiestatīšanas e-pasta ziņojumus",
+       "grant-group-email": "Sūtīt e-pastu",
+       "grant-createaccount": "Izveidot kontu",
+       "grant-editmywatchlist": "Labot uzraugāmo rakstu sarakstu",
        "newuserlogpage": "Jauno dalībnieku reģistrs",
        "newuserlogpagetext": "Jauno lietotājvārdu reģistrs.",
        "rightslog": "Dalībnieku tiesību reģistrs",
        "rightslogtext": "Šis ir dalībnieku tiesību izmaiņu reģistrs.",
        "action-read": "lasīt šo lapu",
        "action-edit": "labot šo lapu",
-       "action-createpage": "izveidot lapas",
+       "action-createpage": "izveidot šo lapu",
        "action-createtalk": "izveidot diskusiju lapas",
        "action-createaccount": "izveidot šo dalībnieka kontu",
        "action-history": "apskatīt šīs lapas vēsturi",
        "boteditletter": "b",
        "number_of_watching_users_pageview": "[šo lapu uzrauga $1 {{PLURAL:$1|dalībnieki|dalībnieks|dalībnieki}}]",
        "rc_categories": "Ierobežot uz kategorijām (atdalīt ar \"|\"):",
-       "rc_categories_any": "Jebkas",
+       "rc_categories_any": "Jebkas no izvēlētā",
        "rc-change-size-new": "$1 {{PLURAL:$1|baiti|baits|baiti}} pēc izmaiņām",
        "newsectionsummary": "/* $1 */ jauna sadaļa",
        "rc-enhanced-expand": "Skatīt detaļas",
        "recentchangeslinked-summary": "Šiet ir nesen izdarītās izmaiņas lapās, uz kurām ir saites no norādītās lapas (vai norādītajā kategorijā ietilpstošās lapas).\nLapas, kas ir tavā [[Special:Watchlist|uzraugāmo rakstu sarakstā]] ir '''treknas'''.",
        "recentchangeslinked-page": "Lapas nosaukums:",
        "recentchangeslinked-to": "Rādīt izmaiņas lapās, kurās ir saites uz šo lapu (nevis lapās uz kurām ir saites no šīs lapas)",
+       "autochange-username": "MediaWiki automātiskā izmaiņa",
        "upload": "Augšupielādēt failu",
        "uploadbtn": "Augšupielādēt",
        "reuploaddesc": "Atcelt augšupielādi un atgriezties pie augšupielādes veidnes.",
        "uploaderror": "Augšupielādes kļūda",
        "upload-recreate-warning": "<strong>Brīdinājums: Fails ar šādu nosaukumu ir dzēsts vai pārvietots.</strong>\n\nDzēšanas un pārvietošanas reģistri šai lapai ir pieejami šeit:",
        "uploadtext": "Pirms tu kaut ko augšupielādē, noteikti izlasi un ievēro [[Project:Attēlu izmantošanas noteikumi|attēlu izmantošanas noteikumus]].\n\nLai aplūkotu vai meklētu agrāk augšupielādētus attēlus,\ndodies uz [[Special:FileList|augšupielādēto attēlu sarakstu]].\nAugšupielādes un dzēšanas tiek reģistrētas [[Special:Log/upload|augšupielādes reģistrā]] un [[Special:Log/delete|dzēšanas reģistrā]].\n\nIzmanto šo veidni, lai augšupielādētu jaunus attēlu failus, ar kuriem ilustrēt tevis izmainītās lapas.\nGandrīz visos pārlūkos tev vajadzētu redzēt pogu '''\"Choose...\",''' kuru spiežot parādīsies faila atvēršanas dialogs.\nIzvēloties kādu failu, tā adrese parādīsies ailītē blakus šai pogai.\nTev ir arī jāatzīmē ailīte, kas apstiprina, ka tu nepārkāp nekādas autortiesības, augšupielādējot šo failu.\nSpied pogu '''Augšupielādēt''', lai pabeigtu augšupielādi.\nTas var ieilgt, ja tavs interneta pieslēgums ir lēns.\n\nIeteicamie formāti ir:\n* JPEG - ja tā ir fotogrāfija,\n* PNG - ja tas ir zīmējums vai kāda ikona, un\n* OGG - ja tas ir skaņas fails.\n\nLūdzu, pārliecinies, ka faila nosaukums ir pietiekami aprakstošs, lai izvairītos no neskaidrībām. Lai attēlu pēc tam ievietotu kādā lapā, izmanto šādi noformētu linkus:\n* '''<nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fails.jpg|paskaidrojošs teksts]]</nowiki>'''\n* '''<nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fails.png|paskaidrojošs teksts]]</nowiki>'''\nvai skaņām\n* '''<nowiki>[[</nowiki>{{ns:media}}<nowiki>:Fails.ogg]]</nowiki>'''\n\nLūdzu, ņem vērā, ka tāpat kā citas wiki lapas arī tevis augšupielādētos failus citi var mainīt vai dzēst, ja uzskata, ka tas nāktu par labu šim projektam, kā arī atceries, ka tev var tikt liegta augšupielādes iespēja, ja tu šo sistēmu.",
-       "upload-permitted": "Atļautie failu tipi: $1.",
-       "upload-preferred": "Ieteicamie failu tipi: $1.",
-       "upload-prohibited": "Aizliegtie failu tipi: $1.",
+       "upload-permitted": "Atļautie failu {{PLURAL:$2|tipi|tips|tipi}}: $1.",
+       "upload-preferred": "Ieteicamie failu {{PLURAL:$2|tipi|tips|tipi}}: $1.",
+       "upload-prohibited": "Aizliegtie failu {{PLURAL:$2|tipi|tips|tipi}}: $1.",
        "uploadlogpage": "Augšupielādes reģistrs",
        "uploadlogpagetext": "Zemāk ir redzams jaunāko augšuplādēto failu saraksts.\nPārskatāmāka versija ir pieejama [[Special:NewFiles|jauno attēlu galerijā]].",
        "filename": "Faila nosaukums",
        "upload-form-label-infoform-description": "Apraksts",
        "upload-form-label-usage-title": "Pielietojums",
        "upload-form-label-usage-filename": "Faila nosaukums",
+       "upload-form-label-infoform-categories": "Kategorijas",
+       "upload-form-label-infoform-date": "Datums",
        "backend-fail-stream": "Nevar straumēt failu $1.",
        "backend-fail-backup": "Nevar dublēt failu $1.",
        "backend-fail-notexists": "Fails $1 nepastāv.",
        "listfiles_thumb": "Sīktēls",
        "listfiles_date": "Datums",
        "listfiles_name": "Nosaukums",
-       "listfiles_user": "Lietotājs",
+       "listfiles_user": "Dalībnieks",
        "listfiles_size": "Izmērs",
        "listfiles_description": "Apraksts",
        "listfiles_count": "Versijas",
        "filehist-thumb": "Attēls",
        "filehist-thumbtext": "$1 versijas sīktēls",
        "filehist-nothumb": "Nav sīktēla",
-       "filehist-user": "Lietotājs",
+       "filehist-user": "Dalībnieks",
        "filehist-dimensions": "Izmēri",
        "filehist-filesize": "Faila izmērs",
        "filehist-comment": "Komentārs",
        "wantedtemplates": "Vajadzīgās veidnes",
        "mostlinked": "Lapas, uz kurām ir visvairāk norāžu",
        "mostlinkedcategories": "Kategorijas, uz kurām ir visvairāk saišu",
-       "mostlinkedtemplates": "Visvairāk izmantotās veidnes",
+       "mostlinkedtemplates": "Visvairāk iekļautās lapas",
        "mostcategories": "Raksti ar visvairāk kategorijām",
        "mostimages": "Attēli, uz kuriem ir visvairāk saišu",
        "mostinterwikis": "Lapas ar visvairāk starpviki saitēm",
        "protectedpages-indef": "Tikai bezgalīgas aizsardzības",
        "protectedpages-cascade": "Tikai kaskādes aizsardzības",
        "protectedpages-noredirect": "Paslēpt pāradresācijas",
+       "protectedpages-timestamp": "Laika zīmogs",
        "protectedpages-page": "Lapa",
        "protectedpages-reason": "Iemesls",
        "protectedpages-unknown-timestamp": "Nav zināms",
        "usercreated": "{{GENDER:$3|Izveidoja}} $1 plkst. $2",
        "newpages": "Jaunas lapas",
        "newpages-submit": "Rādīt",
-       "newpages-username": "Lietotājs:",
+       "newpages-username": "Dalībnieks:",
        "ancientpages": "Vecākās lapas",
        "move": "Pārvietot",
        "movethispage": "Pārvietot šo lapu",
        "apisandbox": "API smilškaste",
        "apisandbox-api-disabled": "API ir atspējots šajā tīmekļa vietnē.",
        "apisandbox-reset": "Notīrīt",
+       "apisandbox-retry": "Mēģināt vēlreiz",
+       "apisandbox-no-parameters": "Šo API modulim nav parametru.",
+       "apisandbox-helpurls": "Palīdzības saites",
        "apisandbox-examples": "Piemēri",
+       "apisandbox-dynamic-parameters": "Papildu parametri",
+       "apisandbox-dynamic-parameters-add-label": "Pievienot parametru:",
+       "apisandbox-dynamic-parameters-add-placeholder": "Parametra nosaukums",
        "apisandbox-results": "Rezultāti",
        "apisandbox-request-url-label": "Pieprasījuma URL:",
-       "apisandbox-request-time": "Pieprasījuma izpildes laiks: $1",
+       "apisandbox-request-time": "Pieprasījuma izpildes laiks: {{PLURAL:$1|$1 ms}}",
        "booksources": "Grāmatu avoti",
        "booksources-search-legend": "Meklēt grāmatu avotus",
        "booksources-search": "Meklēt",
        "listgrouprights-removegroup-self-all": "Noņemt visas grupas no sava konta",
        "listgrouprights-namespaceprotection-header": "Vārdtelpas ierobežojumi",
        "listgrouprights-namespaceprotection-namespace": "Vārdtelpa",
+       "listgrants-rights": "Tiesības",
        "trackingcategories-nodesc": "Apraksts nav pieejams.",
        "trackingcategories-disabled": "Kategorija ir atslēgta",
        "mailnologin": "Nav adreses, uz kuru sūtīt",
        "wlheader-enotif": "E-pasta paziņojumi ir ieslēgti.",
        "wlheader-showupdated": "Lapas, kuras ir tikušas izmainītas, kopš tu tās pēdējoreiz apskatījies, te rādās ar '''pustrekniem''' burtiem",
        "wlshowlast": "Parādīt izmaiņas pēdējo $1 stundu laikā vai $2 dienu laikā, vai arī .",
+       "wlshowhidebots": "boti",
+       "wlshowhideliu": "reģistrēti lietotāji",
+       "wlshowhideanons": "anonīmi lietotāji",
+       "wlshowhidepatr": "pārbaudīti labojumi",
+       "wlshowhidemine": "mani labojumi",
+       "wlshowhidecategorization": "lapu kategorizēšana",
        "watchlist-options": "Uzraugāmo rakstu saraksta opcijas",
        "watching": "Uzrauga...",
        "unwatching": "Neuzrauga...",
        "contributions-title": "Dalībnieka $1 devums",
        "mycontris": "Devums",
        "anoncontribs": "Devums",
-       "contribsub2": "Lietotājs: $1 ($2)",
+       "contribsub2": "{{GENDER:$3|Dalībnieks|Dalībniece}}: $1 ($2)",
        "nocontribs": "Netika atrastas izmaiņas, kas atbilstu šiem kritērijiem.",
        "uctop": "(pēdējā izmaiņa)",
        "month": "No mēneša (un senāki):",
        "whatlinkshere-next": "{{PLURAL:$1|nākamos $1|nākamo|nākamos $1}}",
        "whatlinkshere-links": "← saites",
        "whatlinkshere-hideredirs": "$1 pāradresācijas",
-       "whatlinkshere-hidetrans": "$1 lapas, kurās šī lapa izmantota kā veidne",
+       "whatlinkshere-hidetrans": "$1 iekļāvumi",
        "whatlinkshere-hidelinks": "$1 saites",
        "whatlinkshere-hideimages": "$1 failu saites",
        "whatlinkshere-filters": "Filtri",
+       "whatlinkshere-submit": "Aiziet",
        "autoblockid": "Autobloķēšana #$1",
        "block": "Bloķēt dalībnieku",
        "unblock": "Atbloķēt lietotāju",
        "allmessagesname": "Nosaukums",
        "allmessagesdefault": "Noklusētais ziņojuma teksts",
        "allmessagescurrent": "Pašreizējais teksts",
-       "allmessagestext": "Šajā lapā ir visu \"'''MediaWiki:'''\" lapās atrodamo sistēmas paziņojumu uzskaitījums.\nŠos paziņojumus var izmainīt tikai admini. Izmainot tos šeit, tie tiks izmainīti tikai šajā mediawiki instalācijā. Lai tos izmainītu visām pārējām, apskatieties [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] un [//translatewiki.net translatewiki.net].",
+       "allmessagestext": "Šajā lapā ir visu \"'''MediaWiki:'''\" lapās atrodamo sistēmas paziņojumu uzskaitījums.\nŠos paziņojumus var izmainīt tikai admini. Izmainot tos šeit, tie tiks izmainīti tikai šajā mediawiki instalācijā. Lai tos izmainītu visām pārējām, apskatieties [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] un [https://translatewiki.net translatewiki.net].",
        "allmessagesnotsupportedDB": "Šī lapa nedarbojas, tāpēc, ka '''wgUseDatabaseMessages''' nedarbojas.",
        "allmessages-filter-legend": "Filtrs",
        "allmessages-filter": "Filtrēt pēc izmainīšanas statusa:",
        "confirm-watch-button": "Labi",
        "confirm-watch-top": "Pievienot šo lapu uzraugāmo lapu sarakstam?",
        "confirm-unwatch-button": "Labi",
+       "confirm-rollback-button": "Labi",
        "imgmultipageprev": "← iepriekšējā lapa",
        "imgmultipagenext": "nākamā lapa →",
        "imgmultigo": "Aiziet!",
        "imgmultigoto": "Iet uz lapu $1",
        "img-lang-default": "(noklusējuma valoda)",
+       "img-lang-go": "Aiziet",
        "ascending_abbrev": "pieaug.",
        "descending_abbrev": "dilst.",
        "table_pager_next": "Nākamā lapa",
        "version-libraries-license": "Licence",
        "version-libraries-description": "Apraksts",
        "version-libraries-authors": "Autori",
+       "redirect-submit": "Aiziet",
        "redirect-value": "Vērtība:",
        "redirect-user": "Lietotāja ID",
        "redirect-page": "Lapas ID",
        "expand_templates_preview": "Pirmskats",
        "pagelang-name": "Lapa",
        "pagelang-language": "Valoda",
+       "pagelang-select-lang": "Izvēlieties valodu",
+       "pagelang-submit": "Iesniegt",
+       "mediastatistics-table-mimetype": "MIME tips",
+       "mediastatistics-table-count": "Failu skaits",
+       "mediastatistics-table-totalbytes": "Kopējais izmērs",
+       "mediastatistics-header-unknown": "Nav zināms",
+       "mediastatistics-header-bitmap": "Bitmap attēli",
+       "mediastatistics-header-drawing": "Zīmējumi (vector attēli)",
        "mediastatistics-header-audio": "Audio",
+       "mediastatistics-header-video": "Video",
+       "mediastatistics-header-total": "Visi faili",
        "special-characters-group-latin": "Latīņu",
        "special-characters-group-latinextended": "Latīņu (papildus)",
        "special-characters-group-ipa": "IPA",
        "special-characters-group-symbols": "Simboli",
        "special-characters-group-greek": "Grieķu",
+       "special-characters-group-greekextended": "Grieķu paplašināta",
        "special-characters-group-cyrillic": "Kirilica",
        "special-characters-group-arabic": "Arābu",
        "special-characters-group-persian": "Persiešu",
        "special-characters-group-gujarati": "Gudžarati",
        "mw-widgets-dateinput-no-date": "Nav izvēlēts datums",
        "mw-widgets-titleinput-description-new-page": "lapa vēl nepastāv",
-       "api-error-blacklisted": "Lūdzu, izvēlieties citu, aprakstošu nosaukumu!"
+       "authmanager-email-label": "E-pasts",
+       "authmanager-email-help": "E-pasta adrese",
+       "authmanager-realname-label": "Tavs īstais vārds",
+       "authmanager-realname-help": "Dalībnieka īstais vārds",
+       "authprovider-resetpass-skip-label": "Izlaist",
+       "specialpage-securitylevel-not-allowed-title": "Nav atļauts"
 }
index eee6234..0999c3e 100644 (file)
@@ -28,6 +28,7 @@
        "tog-hideminor": "隱近校",
        "tog-hidepatrolled": "隱近巡",
        "tog-newpageshidepatrolled": "隱新巡",
+       "tog-hidecategorization": "隱頁類",
        "tog-extendwatchlist": "展列見變",
        "tog-usenewrc": "羣出近易",
        "tog-numberheadings": "生章數",
@@ -38,6 +39,8 @@
        "tog-watchdefault": "哨己纂",
        "tog-watchmoves": "派哨於頁吾遷者",
        "tog-watchdeletion": "派哨於頁吾除者",
+       "tog-watchuploads": "增載文至監",
+       "tog-watchrollback": "回過之頁,增至監",
        "tog-minordefault": "慣為校",
        "tog-previewontop": "頂草覽",
        "tog-previewonfirst": "覽首修",
        "tog-watchlisthideliu": "不哨有簿",
        "tog-watchlisthideanons": "不哨無簿",
        "tog-watchlisthidepatrolled": "不哨已巡",
+       "tog-watchlisthidecategorization": "隱頁類",
        "tog-ccmeonemails": "凡所遺書,請存副本。",
        "tog-diffonly": "異下無示頁",
        "tog-showhiddencats": "示隱類",
        "tog-norollbackdiff": "轉後略異",
        "tog-useeditwarning": "離而未存,示吾",
+       "tog-prefershttps": "入簿復用安全鏈",
        "underline-always": "恆",
        "underline-never": "絕",
        "underline-default": "慣",
        "view": "察",
        "view-foreign": "觀於$1",
        "edit": "纂",
+       "edit-local": "纂地言",
        "create": "立",
        "create-local": "增地言",
        "editthispage": "纂",
        "otherlanguages": "他山",
        "redirectedfrom": "(渡自$1)",
        "redirectpagesub": "渡",
+       "redirectto": "轉至:",
        "lastmodifiedat": "此頁於$1$2方易。",
        "viewcount": "此頁$1閱矣",
        "protectedpage": "此頁錮矣",
        "jumptonavigation": "導",
        "jumptosearch": "尋",
        "view-pool-error": "甚歉!伺服器超負矣。\n尋頁之人也眾矣。\n若欲再試請稍候。\n\n$1",
+       "generic-pool-error": "機現超負,查者繁甚。候以復查。",
        "pool-timeout": "待鎖超時",
        "pool-queuefull": "池隊滿之",
        "pool-errorunknown": "未知之誤",
+       "pool-servererror": "計數伺服器無效($1)",
+       "poolcounter-usage-error": "用誤:$1",
        "aboutsite": "述{{SITENAME}}",
        "aboutpage": "Project:述",
        "copyright": "文奉$1行。",
        "viewdeleted": "閱$1之?",
        "restorelink": "$1已刪",
        "feedlinks": "源︰",
+       "feed-invalid": "無效介類。",
        "feed-unavailable": "聯合源無視也",
        "site-rss-feed": "$1之RSS源",
        "site-atom-feed": "$1之Atom源",
        "error": "有誤",
        "databaseerror": "庫藏也誤",
        "databaseerror-query": "尋:$1",
+       "databaseerror-function": "功能:$1",
        "databaseerror-error": "錯:$1",
        "laggedslavemode": "警告:此頁不新。",
        "readonly": "鎖庫藏",
        "protectedpagetext": "此頁見錮以避纂也。",
        "viewsourcetext": "爾可視及複之本頁之原始碼。",
        "protectedinterface": "此頁司版,錮之以遠濫。",
-       "editinginterface": "'''警示:'''此頁司版,一髮牽身,惠慎之。如譯之,可慮[//translatewiki.net/wiki/Main_Page?setlang=zh-hant translatewiki.net]也,為MediaWiki軟件本地化之計劃也。",
+       "editinginterface": "'''警示:'''此頁司版,一髮牽身,惠慎之。如譯之,可慮[https://translatewiki.net/wiki/Main_Page?setlang=zh-hant translatewiki.net]也,為MediaWiki軟件本地化之計劃也。",
        "cascadeprotected": "此頁\"迭緘\"矣。$1頁牽連如下:\n$2",
        "namespaceprotected": "子權未逮,莫能纂'''$1'''。",
        "ns-specialprotected": "奇頁禁纂。",
        "passwordtooshort": "符節莫逾$1字。",
        "password-name-match": "符節與簿名相異也。",
        "password-login-forbidden": "此簿共符節之用見禁矣。",
-       "mailmypassword": "é\81£å\90¾符節",
+       "mailmypassword": "é\87\8d設符節",
        "passwordremindertitle": "新臨符節自{{SITENAME}}",
        "passwordremindertext": "$1求遣{{SITENAME}}($4):\"$2\"之臨符節為\"$3\"。日到有$5。\n\n子若罔須或省更之,如舊則可。",
        "noemail": "\"$1\"無存郵也。",
        "noemailcreate": "汝需乙郵",
        "passwordsent": "新節已遣$1\",惠鑒復登之。",
-       "blocked-mailpassword": "汝 IP 已錮,密復無用之,以之濫也。",
+       "blocked-mailpassword": "汝址已奪筆。以符節恢是址已阻以避濫。",
        "eauthentsent": "核文遣矣。惠循核之,簿方活也。",
        "throttled-mailpassword": "符節見寄於$1時前矣。\n防濫用故,單一密記短至$1時寄之。",
        "mailerror": "信失遣。斯文如下:$1",
        "allmessagesname": "話",
        "allmessagesdefault": "慣話文",
        "allmessagescurrent": "今話文",
-       "allmessagestext": "此列MediaWiki官話。\n如貢正宗MediaWiki本地化,[https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki本地化]與[//translatewiki.net translatewiki.net]閱之。",
+       "allmessagestext": "此列MediaWiki官話。\n如貢正宗MediaWiki本地化,[https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki本地化]與[https://translatewiki.net translatewiki.net]閱之。",
        "allmessagesnotsupportedDB": "'''$wgUseDatabaseMessages'''閉庫,'''無纂也。",
        "allmessages-filter-legend": "濾",
        "allmessages-filter": "以易濾:",
index e5ab3e2..cd0a50d 100644 (file)
        "block-log-flags-nocreate": "hesabi okʼidu geinkʼilu",
        "movepagetext": "Tude na ren formi oxmarute butʼkʼaşi coxo iktirinen. Edo xolo mteli golaxteri kʼayitʼepeti ağani coxos itiren.\nMcveşi coxo, ağani coxoşa redirektʼi xali aqʼven.\nOtomatikurot mcveşi stʼatʼiaşa na ixvenen redirektʼepe gaktirinen.\nAm dulya otomatikurot oxvenu va ginonna [[Special:DoubleRedirects|tʼkʼubi]] varna [[Special:BrokenRedirects|tʼaxeri]] na renan redirektʼepe ti-skani kʼala oktiruşi re. Na qʼvare am oktirobate mteli kʼontʼaktʼepe dido kʼai oçalişu ren, amuşen si sorumli re.\n\nEger ağani coxos ar butʼkʼa zate korenna coxoşi oktiroba '''var ixvenasen'''. Amuş metʼi, coxoşi oktirobaşen pişmani qʼvi na, am oktiroba ipʼtʼali gaxvenen, aşoten başka butʼkʼapeşati zarari meçameri va gaqʼven.\n\n'''KʼUN3Xİ!'''\nAm ktira, populeri na ren a butʼkʼa şeni pʼatʼi mutxanepe axvenen; mu iqʼven ipti, aya giçkitʼas do ukʼule mutxanepe doktiri.",
        "movepagetalktext": "Okʼokʼatineri na ren oğarğaluşi butʼkʼati (eger korenna) otʼomatikurot ağani coxos itirinasen. Mara am situa3yonepes '''var itirinen''':\n\n*Ağani coxos ar oğarğaluşi butʼkʼa zaten korenna,\n*Tude na ren çʼitʼa boksi va ixmarit na.\n\nAm situa3yonepes, butʼkʼa skanişkʼelen otiruşi ren.",
-       "movearticle": "Mcveşi coxo:",
        "newtitle": "Ağani coxo:",
        "move-watch": "Am butʼkʼa gatxozi",
        "movepagebtn": "Coxo-muşi doktiri",
        "watchlisttools-edit": "Gotxozu listʼe koz*iri do doktiri",
        "watchlisttools-raw": "Kʼobo gotxozu listʼe doktiri",
        "specialpages": "Doxmeli butʼkʼape",
-       "rightsnone": "(Va ren)"
+       "rightsnone": "(Va ren)",
+       "special-characters-group-latin": "Lat'ini",
+       "special-characters-group-greek": "Xorumi",
+       "special-characters-group-arabic": "Arabuli"
 }
index 1d4966d..f7332f9 100644 (file)
@@ -62,7 +62,7 @@
        "tog-ccmeonemails": "हमरद्वारा दोसर प्रयोक्ताक पठाओल ई-पत्रक कपी पठाबी",
        "tog-diffonly": "फाइल-अन्तर प्रणालीक नीचाँ पन्नाक सामिग्री नै देखाबी",
        "tog-showhiddencats": "नुकाएल श्रेणी देखाबी",
-       "tog-norollbackdiff": "पà¥\8dरतà¥\8dयावरà¥\8dतनà¤\95 à¤¬à¤¾à¤¦ à¤«à¤¾à¤\87ल-à¤\85नà¥\8dतर à¤ªà¥\8dरणालà¥\80à¤\95 à¤¬à¤¿à¤¸à¤°ी",
+       "tog-norollbackdiff": "समà¥\8dपादन à¤µà¤¾à¤ªà¤¸ à¤² à¤²à¥\87ला à¤¬à¤¾à¤¦ à¤\85नà¥\8dतर à¤¨à¥\88 à¤¦à¥\87à¤\96ाबी",
        "tog-useeditwarning": "जब हम कोनो सम्पादन पृष्ठके बिना सुरक्षित केनै बदलाव संग छोडि दि त हमरा सूचित करी ।",
        "tog-prefershttps": "सम्प्रवेशित करलाक बाद सदैव सुरक्षित कनेक्शनके प्रयोग करी",
        "underline-always": "सदिखन",
@@ -84,7 +84,7 @@
        "mon": "सोम",
        "tue": "मंगल",
        "wed": "बुध",
-       "thu": "बृह.",
+       "thu": "बृह",
        "fri": "शुक्र",
        "sat": "शनि",
        "january": "जनवरी",
        "category-file-count": "{{PLURAL:$2|ई श्रेणीमे मात्र निम्नलिखित फाइल अछि।|ई श्रेणीमे निम्नलिखित {{PLURAL:$1|फाइल|$1 फाइलसभ}} अछि, कुल फाइलसभ $2}}",
        "category-file-count-limited": "ई श्रेणीमे निम्नलिखित {{PLURAL:$1|फाइल अछि।|फाइलसभ अछि।}}",
        "listingcontinuesabbrev": "शेष आगाँ।",
-       "index-category": "क्रम कएल पन्ना सभ",
+       "index-category": "क्रम कएल पन्नासभ",
        "noindex-category": "क्रम नै कएल पन्नासभ",
        "broken-file-category": "पन्नासभ जाइमे फाइल लिङ्कसभ टूटल हुअए",
        "about": "क विषयमे",
        "article": "सामग्री लेख",
        "newwindow": "(नव खिडकीसँ खुजैछ)",
-       "cancel": "समापà¥\8dत",
+       "cancel": "रदà¥\8dद à¤\95रà¥\80",
        "moredotdotdot": "आर...",
        "morenotlisted": "ई पुरा सूची नै छी।",
        "mypage": "पन्ना",
        "namespaces": "चेन्हासी समूहसभ",
        "variants": "प्रकारसभ",
        "navigation-heading": "दिक्चालन सूची",
-       "errorpagetitle": "à¤\97लतà¥\80",
+       "errorpagetitle": "तà¥\8dरà¥\81à¤\9fि",
        "returnto": "$1 पर आबी।",
        "tagline": "मैथिली {{SITENAME}}सँ",
        "help": "मदति",
        "searchbutton": "ताकी",
        "go": "जाए",
        "searcharticle": "जाए",
-       "history": "पनà¥\8dनाà¤\95 इतिहास",
+       "history": "पà¥\83षà¥\8dठ इतिहास",
        "history_short": "इतिहास",
        "updatedmarker": "हमर अन्तिम आगमनसँ पहिने अद्यतन कएल",
        "printableversion": "प्रिन्ट करबा योग्य",
        "confirmable-no": "नै",
        "thisisdeleted": "$1 देखी वा फेरसँ आनी?",
        "viewdeleted": "$1 के देखाबी?",
-       "restorelink": "{{PLURAL:$1|एकटा मेटाएल सम्पादन|$1 मेटाएल सम्पादन सभ}}",
+       "restorelink": "{{PLURAL:$1|एकटा मेटाएल सम्पादन|$1 मेटाएल सम्पादनसभ}}",
        "feedlinks": "सूचक:",
        "feed-invalid": "अमान्य सूचक प्रकार मासुल",
        "feed-unavailable": "अधिकृत सूचक उपलब्ध नै अछि",
        "nstab-category": "श्रेणी",
        "mainpage-nstab": "सम्मुख पन्ना",
        "nosuchaction": "एहेन कोनो क्रिया नै अछि",
-       "nosuchactiontext": "à¤\90 à¤¸à¤¾à¤°à¥\8dवतà¥\8dरिà¤\95 à¤µà¤¿à¤­à¤µ à¤¸à¤\82à¤\95à¥\87त à¤¦à¥\8dवारा à¤¨à¤¿à¤°à¥\8dदिषà¥\8dà¤\9f à¤\95à¥\8dरिया à¤\85मानà¥\8dय à¤\85à¤\9bि।\nà¤\85हाà¤\81 à¤¸à¤¾à¤°à¥\8dवतà¥\8dरिà¤\95 à¤µà¤¿à¤­à¤µ à¤¸à¤\82à¤\95à¥\87तà¤\95 à¤\97लत à¤\9fà¤\82à¤\95ण à¤\95à¥\87नà¥\87 à¤¹à¤\8fब, à¤µà¤¾ à¤\95à¥\8bनà¥\8b à¤\97लत à¤²à¤¿à¤\82à¤\95à¤\95 à¤ªà¤¾à¤\9bाà¤\81 à¤\97à¥\87ल à¤¹à¤\8fब।\nà¤\88 {{à¤\85नà¥\8dतरà¥\8dà¤\9cाल}} à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dता à¤¦à¥\8dवारा à¤ªà¥\8dरयà¥\81à¤\95à¥\8dत à¤¤à¤\82तà¥\8dराà¤\82शमà¥\87 à¤¸à¥\8dथित à¤\95à¥\8bनà¥\8b à¤¦à¥\8bषà¤\95 à¤¸à¤\82केत सेहो कऽ सकैए।",
+       "nosuchactiontext": "à¤\88 à¤¸à¤¾à¤°à¥\8dवतà¥\8dरिà¤\95 à¤µà¤¿à¤­à¤µ à¤¸à¤\99à¥\8dà¤\95à¥\87तदà¥\8dवारा à¤¨à¤¿à¤°à¥\8dदिषà¥\8dà¤\9f à¤\95à¥\8dरिया à¤\85मानà¥\8dय à¤\85à¤\9bि।\nà¤\85हाà¤\81 à¤¸à¤¾à¤°à¥\8dवतà¥\8dरिà¤\95 à¤µà¤¿à¤­à¤µ à¤¸à¤\99à¥\8dà¤\95à¥\87तà¤\95 à¤\97लत à¤\9fà¤\99à¥\8dà¤\95ण à¤\95à¥\87नà¥\87 à¤¹à¤\8fब, à¤µà¤¾ à¤\95à¥\8bनà¥\8b à¤\97लत à¤²à¤¿à¤\99à¥\8dà¤\95à¤\95 à¤ªà¤¾à¤\9bाà¤\81 à¤\97à¥\87ल à¤¹à¤\8fब।\nà¤\88 {{SITENAME}} à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dतादà¥\8dवारा à¤ªà¥\8dरयà¥\81à¤\95à¥\8dत à¤¤à¤¨à¥\8dतà¥\8dराà¤\82शमà¥\87 à¤¸à¥\8dथित à¤\95à¥\8bनà¥\8b à¤¦à¥\8bषà¤\95 à¤¸à¤\99à¥\8dकेत सेहो कऽ सकैए।",
        "nosuchspecialpage": "एहेन कोनो विशेष पृष्ठ नै अछि",
        "nospecialpagetext": "<strong> अहाँ एकटा अमान्य पन्नाक आग्रह केने छी। </strong>\nमान्य विशेष पन्नाक सूची एतए अछि [[Special:SpecialPages|{{int:specialpages}}]]।",
        "error": "भ्रम",
        "databaseerror-error": "त्रुटि: $1",
        "laggedslavemode": "'''चेतौनी:''' पन्नापर सम्भव जे अद्यतन परिवर्तन नै हुअए।",
        "readonly": "दत्तनिधि प्रतिबन्धित",
-       "enterlockreason": "पà¥\8dरतिबनà¥\8dध à¤²à¥\87ल à¤\95ारण à¤¬à¤¤à¤¾à¤\89, à¤¸à¤\82à¤\97मà¥\87 à¤\8fà¤\95à¤\9fा à¤\85à¤\82दाà¤\9c à¤¸à¥\87हà¥\8b à¤¬à¤¤à¤¾à¤\89 जे कखन ई प्रतिबन्ध हटाएल जाएत।",
+       "enterlockreason": "पà¥\8dरतिबनà¥\8dध à¤²à¥\87ल à¤\95ारण à¤¬à¤¤à¤¾à¤¬à¥\80, à¤¸à¤\82à¤\97à¥\87 à¤\8fà¤\95à¤\9fा à¤\85नà¥\8dदाà¤\9c à¤¸à¥\87हà¥\8b à¤¬à¤¤à¤¾à¤¬à¥\80 जे कखन ई प्रतिबन्ध हटाएल जाएत।",
        "readonlytext": "अखन दत्तांशनिधि नव प्रविष्टि आ आन संशोधन लेल प्रतिबन्धित अछि, सम्भवतः सामान्त दत्तांशनिधि देखभाल लेल, तकर बाद ई सामान्य भऽ जाएत।\n\nसञ्चालक जे एकरा प्रतिबन्धित कएने छथि ई कारण दै छथि:$1",
-       "missing-article": "दतà¥\8dतनिधि à¤ªà¥\83षà¥\8dठà¤\95 à¤µà¤¾à¤\82à¤\9bित à¤ªà¤¾à¤ à¥\8dय à¤¨à¥\88 à¤¤à¤¾à¤\95ि à¤¸à¤\95ल, à¤®à¤¾à¤¨à¥\87 \"$1\" $2\nà¤\8fà¤\95र à¤\95ारण à¤\95à¥\8bनà¥\8b à¤ªà¥\81रान à¤«à¤¾à¤\87ल à¤\9aà¥\87नà¥\8dहासà¥\80 à¤µà¤¾ à¤\90तिहासिà¤\95 à¤²à¤¿à¤\82à¤\95à¤\95 à¤ªà¤¾à¤\9bाà¤\81 à¤\9cाà¤\8fब à¤\85à¤\9bि, à¤\9cà¥\87 à¤®à¥\87à¤\9fा à¤¦à¥\87ल à¤\97à¥\87ल à¤\9bà¥\88।\nà¤\9cà¥\8cà¤\82 à¤\88 à¤¤à¤\95र à¤\95ारण à¤¨à¥\88 à¤\85à¤\9bि,  à¤¤à¤\96न à¤\85हाà¤\81à¤\95à¥\87à¤\81 à¤¤à¤\82तà¥\8dराà¤\82शमà¥\87 à¤\95à¥\8bनà¥\8b à¤¦à¥\8bष à¤­à¥\87à¤\9fल à¤\85à¤\9bि।\nà¤\8fà¤\95र à¤\96बरि à¤ªà¤¹à¥\81à¤\81à¤\9aाà¤\89 [[Special:ListUsers/sysop|administrator]], à¤\95à¥\87à¤\81, à¤\85पन à¤¸à¤¾à¤°à¥\8dवतà¥\8dरिà¤\95 à¤µà¤¿à¤­à¤µ à¤¸à¤\82केत सूचित करैत।",
+       "missing-article": "दतà¥\8dतनिधि à¤ªà¥\83षà¥\8dठà¤\95 à¤µà¤¾à¤¨à¥\8dà¤\9bित à¤ªà¤¾à¤ à¥\8dय à¤¨à¥\88 à¤¤à¤¾à¤\95ि à¤¸à¤\95ल, à¤®à¤¾à¤¨à¥\87 \"$1\" $2\nà¤\8fà¤\95र à¤\95ारण à¤\95à¥\8bनà¥\8b à¤ªà¥\81रान à¤«à¤¾à¤\87ल à¤\9aà¥\87नà¥\8dहासà¥\80 à¤µà¤¾ à¤\90तिहासिà¤\95 à¤²à¤¿à¤\99à¥\8dà¤\95à¤\95 à¤ªà¤¾à¤\9bाà¤\81 à¤\9cाà¤\8fब à¤\85à¤\9bि, à¤\9cà¥\87 à¤®à¥\87à¤\9fा à¤¦à¥\87ल à¤\97à¥\87ल à¤\9bà¥\88।\nà¤\9cà¥\8cà¤\82 à¤\88 à¤¤à¤\95र à¤\95ारण à¤¨à¥\88 à¤\85à¤\9bि, à¤¤à¤\96न à¤\85हाà¤\81 à¤¤à¤¨à¥\8dतà¥\8dराà¤\82शमà¥\87 à¤\95à¥\8bनà¥\8b à¤¦à¥\8bष à¤­à¥\87à¤\9fल à¤\85à¤\9bि।\nà¤\8fà¤\95र à¤\96बरि à¤ªà¤¹à¥\81à¤\81à¤\9aाबà¥\80 [[Special:ListUsers/sysop|पà¥\8dरबनà¥\8dधà¤\95]]à¤\95à¥\87à¤\81, à¤\85पन à¤¸à¤¾à¤°à¥\8dवतà¥\8dरिà¤\95 à¤µà¤¿à¤­à¤µ à¤¸à¤\99à¥\8dकेत सूचित करैत।",
        "missingarticle-rev": "(संशोधन#: $1)",
        "missingarticle-diff": "(फाइल-अन्तर प्रणाली: $1, $2)",
        "readonly_lag": "दत्तांशनिधि स्वचालित रूपसँ प्रतिबन्धित कएल गेल अछि जा परजीवी दतांशनिधि वितरक मूलक समक्ष नै आबि जाए।",
        "unexpected": "आसक विपरीत परिणाम: \"$1\"=\"$2\"",
        "formerror": "त्रुटि: फर्म अनुरोध नै कएल जा सकल",
        "badarticleerror": "ई क्रिया ऐ पन्नापर नै कएल जा सकैए।",
-       "cannotdelete": "पनà¥\8dना à¤µ à¤¸à¤\82चिका \"$1\" मेटाएल नै जा सकल।",
+       "cannotdelete": "पनà¥\8dना à¤µ à¤¸à¤\9eà¥\8dचिका \"$1\" मेटाएल नै जा सकल।",
        "cannotdelete-title": "पन्ना \"$1\" नै मेटा सकल",
        "delete-hook-aborted": "सम्पादन नोकसीसँ खतम भेल।\nई कोनो कारण नै देलक।",
        "no-null-revision": "\"$1\" पृष्ठक लेल बिना परिवर्तन नब अवतरण बनाबैमे असफल।",
        "viewsourcetext": "अहाँ ई पृष्ठक जडिक देख आ अनुकृत कऽ सकै छी:",
        "viewyourtext": "अहाँ ई पृष्ठमे '''अपन सम्पादन'''क देख आ एतए उतारि सकै छी:",
        "protectedinterface": "ई पन्ना तंत्रांश लेल मध्यस्थ पाठक व्यवस्था करैत अछि, आ अपशब्द रोकबाक ब्योंत करैत अछि।",
-       "editinginterface": "'''चेतौनी''' अहाँ एकटा एहेन पन्नाक सम्पादन कऽ रहल छी जे तंत्रांशक मध्यस्थ पन्नाकेँ पाठ देबा लेल प्रयोग भऽ रहल अछि।\nऐ पन्नामे परिवर्तन दोसर प्रयोक्ता लेल प्रयोक्ता मध्यस्थक रूपमे परिवर्तन करत।\nअनुवाद लेल [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net] जाउ, मीडियाविकी स्थानीयकरण परियोजना पर।",
-       "translateinterface": "सभ à¤µà¤¿à¤\95िसब à¤\95à¥\87 à¤²à¥\87ल à¤\85नà¥\81वाद à¤\9cà¥\8bडà¤\87 à¤¯à¤¾ à¤¬à¤¦à¤²à¤\88 à¤\95à¥\87 à¤²à¥\87ल à¤®à¥\80डियाविà¤\95ि à¤\95à¥\8dषà¥\87तà¥\8dरà¥\80यà¤\95रण à¤ªà¤°à¤¿à¤¯à¥\8bà¤\9cना [//translatewiki.net/ translatewiki.net] à¤\95à¥\87à¤\82 à¤ªà¥\8dरयà¥\8bà¤\97 à¤\95रà¥\81।",
+       "editinginterface": "<strong>चेतौनी:</strong> अहाँ एकटा एहेन पन्नाक सम्पादन कऽ रहल छी जे सफ्टवेयरक मध्यस्थ पन्नाक पाठ देबा लेल प्रयोग भऽ रहल अछि।\nई पन्नामे परिवर्तन दोसर प्रयोक्ता लेल प्रयोक्ता मध्यस्थक रूपमे परिवर्तन करत।\nअनुवाद लेल मिडियाविकी स्थानीयकरण परियोजना [https://translatewiki.net/wiki/Main_Page?setlang=en ट्रान्सलेटविकी.नेट] पर जाए।",
+       "translateinterface": "सभ à¤µà¤¿à¤\95िसभà¤\95 à¤²à¥\87ल à¤\85नà¥\81वाद à¤\9cà¥\8bडà¤\8f à¤¯à¤¾ à¤¬à¤¦à¤²à¥\88à¤\95 à¤²à¥\87ल à¤®à¤¿à¤¡à¤¿à¤¯à¤¾à¤µà¤¿à¤\95ि à¤\95à¥\8dषà¥\87तà¥\8dरà¥\80यà¤\95रण à¤ªà¤°à¤¿à¤¯à¥\8bà¤\9cना [https://translatewiki.net/ à¤\9fà¥\8dरानà¥\8dसलà¥\87à¤\9fविà¤\95à¥\80.नà¥\87à¤\9f]à¤\95 à¤ªà¥\8dरयà¥\8bà¤\97 à¤\95रà¥\80।",
        "cascadeprotected": "ई पन्नाक सम्पादन सम्भव नै अछि, कारण अहिमे सम्मिलित अछि, {{PLURAL:$1|पृष्ठ|पृष्ठसभ}} सुरक्षित अछि \"तराउपडी\" विकल्प खोललाक बाद:\n$2",
-       "namespaceprotected": "अहाँकेँ '''$1''' नाम-पेटारमे सम्पादनक अनुमति नै अछि।",
-       "customcssprotected": "à¤\85हाà¤\82à¤\95à¥\87à¤\82 à¤\90 à¤¸à¥\80.à¤\8fस.à¤\8fस.पनà¥\8dनाà¤\95à¥\87à¤\82 à¤¸à¤®à¥\8dपादित à¤\95रबाà¤\95 à¤\85धिà¤\95ार à¤¨à¥\88 à¤\85à¤\9bि, à¤\95ारण à¤\90मà¥\87 à¤¦à¥\8bसर à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dताà¤\95 à¤µà¥\8dयà¤\95à¥\8dतिà¤\97त à¤µà¤¿à¤\95लà¥\8dप à¤\9bà¥\88।",
-       "customjsprotected": "à¤\85हाà¤\82à¤\95à¥\87à¤\82 à¤\90 à¤\9cावासà¥\8dà¤\95à¥\8dरिपà¥\8dà¤\9f à¤ªà¤¨à¥\8dनाà¤\95à¥\87à¤\82 à¤¸à¤®à¥\8dपादित à¤\95रबाà¤\95 à¤\85धिà¤\95ार à¤¨à¥\88 à¤\85à¤\9bि, à¤\95ारण à¤\90मà¥\87 à¤¦à¥\8bसर à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dताà¤\95 à¤µà¥\8dयà¤\95à¥\8dतिà¤\97त à¤µà¤¿à¤\95लà¥\8dप à¤\9bà¥\88।",
+       "namespaceprotected": "अहाँकेँ <strong>$1</strong> नाम-पेटारमे सम्पादनक अनुमति नै अछि।",
+       "customcssprotected": "à¤\85हाà¤\81à¤\95 à¤¸à¤¿à¤¯à¤¸à¤¯à¤¸ à¤ªà¤¨à¥\8dनाà¤\95à¥\87à¤\82 à¤¸à¤®à¥\8dपादित à¤\95रबाà¤\95 à¤\85धिà¤\95ार à¤¨à¥\88 à¤\85à¤\9bि, à¤\95ारण à¤\8fहिमà¥\87 à¤¦à¥\8bसर à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dताà¤\95 à¤µà¥\8dयà¤\95à¥\8dतिà¤\97त à¤µà¤¿à¤\95लà¥\8dप à¤\85à¤\9bि।",
+       "customjsprotected": "à¤\85हाà¤\81à¤\95à¥\87 à¤\88 à¤\9cावासà¥\8dà¤\95à¥\8dरिपà¥\8dà¤\9f à¤ªà¤¨à¥\8dनाà¤\95à¥\87à¤\82 à¤¸à¤®à¥\8dपादित à¤\95रबाà¤\95 à¤\85धिà¤\95ार à¤¨à¥\88 à¤\85à¤\9bि, à¤\95ारण à¤\8fहिमà¥\87 à¤¦à¥\8bसर à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dताà¤\95 à¤µà¥\8dयà¤\95à¥\8dतिà¤\97त à¤µà¤¿à¤\95लà¥\8dप à¤\85à¤\9bि।",
        "mycustomcssprotected": "अहाके लेल ई सीएसएस पन्नाके सम्पादित करवाक अधिकार नै अछि।",
        "mycustomjsprotected": "अहके लेल इ जावास्क्रिप्ट पन्नाके सम्पादित करवाक अधिकार नै अछि।",
        "myprivateinfoprotected": "अहाके अपन व्यक्तिगत जानकारी बदलैक अनुमति नै अछि।",
        "userlogin-resetpassword-link": "अपन कूटशब्द बिसरि गेलौ?",
        "userlogin-helplink2": "सम्प्रवेशित करवाकलेल मदत",
        "userlogin-loggedin": "अहाँ {{GENDER:$1|$1}}क रूपमे पहिनेसँ सम्प्रवेशित छी।\nकोनो दोसर सदस्यक रुपमे सम्प्रवेशित करवाक लेल देल गेल फारमके प्रयोग करी।",
+       "userlogin-reauth": "अहाँ {{GENDER:$1|$1}} छी, एहि लेल अहाँक एक बेर आर खातामे प्रवेश करै पडत।",
        "userlogin-createanother": "दोसर खाता बनाबी",
        "createacct-emailrequired": "ई-मेल पता",
        "createacct-emailoptional": "ई-मेल पता (वैकल्पिक)",
        "nocookiesfornew": "प्रयोक्ता खाजा नै खुजल, कारण हम ओकर जडि पूर्ण रूपेँ नै ताकि सकलौ।\nई दृढ करी जे ज्ञापक सक्रिय अछि, ई पन्नाक फेरसँ भारित करी आ फेरसँ प्रयास करी।",
        "noname": "अहाँ वैध प्रयोक्तानाम नै देने छी।",
        "loginsuccesstitle": "सम्प्रवेश भएल",
-       "loginsuccess": "'''अहाँ सम्प्रवेश केलहुँ {{SITENAME}} \"$1\".'''क रूपमे।",
+       "loginsuccess": "<strong>अहाँ सम्प्रवेश केलहुँ {{SITENAME}} \"$1\"'''क रूपमे। </strong>",
        "nosuchuser": "\"$1\" नामसँ कोनो प्रयोक्ता नै अछि।\nप्रयोक्तानाम ब्रह्मक्षर-लघ्वक्षर भेद युक्त अछि।\nअपन ह्रिजै जाँची, वा [[Special:CreateAccount|नव खाता बनाबी]] ।",
-       "nosuchusershort": "\"$1\" à¤¨à¤¾à¤®à¥\8dना कोनो प्रयोक्ता नै अछि।\nअपन हिजए सुधारी।",
+       "nosuchusershort": "\"$1\" à¤¨à¤¾à¤®à¤\95 कोनो प्रयोक्ता नै अछि।\nअपन हिजए सुधारी।",
        "nouserspecified": "अहाँक एकटा प्रयोक्तानाम देबऽ पडत।",
        "login-userblocked": "ई प्रयोक्ता प्रतिबन्धित अछि। सम्प्रवेशक अधिकार नै अछि।",
-       "wrongpassword": "à¤\97लत à¤\95à¥\82à¤\9fशबà¥\8dद à¤¦à¥\87ल à¤\97à¥\87ल।\nफà¥\87रसà¤\81 à¤ªà¥\8dरयास à¤\95रà¥\82।",
-       "wrongpasswordempty": "रिà¤\95à¥\8dत à¤\95à¥\82à¤\9fशबà¥\8dद à¤¦à¥\87ल à¤\97à¥\87ल।\nफà¥\87रसà¤\81 à¤ªà¥\8dरयास à¤\95रà¥\82।",
+       "wrongpassword": "à¤\97लत à¤\95à¥\82à¤\9fशबà¥\8dद à¤¦à¥\87ल à¤\97à¥\87ल।\nफà¥\87रसà¤\81 à¤ªà¥\8dरयास à¤\95रà¥\80।",
+       "wrongpasswordempty": "रिà¤\95à¥\8dत à¤\95à¥\82à¤\9fशबà¥\8dद à¤¦à¥\87ल à¤\97à¥\87ल।\nफà¥\87रसà¤\81 à¤ªà¥\8dरयास à¤\95रà¥\80।",
        "passwordtooshort": "कूटशब्द कमसँ कम {{PLURAL:$1|1 वर्ण|$1 वर्णक}} हुअए।",
-       "passwordtoolong": "कुटशब्द kuttsabda {{PLURAL:$1|1 वर्ण|$1 वर्णों}} से बेसी नम्हर भ्या सकएत अछि।",
+       "passwordtoolong": "कुटशब्द {{PLURAL:$1|1 वर्ण|$1 वर्णसभ}}सँ बेसी नम्हर नै भ सकएत अछि।",
        "passwordtoopopular": "आम पासवर्ड अहाँ नै चुनि सकएत अछि। कृपया अनोखा पासवर्ड चुनी।",
        "password-name-match": "अहाँक कूटशब्द अहाँक प्रयोक्तानामसँ भिन्न हेबाक चाही।",
        "password-login-forbidden": "ऐ प्रयोक्तानाम आ कूटशब्दक प्रयोग प्रतिबन्धित अछि।",
-       "mailmypassword": "नà¥\82तन à¤\95à¥\82à¤\9fशबà¥\8dद à¤\88-पतà¥\8dरसà¤\81 à¤ªà¤ à¤¾à¤\89",
-       "passwordremindertitle": "नव अस्थायी कूटशब्द {{अन्तर्जाल-पता}} लेल।",
-       "passwordremindertext": "कियो (सम्भवतः अहाँ, अनिकेत $1 सँ) एकटा नव कूटशब्दक आग्रह {{अन्तर्जाल}} ($4) लेल केलौं। एकटा अस्थायी कूटशब्द प्रयोक्ता \"$2\" लेल बनाओल गेल अछि आ \"$3\" रूपमे स्थापित कएल गेल अछि। जँ ई अहाँक इच्छा अछि तँ अहाँकेँ सम्प्रवेश करए पड़त आ एकटा नव कूटशब्दक चुनाव करए पड़त। \nअहाँक अस्थायी कूटशब्द खतम भऽ जाएत {{PLURAL:$5|एक दिन|$5 दिन}} मे।",
-       "noemail": "पà¥\8dरयà¥\8bà¤\95à¥\8dता \"$1\" à¤²à¥\87ल à¤\95à¥\8bनà¥\8b à¤\88-पतà¥\8dर à¤¸à¤\82केत दर्ज नै अछि।",
-       "noemailcreate": "अहाँकेँ एकटा मान्य ई-पत्र संकेत देबऽ पड़त।",
-       "passwordsent": "à¤\8fà¤\95à¤\9fा à¤¨à¤µ à¤\95à¥\82à¤\9fशबà¥\8dद \"$1\" à¤²à¥\87ल à¤ªà¤\82à¤\9cà¥\80à¤\95à¥\83त à¤\88-पतà¥\8dर à¤¸à¤\82à¤\95à¥\87तपर à¤ªà¤ à¤¾à¤\8fल à¤\97à¥\87ल à¤\85à¤\9bि।\nà¤\9cà¤\96न à¤\85हाà¤\81à¤\95à¥\87à¤\81 à¤\88 à¤­à¥\87à¤\9fà¥\88à¤\8f à¤¤à¤\81 à¤«à¥\87रसà¤\81 à¤¸à¤®à¥\8dपà¥\8dरवà¥\87श à¤\95रà¥\82।",
+       "mailmypassword": "नà¥\82तन à¤\95à¥\82à¤\9fशबà¥\8dद à¤\88-पतà¥\8dरसà¤\81 à¤ªà¤ à¤¾à¤¬à¥\80",
+       "passwordremindertitle": "{{SITENAME}}क लेल नव अस्थायी कूटशब्द",
+       "passwordremindertext": "कियो (सम्भवतः अहाँ, अनिकेत $1 सँ) एकटा नव कूटशब्दक आग्रह {{SITENAME}} ($4) केनए अछि। एकटा अस्थायी कूटशब्द प्रयोक्ता \"$2\" लेल बनाओल गेल अछि आ \"$3\" रूपमे स्थापित कएल गेल अछि। जँ ई अहाँक इच्छा अछि तँ अहाँक सम्प्रवेश करए पडत आ एकटा नव कूटशब्दक चुनाव करए पडत। \nअहाँक अस्थायी कूटशब्द खतम भऽ जाएत {{PLURAL:$5|एक दिन|$5 दिन}} मे।",
+       "noemail": "पà¥\8dरयà¥\8bà¤\95à¥\8dता \"$1\" à¤²à¥\87ल à¤\95à¥\8bनà¥\8b à¤\88-पतà¥\8dर à¤¸à¤\99à¥\8dकेत दर्ज नै अछि।",
+       "noemailcreate": "अहाँक एकटा मान्य ई-पत्र सङ्केत देबऽ पडत।",
+       "passwordsent": "à¤\8fà¤\95à¤\9fा à¤¨à¤µ à¤\95à¥\82à¤\9fशबà¥\8dद \"$1\" à¤²à¥\87ल à¤ªà¤\9eà¥\8dà¤\9cà¤\9cà¥\80à¤\95à¥\83त à¤\88-पतà¥\8dर à¤¸à¤\99à¥\8dà¤\95à¥\87तपर à¤ªà¤ à¤¾à¤\8fल à¤\97à¥\87ल à¤\85à¤\9bि।\nà¤\9cà¤\96न à¤\85हाà¤\81à¤\95 à¤\88 à¤­à¥\87à¤\9fà¥\88à¤\8f à¤¤à¤\81 à¤«à¥\87रसà¤\81 à¤¸à¤®à¥\8dपà¥\8dरवà¥\87श à¤\95रà¥\80।",
        "blocked-mailpassword": "अहाँक अनिकेत सम्पादन लेल प्रतिबन्धित अछि, आ दुरुपयोग रोकबा लेल कुटशब्द प्रत्याहरण सेवा ई लेल उपलब्ध नै अछि।",
        "eauthentsent": "एकटा पावती ई-पत्र निर्धारित ई-पत्र संकेतपर पठा देल गेल अछि।\nऐ खातापर कोनो दोसर ई-पत्र पठाएल जएबासँ पहिने, अहाँकेँ ऐ ई-पत्रक निर्देशक पालन करए पड़त, जइसँ ई पुष्ट भऽ सकए जे ई खाता वास्तवमे अहींक अछि।",
        "throttled-mailpassword": "एकटा कूटशब्द स्मारक पहिनहिये पठाएल गेल अछि, {{PLURAL:$1|घण्टा|$1 घण्टा}}क भीतर।\nदुरुपयोग रोकबा लेल, मात्र एकटा कूटशब्द {{PLURAL:$1|घण्टा|$1 घण्टा}}मे पठाएल जाएत।",
        "mailerror": "ई-पत्र पठेबामे त्रुटी: $1",
        "acct_creation_throttle_hit": "अहाँके आइ॰पि. पतासँ आएल आगंतुक चौबीस घण्टा सँ बैसी ई विकिमे {{PLURAL:$1|एक खाता|$1 खाता}} बनौलक अछि, इ समयावधिमे ई अधिकतम सिमा छी। अतः अखन ई आइ॰पि. पताके प्रयोग करए वाला आगंतुक आर कोनो खाता नै खोइल सकएत अछि ।",
-       "emailauthenticated": "à¤\85हाà¤\81à¤\95 à¤\88-पतà¥\8dर à¤¸à¤\82à¤\95à¥\87त $2 à¤\95à¥\87à¤\81 $3 बजे सत्यापित भेल।",
-       "emailnotauthenticated": "à¤\85हाà¤\81à¤\95 à¤\88-पतà¥\8dर à¤¸à¤\82à¤\95à¥\87त à¤\85à¤\96न à¤§à¤°à¤¿ à¤¸à¤¤à¥\8dयापित à¤¨à¥\88 à¤­à¥\87ल à¤\85à¤\9bि।\nनिà¤\9aा à¤¦à¥\87ल à¤\97à¥\87ल à¤\95à¥\8bनà¥\8b à¤¸à¥\81विधा à¤\95à¥\87 à¤²à¥\87ल à¤\85हाà¤\81à¤\95à¥\87 ई-पत्र नै भेजल जाएत।",
-       "noemailprefs": "à¤\87 à¤¸à¥\81विधा à¤¸à¤­ à¤\95ऽ à¤ªà¥\8dरयà¥\8bà¤\97 à¤\95रà¤\8f à¤\95à¥\87 à¤²à¥\87ल à¤\85पन à¤µà¤¿à¤\95लà¥\8dपमà¥\87 à¤\88-पतà¥\8dर à¤ªà¤¤à¤¾ à¤°à¤¾à¤\96à¥\81।",
-       "emailconfirmlink": "à¤\85पन à¤\88-पतà¥\8dर à¤¸à¤\82à¤\95à¥\87त à¤¸à¤¤à¥\8dयापित à¤\95रà¥\81",
-       "invalidemailaddress": "à¤\85मानà¥\8dय à¤ªà¥\8dरारà¥\82पà¤\95 à¤\95ारण à¤\90 à¤\88-पतà¥\8dर à¤¸à¤\82à¤\95à¥\87तà¤\95à¥\87à¤\81 à¤¸à¥\8dवà¥\80à¤\95ार à¤¨à¥\88 à¤\95à¤\8fल à¤\9cा à¤¸à¤\95à¥\88à¤\8f।\nà¤\8fà¤\95à¤\9fा à¤®à¤¾à¤¨à¥\8dय à¤\88-पतà¥\8dर à¤¸à¤\82à¤\95à¥\87त à¤²à¤¿à¤\96à¥\82 à¤µà¤¾ à¤\93à¤\87 à¤¸à¥\8dथानà¤\95à¥\87à¤\81 à¤\96ालà¥\80 à¤\95रà¥\81।",
-       "cannotchangeemail": "à¤\96ाता à¤\88-पतà¥\8dर à¤¸à¤\82केत ऐ विकिपर बदलल नै जा सकैए।",
+       "emailauthenticated": "à¤\85हाà¤\81à¤\95 à¤\88-पतà¥\8dर à¤¸à¤\99à¥\8dà¤\95à¥\87त $2 à¤\95 $3 बजे सत्यापित भेल।",
+       "emailnotauthenticated": "à¤\85हाà¤\81à¤\95 à¤\88-पतà¥\8dर à¤¸à¤\99à¥\8dà¤\95à¥\87त à¤\85à¤\96न à¤§à¤°à¤¿ à¤¸à¤¤à¥\8dयापित à¤¨à¥\88 à¤­à¥\87ल à¤\85à¤\9bि।\nनिà¤\9aा à¤¦à¥\87ल à¤\97à¥\87ल à¤\95à¥\8bनà¥\8b à¤¸à¥\81विधाà¤\95 à¤²à¥\87ल à¤\85हाà¤\81à¤\95 ई-पत्र नै भेजल जाएत।",
+       "noemailprefs": "à¤\88 à¤¸à¥\81विधा à¤¸à¤­ à¤\95ऽ à¤ªà¥\8dरयà¥\8bà¤\97 à¤\95रà¤\8fà¤\95 à¤²à¥\87ल à¤\85पन à¤µà¤¿à¤\95लà¥\8dपमà¥\87 à¤\88-पतà¥\8dर à¤ªà¤¤à¤¾ à¤°à¤¾à¤\96à¥\80।",
+       "emailconfirmlink": "à¤\85पन à¤\88-पतà¥\8dर à¤¸à¤\99à¥\8dà¤\95à¥\87त à¤¸à¤¤à¥\8dयापित à¤\95रà¥\80",
+       "invalidemailaddress": "à¤\85मानà¥\8dय à¤ªà¥\8dरारà¥\82पà¤\95 à¤\95ारण à¤\90 à¤\88-पतà¥\8dर à¤¸à¤\99à¥\8dà¤\95à¥\87तà¤\95 à¤¸à¥\8dवà¥\80à¤\95ार à¤¨à¥\88 à¤\95à¤\8fल à¤\9cा à¤¸à¤\95à¥\88à¤\8f।\nà¤\8fà¤\95à¤\9fा à¤®à¤¾à¤¨à¥\8dय à¤\88-पतà¥\8dर à¤¸à¤\99à¥\8dà¤\95à¥\87त à¤²à¤¿à¤\96à¥\80 à¤µà¤¾ à¤\93à¤\87 à¤¸à¥\8dथानà¤\95à¥\87 à¤\96ालà¥\80 à¤\95रà¥\80।",
+       "cannotchangeemail": "à¤\96ाता à¤\88-पतà¥\8dर à¤¸à¤\99à¥\8dकेत ऐ विकिपर बदलल नै जा सकैए।",
        "emaildisabled": "ई अन्तर्जाल ई-पत्र नै पठाएत।",
        "accountcreated": "खाता खुजि गेल",
        "accountcreatedtext": "[[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|वार्ता]]) के लेल खाता खोलल गेल अछि।",
        "createaccount-title": "{{SITENAME}}क लेल खाता बनाबी",
-       "createaccount-text": "à¤\95ियà¥\8b à¤\85हाà¤\81à¤\95 à¤\88-पतà¥\8dर à¤¸à¤\82à¤\95à¥\87त à¤²à¥\87ल à¤\8fà¤\95à¤\9fा à¤\96ाता {{à¤\85नà¥\8dतरà¥\8dà¤\9cाल}} à¤ªà¤° à¤\96à¥\8bललनà¥\8dहि ($4) à¤¨à¤¾à¤® à¤­à¥\87ल \"$2\", à¤\95à¥\82à¤\9fशबà¥\8dद à¤­à¥\87ल \"$3\"।\nà¤\85हाà¤\81 à¤¸à¤®à¥\8dपà¥\8dरवà¥\87श à¤\95रà¥\82 à¤\86 à¤\85पन à¤\95à¥\82à¤\9fशबà¥\8dद à¤¬à¤¦à¤²à¥\82।\n\nà¤\85हाà¤\81 à¤\90 à¤¸à¤\82दà¥\87शà¤\95à¥\87à¤\81 बिसरि सकै छी, जँ ई खाता भ्रमवश बनल हुअए।",
+       "createaccount-text": "à¤\95ियà¥\8b à¤\85हाà¤\81à¤\95 à¤\88-पतà¥\8dर à¤¸à¤\99à¥\8dà¤\95à¥\87त à¤²à¥\87ल à¤\8fà¤\95à¤\9fा à¤\96ाता {{SITENAME}} à¤ªà¤° à¤\96à¥\8bललनà¥\8dहि ($4) à¤¨à¤¾à¤® à¤­à¥\87ल \"$2\", à¤\95à¥\82à¤\9fशबà¥\8dद à¤­à¥\87ल \"$3\"।\nà¤\85हाà¤\81 à¤¸à¤®à¥\8dपà¥\8dरवà¥\87श à¤\95रà¥\80 à¤\86 à¤\85पन à¤\95à¥\82à¤\9fशबà¥\8dद à¤¬à¤¦à¤²à¥\80।\n\nà¤\85हाà¤\81 à¤\88 à¤¸à¤¨à¥\8dदà¥\87शà¤\95à¥\87 बिसरि सकै छी, जँ ई खाता भ्रमवश बनल हुअए।",
        "login-throttled": "अहाँ ढ़ेर रास सम्प्रवेश प्रयास केलहुँ।\nफेर प्रयास करबासँ पहिने कने काल थम्हू।",
        "login-abort-generic": "अहाँक सम्प्रवेश सफल नै भेल- रोकल गएल",
        "login-migrated-generic": "अहाँके खाता माइग्रेट कएल गेल अछि, आर अहाँके प्रयोक्ता नाम आब ई विकिमे नै अछि।",
        "php-mail-error-unknown": "पी.एच.पी.कऽ समाद कार्य() मे अज्ञात दोष भेल।",
        "user-mail-no-addy": "बिन ई-पत्र संकेतक ई-पत्र पठेबाक प्रयास कएल गेल।",
        "user-mail-no-body": "एकटा खाली वा बहुत कनिका ई-पत्र भेजवाक प्रयास कल गेल।",
-       "changepassword": "à¤\95à¥\82à¤\9fशबà¥\8dद à¤¬à¤¦à¤²à¥\82",
-       "resetpass_announce": "समà¥\8dपà¥\8dरवà¥\87श à¤¸à¤®à¥\8dपà¥\82रà¥\8dण à¤\95रबा à¤²à¥\87ल, à¤\85हाà¤\81 à¤\8fà¤\95à¤\9fा à¤¨à¤µ à¤\95à¥\82à¤\9fशबà¥\8dद à¤\8fतà¤\8f à¤¨à¤¿à¤°à¥\8dधारित à¤\95रà¥\81।",
+       "changepassword": "à¤\95à¥\82à¤\9fशबà¥\8dद à¤¬à¤¦à¤²à¥\80",
+       "resetpass_announce": "समà¥\8dपà¥\8dरवà¥\87श à¤¸à¤®à¥\8dपà¥\82रà¥\8dण à¤\95रबा à¤²à¥\87ल, à¤\85हाà¤\81 à¤\8fà¤\95à¤\9fा à¤¨à¤µ à¤\95à¥\82à¤\9fशबà¥\8dद à¤\8fतà¤\8f à¤¨à¤¿à¤°à¥\8dधारित à¤\95रà¥\80।",
        "resetpass_text": "<!-- पाठ एतऽ लिखू -->",
-       "resetpass_header": "à¤\96ाता à¤\95à¥\82à¤\9fशबà¥\8dद à¤¬à¤¦à¤²à¥\82",
-       "oldpassword": "पुरान कूटशब्द",
-       "newpassword": "नव कूटशब्द",
-       "retypenew": "नव à¤\95à¥\82à¤\9fशबà¥\8dद à¤«à¥\87रसà¤\81 à¤\9fà¤\82à¤\95ित à¤\95रà¥\82",
-       "resetpass_submit": "à¤\95à¥\82à¤\9fशबà¥\8dद à¤¬à¤¨à¤¾à¤\89 à¤\86 à¤¸à¤®à¥\8dपà¥\8dरवà¥\87श à¤\95रà¥\82",
-       "changepassword-success": "à¤\85हाà¤\81à¤\95 à¤ªà¤¾à¤¸à¤µà¤°à¥\8dड सफलतासँ बदलि देल गेल!",
-       "changepassword-throttled": "à¤\85हाà¤\81 à¤¢à¤¼à¥\87र à¤°à¤¾à¤¸ à¤¸à¤®à¥\8dपà¥\8dरवà¥\87श à¤ªà¥\8dरयास à¤\95à¥\87लहà¥\81à¤\81।\nफà¥\87र à¤ªà¥\8dरयास $1 à¤\95रबासà¤\81 à¤ªà¤¹à¤¿à¤¨à¥\87 à¤\95नà¥\87 à¤\95ाल à¤¥à¤®à¥\8dहà¥\82।",
+       "resetpass_header": "à¤\96ाता à¤\95à¥\82à¤\9fशबà¥\8dद à¤¬à¤¦à¤²à¥\80",
+       "oldpassword": "पुरान कूटशब्द:",
+       "newpassword": "नव कूटशब्द:",
+       "retypenew": "नव à¤\95à¥\82à¤\9fशबà¥\8dद à¤«à¥\87रसà¤\81 à¤²à¤¿à¤\96à¥\80:",
+       "resetpass_submit": "à¤\95à¥\82à¤\9fशबà¥\8dद à¤¬à¤¨à¤¾à¤¬à¥\80 à¤\86 à¤¸à¤®à¥\8dपà¥\8dरवà¥\87श à¤\95रà¥\80",
+       "changepassword-success": "à¤\85हाà¤\81à¤\95 à¤\95à¥\82à¤\9fशबà¥\8dद सफलतासँ बदलि देल गेल!",
+       "changepassword-throttled": "अहाँ ढेर रास सम्प्रवेश प्रयास केलहुँ।\nफेर प्रयास $1 करबासँ पहिने कने काल थम्हू।",
        "botpasswords": "बोट पासवर्ड",
        "botpasswords-disabled": "बोट पासवर्ड अखन निष्क्रिय अछि।",
        "botpasswords-no-central-id": "बोट पासवर्डक उपयोग करएक लेल अहाँक मुख्य खातासँ प्रवेश करै पडत।",
        "botpasswords-label-delete": "मेटाबी",
        "botpasswords-label-resetpassword": "पासवर्ड पुनः तय करी",
        "botpasswords-label-grants": "अनुदान आवेदन:",
+       "botpasswords-label-grants-column": "प्रदान कएल",
+       "botpasswords-bad-appid": "बोट नाम \"$1\" मान्य नै अछि।",
        "resetpass_forbidden": "कूटशब्द नै बदलल जा सकैए।",
        "resetpass-no-info": "अहाँकेँ ऐ पन्नाकेँ सोझे प्रयोग करबालेल सम्प्रवेशित हुअए पड़त।",
        "resetpass-submit-loggedin": "कूटशब्द बदली",
        "resetpass-submit-cancel": "रद्द करी",
        "resetpass-wrong-oldpass": "अमान्य अस्थायी वा अखुनका कूटशब्द।\nअहाँ पहिनहिये सफलतासँ कूटशब्द बदलि लेने छी वा एकटा नव अस्थायी कूटशब्द लेल आग्रह केने छी।",
-       "resetpass-recycled": "रà¥\80सà¥\87à¤\9f à¤\95रà¤\8fà¤\95à¥\87 à¤²à¥\87ल à¤¨à¤¯à¤¾à¤\81 à¤\95à¥\82à¤\9fशबà¥\8dदमà¥\87 à¤\95à¥\83पया à¤\85पन à¤µà¤°à¥\8dतमान à¤\95à¥\82à¤\9fशबà¥\8dद à¤¨à¥\88 à¤¦ à¤\95à¥\87 à¤¨à¤¯à¤¾à¤\81 à¤\95à¥\82à¤\9fशबà¥\8dद à¤¦à¥\87ल à¤\9cाà¤\89।",
+       "resetpass-recycled": "रिसà¥\87à¤\9f à¤\95रà¥\88à¤\95 à¤²à¥\87ल à¤¨à¤¯à¤¾à¤\81 à¤\95à¥\82à¤\9fशबà¥\8dदमà¥\87 à¤\95à¥\83पया à¤\85पन à¤µà¤°à¥\8dतमान à¤\95à¥\82à¤\9fशबà¥\8dद à¤¨à¥\88 à¤¦ à¤¨à¤¯à¤¾à¤\81 à¤\95à¥\82à¤\9fशबà¥\8dद à¤¦à¥\87ल à¤\9cाà¤\8f।",
        "resetpass-temp-emailed": "अहाँ अखन एकटा अस्थायी ई-पत्र कोड सँ सम्प्रवेशित केनए छी। सम्प्रवेश पूर्ण करए के लेल अहाँ के एतए नयाँ कूटशब्द राखए पडत:",
        "resetpass-temp-password": "तात्कालिक कूटशब्द:",
        "resetpass-abort-generic": "कूटशब्दमे बदलाव कोनो एक्सटेंशनद्वारा रोकल गएल अछि।",
        "resetpass-expired": "अहाँके कूटशब्दक वैधता अवधि खत्तम भऽ गेल अछि । कृपया सम्प्रवेशित करवाक लेल नयाँ कूटशब्द राखु।",
-       "resetpass-expired-soft": "अहाँके कूटशब्दकऽ वैधता अवधि समाप्त भऽ गेल आर कूटशब्द परिवार्तान करवाक आवश्यकता अछि। कृपया एगो नव कूटशब्द राखु, वा पाछु रिसेट करवाक लेल \"{{int:resetpass-submit-cancel}}\" क्लिक करु।",
-       "resetpass-validity-soft": "à¤\85हाà¤\81à¤\95à¥\87 à¤\95à¥\82à¤\9fशबà¥\8dद à¤®à¤¾à¤¨à¥\8dय à¤¨à¥\88 à¤\85à¤\9bि: $1 \n\nà¤\95à¥\83पया à¤\86ब à¤\8fà¤\97à¥\8b à¤¨à¤µ à¤\95à¥\82à¤\9fशबà¥\8dद à¤\9aà¥\81नà¥\81, à¤µà¤¾ à¤ªà¤¾à¤\9bà¥\81 à¤ªà¥\81नरà¥\8dसà¥\8dथापित à¤\95रà¤\8f à¤\95à¥\87 à¤²à¥\87ल \"{{int:resetpass-submit-cancel}}\" à¤®à¥\87à¤\82 à¤\95à¥\8dलिà¤\95 à¤\95रà¥\82।",
-       "passwordreset": "à¤\95à¥\82à¤\9fशबà¥\8dद à¤«à¥\87रसà¤\81 à¤¬à¤¨à¤¾à¤\89",
-       "passwordreset-text-one": "à¤\85पन à¤\95à¥\82à¤\9fशबà¥\8dद à¤°à¥\80सà¥\87à¤\9f à¤\95रवाà¤\95 à¤²à¥\87ल à¤\87 à¤«à¤¾à¤°à¤® à¤­à¤°à¥\81 ।",
-       "passwordreset-text-many": "{{PLURAL:$1|à¤\88-पतà¥\8dरà¤\95à¥\87 à¤®à¤¾à¤§à¥\8dयमसऽ à¤\8fà¤\95à¤\9fा à¤\85सà¥\8dथायà¥\80 à¤\95à¥\82à¤\9fशबà¥\8dद à¤ªà¤¾à¤µà¥\88लà¥\87ल à¤\95à¥\8bनà¥\8b à¤\8fà¤\95à¤\9fा à¤¡à¤¿à¤¬à¥\8dबा à¤­à¤°à¥\81 ।}}",
+       "resetpass-expired-soft": "अहाँक कूटशब्द कऽ वैधता अवधि समाप्त भऽ गेल आर कूटशब्द परिवार्तन करवाक आवश्यकता अछि। कृपया एगो नव कूटशब्द राखी, वा पाछा रिसेट करवाक लेल \"{{int:authprovider-resetpass-skip-label}}\" क्लिक करी।",
+       "resetpass-validity-soft": "à¤\85हाà¤\81à¤\95à¥\87 à¤\95à¥\82à¤\9fशबà¥\8dद à¤®à¤¾à¤¨à¥\8dय à¤¨à¥\88 à¤\85à¤\9bि: $1 \n\nà¤\95à¥\83पया à¤\86ब à¤\8fà¤\97à¥\8b à¤¨à¤µ à¤\95à¥\82à¤\9fशबà¥\8dद à¤\9aà¥\81नà¥\80, à¤µà¤¾ à¤ªà¤¾à¤\9b à¤ªà¥\81नरà¥\8dसà¥\8dथापित à¤\95रà¤\8fà¤\95 à¤²à¥\87ल \"{{int:authprovider-resetpass-skip-label}}\" à¤\95à¥\8dलिà¤\95 à¤\95रà¥\80।",
+       "passwordreset": "à¤\95à¥\82à¤\9fशबà¥\8dद à¤«à¥\87रसà¤\81 à¤¬à¤¨à¤¾à¤¬à¥\80",
+       "passwordreset-text-one": "à¤\85पन à¤\95à¥\82à¤\9fशबà¥\8dद à¤°à¥\80सà¥\87à¤\9f à¤\95रवाà¤\95 à¤²à¥\87ल à¤\87 à¤«à¤¾à¤°à¤® à¤­à¤°à¥\80।",
+       "passwordreset-text-many": "{{PLURAL:$1|à¤\88-पतà¥\8dरà¤\95à¥\87 à¤®à¤¾à¤§à¥\8dयमसऽ à¤\8fà¤\95à¤\9fा à¤\85सà¥\8dथायà¥\80 à¤\95à¥\82à¤\9fशबà¥\8dद à¤ªà¤¾à¤µà¥\88लà¥\87ल à¤\95à¥\8bनà¥\8b à¤\8fà¤\95à¤\9fा à¤¡à¤¿à¤¬à¥\8dबा à¤­à¤°à¥\80।}}",
        "passwordreset-disabled": "कूटशब्द फेरसँ बनाएब ऐ विकीपर अक्षम कएल अछि।",
        "passwordreset-emaildisabled": "कूटशब्द फेरसँ बनाएब ऐ विकीपर अक्षम कएल अछि।",
-       "passwordreset-username": "प्रयोक्तानाम",
+       "passwordreset-username": "प्रयोक्तानाम:",
        "passwordreset-domain": "क्षेत्र:",
-       "passwordreset-capture": "परिणाम à¤\88-पतà¥\8dर à¤¦à¥\87à¤\96à¥\82?",
-       "passwordreset-capture-help": "à¤\9cà¤\81 à¤\85हाà¤\81 à¤\90 à¤¬à¤\95à¥\8dशाà¤\95à¥\87à¤\81 à¤¦à¥\87à¤\96à¥\88 à¤\9bà¥\80, à¤\88-पतà¥\8dर (तातà¥\8dà¤\95ालिà¤\95 à¤\95à¥\82à¤\9fशबà¥\8dदà¤\95 संग) अहाँकेँ देखाएल जाएत आ संगे प्रयोक्ताकेँ पठाएल जाएत।",
-       "passwordreset-email": "à¤\88-पतà¥\8dर à¤¸à¤\82à¤\95à¥\87त",
-       "passwordreset-emailtitle": "लेखा विवरण {{अन्तर्जालक नाम}}",
-       "passwordreset-emailtext-ip": "कियो (सम्भवतः अहाँ, अन्तर्जाल सेवा कल्पक $1 सँ) अपन लेखा विवरणक पुनःस्मरणक लेल अनुरोध केलहुँ ऐ लेल {{ अन्तर्जालक नाम}} ($4). ई प्रयोक्ता {{PLURAL:$3|लेखा अछि| लेखा सभ अछि}}\nऐ ई-पत्र संकेतसँ सम्बन्धित:\n\n$2\n\n{{PLURAL:$3|ई अल्पकालक कूटशब्द| ई सभ अल्पकालक कूटशब्द}} खतम भऽ जाएत {{PLURAL:$5|एक दिन|$5 पाँच दिन}}.\nअहाँ सम्प्रवेश करू आ एकटा नव कूटशब्द चुनू।. जौं कियो आन ई आग्रह केने अछि, वा अहाँकेँ अपन पुरान कूटशब्द मोन पड़ि गेल अछि , आ आब एकरा बदलबाक इच्छा नै राखै छी तँ अहाँ ऐ संदेशकेँ बिसरि जाउ आ अपन पुरान कूटशब्दक प्रयोग करैत रहू।",
+       "passwordreset-capture": "परिणाम à¤\88-पतà¥\8dर à¤¦à¥\87à¤\96à¥\80?",
+       "passwordreset-capture-help": "à¤\9cà¤\81 à¤\85हाà¤\81 à¤\88 à¤¬à¤\95à¥\8dशाà¤\95à¥\87à¤\81 à¤¦à¥\87à¤\96à¥\88 à¤\9bà¥\80, à¤\88-पतà¥\8dर (तातà¥\8dà¤\95ालिà¤\95 à¤\95à¥\82à¤\9fशबà¥\8dदà¤\95संग) अहाँकेँ देखाएल जाएत आ संगे प्रयोक्ताकेँ पठाएल जाएत।",
+       "passwordreset-email": "à¤\88-पतà¥\8dर à¤¸à¤\99à¥\8dà¤\95à¥\87त:",
+       "passwordreset-emailtitle": "{{SITENAME}} पर खाता विवरण",
+       "passwordreset-emailtext-ip": "कियो (सम्भवतः अहाँ, अन्तर्जाल सेवा कल्पक $1 सँ) अपन लेखा विवरणक पुनःस्मरणक लेल अनुरोध केलहुँ ऐ लेल {{SITENAME}} ($4). ई प्रयोक्ता {{PLURAL:$3|लेखा अछि|लेखा सभ अछि}}\nऐ ई-पत्र संकेतसँ सम्बन्धित:\n\n$2\n\n{{PLURAL:$3|ई अल्पकालक कूटशब्द| ई सभ अल्पकालक कूटशब्द}} खतम भऽ जाएत {{PLURAL:$5|एक दिन|$5 पाँच दिन}}.\nअहाँ सम्प्रवेश करू आ एकटा नव कूटशब्द चुनू।. जौं कियो आन ई आग्रह केने अछि, वा अहाँकेँ अपन पुरान कूटशब्द मोन पड़ि गेल अछि , आ आब एकरा बदलबाक इच्छा नै राखै छी तँ अहाँ ऐ संदेशकेँ बिसरि जाउ आ अपन पुरान कूटशब्दक प्रयोग करैत रहू।",
        "passwordreset-emailtext-user": "प्रयोक्ता $1 {{अन्तर्जाल}} पर अहाँक खाता विवरणक {{SITENAME}} लेल फेरसँ ($4) आग्रह केने छथि। ई प्रयोक्ता {{PLURAL:$3|खाता अछि|खाता सभ अछि}} ऐ ई-पत्र संकेतसँ जुड़ल: $2\n{{PLURAL:$3| ई अस्थायी कूटशब्द|ई सभ अस्थायी कूटशब्द}} खतम भऽ जाएत {{PLURAL:$5|एक दिन|$5 दिन}} मे।\nअहाँ सम्प्रवेश करू आ एकटा नव कूटशब्द आब चुनू। जँ कियो दोसर ई आग्रह केने छथि, वा जँ अहाँकेँ अपन मूल कूटशब्द मोन पड़ि गेल अछि, आ अहाँ आब ओइ कूटशब्दकेँ नै बदलऽ चाहै छी, अहाँ ऐ संदेशकेँ बिसरि सकै छी आ अपन पुरान कूटशब्दक प्रयोग जारी राखि सकै छी।",
        "passwordreset-emailelement": "प्रयोक्ता: \n$1\n\nअस्थायी कूटशब्द: \n$2",
        "passwordreset-emailsentemail": "एकटा ई-पत्र मोन पाड़बा लेल पठाओल गेल अछि।",
        "passwordreset-emailerror-capture": "एकटा स्मरण ई-पत्र बनाएल गेल अछि, जे नीचाँ देखाएल अछि, मुदा प्र्योक्ताकेँ एकरा पठेबाक प्रयास विफल भेल: $1",
        "changeemail": "ई-मेल पता परिवर्तित करी",
        "changeemail-header": "अपन ईमेल पता परिवर्तन हेतु एकरा पुरा करी। यदि अहाँ अपन वर्तमान ईमेल पता हटाबैलेल चाहैत छी, तँ एकरा खाली छोडि दी आ एकरा भेजी।",
-       "changeemail-no-info": "अहाँकेँ ऐ पन्नाकेँ सोझे देखबाले सम्प्रवेशित हुअए पड़त।",
-       "changeemail-oldemail": "à¤\85à¤\96à¥\81नà¤\95ा à¤\88-पतà¥\8dर à¤¸à¤\82à¤\95à¥\87त:",
-       "changeemail-newemail": "नव à¤\88-पतà¥\8dर à¤¸à¤\82à¤\95à¥\87त:",
+       "changeemail-no-info": "अहाँक ई पन्नाक सोझे प्रयोग करबालेल सम्प्रवेशित हुअए पडत।",
+       "changeemail-oldemail": "वरà¥\8dतमान à¤\88-मà¥\87ल à¤ªà¤¤à¤¾:",
+       "changeemail-newemail": "नव à¤\88-मà¥\87ल à¤ªà¤¤à¤¾:",
        "changeemail-none": "(कोनो नै)",
        "changeemail-password": "अहाँक {{SITENAME}} कूटशब्द:",
        "changeemail-submit": "ई-मेल बदली",
        "resettokens-token-label": "$1 (वर्तमान मूल्य: $2)",
        "resettokens-watchlist-token": "[[Special:Watchlist|अहाँके साकांक्षसूची के पृष्ठसभ में परिवर्तन सभ]] के वेब फिट (Atom/RSS) लेल स्तोक",
        "resettokens-done": "टोकन रीसेट भेल अछि।",
-       "resettokens-resetbutton": "à¤\9bानल à¤\9fà¥\8bà¤\95न à¤°à¥\80सà¥\87à¤\9f à¤\95रà¥\81",
-       "bold_sample": "à¤\97à¤\81हà¥\80र à¤²à¥\87à¤\96न",
-       "bold_tip": "à¤\97à¤\81हà¥\80र à¤²à¥\87à¤\96न",
+       "resettokens-resetbutton": "à¤\9aà¥\81नल à¤\9fà¥\8bà¤\95न à¤°à¥\80सà¥\87à¤\9f à¤\95रà¥\80",
+       "bold_sample": "मà¥\8bà¤\9f à¤ªà¤¾à¤ ",
+       "bold_tip": "मà¥\8bà¤\9f à¤ªà¤¾à¤ ",
        "italic_sample": "कटि लेखन",
-       "italic_tip": "à¤\95़à¤\9fि à¤²à¥\87à¤\96न",
-       "link_sample": "लिà¤\82à¤\95 à¤\89पाधि",
-       "link_tip": "à¤\85à¤\82तरà¤\82à¤\97 à¤\87शारा",
-       "extlink_sample": "http://www.example.com à¤²à¤¿à¤\82à¤\95 à¤\89पाधि",
-       "extlink_tip": "बहरà¥\80 à¤²à¤¿à¤\82à¤\95 (यादि à¤°à¤¾à¤\96à¥\82 http:// उपसर्ग)",
-       "headline_sample": "मà¥\81à¤\96à¥\8dयपà¤\82à¤\95à¥\8dति à¤²à¥\87à¤\96न",
-       "headline_tip": "सà¥\8dतर 2 à¤®à¥\81à¤\96à¥\8dयपà¤\82à¤\95à¥\8dति",
-       "nowiki_sample": "फà¥\89रà¥\8dमà¥\87à¤\9f à¤µà¤¿à¤¹à¥\80न à¤²à¥\87à¤\96 à¤\8fतय",
-       "nowiki_tip": "विà¤\95à¥\80 à¤«à¥\89रमà¥\87à¤\9fिà¤\82à¤\97à¤\95à¥\87à¤\81 à¤\9bà¥\8bड़à¥\82",
+       "italic_tip": "कटि लेखन",
+       "link_sample": "लिà¤\99à¥\8dà¤\95 à¤¶à¥\80रà¥\8dषà¤\95",
+       "link_tip": "à¤\86नà¥\8dतरिà¤\95 à¤²à¤¿à¤\99à¥\8dà¤\95",
+       "extlink_sample": "http://www.example.com à¤²à¤¿à¤\99à¥\8dà¤\95 à¤¶à¥\80रà¥\8dषà¤\95",
+       "extlink_tip": "बाहà¥\8dय à¤²à¤¿à¤\99à¥\8dà¤\95 (यादि à¤°à¤¾à¤\96à¥\80 http:// उपसर्ग)",
+       "headline_sample": "शà¥\80रà¥\8dषà¤\95 à¤ªà¤¾à¤ ",
+       "headline_tip": "दà¥\8dवितà¥\80य-सà¥\8dतर à¤¶à¥\80रà¥\8dषà¤\95",
+       "nowiki_sample": "à¤\85पà¥\8dरारà¥\82पित à¤ªà¤¾à¤  à¤\8fतय à¤°à¤¾à¤\96à¥\80",
+       "nowiki_tip": "विà¤\95à¥\80 à¤ªà¥\8dरारà¥\82पण à¤¨à¤\9cरà¤\85नà¥\8dदाà¤\9c à¤\95रà¥\80",
        "image_sample": "उदाहरण.jpg",
        "image_tip": "समाहित चित्र",
        "media_sample": "उदाहरण.ogg",
-       "media_tip": "मà¥\80डिया à¤«à¤¾à¤\87ल à¤²à¤¿à¤\82क",
-       "sig_tip": "अहाँक हस्ताक्षर समयक मोहरक संग",
+       "media_tip": "मिडिया à¤«à¤¾à¤\87ल à¤²à¤¿à¤\99à¥\8dक",
+       "sig_tip": "अहाँक हस्ताक्षर समयक मोहरकसंग",
        "hr_tip": "अक्षांशीय पंक्ति (अल्प उपयोग)",
        "summary": "सारांश:",
        "subject": "विषय:",
-       "minoredit": "à¤\85लà¥\8dप à¤¸à¤\82पादन",
-       "watchthis": "à¤\8fहि à¤ªà¥\83षà¥\8dठà¤\95à¥\87à¤\81 à¤¦à¥\87à¤\96à¥\82",
-       "savearticle": "पनà¥\8dनाà¤\95 à¤°à¤\95à¥\8dषण à¤\95रà¥\82",
+       "minoredit": "à¤\85लà¥\8dप à¤¸à¤®à¥\8dपादन",
+       "watchthis": "à¤\88 à¤ªà¥\83षà¥\8dठà¤\95à¥\87 à¤§à¥\8dयानसà¥\82à¤\9aà¥\80मà¥\87 à¤°à¤¾à¤\96à¥\80",
+       "savearticle": "पनà¥\8dनाà¤\95 à¤°à¤\95à¥\8dषण à¤\95रà¥\80",
        "preview": "पूर्वावलोकन",
        "showpreview": "पूर्वप्रदर्शन",
-       "showdiff": "परिवरà¥\8dतà¥\8dतन à¤¦à¥\87à¤\96ाà¤\8a",
-       "blankarticle": "<strong>à¤\9aà¥\87तावनà¥\80:</strong> à¤\86हाà¤\81 à¤\8fà¤\95 à¤°à¤¿à¤\95à¥\8dत à¤ªà¤¨à¥\8dना à¤\95à¥\87 à¤¨à¤¿à¤°à¥\8dमाण à¤\95à¤\87र à¤°à¤¹à¤² à¤\9bà¥\80।\nयदि à¤\86हाà¤\81 \"{{int:savearticle}}\" à¤\95à¥\8b à¤ªà¥\81नà¤\83 à¤¦à¤¾à¤¬à¤\88 à¤\9aिà¤\8f à¤¤ à¤ªà¤¨à¥\8dना à¤\95à¥\87 à¤¬à¤¿à¤¨à¤¾ à¤\95à¥\8bनà¥\8b à¤¸à¤¾à¤®à¤\97à¥\8dरà¥\80 à¤\95à¥\87 à¤¨à¤¿à¤°à¥\8dमित à¤\95à¥\8dया à¤¸à¤\95à¥\88à¤\9aिà¤\8f ।",
-       "anoneditwarning": "'''चेतौनी:''' अहाँ सम्प्रवेशित नै छी।\nअहाँक अनिकेत ऐ पन्नाक सम्पादन इतिहासमे दर्ज कएल जाएत।",
-       "anonpreviewwarning": "'' अहाँ सम्प्रवेशित नै छी। अखन रक्षण केलासँ अहाँक अनिकेत पता ऐ पन्नाक सम्पादन इतिहासमे दर्ज भऽ जाएत।''",
-       "missingsummary": "'''स्मारक:''' अहाँ सम्पादन सार नै देने छी।\nजँ अहाँ फेरसँ क्लिक करब \"{{int:savearticle}}\", अहाँक सम्पादन बिना एकर संरक्षित भऽ जाएत।",
+       "showdiff": "परिवरà¥\8dतन à¤¦à¥\87à¤\96ाबà¥\80",
+       "blankarticle": "<strong>à¤\9aà¥\87तावनà¥\80:</strong> à¤\85हाà¤\81 à¤\8fà¤\95 à¤°à¤¿à¤\95à¥\8dत à¤ªà¤¨à¥\8dना à¤\95à¥\87 à¤¨à¤¿à¤°à¥\8dमाण à¤\95रि à¤°à¤¹à¤² à¤\9bà¥\80।\nयदि à¤\85हाà¤\81 \"{{int:savearticle}}\" à¤\95 à¤ªà¥\81नà¤\83 à¤¦à¤¾à¤¬à¤¬à¥\88 à¤¤ à¤ªà¤¨à¥\8dनाà¤\95 à¤¬à¤¿à¤¨à¤¾ à¤\95à¥\8bनà¥\8b à¤¸à¤¾à¤®à¤\97à¥\8dरà¥\80à¤\95 à¤¨à¤¿à¤°à¥\8dमित à¤­ à¤\9cाà¤\8fत।",
+       "anoneditwarning": "<strong>चेतौनी:</strong> अहाँ सम्प्रवेश नै केनए छी । यदि अहाँ सम्पादन करबै तहन ई पृष्ठक सम्पादन इतिहासमे अहाँक आइपी ठेगान दर्ज कएल जाएत। यदि अहाँ <strong>[$1 सम्प्रवेश]</strong> करैत छी अथवा <strong>[$2 खाता बनाबैत छी]</strong> तहन अन्य सुविधासभ संगे अहाँक सम्पादनसभक श्रेय अहाँक प्रयोगकर्तानाम पर दएल जाएत।",
+       "anonpreviewwarning": "<em>अहाँ सम्प्रवेशित नै छी। अखन रक्षण केलासँ अहाँक अनिकेत पता ई पन्नाक सम्पादन इतिहासमे दर्ज भऽ जाएत।</em>",
+       "missingsummary": "<strong>स्मारक:</strong> अहाँ सम्पादन सार नै देने छी।\nजँ अहाँ फेरसँ क्लिक करब \"{{int:savearticle}}\", अहाँक सम्पादन बिना एकर संरक्षित भऽ जाएत।",
        "selfredirect": "<strong>चेतावनी:</strong> आहाँ स्वेम के ई पन्ना पुनः निर्देशीत कएर रहल छी।\nआहाँ अनुप्रेषित के लेल गलत लक्ष्य निर्दिष्ट भ्या सकएत अछि, या आहाँ गलत पन्ना कें संपादन कैर सकएत छी।\nआहाँ फेरो से \"{{int:savearticle}}\" क्लिक करएत छी, रीडायरेक्ट ओनाहो भी बनाबल जेल अछि।",
-       "missingcommenttext": "à¤\95à¥\83पा à¤\95ऽ à¤\85पन à¤µà¤¿à¤\9aार à¤¨à¥\80à¤\9aाà¤\81 à¤ªà¥\8dरविषà¥\8dà¤\9f à¤\95रà¥\82।",
+       "missingcommenttext": "à¤\95à¥\83पा à¤\95ऽ à¤\85पन à¤µà¤¿à¤\9aार à¤¨à¥\80à¤\9aाà¤\81 à¤ªà¥\8dरविषà¥\8dà¤\9f à¤\95रà¥\80।",
        "missingcommentheader": "'''स्मरण:''' अहाँ कोनो विषय/ शीर्षक ऐ टिप्पणीक लेल नै देने छी।\nजँ अहाँ फेरसँ क्लिक करब \"{{int:savearticle}}\" , अहाँक सम्पादन बिना एकर संरक्षित भऽ जाएत।",
        "summary-preview": "सारांश पूर्वावलोकन",
        "subject-preview": "विषयक झलक:",
-       "previewerrortext": "à¤\86हाà¤\81à¤\95à¥\87à¤\82 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤\95à¥\87 à¤ªà¥\82रà¥\8dवावलà¥\8bà¤\95न à¤\95रà¤\88 à¤\95à¥\87à¤\82 à¤¸à¤®à¤¯ à¤\8fà¤\95 à¤¤à¥\8dरà¥\81à¤\9fि à¤\8fल ।",
+       "previewerrortext": "à¤\85हाà¤\81à¤\95 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनà¤\95à¥\87 à¤ªà¥\82रà¥\8dवावलà¥\8bà¤\95न à¤\95रहिà¤\95 à¤¸à¤®à¤¯ à¤\8fà¤\95 à¤¤à¥\8dरà¥\81à¤\9fि à¤\86à¤\8fल।",
        "blockedtitle": "प्रयोक्ता प्रतिबन्धित अछि।",
-       "blockedtext": "''' अहाँक प्रयोक्तानाम वा अनिकेत प्रतिबन्धित कऽ देल गेल अछि।'''\n\nई प्रतिबन्ध $1 द्वारा कएल गेल।\nएकर कारण अछि ''$2'' ।\n\n* प्रतिबन्धक प्रारम्भ: $8\n* प्रतिबन्धक समाप्ति: $6\n* आसन्न प्रतिबन्धसँ प्रभावित: $7\n\nअहाँ $1 सँ सम्पर्क कऽ सकै छी वा दोसर [[{{MediaWiki:Grouppage-sysop}}|संचालक]] सँ प्रतिबन्धक विषयमे सम्पर्क कऽ सकै छी।\nअहाँ ’ऐ प्रयोक्ताकेँ ई-पत्र दिअ’ सुविधाक प्रयोग नै कऽ सकै छी यावत एकटा मान्य ई-पत्र संकेतक विवरण अहाँक  [[Special:Preferences|खाता विकल्प]] मे नै देल अछि आ अहाँकेँ एकर प्रयोग करबासँ रोकि नै देल गेल हो।\nअहाँक वर्तमान अनिकेत अछि $3, आ प्रतिबन्ध संख्या अछि # $5 ।\nऐ सभ विवरणक उल्लेख अहाँ अपन कोनो कएल जाइबला प्रश्नमे करू।",
-       "autoblockedtext": "अहाँक अनिकेत स्वचालित रूपेँ प्रतिबन्धित कऽ देल गेल अछि कारण एकर प्रयोग कोनो दोसर प्रयोक्ता द्वारा भऽ रहल छल, जे $1 द्वारा प्रतिबन्धतित कएल गेल।\nएकर कारण अछि:\n: ''$2'' ।\n\n* प्रतिबन्धक प्रारम्भ: $8\n* प्रतिबन्धक समाप्ति: $6\n* आसन्न प्रतिबन्धसँ प्रभावित: $७\n\nअहाँ $1 सँ सम्पर्क कऽ सकै छी वा दोसर [[{{MediaWiki:Grouppage-sysop}}|संचालक]] सँ प्रतिबन्धक विषयमे सम्पर्क कऽ सकै छी।\nअहाँ मोन राखू जे अहाँ ’ऐ प्रयोक्ताकेँ ई-पत्र दिअ’ सुविधाक प्रयोग नै कऽ सकै छी यावत एकटा मान्य ई-पत्र संकेतक पंजीकरण अहाँक  [[Special:Preferences|प्रयोक्ता विकल्प]] मे नै देल अछि आ अहाँकेँ एकर प्रयोग करबासँ रोकि नै देल गेल हो।\nअहाँक वर्तमान अनिकेत अछि $3, आ प्रतिबन्ध संख्या अछि # $5 ।\nऐ सभ विवरणक उल्लेख अहाँ अपन कोनो कएल जाइबला प्रश्नमे करू।",
+       "blockedtext": "<strong>अहाँक प्रयोक्तानाम वा अनिकेत प्रतिबन्धित कऽ देल गेल अछि।</strong>\n\nई प्रतिबन्ध $1 द्वारा कएल गेल।\nएकर कारण अछि ''$2'' ।\n\n* प्रतिबन्धक प्रारम्भ: $8\n* प्रतिबन्धक समाप्ति: $6\n* आसन्न प्रतिबन्धसँ प्रभावित: $7\n\nअहाँ $1 सँ सम्पर्क कऽ सकै छी वा दोसर [[{{MediaWiki:Grouppage-sysop}}|प्रबन्धक]]सँ प्रतिबन्धक विषयमे सम्पर्क कऽ सकै छी।\nअहाँ ’ऐ प्रयोक्ताकेँ ई-पत्र दिअ’ सुविधाक प्रयोग नै कऽ सकै छी यावत एकटा मान्य ई-पत्र संकेतक विवरण अहाँक  [[Special:Preferences|खाता विकल्प]]मे नै देल अछि आ अहाँकेँ एकर प्रयोग करबासँ रोकि नै देल गेल हो।\nअहाँक वर्तमान अनिकेत अछि $3, आ प्रतिबन्ध क्रमाङ्क अछि # $5 ।\nई सभ विवरणक उल्लेख अहाँ अपन कोनो कएल जाएबला प्रश्नमे करी।",
+       "autoblockedtext": "अहाँक अनिकेत स्वचालित रूपेँ प्रतिबन्धित कऽ देल गेल अछि कारण एकर प्रयोग कोनो दोसर प्रयोक्ता द्वारा भऽ रहल छल, जे $1 द्वारा प्रतिबन्धतित कएल गेल।\nएकर कारण अछि:\n:<em>$2</em>।\n\n* प्रतिबन्धक प्रारम्भ: $8\n* प्रतिबन्धक समाप्ति: $6\n* आसन्न प्रतिबन्धसँ प्रभावित: $७\n\nअहाँ $1 सँ सम्पर्क कऽ सकै छी वा दोसर [[{{MediaWiki:Grouppage-sysop}}|प्रबन्धक]] सँ प्रतिबन्धक विषयमे सम्पर्क कऽ सकै छी।\nअहाँ मोन राखू जे अहाँ ’ऐ प्रयोक्ताकेँ ई-पत्र दिअ’ सुविधाक प्रयोग नै कऽ सकै छी यावत एकटा मान्य ई-पत्र संकेतक पंजीकरण अहाँक  [[Special:Preferences|प्रयोक्ता विकल्प]] मे नै देल अछि आ अहाँकेँ एकर प्रयोग करबासँ रोकि नै देल गेल हो।\nअहाँक वर्तमान अनिकेत अछि $3, आ प्रतिबन्ध क्रमाङ्क अछि # $5 ।\nई सभ विवरणक उल्लेख अहाँ अपन कोनो कएल जाएबला प्रश्नमे करी।",
        "blockednoreason": "कोनो कारण देल नै अछि।",
        "whitelistedittext": "अहाँकेँ $1पन्ना सम्पादन करबा लेल",
-       "confirmedittext": "पनà¥\8dना à¤¸à¤­à¤\95 à¤¸à¤®à¥\8dपादन à¤\95à¥\87लासà¤\81 à¤ªà¥\82रà¥\8dव à¤\85हाà¤\81 à¤\85पन à¤\88-पतà¥\8dर à¤¸à¤\82à¤\95à¥\87तà¤\95à¥\87à¤\81 à¤¸à¤¤à¥\8dयापित à¤\95रà¥\82।\nà¤\95à¥\83पा à¤\95ऽ à¤\85पन à¤\88-पतà¥\8dर à¤ªà¤¤à¤¾ à¤¦à¤°à¥\8dà¤\9c à¤\95रà¥\82 à¤\86 à¤¸à¤¤à¥\8dयापित à¤\95रà¥\82 à¤\90 à¤¸à¤\81 [[Special:Preferences|पà¥\8dरयà¥\8bà¤\95à¥\8dताà¤\95 à¤ªà¤¸à¤¿à¤¨à¥\8dन à¤¸à¤­]]",
-       "nosuchsectiontitle": "सà¤\82वरà¥\8dà¤\97 à¤¨à¥\88 à¤¤à¤¾à¤\95ि à¤¸à¤\95ल",
-       "nosuchsectiontext": "à¤\85हाà¤\81 à¤\8fहन à¤¸à¤\82वरà¥\8dà¤\97à¤\95à¥\87à¤\81 सम्पादित करबाक प्रयास केलहुँ जे अछि नै।\nअहाँ जखन ई पन्ना देख रहल छलहुँ तखन ई मेटा देल गेल हएत वा दोसर ठाम हटा देल गेल हएत।",
+       "confirmedittext": "पनà¥\8dना à¤¸à¤®à¥\8dपादन à¤\95रà¥\88सà¤\81 à¤ªà¥\82रà¥\8dव à¤\85हाà¤\81 à¤\85पन à¤\88-मà¥\87ल à¤ à¥\87à¤\97ान à¤¸à¤¤à¥\8dयापित à¤\95रà¥\80।\nà¤\95à¥\83पा à¤\95ऽ [[Special:Preferences|पà¥\8dरयà¥\8bà¤\95à¥\8dताà¤\95 à¤®à¥\8bनपसनà¥\8dद]]मà¥\87 à¤\9cा à¤\85पन à¤\88-मà¥\87ल à¤ à¥\87à¤\97ान à¤¦à¤°à¥\8dà¤\9c à¤\95रà¥\80 à¤\86 à¤¸à¤¤à¥\8dयापित à¤\95रà¥\80।",
+       "nosuchsectiontitle": "à¤\8fहन à¤\95à¥\8bनà¥\8b à¤\85नà¥\81भाà¤\97 à¤¶à¥\80रà¥\8dषà¤\95 à¤¨à¥\88 à¤\85à¤\9bि",
+       "nosuchsectiontext": "à¤\85हाà¤\81 à¤\8fहन à¤\85नà¥\81भाà¤\97à¤\95 सम्पादित करबाक प्रयास केलहुँ जे अछि नै।\nअहाँ जखन ई पन्ना देख रहल छलहुँ तखन ई मेटा देल गेल हएत वा दोसर ठाम हटा देल गेल हएत।",
        "loginreqtitle": "सम्प्रवेश आवश्यक",
        "loginreqlink": "सम्प्रवेश",
        "loginreqpagetext": "अहाँ निश्चयरूपेँ $1 दोसर पन्ना देखबाक लेल।",
        "accmailtitle": "कूटशब्द पठा देल गेल।",
        "accmailtext": "एकटा बिना क्रमबला निर्माण पद्धतिसँ कूटशब्दक निर्माण [[User talk:$1|$1]] लेल $2 केँ पठाएल गेल अछि।\n\nऐ खाताक कूटशब्द बदलल जा सकैए ''[[Special:ChangePassword|कूटशब्द बदलू]]'' पन्नापर सम्प्रवेश केलाक बाद।",
        "newarticle": "(नव)",
-       "newarticletext": "à¤\85हाà¤\81 à¤\8fहà¥\87न à¤ªà¤¨à¥\8dनाà¤\95 à¤²à¤¿à¤\82à¤\95à¤\95 à¤\85नà¥\81सरण à¤\95ऽ à¤\86à¤\8fल à¤\9bà¥\80 à¤\9cà¥\87 à¤ªà¤¨à¥\8dना à¤\85à¤\96न à¤¬à¤¨à¤²à¥\87 à¤¨à¥\88 à¤\85à¤\9bि।\nपनà¥\8dना à¤¬à¤¨à¥\87बाà¤\95 à¤²à¥\87ल à¤¨à¥\80à¤\9aाà¤\81à¤\95 à¤¬à¤\95à¥\8dशामà¥\87 à¤\9fाà¤\87प à¤\95à¥\87नाà¤\87 à¤¶à¥\81रà¥\82 à¤\95रà¥\82 (दà¥\87à¤\96à¥\82 [$1  सहायता पन्ना] विषेष जानकारी लेल)।",
-       "anontalkpagetext": "----'' à¤\88 à¤\8fà¤\95à¤\9fा à¤\85नाम à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dताà¤\95 à¤²à¥\87ल à¤µà¤¾à¤°à¥\8dता à¤ªà¤¨à¥\8dना à¤\9bà¥\80 à¤\9cà¥\87 à¤\85à¤\96न à¤§à¤°à¤¿ à¤\85पन à¤\96ाता à¤¨à¥\88 à¤\96à¥\8bलनà¥\87 à¤\9bथि, à¤µà¤¾ à¤\9cà¥\87 à¤\8fà¤\95र à¤ªà¥\8dरयà¥\8bà¤\97 à¤¨à¥\88 à¤\95रà¥\88 à¤\9bथि।\nहमरा à¤¸à¤­à¤\95à¥\87à¤\81 à¤¤à¤\87 à¤²à¥\87ल à¤\85à¤\82à¤\95à¥\80य à¤\85निà¤\95à¥\87तà¤\95 à¤ªà¥\8dरयà¥\8bà¤\97 à¤¹à¥\81नà¤\95ा à¤¦à¥\87à¤\96ार à¤\95रबा à¤²à¥\87ल à¤\95रऽ à¤ªà¤¡à¤¼à¤¿ à¤°à¤¹à¤² à¤\85à¤\9bि।\nà¤\90 à¤¤à¤°à¤¹à¤\95 à¤\85निà¤\95à¥\87त à¤\85नà¥\87à¤\95 à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dता à¤¦à¥\8dवारा à¤¸à¤¾à¤\9dà¥\80 à¤\95à¤\8fल à¤\9cा à¤¸à¤\95à¥\88त à¤\85à¤\9bि।\nà¤\9cà¤\81 à¤\85हाà¤\81 à¤\85नाम à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dता à¤\9bà¥\80 à¤\86 à¤¬à¥\81à¤\9dà¥\88 à¤\9bà¥\80 à¤\9cà¥\87 à¤¬à¤¿à¤¨à¤¾ à¤®à¤¤à¤²à¤¬à¤\95 à¤\9fिपà¥\8dपणà¥\80 à¤\85हाà¤\81 à¤¦à¤¿à¤¸ à¤¦à¥\87ल à¤\9cा à¤°à¤¹à¤² à¤\85à¤\9bि, à¤¤à¤\81 à¤\95à¥\83पा à¤\95ऽ [[Special:CreateAccount|à¤\8fà¤\95à¤\9fा à¤\96ाता à¤\96à¥\8bलà¥\82]] à¤µà¤¾ [[Special:UserLogin|समà¥\8dपà¥\8dरवà¥\87श]] à¤\9cà¤\87सà¤\81 à¤­à¤µà¤¿à¤·à¥\8dयमà¥\87 à¤\86न à¤\85नाम à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dतासà¤\81 à¤\85हाà¤\81à¤\95à¥\87à¤\81 दिक्कत नै हो।''",
+       "newarticletext": "à¤\85हाà¤\81 à¤\8fहà¥\87न à¤ªà¤¨à¥\8dनाà¤\95 à¤²à¤¿à¤\99à¥\8dà¤\95à¤\95 à¤\85नà¥\81सरण à¤\95ऽ à¤\86à¤\8fल à¤\9bà¥\80 à¤\9cà¥\87 à¤ªà¤¨à¥\8dना à¤\85à¤\96न à¤¬à¤¨à¤²à¥\87 à¤¨à¥\88 à¤\85à¤\9bि।\nपनà¥\8dना à¤¬à¤¨à¥\87बाà¤\95 à¤²à¥\87ल à¤¨à¥\80à¤\9aाà¤\81à¤\95 à¤¬à¤\95à¥\8dसामà¥\87 à¤\9fाà¤\87प à¤\95à¥\87नाà¤\8f à¤¶à¥\81रà¥\82 à¤\95रà¥\80 (दà¥\87à¤\96à¥\80 [$1  सहायता पन्ना] विषेष जानकारी लेल)।",
+       "anontalkpagetext": "----'' à¤\88 à¤\8fà¤\95à¤\9fा à¤\85नाम à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dताà¤\95 à¤²à¥\87ल à¤µà¤¾à¤°à¥\8dता à¤ªà¤¨à¥\8dना à¤\9bà¥\80 à¤\9cà¥\87 à¤\85à¤\96न à¤§à¤°à¤¿ à¤\85पन à¤\96ाता à¤¨à¥\88 à¤\96à¥\8bलनà¥\87 à¤\9bथि, à¤µà¤¾ à¤\9cà¥\87 à¤\8fà¤\95र à¤ªà¥\8dरयà¥\8bà¤\97 à¤¨à¥\88 à¤\95रà¥\88 à¤\9bथि।\nहमरा à¤¸à¤­à¤\95à¥\87à¤\81 à¤¤à¤\87 à¤²à¥\87ल à¤\85à¤\82à¤\95à¥\80य à¤\85निà¤\95à¥\87तà¤\95 à¤ªà¥\8dरयà¥\8bà¤\97 à¤¹à¥\81नà¤\95ा à¤¦à¥\87à¤\96ार à¤\95रबा à¤²à¥\87ल à¤\95रऽ à¤ªà¤¡à¤¿ à¤°à¤¹à¤² à¤\85à¤\9bि।\nà¤\90 à¤¤à¤°à¤¹à¤\95 à¤\85निà¤\95à¥\87त à¤\85नà¥\87à¤\95 à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dता à¤¦à¥\8dवारा à¤¸à¤¾à¤\9dà¥\80 à¤\95à¤\8fल à¤\9cा à¤¸à¤\95à¥\88त à¤\85à¤\9bि।\nà¤\9cà¤\81 à¤\85हाà¤\81 à¤\85नाम à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dता à¤\9bà¥\80 à¤\86 à¤¬à¥\81à¤\9dà¥\88 à¤\9bà¥\80 à¤\9cà¥\87 à¤¬à¤¿à¤¨à¤¾ à¤®à¤¤à¤²à¤¬à¤\95 à¤\9fिपà¥\8dपणà¥\80 à¤\85हाà¤\81 à¤¦à¤¿à¤¸ à¤¦à¥\87ल à¤\9cा à¤°à¤¹à¤² à¤\85à¤\9bि, à¤¤à¤\81 à¤\95à¥\83पा à¤\95ऽ [[Special:CreateAccount|à¤\8fà¤\95à¤\9fा à¤\96ाता à¤\96à¥\8bलà¥\80]] à¤µà¤¾ [[Special:UserLogin|समà¥\8dपà¥\8dरवà¥\87श]] à¤\9cà¤\87सà¤\81 à¤­à¤µà¤¿à¤·à¥\8dयमà¥\87 à¤\86न à¤\85नाम à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dतासà¤\81 à¤\85हाà¤\81à¤\95 दिक्कत नै हो।''",
        "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}}|ऐ पन्ना शीर्षक लेल ताकू]]",
-       "missing-revision": "\"{{FULLPAGENAME}}\" पन्ना के अवतरण #$1 मौजूद नई अछि ।\n\nओन त ई एक हट्याल गेल पन्ना के पुराना कडी पे क्लिक करबाक कारण से होएत अछि।\nअधिक जानकारी के लेल आहाँ [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} हटाबै के लॉग] देख सकै अछि।",
-       "userpage-userdoesnotexist": "प्रयोक्ता खाता \"<nowiki>$1</nowiki>\" पंजीकृत नै अछि।\nनिश्चय करू जे की अहाँ ई पन्ना बनेबाक/ सम्पादित करबाक इच्छुक छी।",
-       "userpage-userdoesnotexist-view": "पà¥\8dरयà¥\8bà¤\95à¥\8dता à¤\96ाता \"$1\" à¤ªà¤\82जीकृत नै अछि।",
+       "missing-revision": "\"{{FULLPAGENAME}}\" पन्नाक अवतरण #$1 मौजूद नै अछि ।\n\nओन त ई एक मेटाएल पन्नाक पुराना कडीपर क्लिक करबाक कारण सँ होएत अछि।\nअधिक जानकारीक लेल अहाँ [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} हटाबैक लग] देख सकै छी।",
+       "userpage-userdoesnotexist": "प्रयोक्ता खाता \"$1\" पञ्जीकृत नै अछि।\nनिश्चय करी जे की अहाँ ई पन्ना बनेबाक/ सम्पादित करबाक इच्छुक छी।",
+       "userpage-userdoesnotexist-view": "पà¥\8dरयà¥\8bà¤\95à¥\8dता à¤\96ाता \"$1\" à¤ªà¤\9eà¥\8dजीकृत नै अछि।",
        "blocked-notice-logextract": "ई प्रयोक्ता अखन प्रतिबन्धित अछि।\nअद्यतन प्रतिबन्धित  वृत्तलेख लेखा सन्दर्भ लेल नीचाँ देल अछि:",
        "clearyourcache": "'''टिप्पणी:''' संरक्षणक बाद, अहाँकेँ परिवर्तन देखबा लेल अपन गवेषकक उपस्मृतिकेँ हटबए पड़त।\n''' मोजिल्ला/ फायरफॉक्स/ सफारी:''' दाबि कऽ राखू ''शिफ्ट'' केँ ''पुनर्भारित'' क्लिक करबाक समए, वा दाबू चाहे ''Ctrl-F5'' वा ''Ctrl-R'' (''Command-R'' मैकिनटोशपर);\n'''कन्करर: ''' क्लिक करू ''पुनर्भारित करू'' वा दाबू''F5'';\n'''ओपेरा:''' उपस्मृति खतम करू ''Tools → Preferences'';\n'''इन्टरनेट एक्सप्लोरर:''' दाबि कऽ राखू ''Ctrl'' क्लिक करबा काल ''नवीकरण,'' वा दाबू ''Ctrl-F5'' ।",
-       "usercssyoucanpreview": "''' संकेत:'''  प्रयोग करू \"{{int:पूर्वदृश्य देखाउ}}\" बटन अपन नव सी.एस.एस. संरक्षण जँचबाक लेल।",
-       "userjsyoucanpreview": "''' संकेत:'''  प्रयोग करू \"{{int:पूर्वदृश्य देखाउ}}\" बटन अपन नव जावास्क्रिप्ट संरक्षण जँचबाक लेल।",
+       "usercssyoucanpreview": "<strong>सङ्केत:</strong> सङ्ग्रह करैसँ पहिने अहाँ अपन नव सियसयसक जाँच लेल \"{{int:पूर्वदृश्य देखाउ}}\" बटनक प्रयोग करी।",
+       "userjsyoucanpreview": "<strong>टिप</strong>  प्रयोग करी \"{{int:showpreview}}\" बटन अपन नव जावास्क्रिप्ट संरक्षण जँचबाक लेल।",
        "usercsspreview": "''' मोन राखू जे अहाँ मात्र अपन प्रयोक्ता  सी.एस.एस. क पूर्वदृश्य देख रहल छी।'''\n''' ई अखन धरि संरक्षित नै भऽ सकल!'''",
        "userjspreview": "''' मोन राखू जे अहाँ मात्र अपन प्रयोक्ता  जावास्क्रिप्टक पूर्वदृश्य देख रहल छी।'''\n''' ई अखन धरि संरक्षित नै भऽ सकल!'''",
        "sitecsspreview": "''' मोन राखू जे अहाँ मात्र ऐ  सी.एस.एस. क पूर्वदृश्य देख रहल छी।'''\n''' ई अखन धरि संरक्षित नै भऽ सकल!'''",
        "sitejspreview": "''' मोन राखू जे अहाँ मात्र ऐ  जावास्क्रिप्टक पूर्वदृश्य देख रहल छी।'''\n''' ई अखन धरि संरक्षित नै भऽ सकल!'''",
        "userinvalidcssjstitle": "'''चेतौनी:''' ऐ मे कोनो आवरण \"$1\" नै अछि।\nबनाएल .css आ .js पन्ना लघ्वक्षरक शीर्षकक प्रयोग करैत अछि, जेना {{ns:user}}:Foo/vector.css एकर विरुद्ध {{ns:user}}:Foo/Vector.css ।",
        "updated": "(अद्यतन  कएल)",
-       "note": "'''टिप्पणी:'''",
+       "note": "<strong>टिप्पणी:</strong>",
        "previewnote": "'''मोन राखू ई मातर पूर्वावलोकन छी।'''\nअहाँक परिवर्तन अखन धरि सँचिआएल नै गेल अछि!",
-       "continue-editing": "सà¤\82पादन à¤\95à¥\8dषà¥\87तà¥\8dर à¤\9cाà¤\89",
-       "previewconflict": "ई पूर्वदृश्य देखबैए उपरका सम्पादन क्षेत्रक पाठ , ई आएत जखन अहाँ संरक्षित करब।",
+       "continue-editing": "समà¥\8dपादन à¤\95à¥\8dषà¥\87तà¥\8dर à¤\9cाà¤\8f",
+       "previewconflict": "ई पूर्वदृश्य देखबैए उपरका सम्पादन क्षेत्रक पाठ, ई आएत जखन अहाँ संरक्षित करब।",
        "session_fail_preview": "''' दुखी छी! अहाँक सत्रक दत्तांश खतम भऽ गेल तै कारणसँ अहाँक सम्पादनक निपटारा नै भऽ सकल।'''\nफेरसँ प्रयास करू।\nजँ ई फेरसँ काज नै करैए, प्रयोग करू [[Special:UserLogout|निष्क्रमण]] आ फेर सम्प्रवेश करू।",
        "session_fail_preview_html": "''' दुखी छी! हम अहाँक सम्पादनक निष्पादन नै कऽ सकलहुँ कारण सत्रक दत्तांश खतम भऽ गेल।'''\n''कारण {{अन्तर्जाल}} लग काँच एच.टी.एम.एल. दत्तांश सक्रिय छै, पूर्वदृश्य जावास्क्रिप्ट आक्रमणक डरसँ नुकाएल राखल गेल अछि।''\n'''जँ ई वैध सम्पादन प्रयास अछि, कृपा कऽ पुनः प्रयास करू।'''\nजँ ई अखनो काज नै कऽ रहल अछि, प्रयास करू [[Special:UserLogout|निष्क्रमण कऽ रहल छी]] आ फेरसँ सम्प्रवेश।",
        "token_suffix_mismatch": "'''अहाँक सम्पादन अस्वीकार कऽ देल गेल अछि कारण अहाँक ग्राहक प्रेष्यमान अंक विधानक विराम चेन्ह सभकेँ नष्ट कऽ देलन्हि।'''\nई सम्पादन पन्नाक पाठकेँ दूषित होएबासँ बचेबा लेल अमान्य कऽ देल गेल।\nई कखनो काल होइए जखन अहाँ जाल आधारित अनाम दोसरा लेल चल सेवा प्रयुक्त करै छी।",
-       "edit_form_incomplete": "'''सम्पादन आवेदनक किछु भाग वितरक धरि नै पहुँचल; एक बेर फेर देखू जे अहाँक सम्पादन दुरुस्त अछि आ फेरसँ प्रयास करू।'''",
+       "edit_form_incomplete": "<strong>सम्पादन आवेदनक किछु भाग वितरक धरि नै पहुँचल; एक बेर फेर देखी जे अहाँक सम्पादन दुरुस्त अछि आ फेरसँ प्रयास करी।</strong>",
        "editing": "सम्पादन होइए $1",
        "creating": "$1 बनाबी",
        "editingsection": "सम्पादन कऽ रहल छी $1 (खण्ड)",
        "editingcomment": "सम्पादन कऽ रहल छी $1 (नव खण्ड)",
-       "editconflict": "सम्पादन अन्तर: $1",
-       "explainconflict": "à¤\9cà¤\96न à¤\85हाà¤\81 à¤\8fà¤\95र à¤¸à¤®à¥\8dपादन à¤\86रमà¥\8dभ à¤\95à¥\87नà¥\87 à¤°à¤¹à¥\80 à¤¤à¤\96नसà¤\81 à¤\95ियà¥\8b à¤\86न à¤\90 à¤ªà¤¨à¥\8dनाà¤\95à¥\87à¤\81 à¤¬à¤¦à¤²à¤¿ à¤¦à¥\87लà¤\95।\nà¤\89परà¤\95ा à¤ªà¤¾à¤  à¤\95à¥\8dषà¥\87तà¥\8dर à¤\85à¤\96न à¤\89पसà¥\8dथित à¤ªà¤¨à¥\8dनाà¤\95 à¤ªà¤¾à¤  à¤¦à¥\87à¤\96बà¥\88त à¤\85à¤\9bि।\nà¤\85हाà¤\81à¤\95 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤¨à¤¿à¤\9aà¥\81लà¤\95ा à¤ªà¤¾à¤  à¤\95à¥\8dषà¥\87तà¥\8dरमà¥\87 à¤¦à¥\87à¤\96ाà¤\8fल à¤\85à¤\9bि।\nà¤\85हाà¤\81à¤\95à¥\87à¤\81 à¤\85पन à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤µà¤°à¥\8dतमान à¤ªà¤¾à¤ à¤®à¥\87 à¤®à¤¿à¤²à¤¾à¤¬à¤½ à¤ªà¤¡à¤¼à¤¤à¥¤\n'''मातà¥\8dर''' \"{{int:savearticle}}\" दबलापर उपरका पाठ क्षेत्रक पाठ संरक्षित हएत।",
+       "editconflict": "सम्पादन अन्तर्विरोध: $1",
+       "explainconflict": "à¤\9cà¤\96न à¤\85हाà¤\81 à¤\8fà¤\95र à¤¸à¤®à¥\8dपादन à¤\86रमà¥\8dभ à¤\95à¥\87नà¥\87 à¤°à¤¹à¥\80 à¤¤à¤\96नसà¤\81 à¤\95ियà¥\8b à¤\86न à¤\90 à¤ªà¤¨à¥\8dनाà¤\95à¥\87à¤\81 à¤¬à¤¦à¤²à¤¿ à¤¦à¥\87लà¤\95।\nà¤\89परà¤\95ा à¤ªà¤¾à¤  à¤\95à¥\8dषà¥\87तà¥\8dर à¤\85à¤\96न à¤\89पसà¥\8dथित à¤ªà¤¨à¥\8dनाà¤\95 à¤ªà¤¾à¤  à¤¦à¥\87à¤\96बà¥\88त à¤\85à¤\9bि।\nà¤\85हाà¤\81à¤\95 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤¨à¤¿à¤\9aà¥\81लà¤\95ा à¤ªà¤¾à¤  à¤\95à¥\8dषà¥\87तà¥\8dरमà¥\87 à¤¦à¥\87à¤\96ाà¤\8fल à¤\85à¤\9bि।\nà¤\85हाà¤\81à¤\95à¥\87à¤\81 à¤\85पन à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤µà¤°à¥\8dतमान à¤ªà¤¾à¤ à¤®à¥\87 à¤®à¤¿à¤²à¤¾à¤¬à¤½ à¤ªà¤¡à¤¤à¥¤\n<strong>मातà¥\8dर</strong> \"{{int:savearticle}}\" दबलापर उपरका पाठ क्षेत्रक पाठ संरक्षित हएत।",
        "yourtext": "अहाँक पाठ",
        "storedversion": "पेटारमे राखल संशोधन",
        "nonunicodebrowser": "'''चेतौनी: अहाँक गवेषक सार्वत्रिकाक्षरकूट सहयोगी नै अछि।'''\nएकटा अस्थायी-परोक्ष तंत्रांश अहाँकेँ सुरक्षित रूपेँ पन्नाक सम्पादनमे मदति करत: गएर-अस्की अक्षर सभ षोडशमान पद्धतिमे सम्पादन बक्सामे आएत।",
        "protectedpagewarning": "''' चेतौनी: ई पन्ना संरक्षित अछि से खाली संचालन अधिकारयुक्त प्रयोक्ता एकरा सम्पादित कऽ सकै छथि।'''\nअद्यतन वृतलेख उल्लेख नीचाँ सन्दर्भ लेल देल जा रहल अछि:",
        "semiprotectedpagewarning": "'''चेतौनी:''' ई पन्ना संरक्षित अछि से खाली पंजीकृत प्रयोक्ता एकरा सम्पादित कऽ सकै छथि।\nअद्यतन वृतलेख उल्लेख नीचाँ सन्दर्भ लेल देल जा रहल अछि:",
        "cascadeprotectedwarning": "'''चेतौनी:''' ई पन्ना संरक्षित अछि से खाली संचालन अधिकारयुक्त प्रयोक्ता एकरा सम्पादित कऽ सकै छथि, कारण ई तराउपड़ी संरक्षित {{PLURAL:$1|पन्ना|पन्ना}}  मे शामिल अछि।",
-       "titleprotectedwarning": "'''à¤\9aà¥\87तà¥\8cनà¥\80: à¤\88 à¤ªà¤¨à¥\8dना à¤¸à¤\82रà¤\95à¥\8dषित à¤\85à¤\9bि à¤¸à¥\87 à¤\8fà¤\95रा à¤¬à¤¨à¥\87बा à¤²à¥\87ल [[Special:ListGroupRights|specific rights]] आवश्यक अछि।'''\nनीचाँ ऐ लेल अद्यतन वृत्तलेख उल्लेख देल जा रहल अछि:",
-       "templatesused": "{{PLURAL:$1|नमूना|नमूना सभ}} ऐ पन्नापर प्रयुक्त:",
-       "templatesusedpreview": "{{PLURAL:$1|मास्टरफाइल|सभटा मास्टरफाइल}} used in this preview:ऐ पूर्वप्रदर्शनमे प्रयुक्त :",
-       "templatesusedsection": "{{PLURAL:$1|नमà¥\82ना|नमà¥\82ना à¤¸à¤­}} à¤\90 à¤¸à¤\82वरà¥\8dà¤\97मे प्रयुक्त:",
+       "titleprotectedwarning": "'''à¤\9aà¥\87तà¥\8cनà¥\80: à¤\88 à¤ªà¤¨à¥\8dना à¤¸à¤\82रà¤\95à¥\8dषित à¤\85à¤\9bि à¤\86 à¤\8fà¤\95रा à¤¬à¤¨à¥\87बा à¤²à¥\87ल [[Special:ListGroupRights|विशà¥\87ष à¤\85धिà¤\95ारà¤\95]] आवश्यक अछि।'''\nनीचाँ ऐ लेल अद्यतन वृत्तलेख उल्लेख देल जा रहल अछि:",
+       "templatesused": "ई पन्नापर प्रयुक्त {{PLURAL:$1|आकृति|आकृतिसभ}}:",
+       "templatesusedpreview": "ई पूर्वप्रदर्शनमे प्रयुक्त {{PLURAL:$1|आकृति|आकृतिसभ}}:",
+       "templatesusedsection": "{{PLURAL:$1|à¤\86à¤\95à¥\83ति|à¤\86à¤\95à¥\83तिसभ}} à¤\88 à¤ªà¥\82रà¥\8dवपà¥\8dरदरà¥\8dशनमे प्रयुक्त:",
        "template-protected": "(संरक्षित)",
        "template-semiprotected": "(अर्ध-संरक्षित)",
-       "hiddencategories": "à¤\88 à¤ªà¤¨à¥\8dना à¤¸à¤¦à¤¸à¥\8dय à¤\85à¤\9bि {{PLURAL:$1|1 à¤¨à¥\81à¤\95ाà¤\8fल à¤¸à¤\82वरà¥\8dà¤\97|$1 à¤¨à¥\81à¤\95ाà¤\8fल à¤¸à¤\82वरà¥\8dà¤\97 à¤¸à¤­}}:",
+       "hiddencategories": "à¤\88 à¤ªà¥\83षà¥\8dठ à¤¨à¤¿à¤®à¥\8dनलिà¤\96ित $1 à¤¨à¥\81à¤\95ाà¤\8fल à¤\97à¥\87ल {{PLURAL:$1|शà¥\8dरà¥\87णà¥\80|शà¥\8dरà¥\87णà¥\80सभ}}मà¥\87 à¤¶à¥\8dरà¥\87णà¥\80बदà¥\8dध à¤\85à¤\9bि:",
        "edittools": "<!-- एतए देल गेल पाठ सम्पादन आर अपलोड फारम के निचा देखाओल जाएत। -->",
        "edittools-upload": "-",
-       "nocreatetext": "{{अन्तर्जाल}} नव पन्ना निर्माणक क्षमताकेँ सीमित कऽ देने अछि।\nअहाँ आपस जा सकै छी आ कोनो पन्नाकेँ सम्पादित कऽ सकै छी, वा [[Special:UserLogin|log in or create an account]]",
+       "nocreatetext": "{{SITENAME}} नव पन्ना निर्माणक क्षमताकेँ सीमित कऽ देने अछि।\nअहाँ आपस जा सकै छी आ कोनो पन्नाकेँ सम्पादित कऽ सकै छी, वा [[Special:UserLogin|नयाँ खाता खोली/ प्रवेश करी]]",
        "nocreate-loggedin": "अहाँक नव पन्ना बनेबाक अधिकार नै अछि।",
        "sectioneditnotsupported-title": "अनुभाग सम्पादन समर्थित नै अछि",
        "sectioneditnotsupported-text": "ई पृष्ठ पर अनुभाग सम्पादन समर्थित नै अछि",
        "permissionserrors": "आज्ञा गल्ती",
-       "permissionserrorstext": "अहाँके ऐ लेल अनुमति नै अछि, ऐ ले {{PLURAL:$1|कारण|कारण सभ}}:",
-       "permissionserrorstext-withaction": "अहाँके अनुमति नै अछि $2 लेल, ऐ लेल {{PLURAL:$1|कारण|कारण सभ}}:",
+       "permissionserrorstext": "अहाँके ऐ लेल अनुमति नै अछि, ऐ ले {{PLURAL:$1|कारण|कारणसभ}}:",
+       "permissionserrorstext-withaction": "अहाँके अनुमति नै अछि $2 लेल, ऐ लेल {{PLURAL:$1|कारण|कारणसभ}}सँ:",
        "recreate-moveddeleted-warn": "'''चेतौनी''': अहाँ फेरसँ ओ पन्ना बना रहल छी जे पहिने मेटा देल गेल छै।'''\n\nअहाँ विचारू जे की ई सम्पादन केनाइ उचित अछि।\nऐ पन्नाक मेटाएल बला आ हटाएल वृत्तलेख एतए सुविधा लेल देल जा रहल अछि:",
        "moveddeleted-notice": "ई पन्ना मेटा देल गेल अछि।\nऐ पन्ना लेल मेटाएल आ हटाएल बला वृत्तलेख सन्दर्भ लेल नीचाँ देल गेल अछि।",
-       "log-fulllog": "सभà¤\9fा à¤µà¥\83तà¥\8dतलà¥\87à¤\96 à¤¦à¥\87à¤\96à¥\82",
+       "log-fulllog": "सभà¤\9fा à¤µà¥\83तà¥\8dतलà¥\87à¤\96 à¤¦à¥\87à¤\96à¥\80",
        "edit-hook-aborted": "सम्पादन नोकसीसँ खतम भेल।\nई कोनो कारण नै देलक।",
        "edit-gone-missing": "पन्ना अद्यतन नै भऽ सकल।\nलगैए जे ई मेटा देल गेल अछि।",
-       "edit-conflict": "सम्पादन अन्तर",
+       "edit-conflict": "सम्पादन अन्तर्विरोध",
        "edit-no-change": "अहाँक सम्पादनपर ध्यान नै देल गेल, कारण ऐ सँ पाठमे कोनो परिवर्तन नै आएल।",
        "postedit-confirmation-created": "पन्ना निर्माण करल गेल अछि ।",
        "postedit-confirmation-restored": "पन्नाके पुराण स्थितिमे लौने गेल अछि ।",
-       "postedit-confirmation-saved": "अहाके संपादनके सुरक्षित भेल ।",
+       "postedit-confirmation-saved": "अहाक सम्पादन सुरक्षित भेल ।",
        "edit-already-exists": "नव पन्नाक निर्माण नै भऽ सकल।\nई पहिनहियेसँ वर्तमान अछि।",
-       "defaultmessagetext": "पà¥\82रà¥\8dवनिरà¥\8dधारित à¤¸à¤\82देश पाठ",
+       "defaultmessagetext": "पà¥\82रà¥\8dवनिरà¥\8dधारित à¤¸à¤¨à¥\8dदेश पाठ",
        "content-failed-to-parse": "$1 के लेल $2 सामग्री के बिच्छेदन करए में विफल, त्रुटि: $3",
        "invalid-content-data": "अवैध डाटा सामग्री",
        "content-not-allowed-here": "[[$2]] पृष्ठ पर \"$1\" सामग्री वर्जित अछि।",
        "content-json-empty-object": "रिक्त सामग्री",
        "content-json-empty-array": "रिक्त ऐरे",
        "duplicate-args-category": "आकृति कल में डुप्लिकेट तर्कक उपयोग करैत पन्नासभ",
-       "duplicate-args-category-desc": "पनà¥\8dना à¤\9cà¥\87ना à¤¤à¤°à¥\8dà¤\95à¥\8bà¤\82 à¤\95à¥\87à¤\82 à¤¡à¥\81पà¥\8dलिà¤\95à¥\87à¤\9f à¤\95à¥\87 à¤\89पयà¥\8bà¤\97 à¤\95रà¤\88 à¤µà¤¾à¤² à¤\9fà¥\87मà¥\8dपलà¥\87à¤\9f à¤\95à¥\89ल, जेना <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> आर <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
+       "duplicate-args-category-desc": "पनà¥\8dना à¤\9cà¥\87ना à¤¤à¤°à¥\8dà¤\95सभà¤\95à¥\87 à¤¡à¥\81पà¥\8dलिà¤\95à¥\87à¤\9fà¤\95 à¤\89पयà¥\8bà¤\97 à¤\95रà¥\88वाला à¤\86à¤\95à¥\83ति à¤\95ल, जेना <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> आर <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "'''चेतौनी:''' ई पन्ना बड्ड बेसी महग विभाजक प्रकार्य आह्वान करैत अछि।\n एकरा $2 सँ कम {{PLURAL:$2|call|calls}}, ओतऽ {{PLURAL:$1|ई अछि $1 call|ई सभ अछि $1 calls}}",
        "expensive-parserfunction-category": "बड बेसी महग विभाजक आह्वानबला पन्ना सभ",
        "post-expand-template-inclusion-warning": "'''चेतौनी:''' नमूना लेबाक आकार बड्ड पैघ अछि।\nकिछु नमूना नै लेल जा सकत।",
        "post-expand-template-inclusion-category": "पन्ना सभ जतए नमूना लेबाक आकार बढ़ि गेल",
        "post-expand-template-argument-warning": "'''चेतौनी''' ऐ पन्नामे नै बेशी तँ एकटा एहेन नमूना निरुपक अछि जकर बड्ड पैघ विस्तार आकार छै।\nई निरूपक सभ हटा देल गेल अछि।",
-       "post-expand-template-argument-category": "à¤\9bà¥\8bड़ल à¤¨à¤®à¥\82ना à¤¨à¤¿à¤°à¥\82पà¤\95 à¤¬à¤²à¤¾ à¤ªà¤¨à¥\8dना सभ",
+       "post-expand-template-argument-category": "à¤\9bà¥\8bडल à¤¨à¤®à¥\82ना à¤¨à¤¿à¤°à¥\82पà¤\95 à¤¬à¤²à¤¾ à¤ªà¤¨à¥\8dनासभ",
        "parser-template-loop-warning": "नमूना परिक्रम भेटल: [[$1]]",
        "parser-template-recursion-depth-warning": "नमूना प्रत्यावर्तन गहीर सीमा पार केलक ($1)",
        "language-converter-depth-warning": "भाषान्तर गहीर सीमा पार केलक ($1)",
        "undo-failure": "मध्यवर्ती विरोधी सम्पादनक कारण ऐ सम्पादनकेँ खतम नै कएल जा सकैए।",
        "undo-norev": "ई सम्पादन खतम नै कएला जा सकैए कारण ई अछि नै वा मेटा देल गेल अछि।",
        "undo-nochange": "ऐना लगया की ई सम्पादन कें पहील से पूर्ववत करई देन अछि।",
-       "undo-summary": "$1 संशोधन खतम करू [[Special:Contributions/$2|$2]] ([[User talk:$2|talk]])",
+       "undo-summary": "[[Special:Contributions/$2|$2]] ([[User talk:$2|वार्ता]])द्वारा कएल अन्तर $1 के पूर्ववत कएलक",
        "undo-summary-username-hidden": "नुकाएल गेल प्रयोक्ताद्वारा केल गेल परिवर्तन $1 के पूर्ववत केल गेल",
        "cantcreateaccounttitle": "खाता नै बना सकल",
-       "cantcreateaccount-text": "('''$1''') अनिकेत पतासँ खाता निर्माण प्रतिबन्धित कएल गेल [[User:$3|$3]]।\n$3 द्वारा देल कारण अछि ''$2''",
+       "cantcreateaccount-text": "(<strong>$1</strong>) अनिकेत पतासँ खाता निर्माण प्रतिबन्धित कएल गेल [[User:$3|$3]]।\n$3 द्वारा देल कारण अछि ''$2''",
        "cantcreateaccount-range-text": "<strong>$1</strong> के श्रेणी में आबई वाला आई॰पी पता सऽ, जएमें आहाँ कें आई॰पी पता (<strong>$4</strong>) शामिल अछि, नया खाता के रचना [[User:$3|$3]] द्वारा अवरोधित केल गेल अछि। \n\n$3 द्वारा देल गेल कारण अछि: \"$2\"",
-       "viewpagelogs": "à¤\90 à¤ªà¤¨à¥\8dनाà¤\95 à¤µà¥\83तà¥\8dतलà¥\87à¤\96 à¤¸à¤­ à¤¦à¥\87à¤\96à¥\82",
+       "viewpagelogs": "à¤\88 à¤ªà¤¨à¥\8dनाà¤\95 à¤µà¥\83तà¥\8dतलà¥\87à¤\96सभ à¤¦à¥\87à¤\96à¥\80",
        "nohistory": "ऐ पन्ना लेल कोनो सम्पादन इतिहास नै अछि।",
        "currentrev": "नूतन संशोधन",
        "currentrev-asof": "$1 क समकालिक तखुनका संशोधन",
        "currentrevisionlink": "नूतन संशोधन",
        "cur": "हीन",
        "next": "आगाँ",
-       "last": "à¤\85à¤\82तिम",
+       "last": "पिà¤\9bला",
        "page_first": "पहिल",
        "page_last": "अन्तिम",
        "histlegend": "फाइल तुलना तंत्रांशक चयन: संशोधन तुलनाक रेडियो बक्शाकेँ चिन्हित करू आ एन्टर बटन क्लिक करू वा सभसँ नीचाँक बटन क्लिक करू। <br />\nकहबी: '''({{int:cur}})''' = अद्यतन संशोधनसँ अन्तर, '''({{int:last}})''' = अद्यतनसँ पहिलुका संशोधनसँ अन्तर, '''{{int:minoreditletter}}''' = मामूली सम्पादन।",
-       "history-fieldset-title": "à¤\87तिहास à¤\96à¤\82à¤\98ारà¥\82",
+       "history-fieldset-title": "à¤\87तिहास à¤µà¤¿à¤\9aरण à¤\95रà¥\80",
        "history-show-deleted": "खाली मेटाएल",
        "histfirst": "सभसँ पुरान",
        "histlast": "आइ-काल्हिक",
        "historysize": "({{PLURAL:$1|1 अष्टक|$1 अष्टक}})",
        "historyempty": "(रिक्त)",
        "history-feed-title": "संशोधन इतिहास",
-       "history-feed-description": "à¤\90 पन्नाक विकीपर सम्पादन इतिहास",
+       "history-feed-description": "à¤\88 पन्नाक विकीपर सम्पादन इतिहास",
        "history-feed-item-nocomment": "$2 पर $1",
        "history-feed-empty": "आग्रह कएल पन्ना नै अछि।\nई विकीसँ चाहे मेटा देल गेल अछि, वा एकर नाम बदलि देल गेल अछि।\nप्रयास करू [[Special:Search|searching on the wiki]] सम्बन्धित नव पन्ना सभ लेल।",
        "history-edit-tags": "चुनल गेल अवतरणसभ के ट्याग सम्पादित करी।",
        "rev-deleted-comment": "(सम्पादन इतिहास हटाएल गेल)",
        "rev-deleted-user": "(प्रयोक्तानाम हटाएल गेल)",
        "rev-deleted-event": "(वृतलेख कार्य हटावोल गेल)",
-       "rev-deleted-user-contribs": "[पà¥\8dरयà¥\8bà¤\95à¥\8dतानाम à¤µà¤¾ à¤\85निà¤\95à¥\87त à¤¹à¤\9fाà¤\8fल à¤\97à¥\87ल- à¤¯à¥\8bà¤\97दानमà¥\87 à¤¨à¥\81à¤\95ाà¤\8fल à¤¸à¤®à¥\8dपादित à¤\95रà¥\82]",
+       "rev-deleted-user-contribs": "[पà¥\8dरयà¥\8bà¤\95à¥\8dतानाम à¤µà¤¾ à¤\85निà¤\95à¥\87त à¤¹à¤\9fाà¤\8fल à¤\97à¥\87ल- à¤¯à¥\8bà¤\97दानमà¥\87 à¤¨à¥\81à¤\95ाà¤\8fल à¤¸à¤®à¥\8dपादित à¤\95रà¥\80]",
        "rev-deleted-text-permission": "ऐ पन्नाक संशोधन '''मेटा देल गेल'''।\nवर्णन देखि सकै छी [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log] मे।",
        "rev-suppressed-text-permission": "ए पृष्ठक अवतरण '''नुकाएल गेल अछि'''।\nअहाँ एकरा देख सकैत छी; विवरण [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} नुकाएल लग] में भेट सकैत अछि।",
        "rev-deleted-text-unhide": "ऐ पन्नाक सम्पादन '''मेटाएल''' गेल।\nवर्णन ताकि सकै छी [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log] मे।\nअहाँ अखनो [$1 ई संशोधन देखू] जँ अहाँ आगाँ बढ़ऽ चाहै छी।",
        "rev-suppressed-unhide-diff": "ऐ तुलना निर्धारकक कोनो एकटा संशोधन '''दबाएल''' गेल अछि।\nवर्णन ताकि सकै छी [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} suppression log] मे।\nअहाँ अखनो [$1 ई तुलना निर्धारक देखू] जँ अहाँ आगाँ बढ़ऽ चाहै छी।",
        "rev-deleted-diff-view": "ई पन्ना संशोधनऐ तुलना निर्धारकक कोनो एकटा संशोधन '''मेटाएल''' गेल अछि।\nअहाँ एकरा देख सकै छी; वर्ण भेट सकैए [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log] मे।",
        "rev-suppressed-diff-view": "ऐ तुलना निर्धारकक कोनो एकटा संशोधन '''दबाएल''' गेल अछि।\nअहाँ एकरा देख सकै छी; वर्णन भेट सकैए [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} suppression log]मे।",
-       "rev-delundel": "दà¥\87à¤\96ाà¤\89/ à¤¨à¥\81à¤\95ाà¤\89",
-       "rev-showdeleted": "दà¥\87à¤\96ाà¤\89",
-       "revisiondelete": "मà¥\87à¤\9fाà¤\89 / à¤¸à¤\82शà¥\8bधन à¤«à¥\87रसà¤\81 à¤\86नà¥\82",
+       "rev-delundel": "दà¥\83षà¥\8dà¤\9fिà¤\95à¥\81शलता à¤¬à¤¦à¤²à¥\80",
+       "rev-showdeleted": "दà¥\87à¤\96ाबà¥\80",
+       "revisiondelete": "à¤\85वतरण à¤¹à¤\9fाबà¥\80/पà¥\81नरà¥\8dसà¥\8dथापित à¤\95रà¥\80",
        "revdelete-nooldid-title": "अमान्य लक्ष्य संशोधन",
        "revdelete-nooldid-text": "अहाँ चाहे तँ ऐ प्रकार्यक निष्पादन लेल कोनो विशेष लक्ष्य संशोधन नै तँए-तफसिला केने छी, विशेष संशोधन नै उपस्थित अछि, वा अहाँ वर्तमान संशोधनकेँ नुकेबाक प्रयास कऽ रहल छी।",
        "revdelete-no-file": "विषिष्ट संचिका अछिये नै।",
        "revdelete-show-file-submit": "हँ",
        "revdelete-selected-text": "[[:$2]] {{PLURAL:$1|क|के}} चयनित अवतरण:",
        "revdelete-selected-file": "[[:$2]] {{PLURAL:$1|क|के}} चयनित फाइल अवतरण:",
-       "logdelete-selected": "{{PLURAL:$1|चुनल वृत्तलेख घटना|चुनल वृत्तलेख घटना सभ}}:",
+       "logdelete-selected": "{{PLURAL:$1|चुनल वृत्तलेख घटना|चुनल वृत्तलेख घटनासभ}}:",
        "revdelete-text-text": "हटाएल गेल अवतरण पृष्ठ इतिहासमें देखाएल जाएत मुदा वोकर सामग्री सार्वजनिक रूपसँ नै देखाएल जा सकएत अछि।",
        "revdelete-text-file": "हटाएल गेल अवतरण पृष्ठ इतिहासमें देखाएल जाएत मुदा वोकर सामग्री सार्वजनिक रूपसँ नै देखाएल जा सकएत अछि।",
        "logdelete-text": "हटाए गेल प्रवेश घटनासभ अखैनो भी लॉग में दिखाबल ज्यात, लेकिन ओकर सामग्री के कुछ भाग के सार्वजनीक करबाक के लेल दुर्गम भ्या जेत।",
-       "revdelete-confirm": "à¤\95à¥\83पा à¤\95ऽ à¤\86शà¥\8dवसà¥\8dत à¤­à¤½ à¤\9cाà¤\89 à¤\9cà¥\87 à¤\85हाà¤\81 à¤\88 à¤\95रऽ à¤\9aाहà¥\88 à¤\9bà¥\80, à¤\85हाà¤\81à¤\95à¥\87à¤\81 à¤\8fà¤\95र à¤ªà¤°à¤¿à¤£à¤¾à¤®à¤\95 à¤\9cनतब à¤\85à¤\9bि, à¤\86 à¤\85हाà¤\81 à¤\8fà¤\95रा [[{{MediaWiki:Policy-url}}|निà¤\85म]] क अनुसार कऽ रहल छी।",
+       "revdelete-confirm": "à¤\95à¥\83पा à¤\95ऽ à¤\86शà¥\8dवसà¥\8dत à¤­à¤½ à¤\9cाà¤\89 à¤\9cà¥\87 à¤\85हाà¤\81 à¤\88 à¤\95रऽ à¤\9aाहà¥\88 à¤\9bà¥\80, à¤\85हाà¤\81à¤\95à¥\87à¤\81 à¤\8fà¤\95र à¤ªà¤°à¤¿à¤£à¤¾à¤®à¤\95 à¤\9cनतब à¤\85à¤\9bि, à¤\86 à¤\85हाà¤\81 à¤\8fà¤\95रा [[{{MediaWiki:Policy-url}}|नियम]] क अनुसार कऽ रहल छी।",
        "revdelete-suppress-text": "दबाबैबला काज '''मात्र''' ऐ सभ स्थितिमे प्रयोग करू:\n* मानहानिक सम्भावनाबला सूचना\n* भ्रमयुक्त व्यक्तिगत सूचना\n*: ''घरक पता आ टेलीफोन नम्बर, सामाजिक सुरक्षा संख्या, आदि।''",
-       "revdelete-legend": "दà¥\83शà¥\8dयतापर à¤ªà¥\8dरतिबनà¥\8dधà¤\95 à¤¸à¥\80मा à¤²à¤\97ाà¤\89",
+       "revdelete-legend": "दà¥\83शà¥\8dयतापर à¤ªà¥\8dरतिबनà¥\8dधà¤\95 à¤¸à¥\80मा à¤²à¤\97ाबà¥\80",
        "revdelete-hide-text": "संशोधन पाठ नुकाउ",
-       "revdelete-hide-image": "सà¤\82à¤\9aिà¤\95ाà¤\95 à¤ªà¤¾à¤  à¤¨à¥\81à¤\95ाà¤\89",
+       "revdelete-hide-image": "सà¤\9eà¥\8dà¤\9aिà¤\95ाà¤\95 à¤ªà¤¾à¤  à¤¨à¥\81à¤\95ाबà¥\80",
        "revdelete-hide-name": "क्रिया आ लक्ष्य नुकाउ",
        "revdelete-hide-comment": "सम्पादन सार नुकाउ",
        "revdelete-hide-user": "सम्पादकक प्रयोक्तानाम/ अनिकेत नुकाउ",
-       "revdelete-hide-restricted": "सà¤\82à¤\9aालà¤\95 à¤\86 à¤¦à¥\8bसरासà¤\81 à¤¦à¤¤à¥\8dताà¤\82श à¤¦à¤¬à¤¾à¤\89",
-       "revdelete-radio-same": "(नà¥\88 à¤¬à¤¦à¤²à¥\82)",
+       "revdelete-hide-restricted": "पà¥\8dरबनà¥\8dधà¤\95 à¤\86 à¤¦à¥\8bसरासà¤\81 à¤¦à¤¤à¥\8dताà¤\82श à¤¨à¥\81à¤\95ाबà¥\80",
+       "revdelete-radio-same": "(नà¥\88 à¤¬à¤¦à¤²à¥\80)",
        "revdelete-radio-set": "हँ",
        "revdelete-radio-unset": "नै",
-       "revdelete-suppress": "सà¤\82à¤\9aालà¤\95 à¤\86 à¤¦à¥\8bसरा à¤²à¥\87ल à¤¦à¤¤à¥\8dताà¤\82श à¤¦à¤¬à¤¾à¤\89",
-       "revdelete-unsuppress": "पà¥\81नरà¥\8dसà¥\8dथापित à¤¸à¤\82शà¥\8bधल à¤²à¥\87ल à¤ªà¥\8dरतिबनà¥\8dध à¤¹à¤\9fाà¤\89",
+       "revdelete-suppress": "पà¥\8dरबनà¥\8dधà¤\95 à¤\86 à¤¦à¥\8bसरा à¤²à¥\87ल à¤¦à¤¤à¥\8dताà¤\82श à¤¨à¥\81à¤\95ाबà¥\80",
+       "revdelete-unsuppress": "पà¥\81नरà¥\8dसà¥\8dथापित à¤¸à¤\82शà¥\8bधन à¤²à¥\87ल à¤ªà¥\8dरतिबनà¥\8dध à¤¹à¤\9fाबà¥\80",
        "revdelete-log": "कारण:",
-       "revdelete-submit": "à¤\95िà¤\9bà¥\81 à¤\9aà¥\81नलपर à¤²à¤¾à¤\97à¥\82 à¤\95रà¥\82{{PLURAL:$1|सà¤\82शà¥\8bधन|सà¤\82शà¥\8bधन à¤¸à¤­}}",
+       "revdelete-submit": "à¤\9aयनित {{PLURAL:$1|सà¤\82सà¥\8bधन|सà¤\82सà¥\8bधनसभ}} à¤ªà¤° à¤²à¤¾à¤\97à¥\82 à¤\95रà¥\80",
        "revdelete-success": "'''संशोधन दृश्यता सफलतापूर्वक अद्यतन कएल गेल।'''",
-       "revdelete-failure": "$1'''संशोधन दृश्यता अद्यतन नै कएल जा सकल:'''",
+       "revdelete-failure": "संशोधन दृश्यता अद्यतन नै कएल जा सकल: $1",
        "logdelete-success": "'''वृत्तलेख दृश्यता सफलतासँ निर्धारित भेल।'''",
        "logdelete-failure": "'''वृत्तलेख दृश्यता निर्धारित नै भऽ सकल।'''$1",
-       "revdel-restore": "दà¥\83षà¥\8dà¤\9fिà¤\95à¥\81शलता à¤¬à¤¦à¤²à¥\82",
+       "revdel-restore": "दà¥\83षà¥\8dà¤\9fिà¤\95à¥\81शलता à¤¬à¤¦à¤²à¥\80",
        "pagehist": "पन्नाक इतिहास",
        "deletedhist": "मेटाएल इतिहास",
-       "revdelete-hide-current": "तिथि $2, $1 क अनुक्रमकेँ नुकेबा काल भ्रम: ई वर्तमान संशोधन छी।\nई नुकाएल नै जा सकैए।",
+       "revdelete-hide-current": "तिथि $2 के $1 बजे अनुक्रम नुकेबा काल भ्रम: ई वर्तमान संशोधन छी।\nई नुकाएल नै जा सकैए।",
        "revdelete-show-no-access": "तिथि $2, $1क बौस्तुक देखेबामे भ्रम: ई बौस्तु \"प्रतिबन्धित\" चिन्हित कएल गेल अछि।",
        "revdelete-modify-no-access": "तिथि $2, $1क बौस्तुक संशोधनमे भ्रम: ई बौस्तु \"प्रतिबन्धित\" चिन्हित कएल गेल अछि।\nअहाँकेँ एकरा लग लागि नै अछि।",
        "revdelete-modify-missing": "बौस्तुक चेन्ह-संकेत  $1 मे संशोधन भ्रम: ई दत्तनिधिमे नै अछि।",
        "revdelete-reason-dropdown": "*सामान्य मेटेबाक कारण सभ\n** सर्वाधिकारक उल्लंघन\n** अनुचित व्यक्तिगत सूचना\n** सम्भावित मानहानिक सूचना",
        "revdelete-otherreason": "दोसर/ अतिरिक्त कारण:",
        "revdelete-reasonotherlist": "दोसर कारण",
-       "revdelete-edit-reasonlist": "मेटेबाक कारणक सम्पादन करू",
+       "revdelete-edit-reasonlist": "मेटेबाक कारण बदली",
        "revdelete-offender": "संशोधन केनिहार:",
        "suppressionlog": "दबाएलगेल वृत्तलेख",
        "suppressionlogtext": "नीचाँ मेटाएल आ प्रतिबन्धक उल्लेख अछि जे संचालकसँ नुकाएल सामिग्री अछि।\nअखन स्थित प्रभावी प्रतिबन्ध आ अवरोध लेल देखू [[Special:BlockList|IP block list]] ।",
        "mergehistory": "मिज्झर भेल पन्ना सभक इतिहास",
        "mergehistory-header": "ई पन्ना अहाँकेँ एकटा स्रोत पन्नाक एकटा नव पन्नामे संशोधन इतिहासकेँ मिज्झर करबाक अनुमति दैत अछि।\nसुनिश्चित होउ जे ई परिवर्तन ऐतिहासिक पन्ना सांतत्य स्थापित करत।",
-       "mergehistory-box": "दू पन्नाक संशोधनकेँ मिज्झर करू।",
+       "mergehistory-box": "दू पन्नाक संशोधन मिज्झर करी।",
        "mergehistory-from": "मूल पन्ना:",
        "mergehistory-into": "लक्ष्य पन्ना:",
        "mergehistory-list": "मिज्झर योग्य सम्पादन इतिहास",
        "mergehistory-merge": "[[:$1]] एकर संशोधन सभकेँ [[:$2]] मे मिलाएल जा सकैए।\nरेडियो बटन स्तम्भक प्रयोग मात्र संशोधनकेँ निर्धारित समए वा ओइसँ पहिने मिज्झर करबामे प्रयोग करू।\nमोन राखू जे उपर नीचाँक लागिक प्रयोग ऐ स्तम्भकेँ पुनर्स्थापित कऽ देत।",
        "mergehistory-go": "मिज्झर होइ योग्य सम्पादन सभकेँ देखाउ",
-       "mergehistory-submit": "संशोधन सभकेँ मिज्झर करू",
+       "mergehistory-submit": "संशोधन सभके मिज्झर करी",
        "mergehistory-empty": "कोनो संशोधन मिज्झर नै कएल जा सकैए।",
        "mergehistory-done": "$3 {{PLURAL:$3|संशोधन|संशोधन सभ}} एकर $1 सफलता पूर्वक मिज्झर कएल गेल [[:$2]] मे।",
        "mergehistory-fail": "इतिहासक मिश्रणकेँ नै कऽ सकल, कृपा कऽ पन्ना आ समए परिमितिकेँ फेरसँ जाँचू।",
        "difference-title-multipage": "\"$1\" आर \"$2\" पृष्ठसभ मे अंतर",
        "difference-multipage": "(पन्ना सभक बीचमे अन्तर)",
        "lineno": "पंक्त्ति $1:",
-       "compareselectedversions": "à¤\9aयन à¤\95à¤\8fल à¤¸à¤\82शà¥\8bधन à¤¸à¤­à¤\95 à¤¤à¥\81लना à¤\95रà¥\82",
-       "showhideselectedversions": "दà¥\87à¤\96ाà¤\89/ à¤¨à¥\81à¤\95ाà¤\89 à¤\9aयनित à¤¸à¤\82शà¥\8bधन à¤¸à¤­",
+       "compareselectedversions": "à¤\9aयन à¤\95à¤\8fल à¤¸à¤\82शà¥\8bधन à¤¸à¤­à¤\95 à¤¤à¥\81लना à¤\95रà¥\80",
+       "showhideselectedversions": "à¤\9aयनित à¤\85वतरण à¤¦à¥\87à¤\96ाबà¥\80/नà¥\81à¤\95ाबà¥\80",
        "editundo": "असम्पादन",
        "diff-empty": "(कोनो अंतर नै)",
        "diff-multi-sameuser": "(इ प्रयोक्ताद्वारा {{PLURAL:$1|कएल गेल बीचके एक अवतरण नै देखाओल गेल |कएल गेल बीचके $1 अवतरण नै देखाओल गेल}})",
        "nextn": "आगाँ {{PLURAL:$1|$1}}",
        "prev-page": "पहिलुका पृष्ठ",
        "next-page": "अगला पृष्ठ",
-       "prevn-title": "पहिलुका $1 {{PLURAL:$1|परिणाम|परिणाम सभ}}",
-       "nextn-title": "आगाँ $1 {{PLURAL:$1|परिणाम|परिणाम सभ}}",
+       "prevn-title": "पहिलुका $1 {{PLURAL:$1|परिणाम|परिणामसभ}}",
+       "nextn-title": "आगाँ $1 {{PLURAL:$1|परिणाम|परिणामसभ}}",
        "shown-title": "प्रति पन्ना $1 {{PLURAL:$1|परिणाम|परिणामसभ}} देखाउ",
-       "viewprevnext": "दà¥\87à¤\96à¥\82  ($1 {{int:pipe-separator}} $2) ($3)",
-       "searchmenu-exists": "'''ऐ विकीपर एकटा पन्ना अछि \"[[:$1]]\" नामसँ।'''",
+       "viewprevnext": "दà¥\87à¤\96à¥\80 ($1 {{int:pipe-separator}} $2) ($3)",
+       "searchmenu-exists": "<strong>ऐ विकीपर एकटा पन्ना अछि \"[[:$1]]\" नामसँ।<strong>{{PLURAL:$2|0=|अन्य भेटल परिणामसभ सेहो देखी}}",
        "searchmenu-new": "''' पन्ना निर्माण \"[[:$1]]\" ऐ विकीपर !'''",
-       "searchprofile-articles": "à¤\85नà¥\81à¤\95à¥\8dरम à¤ªà¤¨à¥\8dना à¤¸à¤­",
+       "searchprofile-articles": "सामà¤\97à¥\8dरà¥\80 à¤ªà¥\83षà¥\8dठ",
        "searchprofile-images": "दृश्य-श्रव्य",
        "searchprofile-everything": "सभटा",
        "searchprofile-advanced": "विशिष्ट",
-       "searchprofile-articles-tooltip": "$1 à¤®à¥\87 à¤¤à¤¾à¤\95à¥\82",
+       "searchprofile-articles-tooltip": "$1 à¤®à¥\87 à¤¤à¤¾à¤\95à¥\80",
        "searchprofile-images-tooltip": "सञ्चिकासभ लेल ताकी",
-       "searchprofile-everything-tooltip": "सभà¤\9fा à¤¸à¤¾à¤®à¤¿à¤\97à¥\8dरà¥\80मà¥\87 à¤¤à¤¾à¤\95à¥\82 (चर्चा पन्ना सहित)",
-       "searchprofile-advanced-tooltip": "बनाà¤\8fल à¤¨à¤¾à¤®à¤¸à¥\8dथान à¤¸à¤­à¤®à¥\87 à¤¤à¤¾à¤\95à¥\82",
+       "searchprofile-everything-tooltip": "सभà¤\9fा à¤¸à¤¾à¤®à¤¿à¤\97à¥\8dरà¥\80मà¥\87 à¤¤à¤¾à¤\95à¥\80 (चर्चा पन्ना सहित)",
+       "searchprofile-advanced-tooltip": "बनाà¤\8fल à¤¨à¤¾à¤®à¤¸à¥\8dथान à¤¸à¤­à¤®à¥\87 à¤¤à¤¾à¤\95à¥\80",
        "search-result-size": "$1 ({{PLURAL:$2|1 शब्द|$2 शब्दसभ}})",
        "search-result-category-size": "{{PLURAL:$1|1 सदस्य|$1 सदस्य}} ({{PLURAL:$2|1 उपसंवर्ग|$2 उपसंवर्ग}}, {{PLURAL:$3|1 संचिका|$3 संचिका}})",
        "search-redirect": "(रस्ता बदलेन $1)",
        "search-category": "(श्रेणी $1)",
        "search-file-match": "(फाइल सामग्रीसे मेल खेलक अछि)",
        "search-suggest": "अहाँ मोने अछि जे:$1",
-       "search-interwiki-caption": "समà¥\8dबनà¥\8dधित à¤ªà¤°à¤¿à¤¯à¥\8bà¤\9cना à¤¸à¤­",
-       "search-interwiki-default": "$1 à¤¸à¤­à¤\9fा परिणाम:",
+       "search-interwiki-caption": "à¤\85नà¥\8dय à¤ªà¥\8dरà¤\95लà¥\8dप",
+       "search-interwiki-default": "$1 à¤¸à¤\81 परिणाम:",
        "search-interwiki-more": "(आर)",
        "search-relatedarticle": "सम्बन्धी",
        "searchrelated": "सम्बन्धी",
        "search-nonefound": "अभ्यर्थनासँ मेल खाइत कोनो परिणाम नै भेटल।",
        "powersearch-legend": "विशेष खोज",
        "powersearch-ns": "निर्धारकमे खोज",
-       "powersearch-togglelabel": "à¤\9cाà¤\81à¤\9aà¥\82:",
+       "powersearch-togglelabel": "à¤\9cाà¤\81à¤\9aà¥\80:",
        "powersearch-toggleall": "सभटा",
        "powersearch-togglenone": "कोनो नै",
        "powersearch-remember": "याद राखु भविष्यकऽ खोजीके लेल",
        "search-external": "बाह्य खोज",
-       "searchdisabled": "{{अन्तर्जाल}} खोज बन्न अछि।\nअहाँक गूगलक माध्यमसँ ऐ बीच ताकि सकै छी।\nमोन राखू जे तकर विवरणी {{अन्तर्जाल}} सामिग्री समयातीत भऽ सकैए।",
+       "searchdisabled": "{{SITENAME}} खोज बन्द अछि।\nता अहाँ गूगलक माध्यमसँ ताकि सकै छी।\nमोन राखी जे तकर विवरणी {{SITENAME}} समिग्री समयातीत भऽ सकैए।",
        "search-error": "खोजवाके समय निम्न त्रुटि उत्पन्न भेल: $1",
        "preferences": "विकल्प",
        "mypreferences": "खासमखास",
-       "prefs-edits": "समà¥\8dपादनà¤\95 à¤¸à¤\82à¤\96à¥\8dया",
-       "prefsnologintext2": "अपन वरीयतासभके बदलैक लेल $1 करू।",
+       "prefs-edits": "समà¥\8dपादनà¤\95 à¤¸à¤\99à¥\8dà¤\96à¥\8dया:",
+       "prefsnologintext2": "अपन वरीयतासभके बदलैक लेल कृपया सम्प्रवेश करी।",
        "prefs-skin": "रूप",
        "skin-preview": "पूर्वावलोकन",
-       "datedefault": "à¤\95à¥\8bनà¥\8b à¤®à¥\8bनपसà¤\82द नै",
-       "prefs-labs": "प्रायोगिक गुण सभ",
+       "datedefault": "à¤\95à¥\8bनà¥\8b à¤ªà¤¸à¤¨à¥\8dद नै",
+       "prefs-labs": "प्रायोगिक गुणसभ",
        "prefs-user-pages": "उपयोगकर्ताक पृष्ठ",
        "prefs-personal": "प्रयोक्ता परिचय",
-       "prefs-rc": "हालक परिवर्तन",
+       "prefs-rc": "लà¤\97क परिवर्तन",
        "prefs-watchlist": "साकांक्ष-सूची",
-       "prefs-editwatchlist": "साà¤\95ाà¤\82à¤\95à¥\8dषसà¥\82à¤\9aà¥\80 à¤¬à¤¦à¤²à¥\82",
+       "prefs-editwatchlist": "साà¤\95ाà¤\82à¤\95à¥\8dषसà¥\82à¤\9aà¥\80 à¤¬à¤¦à¤²à¥\80",
        "prefs-editwatchlist-label": "अपन साकांक्षसूचीक प्रविष्टिसभ सम्पादित करी:",
        "prefs-editwatchlist-edit": "देखी आर अपन साकांक्षसूची पर शीर्षकके हटाबी।",
        "prefs-editwatchlist-raw": "काँच साकांक्षसूची संपादित करी",
        "prefs-editwatchlist-clear": "अपन साकांक्षसूची खालि करी",
        "prefs-watchlist-days": "साकांक्ष-सूचीमे एतेक दिन देखाएल:",
        "prefs-watchlist-days-max": "बेसीसँ बेसी $1 {{PLURAL:$1|दिन|दिन}}",
-       "prefs-watchlist-edits": "बढ़ाà¤\8fल à¤¸à¤¾à¤\95ाà¤\82à¤\95à¥\8dष à¤¸à¥\82à¤\9aà¥\80मà¥\87 à¤\85धिà¤\95तम à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤¦à¥\87à¤\96ाà¤\8fब:",
+       "prefs-watchlist-edits": "बढाएल साकांक्ष सूचीमे अधिकतम परिवर्तन देखाएब:",
        "prefs-watchlist-edits-max": "बेसीसँ बेसी:१०००",
        "prefs-watchlist-token": "साकांक्ष-सूची खेप:",
        "prefs-misc": "आर",
-       "prefs-resetpass": "à¤\95à¥\82à¤\9fशबà¥\8dद à¤¬à¤¦à¤²à¥\82",
+       "prefs-resetpass": "à¤\95à¥\82à¤\9fशबà¥\8dद à¤¬à¤¦à¤²à¥\80",
        "prefs-changeemail": "ई-पत्र संकेत बदलू",
-       "prefs-setemail": "à¤\88-पतà¥\8dर à¤¸à¤\82à¤\95à¥\87त à¤¨à¤¿à¤°à¥\8dधारित à¤\95रà¥\82",
-       "prefs-email": "à¤\88-पतà¥\8dर à¤\9aà¥\81नाव",
+       "prefs-setemail": "à¤\88-पतà¥\8dर à¤ à¥\87à¤\97ान à¤¨à¤¿à¤°à¥\8dधारित à¤\95रà¥\80",
+       "prefs-email": "à¤\88-पतà¥\8dर à¤µà¤¿à¤\95लà¥\8dपसभ",
        "prefs-rendering": "मुँहकान",
-       "saveprefs": "सà¥\81रà¤\95à¥\8dषित à¤\95रà¥\82",
+       "saveprefs": "सà¤\99à¥\8dà¤\97à¥\8dरह à¤\95रà¥\80",
        "restoreprefs": "सभटा पूर्वनिर्धारित चयनकेँ फेरसँ आनू",
        "prefs-editing": "सम्पादन कऽ रहल छी",
-       "rows": "पाँती सभ",
-       "columns": "स्तम्भ सभ",
-       "searchresultshead": "ताà¤\95à¥\82",
+       "rows": "पाँतीसभ",
+       "columns": "स्तम्भसभ",
+       "searchresultshead": "ताà¤\95à¥\80",
        "stub-threshold": "सीमा <a href=\"#\" class=\"stub\">काटल लागि</a> सँचियाएल (अष्टक):",
        "stub-threshold-sample-link": "उदाहरण",
        "stub-threshold-disabled": "अशक्त कएल",
        "recentchangesdays": "आइ-काल्हिक परिवर्तनमे कतेक दिन देखाएल गेल:",
        "recentchangesdays-max": "बेसीसँ बेसी $1 {{PLURAL:$1|दिन|दिन}}",
        "recentchangescount": "पूर्वनिर्धारित रूपेँ एतेक सम्पादन देखाएल गेल:",
-       "prefs-help-recentchangescount": "à¤\90 मे सम्मिलित अछि आइ-काल्हिक परिवर्तन, पन्नाक इतिहास आ वृत्तलेख",
+       "prefs-help-recentchangescount": "à¤\8fहिमे सम्मिलित अछि आइ-काल्हिक परिवर्तन, पन्नाक इतिहास आ वृत्तलेख",
        "prefs-help-watchlist-token2": "इ अहाँके कंक्षाकसूचीके वेब फिडके गोपनीय चाभी छी ।\nइ जे कोइ लंग अछि उ अपन कंक्षाकसूची पैढ सकैत अछि, ऐ लेल इ क्यों गोटा स नै बाटब ।\n[[Special:ResetTokens|एकरा रीसेट करवाक लेल यै ठाम क्लिक करु]]।",
        "savedprefs": "अहाँक पसिन्न सुरक्षित कएल गेल",
        "savedrights": "प्रयोक्ता {{GENDER:$1|$1}}क सदस्य अधिकार सङ्ग्रह कएल गेल।",
        "timezonelegend": "समय क्षेत्र",
        "localtime": "स्थानीय समए:",
-       "timezoneuseserverdefault": "पà¥\82रà¥\8dवनिरà¥\8dधारित à¤µà¤¿à¤¤à¤°à¤\95 à¤ªà¥\8dरयà¥\81à¤\95à¥\8dत à¤\95रà¥\82 ($1)",
-       "timezoneuseoffset": "à¤\86न (सà¤\82तà¥\81लन à¤\95à¥\87निहारà¤\95 à¤¨à¤¿à¤°à¥\8dदà¥\87श à¤\95रà¥\82)",
+       "timezoneuseserverdefault": "पà¥\82रà¥\8dवनिरà¥\8dधारित à¤µà¤¿à¤¤à¤°à¤\95 à¤ªà¥\8dरयà¥\81à¤\95à¥\8dत à¤\95रà¥\80 ($1)",
+       "timezoneuseoffset": "à¤\86न (सनà¥\8dतà¥\81लन à¤\95à¥\87निहारà¤\95 à¤¨à¤¿à¤°à¥\8dदà¥\87श à¤\95रà¥\80)",
        "servertime": "वितरक समए:",
-       "guesstimezone": "à¤\97वà¥\87षà¤\95à¤\95 à¤ªà¥\8dरयà¥\8bà¤\97 à¤\95ऽ à¤­à¤°à¥\82",
-       "timezoneregion-africa": "à¤\85फà¥\8dरà¥\80का",
+       "guesstimezone": "à¤\97वà¥\87षà¤\95à¤\95 à¤ªà¥\8dरयà¥\8bà¤\97 à¤\95ऽ à¤­à¤°à¥\80",
+       "timezoneregion-africa": "à¤\85फà¥\8dरिका",
        "timezoneregion-america": "अमेरिका",
-       "timezoneregion-antarctica": "à¤\85à¤\82टार्कटिका",
+       "timezoneregion-antarctica": "à¤\85नà¥\8dटार्कटिका",
        "timezoneregion-arctic": "आर्कटिक",
-       "timezoneregion-asia": "à¤\8fà¤िया",
-       "timezoneregion-atlantic": "à¤\85à¤\9fलाà¤\82टिक महासागर",
+       "timezoneregion-asia": "à¤\8fसिया",
+       "timezoneregion-atlantic": "à¤\85à¤\9fलानà¥\8dटिक महासागर",
        "timezoneregion-australia": "अस्ट्रेलिया",
        "timezoneregion-europe": "यूरोप",
-       "timezoneregion-indian": "हिà¤\82द महासागर",
-       "timezoneregion-pacific": "पà¥\8dरशाà¤\82त महासागर",
-       "allowemail": "à¤\86न à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dताà¤\95 à¤\88-पतà¥\8dर à¤¸à¤®à¤°à¥\8dथ à¤\95रà¥\82",
-       "prefs-searchoptions": "à¤\96à¥\8bà¤\9c à¤µà¤¿à¤\95लà¥\8dप",
-       "prefs-namespaces": "नामस्थान सभ",
+       "timezoneregion-indian": "हिनà¥\8dद महासागर",
+       "timezoneregion-pacific": "पà¥\8dरशानà¥\8dत महासागर",
+       "allowemail": "à¤\86न à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dताà¤\95 à¤\88-पतà¥\8dर à¤¸à¤®à¤°à¥\8dथ à¤\95रà¥\80",
+       "prefs-searchoptions": "ताà¤\95à¥\80",
+       "prefs-namespaces": "नामस्थानसभ",
        "default": "पूर्वनिर्धारित",
-       "prefs-files": "सà¤\82à¤\9aिà¤\95ा सभ",
-       "prefs-custom-css": "à¤\96ास à¤¸à¥\80.à¤\8fस.à¤\8fस.",
+       "prefs-files": "सà¤\9eà¥\8dà¤\9aिà¤\95ासभ",
+       "prefs-custom-css": "à¤\96ास à¤¸à¤¿à¤¯à¤¸à¤¯à¤¸",
        "prefs-custom-js": "खास जावास्क्रिप्ट",
        "prefs-common-css-js": "सभ रूप लेल साझी सी.एस.एस./ जावास्क्रिप्ट:",
        "prefs-reset-intro": "अहाँ ऐ पन्नाक प्रयोग अपन विकल्पकेँ पूर्वनिविष्ट रूपेँ जाल पुनर्निधारित करबा लेल कऽ सकै छी।\nई बदलल नै जा सकैए।",
        "username": "{{GENDER:$1|प्रयोगकर्तानाम}}:",
        "prefs-memberingroups": "निम्नलिखित {{PLURAL:$1|समूह|समूहसभ}}क {{GENDER:$2|सदस्य}}:",
        "prefs-memberingroups-type": "$1",
-       "prefs-registration": "पà¤\82जीकरणक समए:",
+       "prefs-registration": "पà¤\9eà¥\8dजीकरणक समए:",
        "prefs-registration-date-time": "$1",
        "yourrealname": "असली नाम:",
        "yourlanguage": "भाषा:",
        "prefs-help-email-others": "अहाँ ई विकल्प चुनि सकै छी जे अहाँकेँ दोसरा द्वारा ई-पत्रसँ, अहाँक प्रयोक्ता वा वार्ता पन्नापर देल लिंकक माध्यमसँ, सम्पर्क कएल जा सकए।\nअहाँक ई-पत्र संकेतक खुलासा नै हएत जखन कियो आन अहाँसँ सम्पर्क करत।",
        "prefs-help-email-required": "ई-पत्र संकेत जरूरी अछि।",
        "prefs-info": "न्यूनतम जानकारी",
-       "prefs-i18n": "à¤\85à¤\82तर्राष्ट्रियकरण",
-       "prefs-signature": "à¤\9aà¥\87नà¥\8dहासà¥\80",
-       "prefs-dateformat": "तिथिक बगेबानी",
+       "prefs-i18n": "à¤\85नà¥\8dतर्राष्ट्रियकरण",
+       "prefs-signature": "हसà¥\8dताà¤\95à¥\8dषर",
+       "prefs-dateformat": "तिथि प्रारूप",
        "prefs-timeoffset": "समए संशोधक",
        "prefs-advancedediting": "विशिष्ट विकल्प सभ",
-       "prefs-editor": "सà¤\82पादक",
+       "prefs-editor": "समà¥\8dपादक",
        "prefs-preview": "पूर्वावलोकन",
-       "prefs-advancedrc": "विशिष्ट विकल्प सभ",
-       "prefs-advancedrendering": "विशिष्ट विकल्प सभ",
-       "prefs-advancedsearchoptions": "विशिष्ट विकल्प सभ",
-       "prefs-advancedwatchlist": "विशिष्ट विकल्प सभ",
-       "prefs-displayrc": "दृश्य विकल्प सभ",
-       "prefs-displaywatchlist": "दृश्य विकल्प सभ",
+       "prefs-advancedrc": "विशिष्ट विकल्पसभ",
+       "prefs-advancedrendering": "विशिष्ट विकल्पसभ",
+       "prefs-advancedsearchoptions": "विशिष्ट विकल्पसभ",
+       "prefs-advancedwatchlist": "विशिष्ट विकल्पसभ",
+       "prefs-displayrc": "दृश्य विकल्पसभ",
+       "prefs-displaywatchlist": "दृश्य विकल्पसभ",
        "prefs-tokenwatchlist": "टोकन",
-       "prefs-diffs": "अन्तर निर्धारक सभ",
+       "prefs-diffs": "अन्तर",
        "prefs-help-prefershttps": "इ प्राथमिकता अहाँके फेर स सम्प्रवेश करलाक बाद प्रभाव पडत।",
        "prefs-tabs-navigation-hint": "सुझाव: अहाँ टैब्स सूचीमे टैब्सके बीच आवागमन करवाक लेल बाम आर दाहिना बागलके कुंजिसभके उपयोग कइर सकैत छी।",
        "userrights": "प्रयोक्ता अधिकारक प्रबन्धन",
-       "userrights-lookup-user": "पà¥\8dरयà¥\8bà¤\95à¥\8dता à¤¸à¤\82वरà¥\8dà¤\97 à¤¸à¤­à¤\95 à¤ªà¥\8dरबनà¥\8dध à¤\95रà¥\82",
-       "userrights-user-editname": "à¤\8fà¤\95à¤\9fा à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dतानाम à¤²à¤¿à¤\96à¥\82:",
+       "userrights-lookup-user": "पà¥\8dरयà¥\8bà¤\95à¥\8dता à¤¸à¤®à¥\82हसभà¤\95 à¤ªà¥\8dरबनà¥\8dध à¤\95रà¥\80",
+       "userrights-user-editname": "à¤\8fà¤\95à¤\9fा à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dतानाम à¤²à¤¿à¤\96à¥\80:",
        "editusergroup": "{{GENDER:$1|सदस्य}} समूहसभक सम्पादन करी",
        "editinguser": "सदस्य '''[[User:$1|$1]]''' $2 क अधिकार बदलि\n{{GENDER:$1|सदस्य}}क सदस्य अधिकार बदलल जा रहल अछि <strong>[[User:$1|$1]]</strong> $2",
-       "userrights-editusergroup": "पà¥\8dरयà¥\8bà¤\95à¥\8dता à¤¸à¤\82वरà¥\8dà¤\97 à¤¸à¤­à¤\95 à¤¸à¤®à¥\8dपादन à¤\95रà¥\82",
+       "userrights-editusergroup": "पà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dता à¤¸à¤®à¥\82ह à¤¸à¤®à¥\8dपादित à¤\95रà¥\80",
        "saveusergroups": "{{GENDER:$1|सदस्य}} समूह सङ्ग्रह करी",
        "userrights-groupsmember": "क सदस्य:",
        "userrights-groupsmember-auto": "क जानल सदस्य:",
        "userrights-removed-self": "अहाँ सफलतापूर्वक अपन अधिकार हटा देने छी। अतः अहाँ आब ई पृष्ठ नै देख सकैत छी।",
        "group": "समूह:",
        "group-user": "प्रयोक्तासभ",
-       "group-autoconfirmed": "स्वतःअनुमोदित प्रयोक्ता सभ",
+       "group-autoconfirmed": "स्वतःअनुमोदित प्रयोक्ता",
        "group-bot": "स्वचालक",
        "group-sysop": "प्रबन्धक",
        "group-bureaucrat": "अधिकारी",
        "group-suppress": "नुकाबए वाला",
        "group-all": "(सभ)",
-       "group-user-member": "{{लिंग:$1|प्रयोक्ता}}",
-       "group-autoconfirmed-member": "{{लिंग:$1|स्वतःअनुमोदित प्रयोक्ता}}",
-       "group-bot-member": "{{लिंग:$1|स्वचालक}}",
-       "group-sysop-member": "{{लिंग:$1|माइनजन}}",
-       "group-bureaucrat-member": "{{लिंग:$1|अधिकारी}}",
+       "group-user-member": "{{GENDER:$1|प्रयोगकर्ता}}",
+       "group-autoconfirmed-member": "{{GENDER:$1|स्वतः स्थापित प्रयोगकर्ता}}",
+       "group-bot-member": "{{GENDER:$1|बोट}}",
+       "group-sysop-member": "{{GENDER:$1|प्रबन्धक}}",
+       "group-bureaucrat-member": "{{GENDER:$1|प्रशासक}}",
        "group-suppress-member": "{{GENDER:$1|नुकाए वाला}}",
-       "grouppage-user": "{{ns:project}}:पà¥\8dरयà¥\8bà¤\95à¥\8dता सभ",
-       "grouppage-autoconfirmed": "{{ns:project}}:स्वतःअनुमोदित प्रयोक्ता सभ",
-       "grouppage-bot": "{{ns:project}}:स्वचालक सभ",
-       "grouppage-sysop": "{{ns:project}}:माà¤\87नà¤\9cन à¤¸à¤­",
-       "grouppage-bureaucrat": "{{ns:project}}:अधिकारी सभ",
+       "grouppage-user": "{{ns:project}}:पà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dतासभ",
+       "grouppage-autoconfirmed": "{{ns:project}}:स्वतःअनुमोदित प्रयोक्ता",
+       "grouppage-bot": "{{ns:project}}:स्वचालक",
+       "grouppage-sysop": "{{ns:project}}:पà¥\8dरबनà¥\8dधà¤\95",
+       "grouppage-bureaucrat": "{{ns:project}}:अधिकारी",
        "grouppage-suppress": "{{ns:project}}:नुकाबी",
        "right-read": "पन्ना सभ पढ़ू",
-       "right-edit": "पन्ना सभ सम्पादन करू",
-       "right-createpage": "पन्ना सभ बनाउ (जे वार्ता पन्ना नै हुअए)",
-       "right-createtalk": "वार्ता पन्ना सभ बनाउ",
-       "right-createaccount": "नव प्रयोक्ता खाता सभ बनाउ",
+       "right-edit": "पन्नासभ सम्पादन करी",
+       "right-createpage": "पन्नासभ बनाबी (जे वार्ता पन्ना नै हुअए)",
+       "right-createtalk": "वार्ता पन्नासभ बनाबी",
+       "right-createaccount": "नव प्रयोक्ता खातासभ बनाबी",
        "right-autocreateaccount": "बाहरी खातासँ स्वतः प्रवेश",
-       "right-minoredit": "समà¥\8dपादन à¤¸à¤­à¤\95à¥\87à¤\81 à¤®à¤¾à¤®à¥\82लà¥\80 à¤\9aिनà¥\8dहित à¤\95रà¥\82",
-       "right-move": "पनà¥\8dना à¤¸à¤­ à¤\98सà¤\95ाà¤\89",
-       "right-move-subpages": "पनà¥\8dना à¤¸à¤­à¤\95à¥\87à¤\81 à¤\89पपनà¥\8dना à¤¸à¤­à¤\95 à¤¸à¤\82à¤\97 à¤\98सà¤\95ाà¤\89",
-       "right-move-rootuserpages": "मà¥\82ल à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dता à¤ªà¤¨à¥\8dना à¤¸à¤­ à¤\98सà¤\95ाà¤\89",
-       "right-move-categorypages": "शà¥\8dरà¥\87णà¥\80 à¤ªà¥\83षà¥\8dठ à¤¸à¥\8dथानाà¤\82तरित à¤\95रà¥\82",
-       "right-movefile": "सà¤\82à¤\9aिà¤\95ा à¤¸à¤­à¤\95à¥\87à¤\81 à¤\98सà¤\95ाà¤\89",
-       "right-suppressredirect": "पनà¥\8dना à¤\98सà¤\95à¥\87बा à¤\95ाल à¤®à¥\82ल à¤ªà¤¨à¥\8dना à¤¸à¤­à¤¸à¤\81 à¤²à¤¾à¤\97ि à¤¸à¤­ à¤¨à¥\88 à¤¬à¤¨à¤¾à¤\89",
-       "right-upload": "सà¤\82à¤\9aिà¤\95ा à¤¸à¤­ à¤\89पारà¥\8bपित à¤\95रà¥\82",
-       "right-reupload": "वरà¥\8dतमान à¤¸à¤\82à¤\9aिà¤\95ा à¤¸à¤­à¤\95 à¤ªà¥\81नरà¥\8dलà¥\87à¤\96न à¤\95रà¥\82",
-       "right-reupload-own": "अपन उपारोपित पन्ना सभक पुनर्लेखन करू",
-       "right-reupload-shared": "शà¥\8dरवà¥\8dय-दà¥\83शà¥\8dय à¤¸à¤¾à¤\9dà¥\80 à¤¬à¤\96ारà¥\80à¤\95 à¤«à¤¾à¤\87लà¤\95 à¤ªà¥\81नरà¥\8dलà¥\87à¤\96न à¤¸à¥\8dथानà¥\80य à¤°à¥\82पà¥\87à¤\81 à¤\95रà¥\82।",
-       "right-upload_by_url": "सारà¥\8dवतà¥\8dरिà¤\95 à¤µà¤¿à¤­à¤µ à¤¸à¤\82à¤\95à¥\87तसà¤\81 à¤¸à¤\82à¤\9aिà¤\95ा à¤\89पारà¥\8bपित à¤\95रà¥\82",
+       "right-minoredit": "समà¥\8dपादन à¤¸à¤­à¤\95à¥\87à¤\81 à¤®à¤¾à¤®à¥\82लà¥\80 à¤\9aिनà¥\8dहित à¤\95रà¥\80",
+       "right-move": "पनà¥\8dना à¤\98सà¤\95ाबà¥\80",
+       "right-move-subpages": "पà¥\83षà¥\8dठ à¤\89पपà¥\83षà¥\8dठसभ à¤¸à¤¹à¤¿à¤¤ à¤\98सà¤\95ाबà¥\80",
+       "right-move-rootuserpages": "मà¥\82ल à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dता à¤ªà¤¨à¥\8dना à¤\98सà¤\95ाबà¥\80",
+       "right-move-categorypages": "शà¥\8dरà¥\87णà¥\80 à¤ªà¥\83षà¥\8dठ à¤\98सà¤\95ाबà¥\80",
+       "right-movefile": "सà¤\9eà¥\8dà¤\9aिà¤\95ा à¤¸à¤­ à¤\98सà¤\95ाबà¥\80",
+       "right-suppressredirect": "पà¥\83षà¥\8dठ à¤\98सà¤\95à¥\87बाà¤\95ाल à¤ªà¥\81नरà¥\8dनिरà¥\8dदà¥\87श à¤¨à¥\88 à¤\9bà¥\8bडà¥\80",
+       "right-upload": "सà¤\9eà¥\8dà¤\9aिà¤\95ासभ à¤\89पारà¥\8bपित à¤\95रà¥\80",
+       "right-reupload": "वरà¥\8dतमान à¤¸à¤\9eà¥\8dà¤\9aिà¤\95ासभà¤\95 à¤ªà¥\81नरà¥\8dलà¥\87à¤\96न à¤\95रà¥\80",
+       "right-reupload-own": "अपन उपारोपित पन्नासभक पुनर्लेखन करी",
+       "right-reupload-shared": "शà¥\8dरवà¥\8dय-दà¥\83शà¥\8dय à¤¸à¤¾à¤\9dà¥\80 à¤¬à¤\96ारà¥\80à¤\95 à¤«à¤¾à¤\87लà¤\95 à¤ªà¥\81नरà¥\8dलà¥\87à¤\96न à¤¸à¥\8dथानà¥\80य à¤°à¥\82पà¥\87à¤\81 à¤\95रà¥\80।",
+       "right-upload_by_url": "सारà¥\8dवतà¥\8dरिà¤\95 à¤µà¤¿à¤­à¤µ à¤¸à¤\82à¤\95à¥\87तसà¤\81 à¤¸à¤\82à¤\9aिà¤\95ा à¤\89पारà¥\8bपित à¤\95रà¥\80",
        "right-purge": "जालक उपस्मृतिकेँ बिना स्वीकृतिक पन्नाक लेल खतम करू",
        "right-autoconfirmed": "अर्द्ध-संरक्षित पन्ना सभक सम्पादन करू",
        "right-bot": "स्वचालित प्रक्रियाक रूपमे देखल जाए",
        "right-nominornewtalk": "वार्ता पन्नापर मामूली सम्पादन नव संदेश संसूचक नै आनैए",
        "right-apihighlimits": "ए.पी.आइ. अभ्यर्थनामे पैघ सीमाक प्रयोग करू",
        "right-writeapi": "लेख्य ए.पी.आइ.क प्रयोग",
-       "right-delete": "पनà¥\8dना à¤¸à¤­à¤\95à¥\87à¤\81 à¤®à¥\87à¤\9fाà¤\89",
-       "right-bigdelete": "बà¥\87शà¥\80 à¤\87तिहास à¤¬à¤²à¤¾ à¤ªà¤¨à¥\8dना à¤¸à¤­à¤\95à¥\87à¤\81 à¤®à¥\87à¤\9fाà¤\89",
+       "right-delete": "पनà¥\8dना à¤®à¥\87à¤\9fाबà¥\80",
+       "right-bigdelete": "बà¥\87सà¥\80 à¤\87तिहास à¤­à¤\8fल à¤ªà¤¨à¥\8dना à¤¸à¤­ à¤®à¥\87à¤\9fाबà¥\80",
        "right-deletelogentry": "विशिष्ट लग प्रविष्टिसभके नुकाउ आ देखाउ",
        "right-deleterevision": "निर्धारित संशोधित पन्ना मेटाउ आ फेरसँ आनू",
        "right-deletedhistory": "मेटाएल इतिहास प्रविष्टि देखू, बिना लागिक पाठक",
-       "right-deletedtext": "मà¥\87à¤\9fाà¤\8fल à¤ªà¤¾à¤  à¤\86 à¤¦à¥\82à¤\9fा à¤®à¥\87à¤\9fाà¤\8fल à¤¸à¤\82शà¥\8bधनà¤\95 à¤¬à¥\80à¤\9aà¤\95 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤¦à¥\87à¤\96à¥\82",
-       "right-browsearchive": "मà¥\87à¤\9fाà¤\8fल à¤ªà¤¨à¥\8dना à¤¸à¤­à¤\95à¥\87à¤\81 à¤¤à¤¾à¤\95à¥\82",
-       "right-undelete": "पनà¥\8dना à¤«à¥\87रसà¤\81 à¤\86नà¥\82",
-       "right-suppressrevision": "सà¤\82à¤\9aालà¤\95सà¤\81 à¤¨à¥\81à¤\95ाà¤\8fल à¤¸à¤\82शà¥\8bधनà¤\95à¥\87à¤\81 à¤ªà¥\81नरà¥\80à¤\95à¥\8dषित à¤\95रà¥\82 à¤\86 à¤«à¥\87रसà¤\81 à¤\86नà¥\82",
+       "right-deletedtext": "मà¥\87à¤\9fाà¤\8fल à¤ªà¤¾à¤  à¤\86 à¤¦à¥\82à¤\9fा à¤®à¥\87à¤\9fाà¤\8fल à¤¸à¤\82शà¥\8bधनà¤\95 à¤¬à¥\80à¤\9aà¤\95 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤¦à¥\87à¤\96à¥\80",
+       "right-browsearchive": "मà¥\87à¤\9fाà¤\8fल à¤ªà¤¨à¥\8dना à¤¤à¤¾à¤\95à¥\80",
+       "right-undelete": "पनà¥\8dना à¤«à¥\87रसà¤\81 à¤\86नà¥\80",
+       "right-suppressrevision": "सà¤\82à¤\9aालà¤\95सà¤\81 à¤¨à¥\81à¤\95ाà¤\8fल à¤¸à¤\82शà¥\8bधनà¤\95à¥\87à¤\81 à¤ªà¥\81नरà¥\80à¤\95à¥\8dषित à¤\95रà¥\80 à¤\86 à¤«à¥\87रसà¤\81 à¤\86नà¥\80",
        "right-viewsuppressed": "कोनो प्रयोक्ताके नुकाएल संसोधन देखु",
-       "right-suppressionlog": "वà¥\8dयà¤\95à¥\8dतिà¤\97त à¤µà¥\83तà¥\8dतलà¥\87à¤\96 à¤¦à¥\87à¤\96à¥\82",
-       "right-block": "दà¥\8bसर à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dताà¤\95à¥\87à¤\81 à¤¸à¤®à¥\8dपादनसà¤\81 à¤°à¥\8bà¤\95à¥\82",
-       "right-blockemail": "पà¥\8dरयà¥\8bà¤\95à¥\8dताà¤\95à¥\87à¤\81 à¤\88-पतà¥\8dर à¤ªà¤ à¥\87बासà¤\81 à¤°à¥\8bà¤\95à¥\82",
+       "right-suppressionlog": "वà¥\8dयà¤\95à¥\8dतिà¤\97त à¤µà¥\83तà¥\8dतलà¥\87à¤\96 à¤¦à¥\87à¤\96à¥\80",
+       "right-block": "दà¥\8bसर à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dताà¤\95à¥\87à¤\81 à¤¸à¤®à¥\8dपादनसà¤\81 à¤°à¥\8bà¤\95à¥\80",
+       "right-blockemail": "पà¥\8dरयà¥\8bà¤\95à¥\8dताà¤\95à¥\87à¤\81 à¤\88-पतà¥\8dर à¤ªà¤ à¥\87बासà¤\81 à¤°à¥\8bà¤\95à¥\80",
        "right-hideuser": "एकटा प्रयोक्तानामकेँ प्रतिबन्धित करू, लोकसँ एकरा नुका कऽ",
        "right-ipblock-exempt": "अनिकेत प्रतिबन्ध, स्वचालित प्रतिबन्ध आ परिक्षेत्र प्रतिबन्धकेँ नै मानू",
        "right-unblockself": "स्वयंकेँ प्रतिबन्धसँ हटाउ",
        "right-unwatchedpages": "बिना संचालित पन्ना सभक सूचीकेँ देखू",
        "right-mergehistory": "पन्नाक इतिहास सभकेँ मिज्झर करू",
        "right-userrights": "सभटा प्रयोक्ता अधिकारकेँ सम्पादित करू",
-       "right-userrights-interwiki": "दà¥\8bसर à¤µà¤¿à¤\95à¥\80पर à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dताà¤\95 à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dता à¤\85धिà¤\95ारà¤\95 à¤¸à¤®à¥\8dपादन à¤\95रà¥\82",
+       "right-userrights-interwiki": "दà¥\8bसर à¤µà¤¿à¤\95à¥\80पर à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dताà¤\95 à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dता à¤\85धिà¤\95ारà¤\95 à¤¸à¤®à¥\8dपादन à¤\95रà¥\80",
        "right-siteadmin": "दत्तनिधिकेँ प्रतिबन्धित करू आ फेर प्रतिबन्ध हटाउ",
        "right-override-export-depth": "५ परत धरि जा  पन्ना सभ निर्यात, जइमे लागिबला पन्ना सभ शामिल अछि, करू।",
        "right-sendemail": "ई-पत्र दोसर प्रयोक्ता लोकनिकेँ पठाउ",
        "newuserlogpagetext": "ई प्रयोक्ता निर्माणक वृत्तलेख अछि।",
        "rightslog": "प्रयोक्ता अधिकार वृत्तलेख",
        "rightslogtext": "ई प्रयोक्ता अधिकार परिवर्तन सभक वृतलेख छी।",
-       "action-read": "à¤\88 à¤ªà¤¨à¥\8dना à¤ªà¤¢à¤¼à¥\82",
-       "action-edit": "ई पन्नाकेँ सम्पादित करू",
-       "action-createpage": "पनà¥\8dना à¤¸à¤­ à¤¬à¤¨à¤¾à¤\89",
-       "action-createtalk": "वारà¥\8dता à¤ªà¤¨à¥\8dना à¤¸à¤­ à¤¬à¤¨à¤¾à¤\89",
-       "action-createaccount": "à¤\88 à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dता à¤\96ाता à¤¬à¤¨à¤¾à¤\89",
-       "action-history": "पन्नाक इतिहासकेँ मिज्झर करू",
-       "action-minoredit": "ऐ सम्पादनकेँ मामूली कहू",
-       "action-move": "ऐ पृष्ठकेँ घसकाउ",
-       "action-move-subpages": "ऐ पन्ना आ एकर उपपन्नाकेँ घसकाउ",
-       "action-move-rootuserpages": "मà¥\82ल à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dता à¤ªà¤¨à¥\8dना à¤¸à¤­ à¤\98सà¤\95ाà¤\89",
-       "action-move-categorypages": "शà¥\8dरà¥\87णà¥\80 à¤ªà¥\83षà¥\8dठ à¤¸à¥\8dथानाà¤\82तरित à¤\95रà¥\82",
+       "action-read": "à¤\88 à¤ªà¤¨à¥\8dना à¤ªà¤¢à¥\80",
+       "action-edit": "ई पन्नाक सम्पादित करी",
+       "action-createpage": "पà¥\83षà¥\8dठ à¤¬à¤¨à¤¾à¤¬à¥\80",
+       "action-createtalk": "वारà¥\8dता à¤ªà¤¨à¥\8dना à¤¬à¤¨à¤¾à¤¬à¥\80",
+       "action-createaccount": "à¤\88 à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dता à¤\96ाता à¤¬à¤¨à¤¾à¤¬à¥\80",
+       "action-history": "पन्नाक इतिहास मिज्झर करी",
+       "action-minoredit": "ऐ सम्पादनके मामूली कही",
+       "action-move": "ऐ पृष्ठके घसकाबी",
+       "action-move-subpages": "ऐ पन्ना आ एकर उपपन्नाके घसकाबी",
+       "action-move-rootuserpages": "मà¥\82ल à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dता à¤ªà¤¨à¥\8dना à¤\98सà¤\95ाबà¥\80",
+       "action-move-categorypages": "शà¥\8dरà¥\87णà¥\80 à¤ªà¥\83षà¥\8dठ à¤\98सà¤\95ाबà¥\80",
        "action-movefile": "ई संचिकाकेँ घसकाउ",
        "action-upload": "ई संचिकाकेँ उपारोपित करू",
        "action-reupload": "ई संचिकाक पुनर्लेखन करू",
        "action-reupload-shared": "ई संचिकाकेँ साझी बखारीमे नजरि नै दिअ",
        "action-upload_by_url": "ई संचिकाकेँ सार्वत्रिक विभव संकेतसँ उपारोपित करू",
-       "action-writeapi": "लेख्य ए.पी.आइ.क प्रयोग करू",
-       "action-delete": "à¤\88 à¤ªà¤¨à¥\8dना à¤®à¥\87à¤\9fाà¤\89",
-       "action-deleterevision": "à¤\88 à¤¸à¤\82शà¥\8bधन à¤®à¥\87à¤\9fाà¤\89",
-       "action-deletedhistory": "à¤\90 à¤ªà¤¨à¥\8dनाà¤\95 à¤®à¥\87à¤\9fाà¤\8fलबला à¤\87तिहास à¤¦à¥\87à¤\96à¥\82",
-       "action-browsearchive": "मà¥\87à¤\9fाà¤\8fल à¤ªà¤¨à¥\8dना à¤¸à¤­à¤\95à¥\87à¤\81 à¤¤à¤¾à¤\95à¥\82",
+       "action-writeapi": "लेख्य एपिआई प्रयोग करी",
+       "action-delete": "à¤\88 à¤ªà¤¨à¥\8dना à¤®à¥\87à¤\9fाबà¥\80",
+       "action-deleterevision": "à¤\88 à¤¸à¤\82शà¥\8bधन à¤®à¥\87à¤\9fाबà¥\80",
+       "action-deletedhistory": "à¤\88 à¤ªà¤¨à¥\8dनाà¤\95 à¤®à¥\87à¤\9fाà¤\8fल à¤\87तिहास à¤¦à¥\87à¤\96à¥\80",
+       "action-browsearchive": "मà¥\87à¤\9fाà¤\8fल à¤ªà¤¨à¥\8dना à¤¤à¤¾à¤\95à¥\80",
        "action-undelete": "ई पन्नाकेँ फेरसँ आनू",
        "action-suppressrevision": "ई नुकाएल संशोधनकेँ पुनरीक्षित आ पुनर्स्थापित करू",
        "action-suppressionlog": "ई व्यक्तिगत वृत्तलेखकेँ देखू",
        "action-userrights": "सभटा प्रयोक्ता अधिकारकेँ सम्पादित करू",
        "action-userrights-interwiki": "दोसर विकीपर प्रयोक्ताक प्रयोक्ता अधिकारक सम्पादन करू",
        "action-siteadmin": "दत्तनिधिकेँ प्रतिबन्धित करू आ फेर प्रतिबन्ध हटाउ",
-       "action-sendemail": "à¤\88-पतà¥\8dर à¤ªà¤ à¤¾à¤\89",
+       "action-sendemail": "à¤\88-पतà¥\8dर à¤ªà¤ à¤¾à¤¬à¥\80",
        "action-editmywatchlist": "काँच साकांक्षसूची संपादित करू",
        "action-viewmywatchlist": "अपन काँच साकांक्षसूची देखु",
        "action-viewmyprivateinfo": "अपन व्यक्तिगत जानकारी देखु",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|अंतिम बेर देखला के बाद स}}",
        "enhancedrc-history": "इतिहास",
        "recentchanges": "लगक परिवर्तनसभ",
-       "recentchanges-legend": "नव à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤¸à¤­à¤\95 à¤µà¤¿à¤\95लà¥\8dप à¤¸à¤­",
+       "recentchanges-legend": "नव à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤¸à¤®à¥\8dबनà¥\8dधà¥\80 à¤µà¤¿à¤\95लà¥\8dप",
        "recentchanges-summary": "ई पन्नापर विकीमे भेल सभसँ अद्यतन परिवर्तनपर नजरि राखू।",
        "recentchanges-noresult": "इ अवधिके दौरान इ मापदंडके पूर्ण करेत समय कोनो परिवर्तन नै केएल गेल अछि।",
-       "recentchanges-feed-description": "à¤\90 à¤¸à¥\82à¤\9aना-तà¤\82तà¥\8dराà¤\82शमà¥\87 à¤µà¤¿à¤\95à¥\80मà¥\87 à¤­à¥\87ल à¤¸à¤­à¤¸à¤\81 à¤²à¤\97à¤\95 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤¤à¤¾à¤\95à¥\82",
+       "recentchanges-feed-description": "à¤\88 à¤¸à¥\82à¤\9aना-तà¤\82तà¥\8dराà¤\82शमà¥\87 à¤µà¤¿à¤\95à¥\80मà¥\87 à¤­à¥\87ल à¤¸à¤­à¤¸à¤\81 à¤²à¤\97à¤\95 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤¤à¤¾à¤\95à¥\80।",
        "recentchanges-label-newpage": "ई सम्पादन एकटा नव पन्नाक निर्माण केलक।",
        "recentchanges-label-minor": "ई एकटा लघु सम्पादन छी",
        "recentchanges-label-bot": "ई सम्पादन यान्त्रिक छल।",
        "recentchanges-label-unpatrolled": "ऐ सम्पादनक पुनरीक्षण अखन धरि नै कएल गेल अछि।",
        "recentchanges-label-plusminus": "पन्नाके आकार इ बाइट संख्यासे बदलल गेल",
        "recentchanges-legend-heading": "<strong>कुञ्जी:</strong>",
-       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|नयाà¤\81 à¤ªà¤¨à¥\8dनसभà¤\95à¥\87 à¤¸à¥\82à¤\9aà¥\80]] à¤¸à¤¹à¥\8b à¤¦à¥\87à¤\96à¥\81)",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|नव à¤ªà¤¨à¥\8dनसभà¤\95 à¤¸à¥\82à¤\9aà¥\80]] à¤¸à¥\87हà¥\8b à¤¦à¥\87à¤\96à¥\80)",
        "rcnotefrom": "नीचाँमे '''$2''' सँ भेल परिवर्तन अछि ('''$1''' धरि देखाएल)।",
-       "rclistfrom": "$3 $2 à¤¸à¤\81 à¤¶à¥\81रà¥\82 à¤­à¥\87ल à¤¨à¤µ à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤¦à¥\87à¤\96à¥\82",
-       "rcshowhideminor": "$1 à¤\85लà¥\8dप à¤¸à¤\82पादन",
-       "rcshowhideminor-show": "दà¥\87à¤\96ाà¤\89",
-       "rcshowhideminor-hide": "नà¥\81à¤\95ाà¤\8a",
-       "rcshowhidebots": "$1 स्वचालक सभ",
-       "rcshowhidebots-show": "दà¥\87à¤\96ाà¤\89",
-       "rcshowhidebots-hide": "नà¥\81à¤\95ाà¤\8a",
-       "rcshowhideliu": "$1 सम्प्रवेशित प्रयोक्ता सभ",
-       "rcshowhideliu-show": "दà¥\87à¤\96ाà¤\89",
-       "rcshowhideliu-hide": "नà¥\81à¤\95ाà¤\8a",
-       "rcshowhideanons": "$1 अज्ञात प्रयोक्ता सभ",
-       "rcshowhideanons-show": "दà¥\87à¤\96ाà¤\8a",
-       "rcshowhideanons-hide": "नà¥\81à¤\95ाà¤\8a",
-       "rcshowhidepatr": "$1 à¤¸à¤\82चालित सम्पादन",
-       "rcshowhidepatr-show": "दà¥\87à¤\96ाà¤\89",
-       "rcshowhidepatr-hide": "नà¥\81à¤\95ाà¤\8a",
-       "rcshowhidemine": "$1 हमर सम्पादन सभ",
-       "rcshowhidemine-show": "दà¥\87à¤\96ाà¤\89",
-       "rcshowhidemine-hide": "नà¥\81à¤\95ाà¤\8a",
+       "rclistfrom": "$3 $2 à¤¸à¤\81 à¤¶à¥\81रà¥\82 à¤­à¥\87ल à¤¨à¤µ à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤¦à¥\87à¤\96à¥\80",
+       "rcshowhideminor": "$1 à¤\85लà¥\8dप à¤¸à¤®à¥\8dपादन",
+       "rcshowhideminor-show": "दà¥\87à¤\96ाबà¥\80",
+       "rcshowhideminor-hide": "नà¥\81à¤\95ाबà¥\80",
+       "rcshowhidebots": "$1 स्वचालक",
+       "rcshowhidebots-show": "दà¥\87à¤\96ाबà¥\80",
+       "rcshowhidebots-hide": "नà¥\81à¤\95ाबà¥\80",
+       "rcshowhideliu": "पञ्जीकृत प्रयोगकर्तासभ $1",
+       "rcshowhideliu-show": "दà¥\87à¤\96ाबà¥\80",
+       "rcshowhideliu-hide": "नà¥\81à¤\95ाबà¥\80",
+       "rcshowhideanons": "$1 अज्ञात प्रयोक्तासभ",
+       "rcshowhideanons-show": "दà¥\87à¤\96ाबà¥\80",
+       "rcshowhideanons-hide": "नà¥\81à¤\95ाबà¥\80",
+       "rcshowhidepatr": "$1 à¤¸à¤\9eà¥\8dचालित सम्पादन",
+       "rcshowhidepatr-show": "दà¥\87à¤\96ाबà¥\80",
+       "rcshowhidepatr-hide": "नà¥\81à¤\95ाबà¥\80",
+       "rcshowhidemine": "$1 हमर सम्पादनसभ",
+       "rcshowhidemine-show": "दà¥\87à¤\96ाबà¥\80",
+       "rcshowhidemine-hide": "नà¥\81à¤\95ाबà¥\80",
        "rcshowhidecategorization-show": "देखाबी",
        "rcshowhidecategorization-hide": "नुकाबी",
-       "rclinks": "दà¥\87à¤\96ाà¤\8a à¤\85à¤\82तिम $1 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतà¥\8dतन à¤\85à¤\82तिम $2 à¤¦à¤¿à¤¨à¤®à¥\87<br />$3",
+       "rclinks": "पिà¤\9bला $2 à¤¦à¤¿à¤¨à¤®à¥\87 à¤­à¤\8fल $1 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤¦à¥\87à¤\96ाबà¥\80<br />$3",
        "diff": "अन्तर",
        "hist": "इति.",
-       "hide": "नà¥\81à¤\95ाà¤\8a",
-       "show": "दà¥\87à¤\96ाà¤\89",
+       "hide": "नà¥\81à¤\95ाबà¥\80",
+       "show": "दà¥\87à¤\96ाबà¥\80",
        "minoreditletter": "अ",
        "newpageletter": "न",
        "boteditletter": "ब",
        "unpatrolledletter": "!",
-       "number_of_watching_users_pageview": "[$1 à¤¦à¥\87à¤\96à¥\88 à¤\85à¤\9bि {{PLURAL:$1|पà¥\8dरयà¥\8bà¤\95à¥\8dता|पà¥\8dरयà¥\8bà¤\95à¥\8dता सभ}}]",
+       "number_of_watching_users_pageview": "[$1 à¤§à¥\8dयान à¤°à¤¾à¤\96à¥\88वाला {{PLURAL:$1|पà¥\8dरयà¥\8bà¤\95à¥\8dता|पà¥\8dरयà¥\8bà¤\95à¥\8dतासभ}}]",
        "rc_categories": "संवर्ग सीमित (\"|\" सँ हटाउ)",
        "rc_categories_any": "कोनो",
        "rc-change-size": "$1",
        "rc-change-size-new": "बदललाक बाद $1 {{PLURAL:$1|बाइट}}",
-       "newsectionsummary": "/* $1 */ à¤¨à¤µ à¤¸à¤\82वरà¥\8dग",
+       "newsectionsummary": "/* $1 */ à¤¨à¤µ à¤\85नà¥\81भाग",
        "rc-enhanced-expand": "वर्णन देखाउ (जावास्क्रिप्ट चाही)",
-       "rc-enhanced-hide": "वरà¥\8dणन à¤¨à¥\81à¤\95ाà¤\89",
+       "rc-enhanced-hide": "विसà¥\8dतà¥\83त à¤\9cानà¤\95ारà¥\80 à¤¨à¥\81à¤\95ाबà¥\80",
        "rc-old-title": "मूल रूप स \"$1\" नाम स बनाएल गेल रह",
-       "recentchangeslinked": "सà¤\82बà¤\82धित à¤ªà¤°à¤¿à¤µà¤°à¥\8dत्तन",
-       "recentchangeslinked-feed": "सà¤\82बà¤\82धित à¤ªà¤°à¤¿à¤µà¤°à¥\8dत्तन",
+       "recentchangeslinked": "समà¥\8dबनà¥\8dधित à¤ªà¤°à¤¿à¤µà¤°्तन",
+       "recentchangeslinked-feed": "समà¥\8dबनà¥\8dधित à¤ªà¤°à¤¿à¤µà¤°्तन",
        "recentchangeslinked-toolbox": "सम्बन्धित परिवर्तन",
        "recentchangeslinked-title": "\"$1\" मे भेल परिवर्तन",
        "recentchangeslinked-summary": "ई विशेष पन्नासँ सम्बद्ध पन्ना सभमे (आकि कोनो विशेष वर्गक समूहमे) भेल परिवर्तनक सूची छी ।\n[[Special:Watchlist|your watchlist]]  पर पन्नासभ '''गाढ़''' अछि।",
-       "recentchangeslinked-page": "पन्नाक नाम",
-       "recentchangeslinked-to": "दà¥\87ल à¤ªà¤¨à¥\8dनाà¤\95 à¤¸à¤®à¥\8dबनà¥\8dधà¥\80 à¤ªà¤¨à¥\8dनामà¥\87 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤¦à¥\87à¤\96ाà¤\89",
+       "recentchangeslinked-page": "पन्नाक नाम:",
+       "recentchangeslinked-to": "दà¥\87ल à¤ªà¤¨à¥\8dनाà¤\95 à¤¸à¤®à¥\8dबनà¥\8dधà¥\80 à¤ªà¤¨à¥\8dनामà¥\87 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤¦à¥\87à¤\96ाबà¥\80",
        "upload": "फाइल अपलोड करी",
        "uploadbtn": "फाइल अपलोड",
-       "reuploaddesc": "à¤\89पारà¥\8bपण à¤°à¤¦à¥\8dद à¤\95रà¥\82 à¤\86 à¤\89पारà¥\8bपण à¤\86वà¥\87दन-पतà¥\8dरपर à¤\98à¥\81रà¥\82।",
+       "reuploaddesc": "à¤\89पारà¥\8bपण à¤°à¤¦à¥\8dद à¤\95रà¥\80 à¤\86 à¤\89पारà¥\8bपण à¤\86वà¥\87दन-पतà¥\8dरपर à¤\9cाà¤\8f।",
        "upload-tryagain": "संशोधित संचिका वर्णन दिअ",
        "uploadnologin": "सम्प्रवेशित नै",
        "uploadnologintext": "अहाँ [[Special:UserLogin|सम्प्रवेशित]] संचिका उपारोपित करबा लेल।",
        "upload-preferred": "मोनपसिन्न संचिका प्रकार:$1 ।",
        "upload-prohibited": "प्रतिबन्धित संचिका प्रकार:$1 ।",
        "uploadlogpage": "उपारोपण वृत्तलेख",
-       "uploadlogpagetext": "नà¥\80à¤\9aाà¤\81 à¤\85दà¥\8dयतन à¤¸à¤\82à¤\9aिà¤\95ा à¤\89पारà¥\8bपणà¤\95 à¤µà¤°à¥\8dणन à¤\85à¤\9bि।\nदà¥\87à¤\96à¥\82 [[Special:NewFiles|नव à¤¸à¤\82चिकाक बखारी]] बेसी स्पष्ट समुच्चा दृश्य लेल।",
-       "filename": "सà¤\82à¤\9aिà¤\95ानाम",
+       "uploadlogpagetext": "नà¥\80à¤\9aाà¤\81 à¤\85दà¥\8dयतन à¤¸à¤\9eà¥\8dà¤\9aिà¤\95ा à¤\89पारà¥\8bपणà¤\95 à¤µà¤°à¥\8dणन à¤\85à¤\9bि।\nदà¥\87à¤\96à¥\80 [[Special:NewFiles|नव à¤¸à¤\9eà¥\8dचिकाक बखारी]] बेसी स्पष्ट समुच्चा दृश्य लेल।",
+       "filename": "सà¤\9eà¥\8dà¤\9aिà¤\95ा नाम",
        "filedesc": "संक्षेप",
        "fileuploadsummary": "संक्षेप:",
-       "filereuploadsummary": "सà¤\82चिका परिवर्तन:",
+       "filereuploadsummary": "सà¤\9eà¥\8dचिका परिवर्तन:",
        "filestatus": "सर्वाधिकारक स्थिति:",
        "filesource": "मूल:",
        "ignorewarning": "चेतौनीपर ध्यान नै दिअ आ संचिका कोनो रूपेँ संरक्षित करू",
        "ignorewarnings": "कोनो चेतौनीपर ध्यान नै दिअ",
-       "minlength1": "सà¤\82à¤\9aिà¤\95ा à¤¨à¤¾à¤® à¤¸à¤­ एक वर्णसँ कम नै हुअए",
+       "minlength1": "सà¤\9eà¥\8dà¤\9aिà¤\95ाà¤\95 à¤¨à¤¾à¤® à¤\95म एक वर्णसँ कम नै हुअए",
        "illegalfilename": "\"$1\" संचिकानाममे वर्ण अछि जे पन्ना शीर्षक लेल मान्य नै अछि।\nकृपा कऽ संचिकाक नाम बदलू आ फेरसँ उपारोपित करू।",
        "filename-toolong": "संचिकानाम 240 बाइटसँ पैघ नै भऽ सकैए।",
        "badfilename": "संचिकानाम बदलि कऽ \"$1\" कएल गेल।",
        "filerevert-legend": "घुराएल संचिका",
        "filerevert-intro": "अहाँ संचिका घुराबैले छी '''[[Media:$1|$1]]''' केँ [$4 संस्करण $3, $2 केँ] लग।",
        "filerevert-comment": "कारण:",
-       "filerevert-defaultcomment": "$2, $1 क संस्करण लग घुरल",
+       "filerevert-defaultcomment": "$2, $1 ($3)क अवतरण पूर्ववत कएलक",
        "filerevert-submit": "फेरसँ वएह",
        "filerevert-success": "'''[[Media:$1|$1]]''' घुराएल गेल [$4 version as of $3, $2] लग।",
        "filerevert-badversion": "ओइ कालक कोनो पुरान स्थानीय संस्करण ऐ संचिकाक नै अछि।",
        "randomredirect": "मिज्झर बदलेनबला लागि",
        "randomredirect-nopages": "नामस्थान \"$1\" मे कोनो बदलेनबला लागि नै अछि।",
        "statistics": "सांख्यिकी",
-       "statistics-header-pages": "पनà¥\8dनाà¤\95 à¤¸à¤¾à¤\82à¤\96à¥\8dयिà¤\95à¥\80",
-       "statistics-header-edits": "साà¤\82à¤\96à¥\8dयिà¤\95à¥\80à¤\95 à¤¸à¤®à¥\8dपादन à¤\95रà¥\82",
-       "statistics-header-users": "पà¥\8dरयà¥\8bà¤\95à¥\8dता à¤¸à¤¾à¤\82à¤\96à¥\8dयिà¤\95à¥\80",
-       "statistics-header-hooks": "दà¥\8bसर à¤¸à¤¾à¤\82à¤\96à¥\8dयिà¤\95à¥\80",
-       "statistics-articles": "à¤\85नà¥\81à¤\95à¥\8dरम à¤ªà¤¨à¥\8dना à¤¸à¤­",
-       "statistics-pages": "पन्ना सभ",
+       "statistics-header-pages": "पनà¥\8dनाà¤\95 à¤¤à¤¥à¥\8dयाà¤\99à¥\8dà¤\95",
+       "statistics-header-edits": "समà¥\8dपादन à¤¤à¤¥à¥\8dयाà¤\99à¥\8dà¤\95",
+       "statistics-header-users": "पà¥\8dरयà¥\8bà¤\95à¥\8dता à¤¤à¤¥à¥\8dयाà¤\99à¥\8dà¤\95",
+       "statistics-header-hooks": "दà¥\8bसर à¤¤à¤¥à¥\8dयाà¤\99à¥\8dà¤\95",
+       "statistics-articles": "सामà¤\97à¥\8dरà¥\80 à¤ªà¥\83षà¥\8dठ",
+       "statistics-pages": "पन्ना",
        "statistics-pages-desc": "वार्ता पन्ना, बदलेन इत्यादि सहित सभटा विकि पन्ना सभ।",
-       "statistics-files": "à¤\89पारà¥\8bपित à¤¸à¤\82à¤\9aिà¤\95ा à¤¸à¤­",
-       "statistics-edits": "{{अन्तर्जाल}} अएबासँ लऽ कऽ भेल पन्ना सम्पादन सभ।",
+       "statistics-files": "à¤\89पारà¥\8bपित à¤¸à¤\9eà¥\8dà¤\9aिà¤\95ा",
+       "statistics-edits": "{{SITENAME}} अएबासँ लऽ कऽ भेल पन्ना सम्पादन",
        "statistics-edits-average": "प्रति पन्ना औसत सम्पादन",
-       "statistics-users": "पà¤\82जीकृत [[Special:ListUsers|प्रयोक्ता]]",
+       "statistics-users": "पà¤\9eà¥\8dजीकृत [[Special:ListUsers|प्रयोक्ता]]",
        "statistics-users-active": "सक्रिय प्रयोक्ता",
        "statistics-users-active-desc": "प्रयोक्ता जे अन्तिम {{PLURAL:$1|दिन|$1 दिन}} मे कोनो काज केने छथि",
        "pageswithprop-submit": "जाऊ",
        "double-redirect-fixer": "बदलेन स्थायित्व",
        "brokenredirects": "टूटल बदलेन सभ",
        "brokenredirectstext": "ई बदलेन सभ नै अवस्थित पन्ना सभक दिस जाइत अछि।",
-       "brokenredirects-edit": "सà¤\82पादन à¤\95रà¥\82",
-       "brokenredirects-delete": "मà¥\87à¤\9fाà¤\89",
-       "withoutinterwiki": "बिना à¤­à¤¾à¤·à¤¾ à¤²à¤¾à¤\97िà¤\95 à¤ªà¤¨à¥\8dना à¤¸à¤­",
+       "brokenredirects-edit": "समà¥\8dपादन à¤\95रà¥\80",
+       "brokenredirects-delete": "मà¥\87à¤\9fाबà¥\80",
+       "withoutinterwiki": "बिना à¤­à¤¾à¤·à¤¾ à¤²à¤¿à¤\99à¥\8dà¤\95à¤\95 à¤ªà¤¨à¥\8dना",
        "withoutinterwiki-summary": "ई पन्ना सभ दोसर भाषाक संस्करण सभ दिस संकेत नै करैए।",
        "withoutinterwiki-legend": "उपसर्ग",
-       "withoutinterwiki-submit": "दà¥\87à¤\96ाà¤\89",
-       "fewestrevisions": "एकाध संशोधनबला पन्ना सभ",
+       "withoutinterwiki-submit": "दà¥\87à¤\96ाबà¥\80",
+       "fewestrevisions": "एकाध संशोधनबला पन्ना",
        "nbytes": "$1 {{PLURAL:$1|बाइट|बाइट्स}}",
-       "ncategories": "{{PLURAL:$1|सà¤\82वरà¥\8dà¤\97|à¤\95à¤\8fà¤\9fा à¤¸à¤\82वरà¥\8dà¤\97}}",
-       "ninterwikis": "$1 à¤\85नà¥\8dतरविà¤\95ि {{PLURAL:$1|à¤\9cड़à¥\80|à¤\9cड़ि सभ}}",
-       "nlinks": "$1 {{PLURAL:$1|लाà¤\97ि|लाà¤\97ि सभ}}",
-       "nmembers": "$1 {{PLURAL:$1|सदस्य|सदस्य सभ}}",
-       "nmemberschanged": "$1 → $2 {{PLURAL:$2|प्रयोक्ता|प्रयोक्ता सभ}}",
-       "nrevisions": "$1{{PLURAL:$1|संशोधन|संशोधन सभ}}",
-       "nimagelinks": "$1पर प्रयुक्त {{PLURAL:$1|पन्ना|पन्ना सभ}}",
-       "ntransclusions": "$1पर प्रयुक्त {{PLURAL:$1|पन्ना|पन्ना सभ}}",
+       "ncategories": "{{PLURAL:$1|शà¥\8dरà¥\87णà¥\80|शà¥\8dरà¥\87णà¥\80सभ}}",
+       "ninterwikis": "$1 à¤\85नà¥\8dतरविà¤\95ि {{PLURAL:$1|लिà¤\99à¥\8dà¤\95|लिà¤\99à¥\8dà¤\95सभ}}",
+       "nlinks": "$1 {{PLURAL:$1|लिà¤\99à¥\8dà¤\95|लिà¤\99à¥\8dà¤\95सभ}}",
+       "nmembers": "$1 {{PLURAL:$1|सदस्य|सदस्यसभ}}",
+       "nmemberschanged": "$1 → $2 {{PLURAL:$2|प्रयोक्ता|प्रयोक्तासभ}}",
+       "nrevisions": "$1{{PLURAL:$1|संशोधन|संशोधनसभ}}",
+       "nimagelinks": "$1 {{PLURAL:$1|पन्ना|पन्नासभ}} पर प्रयुक्त",
+       "ntransclusions": "$1 {{PLURAL:$1|पन्ना|पन्नासभ}} पर प्रयुक्त",
        "specialpage-empty": "ऐ पन्ना लेल कोनो परिणाम नै अछि।",
-       "lonelypages": "अनाथ पन्ना सभ",
-       "lonelypagestext": "ई पन्ना सभ ने कोनो {{अन्तर्जाल}} सँ जुड़ल अछि आ नहिये अन्तर्बाह्य रूपसँ दोसर पन्नमे अछि।",
-       "uncategorizedpages": "अवर्गीकृत पन्ना सभ",
-       "uncategorizedcategories": "à¤\85वरà¥\8dà¤\97à¥\80à¤\95à¥\83त à¤¸à¤\82वरà¥\8dà¤\97 सभ",
-       "uncategorizedimages": "à¤\85वरà¥\8dà¤\97à¥\80à¤\95à¥\83त à¤¸à¤\82à¤\9aिà¤\95ा सभ",
-       "uncategorizedtemplates": "अवर्गीकृत नमूना सभ",
-       "unusedcategories": "नà¥\88 à¤ªà¥\8dरयà¥\8bà¤\97 à¤\95à¤\8fल à¤¸à¤\82वरà¥\8dà¤\97 सभ",
-       "unusedimages": "बिना à¤ªà¥\8dरयà¥\8bà¤\97à¤\95 à¤¸à¤\82à¤\9aिà¤\95ा सभ",
-       "wantedcategories": "à¤\86वशà¥\8dयà¤\95 à¤¸à¤\82वरà¥\8dà¤\97 सभ",
-       "wantedpages": "आवश्यक पन्ना सभ",
+       "lonelypages": "अनाथ पन्नासभ",
+       "lonelypagestext": "ई पन्नासभ नै कोनो {{SITENAME}} सँ जुडल अछि आ नहि त अन्तर्बाह्य रूपसँ दोसर पन्नमे अछि।",
+       "uncategorizedpages": "अवर्गीकृत पन्नासभ",
+       "uncategorizedcategories": "à¤\85वरà¥\8dà¤\97à¥\80à¤\95à¥\83त à¤¶à¥\8dरà¥\87णà¥\80सभ",
+       "uncategorizedimages": "à¤\85वरà¥\8dà¤\97à¥\80à¤\95à¥\83त à¤¸à¤\9eà¥\8dà¤\9aिà¤\95ासभ",
+       "uncategorizedtemplates": "अवर्गीकृत नमूनासभ",
+       "unusedcategories": "नà¥\88 à¤ªà¥\8dरयà¥\8bà¤\97 à¤\95à¤\8fल à¤¶à¥\8dरà¥\87णà¥\80सभ",
+       "unusedimages": "बिना à¤ªà¥\8dरयà¥\8bà¤\97à¤\95 à¤¸à¤\9eà¥\8dà¤\9aिà¤\95ासभ",
+       "wantedcategories": "à¤\86वशà¥\8dयà¤\95 à¤¶à¥\8dरà¥\87णà¥\80सभ",
+       "wantedpages": "आवश्यक पन्नासभ",
        "wantedpages-badtitle": "परिणाम सूचीमे अमान्य शीर्षक:$1",
-       "wantedfiles": "à¤\86वशà¥\8dयà¤\95 à¤¸à¤\82à¤\9aिà¤\95ा सभ",
-       "wantedtemplates": "आवश्यक नमूना सभ",
-       "mostlinked": "सभसँ बेसी लागिबला पन्ना सभ",
-       "mostlinkedcategories": "सभसà¤\81 à¤¬à¥\87सà¥\80 à¤²à¤¾à¤\97िबला à¤¸à¤\82वरà¥\8dà¤\97 सभ",
-       "mostlinkedtemplates": "सभसँ बेसी लागिबला नमूना सभ",
-       "mostcategories": "सभसà¤\81 à¤¬à¥\87सà¥\80 à¤¸à¤\82वरà¥\8dà¤\97बला à¤ªà¤¨à¥\8dना सभ",
-       "mostimages": "सभसà¤\81 à¤¬à¥\87सà¥\80 à¤²à¤¾à¤\97िबला à¤¸à¤\82à¤\9aिà¤\95ा सभ",
+       "wantedfiles": "à¤\86वशà¥\8dयà¤\95 à¤¸à¤\9eà¥\8dà¤\9aिà¤\95ासभ",
+       "wantedtemplates": "आवश्यक नमूनासभ",
+       "mostlinked": "सभसँ बेसी लागिबला पन्नासभ",
+       "mostlinkedcategories": "सभसà¤\81 à¤¬à¥\87सà¥\80 à¤²à¤¾à¤\97िबला à¤¶à¥\8dरà¥\87णà¥\80सभ",
+       "mostlinkedtemplates": "सभसँ बेसी लागिबला नमूनासभ",
+       "mostcategories": "सभसà¤\81 à¤¬à¥\87सà¥\80 à¤¶à¥\8dरà¥\87णà¥\80बला à¤ªà¤¨à¥\8dनासभ",
+       "mostimages": "सभसà¤\81 à¤¬à¥\87सà¥\80 à¤²à¤¾à¤\97िबला à¤¸à¤\9eà¥\8dà¤\9aिà¤\95ासभ",
        "mostinterwikis": "सर्वाधिक अन्तरविकी जडीभेल पृष्ठसभ",
-       "mostrevisions": "सभसँ बेसी संशोधनबला पन्ना सभ",
+       "mostrevisions": "सभसँ बेसी संशोधनबला पन्ना",
        "prefixindex": "उपसर्गक संग सभटा पृष्ठ",
        "prefixindex-namespace": "उपसर्ग भएल सभ पृष्ठ ($1 नामस्थान)",
        "prefixindex-strip": "सूची में उपसर्ग नुकाउ",
        "shortpages": "पन्ना सभ छाँटू",
        "longpages": "नमगर पन्ना सभ",
        "deadendpages": "एकदमसँ अन्त भऽ जाएबला पन्ना सभ",
-       "deadendpagestext": "ई पन्ना सभ {{अन्तर्जाल}} क दोसर पन्नासँ लागिमे नै रहत।",
-       "protectedpages": "सà¤\82रà¤\95à¥\8dषित à¤ªà¤¨à¥\8dना à¤¸à¤­",
+       "deadendpagestext": "ई पन्ना सभ {{SITENAME}} क दोसर पन्नासँ लागिमे नै रहत।",
+       "protectedpages": "सà¥\81रà¤\95à¥\8dषित à¤ªà¥\83षà¥\8dठ",
        "protectedpages-indef": "अनन्तकालिक सुरक्षा मात्र",
        "protectedpages-cascade": "तराउपड़ी सुरक्षा मात्र",
        "protectedpages-noredirect": "बदलेन नुकाऊँ",
        "protectedtitles": "संरक्षित शीर्षक सभ",
        "protectedtitlesempty": "कोनो पन्ना ऐ सभ परिमिति लेल सुरक्षित नै राखल गेल अछि।",
        "listusers": "प्रयोक्ता सूची",
-       "listusers-editsonly": "सम्पादन करैबला प्रयोक्ताकेँ मात्र देखाउ",
-       "listusers-creationsort": "निरà¥\8dमाण à¤¤à¤¿à¤¥à¤¿à¤\95 à¤¹à¤¿à¤¸à¤¾à¤¬à¤¸à¤\81 à¤\9bाà¤\81à¤\9fà¥\82",
-       "listusers-desc": "अवरोही क्रम में क्रमबद्ध करी",
-       "usereditcount": "$1 {{PLURAL:$1|सम्पादन|सम्पादन सभ}}",
-       "usercreated": "{{GENDER:$3| बनैलक|बनैलकिन्ह}} $1 तिथि पर $2 काले",
+       "listusers-editsonly": "सम्पादन करैबला प्रयोक्ताक मात्र देखाबी",
+       "listusers-creationsort": "निरà¥\8dमाण à¤¤à¤¿à¤¥à¤¿à¤\95 à¤¹à¤¿à¤¸à¤¾à¤¬à¤¸à¤\81 à¤\9bाà¤\81à¤\9fà¥\80",
+       "listusers-desc": "अवरोही क्रममे क्रमबद्ध करी",
+       "usereditcount": "$1 {{PLURAL:$1|सम्पादन|सम्पादनसभ}}",
+       "usercreated": "$1 तिथि पर $2 काले {{GENDER:$3|बनैलक}}",
        "newpages": "नव पन्नासभ",
        "newpages-username": "प्रयोक्तानाम:",
-       "ancientpages": "सभसँ पुरान पन्ना सभ",
-       "move": "हà¤\9fाà¤\89",
-       "movethispage": "à¤\90 à¤ªà¥\83षà¥\8dठà¤\95à¥\87à¤\81 à¤\98सà¤\95ाà¤\89",
+       "ancientpages": "सभसँ पुरान पन्नासभ",
+       "move": "सà¥\8dथानानà¥\8dतरण",
+       "movethispage": "à¤\88 à¤ªà¥\83षà¥\8dठà¤\95à¥\87 à¤\98सà¤\95ाबà¥\80",
        "unusedimagestext": "ई सभ संचिका अछि मुदा कोनो पन्नामे निवशित नै अछि।\nकृपा कऽ ई बुझू जे दोसर जालस्थल सभ सोझ सार्वत्रिक विभव संकेतबला कोनो संचिकासँ लागि बना सकैए, आ तँए सरिय प्रयोगक बादो अखनो एतए सूचित कएल जा सकैए।",
        "unusedcategoriestext": "ई संवर्ग पन्ना सभ अछि, ओना कोनो दोसर पन्ना वा संवर्ग ओकर प्रयोग करैत अछि।",
        "notargettitle": "बिन लक्ष्यक",
        "nopagetext": "लक्ष्य पन्ना जे अहाँ निर्दिष्ट केने छी से नै अछि।",
        "pager-newer-n": "{{PLURAL:$1|नव 1|नव $1}}",
        "pager-older-n": "{{PLURAL:$1|साबिक 1|साबिक $1}}",
-       "suppress": "नà¤\9cरिपर à¤¨à¥\88 à¤\86à¤\8fल",
+       "suppress": "नà¥\81à¤\95ाबà¥\80",
        "querypage-disabled": "ई विशिष्ट पन्ना कार्य दक्षता लेल अशक्त कएल गेल अछि।",
        "apihelp": "API मद्दत",
        "apihelp-no-such-module": "मोड्युल \"$1\" नै भेटल।",
        "apisandbox": "ए॰पी॰आइ प्रयोगपृष्ठ",
-       "apisandbox-submit": "à¤\85नà¥\81रà¥\8bध à¤\95रà¥\81",
+       "apisandbox-submit": "à¤\85नà¥\81रà¥\8bध à¤\95रà¥\80",
        "apisandbox-reset": "स्पष्ट",
        "apisandbox-examples": "उदाहरण",
        "apisandbox-results": "परिणाम",
        "apisandbox-request-url-label": "अनुरोध URL:",
-       "apisandbox-request-time": "अनुरोध समय: $1",
-       "booksources": "à¤\95िताबà¤\95 à¤¸à¤¨à¥\8dदरà¥\8dभ à¤¸à¤­",
-       "booksources-search-legend": "à¤\95िताबà¤\95 à¤¸à¤¨à¥\8dदरà¥\8dभà¤\95 à¤²à¥\87ल à¤¤à¤¾à¤\95à¥\82",
+       "apisandbox-request-time": "अनुरोध समय: {{PLURAL:$1|$1 मिसे}}",
+       "booksources": "à¤\95िताबà¤\95 à¤¸à¥\8dरà¥\8bत",
+       "booksources-search-legend": "à¤\95िताबà¤\95 à¤¸à¥\8dरà¥\8bत à¤¤à¤¾à¤\95à¥\80",
        "booksources-isbn": "आइ.एस.बी.एन.:",
-       "booksources-search": "ताà¤\95à¥\82",
+       "booksources-search": "ताà¤\95à¥\80",
        "booksources-text": "नीचाँ दोसर जालस्थलसँ लागि सभक सूची अछि जे नव आ प्रयोग कएल किताब बेचैए, आ ई पोथी सभक विषयमे ओहो सूचना दऽ सकैए जे अहाँ ताकि रहल छी:",
        "booksources-invalid-isbn": "देल आइ.एस.बी.एन. संख्या मान्य नै बुझाइत अछि; कृपा कऽ मूल स्रोतसँ द्वितीयक बनेबा काल भेल भ्रमकेँ जाँचू।",
        "specialloguserlabel": "कर्ता:",
-       "speciallogtitlelabel": "लà¤\95à¥\8dषà¥\8dय (शà¥\80रà¥\8dषà¤\95 à¤µà¤¾ à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dता):",
-       "log": "वृत्तलेख सभ",
+       "speciallogtitlelabel": "पà¥\8dरयà¥\8bà¤\9cन (शà¥\80रà¥\8dषà¤\95 à¤\85थवा {{ns:user}}:पà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dतानाम):",
+       "log": "वृत्तलेख",
        "all-logs-page": "सभ सार्वजनिक वृत्तलेख",
        "alllogstext": "{{अन्तर्जाल}} क सभटा उपलब्ध वृत्तलेखक संयुक्त दृश्य।\nअहाँ दृश्यकेँ संकीर्ण करबा लेल वृत्तलेखक एकटा प्रकार चुनि सकै छी, प्रयोक्तानाम (ब्रह्मक्षर-लघ्वक्षर विचारणीय), वा प्रभावित पन्ना (एतौ ब्रह्मक्षर-लघ्वक्षर विचारणीय)।",
        "logempty": "वृत्तलेखमे कोनो मेल खाइबला बौस्तु नै।",
        "log-title-wildcard": "खोज शीर्षक सभ ऐ पाठसँ प्रारम्भ",
-       "showhideselectedlogentries": "दà¥\87à¤\96ाà¤\89/ à¤¨à¥\81à¤\95ाà¤\89 à¤\9aयनित à¤²à¤\97 à¤¸à¤­",
+       "showhideselectedlogentries": "दà¥\87à¤\96ाबà¥\80/ à¤¨à¥\81à¤\95ाबà¥\80 à¤\9aयनित à¤²à¤\97",
        "log-edit-tags": "चुनल गेल लग प्रविक्तिसभ एक सम्पादन ट्याग",
        "allpages": "सभ पन्ना",
        "nextpage": "अगिला पन्ना ($1)",
        "allarticles": "सभटा लेख",
        "allinnamespace": "सभटा पन्ना ($1 नामगाम)",
        "allpagessubmit": "जाए",
-       "allpagesprefix": "उपसर्गक संग दृश्य पन्ना सभ:",
+       "allpagesprefix": "उपसर्गक संग दृश्य पन्ना:",
        "allpagesbadtitle": "देल पन्नाक शीर्षक गलत, गलत सम्बन्धित अन्तर-भाषा अन्तर विकी शीर्षक छी। ई एक वा बेशी कलाकार युक्त भऽ सकैए जे शीर्षकमे प्रयुक्त नै कएल जा सकैए।",
-       "allpages-bad-ns": "{{जालस्थल}} मे \"$1\" नामगाम नै अछि।",
-       "allpages-hide-redirects": "बदलà¥\87न à¤¨à¥\81à¤\95ाà¤\8aà¤\81",
+       "allpages-bad-ns": "{{SITENAME}} मे \"$1\" नामगाम नै अछि।",
+       "allpages-hide-redirects": "पà¥\81नरà¥\8dनिरà¥\8dदà¥\87श à¤¨à¥\81à¤\95ाबà¥\80",
        "cachedspecial-viewing-cached-ttl": "अहाँ ई पृष्ठ के क्यास कएल अवतरण देख रहल छी, जे $1 पूरान भऽ सकएत अछि।",
        "cachedspecial-viewing-cached-ts": "अहाँ इ पृष्ठ के क्यास कएल गएल अवतरण देख रहल छी, जे कि संभवतः वर्तमान अवस्था सँ भिन्न भऽ सकएत अछि।",
        "cachedspecial-refresh-now": "लब्का देखु",
-       "categories": "सà¤\82वरà¥\8dà¤\97 सभ",
+       "categories": "शà¥\8dरà¥\87णà¥\80सभ",
        "categoriespagetext": "ई {{PLURAL:$1|संवर्गमे अछि|संवर्ग सभमे अछि}} पन्ना वा मीडिया।\n[[Special:UnusedCategories|Unused categories]] एतए देखाएल नै अछि।\nईहो देखू [[Special:WantedCategories|wanted categories]]।",
        "categoriesfrom": "पन्ना प्रदर्शन प्रारम्भ भेल:",
-       "deletedcontributions": "मेटाएल प्रयोक्ता योगदान सभ",
-       "deletedcontributions-title": "मेटाएल प्रयोक्ता योगदान सभ",
-       "sp-deletedcontributions-contribs": "योगदान सभ",
-       "linksearch": "बाहरà¤\95 à¤¸à¤®à¥\8dबनà¥\8dधक खोज",
+       "deletedcontributions": "मेटाएल प्रयोक्ता योगदान",
+       "deletedcontributions-title": "मेटाएल प्रयोक्ता योगदान",
+       "sp-deletedcontributions-contribs": "योगदान",
+       "linksearch": "बाहà¥\8dय à¤²à¤¿à¤\99à¥\8dक खोज",
        "linksearch-pat": "खोज तरीका:",
        "linksearch-ns": "नामस्थान :",
-       "linksearch-ok": "ताà¤\95à¥\82",
-       "linksearch-text": "ब्रह्मास्त्र जेना \"*.wikipedia.org\" प्रयोग कएल जा सकैए।\nसहायक संविद:$1 (खोजमे ऐमेसँ कोनो नै जोड़ू)।",
+       "linksearch-ok": "ताà¤\95à¥\80",
+       "linksearch-text": "\"*.wikipedia.org\" जोका वाईल्ड-कार्ड्स प्रयोग कएल जा सकएत अछि।\nकम-सँ-कम \".org\" जोक कोनो उच्च स्तरीय डोमेनक आवश्यकता अछि।<br />\nस्वीकार्य {{PLURAL:$2|प्रोटोकल|प्रोटोकलसभ}}: $1 (यदि कोनो प्रोटोकल नै दएल जाए त http:// क प्रयोग कएल जाएत अछि)",
        "linksearch-line": "$2 सँ $1 क लागि अछि।",
        "linksearch-error": "निमंत्रकनामक प्रारम्भमे ब्रह्मास्त्र आबि सकैए।",
        "listusersfrom": "प्रयोक्ता प्रदर्शन प्रारम्भ भेल:",
-       "listusers-submit": "दà¥\87à¤\96ाà¤\89",
+       "listusers-submit": "दà¥\87à¤\96ाबà¥\80",
        "listusers-noresult": "कोनो प्रयोक्ता नै",
        "listusers-blocked": "(प्रतिबन्धित)",
        "activeusers": "सक्रिय प्रयोक्ता सभक सूची",
        "activeusers-intro": "ई ओहेन प्रयोक्ता सभक सूची अछि जे पछिला $1 {{PLURAL:$1|दिन|दिन}} मे किछु सक्रियता देखेने छथि।",
-       "activeusers-count": "$1 {{PLURAL:$1|सम्पादन|सम्पादन सभ}} paChilaa {{PLURAL:$3|दिन|$3 दिन}}",
+       "activeusers-count": "$1 {{PLURAL:$1|सम्पादन}} विगत $3 {{PLURAL:$3|दिन|दिन}}मे",
        "activeusers-from": "प्रयोक्ता प्रदर्शन प्रारम्भ भेल:",
-       "activeusers-hidebots": "सà¥\8dवà¤\9aालन à¤¨à¥\81à¤\95ाà¤\89",
-       "activeusers-hidesysops": "सà¤\82à¤\9aालà¤\95 à¤¨à¥\81à¤\95ाà¤\89",
+       "activeusers-hidebots": "सà¥\8dवà¤\9aालà¤\95 à¤¨à¥\81à¤\95ाबà¥\80",
+       "activeusers-hidesysops": "पà¥\8dरबनà¥\8dधà¤\95 à¤¨à¥\81à¤\95ाबà¥\80",
        "activeusers-noresult": "कोनो प्रयोक्ता नै भेटल",
-       "listgrouprights": "पà¥\8dरयà¥\8bà¤\95à¥\8dता à¤¸à¤\82वरà¥\8dà¤\97 अधिकार",
+       "listgrouprights": "पà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dता à¤¸à¤®à¥\82ह अधिकार",
        "listgrouprights-summary": "ई सभ प्रयोक्ता संवर्गक एकटा सूची अछि जे ऐ विकीपरपरिभाषित अछि ओकर संसर्गित प्रवेश अधिकारक संग।\nएतए [[{{MediaWiki:Listgrouprights-helppage}}|additional information]] व्यक्तिगत अधिकार लेल भऽ सकैए।",
        "listgrouprights-key": "* <span class=\"listgrouprights-granted\">देल अधिकार</span>\n* <span class=\"listgrouprights-revoked\">निकालल अधिकार</span>",
-       "listgrouprights-group": "वरà¥\8dà¤\97",
+       "listgrouprights-group": "समà¥\82ह",
        "listgrouprights-rights": "अधिकार",
        "listgrouprights-helppage": "Help: वर्ग अधिकार",
        "listgrouprights-members": "(प्रयोक्ता सूची)",
-       "listgrouprights-addgroup": "जोड़ू {{PLURAL:$2|वर्ग|वर्ग}}: $1",
-       "listgrouprights-removegroup": "निà¤\95ालà¥\82 {{PLURAL:$2|वरà¥\8dà¤\97|वरà¥\8dà¤\97}}: $1",
-       "listgrouprights-addgroup-all": "सभटा वर्ग जोड़ू",
-       "listgrouprights-removegroup-all": "सभटा वर्ग निकालू",
-       "listgrouprights-addgroup-self": "à¤\9cà¥\8bड़à¥\82 {{PLURAL:$2|वरà¥\8dà¤\97|वरà¥\8dà¤\97}} à¤\85पन à¤\96ातामà¥\87: $1",
-       "listgrouprights-removegroup-self": "निà¤\95ालà¥\82 {{PLURAL:$2|वरà¥\8dà¤\97|वरà¥\8dà¤\97}} à¤\85पन à¤\96ातामà¥\87: $1",
+       "listgrouprights-addgroup": "{{PLURAL:$2|समूह}} जोडी: $1",
+       "listgrouprights-removegroup": "समà¥\82ह {{PLURAL:$2|मà¥\87à¤\9fाबà¥\80}}: $1",
+       "listgrouprights-addgroup-all": "सभ समूह जोडी",
+       "listgrouprights-removegroup-all": "सभ समूह मेटाबी",
+       "listgrouprights-addgroup-self": "à¤\85पन à¤\96ातामà¥\87 {{PLURAL:$2|समà¥\82ह|समà¥\82हसभ}} à¤\9cà¥\8bडà¥\80: $1",
+       "listgrouprights-removegroup-self": "à¤\85पन à¤\96ातासà¤\81 {{PLURAL:$2|समà¥\82ह|समà¥\82हसभ}} à¤¹à¤\9fाबà¥\80: $1",
        "listgrouprights-addgroup-self-all": "सभ वर्गकेँ अपन खातामे जोड़ू",
        "listgrouprights-removegroup-self-all": "सभ वर्गकेँ अपन खातासँ निकालू",
        "listgrouprights-namespaceprotection-header": "नामस्थान प्रतिबन्धित",
        "listgrouprights-namespaceprotection-namespace": "नामस्थान",
        "listgrouprights-namespaceprotection-restrictedto": "सांच(सभ) के संपादन करए लेल",
        "trackingcategories": "श्रेणीके ट्रयाक करु",
-       "trackingcategories-msg": "शà¥\8dरà¥\87णà¥\80à¤\95à¥\87 à¤\9fà¥\8dरयाà¤\95 à¤\95रà¥\81",
+       "trackingcategories-msg": "à¤\9aिहà¥\8dनित à¤¶à¥\8dरà¥\87णà¥\80",
        "trackingcategories-name": "सन्देश नाम",
        "trackingcategories-desc": "श्रेणी समावेशीकरण मापदण्ड",
        "trackingcategories-nodesc": "कोनो वर्णन उपलब्ध नै।",
        "emailuser-title-target": "इ {{GENDER:$1|प्रयोक्ता}} के ई-पत्र भेजु।",
        "emailuser-title-notarget": "ई-पत्र प्रयोक्ता",
        "emailpagetext": "अहाँक नीचाँक आवेदन-पत्र ऐ प्रयोक्ताकेँ ई-पत्र संदेश पठेबा लेल प्रयोग कऽ सकै छी।\nई-पत्र जे अहाँ [[Special:Preferences|your user preferences]] मे देलहुँ से ई-पत्र\"एतएसँ\" पतासँ देखाएत, से प्राप्तकर्ता सोझे अहाँकेँ उत्तर देबामे समर्थ हेताह।",
-       "defemailsubject": "{{जालस्थल}} प्रयोक्ता \"$1\" सँ ई-पत्र",
+       "defemailsubject": "{{SITENAME}} प्रयोक्ता \"$1\" सँ ई-पत्र",
        "usermaildisabled": "प्रयोक्ता ई-पत्र अशक्त",
        "usermaildisabledtext": "अहाँ दोसर प्रयोक्ताकेँ ऐ विकीपर ई-पत्र नै पठा सकए छी",
        "noemailtitle": "कोनो ई-पत्र पता नै",
        "noemailtext": "ई पर्योक्ता अपन कोनो मान्य ई-पत्र संकेत नै देने अछि।",
        "nowikiemailtext": "ई प्रयोक्ता दोसर प्रयोक्तासँ ई-पत्र प्राप्त नै करबाक विकल्प चुनने अछि।",
        "emailnotarget": "अस्तित्वहीन वा अमान्य प्राप्तकर्ताक प्रयोक्तानाम",
-       "emailtarget": "पà¥\8dरापà¥\8dतà¤\95रà¥\8dताà¤\95 à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dतानाम à¤¦à¤°à¥\8dà¤\9c à¤\95रà¥\82",
+       "emailtarget": "पà¥\8dरापà¥\8dतà¤\95रà¥\8dताà¤\95 à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dतानाम à¤¦à¤°à¥\8dà¤\9c à¤\95रà¥\80",
        "emailusername": "प्रयोक्तानाम:",
        "emailusernamesubmit": "दिअ",
-       "email-legend": "ई-पत्र दोसर {{जालस्थल}} प्रयोक्ताकेँ पठाउ",
+       "email-legend": "ई-पत्र दोसर {{SITENAME}} प्रयोक्ताके पठाबी",
        "emailfrom": "एतऽसँ:",
        "emailto": "ऐलेल:",
        "emailsubject": "विषय:",
-       "emailmessage": "सà¤\82देश:",
-       "emailsend": "पठाà¤\89",
-       "emailccme": "हमर à¤¸à¤\82दà¥\87शà¤\95 à¤¦à¥\8dवितà¥\80यà¤\95 à¤¹à¤®à¤° à¤\88-पतà¥\8dरपर à¤ªà¤ à¤¾à¤\89",
+       "emailmessage": "सनà¥\8dदेश:",
+       "emailsend": "पठाबà¥\80",
+       "emailccme": "हमर à¤¸à¤¨à¥\8dदà¥\87शà¤\95 à¤¦à¥\8dवितà¥\80यà¤\95 à¤¹à¤®à¤° à¤\88-पतà¥\8dरपर à¤ªà¤ à¤¾à¤¬à¥\80",
        "emailccsubject": "अहाँक संदेशक द्वितीयक $1: $2",
        "emailsent": "ई-पत्र पठेलौं",
-       "emailsenttext": "à¤\85हाà¤\81à¤\95 à¤\88-पतà¥\8dर à¤¸à¤\82देश पठाएल गेल।",
-       "emailuserfooter": "à¤\88 à¤\88-पतà¥\8dर $1 à¤¸à¤\81 $2 à¤\95à¥\87à¤\81 \"à¤\88-पतà¥\8dर à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dता\" à¤\95à¥\87à¤\81 à¤ªà¤ à¤¾à¤\93ल à¤\97à¥\87ल {{à¤\9cालसथल}} à¤ªà¤°।",
-       "usermessage-summary": "पà¥\8dरणालà¥\80 à¤¸à¤\82दà¥\87श à¤¦à¥\87ल।",
+       "emailsenttext": "à¤\85हाà¤\81à¤\95 à¤\88-पतà¥\8dर à¤¸à¤¨à¥\8dदेश पठाएल गेल।",
+       "emailuserfooter": "à¤\88 à¤\88-मà¥\87ल $1 {{GENDER:$1|दà¥\8dवारा}} {{GENDER:$2|$2}}à¤\95 à¤­à¥\87à¤\9cल à¤\97à¥\87ल à¤\9bल à¤\9cà¥\87à¤\95र à¤²à¥\87ल \"{{int:emailuser}}\" à¤\95ारà¥\8dयà¤\95à¥\87 {{SITENAME}} à¤ªà¤° à¤ªà¥\8dरयà¥\8bà¤\97मà¥\87 à¤²à¤¾à¤¬à¤² à¤\97à¥\87ल à¤\9bल।",
+       "usermessage-summary": "पà¥\8dरणालà¥\80 à¤¸à¤¨à¥\8dदà¥\87श à¤\9bà¥\8bडि à¤°à¤¹à¤² à¤\85à¤\9bि।",
        "usermessage-editor": "प्रणालीक दूत",
        "usermessage-template": "मीडियाविकी:प्रयोक्ता संदेश",
        "watchlist": "साकांक्षसूची",
        "nowatchlist": "अहाँक साकांक्ष-सूचीमे कोनो पन्ना नै अछि।",
        "watchlistanontext": "कृपा कऽ $1 अहाँक साकांक्ष-सूचीकेँ देखबा वा सम्पादित करबा लेल।",
        "watchnologin": "सम्प्रवेशित नै",
-       "addwatch": "साà¤\95ाà¤\82à¤\95à¥\8dष à¤¸à¥\82à¤\9aà¥\80मà¥\87 à¤\9cà¥\8bड़à¥\82",
-       "addedwatchtext": "पनà¥\8dना \"[[:$1]]\" à¤\85हाà¤\81à¤\95 [[Special:Watchlist|साà¤\95ाà¤\82à¤\95à¥\8dष à¤¸à¥\82à¤\9aà¥\80]] à¤®à¥\87 à¤\9cà¥\8bड़ल à¤\97à¥\87ल।\nà¤\90 à¤ªà¤¨à¥\8dनामà¥\87 à¤­à¤µà¤¿à¤·à¥\8dयà¤\95 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤\86 à¤\8fà¤\95र à¤¸à¤®à¥\8dबनà¥\8dधित à¤\9aà¥\8cबà¤\9fिया à¤ªà¤¨à¥\8dना à¤\8fतà¤\8f à¤¸à¥\82à¤\9aà¥\80बदà¥\8dध à¤°à¤¹à¤¤, à¤\86 à¤ªà¤¨à¥\8dना [[Special:RecentChanges|हालà¤\95 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन]]मà¥\87 '''à¤\97ाढ़''' à¤¦à¥\87à¤\96ाà¤\8fत , à¤\9cà¤\87सà¤\81 à¤\86सानà¥\80सà¤\81 à¤\8fà¤\95रा à¤\9aिनà¥\8dहल à¤\9cा à¤¸à¤\95त।",
+       "addwatch": "साà¤\95ाà¤\82à¤\95à¥\8dष à¤¸à¥\82à¤\9aà¥\80मà¥\87 à¤\9cà¥\8bडà¥\80",
+       "addedwatchtext": "à¤\85हाà¤\81à¤\95 [[Special:Watchlist|धà¥\8dयानसà¥\82à¤\9aà¥\80]]मà¥\87 \"[[:$1]]\" à¤\86 à¤\8fà¤\95र à¤\9aरà¥\8dà¤\9aा à¤ªà¥\83षà¥\8dठ à¤\9cà¥\8bडि à¤¦à¤\8fल à¤\97à¥\87ल à¤\85à¤\9bि।",
        "addedwatchtext-short": "इ पृष्ठ \"$1\" अहाँ के साकांक्ष सूची मे राखल गेल अछि।",
-       "removewatch": "साà¤\95ाà¤\82à¤\95à¥\8dष à¤¸à¥\82à¤\9aà¥\80सà¤\81 à¤¹à¤\9fाà¤\89",
-       "removedwatchtext": "पनà¥\8dना \"[[:$1]]\" à¤¹à¤\9fाà¤\8fल à¤\97à¥\87ल [[Special:Watchlist|à¤\85हाà¤\81à¤\95 à¤¸à¤¾à¤\95ाà¤\82à¤\95à¥\8dषसà¥\82à¤\9aà¥\80]] à¤¸à¤\81।",
+       "removewatch": "साà¤\95ाà¤\82à¤\95à¥\8dष à¤¸à¥\82à¤\9aà¥\80सà¤\81 à¤¹à¤\9fाबà¥\80",
+       "removedwatchtext": "à¤\85हाà¤\81à¤\95 [[Special:Watchlist|धà¥\8dयानसà¥\82à¤\9aà¥\80]]सà¤\81 \"[[:$1]]\" à¤\86 à¤\8fà¤\95र à¤\9aरà¥\8dà¤\9aा à¤ªà¥\83षà¥\8dठ à¤¹à¤\9fाà¤\8fल à¤\97à¥\87ल à¤\85à¤\9bि।",
        "removedwatchtext-short": "इ पृष्ठ \"$1\" अहाँ के साकांक्ष सूची मे राखल गेल अछि।",
        "watch": "ध्यान राखु",
        "watchthispage": "ऐ पृष्ठपर ध्यान राखू",
-       "unwatch": "à¤\9bà¥\8bड़à¥\82",
-       "unwatchthispage": "दà¥\87à¤\96नाà¤\87 à¤\9bà¥\8bड़à¥\82",
+       "unwatch": "à¤\9bà¥\8bडà¥\80",
+       "unwatchthispage": "दà¥\87à¤\96नाà¤\87 à¤\9bà¥\8bडà¥\80",
        "notanarticle": "कोनो विषय सूची नै",
        "notvisiblerev": "कोनो दोसर प्रयोक्ता द्वारा कएल अन्तिम परिवर्तन मेटा देल गेल",
        "watchlist-details": "{{PLURAL:$1|$1 पन्ना|$1 पन्ना सभ}} अहाँक साकांक्षसूचीमे, चौबटिया पन्ना नै गानल गेल।",
        "wlheader-showupdated": "पन्ना सभ जे अहाँक एतए अन्तिम बेर अएलाक बाद बदलल अछि तकर सूची देल अछि '''गाढ़''' मे",
        "wlnote": "नीचाँ {{PLURAL:$1|is the last change|are the last '''$1''' changes}} अन्तिम {{PLURAL:$2|hour|'''$2''' hours}} $3, $4 जेना।",
        "wlshowlast": "देखाउ अन्तिम $1 घण्टा $2 दिन",
-       "watchlist-options": "साकांक्षसूचीक विकल्प सभ",
+       "watchlist-options": "साकांक्षसूचीक विकल्प",
        "watching": "ताकिमे...",
-       "unwatching": "à¤\9bà¥\8bड़ल ...",
+       "unwatching": "छोडल ...",
        "watcherrortext": "अहाँक साकांक्ष-सूची विकल्प \"$1\" लेल बदलबा काल एकटा भ्रम आएल।",
-       "enotif_reset": "सभ पन्नाकेँ देखल चिन्हित करू",
-       "enotif_impersonal_salutation": "{{अन्तर्जाल}} प्रयोक्ता",
+       "enotif_reset": "सभ पन्नाके देखल चिन्हित करी",
+       "enotif_impersonal_salutation": "{{SITENAME}} प्रयोगकर्ता",
        "enotif_subject_deleted": "{{SITENAME}} पन्ना $1 के {{gender:$2|$2}} हटेलक",
        "enotif_subject_created": "{{SITENAME}} पन्ना $1 को {{gender:$2|$2}} बनेलक",
        "enotif_subject_moved": "{{SITENAME}} पृष्ठ $1 के {{gender:$2|$2}} घसकेलक",
        "excontent": "विषय छल:\"$1\"",
        "excontentauthor": "पाठ छल:\"$1\" (आ एकमात्र योगदान दैबला छल \"[[Special:Contributions/$2|$2]]\")",
        "exbeforeblank": "खतम होएबाक पहिने पाठ छल:\"$1\"",
-       "delete-confirm": "$1 केँ मेटाउ",
-       "delete-legend": "मà¥\87à¤\9fाà¤\89",
+       "delete-confirm": "$1 के मेटाबी",
+       "delete-legend": "मà¥\87à¤\9fाबà¥\80",
        "historywarning": "'''चेतौनी:''' जे पन्ना अहाँ मेटबैबला छी तकर इतिहास अछि लगभग $1 {{PLURAL:$1|revision|revisions}}:",
        "confirmdeletetext": "अहाँ सभटा इतिहासक संग ऐ पन्नाकेँ हटाबऽ जा रहल छी।\nअहाँ ई सुनिश्चित करू जे अहाँ ई करऽ चाहै छी, अहाँकेँ एकर परिणामक अवगति अछि आ अहाँ ई ऐ [[{{MediaWiki:Policy-url}}|नीति]] क अनुसार कऽ रहल छी।",
        "actioncomplete": "क्रिया पूर्ण",
        "editcomment": "सम्पादन सार छल : <em>$1</em>।",
        "revertpage": "सम्पादन आपस कएल गेल [[Special:Contributions/$2|$2]] ([[User talk:$2|talk]]) सँ अन्तिम संशोधन धरि एकरा द्वारा [[User:$1|$1]]।",
        "revertpage-nouser": "(प्रयोक्ताक नाम हटा देल गेल अछि) द्वारा केल गेल संपादनकेँ फेरसँ पुरान स्थितिमे आनि कऽ एकर पहिलुक [[User:$1|$1]] सँ बनल संस्करणकेँ फेरसँ ताजा संस्करण बनाऊ।",
-       "rollback-success": "$1 à¤\95à¥\87र à¤¸à¤\82पादन à¤¹à¤\9fाà¤\8a. \n$2 à¤\95à¥\87र à¤¸à¤\82पादित à¤\86à¤\96िरà¥\80 à¤\85वतरण à¤\95 à¤ªà¥\81नरà¥\8dसà¥\8dथापित à¤\95रल à¤\97à¥\87ल.",
+       "rollback-success": "$1 à¤\95à¥\87र à¤¸à¤®à¥\8dपादन à¤¹à¤\9fाबà¥\80। \n$2 à¤\95à¥\87र à¤¸à¤®à¥\8dपादित à¤\86à¤\96िरà¥\80 à¤\85वतरणà¤\95 à¤ªà¥\81नरà¥\8dसà¥\8dथापित à¤\95रल à¤\97à¥\87ल।",
        "sessionfailure-title": "सत्र विफल भ गेल",
        "sessionfailure": "एहन लागैत अछि जे अहां के लागिन सत्र में कोनो त्रुटि अछि. सत्र अपहरण से बचाबय  सं सावधानीक लेल अहां के अहि क्रियाकलाप क रद्द क देल गेल. अहां पाछां के पृष्ठ पर जौउ आ पृष्ठ के फेर सं लोड क दोबारा कोशिश करू.",
        "protectlogpage": "सुरक्षा लग",
        "namespace_association": "सम्बद्ध चेन्हासी",
        "tooltip-namespace_association": "ऐ बक्साकेँ सही करू जइसँ वार्ता आ विषय नामस्थान समाहित कएल जा सकए चुनल नामस्थानमे",
        "blanknamespace": "(मुख्य)",
-       "contributions": "प्रयोक्ताक योगदान सभ",
+       "contributions": "{{GENDER:$1|प्रयोगकर्ता}} योगदान",
        "contributions-title": "$1 लेल प्रयोक्ताक अवदान",
        "mycontris": "योगदान",
        "anoncontribs": "योगदानसभ",
-       "contribsub2": "$1 ($2) लेल",
+       "contribsub2": "{{GENDER:$3|$1}} ($2)क लेल",
        "contributions-userdoesnotexist": "प्रयोक्ता खाता \"$1\" पंजीकृत नै अछि।",
        "nocontribs": "कोनो परिवर्तन ऐ सँ मेल नै खाइए।",
        "uctop": "(शिखर)",
        "month": "माससँ (आ पहिने)",
        "year": "ऐ साल (आ पहिने)",
-       "sp-contributions-newbies": "नव à¤\96ाताà¤\95 à¤\85वदानà¤\95à¥\87à¤\81 à¤¦à¥\87à¤\96ाà¤\89",
+       "sp-contributions-newbies": "मातà¥\8dर à¤¨à¤µ à¤\96ाताà¤\95 à¤¯à¥\8bà¤\97दान à¤¦à¥\87à¤\96ाबà¥\80",
        "sp-contributions-newbies-sub": "नब प्रयोक्ताकऽ लेल",
        "sp-contributions-newbies-title": "नब प्रयोक्ताकऽ योगदान",
        "sp-contributions-blocklog": "प्रतिबन्धित वृत्तलेख",
        "whatlinkshere-prev": "{{PLURAL:$1|पहिलुका|पहिलुका $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|अगुलका|अगुलका $1}}",
        "whatlinkshere-links": "← जडीसभ",
-       "whatlinkshere-hideredirs": "$1 à¤¬à¤¦à¤²à¥\87न à¤¨à¥\81à¤\95ाà¤\8aà¤\81",
+       "whatlinkshere-hideredirs": "$1 à¤¬à¤¦à¤²à¥\87न à¤¨à¥\81à¤\95ाबà¥\80",
        "whatlinkshere-hidetrans": "$1 परागत",
        "whatlinkshere-hidelinks": "$1 सम्बन्ध सभ",
        "whatlinkshere-hideimages": "$1 फाइल जडी सभ",
        "autoblockid": "स्वतःप्रतिबन्धित #$1",
        "block": "प्रयोक्ताकेँ प्रतिबन्धित करू",
        "unblock": "प्रयोक्ताकेँ प्रतिबन्धसँ हटाउ",
-       "blockip": "प्रयोक्ताकेँ प्रतिबन्धित करू",
+       "blockip": "{{GENDER:$1|प्रयोक्ता}}क प्रतिबन्धित करी",
        "blockip-legend": "प्रयोक्ताकेँ प्रतिबन्धित करू",
        "blockiptext": "नीचाँक आवेदनक प्रयोग कोनो खास अनिकेत वा प्रयोक्तानामक लिखैक प्रवेशकेँ प्रतिबन्धित करबा लेल करू।\nई अतत्तः करैबलाक विरुद्ध प्रयुक्त हुअए, आ एकर अनुसार [[{{MediaWiki:Policy-url}}|policy]]।\nनीचाँ स्पष्ट कारण लिखू (जेना, खास पन्नाकेँ देखबैत जतए अतत्तः कएल गेल अछि)।",
        "ipaddressorusername": "अनिकेत संकेत वा प्रयोक्तानाम:",
        "blockipsuccesstext": "[[Special:Contributions/$1|$1]] प्रतिबन्धित कएल गेल।<br />\nदेखू [[Special:BlockList|IP block list]] प्रतिबन्धक पुनरीक्षण लेल।",
        "ipb-blockingself": "अहाँ अपनाकेँ प्रतिबन्धित करैबला छी! अहाँ निश्च्य केने छी जे अहाँ ई करए चाहै छी?",
        "ipb-confirmhideuser": "अहाँ एकटा प्रयोक्ताकेँ जे \"प्रयोक्ता नुकाउ\" विकल्पक संग अछि, प्रतिबन्धित करैबला छी। ई प्रयोक्ताक नाम सभटा सूची आ वृत्तलेखमे दबा देत। की अहाँ निश्चय केने छी जे अहाँ ई करए चाहै छी?",
-       "ipb-edit-dropdown": "प्रतिबन्ध कारण  संपादित करू",
+       "ipb-edit-dropdown": "प्रतिबन्ध कारण सम्पादित करी",
        "ipb-unblock-addr": "प्रतिबन्ध हटाएल $1",
        "ipb-unblock": "प्रयोक्ता वा अनिकेतकें अप्रतिबंधित करू",
        "ipb-blocklist": "अखुनका प्रतिबंधित देखू",
        "blocklist-nousertalk": "अपन वार्ता पन्ना सम्पादित नै कऽ सकब",
        "ipblocklist-empty": "प्रतिबन्धसूची खाली अछि।",
        "ipblocklist-no-results": "आग्रह कएल अनिकेत वा प्रयोक्तानाम प्रतिबन्धित नै कएल गेल।",
-       "blocklink": "पà¥\8dरतिबà¤\82धित",
+       "blocklink": "पà¥\8dरतिबनà¥\8dधित",
        "unblocklink": "नै बारल",
        "change-blocklink": "खण्ड बदलू",
        "contribslink": "योगदान",
        "cant-move-to-user-page": "अहाँकेँ कोनो पन्नाकेँ प्रयोक्ता पन्ना लग घसकेबाक अधिकार नै अछि (प्रयोक्ता उपपन्ना लग छोड़ि कऽ)।",
        "newtitle": "नव शीर्षकपर:",
        "move-watch": "जड़ि पन्ना आ छीप पन्ना देखू",
-       "movepagebtn": "पनà¥\8dना à¤\98सà¤\95ाà¤\89",
+       "movepagebtn": "पनà¥\8dना à¤\98सà¤\95ाबà¥\80",
        "pagemovedsub": "घसकल",
        "movepage-moved": "'''\"$1\" घसकाएल गेल \"$2\"''' पर",
        "movepage-moved-redirect": "एकटा पुनर्निर्देशन बनाओल गेल छै.",
        "movepage-moved-noredirect": "पुनर्निर्देशन नहि बनाओल गेल छै.",
        "articleexists": "ओइ नामक एकटा पन्ना पहिनहियेसँ अछि, वा जे नाम अहाँ चयन केने छी से वांछित नै अछि। \nकृपा कऽ दोसर नामक चयन करू।",
        "cantmove-titleprotected": "नब शीर्षक बनाबै  सें रोकहि के कारण, अहां अहि ठाम पर कोनो आन पृष्ठक ठाम बदलि नहि सकब.",
-       "movetalk": "समà¥\8dबनà¥\8dधित à¤\9aà¥\8cबà¤\9fिया à¤ªà¤¨à¥\8dनाà¤\95à¥\87à¤\81 à¤\98सà¤\95ाà¤\89",
+       "movetalk": "समà¥\8dबनà¥\8dधित à¤µà¤¾à¤°à¥\8dता à¤ªà¥\83षà¥\8dठ à¤¸à¥\87हà¥\8b à¤\98सà¤\95ाबà¥\80",
        "move-subpages": "उपपृष्ठ सेहो लेल जाऊ ($1 धरि)",
        "move-talk-subpages": "वार्ता पृष्ठक उपपृष्ठ लेने जाऊ ($1 धरि)",
        "movepage-page-exists": "पन्ना $1 पहिनहियेसँ अछि आ स्वचालित रूपेँ मेटाएल नै जा सकैए।",
        "export-pagelinks": "लागिबला पन्ना सभकेँ एतेक तह धरि राखू:",
        "allmessages": "प्रणालीक सन्देश",
        "allmessagesname": "नाम",
-       "allmessagesdefault": "पà¥\82रà¥\8dवनिरà¥\8dधारित à¤¸à¤\82देश पाठ",
-       "allmessagescurrent": "à¤\85à¤\96à¥\81नà¤\95ा à¤¸à¤\82देश पाठ",
-       "allmessagestext": "à¤\88 à¤®à¥\80डियाविà¤\95à¥\80 à¤¨à¤¾à¤®à¤¸à¥\8dथानमà¥\87 à¤\89पलबà¥\8dध à¤¸à¤\82सà¥\8dथाà¤\97त à¤¸à¤\82दà¥\87शà¤\95 à¤¸à¥\82à¤\9aà¥\80 à¤\9bà¥\80।\nà¤\95à¥\83पा à¤\95ऽ à¤¦à¥\87à¤\96à¥\82 [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] à¤\86 [//translatewiki.net translatewiki.net] à¤\9cà¤\81 à¤\85हाà¤\81 à¤®à¥\80डियाविकीक स्थानिकीकरणक मूलक अनुवादमे योगदान करए चाहै छी।",
+       "allmessagesdefault": "पà¥\82रà¥\8dवनिरà¥\8dधारित à¤¸à¤¨à¥\8dदेश पाठ",
+       "allmessagescurrent": "à¤\85à¤\96à¥\81नà¤\95ा à¤¸à¤¨à¥\8dदेश पाठ",
+       "allmessagestext": "à¤\88 à¤®à¤¿à¤¡à¤¿à¤¯à¤¾à¤µà¤¿à¤\95à¥\80 à¤¨à¤¾à¤®à¤¸à¥\8dथानमà¥\87 à¤\89पलबà¥\8dध à¤¸à¤\82सà¥\8dथाà¤\97त à¤¸à¤¨à¥\8dदà¥\87शà¤\95 à¤¸à¥\82à¤\9aà¥\80 à¤\9bà¥\80।\nà¤\95à¥\83पा à¤\95ऽ à¤¦à¥\87à¤\96à¥\80 [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] à¤\86 [https://translatewiki.net translatewiki.net] à¤\9cà¤\81 à¤\85हाà¤\81 à¤®à¤¿डियाविकीक स्थानिकीकरणक मूलक अनुवादमे योगदान करए चाहै छी।",
        "allmessagesnotsupportedDB": "ई पन्ना प्रयोगमे नै आनल जा सकैए कारण '''$wgUseDatabaseMessages''' अशक्त कएल अछि।",
        "allmessages-filter-legend": "चलनी",
        "allmessages-filter": "अपन हिसाबे अनुकूलित कऽ छाँटू:",
        "import-options-wrong": "गलत {{PLURAL:$2|विकल्प}}: <nowiki>$1</nowiki>",
        "import-rootpage-invalid": "दयाल गेल उपसर्ग पन्ना शीर्षक अमान्य अछि ।",
        "import-rootpage-nosubpage": "दयाल गेल उपसर्ग पन्ना \"$1\" के नामस्थान में उप-पन्ना नै बनाबाल जा सकएत अछि ।",
-       "importlogpage": "लà¥\89à¤\97à¤\95 à¤\86यात",
+       "importlogpage": "à¤\86यात à¤¸à¥\82à¤\9aà¥\80",
        "importlogpagetext": "पन्ना सभक प्रशासनिक आयात दोसर विकीक सम्पादन इतिहासक संग।",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|सुधार|सुधार सभ}}",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|सुधार|सुधार सभ}} $2 सँ",
        "tooltip-pt-createaccount": "अहाँक खाता खोलक लेल प्रोत्साहित केल जाएत अछि; मुदा ई अनिवार्य नै छै",
        "tooltip-ca-talk": "विषयसूचीक पन्नाक सम्बन्धमे वर्त्तालाप",
        "tooltip-ca-edit": "ई पन्नाक सम्पादित करी",
-       "tooltip-ca-addsection": "नव à¤\96णà¥\8dड à¤¶à¥\81रà¥\82 à¤\95रà¥\82",
+       "tooltip-ca-addsection": "नव à¤\96णà¥\8dड à¤¶à¥\81रà¥\82 à¤\95रà¥\80",
        "tooltip-ca-viewsource": "ऐ पन्नापर वरदहस्त छै।\nअहाँ एकर जड़ि देख सकै छी।",
        "tooltip-ca-history": "ई पृष्ठक पुरान अवतरण",
        "tooltip-ca-protect": "ऐ पन्नाकेँ बचाउ",
        "tooltip-ca-nstab-media": "मीडिया पृष्ठ देखू",
        "tooltip-ca-nstab-special": "ई एकटा विशिष्ट पन्ना छी, आ अहाँ एकरा सम्पादित नै कऽ सकै छी",
        "tooltip-ca-nstab-project": "परियोजना पन्ना देखू",
-       "tooltip-ca-nstab-image": "पनà¥\8dनाà¤\95 à¤ªà¥\83षà¥\8dठ à¤¦à¥\87à¤\96à¥\82",
-       "tooltip-ca-nstab-mediawiki": "पà¥\8dरणालà¥\80à¤\95 à¤¸à¤\82दà¥\87श à¤¦à¥\87à¤\96à¥\82",
+       "tooltip-ca-nstab-image": "सà¤\9eà¥\8dà¤\9aिà¤\95ाà¤\95 à¤ªà¥\83षà¥\8dठ à¤¦à¥\87à¤\96à¥\80",
+       "tooltip-ca-nstab-mediawiki": "पà¥\8dरणालà¥\80à¤\95 à¤¸à¤¨à¥\8dदà¥\87श à¤¦à¥\87à¤\96à¥\80",
        "tooltip-ca-nstab-template": "नमूना देखू",
        "tooltip-ca-nstab-help": "सहायता पृष्ठ देखू",
        "tooltip-ca-nstab-category": "संवर्ग पन्ना देखू",
        "tooltip-undo": "\"फेरसँ वएह\" सम्पादनकेँ पूर्वस्थितिमे लऽ जाइए आ पूर्वावलोकन अवस्थामे सम्पादन फॉर्म खोलैए। ई सारांशमे कारण जोड़बाक विकल्प दैत अछि।",
        "tooltip-preferences-save": "मोनपसंद के सुरक्षित करू",
        "tooltip-summary": "छोट संक्षेप दिअ",
-       "anonymous": "अज्ञात {{अन्तर्जाल}} क  {{PLURAL:$1|प्रयोक्ता|प्रयोक्ता सभ}}",
-       "siteuser": "{{अन्तर्जाल}} प्रयोक्ता $1",
+       "anonymous": "{{SITENAME}}क अज्ञात {{PLURAL:$1|प्रयोक्ता|प्रयोक्तासभ}}",
+       "siteuser": "{{SITENAME}} प्रयोक्ता $1",
        "anonuser": "{{SITENAME}} नुकायल प्रयोक्ता $1",
-       "lastmodifiedatby": "à¤\88 à¤ªà¤¨à¥\8dना à¤\85à¤\82तिम बेर संवर्धित भेल $2, $1 द्वारा $3।",
+       "lastmodifiedatby": "à¤\88 à¤ªà¤¨à¥\8dना à¤\85नà¥\8dतिम बेर संवर्धित भेल $2, $1 द्वारा $3।",
        "othercontribs": "$1 के काजुक तरहे",
        "others": "दोसर, आन",
        "siteusers": "{{SITENAME}} {{PLURAL:$2|{{GENDER:$1|प्रयोगकर्ता}}|प्रयोगकर्ता}} $1",
-       "anonusers": "{{अन्तर्जाल}} अज्ञात {{PLURAL:$2|प्रयोक्ता|प्रयोक्ता सभ}} $1",
+       "anonusers": "{{SITENAME}} अज्ञात {{PLURAL:$2|प्रयोक्ता|प्रयोक्तासभ}} $1",
        "creditspage": "पन्नाक श्रेय",
        "nocredits": "अहि पन्नाक लेल क्रेडिट ज़ानकारी नहि अछि",
        "spamprotectiontitle": "अनिष्ट सन्देश सुरक्षा छन्नी",
        "pageinfo-article-id": "पन्ना आई॰डी॰",
        "pageinfo-language": "पन्ना सामग्री भाषा",
        "pageinfo-content-model": "पन्ना सामग्री के नमूना",
-       "pageinfo-robot-policy": "बà¥\89à¤\9f द्वारा अनुक्रमण",
+       "pageinfo-robot-policy": "बà¥\8bà¤\9fद्वारा अनुक्रमण",
        "pageinfo-robot-index": "मान्य",
        "pageinfo-robot-noindex": "अमान्य",
        "pageinfo-watchers": "जानकारक संख्या",
        "pageinfo-few-watchers": "$1 स कम ध्यान दीए {{PLURAL:$1|वाला}}",
-       "pageinfo-redirects-name": "à¤\87 à¤ªà¤¨à¥\8dना à¤\95à¥\87 à¤ªà¥\81नरà¥\8dनिरà¥\8dदà¥\87शसभ à¤\95à¥\87 à¤¸à¤\82ख्या",
+       "pageinfo-redirects-name": "à¤\88 à¤ªà¤¨à¥\8dनाà¤\95 à¤ªà¥\81नरà¥\8dनिरà¥\8dदà¥\87शसभ à¤¸à¤\99à¥\8dख्या",
        "pageinfo-subpages-name": "इ पन्ना के उप-पन्ना",
        "pageinfo-subpages-value": "$1 ($2 {{PLURAL:$2|पुनर्निर्देश}}; $3 {{PLURAL:$3|ग़ैर-पुनर्निर्देश}})",
        "pageinfo-firstuser": "पन्ना सर्जक",
        "pageinfo-category-pages": "पृष्ठ संख्या",
        "pageinfo-category-subcats": "उपसंवर्ग के संख्या",
        "pageinfo-category-files": "फाइल सभके संख्या",
-       "markaspatrolleddiff": "दà¥\87à¤\96ि à¤²à¥\87ल à¤\97à¥\87ल, à¤\8fहन à¤\9aिनà¥\8dह à¤²à¤\97ाà¤\8a",
+       "markaspatrolleddiff": "à¤\9cाà¤\81à¤\9a à¤¸à¤®à¥\8dपनà¥\8dन à¤\95रà¥\80",
        "markaspatrolledtext": "देखि लेल गेल, एहन चिन्ह लगाऊ",
-       "markedaspatrolled": "दà¥\87à¤\96ि à¤²à¥\87ल à¤\97à¥\87ल, à¤\8fहन à¤\9aिनà¥\8dह à¤²à¤\97ाà¤\8a",
-       "markedaspatrolledtext": "[[:$1]]à¤\9aà¥\81नल à¤\97à¥\87ल à¤\85वतरणपर à¤¦à¥\87à¤\96हि à¤\97à¥\87ल à¤\95à¥\87 à¤\9aिनà¥\8dह à¤²à¤\97ायल à¤\97à¥\87ल.",
-       "rcpatroldisabled": "हाल में भेल बदलाव सभ पर नजर राखब बंद क देल गेल अछि.",
+       "markedaspatrolled": "à¤\9cाà¤\81à¤\9a à¤¸à¤®à¥\8dपनà¥\8dन à¤\95रà¥\80",
+       "markedaspatrolledtext": "[[:$1]]à¤\95 à¤\9aयनित à¤\85वतरणà¤\95 à¤\9cाà¤\81à¤\9a à¤¸à¤®à¥\8dपनà¥\8dन à¤­à¥\87ल।",
+       "rcpatroldisabled": "हालमे भेल परिवर्तनक परीक्षण अक्षम अछि",
        "rcpatroldisabledtext": "हाल में भेल बदलाव पर नजरि राखि के सुविधा बंद क देल गेल अछि.",
-       "markedaspatrollederror": "दà¥\87à¤\96 à¤²à¥\87लिय, à¤\8fहन à¤\9aिनà¥\8dह à¤¨à¤¹à¤¿ à¤²à¤\97ा à¤¸à¤\95ब.",
+       "markedaspatrollederror": "à¤\9cाà¤\81à¤\9a à¤¸à¤®à¥\8dपनà¥\8dन à¤¨à¥\88 à¤\95à¤\8fल à¤\9cा à¤¸à¤\95ल",
        "markedaspatrollederrortext": "अहाँ कोनो संशोधनकेँ संचालित निर्दिष्ट करू।",
        "markedaspatrollederror-noautopatrol": "अहाँ अपन कएल संशोधनकेँ संचालित नै कहि सकै छी।",
        "markedaspatrollednotify": "$1 पृष्ठ में कएल गएल ऐ परिवर्तन जाँचल गेल चिन्हासी कएल गेल।",
        "patrol-log-page": "संचालन वृत्तलेख",
        "patrol-log-header": "ई संचालित संशोधन सभक वृत्तलेख छी।",
        "log-show-hide-patrol": "$1 निरीक्षण वृत्तलेख",
-       "log-show-hide-tag": "$1 à¤\9fà¥\88à¤\97 à¤²à¥\89ग",
+       "log-show-hide-tag": "$1 à¤\9fà¥\8dयाà¤\97 à¤²ग",
        "deletedrevision": "पुरान संशोधन $1 हटा देलौं",
        "filedeleteerror-short": "संचिका मेटेबामे भ्रम : $1",
        "filedeleteerror-long": "संचिका मेटेबा काल भ्रम संकेत भेटल:\n$1",
        "filedelete-old-unregistered": "निर्दिष्ट संचिका संशोधन \"$1\" दत्तांशनिधिमे नै अछि।",
        "filedelete-current-unregistered": "निर्दिष्ट संचिका \"$1\" दत्तांशनिधिमे नै अछि।",
        "filedelete-archive-read-only": "पेटार निर्देशिका \"$1\" जालवितरक द्वारा लिखबा योग्य नै अछि।",
-       "previousdiff": "पुरान सम्पादन",
-       "nextdiff": "नव सम्पादन",
+       "previousdiff": "← पुरान सम्पादन",
+       "nextdiff": "नव सम्पादन →",
        "mediawarning": "'''चेतौनी''': ई संचिका प्रकार विषाणु कूटशब्द युक्त रहि सकैए।\nएकरा प्रयोग केलापर अहाँक तंत्रकेँ किछु समझौता करऽ पड़ि सकै छै।",
        "imagemaxsize": "चित्र आकारक सीमा:<br />''(संचिका वर्णन पन्ना लेल)''",
        "thumbsize": "संकुचितचित्र आकार:",
        "newimages-label": "संचिका नाम (वा ओकर अंश):",
        "newimages-showbots": "बोटद्वारा कएल गेल अपलोड देखाऊ",
        "noimages": "किछु देखबा योग्य नै |",
-       "ilsubmit": "ताà¤\95à¥\82",
-       "bydate": "तारà¥\80à¤\96 à¤¸à¤\82",
+       "ilsubmit": "ताà¤\95à¥\80",
+       "bydate": "तिथि à¤\85नà¥\81सार",
        "sp-newimages-showfrom": "$2, $1 सं शुरू होइबला नव संचिका देखाउ",
        "video-dims": "$1, $2 × $3",
        "seconds-abbrev": "$1s",
        "exif-datetime": "संचिका परिवर्तन तिथि आ समए",
        "exif-imagedescription": "चित्र शीर्षक",
        "exif-make": "कैमरा निर्माता",
-       "exif-model": "à¤\95à¥\88मरा मोडल",
+       "exif-model": "à¤\95à¥\8dयामरा मोडल",
        "exif-software": "प्रयुक्त तंत्रांश",
        "exif-artist": "लिखैबला",
        "exif-copyright": "सर्वाधिकारी",
        "confirmemail_needlogin": "अहाँकेँ करए पड़त $1 अपन ई-पत्र-संकेत सत्यापन लेल।",
        "confirmemail_success": "अहाँक ई-पत्र संकेत सत्यापित कएल गेल।\nअहाँ आब [[Special:UserLogin|सम्प्रवेश]]आ विकीक प्रयोग करू।",
        "confirmemail_loggedin": "अहाँक ई-पत्र संकेत आब सत्यापित भऽ गेल।",
-       "confirmemail_subject": "{{जालस्थल}} ई-पत्र संकेत सत्यापन",
+       "confirmemail_subject": "{{SITENAME}} ई-पत्र संकेत सत्यापन",
        "confirmemail_body": "कियो, सम्भवतः अहाँ, अनिकेत $1 सँ,\nखाता \"$2\" पंजीकृत करबेने छथि ऐ ई-पत्र संकेतसँ {{जालस्थल}} पर।\n\nई खाता अहींक छी से सत्यापित करबाक लेल आ अपन ई-पत्र आधारित सेवाक {{जालस्थल}} पर प्रारम्भ लेल, ऐ लागिकेँ अपन गवेषकमे खोलू:\n\n$3\n\nजँ अहाँ ई खाता *नै* पंजीकृत करबेने छी तँ ऐ लागि संगे जाउ\nअपन ई-पत्र सत्यापनकेँ खतम करबा लेल:\n\n$5\n\nई सत्यापन कूटशब्द $4 केँ खतम भऽ जाएत।",
        "confirmemail_body_changed": "कियो, सम्भवतः अहाँ, अनिकेत $1 सँ,\nखाता \"$2\" क ई-पत्र संकेत बदलनेने छथि ऐ  {{जालस्थल}} पर।\n\nई खाता अहींक छी से सत्यापित करबाक लेल आ अपन ई-पत्र आधारित सेवाक {{जालस्थल}} पर प्रारम्भ लेल, ऐ लागिकेँ अपन गवेषकमे खोलू:\n\n$3\n\nजँ अहाँ ई खाता *नै* पंजीकृत करबेने छी तँ ऐ लागि संगे जाउ\nअपन ई-पत्र सत्यापनकेँ खतम करबा लेल:\n\n$5\n\nई सत्यापन कूटशब्द $4 केँ खतम भऽ जाएत।",
        "confirmemail_body_set": "कियो, सम्भवतः अहाँ, अनिकेत $1 सँ,\nखाता \"$2\" क ई-पत्र संकेत पठेने छथि ऐ  {{जालस्थल}} पर।\n\nई खाता अहींक छी से सत्यापित करबाक लेल आ अपन ई-पत्र आधारित सेवाक {{जालस्थल}} पर प्रारम्भ लेल, ऐ लागिकेँ अपन गवेषकमे खोलू:\n\n$3\n\nजँ अहाँ ई खाता *नै* पंजीकृत करबेने छी तँ ऐ लागि संगे जाउ\nअपन ई-पत्र सत्यापनकेँ खतम करबा लेल:\n\n$5\n\nई सत्यापन कूटशब्द $4 केँ खतम भऽ जाएत।",
        "deletedwhileediting": "'''Warning''': अहां जखन सें संपादन शुरू केने छी, ओकर बाद से ई पृष्ठ के मिटा देल गेल अछि.",
        "confirmrecreate": "प्रयोगकर्ता [[User:$1|$1]] ([[User talk:$1|वार्ता]]) अहाँक कारण सहित सम्पादनक बाद ई पन्नाके मेटाए देलक:\n: ''$2''\nकृपा कऽ अहाँ सुनिश्चित करी जे अहाँ ई पन्नाक फेरसँ बनबऽ चाहै छी।",
        "confirmrecreate-noreason": "प्रयोक्ता [[User:$1|$1]] ([[User talk:$1|वार्ता]]) अहाँक सम्पादनक बाद ऐ पन्नाकेँ मेटा देलक| कृपा कऽ अहाँ सुनिश्चित करू जे अहाँ ऐ पन्नाकेँ फेरसँ बनबऽ चाहै छी।",
-       "recreate": "फà¥\87र à¤¸à¥\87à¤\82 à¤¬à¤¨à¤¾à¤\8a",
+       "recreate": "फà¥\87र à¤¸à¤\81 à¤¬à¤¨à¤¾à¤¬à¥\80",
        "confirm_purge_button": "ठीक अछि",
        "confirm-purge-top": "ऐ पन्नाक उपस्मृति खतम कऽ दिअ?",
        "confirm-purge-bottom": "कोनो पन्नाक सफाइ उपस्मृतिकेँ खतम करैए आ अद्यतन संशोधनकेँ अएबाले जोर दैए।",
        "confirm-unwatch-button": "ठीक अछि",
        "confirm-unwatch-top": "ऐ पन्नाकेँ हमर साकांक्ष सूचीसँ हटाउ",
        "quotation-marks": "\"$1\"",
-       "imgmultipageprev": "पहिलुका पृष्ठ",
-       "imgmultipagenext": "अगुलका पृष्ठ",
-       "imgmultigo": "à¤\9cाà¤\8a",
-       "imgmultigoto": "$1 à¤ªà¥\83षà¥\8dठ à¤ªà¤° à¤\9cाà¤\8a",
+       "imgmultipageprev": "← पहिलुका पृष्ठ",
+       "imgmultipagenext": "अगुलका पृष्ठ →",
+       "imgmultigo": "à¤\9cाà¤\8f!",
+       "imgmultigoto": "$1 à¤ªà¥\83षà¥\8dठ à¤ªà¤° à¤\9cाà¤\8f",
        "img-lang-default": "(डिफल्ट भाषा)",
        "img-lang-info": "ई चित्र को $1. $2 में ढालु",
        "img-lang-go": "जाऊ",
        "ascending_abbrev": "asc",
-       "descending_abbrev": "desc",
+       "descending_abbrev": "जानकारी",
        "table_pager_next": "अगला पृष्ठ",
        "table_pager_prev": "पहिलुका पृष्ठ",
-       "table_pager_first": "पहिलà¥\81à¤\95 पृष्ठ",
-       "table_pager_last": "à¤\85à¤\82तिम पृष्ठ",
-       "table_pager_limit": "à¤\8fà¤\95 à¤ªà¥\83षà¥\8dठ à¤ªà¤° $1 à¤¸à¤¾à¤®à¤\97à¥\8dरà¥\80 à¤¦à¥\87à¤\96ाà¤\8a",
+       "table_pager_first": "पहला पृष्ठ",
+       "table_pager_last": "à¤\85नà¥\8dतिम पृष्ठ",
+       "table_pager_limit": "à¤\8fà¤\95 à¤ªà¥\83षà¥\8dठ à¤ªà¤° $1 à¤¸à¤¾à¤®à¤\97à¥\8dरà¥\80 à¤¦à¥\87à¤\96ाबà¥\80",
        "table_pager_limit_label": "सामग्री प्रति पृष्ठ",
-       "table_pager_limit_submit": "à¤\9cाà¤\8a",
+       "table_pager_limit_submit": "à¤\9cाà¤\8f",
        "table_pager_empty": "कोनो परिणाम नहि",
        "autosumm-blank": "पृष्ठ के खाली करल गेल",
        "autosumm-replace": "\"$1\" सहित पाठ परिवर्तित भेल",
        "autoredircomment": "[[$1]] के अनुप्रेषित",
-       "autosumm-new": "'$1'संग नब पृष्ठ बनाओल गेल",
+       "autosumm-new": "'$1' संग नब पृष्ठ बनाओल गेल",
        "autosumm-newblank": "खालि पन्ना बनाओल गेल",
        "lag-warn-normal": "$1 सँ नव बदलल गेल {{PLURAL:$1|सेकेण्ड|सेकेण्ड}} ऐ सूचीमे नै देखाएल गेल।",
        "lag-warn-high": "उच्च दत्तनिधि वितरक देरीक कारण, $1 सँ नव परिवर्तन {{PLURAL:$1|सेकेण्ड|सेकेण्ड}} ऐ सूचीमे नै देखाएल जा सकल।",
        "watchlistedit-raw-legend": "काँच साकांक्षसूची संपादित करू",
        "watchlistedit-raw-explain": "अहाँक साकांक्ष-सूचीक शीर्षक सभ नीचाँ देल अछि, आ एकरा सूचीमे दऽ कऽ वा निकालि कऽ सम्पादित कएल जा सकैए;\nप्रति पाँती एक शीर्षक।\nजखन समाप्त भऽ जाए, क्लिक करू \"{{int:Watchlistedit-raw-submit}}\"।\nअहाँ [[Special:EditWatchlist|सामान्य सम्पादन-तंत्रांश प्रयोग करू]] ई सेहो कऽ सकै छी।",
        "watchlistedit-raw-titles": "शीर्षक",
-       "watchlistedit-raw-submit": "साà¤\95ाà¤\82à¤\95à¥\8dषसà¥\82à¤\9aà¥\80 à¤\85दà¥\8dयतन à¤\95रà¥\82",
+       "watchlistedit-raw-submit": "साà¤\95ाà¤\82à¤\95à¥\8dषसà¥\82à¤\9aà¥\80 à¤\85दà¥\8dयतन à¤\95रà¥\80",
        "watchlistedit-raw-done": "अहाँक साकांक्ष-सूची अद्यतन कएल गेल।",
        "watchlistedit-raw-added": "{{PLURAL:$1|1 शीर्षक छल|$1शीर्षक सभ रहए}} जोड़ल गेल:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|1 शीर्षक छल|$1शीर्षक सभ रहए}} हटाएल गेल:",
        "watchlistedit-clear-removed": "{{PLURAL:$1|1 शीर्षक छल|$1शीर्षक सभ रहए}} हटाएल गेल:",
        "watchlistedit-too-many": "एतेक बहुत रास पन्ना सभ देखावोल जाएत।",
        "watchlisttools-clear": "साकांक्ष-सूची मेटाउ",
-       "watchlisttools-view": "समà¥\8dबनà¥\8dधित à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤¸à¤­à¤\95à¥\87à¤\81 à¤¦à¥\87à¤\96à¥\82",
-       "watchlisttools-edit": "साकांक्षसूचीकेँ देखू आ सम्पादित करू",
-       "watchlisttools-raw": "à¤\95ाà¤\81à¤\9a à¤¸à¤¾à¤\95ाà¤\82à¤\95à¥\8dषसà¥\82à¤\9aà¥\80 à¤¸à¤\82पादित à¤\95रà¥\82",
-       "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|talk]])",
+       "watchlisttools-view": "समà¥\8dबनà¥\8dधित à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤¸à¤­à¤\95à¥\87à¤\81 à¤¦à¥\87à¤\96à¥\80",
+       "watchlisttools-edit": "साकांक्षसूची देखी आ सम्पादित करी",
+       "watchlisttools-raw": "à¤\95ाà¤\81à¤\9a à¤¸à¤¾à¤\95ाà¤\82à¤\95à¥\8dषसà¥\82à¤\9aà¥\80 à¤¸à¤®à¥\8dपादित à¤\95रà¥\80",
+       "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|वार्ता]])",
        "duplicate-defaultsort": "'''चेतौनी:''' पूर्वनिर्धारित विन्यास चाभी \"$2\" पहिलुका पूर्वनिर्धारित विन्यास चाभी \"$1\" केँ खतम करैए।",
        "duplicate-displaytitle": "<strong>चेतना:</strong> शीर्षक दिखाबु \"$2\" पूर्व दिखाएल गेल शीर्षक \"$1\" पे हाबी भऽ रहल अछि।",
        "invalid-indicator-name": "<strong>त्रुटि:</strong> पन्ना स्थिति सुचीत <code>नाम</code> गुण खाली नै रहना चाही।",
        "tags-source-extension": "एक्सटेन्सनद्वारा परिभाषित",
        "tags-source-manual": "प्रयोक्तासभ आर बोटद्वारा नियमानुसार लागू",
        "tags-source-none": "आब प्रयोग में नै",
-       "tags-edit": "समà¥\8dपादन à¤\95रà¥\82",
+       "tags-edit": "समà¥\8dपादन à¤\95रà¥\80",
        "tags-delete": "मेटाउ",
        "tags-activate": "सक्रिय करी",
        "tags-deactivate": "निष्क्रिय करी",
-       "tags-hitcount": "$1 {{PLURAL:$1|परिवर्तन|परिवर्तन सभ}}",
+       "tags-hitcount": "$1 {{PLURAL:$1|परिवर्तन|परिवर्तनसभ}}",
        "tags-manage-no-permission": "अहाँकेँ पन्ना घसकेबाक अधिकार नै अछि।",
        "tags-create-heading": "एकटा नयाँ विकि-समूह बनाबु",
        "tags-create-explanation": "पुनः निर्धारित रूप से, नवनिर्मित टैग प्रयोगकर्तासभ आर बॉट के लेल हाजीर राहत।",
        "htmlform-int-toohigh": "जे मान अहाँ देलौं से अधिकतम $1 सँ ऊपर अछि।",
        "htmlform-required": "ई मान चाही",
        "htmlform-submit": "दिअ",
-       "htmlform-reset": "परिवरà¥\8dतन à¤\96तम à¤\95रà¥\82",
+       "htmlform-reset": "परिवरà¥\8dतन à¤ªà¥\81रान à¤¸à¥\8dथिति à¤ªà¤° à¤\86नà¥\80",
        "htmlform-selectorother-other": "आन",
        "htmlform-no": "नै",
        "htmlform-yes": "हँ",
        "htmlform-cloner-delete": "हटाउ",
        "sqlite-has-fts": "$1 पूर्ण-पाठ खोज सहायता युक्त",
        "sqlite-no-fts": "$1 बिन पूर्ण-पाठ खोज सहायताक",
-       "logentry-delete-delete": "$1 {{लिंग:$2|deleted}} page $3",
+       "logentry-delete-delete": "$1 पृष्ठ $3 {{GENDER:$2|मेटौलक}}",
        "logentry-delete-restore": "$1 {{लिंग:$2|restored}} page $3",
        "logentry-delete-event": "$1 {{लिंग:$2|changed}} एकर दृश्य{{PLURAL:$5| एकटा वृत्तलेख|$5 वृत्तलेख}}  $3: $4 केँ",
        "logentry-delete-revision": "$1 {{लिंग:$2|changed}} एकर दृश्य{{PLURAL:$5| एकटा संशोधन|$5 संशोधन}}  पन्ना $3: $4 पर",
        "logentry-patrol-patrol": "$1 {{GENDER:$2|चिन्हित}} संशोधन $4 $3 पन्नाक निरीक्षित",
        "logentry-patrol-patrol-auto": "$1 स्वतः {{GENDER:$2|चिन्हित}} संशोधन $4 $3 पन्नाक निरीक्षित",
        "logentry-newusers-newusers": "$1 {{लिंग:$2|बनाएल}} एकटा प्रयोक्ता खाता",
-       "logentry-newusers-create": "$1 {{लिङ्ग:$2|बनाएल}} एकटा प्रयोक्ता खाता",
+       "logentry-newusers-create": "प्रयोगकर्ता खाता $1 {{GENDER:$2|बनाएल}} गेल",
        "logentry-newusers-create2": "$1 {{लिंग:$2|बनाएल}} {{लिंग:$4|एकटा प्रयोक्ता खाता}} $3",
        "logentry-newusers-byemail": "$1 द्वारा प्रयोक्ता खाता $3 {{GENDER:$2|बनाओल}} गेल आ कूटशब्द ई-पत्र द्वारा भेजल गेल",
        "logentry-newusers-autocreate": "खाता $1 छल {{लिंग:$2|बनाएल}} स्वतः",
        "feedback-error1": "त्रुटि: नै पहचानल गेल परिणाम एपीआईसँ",
        "feedback-error2": "त्रुटि: संपादन विफल भेल",
        "feedback-error3": "त्रुटि:एपीआईसँग कोनो प्रतिक्रिया नै",
-       "feedback-message": "सà¤\82देश:",
+       "feedback-message": "सनà¥\8dदेश:",
        "feedback-subject": "विषय:",
        "feedback-submit": "दिअ",
        "feedback-thanks-title": "धन्यवाद!",
index b2eed98..b180b5f 100644 (file)
@@ -7,13 +7,15 @@
                        "לערי ריינהארט",
                        "Bennylin",
                        "아라",
-                       "Macofe"
+                       "Macofe",
+                       "Mbrt"
                ]
        },
        "tog-underline": "Garisen ngisoré pranala:",
        "tog-hideminor": "Umpetna suntingan cilik nang owahan anyar",
        "tog-hidepatrolled": "Umpetna suntingan sing wis dipatroli nang owahan anyar",
        "tog-newpageshidepatrolled": "Umpetna kaca sing wis dipatroli sekang daftar kaca anyar",
+       "tog-hidecategorization": "Umpetna kategori nang kaca",
        "tog-extendwatchlist": "Kembangna daftar pengawasan kanggo nidokna kabeh pangowahan, ora mung sing paling anyar thok",
        "tog-usenewrc": "Klompok owahan miturut kaca nang owahan anyar lan daptar pangawasan (mbutuhna JavaScript)",
        "tog-numberheadings": "Aweh nomer judul secara otomatis",
@@ -24,6 +26,7 @@
        "tog-watchdefault": "Tambahna kaca lan berkas sing tek-sunting maring daptar pangawasanne inyong",
        "tog-watchmoves": "Tambahna kaca lan berkas sing tek-pindah maring daptar pangawasanne inyong",
        "tog-watchdeletion": "Tambahna kaca lan berkas sing tek-busek maring daptar pangawasanne inyong",
+       "tog-watchuploads": "Sogna file anyar sing nyong unggah nang daptar sawangane nyong",
        "tog-watchrollback": "Tambahna kaca sing wis tek rollback maring daftar pangawasane inyong",
        "tog-minordefault": "Otomatis nandani kabeh suntingan dadi suntingan cilik",
        "tog-previewontop": "Tidokna pratayang sedurunge kotak sunting",
        "tog-watchlisthidebots": "Umpetna suntingane bot sekang daftar pangawasan",
        "tog-watchlisthideminor": "Umpetna suntingan cilik sekang daftar pangawasan",
        "tog-watchlisthideliu": "Umpetna suntingane pangganggo sing mlebu log sekang daftar pangawasan",
+       "tog-watchlistreloadautomatically": "Muat balik daptar sawangane otomatis yen saringan kebesut (Perintaeh JavaScript)",
        "tog-watchlisthideanons": "Umpetna suntingane panganggo anonim sekang daftar pangawasan",
        "tog-watchlisthidepatrolled": "Umpetna suntingan sing wis dipatroli sekang daftar pangawasan",
+       "tog-watchlisthidecategorization": "Umpetna kategori nang kaca",
        "tog-ccmeonemails": "Kirimi inyong salinan imel sing tak-kirimna maring panganggo sejen",
        "tog-diffonly": "Aja tidokna isi kaca nang ngisor bedane suntingan",
        "tog-showhiddencats": "Tidokna kategori sing diumpetna",
-       "tog-norollbackdiff": "Lirwakna perbedaan seuwise nglakokna pambalikan",
+       "tog-norollbackdiff": "Aja ndeleng perbedaane seuwise nglakokna pambalikan",
        "tog-useeditwarning": "Elingna inyong angger ninggalna kaca panyuntingan sing durung disimpen owahane",
        "tog-prefershttps": "Gunakna koneksi aman terus angger mlebu log",
        "underline-always": "Saben",
@@ -57,7 +62,7 @@
        "editfont-monospace": "Aksara (font) Monospace",
        "editfont-sansserif": "Aksara (font) Sans-serif",
        "editfont-serif": "Aksara (font) Serif",
-       "sunday": "Minggu",
+       "sunday": "Ahad",
        "monday": "Senen",
        "tuesday": "Selasa",
        "wednesday": "Rebo",
        "october-date": " $1 Oktober",
        "november-date": "$1 November",
        "december-date": "$1 Desember",
+       "period-am": "AM",
+       "period-pm": "PM",
        "pagecategories": "{{PLURAL:$1|Kategori|Kategori}}",
        "category_header": "Kaca nang kategori \"$1\"",
        "subcategories": "Subkategori",
        "poolcounter-usage-error": "Usage error: $1",
        "aboutsite": "Prakara {{SITENAME}}",
        "aboutpage": "Project:Prakara",
-       "copyright": "Kabeh teks ana miturut $1.",
+       "copyright": "Kabeh teks ana miturut $1 namung sing cathetan liya beda.",
        "copyrightpage": "{{ns:project}}:Hak cipta",
        "currentevents": "Kedaden Anyar",
        "currentevents-url": "Project:Prastawa sekiye",
        "nstab-template": "Cithakan",
        "nstab-help": "Pitulung",
        "nstab-category": "Kategori:",
+       "mainpage-nstab": "Kaca Utama",
        "nosuchaction": "Ora ana tindakan kaya kuwe",
        "nosuchactiontext": "Tindakan sing dijaluk URL kuwe ora sah.\nRika ndeyan salah ngetikna URL, utawa ngetutna pranala sing ora bener.\nKiye bisa uga ngindikasikna nek ana ''bug'' nang piranti alus sing digunakna nang {{SITENAME}}.",
        "nosuchspecialpage": "Ora ana kaca astamiwa kaya kuwe",
        "nospecialpagetext": "<strong>Rika njaluk kaca astamiwa sing ora sah.</strong>\n\nDaftar kaca astamiwa sing sah teyeng dideleng nang [[Special:SpecialPages|{{int:specialpages}}]].",
        "error": "Kasalahan",
        "databaseerror": "Kasalahan basis data",
+       "databaseerror-text": "Ana kesalahan nang panyuwunan database wonten. Kasalahan iki mbokmenawa nuduhna anane kesalahan nang piranti alus.",
+       "databaseerror-textcl": "Ana kesalahan nang database query",
+       "databaseerror-query": "Queri:$1",
+       "databaseerror-function": "Fungsine:$1",
+       "databaseerror-error": "Eror:$1",
+       "transaction-duration-limit-exceeded": "Nggo ngindari nciptakna replikasi lag duwur, transaksi iki dibatalna sebab durasi write ($1) nglewihi $2 {{PLURAL: $ 2 | detik | detik}} batas. Angger Rikangowah akeh item sekaligus,jajal ngelakokna beberapa operasi sing lewih cilik nggo gantine.",
        "laggedslavemode": "'''Pènget:''' Kaca kiye mbokmenawa isiné dudu pangowahan pungkasan.",
        "readonly": "Basis data dikunci",
        "enterlockreason": "Lebokna alesan panguncèn, kalebu uga prakiran kapan kunci bakal dibuka",
-       "readonlytext": "Basis data lagi dikunci sekang inputan anyar lan modifikasi liyane, ndeyane lagi ana perawatan basis data, seuwise kuwe tuli bakal balik normal maning.\n\nAdministrator sing ngunci kiye aweh katerangan kaya kiye: $1",
+       "readonlytext": "Basis data agi dikonci sekang inputan anyar lan modifikasi liyane, ndeyane agi ana perawatan basis data, seuwise kuwe toli bakal mbalik normal maning.\n\nAdministrator sing ngunci kiye aweh katerangan kaya kiye: $1",
        "missing-article": "Basis data ora teyeng nemokna teks paca sing kudune ana, yaiku \"$1\" $2.\n\nKiye biasanye jalaran pranala daluwarsa maring revisi sedurunge sekang kaca sing wis dibusak.\n\nAngger dudu kuwe sebabe, Rika ndeyan nemokna \"bug\" nang software. \nMonggo dilaporna maring [[Special:ListUsers/sysop|administrator]], karo nyebutna URL sing dituju.\n\nA",
        "missingarticle-rev": "(révisi#: $1)",
        "missingarticle-diff": "(Béda: $1, $2)",
        "readonly_lag": "Basis data uwis dikunci otomatis sawetara basis data sekunder lagi nglakokna sinkronisasi karo basis data utama",
        "internalerror": "Kasalahan internal",
        "internalerror_info": "Kasalahan internal: $1",
+       "internalerror-fatal-exception": "pengecualiane fatal tipe \"$1\"",
        "filecopyerror": "Ora teyeng nyalin berkas \"$1\" maring \"$2\".",
        "filerenameerror": "Ora teyeng ngowahi jeneng berkas sekang \"$1\" dadi \"$2\".",
        "filedeleteerror": "Ora teyeng mbusak berkas \"$1\".",
        "directorycreateerror": "Ora teyeng nggawé dirèktori \"$1\".",
+       "directoryreadonlyerror": "Direktori \"$1\" mung diwaca thok.",
+       "directorynotreadableerror": "Direktori \"$1\" ora teyeng diwaca.",
        "filenotfound": "Ora teyeng nemokna berkas \"$1\".",
        "unexpected": "Nilai-ne nang jaba jangkauan: \"$1\"=\"$2\".",
        "formerror": "Kasalahan: Ora teyeng ngirimna formulir.",
        "actionthrottled": "Tindakan diwatesi",
        "actionthrottledtext": "Kanggo ngukur anti-spam, Rika diwatesi gole nglakoni tikdakan kiye keseringen nang wektu sing cendhak, lan Rika uwis nglewati watese kuwe.\nMonggo dijajal maning nang sawetara menit.",
        "protectedpagetext": "Kaca kiye uwis dikunci ben ora teyeng disunting utawa aksi liyane (pokoke ora teyeng diapa-apakna maning).",
-       "viewsourcetext": "Rika teyeng ndeleng lan nyalin sumbere kaca kiye:",
-       "viewyourtext": "Rika teyeng ndeleng lan nyalin sumbere '''suntingane Rika''' nang kaca kiye:",
-       "protectedinterface": "Kaca kiye isine teks antarmuka ding dienggo piranti alus nang wiki kiye, lan uwis dikunci nggo menghindari kasalahan.\nKanggo nambaih utawa ngowaih terjemahan nang kabeh wiki, monggo gunakna [//translatewiki.net/ translatewiki.net], proyek lokalisasi MediaWiki.",
-       "editinginterface": "'''Pènget:''' Rika nyunting kaca sing dienggo nyedyakna tèks antarmuka kanggo piranti alus.\nPangowahan kaca kiye bakal awèh pangaruh maring tampilan antarmuka panganggo duweke panganggo sejen nang wiki kiye.\nAngger arep nambaih utawa ngowaih terjemahan, monggo gunakna [//translatewiki.net/translatewiki.net], proyèk lokalisasi MediaWiki.",
+       "viewsourcetext": "Rika teyeng ndeleng lan nyalin sumbere kaca kiye.",
+       "viewyourtext": "Rika teyeng ndeleng lan nyalin sumbere <strong>suntingane Rika</strong> meng kaca kiye:",
+       "protectedinterface": "Kaca kiye isine teks antarmuka ding dienggo piranti alus nang wiki kiye, lan uwis dikunci nggo menghindari kasalahan.\nKanggo nambaih utawa ngowaih terjemahan nang kabeh wiki, monggo gunakna [https://translatewiki.net/ translatewiki.net], proyek lokalisasi MediaWiki.",
+       "editinginterface": "'''Penget:''' Rika nyunting kaca sing dienggo nyedyakna teks antarmuka kanggo piranti alus.\nPangowahan kaca kiye engko aweh pangaruh maring tampilan antarmuka panganggo duweke panganggo liyane nang wiki kiye.",
        "cascadeprotected": "Kaca kiye wis direksa sekang penyuntingan jalaran melu mlebu nang {{PLURAL:$1|kaca|kaca-kaca}} nang ngisor kiye sing wis direksa nganggo opsi \"runtun\":\n$2",
        "namespaceprotected": "Rika ora duwe hak akses kanggo nyunting kaca nang bilik jeneng '''$1'''.",
        "customcssprotected": "Rika ora duwe izin nggo nyunting kaca CSS kiye, jalaran isine pengaturan pribadine panganggo sejen.",
        "filereadonlyerror": "Ora teyeng ngowaih berkas \"$1\" jalaran panyimpenan berkas \"$2\" ana nang mode-mung-teyeng-diwaca.\n\nAdministrator sing ngunci aweh keterangan: \"$3\".",
        "invalidtitle-knownnamespace": "Irah-irahan ora sah nang bilikjeneng \"$2\" lan teks \"$3\"",
        "invalidtitle-unknownnamespace": "Judhul ora sah nang bilik jeneng sing ora dingerteni nomer $1 lan teks \"$2\"",
-       "exception-nologin-text": "Kaca utawa kelakon kiye mbutuhna mlebu log nèng wiki kiye dhisit.",
+       "exception-nologin": "Urung mlebu",
+       "exception-nologin-text": "Tulung mlebu disit ben Rika duwe akses maring kaca kiye.",
+       "exception-nologin-text-manual": "Tulung $1 ben tenyeng duwe akses maring kaca kiye.",
        "virus-badscanner": "Kasalahan konfigurasi: pamindai virus ora dikenal: ''$1''",
        "virus-scanfailed": "Pemindaian gagal (kode $1)",
        "virus-unknownscanner": "Antivirus ora ditepungi:",
        "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",
        "welcomecreation-msg": "Akune Rika uwis digawe. \nAja kelalen ngowaih [[Special:Preferences|preferensi {{SITENAME}}]] Rika.",
        "yourname": "Jeneng panganggo:",
        "userlogin-yourname": "Jenengpanganggo",
        "remembermypassword": "Emutna data login-ne inyong nang peramban kiye (kanggo paling suwe $1 {{PLURAL:$1|dina|dina}})",
        "userlogin-remembermypassword": "Jorna ben Inyong tetep mlebu log",
        "userlogin-signwithsecure": "Gunakna koneksi aman",
+       "cannotloginnow-title": "Ora teyeng mlebu siki",
        "yourdomainname": "Domain Rika:",
        "password-change-forbidden": "Rika ora teyeng ngowaih tembung sandhi nang wiki kiye.",
        "externaldberror": "Ana kesalahan otentikasi basis data utawa Rika ora olih nglakokna pemutakhiran maring akun eksternale Rika.",
        "createacct-reason-ph": "Kenangapa Rika nggawe akun sejen",
        "createacct-submit": "Gawe akune Rika",
        "createacct-another-submit": "Gawe akun liyane",
+       "createacct-continue-submit": "Lanjutna penggawean akun",
        "createacct-benefit-heading": "{{SITENAME}} kuwe digawe nang wong kaya Rika.",
        "createacct-benefit-body1": "{{PLURAL:$1|owahan|owahan}}",
        "createacct-benefit-body2": "{{PLURAL:$1|kaca}}",
        "noname": "Jeneng panganggo sing Rika lebokna ora sah.",
        "loginsuccesstitle": "Sukses mlebu log",
        "loginsuccess": "'''Rika sekiye mlebu log nang {{SITENAME}} nganggo jeneng \"$1\".'''",
-       "nosuchuser": "Ora ana panganggo sing jenenge \"$1\".\nJeneng panganggo kuwe mbedakna kapitalisasi.\nPriksa maning ejaane Rika, utawa [[Special:CreateAccount|gawe akun anyar]]",
+       "nosuchuser": "Ora ana panganggo sing jenenge \"$1\".\nJeneng panganggo kuwe dibedakna nang kapitalisasi.\nPriksa maning ejaane Rika, utawa [[Special:CreateAccount|gawe akun anyar]]",
        "nosuchusershort": "Ora ana panganggo sing jenenge \"$1\".\nJajal dipriksa maning ejaane Rika.",
        "nouserspecified": "Rika kudu nglebokna jeneng panganggo.",
        "login-userblocked": "Panganggo kiye diblok. Ora olih mlebu log.",
        "preview": "Pra tayang",
        "showpreview": "Pra tayang",
        "showdiff": "Ndeleng bedané",
-       "anoneditwarning": "Rika ora kadaftar mlebu.\nAlamat IP-ne Rika bakal dicatet nang sajarah panyuntingane kaca kiye.",
+       "anoneditwarning": "Rika ora kadaftar utawa urung mlebu.\nAlamat IP-ne Rika bakal dicatet nang sajarah panyuntingane kaca kiye.",
        "anonpreviewwarning": "''Rika durung mlebu log. Nyimpen kaca bakal nyatetna alamat IP-ne Rika nang riwayat suntingan kaca kiye.''",
        "missingsummary": "'''Pènget:''' Rika ora nglebokna ringkesan panyuntingan. \nAngger Rika mencèt tombol Simpen maning, suntingane Rika bakal kasimpen tanpa ringkesan panyuntingan.",
        "missingcommenttext": "Tulung lebokna komentar nang ngisor kiye.",
        "shown-title": "Tidokna $1 {{PLURAL:$1|asil|asil}} saben kaca",
        "viewprevnext": "Deleng ($1 {{int:pipe-separator}} $2) ($3)",
        "searchmenu-exists": "''' Ana kaca nganggo jeneng \"[[:$1]]\" nang wiki kiye.'''",
-       "searchmenu-new": "'''Gawe kaca \"[[:$1]]\" nang wiki kiye!'''",
+       "searchmenu-new": "'''Gawe kaca \"[[:$1]]\" nang wiki kiye!''' {{PLURAL:$2|0=|Deleng uga kaca sing Rika golet.|Deleng uga penggoletan sing digolet.}}",
        "searchprofile-articles": "Isine kaca",
        "searchprofile-images": "Multimedia",
        "searchprofile-everything": "Kabèh",
        "prefs-signature": "Tapak asta",
        "prefs-dateformat": "Format tanggal",
        "prefs-timeoffset": "Format wektu",
-       "prefs-advancedediting": "Opsi lanjutan",
+       "prefs-advancedediting": "Opsi lanjutane",
        "prefs-advancedrc": "Opsi lanjutan",
        "prefs-advancedrendering": "Opsi lanjutan",
        "prefs-advancedsearchoptions": "Opsi lanjutan",
        "userrights": "Manajemen hak panganggo",
        "userrights-lookup-user": "Ngatur kelompok panganggo",
        "userrights-user-editname": "Lebokna jeneng panganggo:",
-       "editusergroup": "Sunting kelompok panganggo",
+       "editusergroup": "Besut {{GENDER:$1|kelompok}} panganggo",
        "editinguser": "Ngganti hak akses nggo pangganggo '''[[User:$1|$1]]''' $2",
        "userrights-editusergroup": "Sunting kelompok panganggo",
        "saveusergroups": "Simpen kelompok panganggo",
        "revertpage": "Suntingane [[Special:Contributions/$2|$2]] ([[User talk:$2|dhiskusi]]) dibalekna maring vèrsi pungkasan sekang [[User:$1|$1]]",
        "revertpage-nouser": "Mbalekna suntingan sekang (jeneng panganggo dibusek) ming revisi pungkasan sekang [[User:$1|$1]]",
        "rollback-success": "Mbalekna suntingane $1;\ndibalekna ming revisi pungkasan sekang $2.",
+       "rollback-success-notify": "Mbalekna besutan sekang $1; owah mbalik nggo revisi mburi sekang $2. [$3 Deleng owahane]",
        "sessionfailure-title": "Sèsi gagal",
        "sessionfailure": "Ketone lagi ana masalah karo sesi log-e Rika;\nloge Rika wis dibatalna nggo nyegah pambajakan.\nMonggo mbalik ming kaca sedurunge, dibaleni gole muatna kaca (reload) lan jajal diunggahna maning.",
        "protectlogpage": "Log pangreksan",
        "whatlinkshere-prev": "{{PLURAL:$1|sedurungé|$1 sedurungé}}",
        "whatlinkshere-next": "{{PLURAL:$1|terusane|$1 terusane}}",
        "whatlinkshere-links": "← pranala",
-       "whatlinkshere-hideredirs": "$1 pengalihan",
+       "whatlinkshere-hideredirs": "$1 Dialihna",
        "whatlinkshere-hidetrans": "$1 transklusi",
        "whatlinkshere-hidelinks": "$1 pranala",
        "whatlinkshere-hideimages": "$1 pranala berkas",
        "allmessagesdefault": "Tèks baku",
        "thumbnail-more": "Gedhèkna",
        "thumbnail_error": "Luput gole gawe gambar cilik (''thumbnail''): $1",
-       "tooltip-pt-userpage": "Kaca panganggone Rika",
+       "tooltip-pt-userpage": "{{GENDER:|Kaca panganggone}} Rika",
        "tooltip-pt-mytalk": "Kaca dhiskusine Rika",
-       "tooltip-pt-preferences": "Preferensine Rika",
+       "tooltip-pt-preferences": "Preferensine {{GENDER:|Rika}}",
        "tooltip-pt-watchlist": "Daftar kaca sing Rika awasi owah-owahane",
        "tooltip-pt-mycontris": "Daftar kontribusine Rika",
        "tooltip-pt-login": "Rika diajak kon mlebu log; senajan kuwe ora kudu.",
        "tooltip-t-whatlinkshere": "Daftar kabeh kaca wiki sing duwe pranala maring kaca kiye",
        "tooltip-t-recentchangeslinked": "Owahan anyar nang kaca sing gandeng karo kaca kiye",
        "tooltip-feed-atom": "''Atom feed'' kanggo kaca kiye",
-       "tooltip-t-contributions": "Deleng daftar kontribusine pangganggo kiye",
+       "tooltip-t-contributions": "Deleng daftar kontribusine pangganggo  {{GENDER:$1|kiye}}",
        "tooltip-t-emailuser": "Kirimna e-mail maring panganggo kiye",
        "tooltip-t-upload": "Unggahna gambar utawa berkas media",
        "tooltip-t-specialpages": "Daftar kabeh kaca astamiwa",
        "file-info-size": "$1 × $2 piksel, ukuran berkas: $3, tipe MIME: $4",
        "file-nohires": "Ora ana résolusi sing luwih dhuwur.",
        "svg-long-desc": "Berkas SVG, nominal $1 × $2 piksel, gedhené berkas: $3",
-       "show-big-image": "Résolusi kebak",
+       "show-big-image": "Resolusi biasa",
        "bad_image_list": "Formate kaya kiye:\n\nMung butir daftar (baris sing diawali karo tanda*) sing melu diitung.\nPranala disit dhewek nang baris kuwe kudu pranala maring berkas sing ala.\nPranala seteruse nang baris sing padha dianggep dadi \"pengecualian\", yakuwe artikel sing bisa nampilna berkas kuwe mau.",
        "metadata": "Metadata",
        "metadata-help": "Berkas kiye ngandhut informasi tambahan, sing ndeyane ditambahna sekang kamera digital utawa ''scanner'' sing digunakna nggo nggawe utawa ''digitalisasi'' berkas kiye.\nAngger berkas kiye uwis diowahi sekang versi asline, rincian sing ana ndeyane wis ora sacara kebak nidokna informasi sekang gambar sing wis dimodifikasi kiye.",
        "specialpages": "Kaca-kaca khusus",
        "external_image_whitelist": " #Jorna baen larikan kiye apa anané<pre>\n#Gunakna fragmèn èksprèsi regular (mung bagéyan nang antarane //) nang ngisor\n#Fragmèn kiye bakal dicocogna karo URL sekang gambar-gambar èksternal\n#Fragmèn sing cocog bakal ditampilna minangka gambar, nék ora ya mung pranala maring gambare baen sing ditampilna\n#Larikan sing diwiwiti nganggo # dianggep minangka komentar\n#Kiye ora mbédakna aksara gedhé/cilik\n\n#Sogna kabèh fragmèn èksprèsi regular nang dhuwuré larikan kiye. Jorna baen larikan kiye apa anané</pre>",
        "tag-filter": "Filter [[Special:Tags|Tag]]:",
-       "rightsnone": "(ora ana)"
+       "rightsnone": "(ora ana)",
+       "searchsuggest-search": "Golet"
 }
index 0031621..31ca464 100644 (file)
        "protectedpagetext": "Тя лопас сувама пякстаф лопань петнема кардамать сюнеда.",
        "viewsourcetext": "Тейть ули кода ваномс эди копиямс тя лопать лисьмоц:",
        "viewyourtext": "Тондейть ули кода тя лопань '''петнематнень''' ваномс ди тиемс копиянснон:",
-       "protectedinterface": "Тя лопать эса интерфейс текстсь тя викить програмгярксти, сон аралаф кальдяв тиемада.\nВики ётафтоматнень поладоманди полафнемандивок сувак [//translatewiki.net/ translatewiki.net], MediaWiki локализациень проектти.",
-       "editinginterface": "'''Инголи кардама:''' Тон петнесак лопать конань эса ащи интерфейс текст програмкярьксонди. Петнематне полафтсазь сонь ванфоц, кода сон няеви иля тиихненди. Вики ётафтоматнень поладоманди, полафтомандивок сувак [//translatewiki.net/ translatewiki.net] MediaWiki локализациень проектти.",
+       "protectedinterface": "Тя лопать эса интерфейс текстсь тя викить програмгярксти, сон аралаф кальдяв тиемада.\nВики ётафтоматнень поладоманди полафнемандивок сувак [https://translatewiki.net/ translatewiki.net], MediaWiki локализациень проектти.",
+       "editinginterface": "'''Инголи кардама:''' Тон петнесак лопать конань эса ащи интерфейс текст програмкярьксонди. Петнематне полафтсазь сонь ванфоц, кода сон няеви иля тиихненди. Вики ётафтоматнень поладоманди, полафтомандивок сувак [https://translatewiki.net/ translatewiki.net] MediaWiki локализациень проектти.",
        "cascadeprotected": "Тя лопать аралазь петнемада сяс мес сон сувафни {{PLURAL:$1|сай лопас, кона путфоль|сай лопас, конат путфольхть}} каскад араламас:\n$2",
        "namespaceprotected": "Тондейть аф мярьгови петнемс лопатне '''$1''' лепнень мархта.",
        "customcssprotected": "Тейть аф мярьгови петнемс CSS лопать, сяс мес потмосонза иля тиить латцеманза.",
        "allmessagesname": "Лем",
        "allmessagesdefault": "Апак полафтт текст",
        "allmessagescurrent": "Тяниень текст",
-       "allmessagestext": "Тя MediaWiki-са васьфневи системонь пачфтематнень лувомась.\nЭняльттяма, сувак [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Локализациес] ди [//translatewiki.net translatewiki.net-с] кда тонь мяльце тиемс эсь путксце марстонь MediaWiki локализациес.",
+       "allmessagestext": "Тя MediaWiki-са васьфневи системонь пачфтематнень лувомась.\nЭняльттяма, сувак [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Локализациес] ди [https://translatewiki.net translatewiki.net-с] кда тонь мяльце тиемс эсь путксце марстонь MediaWiki локализациес.",
        "allmessagesnotsupportedDB": "Тя лопас аш кода кунцемс сяс мес '''$wgUseDatabaseMessages'''лоткафоль.",
        "allmessages-language": "Кяль:",
        "allmessages-filter-submit": "Ётамс",
index b1d70c2..e1722ba 100644 (file)
        "protectedpagetext": "Narovana mba tsy hisiana fanovana na tao hafa ity pejy ity.",
        "viewsourcetext": "Azonao atao no mijery sy mandrika ny votoatin'ity pejy ity.",
        "viewyourtext": "Azonao atao ny mijery ary mandika ny fangon'ny <strong>fanovanao</strong> tamin'ity pejy ity.",
-       "protectedinterface": "Ity pejy ity dia manome ny lahatsoratra ho an'ny rindrankajy eto amin'ity Wiki ity, ary narovana mba tsy hisian'ny fanararaotana. Raha tia hanampy na hanova ny dikanteny ho an'ny wiki rehetra, ampiasao [//translatewiki.net/ translatewiki.net], izay tetikasa fandikanan ny rindrankajy Mediawiki.",
+       "protectedinterface": "Ity pejy ity dia manome ny lahatsoratra ho an'ny rindrankajy eto amin'ity Wiki ity, ary narovana mba tsy hisian'ny fanararaotana. Raha tia hanampy na hanova ny dikanteny ho an'ny wiki rehetra, ampiasao [https://translatewiki.net/ translatewiki.net], izay tetikasa fandikanan ny rindrankajy Mediawiki.",
        "editinginterface": "<strong> Fampitandremana: <strong> manova pejy ampiasaina amin'ny famoronan-tsoratry ny rindrankajy ianao. Hisy fiatraika amin'ny fisehon'ny interfasim-pikambana ho an'ny mpikambana hafan'ity wiki ity ny fiovana ho atao.",
-       "translateinterface": "Mba hanampy na hanova dikanteny ho an'ny wiki rehetra, dia ampiasao  [//translatewiki.net/ translatewiki.net], na ny tetikasa fandikana Mediawiki.",
+       "translateinterface": "Mba hanampy na hanova dikanteny ho an'ny wiki rehetra, dia ampiasao  [https://translatewiki.net/ translatewiki.net], na ny tetikasa fandikana Mediawiki.",
        "cascadeprotected": "Ankehitriny dia voaaro ity pejy ity satria misy pejy voaaro {{PLURAL:$1|iray|$1}} mampiasa ity pejy ity. Io pejy io dia mampiasa ny fiarovana \"mirihana\":\n\n$2",
        "namespaceprotected": "Tsy manana alalàna manova ny toeran'anarana « '''$1''' » ianao.",
        "customcssprotected": "Tsy afaka manova ity pejy CSS ity ianao satria misy ny safidy manokan'ny mpikambana hafa.",
        "resetpass-temp-password": "Tenimiafina miserana :",
        "resetpass-abort-generic": "Nosakanan'ny itatra (extension) iray ny fanovana tenimiafina.",
        "resetpass-expired": "Efa nitsahatra ny tenimiafinao. Mampidira tenimiafina vaovao hahafahanao miditra.",
-       "resetpass-expired-soft": "Efa nitsahatra ny tenimiafinao, ary tsy maintsy averina ilay izy. Safidio avy hatrany ny tenimiafina, na tsindrio \"{{int:resetpass-submit-cancel}}\" raha tsy hanao izany androany",
-       "resetpass-validity-soft": "Tsy ekena ny tenimiafinao : $1\n\nTenimiafina vaovao fidiana, na tsindrio \"{{int:resetpass-submit-cancel}}\" raha hamerina azy amin'ny fotoana hafa.",
+       "resetpass-expired-soft": "Efa nitsahatra ny tenimiafinao, ary tsy maintsy averina ilay izy. Safidio avy hatrany ny tenimiafina, na tsindrio \"{{int:authprovider-resetpass-skip-label}}\" raha tsy hanao izany androany",
+       "resetpass-validity-soft": "Tsy ekena ny tenimiafinao : $1\n\nTenimiafina vaovao fidiana, na tsindrio \"{{int:authprovider-resetpass-skip-label}}\" raha hamerina azy amin'ny fotoana hafa.",
        "passwordreset": "Famafana ary famerenana ny tenimiafina",
        "passwordreset-text-one": "Fenoy ity fôrmiolera ity mba hamerenana ny tenimiafinao",
        "passwordreset-text-many": "{{PLURAL:$1|Fenoy ny saha mba hahazoanao tenimiafina vonjimaika.}}",
        "allmessagesname": "Anarana",
        "allmessagesdefault": "Dikan-teny tany am-boalohany",
        "allmessagescurrent": "Dikan-teny miasa ankehitriny",
-       "allmessagestext": "Ity dia lisitry ny hafatra hita ao amin'ny anaran-tsehatra MediaWiki.\nAndana vangio ny [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Fandikana an'i Mediawiki] ary [//translatewiki.net/ translatewiki.net] raha tia handray anjara amin'ny fandikana an'i Mediawiki amin'ny ankapobeny.",
+       "allmessagestext": "Ity dia lisitry ny hafatra hita ao amin'ny anaran-tsehatra MediaWiki.\nAndana vangio ny [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Fandikana an'i Mediawiki] ary [https://translatewiki.net/ translatewiki.net] raha tia handray anjara amin'ny fandikana an'i Mediawiki amin'ny ankapobeny.",
        "allmessagesnotsupportedDB": "Tsy mbola mandeha ny '''{{ns:special}}:Allmessages''' satria tsy mandeha koa ny '''$wgUseDatabaseMessages'''.",
        "allmessages-filter-legend": "Tantavanina",
        "allmessages-filter": "Hanasivana araka ny satam-panovana :",
index 38a19d1..6780a3f 100644 (file)
        "protectedpagetext": "Laman ko alah dikunci untuak manghindari panyuntiangan.",
        "viewsourcetext": "Sanak dapek malihek atau manyalin sumber laman iko:",
        "viewyourtext": "Sanak dapek mancaliak jo mangkopi sumber untuak \"suntiangan sanak\" ka laman ko",
-       "protectedinterface": "Laman ko baisi teks antarmuko untuak digunoan dek parangkaik lunak di wiki ko sajo, dan alah dikunci untuak maindaan kasalahan. \nUntuak manambah atau maubah tajamahan di kasado wiki, harap gunoan [//translatewiki.net/ translatewiki.net], yaitu proyek palokalan MediaWiki.",
-       "editinginterface": "'''Paringatan:''' Sanak manyuntiang laman nan digunoan untuak manyadiokan teks antarmuko untuak parangkaik lunak.\nParubahan teks ko akan mampangaruhi tampilan pado antarmuko pangguno untuak pangguno lain.\nUntuak tajamahan, harap gunoan [//translatewiki.net/wiki/Main_Page?setlang=min translatewiki.net], proyek palokalan MediaWiki.",
+       "protectedinterface": "Laman ko baisi teks antarmuko untuak digunoan dek parangkaik lunak di wiki ko sajo, dan alah dikunci untuak maindaan kasalahan. \nUntuak manambah atau maubah tajamahan di kasado wiki, harap gunoan [https://translatewiki.net/ translatewiki.net], yaitu proyek palokalan MediaWiki.",
+       "editinginterface": "'''Paringatan:''' Sanak manyuntiang laman nan digunoan untuak manyadiokan teks antarmuko untuak parangkaik lunak.\nParubahan teks ko akan mampangaruhi tampilan pado antarmuko pangguno untuak pangguno lain.\nUntuak tajamahan, harap gunoan [https://translatewiki.net/wiki/Main_Page?setlang=min translatewiki.net], proyek palokalan MediaWiki.",
        "cascadeprotected": "Laman iko alah dilindungi dari panyuntiangan karano disartokan di {{PLURAL:$1|laman}} barikuik nan alah dilindungi jo opsi \"runtun\":\n$2",
        "namespaceprotected": "Sanak indak mampunyoi hak akses untuak manyuntiang laman di ruang namo '''$1'''.",
        "customcssprotected": "Sanak indak mampunyoi izin untuak maubah laman CSS iko, karano manganduang pangaturan pribadi pangguno lain.",
index f534f84..8b597d6 100644 (file)
        "badarticleerror": "Ова дејство не може да се спроведе на оваа страница.",
        "cannotdelete": "Страницата или податотеката „$1“ не можеше да се избрише.\nМожеби некој друг веќе ја избришал.",
        "cannotdelete-title": "Не можам да ја избришам страницата „$1“",
-       "delete-hook-aborted": "Ð\91Ñ\80иÑ\88еÑ\9aеÑ\82о Ðµ Ð¿Ñ\80екинаÑ\82о Ñ\81о ÐºÑ\83ка.\nНе е дадено никакво образложение.",
+       "delete-hook-aborted": "Ð\91Ñ\80иÑ\88еÑ\9aеÑ\82о Ðµ Ð¿Ñ\80екинаÑ\82о Ñ\81о Ð¿Ñ\80еÑ\81Ñ\80еÑ\82ник.\nНе е дадено никакво образложение.",
        "no-null-revision": "Не можев да направам нова ништовна преработка на страницата „$1“",
        "badtitle": "Неисправен наслов",
        "badtitletext": "Бараниот наслов е грешен, празен или неисправно поврзан меѓујазичен или меѓупроектен наслов. \nМоже да содржи недопуштени знаци.",
        "protectedpagetext": "Оваа страница е заклучена за уредувања и други дејства.",
        "viewsourcetext": "Можете да го погледнете и копирате кодот на оваа страница.",
        "viewyourtext": "Можете да го погледнете и копирате кодот на <strong>вашите уредувања</strong> на оваа страница.",
-       "protectedinterface": "Оваа страница содржи текст од посредникот на програмот на ова вики и е превентивно заштитена поради можна злоупотреба.\nЗа да додавате или менувате преводи на сите викија, појдете на [//translatewiki.net/wiki/Main_Page?uselang=mk translatewiki.net] — проектот за преведување на МедијаВики.",
+       "protectedinterface": "Оваа страница содржи текст од посредникот на програмот на ова вики и е превентивно заштитена поради можна злоупотреба.\nЗа да додавате или менувате преводи на сите викија, појдете на [https://translatewiki.net/wiki/Main_Page?uselang=mk translatewiki.net] — проектот за преведување на МедијаВики.",
        "editinginterface": "<strong>Предупредување:</strong> Уредувате страница која е дел од корисничкиот посредник на програмот МедијаВики.\nПромените на оваа страница ќе предизвикаат промени во корисничкиот посредник кај другите корисници на ова вики.",
-       "translateinterface": "За да додадете или измените превод на сите викија, појдете на [//translatewiki.net/wiki/Main_Page?setlang=mk translatewiki.net] — проектот за преведување на МедијаВики.",
+       "translateinterface": "За да додадете или измените превод на сите викија, појдете на [https://translatewiki.net/wiki/Main_Page?setlang=mk translatewiki.net] — проектот за преведување на МедијаВики.",
        "cascadeprotected": "Оваа страница е заштитена од уредувања бидејќи е превметната во {{PLURAL:$1|следнава страница, којашто е заштитена|следниве страници, коишто се заштитени}} со можноста „каскадна заштита“:\n$2",
        "namespaceprotected": "Немате дозвола за уредување страници во именскиот простор '''$1'''.",
        "customcssprotected": "Немате дозвола да ја менувате оваа страница со CSS бидејќи содржи туѓи лични нагодувања.",
        "noemail": "Нема заведено е-поштенска адреса за корисник „$1“.",
        "noemailcreate": "Потребно е да наведете важечка е-поштенска адреса",
        "passwordsent": "Нова лозинка е испратена на е-поштенската адреса заведена за „$1“.\nВе молиме најавете се повторно откако ќе ја примите пораката.",
-       "blocked-mailpassword": "Ð\92аÑ\88аÑ\82а IP-адÑ\80еÑ\81а Ðµ Ð±Ð»Ð¾ÐºÐ¸Ñ\80ана Ð·Ð° Ñ\83Ñ\80едÑ\83ваÑ\9aе, Ð¸Ñ\81Ñ\82овÑ\80емено Ðµ Ñ\81Ñ\82авена Ð·Ð°Ð±Ñ\80ана Ð·Ð° ÐºÐ¾Ñ\80иÑ\81Ñ\82еÑ\9aе Ð½Ð° Ñ\84Ñ\83нкÑ\86иÑ\98аÑ\82а Ð·Ð° Ð¾Ð±Ð½Ð¾Ð²Ð° Ð½Ð° Ð»Ð¾Ð·Ð¸Ð½ÐºÐ° Ð·Ð° Ð´Ð° Ñ\81е Ñ\81пÑ\80еÑ\87и Ð¼Ð¾Ð¶Ð½Ð¾Ñ\81Ñ\82а Ð·Ð° Ð·Ð»Ð¾Ñ\83поÑ\82Ñ\80еба.",
+       "blocked-mailpassword": "Ð\92аÑ\88аÑ\82а IP-адÑ\80еÑ\81а Ð¸Ð¼Ð° Ð·Ð°Ð±Ñ\80ана Ð·Ð° Ñ\83Ñ\80едÑ\83ваÑ\9aе. Ð\97а Ð´Ð° Ñ\81е Ñ\81пÑ\80еÑ\87и Ð·Ð»Ð¾Ñ\83поÑ\82Ñ\80еба, Ð½Ðµ Ðµ Ð´Ð¾Ð·Ð²Ð¾Ð»ÐµÐ½Ð¾ Ð¿Ð¾Ð²Ñ\80аÑ\82ок Ð½Ð° Ð»Ð¾Ð·Ð¸Ð½ÐºÐ° Ð¾Ð´ Ð½Ðµа.",
        "eauthentsent": "На назначената адреса е испратена потврдна порака.\nПред да се испрати друга порака на корисничката сметка, ќе морате да ги проследите напатствијата во пораката, за да потврдите дека таа корисничка сметка е навистина ваша.",
        "throttled-mailpassword": "Веќе е испратена порака за измена на лозинката во {{PLURAL:$1|изминатиов час|изминативе $1 часа}}.\nЗа да се спречи злоупотреба, само едно потсетување може да се праќа на {{PLURAL:$1|секој час|секои $1 часа}}.",
        "mailerror": "Грешка при испраќање на е-поштата: $1",
        "changepassword-success": "Вашата лозинка е сменета!",
        "changepassword-throttled": "Имате премногу обиди за најава за кратко време.\nПочекајте $1 пред да се обидете повторно.",
        "botpasswords": "Ботовски лозинки",
+       "botpasswords-summary": "<em>Ботовските лозинки</em> даваат пристап до корисничка сметка преку приложникот без да се користат главните најавни податоци на сметката. Корисничките права може да се ограничени кога се најавувате на овој начин.\n\nДоколку не знаете за што ова би ви послужило, подобро не го правете ова. Никој никогаш не треба да ви побара да направите ваква лозинка и да му ја дадете.",
+       "botpasswords-disabled": "Ботовските лозинки се оневозможени.",
+       "botpasswords-no-central-id": "За да користите ботовски лозинки, мора да сте најавени со централизирана сметка.",
        "botpasswords-existing": "Постоечки ботовски лозинки",
        "botpasswords-createnew": "Направи нова ботовска лозинка",
        "botpasswords-editexisting": "Измени постоечка ботовска лозинка",
        "botpasswords-label-delete": "Избриши",
        "botpasswords-label-resetpassword": "Ставете нова лозинка",
        "botpasswords-label-grants": "Применливи доделувања:",
+       "botpasswords-help-grants": "Секое доделување дава пристап до список до наведени права што веќе ги има корисничката сметка. Повеќе ќе најдете на [[Special:ListGrants|табелата со доделувања]].",
+       "botpasswords-label-restrictions": "Ограничувања на употребата:",
        "botpasswords-label-grants-column": "Доделено",
        "botpasswords-bad-appid": "Името на ботот „$1“ е неважечко.",
+       "botpasswords-insert-failed": "Не успеав да го додадам името на ботот „$1“. Да не е веќе додадено?",
+       "botpasswords-update-failed": "Не успеав да го подновам името на ботот „$1“. Да не е избришано?",
+       "botpasswords-created-title": "Лозинка на ботот е создадена",
+       "botpasswords-created-body": "Лозинката на ботот со име „$1“ на корисникот „$2“ е создадена.",
+       "botpasswords-updated-title": "Лозинката на ботот е изменета",
+       "botpasswords-updated-body": "Лозинката на ботот со име „$1“ на корисникот „$2“ е изменета.",
+       "botpasswords-deleted-title": "Лозинка на ботот е избришана",
+       "botpasswords-deleted-body": "Лозинката на ботот со име „$1“ на корисникот „$2“ е избришана.",
+       "botpasswords-newpassword": "Новата лозинка за најава <strong>$1</strong> е <strong>$2</strong>. <em>Запишете си ја за во иднина.</em>",
+       "botpasswords-no-provider": "BotPasswordsSessionProvider  е недостапен.",
+       "botpasswords-restriction-failed": "Не можете да се најавите поради ограничувањата за лозинки на ботови.",
+       "botpasswords-invalid-name": "Укажаното корисничко име не го содржи одделувачот ботовска лозинка („$1“).",
+       "botpasswords-not-exist": "Корисникот „$1“ нема ботовска лозинка „$2“.",
        "resetpass_forbidden": "Лозинките не може да се менуваат",
+       "resetpass_forbidden-reason": "Лозинките не може да се менуваат: $1",
        "resetpass-no-info": "Мора да сте најавени ако сакате да имате директен пристап до оваа страница.",
        "resetpass-submit-loggedin": "Смени лозинка",
        "resetpass-submit-cancel": "Откажи",
        "resetpass-temp-password": "Привремена лозинка:",
        "resetpass-abort-generic": "Смената на лозинката е откажана од додаток.",
        "resetpass-expired": "Лозинката ви е истечена. Задајте нова лозинка за да се најавите.",
-       "resetpass-expired-soft": "Лозинката ви е истечена и ќе мора да зададете друга. Изберете ја сега, или пак стиснете на „{{int:resetpass-submit-cancel}}“ за да ја зададете подоцна.",
-       "resetpass-validity-soft": "Лозинката ви е неважечка: $1\n\nИзберете друга сега, или пак стиснете на „{{int:resetpass-submit-cancel}}“ за да ја зададете подоцна.",
+       "resetpass-expired-soft": "Лозинката ви е истечена и ќе мора да зададете друга. Изберете ја сега, или пак стиснете на „{{int:authprovider-resetpass-skip-label}}“ за да ја зададете подоцна.",
+       "resetpass-validity-soft": "Лозинката ви е неважечка: $1\n\nИзберете друга сега, или пак стиснете на „{{int:authprovider-resetpass-skip-label}}“ за да ја зададете подоцна.",
        "passwordreset": "Менување на лозинка",
        "passwordreset-text-one": "Пополнете го образецов за да ја измените лозинката.",
        "passwordreset-text-many": "{{PLURAL:$1|Пополнете едно од полињата за добиете привремена лозинка по е-пошта.}}",
        "passwordreset-emailsentusername": "Ако има соодветна регистрирана е-пошта поврзана со ова корисничко име, тогаш ќе ви биде испратена порака за промена на лозинката.",
        "passwordreset-emailsent-capture": "Испратено е писмо за измена на лозинката (прикажано подолу).",
        "passwordreset-emailerror-capture": "Создадено е писмо за измена на лозинката (прикажано подолу), но не успеав да го испратам на {{GENDER:$2|корисникот}}: $1",
+       "passwordreset-emailsent-capture2": "{{PLURAL:$1|Е-поштата за задавање на нова лозинка|Е-поштата за задавање на нови лозинки}} е испратена. Подолу е {{PLURAL:$1|е прикажано корисничкото име и лозинката|прикажан список на кориснички имиња и лозинки}}.",
+       "passwordreset-emailerror-capture2": "Испраќањето е-пошта на {{GENDER:$2|корисникот}} не успеа: $1 Подолу е {{PLURAL:$3|прикажано корисничкото име и лозинката|прикажан список на кориснички имиња и лозинки}}.",
+       "passwordreset-nocaller": "Мора да се укаже повикувач",
+       "passwordreset-nosuchcaller": "Повикувачот не постои: $1",
+       "passwordreset-ignored": "Менувањето на лозинката не успеа. Можеби не е поставен услужник?",
+       "passwordreset-invalideamil": "Неважечка е-пошта",
+       "passwordreset-nodata": "Немате укажано ни корисничко име, ни е-пошта.",
        "changeemail": "Смени или отстрани е-пошта",
        "changeemail-header": "Пополнете го образецов за да ја смените е-поштата. Ако сакате да ја отстраните адресата од вашата сметка, оставете го празно полето за нова е-пошта.",
        "changeemail-passwordrequired": "Ќе треба да ја внесете лозинката за да ја потврдите измената.",
        "minoredit": "Ова е ситна промена",
        "watchthis": "Набљудувај ја страницава",
        "savearticle": "Зачувај",
+       "savechanges": "Зачувај промени",
+       "publishpage": "Објави ја страницата",
+       "publishchanges": "Објави промени",
        "preview": "Преглед",
        "showpreview": "Преглед",
        "showdiff": "Прикажи промени",
        "accmailtext": "На $2 е спратена е случајно создадена лозинка за [[User talk:$1|$1]] е испратена. Истата може да се смени на страницата ''[[Special:ChangePassword|Менување на лозинка]]'' откако ќе се најавите.",
        "newarticle": "(нова)",
        "newarticletext": "Проследивте врска до страница која не постои.\nЗа да ја создадете страницата, напишете текст во полето подолу ([$1 помош]). Ако сте овде по грешка, само систнете на копчето '''назад''' во вашиот прелистувач.",
-       "anontalkpagetext": "----''Ова е страница за разговор со анонимен корисник кој сè уште не регистрирал корисничка сметка или не ја користи.\nЗатоа мораме да ја користиме неговата бројчена IP-адреса за да го препознаеме.\nЕдна ваква IP-адреса може да ја делат повеќе корисници.\nАко сте анонимен корисник и сметате дека кон вас се упатени нерелевантни коментари, тогаш [[Special:CreateAccount|создајте корисничка сметка]] или [[Special:UserLogin|најавете се]] за да избегнете поистоветување со други анонимни корисници во иднина.''",
+       "anontalkpagetext": "----\n<em>Ова е страница за разговор со анонимен корисник кој сè уште не регистрирал корисничка сметка или не ја користи.<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}}}} дневникот на бришења].",
        "userpage-userdoesnotexist": "Корисничката сметка „<nowiki>$1</nowiki>“ не е регистрирана.\nВе молиме размислете дали навистина сакате да ја создадете/уредите оваа страница.",
        "userpage-userdoesnotexist-view": "Корисничката сметка „$1“ не е регистрирана.",
        "blocked-notice-logextract": "Овој корисник е моментално блокиран.\nПодолу е прикажан последниот дневнички запис:",
-       "clearyourcache": "<strong>Ð\9dапомена:</strong>  Ð\9fо Ð·Ð°Ñ\87Ñ\83вÑ\83ваÑ\9aеÑ\82о Ð¼Ð¾Ñ\80аÑ\82е Ð´Ð° Ð³Ð¾ Ð¸Ñ\81Ñ\87иÑ\81Ñ\82иÑ\82е Ð¼ÐµÑ\93Ñ\83Ñ\81кладоÑ\82 (кеÑ\88) Ð½Ð° Ð¿Ñ\80елиÑ\81Ñ\82Ñ\83ваÑ\87оÑ\82 Ð·Ð° Ð´Ð° Ð¼Ð¾Ð¶ÐµÑ\82е Ð³Ð¸ Ð²Ð¸Ð´Ð¸Ñ\82е Ð¿Ñ\80омениÑ\82е.\n* <strong>Firefox / Safari:</strong> Ð\94Ñ\80жеÑ\82е <em>Shift</em> Ð¸ Ñ\81Ñ\82иÑ\81неÑ\82е Ð½Ð° <em>Ð\9fÑ\80евÑ\87иÑ\82аÑ\98</em> (<em>Reload</em>) Ð¸Ð»Ð¸ Ð¿Ñ\80иÑ\82иÑ\81неÑ\82е <em>Ctrl-F5</em> Ð¸Ð»Ð¸ <em>Ctrl-R</em> (''â\8c\98-R'' Ð½Ð° Mac);\n* <strong>Google Chrome:</strong> Ð\9fÑ\80иÑ\82иÑ\81неÑ\82е <em>Ctrl-Shift-R</em> (<em>â\8c\98-R</em> Ð½Ð° Mac)\n* <strong>Internet Explorer:</strong> Ð\94Ñ\80жеÑ\82е <em>Ctrl</em> Ð´Ð¾Ð´ÐµÐºÐ° Ð¿Ñ\80иÑ\82иÑ\81каÑ\82е Ð½Ð° <em>Refresh</em> Ð¸Ð»Ð¸ Ð¿Ñ\80иÑ\82иÑ\81неÑ\82е <em>Ctrl-F5</em>.\n* <strong>Opera:</strong> Ð\98Ñ\81Ñ\87иÑ\81Ñ\82еÑ\82е Ð³Ð¾ Ð¼ÐµÑ\93Ñ\83Ñ\81кладоÑ\82 Ð²Ð¾ <em>Tools â\86\92 Preferences</em>",
+       "clearyourcache": "<strong>Ð\9dапомена:</strong>  Ð\9fо Ð·Ð°Ñ\87Ñ\83вÑ\83ваÑ\9aеÑ\82о Ð¼Ð¾Ñ\80аÑ\82е Ð´Ð° Ð³Ð¾ Ð¸Ñ\81Ñ\87иÑ\81Ñ\82иÑ\82е Ð¼ÐµÑ\93Ñ\83Ñ\81кладоÑ\82 (кеÑ\88) Ð½Ð° Ð¿Ñ\80елиÑ\81Ñ\82Ñ\83ваÑ\87оÑ\82 Ð·Ð° Ð´Ð° Ð¼Ð¾Ð¶ÐµÑ\82е Ð³Ð¸ Ð²Ð¸Ð´Ð¸Ñ\82е Ð¿Ñ\80омениÑ\82е.\n* <strong>Firefox / Safari:</strong> Ð\94Ñ\80жеÑ\82е <em>Shift</em> Ð¸ Ñ\81Ñ\82иÑ\81неÑ\82е Ð½Ð° <em>Ð\9fÑ\80евÑ\87иÑ\82аÑ\98</em> (<em>Reload</em>) Ð¸Ð»Ð¸ Ð¿Ñ\80иÑ\82иÑ\81неÑ\82е <em>Ctrl-F5</em> Ð¸Ð»Ð¸ <em>Ctrl-R</em> (''â\8c\98-R'' Ð½Ð° Mac);\n* <strong>Google Chrome:</strong> Ð\9fÑ\80иÑ\82иÑ\81неÑ\82е <em>Ctrl-Shift-R</em> (<em>â\8c\98-R</em> Ð½Ð° Mac)\n* <strong>Internet Explorer:</strong> Ð\94Ñ\80жеÑ\82е <em>Ctrl</em> Ð´Ð¾Ð´ÐµÐºÐ° Ð¿Ñ\80иÑ\82иÑ\81каÑ\82е Ð½Ð° <em>Refresh</em> Ð¸Ð»Ð¸ Ð¿Ñ\80иÑ\82иÑ\81неÑ\82е <em>Ctrl-F5</em>.\n* <strong>Opera:</strong> Ð\9fоÑ\98деÑ\82е Ð½Ð° <em>Menu â\86\92 Settings</em> (<em>Opera â\86\92 Preferences</em> Ð½Ð° Ð\9cекинÑ\82оÑ\88), Ð° Ð¿Ð¾Ñ\82оа Ð½Ð° <em>Privacy & security â\86\92 Clear browsing data â\86\92 Cached images and files</em>.",
        "usercssyoucanpreview": "'''Совет:''' Употребете го копчето „{{int:showpreview}}“ за да го испробате вашиот нов CSS пред да зачувате.",
        "userjsyoucanpreview": "'''Совет:''' Употребете го копчето „{{int:showpreview}}“ за да ја испробате вашата нова JavaScript  пред да зачувате.",
        "usercsspreview": "'''Запомнете дека ова е само преглед на вашиот кориснички CSS код, страницата сè уште не е зачувана!'''",
        "previewnote": "'''Имајте предвид дека ова е само преглед.'''\nПромените сè уште не се зачувани!",
        "continue-editing": "Оди на полето за уредување",
        "previewconflict": "Овој преглед прикажува како ќе изгледа текстот внесен во горниот дел откако ќе се зачува страницата.",
-       "session_fail_preview": "'''Жалиме! Не можевме да го обработиме вашето уредување поради загуба на податоци од седницата.'''\nОбидете се повторно.\nАко сè уште не функционира, обидете се да се [[Special:UserLogout|одјавите]] и повторно да се најавите.",
-       "session_fail_preview_html": "'''Жалиме, но Вашето уредување не можеше да се обработи поради загува на податоците од седницата.'''\n\n''{{SITENAME}} има овозможено чист HTML, па прегледот е скриен како мерка за заштита од JavaScript-напади.''\n\n'''Ако ова е разумен обид за уредување, тогаш обидете се повторно.'''\nАко и ова не го реши проблемот, обидете се со [[Special:UserLogout|одјавување]] и повторно најавување.",
+       "session_fail_preview": "За жал, не можев да го обработам уредувањето поради загуба на седнички податоци.\n\nМожеби сте биле одјавени. <strong>Проверете дали сè уште сте најавени и обидете се повторно</strong>.\nАко проблемот продолжи да се јавува, [[Special:UserLogout|одјавете се]] и повторно најавете се, и проверете дали прелистувачот дозволува колачиња од ова мрежно место.",
+       "session_fail_preview_html": "'''Жалиме, но Вашето уредување не можеше да се обработи поради загува на податоците од седницата.'''\n\n''{{SITENAME}} има овозможено чист HTML, па прегледот е скриен како мерка за заштита од JavaScript-напади.''\n\n'''Ако ова е разумен обид за уредување, тогаш обидете се повторно.'''\nАко и ова не го реши проблемот, обидете се со [[Special:UserLogout|одјавување]] и повторно најавување, и проверете дали прелистувачот дозволува колачиња од ова мрежно место.",
        "token_suffix_mismatch": "'''Вашето уредување е одбиено затоа што вашиот пребарувач направил проблеми со интерпукциските знаци во шифрата на уредувањето.\nУредувањето не е прифатено за да се спречи несакана промена на текстот на страницата.\nОва понекогаш се случува кога користите неисправна мрежна анонимна застапничка (proxy) служба.'''",
        "edit_form_incomplete": "'''Некои делови од образецот за уредување не стасаа до опслужувачот. Внимателно проверете дали уреденото не е пореметено и обидете се поввторно.'''",
        "editing": "Уредување на $1",
        "moveddeleted-notice": "Оваа страница била претходно бришена.\nДневникот на бришења и преместувања за оваа страница е прикажан подолу за ваше дополнително информирање.",
        "moveddeleted-notice-recent": "За жал, страницава беше неодамна избришана (во последниве 24 часа).\nПодолу можете да го погледате дневникот на бришење и преместување.",
        "log-fulllog": "Преглед на целиот дневник",
-       "edit-hook-aborted": "УÑ\80едÑ\83ваÑ\9aеÑ\82о Ðµ Ð¿Ñ\80екинаÑ\82о Ñ\81о ÐºÑ\83ка.\nНе е дадено никакво образложение.",
+       "edit-hook-aborted": "УÑ\80едÑ\83ваÑ\9aеÑ\82о Ðµ Ð¿Ñ\80екинаÑ\82о Ñ\81о Ð¿Ñ\80еÑ\81Ñ\80еÑ\82ник.\nНе е дадено никакво образложение.",
        "edit-gone-missing": "Не можев да ја подновам страницата.\nВеројатно е избришана.",
        "edit-conflict": "Спротиставеност во уредувањето.",
        "edit-no-change": "Вашите уредувања беа игнорирани, бидејќи не се направени промени врз текстот.",
        "content-model-css": "CSS",
        "content-json-empty-object": "Празен објект",
        "content-json-empty-array": "Празна низа",
+       "deprecated-self-close-category": "Страници со неважечки самозатворени HTML-ознаки",
+       "deprecated-self-close-category-desc": "Страницава содржи неважечки самозатворени HTML-ознаки, како што се <code>&lt;b/></code> или <code>&lt;span/></code>. Нивното поведение наскоро ќе биде сменето, за да бидат во склад со определбите на HTML5. Ова значи дека се застарени и не треба да се употребуваат во викитекст.",
        "duplicate-args-warning": "<strong>Предупредување:</strong> [[:$1]] го повикува [[:$2]] со повеќе од една вредност за параметарот „$3“. Ќе се употреби само последната вредност.",
        "duplicate-args-category": "Страници што користат дуплирани аргументи во повикувања на шаблони",
        "duplicate-args-category-desc": "Страницава содржи повикувања на шаблони кои се дупликати на аргументи, како што се <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> или <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "revdelete-unsuppress": "Отстрани ограничувања на обновени преработки",
        "revdelete-log": "Причина:",
        "revdelete-submit": "Примени врз {{PLURAL:$1|одбрана преработка|одбрани преработки}}",
-       "revdelete-success": "'''Видливоста на преработката е успешно изменета.'''",
+       "revdelete-success": "Видливоста на преработката е изменета.",
        "revdelete-failure": "'''Видливоста на преработката не можеше да се измени:'''\n$1",
-       "logdelete-success": "'''Успешно нагодување на дневник на видливост.'''",
+       "logdelete-success": "Дневникот на видливост е поставен.",
        "logdelete-failure": "'''Дневникот на видливост не може да биде нагоден:'''\n$1",
        "revdel-restore": "Промена на видливост",
        "pagehist": "Историја на страницата",
        "mergehistory-empty": "Нема преработки кои можат да се спојат.",
        "mergehistory-done": "$3 {{PLURAL:$3|преработка |преработки}} на $1 успешно {{PLURAL:$3|е споена|се споени}} во [[:$2]].",
        "mergehistory-fail": "Не е возможно да се направи спојување на историјата, проверете ја страницата и временските параметри.",
+       "mergehistory-fail-bad-timestamp": "Временската ознака е неважечка.",
+       "mergehistory-fail-invalid-source": "Изворната страница е неважечка.",
+       "mergehistory-fail-invalid-dest": "Целната страница е неважечка.",
+       "mergehistory-fail-no-change": "Спојувањето на историјата не спои ниедна преработка. Проверете ја страницата и временските параметри.",
+       "mergehistory-fail-permission": "Немате дозвола за да ја споите историјата.",
+       "mergehistory-fail-self-merge": "Изворната и целната страница се исти.",
+       "mergehistory-fail-timestamps-overlap": "Изворните преработки се преклопуваат или допаѓаат по целните преработки.",
        "mergehistory-fail-toobig": "Не можам да извршам спојување на историјата бидејќи така ќе се надмине границата од {{PLURAL:$1|една преработка|$1 преработки}}.",
        "mergehistory-no-source": "Изворната страница $1 не постои.",
        "mergehistory-no-destination": "Целната страница $1 не постои.",
        "difference-title-multipage": "$1 и $2: Разлика помеѓу страниците",
        "difference-multipage": "(Разлики помеѓу страници)",
        "lineno": "Ред $1:",
-       "compareselectedversions": "СпоÑ\80еди Ð¸Ð·Ð±Ñ\80ани преработки",
-       "showhideselectedversions": "Ð\9fÑ\80икажи/Ñ\81кÑ\80иÑ\98 Ð¸Ð·Ð±Ñ\80ани преработки",
+       "compareselectedversions": "СпоÑ\80еди Ð³Ð¸ Ð¸Ð·Ð±Ñ\80аниÑ\82е преработки",
+       "showhideselectedversions": "Ð\9fÑ\80икажи/Ñ\81кÑ\80иÑ\98 Ð³Ð¸ Ð¸Ð·Ð±Ñ\80аниÑ\82е преработки",
        "editundo": "откажи",
        "diff-empty": "(нема разлика)",
        "diff-multi-sameuser": "({{PLURAL:$1|Не е прикажана една меѓувремена преработка|Не се прикажани $1 меѓувремени преработки}} од истиот корисник)",
        "search-nonefound-thiswiki": "Нема резултати што одговараат на бараното на ова мрежно место.",
        "powersearch-legend": "Напредно пребарување",
        "powersearch-ns": "Пребарај во следниве именски простори:",
-       "powersearch-togglelabel": "Ð\9eдбеÑ\80и:",
+       "powersearch-togglelabel": "Ð\98збоÑ\80:",
        "powersearch-toggleall": "Сè",
        "powersearch-togglenone": "Ништо",
        "powersearch-remember": "Запoмни го изборот за идни пребарувања",
        "userrights": "Раководење со кориснички права",
        "userrights-lookup-user": "Раководење со кориснички групи",
        "userrights-user-editname": "Внесете корисничко име:",
-       "editusergroup": "Уреди кориснички групи",
+       "editusergroup": "Уреди {{GENDER:$1|кориснички}} групи",
        "editinguser": "Менување на правата на {{GENDER:$1|корисникот}} <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "Уреди ги корисничките групи",
-       "saveusergroups": "Зачувај ги корисничките групи",
+       "saveusergroups": "Зачувај ги {{GENDER:$1|корисничките}} групи",
        "userrights-groupsmember": "Член на:",
        "userrights-groupsmember-auto": "Подразбран член на:",
        "userrights-groups-help": "Можете да измените на кои групи припаѓа корисник:\n* Штиклирано - корисникот е во таа група.\n* Нештиклирано - корисникот не припаѓа на групата.\n* Ѕвездичка (*) - не можете да ја отстраните групата откако сте ја додале (и обратно).",
        "userrights-unchangeable-col": "Групи кои не може да ги промените",
        "userrights-irreversible-marker": "$1*",
        "userrights-conflict": "Спротиставеност во измените на корисничките права. Прегледајте ги и потврдете ги.",
-       "userrights-removed-self": "УÑ\81пеÑ\88но Ð³и отстранивте вашите права. Затоа, повеќе немате пристап на страницава.",
+       "userrights-removed-self": "Ð\93и отстранивте вашите права. Затоа, повеќе немате пристап на страницава.",
        "group": "Група:",
        "group-user": "Корисници",
        "group-autoconfirmed": "Автопотврдени корисници",
        "right-createpage": "Создавање на страници (кои не се страници за разговор)",
        "right-createtalk": "Создавање на страници за разговор",
        "right-createaccount": "Создавање на нови кориснички сметки",
+       "right-autocreateaccount": "Автоматска најава со надворешна корисничка сметка",
        "right-minoredit": "Означување на уредувањата како ситни",
        "right-move": "Преместување страници",
        "right-move-subpages": "Преместување на страници со нивните потстраници",
        "right-override-export-depth": "Извезување на страници вклучувајќи поврзани страници со длабочина до 5",
        "right-sendemail": "Испраќање на е-пошта до други корисници",
        "right-passwordreset": "Преглед на пораки по е-пошта за промена на лозинка",
-       "right-managechangetags": "Создавање3 или бришење на [[Special:Tags|ознаки]] од базата",
+       "right-managechangetags": "Создавање и (де)активирање на [[Special:Tags|ознаки]]",
        "right-applychangetags": "Задавање на [[Special:Tags|ознаки]] заедно со направените измени",
        "right-changetags": "Додавате и отстранување на произволни [[Special:Tags|ознаки]] во поединечни преработки и дневнички записи",
+       "right-deletechangetags": "Бришење [[Special:Tags|ознаки]] од базата",
        "grant-generic": "Група права „$1“",
        "grant-group-page-interaction": "Опходување со страници",
        "grant-group-file-interaction": "Опходување со слики и снимки",
        "action-read": "читање на оваа страница",
        "action-edit": "уредување на оваа страница",
        "action-createpage": "создавање страници",
-       "action-createtalk": "создавање страници за разговор",
+       "action-createtalk": "создавање на оваа страница за разговор",
        "action-createaccount": "создај ја оваа корисничка сметка",
+       "action-autocreateaccount": "автоматско создавање на оваа надворешна корисничка сметка",
        "action-history": "преглед на историјата на оваа страница",
        "action-minoredit": "означување на ова уредување како ситно",
        "action-move": "преместување на оваа страница",
        "action-viewmyprivateinfo": "преглед на вашите лични податоци",
        "action-editmyprivateinfo": "уредување на вашите лични податоци",
        "action-editcontentmodel": "уредување на содржинскиот модел на страница",
-       "action-managechangetags": "создавање или бришење на ознаки од базата",
+       "action-managechangetags": "создавање или (де)активирање на ознаки",
        "action-applychangetags": "ставање на ознаки заедно со напревените промени",
        "action-changetags": "додавање и отстранување на произволни ознаки во поединечни преработки и дневнички записи",
+       "action-deletechangetags": "бришење ознаки од базата",
        "nchanges": "$1 {{PLURAL:$1|промена|промени}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|од последната посаета}}",
        "enhancedrc-history": "историја",
        "recentchangeslinked-page": "Име на страницата:",
        "recentchangeslinked-to": "Прикажи ги промените на страниците поврзани со дадената страница",
        "recentchanges-page-added-to-category": "[[:$1]] ставена во категорија",
-       "recentchanges-page-added-to-category-bundled": "[[:$1]] и уште [[Special:WhatLinksHere/$1|{{PLURAL:$2|една страница ставена|$2 страници ставеи}}]] во категорија",
+       "recentchanges-page-added-to-category-bundled": "[[:$1]] ставена во категорија, [[Special:WhatLinksHere/$1|оваа страница е вклучена во рамките на други страници]]",
        "recentchanges-page-removed-from-category": "[[:$1]] отстранета од категорија",
-       "recentchanges-page-removed-from-category-bundled": "[[:$1]] Ð¸ Ñ\83Ñ\88Ñ\82е {{PLURAL:$2|една Ñ\81Ñ\82Ñ\80аниÑ\86а Ð¾Ñ\82Ñ\81Ñ\82Ñ\80анеÑ\82а|$2 Ñ\81Ñ\82Ñ\80аниÑ\86и Ð¾Ñ\82Ñ\81Ñ\82Ñ\80анеÑ\82и}} Ð¾Ð´ ÐºÐ°Ñ\82егоÑ\80иÑ\98а",
+       "recentchanges-page-removed-from-category-bundled": "[[:$1]] Ð¾Ñ\82Ñ\81Ñ\82Ñ\80анеÑ\82а Ð¾Ð´ ÐºÐ°Ñ\82егоÑ\80иÑ\98а, [[Special:WhatLinksHere/$1|оваа Ñ\81Ñ\82Ñ\80аниÑ\86а Ðµ Ð²ÐºÐ»Ñ\83Ñ\87ена Ð²Ð¾ Ñ\80амкиÑ\82е Ð½Ð° Ð´Ñ\80Ñ\83ги Ñ\81Ñ\82Ñ\80аниÑ\86и]]",
        "autochange-username": "Автоматски промени на МедијаВики",
        "upload": "Подигање",
        "uploadbtn": "Подигни",
        "filename-tooshort": "Името на податотеката е прекратко.",
        "filetype-banned": "Овој тип на податотека е забранет.",
        "verification-error": "Оваа податотека не ја помина потврдата успешно.",
-       "hookaborted": "Ð\98змениÑ\82е Ñ\88Ñ\82о Ñ\81акаÑ\82е Ð´Ð° Ð³Ð¸ Ð½Ð°Ð¿Ñ\80авиÑ\82е Ñ\81е Ð¾Ñ\82кажани Ð¾Ð´ ÐºÑ\83ка на додатокот.",
+       "hookaborted": "Ð\98змениÑ\82е Ñ\88Ñ\82о Ñ\81акаÑ\82е Ð´Ð° Ð³Ð¸ Ð½Ð°Ð¿Ñ\80авиÑ\82е Ñ\81е Ð¾Ñ\82кажани Ð¾Ð´ Ð¿Ñ\80еÑ\81Ñ\80еÑ\82ник на додатокот.",
        "illegal-filename": "Такво име за податотеката на е дозволено.",
        "overwrite": "Не е дозволено запишување врз постоечка податотека.",
        "unknown-error": "Се појави непозната грешка.",
        "uploaded-script-svg": "Пронајдов скриптен елемент „$1“ во подигнатата SVG-податотека.",
        "uploaded-hostile-svg": "Пронајдов небезбеден CSS во стилскиот елемент на подигнатата SVG-податотека.",
        "uploaded-event-handler-on-svg": "Задавањето на атрибути <code>$1=\"$2\"</code> за работа со настани не е дозволено за SVG-податотеки.",
-       "uploaded-href-unsafe-target-svg": "Пронајдов href кон небезбедна цел <code>&lt;$1 $2=\"$3\"&gt;</code> во подигнатата SVG-податотека.",
+       "uploaded-href-attribute-svg": "На href-атрибутите во SVG-податотеки им е дозволено да водат само до цели со претставки http:// или https://, кои се наоѓаат на <code>&lt;$1 $2=\"$3\"&gt;</code>.",
+       "uploaded-href-unsafe-target-svg": "Пронајдов href кон небезбедни податоци: URI-цел <code>&lt;$1 $2=\"$3\"&gt;</code> во подигнатата SVG-податотека.",
        "uploaded-animate-svg": "Пронајдов ознака „animate“ што може да го менува href, користејќи го атрибутот „from“ <code>&lt;$1 $2=\"$3\"&gt;</code> во подигнатата SVG-податотека.",
        "uploaded-setting-event-handler-svg": "Задавањето на атрибути за работа со настани е спречено. Пронајдов <code>&lt;$1 $2=\"$3\"&gt;</code> во подигнатата SVG-податотека.",
        "uploaded-setting-href-svg": "Употребата на ознаката „set“ tag за ставање на атрибутот „href“ во матичен елемент е спречена.",
        "upload-too-many-redirects": "Оваа URL содржеше премногу пренасочувања",
        "upload-http-error": "Се појави грешка во HTTP: $1.",
        "upload-copy-upload-invalid-domain": "Примероци од подигањата не се достапни на овој домен.",
+       "upload-foreign-cant-upload": "Ова вики не е поставено за подигање на податотеки на бараното надворешно складиште.",
+       "upload-foreign-cant-load-config": "Не можев да ја вчитам поставеноста за подигање податотеки на надворешни складишта.",
+       "upload-dialog-disabled": "Подигањето на податотеки со помош на овој дијалог е оневозможено на ова вики.",
        "upload-dialog-title": "Подигни податотека",
        "upload-dialog-button-cancel": "Откажи",
        "upload-dialog-button-done": "Готово",
        "backend-fail-read": "Не можев да ја прочитам податотеката $1",
        "backend-fail-create": "Не можев да ја запишам податотеката $1.",
        "backend-fail-maxsize": "Не можев да ја запишам податотеката $1 бидејќи е поголема од {{PLURAL:$2|еден бајт|$2 бајти}}.",
-       "backend-fail-readonly": "Складишната основа „$1“ моментално не може да се запишува. Наведената причина гласи: „$2“",
+       "backend-fail-readonly": "Складишната основа „$1“ моментално не може да се запишува. Наведената причина гласи: <em>$2</em>",
        "backend-fail-synced": "Податотеката „$1“ е во состојба недоследна во рамките на внатрешните складишни основи",
        "backend-fail-connect": "Не можев да се поврзам со складишната основа „$1“.",
        "backend-fail-internal": "Се појави непозната грешка во складишната основа „$1“.",
        "uploadstash-badtoken": "Не успеав да го извршам бараното дејство, можеби поради тоа што вашата сигурносна шифра е истечена. Обидете се повторно.",
        "uploadstash-errclear": "Чистењето на податотеките не успеа.",
        "uploadstash-refresh": "Превчитај го списокот на податотеки",
+       "uploadstash-thumbnail": "погл. минијатура",
        "invalid-chunk-offset": "Неважечка појдовна точка",
        "img-auth-accessdenied": "Оневозможен пристап",
        "img-auth-nopathinfo": "Недостасува PATH_INFO.\nВашиот опслужувач не е нагоден за да ја предаде оваа информација.\nМожеби се заснова на CGI, и така не подржува img_auth.\nПогл. https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization.",
        "apihelp": "Помош со извршникот",
        "apihelp-no-such-module": "Модулот „$1“ не е пронајден.",
        "apisandbox": "Извршнички песочник",
+       "apisandbox-jsonly": "Употребата на овој извршнички песочник бара JavaScript.",
        "apisandbox-api-disabled": "Извршникот е оневозможен на ова мрежно место.",
-       "apisandbox-intro": "Страницава служи за вршење проби со '''Извршник на МедијаВики'''.\n\nПовеќе за употребата на овој извршник ќе најдете во [//www.mediawiki.org/wiki/API:Main_page неговата документација].  Пример: [//www.mediawiki.org/wiki/API#A_simple_example преземање на содржината на главната страница].  Одберете дејство за да видите повеќе примери.\n\nИмајте предвид дека она шо го правите на страницава може да се одрази врз викито, иако ова е песочник.",
+       "apisandbox-intro": "Страницава служи за вршење проби со <strong>Извршник на МедијаВики</strong>.\n\nПовеќе за употребата на овој извршник ќе најдете во  [[mw:API:Main page|неговата документација]]. Пример: [https://www.mediawiki.org/wiki/API#A_simple_example преземање на содржината на Главната страница].  Одберете дејство за да видите повеќе примери.\n\nИмајте предвид дека она шо го правите на страницава може да се одрази врз викито, иако ова е песочник.",
+       "apisandbox-fullscreen": "Рашири го полето",
+       "apisandbox-fullscreen-tooltip": "Рашири го полето на песочникот колку што е голем прозорецот на прелистувачот.",
        "apisandbox-unfullscreen": "Прикажи страница",
+       "apisandbox-unfullscreen-tooltip": "Смали го полето на песочникот, за да се покажуваат навигациските врски на МедијаВики.",
        "apisandbox-submit": "Постави барање",
        "apisandbox-reset": "Исчисти",
        "apisandbox-retry": "Пробај пак",
+       "apisandbox-loading": "Вчитувам информации за извршничкиот модул „$1“...",
+       "apisandbox-load-error": "Се појави грешка при вчитувањето на информациите за извршничкиот модул „$1“: $2",
+       "apisandbox-no-parameters": "Извршничкиот модул нема параметри.",
+       "apisandbox-helpurls": "Врски за помош",
        "apisandbox-examples": "Примери",
        "apisandbox-dynamic-parameters": "Дополнителни параметри",
        "apisandbox-dynamic-parameters-add-label": "Додај параметар:",
        "apisandbox-dynamic-parameters-add-placeholder": "Назив на параметарот",
+       "apisandbox-dynamic-error-exists": "Праметарот по име „$1“ веќе постои.",
+       "apisandbox-deprecated-parameters": "Застарени параметри",
+       "apisandbox-fetch-token": "Самопополни ја шифрата",
+       "apisandbox-submit-invalid-fields-title": "Некои полиња се неважечки",
+       "apisandbox-submit-invalid-fields-message": "Исправете ги обележаните полиња и обидете се повторно.",
        "apisandbox-results": "Исход",
+       "apisandbox-sending-request": "Испраќам барање до извршникот...",
+       "apisandbox-loading-results": "Добивам исход од извршникот...",
+       "apisandbox-results-error": "Се појави грешка при вчитувањето на одговорот од барањето до извршникот: $1.",
        "apisandbox-request-url-label": "URL на барањето:",
-       "apisandbox-request-time": "Време за барањето: $1",
+       "apisandbox-request-time": "Време за барањето: {{PLURAL:$1|$1 милисекунда|$1 милисекунди}}",
+       "apisandbox-results-fixtoken": "Исправи ја шифрата и поднеси одново",
+       "apisandbox-results-fixtoken-fail": "Не успеав да ја добијам шифрата „$1“.",
+       "apisandbox-alert-page": "Полињата на страницава се неважечки.",
+       "apisandbox-alert-field": "Вредноста на полево е неважечка.",
        "booksources": "Печатени извори",
        "booksources-search-legend": "Пребарување на извори за книга",
        "booksources-isbn": "ISBN:",
        "log-title-wildcard": "Пребарај наслови кои почнуваат со овој текст",
        "showhideselectedlogentries": "Прикажи/скриј одбрани записи",
        "log-edit-tags": "Измени ознаки на одредени дневнички записи",
-       "checkbox-select": "Ð\9eдбеÑ\80и: $1",
+       "checkbox-select": "Ð\98збоÑ\80: $1",
        "checkbox-all": "Сите",
        "checkbox-none": "Ништо",
        "checkbox-invert": "Избери обратно",
        "trackingcategories-msg": "Следечка категорија",
        "trackingcategories-name": "Назив на пораката",
        "trackingcategories-desc": "Критериуми за вклучување",
+       "restricted-displaytitle-ignored": "Страници со занемарени наслови за приказ",
+       "restricted-displaytitle-ignored-desc": "Страницата има занемарен <code><nowiki>{{DISPLAYTITLE}}</nowiki></code> бидејќи не е истоветен на нејзиниот стварен наслов.",
        "noindex-category-desc": "Роботите не ја индексираат страницава бидејќи го содржи волшебниот збор <code><nowiki>__NOINDEX__</nowiki></code> и се наоѓа во именски простор кајшто е дозволен.",
        "index-category-desc": "Страницата содржи <code><nowiki>__INDEX__</nowiki></code> (и се наоѓа во именски простор кајшто ова е дозволено), па затоа се индексира од роботи, што инаку не би било.",
        "post-expand-template-inclusion-category-desc": "Страницата е поголема од <code>$wgMaxArticleSize</code> по проширувањето на сите шаблони. Затоа, некои шаблони не се проширени.",
        "rollbacklinkcount": "отповикај $1 {{PLURAL:$1|уредување|уредувања}}",
        "rollbacklinkcount-morethan": "отповикај повеќе од $1 {{PLURAL:$1|уредување|уредувања}}",
        "rollbackfailed": "Отповикувањето не успеа",
+       "rollback-missingparam": "Недостасуваат задолжителни параметри за барањето.",
        "cantrollback": "Уредувањето не може да се отповика.\nПоследниот уредник е воедно и единствениот автор на страницата.",
        "alreadyrolled": "Не може да се отповика последното уредување на страницата „[[:$1]]“ извршено од  [[User:$2|$2]] ([[User talk:$2|разговор]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]);\nнекој друг веќе ја изменил или отповикал страницата.\n\nПоследното уредување го изврши [[User:$3|$3]] ([[User talk:$3|разговор]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
        "editcomment": "Коментарот на уредувањето беше: <em>$1</em>.",
        "revertpage": "Отстрането уредувањето на [[Special:Contributions/$2|$2]] ([[User talk:$2|разговор]]), вратено на последната верзија на [[User:$1|$1]]",
        "revertpage-nouser": "Вратени уредувања од скриен корисник на последната преработка на {{GENDER:$1|[[User:$1|$1]]}}",
        "rollback-success": "Откажани уредувањата на $1; вратено на последната верзија на $2.",
+       "rollback-success-notify": "Откажани уредувањата на $1;\nвратено на последната преработка на $2. [$3 Пок. промени]",
        "sessionfailure-title": "Седницата не успеа",
        "sessionfailure": "Има проблем со вашата седница;\nоваа дејство е откажано како превентива против преземање седници.\nПритиснете го копчето „назад“ и повторно вчитајте ја страницата од која дојдовте и обидете се повторно.",
        "changecontentmodel": "Промена на содржинскиот модел на страница",
        "sp-contributions-username": "IP-адреса или корисничко име:",
        "sp-contributions-toponly": "Прикажувај само последни преработки",
        "sp-contributions-newonly": "Прикажувај само новосоздадени страници",
+       "sp-contributions-hideminor": "Скриј ситни промени",
        "sp-contributions-submit": "Пребарај",
        "whatlinkshere": "Што води овде",
        "whatlinkshere-title": "Страници со врски што водат до „$1“",
        "allmessagesname": "Име",
        "allmessagesdefault": "Текст по основно",
        "allmessagescurrent": "Сегашен текст",
-       "allmessagestext": "Ова е список на системските пораки расположиви за именскиот простор „МедијаВики“.\nОдете на [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Превод на МедијаВики] и [//translatewiki.net translatewiki.net] ако сакате да придонесете кон општото преведување на МедијаВики.",
+       "allmessagestext": "Ова е список на системските пораки расположиви за именскиот простор „МедијаВики“.\nОдете на [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Превод на МедијаВики] и [https://translatewiki.net translatewiki.net] ако сакате да придонесете кон општото преведување на МедијаВики.",
        "allmessagesnotsupportedDB": "Оваа страница не може да се користи бидејќи '''$wgUseDatabaseMessages''' е исклучено.",
        "allmessages-filter-legend": "Филтер",
        "allmessages-filter": "Филтрирај по состојба на прилагодувањето:",
        "import-nonewrevisions": "Не увезов ниедна преработка (сите се веќе присутни или изоставени поради грешки)",
        "xml-error-string": "$1 во ред $2, колона $3 (бајт $4): $5",
        "import-upload": "Подигни XML податоци",
-       "import-token-mismatch": "Загубени на податоците од седницата. Обидете се повторно.",
+       "import-token-mismatch": "Загубени седничките податоци.\n\nМоже да сте биле одјавени. <strong>Проверете дали сè уште сте најавени и обидете се повторно</strong>.\nАко проблемот продолжи да се јавува, [[Special:UserLogout|одјавете се]] и повторно најавете се, и проверете дали прелистувачот дозволува колачиња од ова мрежно место.",
        "import-invalid-interwiki": "Не можам да увезам од наведеното вики.",
        "import-error-edit": "Страницата „$1“ не е увезена бидејќи не ви е дозволено да ја уредувате.",
        "import-error-create": "Страницата „$1“ не е увезена бидејќи не ви е дозволено да ја создадете.",
        "tooltip-ca-nstab-category": "Преглед на категоријата",
        "tooltip-minoredit": "Обележи ја промената како ситна",
        "tooltip-save": "Зачувајте ги промените",
+       "tooltip-publish": "Објавете ги вашите промени",
        "tooltip-preview": "Преглед на промените - ве молиме користете го ова пред зачувување!",
        "tooltip-diff": "Покажи кои промени ги направи во текстот.",
        "tooltip-compareselectedversions": "Видете ја разликата помеѓу двете избрани верзии на оваа страница.",
        "confirmemail_body_set": "Некој, веројатно Вие, од IP-адресата $1,\nна {{SITENAME}} ја внел оваа е-поштенска адреса на сметката „$2“.\n\nЗа да потврдите дека оваа адреса навистина Ви припаѓа Вам и за да ги вклучите\nможностите за е-пошта на {{SITENAME}}, отворете ја следнава врска во прелистувачот:\n\n$3\n\nАко сметката *не* е Ваша, проследете ја следнава врска\nза да ја откажете потврдата:\n\n$5\n\nОвој потврден код истекува во $4.",
        "confirmemail_invalidated": "Потврдата на е-поштенската адреса е откажана",
        "invalidateemail": "Откажување на потврда на е-пошта",
+       "notificationemail_subject_changed": "Е-поштата регистрирана на {{SITENAME}} е сменета",
+       "notificationemail_subject_removed": "Е-поштата регистрирана на {{SITENAME}} е отстранета",
+       "notificationemail_body_changed": "Некој, веројатно вие, од IP-адресата $1,\nја сменил е-поштата на сметката „$2“ на {{SITENAME}} во „$3“.\n\nАко ова не сте вие, веднаш обратете се кај администратор.",
+       "notificationemail_body_removed": "Некој, веројатно вие, од IP-адресата $1,\nја отстранил е-поштата на сметката „$2“ на {{SITENAME}}.\n\nАко ова не сте вие, веднаш обратете се кај администратор.",
        "scarytranscludedisabled": "[Превметнувањето помеѓу викијата е оневозможено]",
        "scarytranscludefailed": "[Преземањето на шаблонот за $1 не успеа]",
        "scarytranscludefailed-httpstatus": "[Преземањето на шаблонот не успеа за $1: HTTP $2]",
        "scarytranscludetoolong": "[Премногу долго URL]",
        "deletedwhileediting": "'''Предупредување''': Оваа страница беше избришана откако почнавте со нејзино уредување!",
-       "confirmrecreate": "Корисникот [[User:$1|$1]] ([[User talk:$1|разговор]]) ја избриша оваа страница откако вие почнавте со уредување заради:\n: ''$2''\nПотврдете дека навистина сакате повторно да ја создадете оваа страница.",
-       "confirmrecreate-noreason": "Корисникот [[User:$1|$1]] ([[User talk:$1|разговор]]) ја избриша страницава откако почнавте да ја уредувате.  Потврдете деак навистина сакате да ја пресоздадете страницата.",
+       "confirmrecreate": "Корисникот [[User:$1|$1]] ([[User talk:$1|разговор]]) {{GENDER:$1|ја избриша}} страницава откако вие почнавте со уредување, со причината:\n: ''$2''\nПотврдете дека навистина сакате да ја пресоздадете страницата.",
+       "confirmrecreate-noreason": "Корисникот [[User:$1|$1]] ([[User talk:$1|разговор]]) {{GENDER:$1|ја избриша}} страницава откако почнавте да ја уредувате.  Потврдете дека навистина сакате да ја пресоздадете страницата.",
        "recreate": "Пресоздај",
        "unit-pixel": "п",
        "confirm_purge_button": "OK",
        "confirm-watch-top": "Да ја додадам страницава во набљудуваните?",
        "confirm-unwatch-button": "ОК",
        "confirm-unwatch-top": "Да ја отстранам страницава од набљудуваните?",
+       "confirm-rollback-button": "ОК",
+       "confirm-rollback-top": "Да ги отповикам уредувањата на страницава?",
        "percent": "$1&#160;%",
        "quotation-marks": "„$1“",
        "imgmultipageprev": "&larr; претходна страница",
        "watchlistedit-raw-done": "Вашиот список на набљудувања е подновен.",
        "watchlistedit-raw-added": "{{PLURAL:$1|1 наслов беше|$1 наслови беа}} додадени:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|Избришан е еден наслов|Избришани се $1 наслови}}:",
-       "watchlistedit-clear-title": "Ð\98Ñ\81Ñ\87иÑ\81Ñ\82ени Ð½Ð°Ð±Ñ\99Ñ\83дÑ\83ваниÑ\82е",
+       "watchlistedit-clear-title": "Ð\98Ñ\81Ñ\87иÑ\81Ñ\82и Ð½Ð°Ð±Ñ\99Ñ\83дÑ\83вани",
        "watchlistedit-clear-legend": "Исчисти набљудувани",
        "watchlistedit-clear-explain": "Сите наслови ќе бидат отстранети од набљудуваните",
        "watchlistedit-clear-titles": "Наслови:",
        "timezone-local": "Месно",
        "duplicate-defaultsort": "Предупредување: Основниот клуч за подредување „$2“ го поништува претходниот основен клуч за подредување „$1“.",
        "duplicate-displaytitle": "<strong>Предупредување:</strong> Приказниот наслов „$2“ го заменува претходнито приказен наслов „$1“.",
+       "restricted-displaytitle": "<strong>Предупредување:</strong> Насловот за приказ „$1“ е занемарен бидејќи не е истоветен на стварниот наслов на страницата.",
        "invalid-indicator-name": "<strong>Грешка:</strong> Атрибутот <code>name</code> што го покажува статусот на страницата не може да биде празен.",
        "version": "Верзија",
        "version-extensions": "Воспоставени додатоци",
        "version-skins": "Воспоставени рува",
        "version-specialpages": "Службени страници",
-       "version-parserhooks": "РаÑ\81Ñ\87ленÑ\83ваÑ\87ки ÐºÑ\83ки",
+       "version-parserhooks": "РаÑ\81Ñ\87ленÑ\83ваÑ\87ки Ð¿Ñ\80еÑ\81Ñ\80еÑ\82ниÑ\86и",
        "version-variables": "Променливи",
        "version-antispam": "Спречување на спам",
        "version-api": "Извршници",
        "version-other": "Друго",
        "version-mediahandlers": "Ракувачи со мултимедијални содржини",
-       "version-hooks": "Ð\9aÑ\83ки",
+       "version-hooks": "Ð\9fÑ\80еÑ\81Ñ\80еÑ\82ник",
        "version-parser-extensiontags": "Ознаки за расчленувачки додатоци",
-       "version-parser-function-hooks": "Ð\9aÑ\83ки на расчленувачки функции",
-       "version-hook-name": "Ð\98ме Ð½Ð° ÐºÑ\83ка",
+       "version-parser-function-hooks": "Ð\9fÑ\80еÑ\81Ñ\80еÑ\82ниÑ\86и на расчленувачки функции",
+       "version-hook-name": "Ð\9dазив Ð½Ð° Ð¿Ñ\80еÑ\81Ñ\80еÑ\82никоÑ\82",
        "version-hook-subscribedby": "Претплатено од",
        "version-version": "($1)",
        "version-no-ext-name": "[нема име]",
        "version-libraries-license": "Лиценца",
        "version-libraries-description": "Опис",
        "version-libraries-authors": "Автори",
-       "redirect": "Ð\9fÑ\80енаÑ\81оÑ\87Ñ\83ваÑ\9aе Ð¿Ð¾ Ð¿Ð¾Ð´Ð°Ñ\82оÑ\82еки, ÐºÐ¾Ñ\80иÑ\81ник Ð¸Ð»Ð¸ Ð½Ð°Ð·Ð½Ð°ÐºÐ° Ð½Ð° Ð¿Ñ\80еÑ\80абоÑ\82ка",
-       "redirect-summary": "Оваа службена страница пренасочува кон податотека (се задава името), страница (се задава назнаката на преработката или страницата) или корисничка странца (се задава бројчената назнака на корисникот). Употреба: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/revision/328429]] или [[{{#Special:Redirect}}/user/101]].",
+       "redirect": "Ð\9fÑ\80енаÑ\81оÑ\87Ñ\83ваÑ\9aе Ð¿Ð¾ Ð¿Ð¾Ð´Ð°Ñ\82оÑ\82ека, Ñ\81Ñ\82Ñ\80аниÑ\86а, Ð¿Ñ\80еÑ\80абоÑ\82ка Ð¸Ð»Ð¸ Ð½Ð°Ð·Ð½Ð°ÐºÐ° Ð²Ð¾ Ð´Ð½ÐµÐ²Ð½Ð¸ÐºÐ¾Ñ\82",
+       "redirect-summary": "Оваа службена страница пренасочува кон податотека (се задава името), страница (се задава назнаката на преработката или страницата), корисничка странца (се задава бројчената назнака на корисникот) или дневнички запис (се дава назнака на записот). Употреба: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/revision/328429]],  [[{{#Special:Redirect}}/user/101]] или [[{{#Special:Redirect}}/logid/186]].",
        "redirect-submit": "Дај",
        "redirect-lookup": "Пребарај:",
        "redirect-value": "Вредност:",
        "tags-delete-not-allowed": "Ознаките зададени од додаток не можат да се бришат освен ако тоа не е изрично дозволено од додатокот.",
        "tags-delete-not-found": "Ознаката „$1“ не постои.",
        "tags-delete-too-many-uses": "Ознаката „$1“ се применува во повеќе од {{PLURAL:$2|една преработка|$2 преработки}}, што значи дека не може да се избрише.",
-       "tags-delete-warnings-after-delete": "Ознаката „$1“ е успешно избришана, но наидов на {{PLURAL:$2|следново предупредување|следниве предупредувања}}:",
+       "tags-delete-warnings-after-delete": "Ознаката „$1“ е избришана, но наидов на {{PLURAL:$2|следново предупредување|следниве предупредувања}}:",
+       "tags-delete-no-permission": "Немате дозвола за бришење на ознаки за промени.",
        "tags-activate-title": "Активирај ознака",
        "tags-activate-question": "На пат сте да ја активирате ознаката „$1“.",
        "tags-activate-reason": "Причина:",
        "feedback-useragent": "Кориснички вршител:",
        "searchsuggest-search": "Пребарување",
        "searchsuggest-containing": "содржи...",
+       "api-error-autoblocked": "Вашата IP-адреса е автоматски блокирана бидејќи ја има користено блокиран корисник.",
        "api-error-badaccess-groups": "Не ви е дозволено да подигате податотеки на ова вики.",
        "api-error-badtoken": "Внатрешна грешка: неисправна шифра.",
+       "api-error-blocked": "Блокирани сте од уредување.",
        "api-error-copyuploaddisabled": "Подигањата со URL се оневозможени на овој опслужувач.",
        "api-error-duplicate": "Веќе {{PLURAL:$1|постои друга податотека|постојат други податотеки}} со истата содржина.",
        "api-error-duplicate-archive": "На мрежното место веќе {{PLURAL:$1|постоела друга податотека|постоеле други податотеки}} со истата содржина, но во меѓувреме {{PLURAL:$1|била избришана|биле избришани}}.",
        "api-error-filetype-banned": "Овој тип на податотека е забранет.",
        "api-error-filetype-banned-type": "$1 не {{PLURAL:$4|е допуштен тип на податотека|се допуштени типови на податотека}}. {{PLURAL:$3|Допуштен е|Допуштени се}} $2.",
        "api-error-filetype-missing": "На податотеката ѝ недостасува наставка.",
-       "api-error-hookaborted": "Ð\98зменаÑ\82а Ñ\88Ñ\82о Ñ\81е Ð¾Ð±Ð¸Ð´Ð¾Ð²Ñ\82е Ð´Ð° Ñ\98а Ð½Ð°Ð¿Ñ\80авиÑ\82е Ðµ Ð¾Ñ\82кажана Ð¾Ð´ ÐºÑ\83ка за наставки.",
+       "api-error-hookaborted": "Ð\98зменаÑ\82а Ñ\88Ñ\82о Ñ\81е Ð¾Ð±Ð¸Ð´Ð¾Ð²Ñ\82е Ð´Ð° Ñ\98а Ð½Ð°Ð¿Ñ\80авиÑ\82е Ðµ Ð¾Ñ\82кажана Ð¾Ð´ Ð¿Ñ\80еÑ\81Ñ\80еÑ\82ник за наставки.",
        "api-error-http": "Внатрешна грешка: не можам да се поврзам со опслужувачот.",
        "api-error-illegal-filename": "Податотеката има недозволено име.",
        "api-error-internal-error": "Внатрешна грешка: нешто тргна наопаку при обработката на она што го подигате на викито.",
        "api-error-nomodule": "Внатрешна грешка: нема зададено модул за подигање.",
        "api-error-ok-but-empty": "Внатрешна грешка: опслужувачот не одговара.",
        "api-error-overwrite": "Презапишувањето врз постоечки податотеки не е дозволено.",
+       "api-error-ratelimited": "Се обидувате да подигнете повеќе податотеки отколку што викито допушта за дадено време.\nОбидете се повторно за неколку минути.",
        "api-error-stashfailed": "Внатрешна грешка: Опслужувачот не успеа да ја складира привремената податотека.",
        "api-error-publishfailed": "Внатрешна грешка: Опслужувачот не успеа да ја објави привремената податотека.",
        "api-error-stasherror": "Се јави грешка при подигањето на податотеката во складот.",
        "api-error-unknownerror": "Непозната грешка: „$1“.",
        "api-error-uploaddisabled": "Подигањето е оневозможено на ова вики.",
        "api-error-verification-error": "Податотеката е оштетена или има погрешна наставка.",
+       "api-error-was-deleted": "Податотека со ова име веќе е подигана и потоа избришана.",
        "duration-seconds": "{{PLURAL:$1|една секунда|$1 секунди}}",
        "duration-minutes": "{{PLURAL:$1|една минута|$1 минути}}",
        "duration-hours": "{{PLURAL:$1|еден час|$1 часа}}",
        "expand_templates_generate_xml": "Прикажи XML-дрво на расчленувањето",
        "expand_templates_generate_rawhtml": "Прикажувај сиров HTML",
        "expand_templates_preview": "Преглед",
-       "expand_templates_preview_fail_html": "<em>Бидејќи {{SITENAME}} има овозможено сиров HTML и се јави губиток на седнички податоци, прегледот е скриен како мерка на претпазливост против напади со JavaScript.</em>\n\n<strong>Ако ова е е легитимен обид за преглед, тогаш обидете се повторно.</strong>\nАко не работи и тогаш, [[Special:UserLogout|одјавете се]] и повторно најавете се.",
+       "expand_templates_preview_fail_html": "<em>Бидејќи {{SITENAME}} има овозможено сиров HTML и се јави губиток на седнички податоци, прегледот е скриен како мерка на претпазливост против напади со JavaScript.</em>\n\n<strong>Ако ова е е легитимен обид за преглед, тогаш обидете се повторно.</strong>\nАко не работи и тогаш, [[Special:UserLogout|одјавете се]] и повторно најавете се и проверете дали прелистувачот дозволува колачиња од ова мрежно место.",
        "expand_templates_preview_fail_html_anon": "<em>Бидејќи {{SITENAME}} има овозможено сиров HTML, а вие не сте најавени, прегледот е скриен како мерка на претпазливост против напади со JavaScript.</em>\n\n<strong>Ако ова е е легитимен обид за преглед, тогаш обидете се повторно.</strong>\nАко не работи и тогаш, [[Special:UserLogout|одјавете се]] и повторно најавете се.",
        "expand_templates_input_missing": "Треба да внесете некаков текст.",
        "pagelanguage": "Менување јазик на страница",
        "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": "Арапски-проширено",
        "mw-widgets-dateinput-placeholder-month": "ГГГГ-ММ",
        "mw-widgets-titleinput-description-new-page": "страницата сè уште не постои",
        "mw-widgets-titleinput-description-redirect": "пренасочување кон $1",
-       "api-error-blacklisted": "Одберете поинаков, описен наслов.",
+       "sessionmanager-tie": "Не можете истовремено да користите повеќе типови барања за заверка: $1.",
        "sessionprovider-generic": "$1 седници",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "седници со колачиња",
-       "randomrootpage": "Случајна основна страница"
+       "sessionprovider-nocookies": "Колачињата може да се оневозможени. Ако е така, овозможете ги, и почнете одново.",
+       "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-restore": "Повраток на страница",
+       "log-action-filter-delete-event": "Бришење на дневник",
+       "log-action-filter-delete-revision": "Бришење на преработка",
+       "log-action-filter-import-interwiki": "Прекувики-увоз",
+       "log-action-filter-import-upload": "Увоз со подигање XML",
+       "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-suppress-revision": "Притајување преработка",
+       "log-action-filter-suppress-delete": "Притајување страница",
+       "log-action-filter-suppress-block": "Притајување на корисникот преку блокирање",
+       "log-action-filter-suppress-reblock": "Притајување на корисникот преку преблокирање",
+       "log-action-filter-upload-upload": "Ново подигање",
+       "log-action-filter-upload-overwrite": "Преподигање",
+       "authmanager-authn-not-in-progress": "Заверката не е во тек, или има губиток на седничките податоци. Почнете одново.",
+       "authmanager-authn-no-primary": "Укажаните најавни податоци не можат да се заверат.",
+       "authmanager-authn-no-local-user": "Укажаните најавни податоци не се поврзани со ниеден корисник на ова вики.",
+       "authmanager-authn-no-local-user-link": "Укажаните најавни податоци се важечки, но не се поврзани со ниеден корисник на ова вики. Најавете се на поинаков начин, или создајте нов корисник, што ќе ви даде можност да ги сврзете вашите претходни најавни податоци со таа сметка.",
+       "authmanager-authn-autocreate-failed": "Автоматското создавање на месна сметка не успеа: $1",
+       "authmanager-change-not-supported": "Укажаните најавни податоци не можат да се изменат, бидејќи тогаш ништо нема да ги користи.",
+       "authmanager-create-disabled": "Создавањето на сметки е оневозможено.",
+       "authmanager-create-from-login": "За да направите сметка, пополнете ги полињата подолу.",
+       "authmanager-create-not-in-progress": "Создавањето на сметката не е во тек, или има губиток на седничките податоци. Почнете одново.",
+       "authmanager-create-no-primary": "Укажаните најавни податоци не можат да се употребат во создавање на сметка.",
+       "authmanager-link-no-primary": "Укажаните најавни податоци не можат да се употребат во поврзување на сметка.",
+       "authmanager-link-not-in-progress": "Поврзувањето на сметката не е во тек, или има губиток на седничките податоци. Почнете одново.",
+       "authmanager-authplugin-setpass-failed-title": "Промената на лозинката не успеа",
+       "authmanager-authplugin-setpass-failed-message": "Приклучокот за заверка ја одби промената на лозинката.",
+       "authmanager-authplugin-create-fail": "Приклучокот за заверка го одби создавањето на сметката.",
+       "authmanager-authplugin-setpass-denied": "Приклучокот за заверка не допушта менување на лозинки.",
+       "authmanager-authplugin-setpass-bad-domain": "Неважечки домен.",
+       "authmanager-autocreate-noperm": "Автоматското создавање на сметки не е дозволено.",
+       "authmanager-autocreate-exception": "Автоматското создавање на сметки е привремено оневозможено поради претходни грешки.",
+       "authmanager-userdoesnotexist": "Корисничката сметка „$1“ не е регистрирана.",
+       "authmanager-userlogin-remembermypassword-help": "Дали лозинката да биде запаметена подолго од траењето на седницата.",
+       "authmanager-username-help": "Корисничко име за заверка.",
+       "authmanager-password-help": "Лозинка за заверка.",
+       "authmanager-domain-help": "Домен за надворешна заверка.",
+       "authmanager-retype-help": "Повторно лозинката (за потврда).",
+       "authmanager-email-label": "Е-пошта",
+       "authmanager-email-help": "Е-пошта:",
+       "authmanager-realname-label": "Вистинско име",
+       "authmanager-realname-help": "Вистинско име на корисникот",
+       "authmanager-provider-password": "Заверка со лозинка",
+       "authmanager-provider-password-domain": "Заверка со лозинка и домен",
+       "authmanager-provider-temporarypassword": "Привремена лозинка",
+       "authprovider-confirmlink-message": "Врз основа на неодамнешните обиди за најава, со вашата сметка можат да се поврзат следниве сметки. Поврзувањето ќе ви овозможи да се најавувате со овие сметки. Изберете кои од нив сакате да ги поврзете.",
+       "authprovider-confirmlink-request-label": "Сметки кои треба да се поврзат",
+       "authprovider-confirmlink-success-line": "$1: Успешно поврзано.",
+       "authprovider-confirmlink-failed": "Поврзувањето на сметката не е целосно успешно: $1",
+       "authprovider-confirmlink-ok-help": "Продолжи да прикажуваш пораки за неуспешно поврзување.",
+       "authprovider-resetpass-skip-label": "Прескокни",
+       "authprovider-resetpass-skip-help": "Прескокни го задавањето на нова лозинка.",
+       "authform-nosession-login": "Заверката е успешна, но вашиот прелистувач не може да „запомни“ дека сте најавени.\n\n$1",
+       "authform-nosession-signup": "Сметката е создадена, но вашиот прелистувач не може да „запомни“ дека сте најавени.\n\n$1",
+       "authform-newtoken": "Недостасува шифра. $1",
+       "authform-notoken": "Недостасува шифра",
+       "authform-wrongtoken": "Погрешна шифра",
+       "specialpage-securitylevel-not-allowed-title": "Не е дозволено",
+       "specialpage-securitylevel-not-allowed": "За жал, не ви е дозволено да ја користите страницава бидејќи вашиот идентитет не може да се потврди (завери).",
+       "authpage-cannot-login": "Не можам да ја почнам најавата.",
+       "authpage-cannot-login-continue": "Не можам да продолжам со најавата. Најверојатно вашата седница има истечено.",
+       "authpage-cannot-create": "Не можам да го започнам создавањето на сметката.",
+       "authpage-cannot-create-continue": "Не можам да продолжам со создавањето на сметката. Најверојатно вашата седница има истечено.",
+       "authpage-cannot-link": "Не можам да почнам со поврзување на сметката.",
+       "authpage-cannot-link-continue": "Не можам да продолжам со поврзувањето на сметката. Најверојатно вашата седница има истечено.",
+       "cannotauth-not-allowed-title": "Пристапот е одбиен",
+       "cannotauth-not-allowed": "Не ви е дозволено да ја користите страницава",
+       "changecredentials": "Смени најавни податоци",
+       "changecredentials-submit": "Смени најавни податоци",
+       "changecredentials-invalidsubpage": "$1 не претставува важечки тип на најавни податоци.",
+       "changecredentials-success": "Вашите најавни податоци се сменети.",
+       "removecredentials": "Отстрани најавни податоци",
+       "removecredentials-submit": "Отстрани најавни податоци",
+       "removecredentials-invalidsubpage": "$1 не претставува важечки тип на најавни податоци.",
+       "removecredentials-success": "Вашите најавни податоци се отстранети.",
+       "credentialsform-provider": "Тип на најавни податоци:",
+       "credentialsform-account": "Име на сметката:",
+       "cannotlink-no-provider-title": "Нема поврзливи сметки",
+       "cannotlink-no-provider": "Нема поврзливи сметки.",
+       "linkaccounts": "Поврзи сметки",
+       "linkaccounts-success-text": "Сметката е поврзана.",
+       "linkaccounts-submit": "Поврзи сметки",
+       "unlinkaccounts": "Одврзи сметки",
+       "unlinkaccounts-success": "Сметката е одврзана.",
+       "authenticationdatachange-ignored": "Промената на податоците во заверката не е обработена. Можеби не е поставен услужник?"
 }
index 0ec3c1b..5d9c024 100644 (file)
        "protectedpagetext": "ഈ താൾ തിരുത്തോ മറ്റു പ്രവൃത്തികളോ തടയാനാകും വിധം സംരക്ഷിക്കപ്പെട്ടിട്ടുള്ളതാണ്.",
        "viewsourcetext": "താങ്കൾക്ക് ഈ താളിന്റെ മൂലരൂപം കാണാനും പകർത്താനും സാധിക്കും.",
        "viewyourtext": "താങ്കൾക്ക് ഈ താളിലെ <strong>താങ്കളുടെ തിരുത്തുകളുടെ</strong> മൂലരൂപം കാണാനും പകർത്താനും സാധിക്കും.",
-       "protectedinterface": "ഈ താൾ ഈ വിക്കിയുടെ സോഫ്റ്റ്‌വെയറിന്റെ സമ്പർക്കമുഖ എഴുത്തുകൾ നൽകുന്നു, അതുകൊണ്ട് ദുരുപയോഗം തടയാൻ ബന്ധിക്കപ്പെട്ടിരിക്കുന്നു. എല്ലാ വിക്കികൾക്കുമായി പരിഭാഷ കൂട്ടിച്ചേർക്കാനോ, പരിഭാഷയിൽ മാറ്റം വരുത്താനോ, ദയവായി മീഡിയവിക്കി പ്രാദേശീകരണ പദ്ധതിയായ [//translatewiki.net/ translatewiki.net] ഉപയോഗിക്കുക.",
+       "protectedinterface": "ഈ താൾ ഈ വിക്കിയുടെ സോഫ്റ്റ്‌വെയറിന്റെ സമ്പർക്കമുഖ എഴുത്തുകൾ നൽകുന്നു, അതുകൊണ്ട് ദുരുപയോഗം തടയാൻ ബന്ധിക്കപ്പെട്ടിരിക്കുന്നു. എല്ലാ വിക്കികൾക്കുമായി പരിഭാഷ കൂട്ടിച്ചേർക്കാനോ, പരിഭാഷയിൽ മാറ്റം വരുത്താനോ, ദയവായി മീഡിയവിക്കി പ്രാദേശീകരണ പദ്ധതിയായ [https://translatewiki.net/ translatewiki.net] ഉപയോഗിക്കുക.",
        "editinginterface": "<strong>മുന്നറിയിപ്പ്:<strong> സോഫ്റ്റ്‌വെയറിൽ സമ്പർക്കമുഖം നിലനിർത്തുന്ന താളാണു താങ്കൾ തിരുത്തുവാൻ പോകുന്നത്.\nഈ താളിൽ താങ്കൾ വരുത്തുന്ന മാറ്റങ്ങൾ ഉപയോക്താക്കൾ വിക്കി കാണുന്ന വിധത്തെ മാറ്റിമറിച്ചേക്കാം.",
-       "translateinterface": "എല്ലാ വിക്കികൾക്കും ഉപയോഗിക്കാനാവുംവിധം പരിഭാഷകൾ കൂട്ടിച്ചേർക്കാനും മാറ്റംവരുത്താനും മീഡിയവിക്കി സന്ദേശങ്ങളുടെ പ്രാദേശികവത്കരണ പദ്ധതിയായ [//translatewiki.net/ translatewiki.net] ഉപയോഗിക്കുവാൻ താല്പര്യപ്പെടുന്നു.",
+       "translateinterface": "എല്ലാ വിക്കികൾക്കും ഉപയോഗിക്കാനാവുംവിധം പരിഭാഷകൾ കൂട്ടിച്ചേർക്കാനും മാറ്റംവരുത്താനും മീഡിയവിക്കി സന്ദേശങ്ങളുടെ പ്രാദേശികവത്കരണ പദ്ധതിയായ [https://translatewiki.net/ translatewiki.net] ഉപയോഗിക്കുവാൻ താല്പര്യപ്പെടുന്നു.",
        "cascadeprotected": "\"നിർഝരിത\" (cascading) സൗകര്യം ഉപയോഗിച്ച് തിരുത്തൽ നടത്തുന്നതിനു സം‌രക്ഷണം ഏർപ്പെടുത്തിയിട്ടുള്ള {{PLURAL:$1|താഴെ കൊടുത്തിട്ടുള്ള താളിന്റെ|താഴെ കൊടുത്തിട്ടുള്ള താളുകളുടെ}} ഭാഗമാണ്‌ ഈ താൾ. അതിനാൽ ഈ താൾ തിരുത്താൻ സാധിക്കില്ല:\n$2",
        "namespaceprotected": "'''$1''' നാമമേഖലയിലുള്ള താളുകൾ തിരുത്താൻ താങ്കൾക്ക് അനുവാദമില്ല.",
        "customcssprotected": "ഈ സി.എസ്.എസ്. താളിൽ മറ്റൊരു ഉപയോക്താവിന്റെ സ്വകാര്യസജ്ജീകരണങ്ങൾ ഉൾക്കൊള്ളുന്നു, അതിനാൽ താങ്കൾക്ക് ഈ താൾ തിരുത്താൻ അനുവാദമില്ല.",
        "resetpass-temp-password": "താത്കാലിക രഹസ്യവാക്ക്:",
        "resetpass-abort-generic": "രഹസ്യവാക്ക് മാറ്റുന്നത് ഒരു അനുബന്ധം തടഞ്ഞിരിക്കുന്നു.",
        "resetpass-expired": "താങ്കളുടെ രഹസ്യവാക്ക് കാലഹരണപ്പെട്ടിരിക്കുന്നു. പ്രവേശിക്കാനായി പുതിയ രഹസ്യവാക്ക് സജ്ജമാക്കുക.",
-       "resetpass-expired-soft": "താങ്കളുടെ രഹസ്യവാക്ക് കാലഹരണപ്പെട്ടിരിക്കുന്നതിനാൽ പുനഃസജ്ജീകരിക്കേണ്ടതുണ്ട്. ഇപ്പോൾ തന്നെ പുതിയ രഹസ്യവാക്ക് തിരഞ്ഞെടുക്കുക അല്ലെങ്കിൽ പിന്നീട് പുനഃസജ്ജീകരിക്കാനായി \"{{int:resetpass-submit-cancel}}\" ഞെക്കുക.",
-       "resetpass-validity-soft": "താങ്കളുടെ രഹസ്യവാക്ക് സാധുതയുള്ളതല്ല: $1\n\nദയവായി പുതിയൊരു രഹസ്യവാക്ക് ഇപ്പോൾ തന്നെ തിരഞ്ഞെടുക്കുക അല്ലെങ്കിൽ പിന്നീട് പുനഃസജ്ജീകരിക്കുന്നതിനായി \"{{int:resetpass-submit-cancel}}\" ഞെക്കുക.",
+       "resetpass-expired-soft": "താങ്കളുടെ രഹസ്യവാക്ക് കാലഹരണപ്പെട്ടിരിക്കുന്നതിനാൽ പുനഃസജ്ജീകരിക്കേണ്ടതുണ്ട്. ഇപ്പോൾ തന്നെ പുതിയ രഹസ്യവാക്ക് തിരഞ്ഞെടുക്കുക അല്ലെങ്കിൽ പിന്നീട് പുനഃസജ്ജീകരിക്കാനായി \"{{int:authprovider-resetpass-skip-label}}\" ഞെക്കുക.",
+       "resetpass-validity-soft": "താങ്കളുടെ രഹസ്യവാക്ക് സാധുതയുള്ളതല്ല: $1\n\nദയവായി പുതിയൊരു രഹസ്യവാക്ക് ഇപ്പോൾ തന്നെ തിരഞ്ഞെടുക്കുക അല്ലെങ്കിൽ പിന്നീട് പുനഃസജ്ജീകരിക്കുന്നതിനായി \"{{int:authprovider-resetpass-skip-label}}\" ഞെക്കുക.",
        "passwordreset": "രഹസ്യവാക്ക് പുനഃക്രമീകരിക്കുക",
        "passwordreset-text-one": "രഹസ്യവാക്ക് പുനർസജ്ജീകരിക്കാനായി ഈ ഫോം പൂരിപ്പിക്കുക.",
        "passwordreset-text-many": "{{PLURAL:$1|ഇമെയിൽ വഴി താത്കാലിക രഹസ്യവാക്ക് ലഭിക്കാനായി താഴെ നൽകിയിരിക്കുന്നവയിൽ ഏതെങ്കിലുമൊന്ന് പൂരിപ്പിച്ചു നൽകുക.}}",
        "apihelp-no-such-module": "ഘടകം \"$1\" കണ്ടെത്താനായില്ല.",
        "apisandbox": "എ.പി.ഐ. എഴുത്തുകളരി",
        "apisandbox-api-disabled": "ഈ സൈറ്റിൽ എ.പി.ഐ. പ്രവർത്തനരഹിതമാക്കിയിരിക്കുന്നു.",
-       "apisandbox-intro": "'''മീഡിയവിക്കി വെബ്‌ സെർവീസ് എ.പി.ഐ.'''യിൽ പരീക്ഷണങ്ങൾ നടത്താൻ ഈ താൾ ഉപയോഗിക്കുക.\nഎ.പി.ഐ.യുടെ ഉപയോഗത്തെക്കുറിച്ചുള്ള കൂടുതൽ വിവരങ്ങൾക്കായി [//www.mediawiki.org/wiki/API:Main_page the എ.പി.ഐ. സഹായം] പരിശോധിക്കുക. ഉദാഹരണം: [//www.mediawiki.org/wiki/API#A_simple_example പ്രധാന താളിന്റെ ഉള്ളടക്കം എടുക്കുക]. കൂടുതൽ ഉദാഹരണങ്ങൾക്കായി പ്രവൃത്തി തിരഞ്ഞെടുക്കുക.\n\nഇതൊരു പരീക്ഷണകളരിയാണെങ്കിലും ഇവിടെ ചെയ്യുന്നവ വിക്കിയിൽ മാറ്റങ്ങൾ വരുത്തിയേക്കാമെന്ന് ഓർക്കുക.",
+       "apisandbox-intro": "'''മീഡിയവിക്കി വെബ്‌ സെർവീസ് എ.പി.ഐ.'''യിൽ പരീക്ഷണങ്ങൾ നടത്താൻ ഈ താൾ ഉപയോഗിക്കുക.\nഎ.പി.ഐ.യുടെ ഉപയോഗത്തെക്കുറിച്ചുള്ള കൂടുതൽ വിവരങ്ങൾക്കായി [https://www.mediawiki.org/wiki/API:Main_page the എ.പി.ഐ. സഹായം] പരിശോധിക്കുക. ഉദാഹരണം: [https://www.mediawiki.org/wiki/API#A_simple_example പ്രധാന താളിന്റെ ഉള്ളടക്കം എടുക്കുക]. കൂടുതൽ ഉദാഹരണങ്ങൾക്കായി പ്രവൃത്തി തിരഞ്ഞെടുക്കുക.\n\nഇതൊരു പരീക്ഷണകളരിയാണെങ്കിലും ഇവിടെ ചെയ്യുന്നവ വിക്കിയിൽ മാറ്റങ്ങൾ വരുത്തിയേക്കാമെന്ന് ഓർക്കുക.",
        "apisandbox-submit": "അഭ്യർത്ഥിക്കുക",
        "apisandbox-reset": "ശൂന്യമാക്കുക",
        "apisandbox-examples": "ഉദാഹരണം",
        "allmessagesname": "പേര്‌",
        "allmessagesdefault": "സ്വതേയുള്ള ഉള്ളടക്കം",
        "allmessagescurrent": "നിലവിലുള്ള ഉള്ളടക്കം",
-       "allmessagestext": "ഇത് മീഡിയവിക്കി നാമമേഖലയിൽ ലഭ്യമായ വ്യവസ്ഥാസന്ദേശങ്ങളുടെ ഒരു പട്ടിക ആണ്‌.\nപ്രാമാണികമായ വിധത്തിൽ മീഡിയവിക്കിയുടെ പ്രാദേശീകരണം താങ്കൾ ഉദ്ദേശിക്കുന്നുവെങ്കിൽ ദയവായി [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation മീഡിയവിക്കി പ്രാദേശീകരണം], [//translatewiki.net പരിഭാഷാവിക്കി] തുടങ്ങിയവ സന്ദർശിക്കുക.",
+       "allmessagestext": "ഇത് മീഡിയവിക്കി നാമമേഖലയിൽ ലഭ്യമായ വ്യവസ്ഥാസന്ദേശങ്ങളുടെ ഒരു പട്ടിക ആണ്‌.\nപ്രാമാണികമായ വിധത്തിൽ മീഡിയവിക്കിയുടെ പ്രാദേശീകരണം താങ്കൾ ഉദ്ദേശിക്കുന്നുവെങ്കിൽ ദയവായി [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation മീഡിയവിക്കി പ്രാദേശീകരണം], [https://translatewiki.net പരിഭാഷാവിക്കി] തുടങ്ങിയവ സന്ദർശിക്കുക.",
        "allmessagesnotsupportedDB": "'''$wgUseDatabaseMessages''' ബന്ധിച്ചിരിക്കുന്നതു കാരണം ഈ താൾ ഉപയോഗിക്കുവാൻ സാദ്ധ്യമല്ല.",
        "allmessages-filter-legend": "അരിപ്പ",
        "allmessages-filter": "പുനഃക്രമീകരിച്ച ക്രമത്തിൽ തിരഞ്ഞുവെയ്ക്കുക:",
index 4c28ba3..b7fd888 100644 (file)
        "protectedpagetext": "Энэ хуудсыг засвар хийхээс хамгаалсан байна.",
        "viewsourcetext": "Та энэ хуудасны кодыг харах болон хуулж авах үйлдлийг хийх боломжтой:",
        "viewyourtext": "Та энэ хуудсан дахь '''өөрийн өөрчлөлтөө''' хуулбарлаж, харж болно",
-       "protectedinterface": "Энэ хуудас программын харагдах байдалд ашиглагддаг текстийг агуулдаг тул түгжигдсэн байна.\n[//translatewiki.net/ translatewiki.net] -аар орж викигийн орчуулгуудыг нэмэх, өөрчлөх үйлдлийг хийнэ.",
-       "editinginterface": "'''Анхаар''': Та программын харагдах байдалд ашиглагддаг текстийг агуулсан хуудсыг засварлах гэж байна.\nЭнэ хуудсанд өөрчлөлт оруулснаар бусад хэрэглэгчдийн программын харагдах байдалд нөлөөлөх болно.\nОрчуулга хийх гэж байгаа бол МедиаВикигийн орчуулгын төсөл болох, [//translatewiki.net/wiki/Main_Page?setlang=mn Бетавики]-г хэрэглэхийг санал болгож байна.",
-       "translateinterface": "Бүх wiki -нд орчуулах нэмэх, өөрчлөх тохиодолд [//translatewiki.net/ translatewiki.net] хэмээх MediaWiki -ын нутагшуулалтын төслийг ашигла.",
+       "protectedinterface": "Энэ хуудас программын харагдах байдалд ашиглагддаг текстийг агуулдаг тул түгжигдсэн байна.\n[https://translatewiki.net/ translatewiki.net] -аар орж викигийн орчуулгуудыг нэмэх, өөрчлөх үйлдлийг хийнэ.",
+       "editinginterface": "'''Анхаар''': Та программын харагдах байдалд ашиглагддаг текстийг агуулсан хуудсыг засварлах гэж байна.\nЭнэ хуудсанд өөрчлөлт оруулснаар бусад хэрэглэгчдийн программын харагдах байдалд нөлөөлөх болно.\nОрчуулга хийх гэж байгаа бол МедиаВикигийн орчуулгын төсөл болох, [https://translatewiki.net/wiki/Main_Page?setlang=mn Бетавики]-г хэрэглэхийг санал болгож байна.",
+       "translateinterface": "Бүх wiki -нд орчуулах нэмэх, өөрчлөх тохиодолд [https://translatewiki.net/ translatewiki.net] хэмээх MediaWiki -ын нутагшуулалтын төслийг ашигла.",
        "cascadeprotected": "Энэ хуудас нь давхар хамгаалалттай дараах {{PLURAL:$1|хуудсанд|хуудсуудад}} орсон тул засварлагдахаас хамгаалагдсан байна:\n$2",
        "namespaceprotected": "Таньд '''$1''' нэрний зай дахь хуудсуудыг засварлах зөвшөөрөл байхгүй байна.",
        "customcssprotected": "Энэхүү CSS хуудас өөр хэрэглэгчийн хувийн тохиргоог агуулдаг тул та засварлах эрхгүй.",
        "resetpass-temp-password": "Түр зуурын нууц үг:",
        "resetpass-abort-generic": "Хөтөчийн нэмэгдлээс болоод нууц үг солих цуцлагдлаа.",
        "resetpass-expired": "Нууц үгийн хугацаа дууссан байна. Шинэ нууц үг оруулж нэвтрэнэ үү.",
-       "resetpass-expired-soft": "Таны нууц үгийн хугацаа дууссан.\n\"{{int:resetpass-submit-cancel}}\" дээр дарж ресет хий, эсвэл шинэ нууц үг сонго.",
-       "resetpass-validity-soft": "$1 : нууц үг буруу байна\n\n\"{{int:resetpass-submit-cancel}}\" дээр дарж ресет хий, эсвэл шинэ нууц үг сонго.",
+       "resetpass-expired-soft": "Таны нууц үгийн хугацаа дууссан.\n\"{{int:authprovider-resetpass-skip-label}}\" дээр дарж ресет хий, эсвэл шинэ нууц үг сонго.",
+       "resetpass-validity-soft": "$1 : нууц үг буруу байна\n\n\"{{int:authprovider-resetpass-skip-label}}\" дээр дарж ресет хий, эсвэл шинэ нууц үг сонго.",
        "passwordreset": "Нууц үгийг сэргээх",
        "passwordreset-text-one": "Энэ формыг бөглөснөөр түр ашиглах нууц үгийг емайлруу илгээнэ.",
        "passwordreset-text-many": "{{PLURAL:$1|Энэ талбарыг бөглөж түр ашиглах нууц үгээ емайлээр авна.}}",
        "allmessagesname": "Нэр",
        "allmessagesdefault": "Анхны",
        "allmessagescurrent": "Одоогийн",
-       "allmessagestext": "Энэ бол МедиаВики дахь системийн мэдэгдлүүдийн жагсаалт юм.\nМедиаВикиг орчуулах тухай мэдээллийг [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation МедиаВикигийн орчуулга], мөн [//translatewiki.net translatewiki.net]-с авна уу.",
+       "allmessagestext": "Энэ бол МедиаВики дахь системийн мэдэгдлүүдийн жагсаалт юм.\nМедиаВикиг орчуулах тухай мэдээллийг [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation МедиаВикигийн орчуулга], мөн [https://translatewiki.net translatewiki.net]-с авна уу.",
        "allmessagesnotsupportedDB": "'''$wgUseDatabaseMessages''' нь унтарсан байгаа тул '''Special:Allmessages'''-г хэрэглэж болохгүй.",
        "allmessages-filter-legend": "Шүүлтүүр",
        "allmessages-filter": "Өөрийн болгосон байдлаар нь шүүх:",
index b2af24b..1714a3e 100644 (file)
        "protectedpagetext": "हे पान बदल अथवा इतर कृती होऊ नयेत म्हणून सुरक्षित केले आहे.",
        "viewsourcetext": "तुम्ही या पानाचा स्रोत पाहू व प्रत करू शकता.",
        "viewyourtext": "तुम्ही या पानाची,<strong>तुमची संपादने</strong> पाहू शकता व त्याची प्रत करू शकता.",
-       "protectedinterface": "हà¥\87 à¤ªà¤¾à¤¨ à¤¸à¥\89फà¥\8dà¤\9fवà¥\87à¤\85रला à¤\87à¤\82à¤\9fरफà¥\87स à¤²à¥\87à¤\96न à¤ªà¥\81रवतà¥\87, à¤®à¥\8dहणà¥\82न à¤¦à¥\81रà¥\82पयà¥\8bà¤\97 à¤\9fाळणà¥\8dयासाठà¥\80 à¤¸à¤\82रà¤\95à¥\8dषित à¤\95à¥\87लà¥\87लà¥\87 à¤\86हà¥\87.\n\nसरà¥\8dव à¤µà¤¿à¤\95िà¤\82वर, à¤\85नà¥\81वाद à¤\9cà¥\8bडणà¥\8dयाà¤\95रता à¤\95िà¤\82वा à¤¬à¤¦à¤²à¤£à¥\8dयाà¤\95रता à¤\85थवा à¤¶à¥\81दà¥\8dधलà¥\87à¤\96न à¤\9aिà¤\95ितà¥\8dसà¥\87à¤\95रà¥\80ता , à¤\95à¥\83पया [//translatewiki.net/ translatewiki.net], à¤¯à¤¾ à¤®à¤¿à¤¡à¤¿à¤¯à¤¾à¤µà¤¿à¤\95ि à¤¸à¥\8dथानिà¤\95à¥\80à¤\95रण à¤ªà¥\8dरà¤\95लà¥\8dपावर à¤\9cा.",
+       "protectedinterface": "हà¥\87 à¤ªà¤¾à¤¨ à¤¯à¤¾ à¤µà¤¿à¤\95िवर à¤¸à¤\82à¤\9aà¥\87तनास à¤\86à¤\82तरपà¥\83षà¥\8dठ à¤®à¤\9cà¤\95à¥\82र à¤ªà¥\81रवितà¥\87, à¤®à¥\8dहणà¥\82न à¤¦à¥\81रà¥\82पयà¥\8bà¤\97 à¤\9fाळणà¥\8dयासाठà¥\80 à¤¤à¥\87 à¤¸à¤\82रà¤\95à¥\8dषित à¤\95à¥\87लà¥\87लà¥\87 à¤\86हà¥\87.\n\nसरà¥\8dव à¤µà¤¿à¤\95िà¤\82वर, à¤\85नà¥\81वाद à¤\9cà¥\8bडणà¥\8dयाà¤\95रता à¤\95िà¤\82वा à¤¬à¤¦à¤²à¤£à¥\8dयाà¤\95रता à¤\85थवा à¤¶à¥\81दà¥\8dधलà¥\87à¤\96न à¤\9aिà¤\95ितà¥\8dसà¥\87à¤\95रà¥\80ता , à¤\95à¥\83पया [https://translatewiki.net/ translatewiki.net], à¤¯à¤¾ à¤®à¤¿à¤¡à¤¿à¤¯à¤¾à¤µà¤¿à¤\95ि à¤¸à¥\8dथानिà¤\95à¥\80à¤\95रण à¤ªà¥\8dरà¤\95लà¥\8dपाà¤\9aा à¤µà¤¾à¤ªà¤° à¤\95रा.",
        "editinginterface": "<strong>सावधान</strong>तुम्ही संचेतनाचे (सॉफ्टवेअर) संपर्क माध्यम मजकूर असलेले पान संपादित करित आहात. या पानावरील बदल या विकिवरील इतर सदस्यांच्या सदस्य संपर्क माध्यमाचे स्वरूप बदलू शकते.",
-       "translateinterface": "सर्व विकिंवर अनुवाद जोडण्याकरता किंवा बदलण्याकरता, कृपया [//translatewiki.net/ ट्रांसलेटविकि.नेट]चा वापर करा,जो मिडियाविकिचा स्थानिकीकरण प्रकल्प आहे.",
+       "translateinterface": "सर्व विकिंवर अनुवाद जोडण्याकरता किंवा बदलण्याकरता, कृपया [https://translatewiki.net/ ट्रांसलेटविकि.नेट]चा वापर करा,जो मिडियाविकिचा स्थानिकीकरण प्रकल्प आहे.",
        "cascadeprotected": "हे पान संपादनांपासून सुरक्षित केल्या गेले आहे, कारण ते खालील {{PLURAL:$1|पानात|पानांमध्ये}} आंतरविन्यासित केलेले आहे,{{PLURAL:$1|जे पान|जी पाने }} निपतन पर्याय सुरु केल्यामुळे सुरक्षित आहेत:\n$2",
        "namespaceprotected": "'''$1''' नामविश्वातील पाने संपादण्याची आपणांस परवानगी नाही.",
        "customcssprotected": "या पानावर इतर सदस्याची वैयक्तिक मांडणी असल्यामुळे, तुम्हाला हे सीएसएस पान संपादित करण्याची परवानगी नाही.",
        "resetpass-temp-password": "तात्पुरता परवलीचा शब्द",
        "resetpass-abort-generic": "परवलीचा शब्दबदल विस्तारकाद्वारे नाकारण्यात आला.",
        "resetpass-expired": "आपला परवलीचा शब्द संपुष्टात आला.कृपया प्रवेशास नविन परवलीचा शब्द स्थापा.",
-       "resetpass-expired-soft": "आपला परवलीचा शब्द संपुष्टात आला असुन त्याची पुनर्स्थापना करणे आवश्यक आहे. कृपया आता  नविन परवलीचा शब्द निवडा किंवा नंतर पुनर्स्थापना करण्यास \"{{int:resetpass-submit-cancel}}\" येथे टिचका.",
-       "resetpass-validity-soft": "आपला परवलीचा शब्द वैध नाही:$1\n\nकृपया नविन परवलीचा शब्द निवडा किंवा नंतर पुनर्स्थापना करण्यास \"{{int:resetpass-submit-cancel}}\" येथे टिचका.",
+       "resetpass-expired-soft": "आपला परवलीचा शब्द संपुष्टात आला असुन त्याची पुनर्स्थापना करणे आवश्यक आहे. कृपया आता  नविन परवलीचा शब्द निवडा किंवा नंतर पुनर्स्थापना करण्यास \"{{int:authprovider-resetpass-skip-label}}\" येथे टिचका.",
+       "resetpass-validity-soft": "आपला परवलीचा शब्द वैध नाही:$1\n\nकृपया नविन परवलीचा शब्द निवडा किंवा नंतर पुनर्स्थापना करण्यास \"{{int:authprovider-resetpass-skip-label}}\" येथे टिचका.",
        "passwordreset": "परवलीचा शब्द पूर्ववत करा",
        "passwordreset-text-one": "आपला परवलीचा शब्द बदलण्यास हे आवेदन भरा.",
        "passwordreset-text-many": "{{PLURAL:$1|आपला तात्पुरता परवलीचा शब्द विपत्रामार्फत प्राप्त करण्यास खालील क्षेत्रातील एखादे भरा.}}",
        "minoredit": "हा एक छोटा बदल आहे",
        "watchthis": "या लेखावर लक्ष ठेवा",
        "savearticle": "हा लेख साठवा",
+       "savechanges": "बदल जतन करा",
+       "publishchanges": "बदल प्रकाशित करा",
        "preview": "झलक",
        "showpreview": "झलक दाखवा",
        "showdiff": "बदल दाखवा",
        "newarticle": "(नवीन लेख)",
        "newarticletext": "आपण सध्या अस्तित्त्वात नसलेल्या पानाच्या दुव्याचा मागोवा घेत आला आहात.\nहे पान नव्याने तयार करण्यासाठी खालील पेटीत टंकन करणे सुरु करा(अधिक माहितीसाठी [$1 साहाय्य पान] बघा).\n\nजर आपण येथे चुकून आला असाल तर ब्राउझरच्या  <strong>परत</strong>(बॅक) कळीवर टिचकी द्या.",
        "anontalkpagetext": "---- ''हे चर्चापान अशा अज्ञात सदस्यासाठी आहे, ज्यांनी खाते तयार केलेले नाही किंवा त्याचा वापर करत नाहीत. त्यांच्या ओळखीसाठी आम्ही आंतरजाल अंकपत्ता वापरतो आहोत. असा अंकपत्ता बऱ्याच लोकांचा एकच असू शकतो. जर आपण अज्ञात सदस्य असाल आणि आपल्याला काही अप्रासंगिक संदेश मिळाला असेल तर कृपया [[Special:UserLogin| खाते तयार करा]] किंवा [[Special:CreateAccount|सनोंद-प्रवेश करा]] ज्यामुळे, पुढे असे गैरसमज होणार नाहीत.''",
-       "noarticletext": "या à¤²à¥\87à¤\96ात à¤¸à¤§à¥\8dया à¤\95ाहà¥\80हà¥\80 à¤®à¤\9cà¤\95à¥\82र à¤¨à¤¾à¤¹à¥\80.\nतà¥\81मà¥\8dहà¥\80 à¤µà¤¿à¤\95िपà¥\80डियावरà¥\80ल à¤\87तर à¤²à¥\87à¤\96ाà¤\82मधà¥\8dयà¥\87 à¤¯à¤¾ [[Special:Search/{{PAGENAME}}| à¤®à¤¥à¤³à¥\8dयाà¤\9aा à¤¶à¥\8bध à¤\98à¥\87à¤\8a à¤¶à¤\95ता]], <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} à¤\87तर à¤¨à¥\8bà¤\82दà¥\80 à¤¶à¥\8bधा],\nà¤\95िà¤\82वा à¤¹à¤¾ à¤²à¥\87à¤\96 [{{fullurl:{{FULLPAGENAME}}|action=edit}}सà¤\82पादू शकता]</span>.",
+       "noarticletext": "या à¤²à¥\87à¤\96ात à¤¸à¤§à¥\8dया à¤\95ाहà¥\80हà¥\80 à¤®à¤\9cà¤\95à¥\82र à¤¨à¤¾à¤¹à¥\80.\nतà¥\81मà¥\8dहà¥\80 à¤µà¤¿à¤\95िपà¥\80डियावरà¥\80ल à¤\87तर à¤²à¥\87à¤\96ाà¤\82मधà¥\8dयà¥\87 à¤¯à¤¾ [[Special:Search/{{PAGENAME}}| à¤®à¤¥à¤³à¥\8dयाà¤\9aा à¤¶à¥\8bध à¤\98à¥\87à¤\8a à¤¶à¤\95ता]], <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} à¤\87तर à¤¨à¥\8bà¤\82दà¥\80 à¤¶à¥\8bधा],\nà¤\95िà¤\82वा à¤¹à¤¾ à¤²à¥\87à¤\96 [{{fullurl:{{FULLPAGENAME}}|action=edit}}तयार à¤\95रू शकता]</span>.",
        "noarticletext-nopermission": "सध्या या लेखात  काहीही मजकूर नाही.\nतुम्ही विकिपीडियावरील इतर लेखांमध्ये [[Special:Search/{{PAGENAME}}| या मथळ्याचा शोध घेऊ शकता]], <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAME}}}}आपण या लेखाच्या इतर नोंदी शोधा]</span>,परंतु, आपणास हा लेख लिहीण्याची परवानगी देण्यात येउ शकत नाही.",
        "missing-revision": "\"{{FULLPAGENAME}}\" या लेखाचे #$1 हे संस्करण अस्तित्वात नाही.वगळल्या गेलेल्या लेखपानाच्या जुन्या इतिहास-दुव्याचे अनुसरण केल्यामुळे असे होते.याबाबत विस्तृत माहिती  [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} वगळलेल्या नोंदी]येथे बघता येईल.",
        "userpage-userdoesnotexist": "\"<nowiki>$1</nowiki>\" सदस्य खात्याची नोंद नाही. कृपया हे पान तुम्ही संपादित किंवा नव्याने तयार करू इच्छिता काय याबद्दल विचार करा.",
        "rightslogtext": "ही सदस्य अधिकारांमधील बदलांची नोंद आहे.",
        "action-read": "हे पान वाचा",
        "action-edit": "हे पान संपादित करा",
-       "action-createpage": "लà¥\87à¤\96 à¤¬à¤¨à¤µा",
-       "action-createtalk": "à¤\9aरà¥\8dà¤\9aा à¤ªà¥\83षà¥\8dठà¥\87 तयार करा",
+       "action-createpage": "हà¥\87 à¤ªà¤¾à¤¨ à¤¤à¤¯à¤¾à¤° à¤\95रा",
+       "action-createtalk": "हà¥\87 à¤\9aरà¥\8dà¤\9aा à¤ªà¥\83षà¥\8dठ तयार करा",
        "action-createaccount": "हे सदस्यखाते तयार करा",
        "action-autocreateaccount": "हे बाह्य सदस्य खाते आपोआप तयार करा",
        "action-history": "या पानाचा इतिहास बघा.",
        "upload-too-many-redirects": "या आंतरजालपत्त्यात खूप पुनर्निर्देशने आहेत",
        "upload-http-error": "एक एचटीटीपी चूक उद्भवली: $1",
        "upload-copy-upload-invalid-domain": "या डोमेनमध्ये प्रत-अपभारणे अनुपलब्ध आहेत.",
+       "upload-dialog-disabled": "हा डायलॉग वापरून  या विकिवर संचिका अपभारण अक्षम केले आहे.",
        "upload-dialog-title": "संचिकेचे अपभारण करा",
        "upload-dialog-button-cancel": "रद्द करा",
        "upload-dialog-button-done": "झाले",
        "apihelp-no-such-module": "मॉड्यूल \"$1\" सापडत नाही.",
        "apisandbox": "एपीआय(API) धूळपाटी",
        "apisandbox-api-disabled": "या संकेतस्थळावर एपीआय अक्षम केला आहे.",
-       "apisandbox-intro": "\"मिडियाविकि वेब सर्व्हीस एपीआय\" वर प्रयोग करण्यासाठी या पानाचा वापर करा. एपीआय वापरण्याच्या अधिक तपशिलासाठी [//www.mediawiki.org/wiki/API:Main_page एपीआय दस्ताऐवजीकरण] हे पान बघा. उदाहरणार्थ:[//www.mediawiki.org/wiki/API#A_simple_example मुख्य पानाचा आशय मिळवा]. अधिक उदाहरणे बघण्यास एखादी क्रिया निवडा.\n\n\"याची नोंद घ्या कि ही धूळपाटी असली तरी, या पानावर आपण केलेल्या क्रियांद्वारे विकिवर फेरफार होऊ शकतो.\"",
+       "apisandbox-intro": "<strong>मिडियाविकि वेब सर्व्हीस एपीआय</strong> वर प्रयोग करण्यासाठी या पानाचा वापर करा. एपीआय वापरण्याच्या अधिक तपशिलासाठी  [[mw:API:Main page| एपीआय दस्ताऐवजीकरण]] हे पान बघा. उदाहरणार्थ:[https://www.mediawiki.org/wiki/API#A_simple_example मुख्य पानाचा आशय मिळवा]. अधिक उदाहरणे बघण्यास एखादी क्रिया निवडा.\n\nयाची नोंद घ्या कि ही धूळपाटी असली तरी, या पानावर आपण केलेल्या क्रियांद्वारे विकिवर फेरफार होऊ शकतो.",
        "apisandbox-submit": "विनंती करा",
        "apisandbox-reset": "हटवा",
        "apisandbox-examples": "उदाहरण",
        "whatlinkshere-next": "{{PLURAL:$1|पुढील|पुढील $1}}",
        "whatlinkshere-links": "← दुवे",
        "whatlinkshere-hideredirs": "$1 पुनर्निर्देशने",
-       "whatlinkshere-hidetrans": "$1 à¤\9fà¥\8dरानà¥\8dसà¥\8dà¤\95à¥\8dलà¥\8dयà¥\81à¤\9cनà¥\8dस",
+       "whatlinkshere-hidetrans": "$1 à¤\86à¤\82तरà¥\8dनà¥\8dयास",
        "whatlinkshere-hidelinks": "$1 दुवे",
        "whatlinkshere-hideimages": "$1 संचिका दुवे",
        "whatlinkshere-filters": "गाळण्या",
        "allmessagesname": "नाव",
        "allmessagesdefault": "अविचल संदेश मजकूर",
        "allmessagescurrent": "सध्याचा मजकूर",
-       "allmessagestext": "मà¥\80डियाविà¤\95à¥\80 à¤¨à¤¾à¤®à¤µà¤¿à¤¶à¥\8dवातà¥\80ल à¤¸à¤°à¥\8dव à¤ªà¥\8dरणालà¥\80 à¤¸à¤\82दà¥\87शाà¤\82à¤\9aà¥\80 à¤¯à¤¾à¤¦à¥\80",
+       "allmessagestext": "मिडियाविà¤\95à¥\80 à¤¨à¤¾à¤®à¤µà¤¿à¤¶à¥\8dवात à¤\89पलबà¥\8dध à¤¸à¤°à¥\8dव à¤ªà¥\8dरणालà¥\80 à¤¸à¤\82दà¥\87शाà¤\82à¤\9aà¥\80 à¤¹à¥\80 à¤¯à¤¾à¤¦à¥\80 à¤\86हà¥\87. à¤\9cर à¤\86पणास à¤®à¤¿à¤¡à¤¿à¤¯à¤¾à¤µà¤¿à¤\95ि à¤ªà¥\8dरà¤\9cाति à¤¸à¥\8dथानिà¤\95िà¤\95रणात à¤¯à¥\8bà¤\97दान à¤\95रावयाà¤\9aà¥\87 à¤\85सà¥\87ल à¤¤à¤° à¤\95à¥\83पया [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation à¤®à¤¿à¤¡à¤¿à¤¯à¤¾à¤µà¤¿à¤\95ि à¤¸à¥\8dथानिà¤\95à¥\80à¤\95रण] à¤µ [https://translatewiki.net à¤\9fà¥\8dराà¤\82सलà¥\87à¤\9fविà¤\95ि.नà¥\87à¤\9f]  à¤²à¤¾ à¤­à¥\87à¤\9f à¤¦à¥\8dया.",
        "allmessagesnotsupportedDB": "हे पान संपादित करता येत नाही कारण<strong>$wgUseDatabaseMessages</strong>अक्षम  आहे.",
        "allmessages-filter-legend": "गाळक",
        "allmessages-filter": "कस्टमायझेशन स्टेटनुसार गाळणी लावा :",
        "mw-widgets-dateinput-no-date": "कोणताही दिनांक निवडला नाही",
        "mw-widgets-titleinput-description-new-page": "अद्याप पान अस्तित्वात नाही",
        "mw-widgets-titleinput-description-redirect": "$1ला पुनर्निर्देशित करा",
-       "api-error-blacklisted": "कुपया वेगळे वर्णनात्मक शीर्षक निवडा",
        "sessionmanager-tie": "हे एकत्रित करु शकत नाही,बहुविध विनंती अधिप्रमाणन प्रकार:$1",
        "sessionprovider-generic": "$1 सत्रे",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "कुकी-आधारीत सत्रे",
        "sessionprovider-nocookies": "कुकिज अक्षम असू शकतात. याची खात्री करा कि कुकिज सक्षम केल्या आहेत व पुन्हा सुरुवात करा.",
-       "randomrootpage": "अविशिष्ट मूळ पान"
+       "randomrootpage": "अविशिष्ट मूळ पान",
+       "log-action-filter-suppress-block": "रोधामार्फत सदस्य दाबणे"
 }
index 59249b9..f68b227 100644 (file)
        "protectedpagetext": "Laman ini telah dikunci untuk melarang penyuntingan atau sebarang tindakan yang lain.",
        "viewsourcetext": "Anda boleh melihat dan menyalin sumber bagi laman ini.",
        "viewyourtext": "Anda boleh melihat dan menyalin sumber <strong>suntingan anda</strong> pada laman ini.",
-       "protectedinterface": "Laman ini menyediakan teks antara muka bagi perisian ini, akan tetapi dikunci untuk menghalang penyalahgunaan.\nUntuk menambah atau menyunting terjemahan untuk semua wiki, sila gunakan projek penyetempatan MediaWiki, [//translatewiki.net/ translatewiki.net].",
+       "protectedinterface": "Laman ini menyediakan teks antara muka bagi perisian ini, akan tetapi dikunci untuk menghalang penyalahgunaan.\nUntuk menambah atau menyunting terjemahan untuk semua wiki, sila gunakan projek penyetempatan MediaWiki, [https://translatewiki.net/ translatewiki.net].",
        "editinginterface": "<strong>Amaran:</strong> Anda sedang menyunting halaman yang digunakan untuk menyediakan teks antaramuka untuk perisian berkenaan.\nSebarang suntingan ke atas halaman ini akan memberikan kesan kepada penampilan antaramuka pengguna bagi pengguna-pengguna lain wiki ini.",
-       "translateinterface": "Untuk menambah atau menyunting terjemahan untuk kesemua wiki, sila gunakan [//translatewiki.net/ translatewiki.net], iaitu projek penyetempatan MediaWiki.",
+       "translateinterface": "Untuk menambah atau menyunting terjemahan untuk kesemua wiki, sila gunakan [https://translatewiki.net/ translatewiki.net], iaitu projek penyetempatan MediaWiki.",
        "cascadeprotected": "Laman ini telah dilindungi daripada disunting kerana ia termasuk dalam {{PLURAL:$1|laman|laman-laman}} berikut, yang dilindungi dengan opsyen \"melata\" dipasang:\n$2",
        "namespaceprotected": "Anda tidak mempunyai keizinan untuk menyunting laman dalam ruang nama '''$1'''.",
        "customcssprotected": "Anda tidak dibenarkan menyunting laman JavaScript ini kerana ia mengandungi tetapan peribadi pengguna lain.",
        "resetpass-temp-password": "Kata laluan sementara:",
        "resetpass-abort-generic": "Penukaran kata laluan telah dihenti paksa oleh sambungan.",
        "resetpass-expired": "Kata laluan anda sudah tamat tempoh. Sila tetapkan kata laluan baru untuk log masuk.",
-       "resetpass-expired-soft": "Kata laluan anda sudah tamat tempoh dan perlu direset. Sila buat kata laluan baru sekarang, atau klik \"{{int:resetpass-submit-cancel}}\" untuk reset di masa yang akan datang.",
-       "resetpass-validity-soft": "Kata laluan anda tidak sah: $1.\n\nSila buat kata laluan yang baru sekarang, atau klik \"{{int:resetpass-submit-cancel}}\" untuk reset di masa yang akan datang.",
+       "resetpass-expired-soft": "Kata laluan anda sudah tamat tempoh dan perlu direset. Sila buat kata laluan baru sekarang, atau klik \"{{int:authprovider-resetpass-skip-label}}\" untuk reset di masa yang akan datang.",
+       "resetpass-validity-soft": "Kata laluan anda tidak sah: $1.\n\nSila buat kata laluan yang baru sekarang, atau klik \"{{int:authprovider-resetpass-skip-label}}\" untuk reset di masa yang akan datang.",
        "passwordreset": "Set semula kata laluan",
        "passwordreset-text-one": "Lengkapkan borang ini untuk mengeset semula kata laluan anda.",
        "passwordreset-text-many": "{{PLURAL:$1|Isi salah satu ruangan berikut untuk menerima kata laluan sementara melalui e-mel.}}",
        "minoredit": "Ini adalah suntingan kecil",
        "watchthis": "Pantau laman ini",
        "savearticle": "Simpan",
+       "publishpage": "Terbitkan",
+       "publishchanges": "Terbit perubahan",
        "preview": "Pralihat",
        "showpreview": "Paparkan pralihat",
        "showdiff": "Lihat perubahan",
        "apihelp-no-such-module": "Modul \"$1\" tidak dijumpai.",
        "apisandbox": "Kotak pasir API",
        "apisandbox-api-disabled": "API dimatikan di tapak web ini.",
-       "apisandbox-intro": "Gunakan laman ini untuk bereksperimen dengan '''API perkhidmatan sesawang MediaWiki'''.\nRujuk [//www.mediawiki.org/wiki/API:Main_page dokumentasi API] untuk keterangan lanjut tentang penggunaan API.\nContoh: [//www.mediawiki.org/wiki/API#A_simple_example dapatkan kandungan Laman Utama].  Pilih satu tindakan untuk melihat banyak lagi contoh.",
+       "apisandbox-intro": "Gunakan laman ini untuk bereksperimen dengan '''API perkhidmatan sesawang MediaWiki'''.\nRujuk [https://www.mediawiki.org/wiki/API:Main_page dokumentasi API] untuk keterangan lanjut tentang penggunaan API.\nContoh: [https://www.mediawiki.org/wiki/API#A_simple_example dapatkan kandungan Laman Utama].  Pilih satu tindakan untuk melihat banyak lagi contoh.",
        "apisandbox-submit": "Buat permintaan",
        "apisandbox-reset": "Padamkan",
        "apisandbox-examples": "Contoh",
        "allmessagesname": "Nama",
        "allmessagesdefault": "Teks mesej asal",
        "allmessagescurrent": "Teks pesanan semasa",
-       "allmessagestext": "Ini ialah senarai pesanan sistem yang terdapat dalam ruang nama MediaWiki.\nSila lawat [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Penyetempatan MediaWiki] dan [//translatewiki.net translatewiki.net] sekiranya anda mahu menyumbang dalam menyetempatkan dan menterjemah perisian MediaWiki.",
+       "allmessagestext": "Ini ialah senarai pesanan sistem yang terdapat dalam ruang nama MediaWiki.\nSila lawat [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Penyetempatan MediaWiki] dan [https://translatewiki.net translatewiki.net] sekiranya anda mahu menyumbang dalam menyetempatkan dan menterjemah perisian MediaWiki.",
        "allmessagesnotsupportedDB": "'''{{ns:special}}:Allmessages''' tidak boleh digunakan kerana '''$wgUseDatabaseMessages''' dipadamkan.",
        "allmessages-filter-legend": "Penapisan",
        "allmessages-filter": "Tapis berdasarkan keadaan penempahan:",
        "mw-widgets-dateinput-no-date": "Tarik belum dipilih",
        "mw-widgets-titleinput-description-new-page": "laman belum wujud",
        "mw-widgets-titleinput-description-redirect": "melencong ke $1",
-       "api-error-blacklisted": "Sila pilih tajuk yang berbeza dan deskriptif.",
        "randomrootpage": "Laman akar rawak"
 }
index f4e8742..9df4ea2 100644 (file)
        "protectedpagetext": "Din il-paġna ġiet protetta sabiex ma ssirx xi modifika jew xi azzjoni oħra.",
        "viewsourcetext": "Tista' tara u tikkopja s-sors ta' din il-paġna:",
        "viewyourtext": "Tista' tara u tikkopja s-sors tal-'''modifiki tiegħek''' fuq din il-paġna:",
-       "protectedinterface": "Din il-paġna tipprovdi test ta' interfaċċa għas-softwer fuq dan il-wiki, u għaldaqstant ġiet protetta sabiex ma jkunx hemm abbuż.\nBiex iżżid jew tibdel traduzzjonijiet għall-wikijiet kollha uża [//translatewiki.net/ translatewiki.net], il-proġett ta' lokalizzazzjoni ta' MediaWiki.",
+       "protectedinterface": "Din il-paġna tipprovdi test ta' interfaċċa għas-softwer fuq dan il-wiki, u għaldaqstant ġiet protetta sabiex ma jkunx hemm abbuż.\nBiex iżżid jew tibdel traduzzjonijiet għall-wikijiet kollha uża [https://translatewiki.net/ translatewiki.net], il-proġett ta' lokalizzazzjoni ta' MediaWiki.",
        "editinginterface": "'''Avviż:''' Qiegħed timmodifika  paġna li qiegħda tintuża biex tipprovdi test ta' interfaċċa għas-software. Kull modifika f'din il-paġna se taffetwa l-apparenza tal-interfaċċata tal-utenti kollha ta' dan il-wiki.",
-       "translateinterface": "Biex iżżid jew tibdel it-traduzzjonijiet fuq il-wikijiet kollha, jekk jogħġbok uża [//translatewiki.net/ translatewiki.net], il-proġett ta' lokalizzazzjoni tal-MediaWiki.",
+       "translateinterface": "Biex iżżid jew tibdel it-traduzzjonijiet fuq il-wikijiet kollha, jekk jogħġbok uża [https://translatewiki.net/ translatewiki.net], il-proġett ta' lokalizzazzjoni tal-MediaWiki.",
        "cascadeprotected": "Din il-paġna ġiet protetta mill-modifiki, minħabba li tinkludi {{PLURAL:$1|paġni, li huwa|paġni, li huma}} protetti bil-preferenza tal-\"kaskata\" mixewla:\n$2",
        "namespaceprotected": "Inti m'għandhekx il-permess li timodifika paġni fin-''namespace'' '''$1''.",
        "customcssprotected": "M'għandekx il-permessi neċessarji sabiex timmodifika din il-paġna tas-CSS, minħabba li għandha tqegħid personali ta' utent ieħor.",
        "resetpass-abort-generic": "Estensjoni ħassret il-bidla tal-password",
        "resetpass-expired": "Il-password skadiet. Jekk jogħġbok issettja password ġdida biex tidħol.",
        "resetpass-expired-soft": "Il-password skadiet u jeħtieġ li terġa' tissettjaha. Agħżel password ġdida issa, jew ikklikkja \"{{int:resetpass-tissottometti-tikkanċella}}\" biex tissettjaha aktar tard.",
-       "resetpass-validity-soft": "Il-password tiegħek mhijiex valida $1 \n\nAgħżel password ġdida issa, jew ikklikkja \"{{int:resetpass-submit-cancel}}\" biex tibdilha dan aktar.",
+       "resetpass-validity-soft": "Il-password tiegħek mhijiex valida $1 \n\nAgħżel password ġdida issa, jew ikklikkja \"{{int:authprovider-resetpass-skip-label}}\" biex tibdilha dan aktar.",
        "passwordreset": "Irrisettja l-password",
        "passwordreset-text-one": "Imla din il-formola sabiex tirrisettja l-password.",
        "passwordreset-text-many": "{{PLURAL:$1|Imla wieħed mill-oqsma biex tirċievi password temporanja permezz ta' ittra elettronika.}}",
        "apihelp-no-such-module": "Il-modulu \"$1\" ma nstabx.",
        "apisandbox": "Paġna tal-provi tal-API",
        "apisandbox-api-disabled": "L-API hija diżattivata fuq dan is-sit.",
-       "apisandbox-intro": "Uża din il-paġna sabiex tesperimenta mal-'''MediaWiki web service API'''.\nŻur id-[//www.mediawiki.org/wiki/API:Main_page dokumentazzjoni tal-API] għal aktar dettalji dwar l-użu tal-API. Eżempju: [//www.mediawiki.org/wiki/API#A_simple_example ikseb il-kontenut tal-paġna prinċipali]. Agħżel azzjoni sabiex tara aktar eżempji.",
+       "apisandbox-intro": "Uża din il-paġna sabiex tesperimenta mal-'''MediaWiki web service API'''.\nŻur id-[https://www.mediawiki.org/wiki/API:Main_page dokumentazzjoni tal-API] għal aktar dettalji dwar l-użu tal-API. Eżempju: [https://www.mediawiki.org/wiki/API#A_simple_example ikseb il-kontenut tal-paġna prinċipali]. Agħżel azzjoni sabiex tara aktar eżempji.",
        "apisandbox-submit": "Agħmel rikjesta",
        "apisandbox-reset": "Ħassar",
        "apisandbox-examples": "Eżempju",
index c1cf019..9cae000 100644 (file)
        "rightslogtext": "ဤသည်မှာ အသုံးပြုသူအခွင့်အရေးများ၏ ပြောင်းလဲမှုများမှတ်တမ်းဖြစ်သည်။",
        "action-read": "ဤစာမျက်နှာကို ဖတ်ရန်",
        "action-edit": "ဤစာမျက်နှာကို ပြင်ရန်",
-       "action-createpage": "á\80\85á\80¬á\80\99á\80»á\80\80á\80ºá\80\94á\80¾á\80¬á\80\99á\80»á\80¬á\80¸ á\80\85á\80\90á\80\84á\80ºá\80\9bá\80±á\80¸á\80\9eá\80¬းရန်",
-       "action-createtalk": "á\80\86á\80½á\80±á\80¸á\80\94á\80½á\80±á\80¸á\80\81á\80»á\80\80á\80ºá\80\85á\80¬á\80\99á\80»á\80\80á\80ºá\80\94á\80¾á\80¬á\80\99á\80»á\80¬á\80¸ á\80\85á\80\90á\80\84á\80ºá\80\9bá\80±á\80¸á\80\9eá\80¬းရန်",
+       "action-createpage": "á\80¤á\80\85á\80¬á\80\99á\80»á\80\80á\80ºá\80\94á\80¾á\80¬á\80\80á\80­á\80¯ á\80\96á\80\94á\80ºá\80\90á\80®းရန်",
+       "action-createtalk": "á\80¤á\80\86á\80½á\80±á\80¸á\80\94á\80½á\80±á\80¸á\80\81á\80»á\80\80á\80ºá\80\85á\80¬á\80\99á\80»á\80\80á\80ºá\80\94á\80¾á\80¬á\80\80á\80­á\80¯ á\80\96á\80\94á\80ºá\80\90á\80®းရန်",
        "action-createaccount": "ဤအသုံးပြုသူအကောင့်ကို ဖန်တီးရန်",
        "action-minoredit": "ဤတည်းဖြတ်မှုကို အရေးမကြီးဟု မှတ်သားရန်",
        "action-move": "ဤစာမျက်နှာကို ရွှေ့ပြောင်းရန်",
        "recentchangeslinked-page": "စာမျက်နှာ အမည် -",
        "recentchangeslinked-to": "ပေးထားသော စာမျက်နှာများအစား လင့်များနှင့် ဆက်စပ်နေသာ စာမျက်နှာများ၏ အပြောင်းအလဲများကို ပြရန်",
        "recentchanges-page-added-to-category": "ကဏ္ဍထဲသို့ [[:$1]] ကို ပေါင်းထည့်ခဲ့သည်",
-       "recentchanges-page-added-to-category-bundled": "[[:$1]] á\80\94á\80¾á\80\84á\80·á\80º [[Special:WhatLinksHere/$1|{{PLURAL:$2|á\80\85á\80¬á\80\99á\80»á\80\80á\80ºá\80\94á\80¾á\80¬ á\80\90á\80\85á\80ºá\80\81á\80¯|á\80\85á\80¬á\80\99á\80»á\80\80á\80ºá\80\94á\80¾á\80¬ $2 á\80\81á\80¯}}]]á\80\80á\80­á\80¯ á\80\80á\80\8fá\80¹á\80\8dá\80\91á\80²á\80\9eá\80­á\80¯á\80· á\80\95á\80±á\80«á\80\84á\80ºá\80¸á\80\91á\80\8aá\80·á\80ºá\80\81á\80²á\80·á\80\9eá\80\8aá\80º",
+       "recentchanges-page-added-to-category-bundled": "[[:$1]] á\80¡á\80¬á\80¸ á\80\80á\80\8fá\80¹á\80\8dá\80\91á\80²á\80\9eá\80­á\80¯á\80· á\80\95á\80±á\80«á\80\84á\80ºá\80¸á\80\91á\80\8aá\80·á\80ºá\80\81á\80²á\80·á\80\95á\80¼á\80®á\80¸á\81\8a [[Special:WhatLinksHere/$1|á\80¤á\80\85á\80¬á\80\99á\80»á\80\80á\80ºá\80\94á\80¾á\80¬á\80\9eá\80\8aá\80º á\80¡á\80\81á\80¼á\80¬á\80¸á\80\85á\80¬á\80\99á\80»á\80\80á\80ºá\80\94á\80¾á\80¬á\80\99á\80»á\80¬á\80¸á\80\91á\80²á\80\90á\80½á\80\84á\80º á\80\95á\80«á\80\9dá\80\84á\80ºá\80\9eá\80\8aá\80º]]",
        "recentchanges-page-removed-from-category": "ကဏ္ဍထဲမှ [[:$1]] ကို ဖယ်ရှားခဲ့သည်",
-       "recentchanges-page-removed-from-category-bundled": "[[:$1]] á\80\94á\80¾á\80\84á\80·á\80º {{PLURAL:$2|á\80\85á\80¬á\80\99á\80»á\80\80á\80ºá\80\94á\80¾á\80¬ á\80\90á\80\85á\80ºá\80\81á\80¯|á\80\85á\80¬á\80\99á\80»á\80\80á\80ºá\80\94á\80¾á\80¬ $2 á\80\81á\80¯}}á\80\80á\80­á\80¯ á\80\80á\80\8fá\80¹á\80\8dá\80\91á\80²á\80\99á\80¾ á\80\96á\80\9aá\80ºá\80\9bá\80¾á\80¬á\80¸á\80\81á\80²á\80·á\80\9eá\80\8aá\80º",
+       "recentchanges-page-removed-from-category-bundled": "[[:$1]] á\80¡á\80¬á\80¸ á\80\80á\80\8fá\80¹á\80\8dá\80\91á\80²á\80\99á\80¾ á\80\96á\80\9aá\80ºá\80\9bá\80¾á\80¬á\80¸á\80\81á\80²á\80·á\80\95á\80¼á\80®á\80¸á\81\8a [[Special:WhatLinksHere/$1|á\80¤á\80\85á\80¬á\80\99á\80»á\80\80á\80ºá\80\94á\80¾á\80¬á\80\9eá\80\8aá\80º á\80¡á\80\81á\80¼á\80¬á\80¸á\80\85á\80¬á\80\99á\80»á\80\80á\80ºá\80\94á\80¾á\80¬á\80\99á\80»á\80¬á\80¸á\80\91á\80²á\80\90á\80½á\80\84á\80º á\80\95á\80«á\80\9dá\80\84á\80ºá\80\9eá\80\8aá\80º]]",
        "upload": "ဖိုင်​တင်​ရန်​",
        "uploadbtn": "ဖိုင်​တင်​ရန်​",
        "reuploaddesc": "Upload တင်နေခြင်းကို ဖျက်သိမ်းပြီး upload တင်သည့် ပုံစံသို့ ပြန်သွားရန်",
        "whatlinkshere-prev": "{{PLURAL:$1|နောက်သို့|နောက်သို့ $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|ရှေ့သို့|ရှေ့သို့ $1}}",
        "whatlinkshere-links": "← လင့်များ",
-       "whatlinkshere-hideredirs": "ပြန်ညွှန်းများ $1ရန်",
-       "whatlinkshere-hidetrans": "ထည့်သွင်းကူးယူချက် $1 ခု",
-       "whatlinkshere-hidelinks": "လင့် $1 ခု",
+       "whatlinkshere-hideredirs": "ပြန်ညွှန်းများ $1",
+       "whatlinkshere-hidetrans": "ထည့်သွင်းကူးယူချက် $1",
+       "whatlinkshere-hidelinks": "လင့်ခ်များ $1 ခု",
        "whatlinkshere-hideimages": "ဖိုင်အချိတ်အဆက်များ $1 ခု",
        "whatlinkshere-filters": "စိစစ်မှုများ",
        "blockip": "{{GENDER:$1|အသုံးပြုသူ}} ပိတ်ပင်ရန်",
index 8a350a6..cb59019 100644 (file)
        "october-date": "Īcmahtlactlimētztli $1",
        "november-date": "Īcmahtlactlioncēmētztli $1",
        "december-date": "Īcmahtlactliomōmemētztli $1",
-       "pagecategories": "{{PLURAL:$1|Tlaìxmatkàtlàlilòtl|Tlaìxmatkàtlàlilòmë}}",
+       "pagecategories": "{{PLURAL:$1|Tlaìxmatkàyòtlàlilòtl|Tlaìxmatkàyòtlàlilòme}}",
        "category_header": "Tlâkuilòlpiltin ìpan tlaìxmatkàtlàlilòtl \"$1\"",
        "subcategories": "Tlaìxmatkàtlàlilòpilòmë",
        "category-media-header": "Media \"$1\" neneuhcāyōc",
        "category-empty": "''Cah ahtlein inīn neneuhcāyōc.''",
-       "hidden-categories": "{{PLURAL:$1|tlatlàtìlli tlaìxmatkàtlàlilòtl|tlatlàtìltìn tlaìxmatkàtlàlilòmë}}",
+       "hidden-categories": "{{PLURAL:$1|tlatlàtìlli tlaìxmatkàyòtlàlilòtl|tlatlàtìltìn tlaìxmatkàyòtlàlilòme}}",
        "hidden-category-category": "Tlatlàtìlkàtlaìxmatkàtlàlilòmë",
-       "category-subcat-count": "{{PLURAL:$2|Inìn tlaìxmatkàtlàlilòtl kipia san inìn tlaìxmatkàtlàlilòpilli.|Inìn tlaìxmatkàtlàlilòtl {{PLURAL:$1|kipia inìn tlaìxmatkàtlàlilòpilli|kimpia inìn $1 tlaìxmatkàtlàlilòpiltìn}}, ìpan $2.}}",
+       "category-subcat-count": "{{PLURAL:$2|Inìn tlaìxmatkàyòtlàlilòtl kipia san inìn tlaìxmatkàyòtlàlilòpilli.|Inìn tlaìxmatkàyòtlàlilòtl {{PLURAL:$1|kipia inìn tlaìxmatkàyòtlàlilòpilli|kimpia inîke $1 tlaìxmatkàyòtlàlilòpiltìn}}, ìpan $2.}}",
        "category-subcat-count-limited": "Inīn {{PLURAL:$1|neneuhcāyōtzintli cah|$1 neneuhcāyōtzintli cateh}} inīn neneuhcāyōc.",
-       "category-article-count": "{{PLURAL:$2|Inìn tlaìxmatkàtlàlilòtl san kipia|Inìn tlaìxmatkàtlàlilòtl kimpia {{PLURAL:$1|inìn tlaìxtlapalli|inîkë $1 tlaìxtlapaltìn}}, ìwikpa $2.}}",
+       "category-article-count": "{{PLURAL:$2|Inìn tlaìxmatkàyòtlàlilòtl san kipia|Inìn tlaìxmatkàyòtlàlilòtl kimpia {{PLURAL:$1|inìn tlaìxtlapalli|inîke $1 tlaìxtlapaltìn}}, ìwikpa $2.}}",
        "category-article-count-limited": "Inīn {{PLURAL:$1|zāzanilli cah|$1 zāzanilli cateh}} inīn neneuhcāyōc.",
-       "category-file-count": "{{PLURAL:$2|Inìn tlaìxmatkàtlàlilòtl san kipia|Inìn tlaìxmatkàtlalilòtl kimpia {{PLURAL:$1|inìn èwalli|inîkë $1 èwaltìn}}, ìwikpa $2.}}",
+       "category-file-count": "{{PLURAL:$2|Inìn tlaìxmatkàyòtlàlilòtl san kipia|Inìn tlaìxmatkàyòtlalilòtl kimpia {{PLURAL:$1|inìn èwalli|inîke $1 èwaltìn}}, ìwikpa $2.}}",
        "category-file-count-limited": "{{PLURAL:$1|Inìn tlâkuilòlèwalli kä|Inîkë $1 tlâkuilòlèwaltìn katêkë}} ìpan inìn tlaìxmatkàtlàlilòtl.",
        "listingcontinuesabbrev": "niman",
        "about": "Ītechcopa",
        "returnto": "Ximocuepa īhuīc $1.",
        "tagline": "Īhuīcpa {{SITENAME}}",
        "help": "Tēpalēhuiliztli",
-       "search": "Xitlatēmo",
+       "search": "Mà motèmo",
        "searchbutton": "Xictēmo",
        "go": "Xiyauh",
        "searcharticle": "Xiyauh",
        "unprotectthispage": "Xicpatla inīn tlaīxtli ītlapiyaliz",
        "newpage": "Yancuic tlaīxtli",
        "talkpage": "Xictlahto inīn tlaīxtli ītechcopa",
-       "talkpagelinktext": "Zānīlli",
+       "talkpagelinktext": "Nenônòtzalistli",
        "specialpage": "Nònkuâkìskàtlaìxtlapalli",
        "personaltools": "In tlein nitēquitiltilia",
        "articlepage": "Xiquitta in tlamantlaīxtli",
        "mediawikipage": "Xiquitta tlahcuilōltzin zāzanilli",
        "templatepage": "Xiquitta neīxcuītīllaīxtli",
        "viewhelppage": "Xiquitta tēpalēhuiliztli zāzanilli",
-       "categorypage": "Mà mỏta in tlaìxmatkàtlàlilòtlaìxtlapalli",
+       "categorypage": "Mà mỏta in tlaìxmatkàtlàlilòtlaìxtlapalli",
        "viewtalkpage": "Xiquitta tēixnāmiquiliztli zāzanilli",
        "otherlanguages": "Occequīntīn tlahtōlcopa",
        "redirectedfrom": "(Ōmotlacuep īhuīcpa $1)",
        "nstab-mediawiki": "Tlahcuilōltzintli",
        "nstab-template": "Nemachiòtl",
        "nstab-help": "Tèpalèwilistli",
-       "nstab-category": "Tlaìxmatkàtlàlilòtl",
+       "nstab-category": "Tlaìxmatkàtlàlilòtl",
        "mainpage-nstab": "Huēyitlaīxtli",
        "nosuchaction": "Ahmo ia tlachīhualiztli",
        "nosuchspecialpage": "Âmò ka inòn nònkuâkìskàtlaìxtlapalli",
        "search-result-size": "$1 ({{PLURAL:$2|1 tlahtōl|$2 tlahtōltin}})",
        "search-redirect": "(tlacuepaliztli $1)",
        "search-section": "(tlahtōltzintli $1)",
+       "search-category": "(tlaìxmatkàyòtlàlilòtl $1)",
        "search-suggest": "Ahnōceh tiquihtōznequiya: $1",
        "search-interwiki-caption": "Tlachīhualiztli īcnīhuān",
        "search-interwiki-more": "(huehca ōmpa)",
        "withoutinterwiki": "Zāzaniltin ahtle tzonhuiliztli",
        "withoutinterwiki-submit": "Tiquittāz",
        "nbytes": "$1 {{PLURAL:$1|byte}}",
-       "ncategories": "$1 {{PLURAL:$1|tlaìxmatkàtlàlilòtl|tlaìxmatkàtlàlilòmë}}",
+       "ncategories": "$1 {{PLURAL:$1|tlaìxmatkàyòtlàlilòtl|tlaìxmatkàyòtlàlilòme}}",
        "nlinks": "$1 {{PLURAL:$1|tzòwilistli|tzòwilistìn}}",
        "nmembers": "$1 {{PLURAL:$1|tlâkuilòpilli|tlâkuilòpiltìn}}",
        "nrevisions": "$1 {{PLURAL:$1|tlapiyaliztli}}",
        "allarticles": "Mochīntīn tlahcuilōlli",
        "allinnamespace": "Mochīntīn zāzanilli (īpan $1)",
        "allpagessubmit": "Tiyāz",
-       "categories": "Tlaìxmatkàtlàlilòmë",
-       "categoriespagetext": "{{PLURAL:$1|Inìn tlaìxmatkàtlàlilòtl kimpia|Inîkë tlaìxmatkàtlàlilòmë kimpiâkë}} tlaìxtlapaltìn noso medios.\nÂmò monèxtiâkë nikàn in [[Special:UnusedCategories|tlaìxmatkàtlàlilòmë tlèn âmò mokìntekitìltia]].\nNò mà mỏta in tlèn [[Special:WantedCategories|ìpan kineki tlaìxmatkàtlàlilòtl]].",
+       "categories": "Tlaìxmatkàyòtlàlilòme",
+       "categoriespagetext": "{{PLURAL:$1|Inìn tlaìxmatkàyòtlàlilòtl kimpia|Inîke tlaìxmatkàyòtlàlilòme kimpiâke}} tlaìxtlapaltìn noso medios.\nÂmò monèxtiâke nikàn in [[Special:UnusedCategories|tlaìxmatkàyòtlàlilòme tlèn âmò mokìntekitìltia]].\nNò mà mỏta in tlèn [[Special:WantedCategories|ìpan kineki tlaìxmatkàyòtlàlilòtl]].",
        "categoriesfrom": "Mà monèxtìkàn tlaìxmatkàtlàlilòmë tlèn pèwâkë ìka:",
        "linksearch": "Calān tzonhuiliztli tlatemoliztli",
        "linksearch-ns": "Tōcātzin:",
        "move-leave-redirect": "Ticcāhuāz cē tlacuepaliztli",
        "export": "Tiquinnamacāz zāzaniltin",
        "export-submit": "Ticnamacāz",
-       "export-addcattext": "Mà tlatlaìxtlapalwilo ìwikpa tlatlaìxmatkàtlàlilòpa:",
+       "export-addcattext": "Mà tlatlaìxtlapalwilo ìwikpa tlatlaìxmatkàtlàlilòpa:",
        "export-addcat": "Ticcētilīz",
        "export-download": "Ticpiyāz quemeh tlahcuilōlli",
        "export-templates": "Tiquimpiyāz nemachiyōtīlli",
        "tooltip-ca-nstab-mediawiki": "Xiquitta in tlahcuilōltzin",
        "tooltip-ca-nstab-template": "Xiquitta in nemachiyōtīlli",
        "tooltip-ca-nstab-help": "Xiquitta in tēpalēhuiliztli zāzanilli",
-       "tooltip-ca-nstab-category": "Mà mỏta ìtlaìxtlapal in tlaìxmatkàtlàlilòtl",
+       "tooltip-ca-nstab-category": "Mà mỏta ìtlaìxtlapal in tlaìxmatkàtlàlilòtl",
        "tooltip-minoredit": "Ticmachiyōz quemeh tlapatlalitzintli",
        "tooltip-save": "Ticpiyaz mopatlaliz",
        "tooltip-preview": "Xachtopaitta mopatlaliz ¡Timitztlahtlauhtiliah, xicchīhua yēppa mā tiquimpiya!",
        "exif-gpslongitude": "Huehtlatzīncāyōtl",
        "exif-gpsaltitude": "Huehcapancayōtl",
        "exif-gpstimestamp": "GPS cāhuitl (atomic tepozcāhuitl)",
+       "exif-iimcategory": "Tlaìxmatkàyòtlàlilòtl",
        "exif-orientation-1": "Yēctli",
        "exif-meteringmode-255": "Occē",
        "exif-lightsource-1": "Tōnameyōtl",
        "htmlform-selectorother-other": "Occē",
        "rightsnone": "ahtlein",
        "revdelete-summary": "ticpatlāz tlahcuilōltōn",
-       "searchsuggest-search": "Xitlatēmo",
+       "searchsuggest-search": "Mà motèmo",
        "api-error-ok-but-empty": "Tlâtek îtlakawilistli: Âmò tènankilia in tlatèmakani.",
        "api-error-overwrite": "Awel motlâkuilnepanòltis sè èwalli tlèn yi katki.",
        "api-error-stashfailed": "Tlâtek îtlakawilistli: In tlatèmakani awel òkeuh in èwalpanòni.",
index 1e5f271..9420fe4 100644 (file)
        "protectedpagetext": "Chit ia̍h hông só tiâu leh, bē pian-chi̍p tit, mā bē-tàng chò kî-thaⁿ oa̍h-tāng.",
        "viewsourcetext": "Lí ē-sái khoàⁿ ia̍h khó͘-pih chit ia̍h ê goân-sú loē-iông:",
        "viewyourtext": "你會使看<strong>你改的</strong>原始碼,並且khop去這頁:",
-       "protectedinterface": "Chit ia̍h thê-kiong nńg-thé kài-bīn ēng ê bûn-jī. Ūi beh ī-hông lâng chau-that, só͘-í ū siū tio̍h pó-hō͘. Nā beh kái hoan-e̍k, chhiaⁿ khì Ûi-ki Mûi-thé chāi-tē-hoà sū-kang [//translatewiki.net/ translatewiki.net] hiâ.",
-       "editinginterface": "'''Sè-jī:''' Lí tng teh siu-kái 1 bīn thê-kiong nńg-thé kài-bīn bûn-jī ê ia̍h. Jīn-hô kái-piàn to ē éng-hióng tio̍h kî-thaⁿ iōng-chiá ê sú-iōng kài-bīn. Nā beh kái hoan-e̍k, chhiaⁿ khì Ûi-ki Mûi-thé chāi-tē-hoà sū-kang [//translatewiki.net/ translatewiki.net] hiâ.",
-       "translateinterface": "欲改抑是加維基的翻譯,請去維基媒體的在地化專案:[//translatewiki.net/ 翻譯維基網]。",
+       "protectedinterface": "Chit ia̍h thê-kiong nńg-thé kài-bīn ēng ê bûn-jī. Ūi beh ī-hông lâng chau-that, só͘-í ū siū tio̍h pó-hō͘. Nā beh kái hoan-e̍k, chhiaⁿ khì Ûi-ki Mûi-thé chāi-tē-hoà sū-kang [https://translatewiki.net/ translatewiki.net] hiâ.",
+       "editinginterface": "'''Sè-jī:''' Lí tng teh siu-kái 1 bīn thê-kiong nńg-thé kài-bīn bûn-jī ê ia̍h. Jīn-hô kái-piàn to ē éng-hióng tio̍h kî-thaⁿ iōng-chiá ê sú-iōng kài-bīn. Nā beh kái hoan-e̍k, chhiaⁿ khì Ûi-ki Mûi-thé chāi-tē-hoà sū-kang [https://translatewiki.net/ translatewiki.net] hiâ.",
+       "translateinterface": "欲改抑是加維基的翻譯,請去維基媒體的在地化專案:[https://translatewiki.net/ 翻譯維基網]。",
        "cascadeprotected": "Chit-ê ia̍h í-keng hông pó-hō͘ bē kái tit. In-ūi i tī ē-bīn {{PLURAL:$1|ê|ê}} liân-só pó-hō͘ lāi-té:\n$2",
        "namespaceprotected": "Lí bô khoân-lī kái '''$1'''  miâ-khong-kan ê ia̍h",
        "customcssprotected": "你無受權去改這个 CSS頁,因為這个頁有包括別个用者的個人設定。",
        "linkstoimage": "ē-kha {{PLURAL:$1|ê ia̍h}} ū iōng tio̍h chit ê iáⁿ-siōng:",
        "nolinkstoimage": "Bô poàⁿ ia̍h liân kàu chit tiuⁿ iáⁿ-siōng.",
        "sharedupload-desc-here": "Chit--ê $1--ê tóng-àn ū khó-lêng hō͘ kî-thaⁿ--ê choan-àn ēng tio̍h.\nChia sī chit--ê tóng-àn i--ê [$2 soat-bêng].",
+       "shared-repo-name-wikimediacommons": "Wikimedia Commons",
        "upload-disallowed-here": "你袂使換掉个檔案",
        "mimesearch": "MIME chhiau-chhoē",
        "unwatchedpages": "Bô lâng kàm-sī ê ia̍h",
index 5b263ea..27745d0 100644 (file)
        "protectedpagetext": "Sta paggena s'è prutetta pe' ne bloccà 'a mudifeca o n'ata azione.",
        "viewsourcetext": "Putite vedé e copià 'o codece surgiva 'e sta paggena.",
        "viewyourtext": "Putite vedé e copià 'o codice surgiva d' 'e <strong>cagnamiénte vuoste</strong> a sta paggena.",
-       "protectedinterface": "Sta paggena nce appruviggióna 'e n'interfaccia testo p' 'o software dint'a sta wiki, e s'è prutetta pe' nce scanzà 'e cocch'abbuso.\nSi se buò azzeccà o cagnà traduzzione ncopp'a tutte 'e wiki, pe piacere ausate [//translatewiki.net/ translatewiki.net], 'o pruggetto Mediawiki p'a localizzaziona dint'a l'ate llengue",
+       "protectedinterface": "Sta paggena nce appruviggióna 'e n'interfaccia testo p' 'o software dint'a sta wiki, e s'è prutetta pe' nce scanzà 'e cocch'abbuso.\nSi se buò azzeccà o cagnà traduzzione ncopp'a tutte 'e wiki, pe piacere ausate [https://translatewiki.net/ translatewiki.net], 'o pruggetto Mediawiki p'a localizzaziona dint'a l'ate llengue",
        "editinginterface": "<strong>Attenziò:</strong>  'O testo 'e sta paggena ffà parte 'e ll'interfaccia utente d' 'o sito.\nTutt' 'e cagnamiénte fatte a sta paggena cumpareno dint' 'e mmasciate 'e ll'interfaccia veduta 'a tutte ll'utente dint'a sta wiki.",
-       "translateinterface": "Si se buò azzeccà o cagnà traduzzione ncopp'a tutte 'e wiki, pe piacere ausate [//translatewiki.net/ translatewiki.net], 'o pruggetto Mediawiki p'a localizzaziona dint'a l'ate llengue",
+       "translateinterface": "Si se buò azzeccà o cagnà traduzzione ncopp'a tutte 'e wiki, pe piacere ausate [https://translatewiki.net/ translatewiki.net], 'o pruggetto Mediawiki p'a localizzaziona dint'a l'ate llengue",
        "cascadeprotected": "Sta paggena è stata prutetta 'a 'o cangamento pecché trascluse int'a {{PLURAL:$1|sta paggena, che è prutetta|sti paggene, che songo prutette}} quann' 'a l'ozione \"ricurziva\" è attiva:\n$2",
        "namespaceprotected": "Nun avite permesso a cagnà 'e paggene dint'a stu namespace '''$1'''.",
        "customcssprotected": "Nun v'è permesso 'a cagnà sta paggena CSS, pecché cuntene 'e mpustaziune perzunale 'e n'at'utente.",
        "nocookiesnew": "'A riggistrazione è stata completata, ma nun se può accedere a {{SITENAME}} pecché 'e cookie songo disattivate. Prova n'ata vota c' 'o nomme e 'a password quanno 'e cookie sarrann'attivate dint'o navigatore stesso.",
        "nocookieslogin": "{{SITENAME}} usa cookies pe' putè dà accies'a ll'utente.\n'E cookies vuoste songo stutate.\nPe' piacere appicciate 'e cookies dint'o navigatóre e pruvate n'ata vota.",
        "nocookiesfornew": "'O cunto utente nu s'è criato, pecché nun s'è potuto confirmà d' 'a fonte suja.\nVide si 'e cookies song'appicciate, ricarreca 'a paggena e prova n'ata vota.",
+       "createacct-loginerror": "'O cunto fuje criato apposto, ma nun fosse stato possibile 'e ve fà trasì in modo automatico. Trasite cu l'[[Special:UserLogin|accesso manuale]].",
        "noname": "Nun avite specificato nu nomme valido d'utente.",
        "loginsuccesstitle": "Acciesso affettuato",
        "loginsuccess": "'''Si stato cunnesso ô server 'e {{SITENAME}} cu 'o nomme utente 'e \"$1\".'''",
        "resetpass-temp-password": "Password temporanea:",
        "resetpass-abort-generic": "'O cagnamiento d' 'a password s'è spezzato 'a na stensione.",
        "resetpass-expired": "'A pasword è ammaturata. Avite 'e ffà na password nova pe putè trasì.",
-       "resetpass-expired-soft": "'A pasword toja è ammaturata e s'adda riabbià. Avite 'e scegliere na password nova mò, o ffà click ncopp'a \"{{int:resetpass-submit-cancel}}\" p' 'a riabbià aroppo.",
-       "resetpass-validity-soft": "'A password toja nun è bbona: $1\n\nAvite 'e scegliere na password nova mò, o ffà click ncopp'a \"{{int:resetpass-submit-cancel}}\" p' 'a riabbià aròppo.",
+       "resetpass-expired-soft": "'A pasword toja è ammaturata e s'adda riabbià. Avite 'e scegliere na password nova mò, o ffà click ncopp'a \"{{int:authprovider-resetpass-skip-label}}\" p' 'a riabbià aroppo.",
+       "resetpass-validity-soft": "'A password toja nun è bbona: $1\n\nAvite 'e scegliere na password nova mò, o ffà click ncopp'a \"{{int:authprovider-resetpass-skip-label}}\" p' 'a riabbià aròppo.",
        "passwordreset": "Riabbìa 'a password",
        "passwordreset-text-one": "Ghienche stu modulo pe' ricevere na mmasciata e-mail c' 'a password temporanea.",
        "passwordreset-text-many": "{{PLURAL:$1|Ghienche uno d' 'e campe pe' ricevere na password temporanea cu na mmasciata e-mail.}}",
        "passwordreset-emailsentusername": "Si esistesse nu cunto e-mail suòccio a stu nomme utente, allora se mannarrà na mmasciata pe' riabbià 'a password.",
        "passwordreset-emailsent-capture": "Na mmasciata e-mail pe' riabbià 'a password è stata mannata, chista mmasciata 'a putite vedé ccà abbascio.",
        "passwordreset-emailerror-capture": "Na mmasciata e-mail pe' riabbià 'a password è stata mannata, 'a putite vedé ccà abbascio, ma aita sapé ca nun s'è mannata a {{GENDER:$2|l'utente}} pecché c'è stato cocch'errore: $1",
+       "passwordreset-emailsent-capture2": "L'email 'e reimpostazione d' 'a password {{PLURAL:$1|è stata mannata|so' state mannate}}. {{PLURAL:$1|'O nomme|L'elenco 'e nomme}} utente e password è mmustato ccà.",
+       "passwordreset-emailerror-capture2": "'O mannà 'email {{GENDER:$2|a ll'utente}} guastaje: $1. {{PLURAL:$3|'O nomme|L'elenco 'e nomme}} utente e password se ffà vedé ccà.",
+       "passwordreset-nocaller": "Nu chiammate s'avess'a dà",
+       "passwordreset-nosuchcaller": "'O chiammante nun esiste: $1",
+       "passwordreset-ignored": "'A reimpustazione d' 'a password nun s'è gistita. Fosse ca nisciunu fornitore è stato mpustato?",
+       "passwordreset-invalideamil": "Indirizzo 'e posta email nun valido",
+       "passwordreset-nodata": "Nun è stato fornito né nomme utente né indirizzo 'e posta email",
        "changeemail": "Cagna o lèva l'indirizzo e-mail",
        "changeemail-header": "Ghienchete stu modulo pe' puté cagnà 'o indirizzo e-mail d' 'o vuosto. Si vuje vulite luvà e 'o scucchià l'associazione 'e cocche cunto mail d' 'o cunto vuosto, lassate 'o cunto e-mail nuovo abbacante quanno mannarrate stu modulo.",
        "changeemail-passwordrequired": "Avit'a miette 'a password vuosto pe' dà a cunferma 'e stu cagnamiento.",
        "minoredit": "Chisto è nu cagnamiénto piccerillo",
        "watchthis": "Tiene d'uocchio sta paggena",
        "savearticle": "Sarva 'a paggena",
+       "savechanges": "Sarva 'e cagnamiénte",
        "publishpage": "Pubbreca paggena",
+       "publishchanges": "Pubbreca 'e cagnamiente",
        "preview": "Anteprimma",
        "showpreview": "Vire anteprimma",
        "showdiff": "Fa veré 'e cagnamiente",
        "content-model-css": "CSS",
        "content-json-empty-object": "Oggetto abbacante",
        "content-json-empty-array": "Array abbacante",
+       "deprecated-self-close-category": "Paggene ausanno nu tag HTML auto-nchiuse nun valido",
        "duplicate-args-warning": "<strong>Attenziò:</strong> [[:$1]] sta chiammanno [[:$2]] cu cchiù 'e nu volore p' 'o parametro \"$3\". Surtanto ll'urdemo valore s'auserrà.",
        "duplicate-args-category": "Paggene c'ausano argomiente dupprecate dint' 'e chiammate a 'e mudelle",
        "duplicate-args-category-desc": "'A paggena tene chiammate a mudelle c'ausassero argomiente dupprecate, comme p'esempio <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> o <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "right-override-export-depth": "Esporta 'e paggene azzeccanno 'e paggene cullegate nfin'a na profondità 'e 5",
        "right-sendemail": "Manna na mail a ll'at'utente",
        "right-passwordreset": "Vide 'e mmasciate 'e rimpustazione d' 'a password",
-       "right-managechangetags": "Crìa e scancella 'e [[Special:Tags|tag]] d' 'o database",
+       "right-managechangetags": "Crìa e appiccia/stuta 'e [[Special:Tags|tag]]",
        "right-applychangetags": "Appreca [[Special:Tags|tag]] pe' tramente ca se fanno 'e cagnamiente 'e coccheruno",
        "right-changetags": "Azzecca o lèva a caso 'e [[Special:Tags|tag]] dint'a verziune nnividuale e riggistre 'e log",
+       "right-deletechangetags": "Scancella l'[[Special:Tags|etichette]] d' 'o database",
        "grant-generic": "Pacco 'e deritte \"$1\"",
        "grant-group-page-interaction": "Interagisce ch' 'e paggene",
        "grant-group-file-interaction": "Intergische ch' 'e file 'e media",
        "rightslogtext": "Ccà abbascio sta nu riggistro d' 'e cagnamiente a 'e deritte 'e ll'utente",
        "action-read": "lieggere sta paggena",
        "action-edit": "càgna chesta paggena",
-       "action-createpage": "crìa paggene",
-       "action-createtalk": "crìa chiacchiere 'e paggena",
+       "action-createpage": "crìa sta paggena",
+       "action-createtalk": "crìa sta paggena 'e chiacchiere",
        "action-createaccount": "crìa stu cunto utente",
        "action-autocreateaccount": "automaticamente crèa stu cunto utente 'e fore",
        "action-history": "vide 'a cronologgia 'e sta paggena",
        "action-viewmyprivateinfo": "vide 'e date perzunale",
        "action-editmyprivateinfo": "cagnà 'e proprie date perzunale",
        "action-editcontentmodel": "càgna 'o mudelo 'e cuntenute 'e na paggena",
-       "action-managechangetags": "crìa e scancella 'e tag d' 'o database",
+       "action-managechangetags": "crìa e appiccia/stuta tag",
        "action-applychangetags": "appreca tag pe' tramente ca se fanno 'e cagnamiente vuoste",
        "action-changetags": "azzecca o lèva tag a caso dint'a verziune nnividuale e riggistre 'e log",
+       "action-deletechangetags": "scancellare 'e tag d' 'o database",
        "nchanges": "$1 {{PLURAL:$1|cagnamiento|cagnamiente}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|'a ll'urdema visita}}",
        "enhancedrc-history": "cronologgia",
        "upload-http-error": "N'errore HTTP è succiesso: $1",
        "upload-copy-upload-invalid-domain": "Nun è permessa 'a carreca 'e copie 'a chistu dumminio.",
        "upload-foreign-cant-upload": "Stu wiki nun è mpustato pe' puté carrecà 'e file dint' 'o repository 'e file 'e fore addimannato.",
+       "upload-foreign-cant-load-config": "Scassaje a carrecà 'o file 'e mpustaziune p' 'e repositorie 'e fore.",
+       "upload-dialog-disabled": "'A carreca 'e file tramite sta fenesta 'e dialogo è stutata int'a stu wiki.",
        "upload-dialog-title": "Carreca file",
        "upload-dialog-button-cancel": "Canciella",
        "upload-dialog-button-done": "Fatto",
        "apisandbox": "Casciulella 'e pprove API",
        "apisandbox-jsonly": "'O JavaScript è necessario pe' puté ausà 'a casciulella 'e pprove 'e ll'API.",
        "apisandbox-api-disabled": "Ll'API è stutata ind'a stu sito.",
-       "apisandbox-intro": "Aùsa sta paggena pe' puté ffà prove c' 'o  <strong>servizio web 'e ll'API MediaWiki</strong>.\nVedite e ve piglià riferimento ncopp' 'a [[mw:API:Main page|documentazione 'e ll'API]] pe' n'avé cchiù dettaglie 'e comm'ausà n'API. Esempio: [//www.mediawiki.org/wiki/API#A_simple_example piglia 'e ccuntenute 'e na Paggena Prencepale]. Sceglie n'aziona pe' n'avé cchiù dettaglie.\n\nTenite a mmente ca, pure si chest'è na casciulella 'e pprove, ll'aziune ca vuje facite putessero cagnà sta wiki.",
+       "apisandbox-intro": "Aùsa sta paggena pe' puté ffà prove c' 'o  <strong>servizio web 'e ll'API MediaWiki</strong>.\nVedite e ve piglià riferimento ncopp' 'a [[mw:API:Main page|documentazione 'e ll'API]] pe' n'avé cchiù dettaglie 'e comm'ausà n'API. Esempio: [https://www.mediawiki.org/wiki/API#A_simple_example piglia 'e ccuntenute 'e na Paggena Prencepale]. Sceglie n'aziona pe' n'avé cchiù dettaglie.\n\nTenite a mmente ca, pure si chest'è na casciulella 'e pprove, ll'aziune ca vuje facite putessero cagnà sta wiki.",
        "apisandbox-fullscreen": "Spanne pannello",
        "apisandbox-fullscreen-tooltip": "Spanne 'o pannello 'e casciulella 'e pprove pe' puté ghienchere tuttaquanta 'a fenestella d' 'o navigatóre.",
        "apisandbox-unfullscreen": "Mmusta paggena",
        "trackingcategories-msg": "Categurìe 'e cuntrollo",
        "trackingcategories-name": "Nomme d' 'a mmasciata",
        "trackingcategories-desc": "Criterie p' 'o miettere dint' 'a categurìa",
+       "restricted-displaytitle-ignored": "Paggene cu titule 'a ffà vedé ignurate",
+       "restricted-displaytitle-ignored-desc": "'A paggena tene nu <code><nowiki>{{DISPLAYTITLE}}</nowiki></code> gnurato peccéh nu fosse eguale a 'o titolo d' 'a paggena 'e mo'.",
        "noindex-category-desc": "'A paggena nun è indicizzata 'a 'e robot pecché cuntene 'a parola maggica <code><nowiki>__NOINDEX__</nowiki></code> e se trova dint'a nu namespace addò chistu flag è permesso.",
        "index-category-desc": "'A paggena téne 'o codece <code><nowiki>__INDEX__</nowiki></code> dinto (e se trova dint'a nu namespace addò chistu flag è permesso), e picciò è indicizzata 'a 'e robot, pure si normalmente nun fosse accussì.",
        "post-expand-template-inclusion-category-desc": "'A dimensione d' 'a paggena è cchiù granne 'e <code>$wgMaxArticleSize</code> aropp'a spannere tutt' 'e template, e picciò cocche template nun se so' spannute.",
        "rollbacklinkcount": "annulla {{PLURAL:$1|nu cagnamiento|$1 cagnamiente}}",
        "rollbacklinkcount-morethan": "annulla cchiù 'e {{PLURAL:$1|nu cagnamiento|$1 cagnamiente}}",
        "rollbackfailed": "Annullamento fallito",
+       "rollback-missingparam": "Parammetre obbligate mancante int' 'a richiesta.",
        "cantrollback": "Nun se può annullà stu cagnamiento;\nsapite ca l'urdemo autore è stato pure sul'isso a faticà dint'a sta paggena (nun ce sta n'at'autore).",
        "alreadyrolled": "Nun se può turna arreto a l'urdemo cagnamiento [[:$1]] 'a [[User:$2|$2]] ([[User talk:$2|Chiacchiera]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]);\ncocch'ato ha cagnato o annullato 'a paggena già.\n\nL'urdemo cangamiento d' 'a paggena fuje 'a [[User:$3|$3]] ([[User talk:$3|Chiacchiera]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
        "editcomment": "'O riepilego d' 'o cagnamiento era: <em>$1</em>.",
        "revertpage": "Cangiaje 'e cagnamiénte 'e [[Special:Contributions/$2|$2]] ([[User talk:$2|discussione]]), cu â verzione 'e pprimma 'e  [[User:$1|$1]]",
        "revertpage-nouser": "Annullate 'e cagnamiente 'e n'utente annascunnuto, è stata ripigliata ll'urdema verzione 'e {{GENDER:$1|[[User:$1|$1]]}}",
        "rollback-success": "Cagnamiente annullate 'a $1;\ns'è turnat arreto a l'urdema verzione 'e $2.",
+       "rollback-success-notify": "Cagnamiente annullate 'a $1;\ns'è turnat arreto a l'urdema verzione 'e $2. [$3 Fà vedé 'e cagnamiente]",
        "sessionfailure-title": "Sessione fallita",
        "sessionfailure": "Pare ca stanno probbleme cu 'a sessiona toja;\nst'azione è stata fermata pe' precauzione annanz' 'e cavall' 'e troia;\nPe' piacere turnate arreto, carrecate n'ata vota 'a paggena pe pruvate n'ata vota.",
        "changecontentmodel": "Cagna 'o mudello 'e cuntenute 'e na paggena",
        "changecontentmodel-success-text": "'O tipo 'e cuntenut 'e [[:$1]] è stato cagnato.",
        "changecontentmodel-cannot-convert": "'E cuntenute dint'a [[:$1]] nun se ponno scagnà a nu tipo 'e $2.",
        "changecontentmodel-nodirectediting": "'O mudello 'e cuntenute $1 nun suppurtasse 'o cagnamiento diretto",
+       "changecontentmodel-emptymodels-title": "Nisciuno modello 'e cuntenute a disposizione",
+       "changecontentmodel-emptymodels-text": "'E cuntenute dint'a [[:$1]] nun se ponno scagnà a nisciuno tipo.",
        "log-name-contentmodel": "Riggistro 'e cagnamiente d' 'o mudello 'e cuntenute",
        "log-description-contentmodel": "Evvente azzeccate c' 'o mudello 'e cuntenute 'e na paggena",
        "logentry-contentmodel-new": "$1 {{GENDER:$2|criaje}} 'a paggena $3 ausanno nu mudell' 'e cuntenute nun-predefinito \"$5\"",
        "sp-contributions-username": "Nnerizzo IP o nomme utente",
        "sp-contributions-toponly": "Facenno vedé sulamente 'e contribbute 'e l'urdeme verziune",
        "sp-contributions-newonly": "Facenno vedé sulamente 'e contribbute ca songo criazione 'e paggene",
+       "sp-contributions-hideminor": "Annascunne cagnamiénte piccerille",
        "sp-contributions-submit": "Truova",
        "whatlinkshere": "Paggene ca cullegano a chesta",
        "whatlinkshere-title": "Paggene ca cullegano a $1",
        "whatlinkshere-prev": "{{PLURAL:$1|apprima|apprime $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|appriesso|$1 appriesso}}",
        "whatlinkshere-links": "← jonte",
-       "whatlinkshere-hideredirs": "$1 redirects",
+       "whatlinkshere-hideredirs": "$1 redirect",
        "whatlinkshere-hidetrans": "$1 'nclusione",
        "whatlinkshere-hidelinks": "$1 jonte",
        "whatlinkshere-hideimages": "$1 links d' 'o file",
        "lockdbsuccesstext": "'O database è stato bloccato.<br />\nArricuordateve 'e [[Special:UnlockDB|luvà 'o blocco]] appriesso c' 'a manutenziona sarrà fernuta.",
        "unlockdbsuccesstext": "'O database è stato sbluccato.",
        "lockfilenotwritable": "Nun se può scrivere ncopp' 'o file 'e blocco d' 'o database.\nPe' bluccà o sbluccà 'o database abbesuogne 'e scrivere dint' 'o server web.",
+       "databaselocked": "'O database è bluccato già.",
        "databasenotlocked": "'O database nun è bluccato.",
        "lockedbyandtime": "(pe' {{GENDER:$1|$1}} 'o $2 a 'e $3)",
        "move-page": "Mòve $1",
        "allmessagesname": "Nomme",
        "allmessagesdefault": "Mmasciata 'e testo predefinita",
        "allmessagescurrent": "Testo 'e mo",
-       "allmessagestext": "Chest'è na lista 'e tutt' 'e mmasciate 'e sistema ca se ponno ascià dint' 'o namespace 'e Mediawiki.\nPe' piacere vedite [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Lucalizzazione 'e MediaWiki] e [//translatewiki.net translatewiki.net] si vulite cuntribbuì â lucalizzaziona generica 'e MediaWiki.",
+       "allmessagestext": "Chest'è na lista 'e tutt' 'e mmasciate 'e sistema ca se ponno ascià dint' 'o namespace 'e Mediawiki.\nPe' piacere vedite [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Lucalizzazione 'e MediaWiki] e [https://translatewiki.net translatewiki.net] si vulite cuntribbuì â lucalizzaziona generica 'e MediaWiki.",
        "allmessagesnotsupportedDB": "Sta paggena nun se può ausà pecché 'a funziona <strong>$wgUseDatabaseMessages</strong> è stata stutata.",
        "allmessages-filter-legend": "Filtro",
        "allmessages-filter": "Filtra cu nu stato personalizzate:",
        "confirm-watch-top": "Vulite azzeccà sta paggena int' 'a lista 'e paggene cuntrullate vuosta?",
        "confirm-unwatch-button": "OK",
        "confirm-unwatch-top": "Vulite luvà sta paggena d' 'a lista 'e paggene cuntrullate vuosta?",
+       "confirm-rollback-button": "OK",
+       "confirm-rollback-top": "Turnà arreto 'e cagnamiente 'e sta paggena?",
        "quotation-marks": "\"$1\"",
        "imgmultipageprev": "← paggena 'e primma",
        "imgmultipagenext": "paggena successiva →",
        "timezone-local": "Lucale",
        "duplicate-defaultsort": "<strong>Attenziò:</strong> A chiave d'arricetto \"$2\" se miette ncuollo a nu valore 'e primma \"$1\".",
        "duplicate-displaytitle": "<strong>Attenziò:</strong> A chiave d'arricetto \"$2\" se scagna p' 'o valore 'e primma \"$1\".",
+       "restricted-displaytitle": "<strong>Attenziò:</strong> 'O titolo ccà \"$1\" è stato lassato perdere pecché nun fosse eguale a 'o titolo 'e mò d' 'a paggena.",
        "invalid-indicator-name": "<strong>Errore:</strong> attribbuto <code>name</code> 'e ll'innecature d' 'o stato d' 'a paggena nu può rummanè abbacante.",
        "version": "Verziona",
        "version-extensions": "Estenziune installate",
        "tags-delete-not-found": "'O tag $1 nun esiste.",
        "tags-delete-too-many-uses": "'O tag \"$1\" è apprecato a cchiù 'e $2 {{PLURAL:$2|verziona|verziune}}, cosa ca vulesse dicere ca nun se ò scancellà.",
        "tags-delete-warnings-after-delete": "'O tag \"$1\" s'è scancellato, ma {{PLURAL:$2|s'è ncuntrato ll'avviso|se songhe ncuntrate ll'avise}} ccà:",
+       "tags-delete-no-permission": "Nun tenite 'o permesso pe' scancellà 'e tag 'e cagnamiente.",
        "tags-activate-title": "Appiccia 'o tag",
        "tags-activate-question": "Vuje state p'appiccià 'o tag \"$1\".",
        "tags-activate-reason": "Mutivo:",
        "mw-widgets-dateinput-no-date": "Nisciuna data scigliuta",
        "mw-widgets-titleinput-description-new-page": "'a pàggene nun esiste ancore",
        "mw-widgets-titleinput-description-redirect": "redirezionate ncopp' a $1",
-       "api-error-blacklisted": "Pe' piacere sciglite nu titolo differente e descrittivo.",
        "sessionmanager-tie": "Nun se ponno cumbinà 'e tipe 'e richiesta 'autenticaziona: $1.",
        "sessionprovider-generic": "$1 sessiune",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "sessiune basate ncopp' 'e cookie",
        "log-action-filter-patrol": "Tipo 'e verifica:",
        "log-action-filter-protect": "Tipo 'e protezione:",
        "log-action-filter-rights": "Tipo 'e cagnamiento 'e deritte",
-       "log-action-filter-suppress": "Tipo 'e suppressione",
+       "log-action-filter-suppress": "Tipo 'e suppressione:",
        "log-action-filter-upload": "Tipo 'e carreca:",
        "log-action-filter-all": "Tutte",
        "log-action-filter-block-block": "Blocco",
        "log-action-filter-suppress-block": "Scancellazione 'utente 'a blocco",
        "log-action-filter-suppress-reblock": "Scancellazione utente 'a re-blocco",
        "log-action-filter-upload-upload": "Carreca nova",
-       "log-action-filter-upload-overwrite": "Recarreca"
+       "log-action-filter-upload-overwrite": "Recarreca",
+       "authmanager-authn-not-in-progress": "L'autenticazione nun è 'ncurzo o 'e date d' 'a sessione so' ghiute pierze. Verite 'accummincià n'ata vota a 'o prencipio.",
+       "authmanager-authn-no-primary": "'E credenziale ca s'hanno rato nun se ponno autenticà.",
+       "authmanager-authn-no-local-user": "'E credenziale ca s'hanno rato nun se ponno ffà suoccie a nisciun' 'utente int'a stu wiki.",
+       "authmanager-authn-no-local-user-link": "'E credenziale ca s'hanno rato so buone ma nun songo suoccie a nisciun'utente 'e sta wiki. Trasite 'n modo differente o criate n'utente nuovo, e tenarrite n'opzione pe' puté aunì 'e credenziale 'e primma a chill'utenza.",
+       "authmanager-authn-autocreate-failed": "Criazione automatica 'e n'utenza locale fallita: $1",
+       "authmanager-change-not-supported": "'E credenziale ca s'hanno rato nun se ponno cagnà, dato ca nun fossero ausate 'a nisciuna cosa.",
+       "authmanager-create-disabled": "Criazione 'e cunte stutata",
+       "authmanager-create-from-login": "Pe' puté crià n'utenza vosta, mettite sane sane 'e campe ccà abbascio.",
+       "authmanager-create-not-in-progress": "'A criazione 'e cunte nun è 'ncurzo o 'e date d' 'a sessione so' ghiute pierze. Verite 'accummincià n'ata vota a 'o prencipio.",
+       "authmanager-create-no-primary": "Le credenziali date nun se ponno ausà pe' puté crià n'utenza.",
+       "authmanager-link-no-primary": "'E credenziale date nun se ponno ausà p' 'o cullegamento 'utenza.",
+       "authmanager-link-not-in-progress": "'O cullegamento 'e cunte nun è 'ncurzo o 'e date d' 'a sessione so' ghiute pierze. Verite 'accummincià n'ata vota a 'o prencipio.",
+       "authmanager-authplugin-setpass-failed-title": "'O cagnamento d' 'a password è ghiuto malamente",
+       "authmanager-authplugin-setpass-failed-message": "'O plugin 'autenticazione nun ave lassato 'o cagnamento d' 'a password.",
+       "authmanager-authplugin-create-fail": "'O plugin autenticazione nun lassaie crià ll'utenza.",
+       "authmanager-authplugin-setpass-denied": "'O plugin autenticazione nun premmettesse 'e cagnà 'e password.",
+       "authmanager-authplugin-setpass-bad-domain": "Dominio invalido.",
+       "authmanager-autocreate-noperm": "'A criazione automatica 'e ll'utenza nun fosse premmessa.",
+       "authmanager-autocreate-exception": "Criazione 'e cunte automatica mò mò è stutata pe' bbìa 'e ll'errure precedenti.",
+       "authmanager-userdoesnotexist": "'O cunto utente \"$1\" nun è riggistrato.",
+       "authmanager-userlogin-remembermypassword-help": "Si 'a pasword adda essere arricurdata cchiù a luongo cu rispett'a tutt' 'a durata d' 'a sessione.",
+       "authmanager-username-help": "Nomme utente pe' ll'autenticaziona.",
+       "authmanager-password-help": "Password pe' l'autenticaziona.",
+       "authmanager-domain-help": "Dumminio pe' ffà autenticaziona 'a fore.",
+       "authmanager-retype-help": "Cunferma n'ata vota 'a password.",
+       "authmanager-email-label": "Email",
+       "authmanager-email-help": "Indirizzo email",
+       "authmanager-realname-label": "Nomme overo",
+       "authmanager-realname-help": "Nomme overo 'e ll'utente",
+       "authmanager-provider-password": "Autenticaziona basata ncopp' 'a password",
+       "authmanager-provider-password-domain": "Autenticaziona cu' password e basata ncopp'a nu dominio",
+       "authmanager-provider-temporarypassword": "Password a tiempo determinato",
+       "authprovider-confirmlink-message": "Verenno 'e tentative d'acciesso mò, l'utente ccà putessero avé nu cullegamento c' 'o cunto wiki d' 'o vuosto. A ffà cullegamento premmettesse appiccià 'o sistema 'e trasuta pe' bbìa 'e sti cunte. Pe' piacere sciglite 'e cunte addò vulite fà cullegamento.",
+       "authprovider-confirmlink-request-label": "Cunte ca s'avesser'a cullegà",
+       "authprovider-confirmlink-success-line": "$1: cullegato e apposto.",
+       "authprovider-confirmlink-failed": "'O cullegamento 'e ll'utenza nun è ngarrato sano sano: $1",
+       "authprovider-confirmlink-ok-help": "Cuntinuà aropp'a fà veré 'e mmasciate 'errore 'e cullegamento."
 }
index d01ff9a..73eef2a 100644 (file)
        "viewyourtext": "Du kan se og kopiere kilden til <strong>dine endringer</strong> på denne siden.",
        "protectedinterface": "Denne siden kontrollerer brukergrensesnittekst for programvaren, og er låst for å hindre misbruk.",
        "editinginterface": "<strong>Advarsel:</strong> Du redigerer en side som brukes til å kontrollere grensesnittekst for programvaren.\nEndringer av denne siden vil påvirke hvordan grensesnittet vil se ut for andre brukere på denne wikien.",
-       "translateinterface": "For å legge til eller endre oversettelser for alle wikier bruk [//translatewiki.net/ translatewiki.net], MediaWikis lokaliseringsprosjekt.",
+       "translateinterface": "For å legge til eller endre oversettelser for alle wikier bruk [https://translatewiki.net/ translatewiki.net], MediaWikis lokaliseringsprosjekt.",
        "cascadeprotected": "Denne siden er låst for redigering fordi den inkluderes på følgende {{PLURAL:$1|side som har|sider som har}} som har dypbeskyttelse slått på:\n$2",
        "namespaceprotected": "Du har ikke tillatelse til å redigere sider i navnerommet '''$1'''.",
        "customcssprotected": "Du har ikke tillatelse til å redigere denne CSS-siden fordi den inneholder en annen brukers personlige innstillinger.",
        "password-change-forbidden": "Du kan ikke endre passord på denne wikien.",
        "externaldberror": "Det var en ekstern autentifiseringsfeil, eller du kan ikke oppdatere din eksterne konto.",
        "login": "Logg inn",
+       "login-security": "Bekreft identiteten din",
        "nav-login-createaccount": "Logg inn eller opprett en konto",
        "userlogin": "Logg inn eller opprett en konto",
        "userloginnocreate": "Logg inn",
        "userlogin-resetpassword-link": "Glemt passordet?",
        "userlogin-helplink2": "Hjelp med innlogging",
        "userlogin-loggedin": "Du er allerede logget inn som {{GENDER:$1|$1}}.\nBruk skjemaet nedenfor for å logge inn som en annen bruker.",
+       "userlogin-reauth": "Du må logge inn igjen for å bekrefte at du er {{GENDER:$1|$1}}.",
        "userlogin-createanother": "Opprett ny konto",
        "createacct-emailrequired": "E-postadresse",
        "createacct-emailoptional": "E-postadresse (valgfritt)",
        "createacct-email-ph": "Fyll inn e-postadressen din",
        "createacct-another-email-ph": "Fyll inn epostadressen",
        "createaccountmail": "Bruk et midlertidig, tilfeldig passord, og send det til angitt e-postadresse",
+       "createaccountmail-help": "Kan brukes til å opprette en konto for en annen person uten at du får vite passordet.",
        "createacct-realname": "Virkelig navn (valgfritt)",
        "createaccountreason": "Årsak:",
        "createacct-reason": "Årsak",
        "createacct-reason-ph": "Hvorfor lager du en annen bruker",
+       "createacct-reason-help": "Beskjed vist i kontoopprettelsesloggen",
        "createacct-submit": "Opprett konto",
        "createacct-another-submit": "Opprett konto",
+       "createacct-continue-submit": "Fortsett kontooppretting",
+       "createacct-another-continue-submit": "Fortsett kontooppretting",
        "createacct-benefit-heading": "{{SITENAME}} er laget av folk som deg.",
        "createacct-benefit-body1": "{{PLURAL:$1|redigering|redigeringer}}",
        "createacct-benefit-body2": "{{PLURAL:$1|side|sider}}",
        "nocookiesnew": "Din brukerkonto er nå opprettet, men du har ikke logget på. {{SITENAME}} bruker informasjonskapsler («cookies») for å logge brukere på og du har slått dem av. Slå dem på for å kunne logge på med ditt nye brukernavn og passord.",
        "nocookieslogin": "{{SITENAME}} bruker informasjonskapsler («cookies») for å logge brukere på og du har slått dem av. Slå dem på og prøv igjen.",
        "nocookiesfornew": "Brukerkontoen ble ikke opprettet siden vi ikke kunne bekrefte dens kilde.\nKontroller at du har aktivert informasjonskapsler, oppdater siden og prøv igjen.",
+       "createacct-loginerror": "Kontoen ble opprettet, men du kunne ikke logges inn automatisk. Gå videre til [[Special:UserLogin|manuell innlogging]].",
        "noname": "Du har ikke oppgitt et gyldig brukernavn.",
-       "loginsuccesstitle": "Du er nå logget inn",
+       "loginsuccesstitle": "Logget inn",
        "loginsuccess": "Du er nå logget inn på {{SITENAME}} som «$1».",
        "nosuchuser": "Det eksisterer ingen bruker ved navn «$1».\nMerk at det skilles mellom store og små bokstaver.\nSjekk stavemåten eller [[Special:CreateAccount|opprett en ny konto]].",
        "nosuchusershort": "Det finnes ingen bruker ved navn «$1». Kontroller stavemåten.",
        "createacct-another-realname-tip": "Det er frivillig å oppgi ditt egentlige navn.\nHvis du velger å oppgi det, vil det blir anvendt for å gi deg som bruker anerkjennelse",
        "pt-login": "Logg inn",
        "pt-login-button": "Logg inn",
+       "pt-login-continue-button": "Fortsett innlogging",
        "pt-createaccount": "Opprett konto",
        "pt-userlogout": "Logg ut",
        "php-mail-error-unknown": "Ukjent feil i PHPs mail()-funksjon",
        "newpassword": "Nytt passord:",
        "retypenew": "Gjenta nytt passord:",
        "resetpass_submit": "Angi passord og logg inn",
-       "changepassword-success": "Passordet ditt ble korrekt endret!",
+       "changepassword-success": "Passordet ditt er endret!",
        "changepassword-throttled": "Du har foretatt for mange nylige innloggingsforsøk.\nVær vennlig å vente $1 før du prøver igjen.",
        "botpasswords": "Robotpassord",
        "botpasswords-summary": "<em>Robotpassord</em> gir tilgang til en brukerkonto via API uten å bruke hovedpassordet til kontoen. Brukerrettighetene kan bli begrenset ved bruk av dette passordet.\n\nHvis du ikke vet om du vil benytte dette, er det sannsynlig at du ikke bør fylle det ut. Det skal ikke være nødvendig for andre personer å be deg om å fylle ut dette for å gi det til de.",
        "botpasswords-invalid-name": "Det angitte brukernavnet inneholder ikke separasjonstegnet for robotpassord (\"$1\").",
        "botpasswords-not-exist": "Brukeren \"$1\" har ikke noe robotpassord for \"$2\".",
        "resetpass_forbidden": "Passord kan ikke endres",
+       "resetpass_forbidden-reason": "Passordene kan ikke endres: $1",
        "resetpass-no-info": "Du må være logget inn for å gå til denne siden direkte",
        "resetpass-submit-loggedin": "Endre passord",
        "resetpass-submit-cancel": "Avbryt",
        "resetpass-temp-password": "Midlertidig passord:",
        "resetpass-abort-generic": "Endring av passord har blitt avbrutt av en utvidelse.",
        "resetpass-expired": "Passordet ditt har utløpt. Vær vennlig å angi et nytt passord for å logge inn.",
-       "resetpass-expired-soft": "Passordet ditt har utløpt og må endres. Vær vennlig å angi et nytt passord, eller klikk \"{{int:resetpass-submit-cancel}}\" for å endre det senere.",
+       "resetpass-expired-soft": "Passordet ditt har utløpt og må endres. Vær vennlig å angi et nytt passord, eller klikk \"{{int:authprovider-resetpass-skip-label}}\" for å endre det senere.",
        "resetpass-validity-soft": "Ditt passord er ikke gyldig: $1",
        "passwordreset": "Tilbakestilling av passord",
        "passwordreset-text-one": "Fyll ut skjemaet for å tilbakestille passordet",
        "content-model-css": "CSS",
        "content-json-empty-object": "Tomt objekt",
        "content-json-empty-array": "Tom matrise",
+       "deprecated-self-close-category": "Sider som bruker ugyldige, balanserte HTML-tagger.",
+       "deprecated-self-close-category-desc": "Siden inneholder balanserte HTML-tagger slike som <code>&lt;b/></code> or <code>&lt;span/></code>. Oppførselen til disse vil snart endret for å være i samsvar med HTML-spesifikasjonen, og da vil de ikke kunne brukes som wikitekst.",
        "duplicate-args-warning": "<strong>Advarsel:</strong> [[:$1]] kaller [[:$2]] med flere enn en verdi for \"$3\"-parameteren. Bare den sist angitte verdien vil brukes.",
        "duplicate-args-category": "Sider med duplikate argumenter i malkall",
        "duplicate-args-category-desc": "Denne siden inneholder malkall med duplikate parametre, slik som <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> eller <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "apihelp-no-such-module": "Modulen «$1» ikke funnet.",
        "apisandbox": "API-sandkasse",
        "apisandbox-api-disabled": "API er deaktivert på dette nettstedet.",
-       "apisandbox-intro": "Bruk denne siden for å eksperimentere med '''MediaWiki web service APIet'''.\nSjekk [//www.mediawiki.org/wiki/API:Main_page API-dokumentasjonen] for mer informasjon om bruk av APIet. Eksempel: [//www.mediawiki.org/wiki/API#A_simple_example hente innholdet til en hovedside]. Velg en handling for å se flere eksempler.\n\nMerk at du kan utføre handlinger her som fører til endringer på wikien.",
+       "apisandbox-intro": "Bruk denne siden for å eksperimentere med '''MediaWiki web service APIet'''.\nSjekk [https://www.mediawiki.org/wiki/API:Main_page API-dokumentasjonen] for mer informasjon om bruk av APIet. Eksempel: [https://www.mediawiki.org/wiki/API#A_simple_example hente innholdet til en hovedside]. Velg en handling for å se flere eksempler.\n\nMerk at du kan utføre handlinger her som fører til endringer på wikien.",
        "apisandbox-submit": "Foreta en forespørsel",
        "apisandbox-reset": "Tilbakestill",
        "apisandbox-examples": "Eksempel",
        "trackingcategories-msg": "Sporingskategori",
        "trackingcategories-name": "Beskjednavn",
        "trackingcategories-desc": "Kategori-inklusjonskriterium",
+       "restricted-displaytitle-ignored": "Sider med ignorerte visningstitler",
        "noindex-category-desc": "Denne siden indekseres ikke av roboter fordi den er merket med det magiske ordet <code><nowiki>__NOINDEX__</nowiki></code> og er i navnerom der dette flagget tillates.",
        "index-category-desc": "Denne siden er påført det magiske ordet <code><nowiki>__INDEX__</nowiki></code> (og er i et navnerom hvor flagget er tillatt), og vil derfor bli indeksert av roboter selv når det normalt ikke ville skjedd.",
        "post-expand-template-inclusion-category-desc": "Sidestørrelsen er større enn <code>$wgMaxArticleSize</code> etter at alle maler er utvidet, så noen maler ble ikke utvidet.",
        "allmessagesname": "Navn",
        "allmessagesdefault": "Standardtekst",
        "allmessagescurrent": "Nåværende tekst",
-       "allmessagestext": "Dette er en liste over tilgjengelige systemmeldinger i MediaWiki-navnerommet.\nBesøk [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Oversettelse] og [//translatewiki.net translatewiki.net] om du ønsker å bidra med oversettelse av MediaWiki.",
+       "allmessagestext": "Dette er en liste over tilgjengelige systemmeldinger i MediaWiki-navnerommet.\nBesøk [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Oversettelse] og [https://translatewiki.net translatewiki.net] om du ønsker å bidra med oversettelse av MediaWiki.",
        "allmessagesnotsupportedDB": "''{{ns:special}}:Allmessages'' kan ikke brukes fordi '''$wgUseDatabaseMessages''' er slått av.",
        "allmessages-filter-legend": "Filtrér",
        "allmessages-filter": "Filtrér etter tilpasningsgrad",
        "feedback-close": "Utført",
        "feedback-external-bug-report-button": "Registrer en teknisk sak",
        "feedback-dialog-title": "Send tilbakemelding",
-       "feedback-dialog-intro": "Du kan benytte det enkle skjemaet under for å gi din tilbakemelding. Kommentaren din vil bli lagt til siden «$1» sammen med ditt brukernavn.",
+       "feedback-dialog-intro": "Bruk det enkle skjemaet under om du vil gi tilbakemelding. Kommentaren din vil bli lagt ut på siden «$1» sammen med brukernavnet ditt.",
        "feedback-error-title": "Feil",
        "feedback-error1": "Feil: Ukjent resultat fra API",
        "feedback-error2": "Feil: Redigering feilet",
        "feedback-message": "Melding:",
        "feedback-subject": "Emne:",
        "feedback-submit": "Send",
-       "feedback-terms": "Jeg er innforstått med at min nettleserinformasjon inkluderer nøyaktig informasjon om versjonen til min nettleser og mitt operativsystem og at dette vil bli delt offentlig sammen med min tilbakemelding.",
-       "feedback-termsofuse": "Jeg godtar å gi tilbakemelding i henhold til brukervilkårene.",
+       "feedback-terms": "Jeg er innforstått med at brukeragentinformasjonen min inkluderer nøyaktig informasjon om versjonen til nettleseren min og operativsystemet mitt, og at dette vil bli delt offentlig sammen med tilbakemeldingen min.",
+       "feedback-termsofuse": "Jeg godtar å gi tilbakemelding i tråd med bruksvilkårene.",
        "feedback-thanks": "Din tilbakemelding til siden \"[ $2  $1 ]\" er sendt. Takk skal du ha!",
        "feedback-thanks-title": "Takk!",
        "feedback-useragent": "Brukeragent",
        "mw-widgets-dateinput-placeholder-month": "ÅÅÅÅ-MM",
        "mw-widgets-titleinput-description-new-page": "siden eksisterer ikke ennå",
        "mw-widgets-titleinput-description-redirect": "omdiriger til $1",
-       "api-error-blacklisted": "Vennligst velg en annen beskrivende tittel.",
        "sessionprovider-generic": "$1 sesjoner",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "informasjons&shy;kapsel-baserte sesjoner",
        "randomrootpage": "Tilfeldig rotside"
index b612fe1..7beefc3 100644 (file)
        "badtitletext": "De naam van de op-evreugen zied is niet geldig, leeg, of n interwiki-verwiezing naor n onbekende of ongeldige wiki.",
        "perfcached": "Disse gegevens koemen uut t tussengeheugen en bin misschien niet aktueel. Der {{PLURAL:$1|is hooguut een resultaot|bin hooguut $1 resultaoten}} beschikbaor in t tussengeheugen.",
        "perfcachedts": "Disse gegevens koemen uut t tussengeheugen die veur t lest bie-ewörken is op $2 um $3. Der {{PLURAL:$4|is hooguut een resultaot|bin hooguut $4 resultaoten}} beschikbaor in t tussengeheugen.",
-       "querypage-no-updates": "'''Disse zied wörden niet meer bie-ewörken.'''",
+       "querypage-no-updates": "'''Disse zied wördt niet meer bie-ewörken.'''",
        "viewsource": "Brontekste bekieken",
        "viewsource-title": "Bron bekieken van $1",
        "actionthrottled": "Haandeling tegenehöllen",
        "protectedpagetext": "Disse zied is beveiligd. Bewarken of aandere haandelingen bin niet meugelik.",
        "viewsourcetext": "Je kunnen de brontekste van disse zied bewarken en bekieken.",
        "viewyourtext": "Je kunnen <strong>joew bewarkingen</strong> an de brontekste van disse zied bekieken en kopiëren.",
-       "protectedinterface": "Op disse zied steet tekste die gebruukt wördt veur systeemteksten van disse wiki. Allinnig beheerders kunnen disse zied bewarken.\nUm vertalingen veur alle wiki's derbie te zetten of te wiezigen, gebruuk [//translatewiki.net/ translatewiki.net], t vertaalprojekt veur MediaWiki.",
+       "protectedinterface": "Op disse zied steet tekste die gebruukt wördt veur systeemteksten van disse wiki. Allinnig beheerders kunnen disse zied bewarken.\nUm vertalingen veur alle wiki's derbie te zetten of te wiezigen, gebruuk [https://translatewiki.net/ translatewiki.net], t vertaalprojekt veur MediaWiki.",
        "editinginterface": "<strong>Waorschuwing:</strong> je bewarken n zied die gebruukt wördt deur de programmatuur. \nWa'j disse zied wiezigen is van invleud op t gebrukersuterlik veur aander gebrukers van disse wiki.",
-       "translateinterface": "Um vertalingen veur alle wiki's te doon of te wiezigen ku'j gebruukmaken van [//translatewiki.net/ translatewiki.net], t vertaalprojekt veur MediaWiki.",
+       "translateinterface": "Um vertalingen veur alle wiki's te doon of te wiezigen ku'j gebruukmaken van [https://translatewiki.net/ translatewiki.net], t vertaalprojekt veur MediaWiki.",
        "cascadeprotected": "Disse zied is beveiligd umdat t veurkömp in de volgende {{PLURAL:$1|zied|ziejen}}, die beveiligd {{PLURAL:$1|is|bin}} mit de \"kaskade\"-opsie:\n$2",
        "namespaceprotected": "Je maggen gien ziejen in de '''$1'''-naamruumte bewarken.",
        "customcssprotected": "Je kunnen disse CSS-zied niet bewarken, umdat der persoonlike instellingen van n aandere gebruker in staon.",
        "minoredit": "kleine wieziging",
        "watchthis": "volg disse zied",
        "savearticle": "Zied opslaon",
+       "savechanges": "Wiezigingen opslaon",
+       "publishpage": "Zied uutbrengen",
+       "publishchanges": "Wiezigingen uutbrengen",
        "preview": "Naokieken",
        "showpreview": "Bewarking naokieken",
        "showdiff": "Verschil bekieken",
        "content-model-text": "tekste zonder opmaak",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "content-json-empty-object": "Leeg objekt",
+       "content-json-empty-array": "Lege reeks",
        "expensive-parserfunction-warning": "Waorschuwing: disse zied gebruukt te veule kostbaore parserfunksies.\n\nNoen {{PLURAL:$1|is|bin}} t der $1, terwiel t der minder as $2 {{PLURAL:$2|mut|mutten}} ween.",
        "expensive-parserfunction-category": "Ziejen die te veule kostbaore parserfunksies gebruken",
        "post-expand-template-inclusion-warning": "Waorschuwing: de grootte van de in-evoegden mal is te groot.\nSommigen mallen wörden niet in-evoegd.",
        "history-feed-empty": "De op-evreugen zied besteet niet. t Kan ween dat disse zied vortedaon is of dat t herneumd is. Probeer te [[Special:Search|zeuken]] naor soortgelieke nieje ziejen.",
        "rev-deleted-comment": "(bewarkingsopmarking vortedaon)",
        "rev-deleted-user": "(gebrukersnaam vortedaon)",
-       "rev-deleted-event": "(antekening vortedaon)",
+       "rev-deleted-event": "(logboekregel vortedaon)",
        "rev-deleted-user-contribs": "[gebrukersnaam of IP-adres vortedaon - bewarking verbörgen in biedragen]",
        "rev-deleted-text-permission": "Disse bewarking is '''vortedaon'''.\nAs der meer informasie is, ku'j t vienen in t [{{fullurl:{{#Special:Log}}/delete|page={{PAGENAMEE}}}} vortdologboek].",
        "rev-deleted-text-unhide": "Disse bewarking is '''vortedaon'''.\nAs der meer informasie is, ku'j t vienen in t [{{fullurl:{{#Special:Log}}/delete|page={{PAGENAMEE}}}} vortdologboek].\nJe kunnen [$1 disse versie bekieken] a'j willen.",
        "revdelete-legend": "Stel versiebeparkingen in:",
        "revdelete-hide-text": "Versietekste",
        "revdelete-hide-image": "Verbarg bestaandsinhoud",
-       "revdelete-hide-name": "Verbarg logboekaksie",
+       "revdelete-hide-name": "Verbarg haandeling en doel",
        "revdelete-hide-comment": "Bewarkingssamenvatting",
        "revdelete-hide-user": "Gebrukersnaam/IP-adres van disse gebruker",
        "revdelete-hide-restricted": "Gegevens veur beheerders en aander volk onderdrokken",
        "revdelete-unsuppress": "Beparkingen veur weerummezetten versies vortdoon",
        "revdelete-log": "Reden:",
        "revdelete-submit": "Toepassen op de ekeuzen {{PLURAL:$1|bewarking|bewarkingen}}",
-       "revdelete-success": "'''De zichtbaorheid van de wieziging is bie-ewörken.'''",
+       "revdelete-success": "De zichtbaorheid van de wieziging is bie-ewörken.",
        "revdelete-failure": "'''De zichtbaorheid veur de wieziging kon niet bie-ewörken wörden:'''\n$1",
-       "logdelete-success": "'''Zichtbaorheid van de gebeurtenisse is suksesvol in-esteld.'''",
+       "logdelete-success": "Zichtbaorheid van de gebeurtenisse is in-esteld.",
        "logdelete-failure": "'''De zichtbaorheid van de logboekregel kon niet in-esteld wörden:'''\n$1",
        "revdel-restore": "Zichtbaorheid wiezigen",
        "pagehist": "Ziedgeschiedenisse",
        "mergehistory-go": "Bekiek bewarkingen die bie mekaar edaon kunnen wörden",
        "mergehistory-submit": "Versies bie mekaar doon",
        "mergehistory-empty": "Der bin gien versies die samenevoegd kunnen wörden.",
-       "mergehistory-done": "$3 {{PLURAL:$3|versie|versies}} van $1 bin suksesvol samenevoegd naor [[:$2]].",
+       "mergehistory-done": "$3 {{PLURAL:$3|versie|versies}} van $1 {{PLURAL:$3|is|bin}} suksesvol samenevoegd naor [[:$2]].",
        "mergehistory-fail": "Kan gien geschiedenisse samenvoegen, kiek opniej de zied- en tiedparameters nao.",
        "mergehistory-no-source": "Bronzied $1 besteet niet.",
        "mergehistory-no-destination": "Bestemmingszied $1 besteet niet.",
        "badsig": "Ongeldige haandtekening; HTML naokieken.",
        "badsiglength": "Joew haandtekening is te lang.\nt Mut minder as {{PLURAL:$1|letter|letters}} hebben.",
        "yourgender": "Geslacht:",
-       "gender-unknown": "Geet joe niks an",
+       "gender-unknown": "De programmatuur gebruukt zoveul meugelik geslachtsneutrale woorden as t over joe geet.",
        "gender-male": "Keerl",
        "gender-female": "Deerne",
        "prefs-help-gender": "Disse instelling is opsioneel.\n\nDe programmatuur gebruukt disse weerde um joe op de juuste maniere an te spreken en veur aandere gebrukers um joew geslacht an te geven.\nDisse informasie is zichtbaor veur aandere gebrukers.",
        "email": "Privéberichten",
-       "prefs-help-realname": "* Echte naam (niet verplicht): a'j disse opsie invullen zu'w joew echte naam gebruken um erkenning te geven veur joew warkzaamheen.",
+       "prefs-help-realname": "Echte naam is keuzevrie.\nA'j disse opsie invullen zu'w joew echte naam gebruken um erkenning te geven veur joew wark.",
        "prefs-help-email": "n Netpostadres is niet verplicht, mer zo ku'w wel joew wachtwoord toesturen veur a'j t vergeten bin.",
        "prefs-help-email-others": "Je kunnen oek aandere meensen de meugelikheid geven um kontakt mit joe op te nemen mit n verwiezing op joew gebrukers- en overlegzied zonder da'j de identiteit pries hoeven te geven.",
        "prefs-help-email-required": "Hier he'w n netpostadres veur neudig.",
        "userrights": "Gebrukersrechtenbeheer",
        "userrights-lookup-user": "Beheer gebrukersgroepen",
        "userrights-user-editname": "Vul n gebrukersnaam in:",
-       "editusergroup": "Bewark gebrukersgroepen",
+       "editusergroup": "Bewark {{GENDER:$1|gebrukersgroepen}}",
        "editinguser": "Doonde mit t wiezigen van de gebrukersrechten van '''[[User:$1|$1]]''' $2",
        "userrights-editusergroup": "Bewark gebrukersgroep",
        "saveusergroups": "Gebrukergroepen opslaon",
        "rightslogtext": "Dit is n logboek mit veraanderingen van gebrukersrechten",
        "action-read": "disse zied lezen",
        "action-edit": "disse zied bewarken",
-       "action-createpage": "ziejen schrieven",
-       "action-createtalk": "overlegziejen anmaken",
+       "action-createpage": "disse zied anmaken",
+       "action-createtalk": "disse overlegzied anmaken",
        "action-createaccount": "disse gebrukerskonto anmaken",
        "action-minoredit": "disse bewarking as klein markeren",
        "action-move": "disse zied herneumen",
        "unusedimages": "Ongebruukten bestaanden",
        "wantedcategories": "Gewunste kategorieën",
        "wantedpages": "Gewunste ziejen",
+       "wantedpages-summary": "Lieste van niet-bestaonde ziejen mit de meeste verwiezingen derhinne, ziejen waor allinnig mer naor deurverwezen wördt staon der niet bie. Veur n lieste van niet-bestaonde ziejen waor naor deurverwezen wördt, ku'j terechte op [[{{#special:BrokenRedirects}}|de lieste van ebreuken deurverwiezingen]].",
        "wantedpages-badtitle": "Ongeldige ziednaam in resultaot: $1",
        "wantedfiles": "Gewunste bestaanden",
        "wantedfiletext-cat": "De volgende bestaanden wörden gebruukt mer bestaon niet. Bestaanden van externe databanken kunnen op-eneumen ween in de lieste, ondanks dat ze bestaon. Soortgelieke vals positieven wörden <del>deurehaold weeregeven</del>. Ziejen die niet-bestaonde bestaanden insluten staon op de zied [[:$1]].",
        "nopagetext": "De zied die'j herneumen willen besteet niet.",
        "pager-newer-n": "{{PLURAL:$1|1 niejere|$1 niejere}}",
        "pager-older-n": "{{PLURAL:$1|1 ouwere|$1 ouwere}}",
-       "suppress": "Toezichte",
+       "suppress": "Toezicht",
        "querypage-disabled": "Disse spesiale zied is uutezet um prestasieredens.",
        "apisandbox": "API-zaandkule",
        "booksources": "Boekinformasie",
        "allmessagesname": "Naam",
        "allmessagesdefault": "Standardtekste",
        "allmessagescurrent": "De leste versie",
-       "allmessagestext": "Hieronder steet n lieste mit alle systeemteksten in de MediaWiki-naamruumte.\nKiek oek effen bie [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki-lokalisasie] en [//translatewiki.net translatewiki.net] a'j biedragen willen an de algemene vertaling veur MediaWiki.",
+       "allmessagestext": "Hieronder steet n lieste mit alle systeemteksten in de MediaWiki-naamruumte.\nKiek oek effen bie [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki-lokalisasie] en [https://translatewiki.net translatewiki.net] a'j biedragen willen an de algemene vertaling veur MediaWiki.",
        "allmessagesnotsupportedDB": "Disse zied kan niet gebruukt wörden umdat '''$wgUseDatabaseMessages''' uutezet is.",
        "allmessages-filter-legend": "Filter",
        "allmessages-filter": "Filtreer op wiezigingen:",
        "duplicate-defaultsort": "Waorschuwing: de standardsortering \"$2\" krig veurrang veur de sortering \"$1\".",
        "version": "Versie",
        "version-extensions": "Uutbreidingen die installeerd bin",
-       "version-skins": "Vormgevingen",
+       "version-skins": "Geïnstalleerden vormgevingen",
        "version-specialpages": "Spesiale ziejen",
        "version-parserhooks": "Parserhoeken",
        "version-variables": "Variabels",
        "version-entrypoints": "Webadressen veur ingangen",
        "version-entrypoints-header-entrypoint": "Ingang",
        "version-entrypoints-header-url": "Webadres",
-       "redirect": "Deurverwiezen op bestaandsnaam, gebrukersnummer, ziednummer of versienummer",
+       "redirect": "Deurverwiezen op bestaandsnaam, gebrukers-, zied-, versie- of logboekregelnummer",
        "redirect-summary": "Disse spesiale zied verwis deur naor n bestaand (as de bestaandsnaam op-egeven wördt), n zied (as n zied- of versienummer op-egeven wördt) of n gebrukerszied (as t gebrukersnummer op-egeven wördt). Gebruuk: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], of [[{{#Special:Redirect}}/user/101]].",
        "redirect-submit": "Zeuk",
        "redirect-lookup": "Opzeuken:",
        "special-characters-group-khmer": "Khmer",
        "special-characters-title-endash": "liggend streepjen",
        "special-characters-title-emdash": "gedachtenstreepjen",
-       "special-characters-title-minus": "minteken",
-       "api-error-blacklisted": "Kies n aandere, beschrievende naam."
+       "special-characters-title-minus": "minteken"
 }
index a840651..73f9631 100644 (file)
        "viewsourcetext": "Kannst den Borntext vun disse Siet ankieken un koperen:",
        "viewyourtext": "Du kannst '''dien Ännern''' an de Born vun düsse Sied ankieken un koperen:",
        "protectedinterface": "Op disse Siet staht Narichtentexte för dat System un de Siet is dorüm sparrt.",
-       "editinginterface": "'''Wohrschau:''' Disse Siet bargt Text, de vun de MediaWiki-Software för ehr Böverflach bruukt warrt.\nWat du hier ännerst, warkt sik op dat kumplette Wiki ut.\nWenn du Text översetten wist, de betherto noch gornich översett is, denn maak dat opbest op [//translatewiki.net/wiki/Main_Page?setlang=nds translatewiki.net], dat Översett-Projekt vun MediaWiki.",
+       "editinginterface": "'''Wohrschau:''' Disse Siet bargt Text, de vun de MediaWiki-Software för ehr Böverflach bruukt warrt.\nWat du hier ännerst, warkt sik op dat kumplette Wiki ut.\nWenn du Text översetten wist, de betherto noch gornich översett is, denn maak dat opbest op [https://translatewiki.net/wiki/Main_Page?setlang=nds translatewiki.net], dat Översett-Projekt vun MediaWiki.",
        "cascadeprotected": "Disse Siet is sperrt un kann nich ännert warrn. Dat kummt dorvun dat se in disse {{PLURAL:$1|Siet|Sieden}} inbunnen is, de över Kaskadensperr schuult {{PLURAL:$1|is|sünd}}:\n$2",
        "namespaceprotected": "Du hest keen Rechten, Sieden in’n Naamruum '''$1''' to ännern.",
        "customcssprotected": "Du hest keen Rechten, düsse CSS-Sied to bearbeiden, wieldat se de persöönlichen Instellen vun en annern Bruker to'n Inhaalt hett.",
index abc600d..2e34b74 100644 (file)
        "protectedpagetext": "यो पृष्ठ सम्पादन हुनबाट बचाउन सम्पादनमा तथा अन्यकार्यमा रोक लगाइएको छ।",
        "viewsourcetext": "तपाईँले यस पृष्ठको स्रोत हेर्न र प्रतिलिपी गर्न सक्नुहुन्छ ।",
        "viewyourtext": "यस पृष्ठमा रहेका '''तपाईँका सम्पादनहरू''' हेर्न या प्रतिलिपी गर्न सक्नुहुन्छ :",
-       "protectedinterface": "यो पृष्ठले सफ्टवेयरको लागि अन्तरमोहडा पाठ प्रदान गर्दछ , र यसलाई दुरुपयोग हुनबाट बचाउन सुरक्षा प्रादन गरिएको छ।\nसम्पूर्ण विकिहरूका लागि अनुवादमा परिवर्तन गर्नको लागि [//translatewiki.net/ translatewiki.net], प्रयोग गर्नुहोस् ,  मिडियाविकि स्थानियकरण परियोजना ।",
+       "protectedinterface": "यो पृष्ठले सफ्टवेयरको लागि अन्तरमोहडा पाठ प्रदान गर्दछ , र यसलाई दुरुपयोग हुनबाट बचाउन सुरक्षा प्रादन गरिएको छ।\nसम्पूर्ण विकिहरूका लागि अनुवादमा परिवर्तन गर्नको लागि [https://translatewiki.net/ translatewiki.net], प्रयोग गर्नुहोस् ,  मिडियाविकि स्थानियकरण परियोजना ।",
        "editinginterface": "<strong>चेतावनी:</strong> तपाईं यस पृष्ठलाई सम्पादन गर्नुहुँदैछ, जसले सफ्टवेयरको लागि \nइन्टरफेस सामग्रीहरू प्रदान गर्दछ।\nयस पृष्ठमा गरिएकोपरिवर्तनले यस विकिमा अरु प्रयोगकर्ताको इन्टरफेसको प्रदर्शनमा प्रभाव पार्नेछ ।",
-       "translateinterface": "सबै विकिहरूको लागी अनुवाद जोड्न वा परिवर्तन गर्नका लागि मीडियाविकि क्षेत्रीयकरण परियोजना [//translatewiki.net/ ट्रान्सलेटविकि.नेट]को प्रयोग गर्नुहोस।",
+       "translateinterface": "सबै विकिहरूको लागी अनुवाद जोड्न वा परिवर्तन गर्नका लागि मीडियाविकि क्षेत्रीयकरण परियोजना [https://translatewiki.net/ ट्रान्सलेटविकि.नेट]को प्रयोग गर्नुहोस।",
        "cascadeprotected": "यो पृष्ठ सम्पादन गर्नबाट सुरक्षित गरिएकोछ किनभनें {{PLURAL:$1|पृष्ठ |पृष्ठहरू}}मा सुरक्षित गर्नुका साथै प्रपात (\"cascading\") विकल्प खुल्ला राखिएको छ:\n$2",
        "namespaceprotected": " '''$1'''  नेमस्पेसमा रहेका पृष्ठहरू सम्पादन गर्ने अनुमति यहाँलाई छैन ।",
        "customcssprotected": "तपाईंलाई यो  पृष्ठ सम्पादन गर्ने अनुमति छैन, किनकी यसमा कुनै अर्को प्रयोगकर्ताको व्यक्तिगत अभिरुचीहरू संग्रहित छन् ।",
        "resetpass-temp-password": "अस्थाइ पासवर्ड",
        "resetpass-abort-generic": "एक्सटेन्सनले पासवर्ड परिवर्तनलाई बन्द गराएको छ ।",
        "resetpass-expired": "तपाईंको पासवर्ड पूरानो भएकोछ । कृपया प्रवेश (लग इन) को लागी नयाँ पासवर्ड राख्नुहोस् ।",
-       "resetpass-expired-soft": "तपाईंको पासवर्ड म्याद सकिएको छ र यसलाई रिसेट गर्नुपर्नेछ। कृपया एउटा नयाँ पासवर्ड छान्नुहोस् वा \"{{int:resetpass-submit-cancel}}\"मा क्लिक गरी पछि रिसेट गर्नुहोला।",
-       "resetpass-validity-soft": "तपाईंको पासवर्ड मान्य छैन:$1\n\nकृपया नयाँ पासवर्ड छान्नुहोस् वा \"{{int:resetpass-submit-cancel}}\"मा क्लिक गरी पछि रिसेट गर्नुहोला।",
+       "resetpass-expired-soft": "तपाईंको पासवर्ड म्याद सकिएको छ र यसलाई रिसेट गर्नुपर्नेछ। कृपया एउटा नयाँ पासवर्ड छान्नुहोस् वा \"{{int:authprovider-resetpass-skip-label}}\"मा क्लिक गरी पछि रिसेट गर्नुहोला।",
+       "resetpass-validity-soft": "तपाईंको पासवर्ड मान्य छैन:$1\n\nकृपया नयाँ पासवर्ड छान्नुहोस् वा \"{{int:authprovider-resetpass-skip-label}}\"मा क्लिक गरी पछि रिसेट गर्नुहोला।",
        "passwordreset": "प्रवेशशव्द पुनः तय गर्ने",
        "passwordreset-text-one": "इमेल मार्फल अस्थायी पासवर्ड प्राप्त गर्नको लागी यस फारमलाई पूर्ण रूपमा भर्नुहोस् ।",
        "passwordreset-text-many": "{{PLURAL:$1|कृपया यहाँ मध्ये एउटा क्षेत्र भरि अस्थाई पासवर्ड इमेल मार्फत प्राप्त गर्नुहोस।}}",
        "allmessagesname": "नाम",
        "allmessagesdefault": "डिफल्ट सन्देश पाठ",
        "allmessagescurrent": "वर्तमान सन्देश पाठ",
-       "allmessagestext": "यो मीडियाविकि नेमस्पेसमा पाइने सिस्टम सन्देशहरूको सूची हो।\nयदि तपाईं व्यापक मीडिया विकि स्थानीयकरणमा योगदान गर्न चाहनुहुन्छ भनें कृपया [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation]मा र [//translatewiki.net translatewiki.net]मा जानुहोस्।",
+       "allmessagestext": "यो मीडियाविकि नेमस्पेसमा पाइने सिस्टम सन्देशहरूको सूची हो।\nयदि तपाईं व्यापक मीडिया विकि स्थानीयकरणमा योगदान गर्न चाहनुहुन्छ भनें कृपया [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation]मा र [https://translatewiki.net translatewiki.net]मा जानुहोस्।",
        "allmessagesnotsupportedDB": "<strong>$wgUseDatabaseMessages</strong> लाई निस्क्रिय गरिएकोले यो पृष्ठ प्रयोग गर्न सकिदैन ।",
        "allmessages-filter-legend": "फिल्टर",
        "allmessages-filter": "अनुकूल स्थितिको आधारमा छान्नुहोस्:",
index 6458575..f78bf5b 100644 (file)
@@ -21,7 +21,7 @@
        "actionthrottledtext": "Als maatregel tegen spam is het aantal keren per tijdseenheid dat je deze handeling kunt verrichten beperkt.\nDe limiet is overschreden.\nProbeer het over een aantal minuten opnieuw.",
        "viewsourcetext": "Je kunt de brontekst van deze pagina bekijken en kopiëren:",
        "viewyourtext": "Je kunt '''uw bewerkingen''' aan de brontekst van deze pagina bekijken en kopiëren:",
-       "editinginterface": "'''Waarschuwing:''' je bewerkt een pagina die interfacetekst voor de software bevat.\nBewerkingen op deze pagina beïnvloeden de gebruikersinterface van iedereen op deze wiki.\nGebruik [//translatewiki.net/ translatewiki.net], het vertaalproject voor MediaWiki, om vertalingen toe te voegen of te wijzigen voor alle wiki's.",
+       "editinginterface": "'''Waarschuwing:''' je bewerkt een pagina die interfacetekst voor de software bevat.\nBewerkingen op deze pagina beïnvloeden de gebruikersinterface van iedereen op deze wiki.\nGebruik [https://translatewiki.net/ translatewiki.net], het vertaalproject voor MediaWiki, om vertalingen toe te voegen of te wijzigen voor alle wiki's.",
        "namespaceprotected": "Je hebt geen rechten om pagina's in de naamruimte '''$1''' te bewerken.",
        "customcssprotected": "Je kunt deze CSS-pagina niet bewerken, omdat die persoonlijke instellingen van een andere gebruiker bevat.",
        "customjsprotected": "Je kunt deze JavaScriptpagina niet bewerken, omdat die persoonlijke instellingen van een andere gebruiker bevat.",
        "cantmove-titleprotected": "Je kunt geen pagina naar deze naam hernoemen, omdat deze naam beveiligd is tegen het aanmaken ervan.",
        "delete_and_move_text": "==Verwijdering nodig==\nOnder de naam \"[[:$1]]\" bestaat al een pagina.\nWil je deze verwijderen om plaats te maken voor de te hernoemen pagina?",
        "exporttext": "Je kunt de tekst en geschiedenis van een pagina of pagina's exporteren naar XML.\nDit exportbestand is daarna te importeren in een andere MediaWiki via de [[Special:Import|importpagina]].\n\nGeef in het onderstaande veld de namen van de te exporteren pagina's op, één pagina per regel, en geef aan of je alle versies met de bewerkingssamenvatting of alleen de huidige versies met de bewerkingssamenvatting wilt exporteren.\n\nIn het laatste geval kan je ook een koppeling gebruiken, bijvoorbeeld [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] voor de pagina \"[[{{MediaWiki:Mainpage}}]]\".",
-       "allmessagestext": "Hieronder staan de systeemberichten uit de MediaWiki-naamruimte.\nGa naar [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki-lokalisatie] en [//translatewiki.net translatewiki.net] als je wilt bijdragen aan de algemene vertaling voor MediaWiki.",
+       "allmessagestext": "Hieronder staan de systeemberichten uit de MediaWiki-naamruimte.\nGa naar [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki-lokalisatie] en [https://translatewiki.net translatewiki.net] als je wilt bijdragen aan de algemene vertaling voor MediaWiki.",
        "importtext": "Gebruik de [[Special:Export|exportfunctie]] in de wiki waar de informatie vandaan komt.\nSla de uitvoer op je eigen computer op, en voeg die daarna hier toe.",
        "import-error-edit": "De pagina \"$1\" is niet geïmporteerd omdat je niet de rechten hebt om die te bewerken.",
        "import-error-create": "De pagina \"$1\" is niet geïmporteerd omdat je niet de rechten hebt om die aan te maken.",
index fa9dcb9..ee99f80 100644 (file)
                        "Nemo bis",
                        "Lemondoge",
                        "Dinosaur918",
-                       "Jdforrester"
+                       "Jdforrester",
+                       "Jeleniccz"
                ]
        },
        "tog-underline": "Koppelingen onderstrepen:",
-       "tog-hideminor": "Kleine wijzigingen verbergen in recente wijzigingen",
+       "tog-hideminor": "Kleine bewerkingen verbergen in recente wijzigingen",
        "tog-hidepatrolled": "Gemarkeerde wijzigingen verbergen in recente wijzigingen",
        "tog-newpageshidepatrolled": "Gemarkeerde pagina's verbergen in de lijst met nieuwe pagina's",
        "tog-hidecategorization": "Categorisatie van pagina's verbergen",
        "protectedpagetext": "Deze pagina is beveiligd. Bewerken of andere handelingen zijn niet mogelijk.",
        "viewsourcetext": "U kunt de brontekst van deze pagina bekijken en kopiëren.",
        "viewyourtext": "U kunt <strong>uw bewerkingen</strong> aan de brontekst van deze pagina bekijken en kopiëren.",
-       "protectedinterface": "Deze pagina bevat tekst voor berichten van de software op deze wiki en is beveiligd om misbruik te voorkomen.\nGebruik [//translatewiki.net/ translatewiki.net], het vertaalproject voor MediaWiki, om vertalingen voor alle wiki's toe te voegen of te wijzigen.",
-       "editinginterface": "<strong>Waarschuwing:</strong> u bewerkt een pagina die interfacetekst voor de software bevat.\nBewerkingen op deze pagina beïnvloeden de gebruikersinterface van iedereen op deze wiki.\nGebruik [//translatewiki.net/ translatewiki.net], het vertaalproject voor MediaWiki, om vertalingen toe te voegen of te wijzigen voor alle wiki's.",
-       "translateinterface": "Om vertalingen voor alle wiki's toe te voegen of te wijzigen kunt u gebruik maken van [//translatewiki.net/ translatewiki.net], het vertaalproject voor MediaWiki.",
+       "protectedinterface": "Deze pagina bevat tekst voor berichten van de software op deze wiki en is beveiligd om misbruik te voorkomen.\nGebruik [https://translatewiki.net/ translatewiki.net], het vertaalproject voor MediaWiki, om vertalingen voor alle wiki's toe te voegen of te wijzigen.",
+       "editinginterface": "<strong>Waarschuwing:</strong> u bewerkt een pagina die interfacetekst voor de software bevat.\nBewerkingen op deze pagina beïnvloeden de gebruikersinterface van iedereen op deze wiki.\nGebruik [https://translatewiki.net/ translatewiki.net], het vertaalproject voor MediaWiki, om vertalingen toe te voegen of te wijzigen voor alle wiki's.",
+       "translateinterface": "Om vertalingen voor alle wiki's toe te voegen of te wijzigen kunt u gebruik maken van [https://translatewiki.net/ translatewiki.net], het vertaalproject voor MediaWiki.",
        "cascadeprotected": "Deze pagina kan niet bewerkt worden, omdat ze is opgenomen in de volgende {{PLURAL:$1|pagina|pagina's}} die beveiligd {{PLURAL:$1|is|zijn}} met de cascade-optie:\n$2",
        "namespaceprotected": "U hebt geen rechten om pagina's in de naamruimte <strong>$1</strong> te bewerken.",
        "customcssprotected": "U kunt deze CSS-pagina niet bewerken, omdat die persoonlijke instellingen van een andere gebruiker bevat.",
        "password-change-forbidden": "U kunt uw wachtwoord niet wijzigen in deze wiki.",
        "externaldberror": "Er is een fout opgetreden bij het aanmelden bij de database of u hebt geen toestemming uw externe gebruiker bij te werken.",
        "login": "Aanmelden",
+       "login-security": "Uw identiteit controleren",
        "nav-login-createaccount": "Aanmelden / registreren",
        "userlogin": "Aanmelden / registreren",
        "userloginnocreate": "Aanmelden",
        "createacct-another-realname-tip": "Echte naam is optioneel.\nAls u deze opgeeft, wordt deze naam gebruikt worden om u erkenning te geven voor uw werk.",
        "pt-login": "Aanmelden",
        "pt-login-button": "Aanmelden",
+       "pt-login-continue-button": "Doorgaan met aanmelden",
        "pt-createaccount": "Registreren",
        "pt-userlogout": "Afmelden",
        "php-mail-error-unknown": "Er is een onbekende fout opgetreden in de mail()-functie van PHP",
        "botpasswords-invalid-name": "De gebruikersnaam bevat niet het scheidingsteken van het botwachtwoord (\"$1\").",
        "botpasswords-not-exist": "Gebruiker \"$1\" heeft geen botwachtwoord genaamd \"$2\"",
        "resetpass_forbidden": "Wachtwoorden kunnen niet gewijzigd worden",
+       "resetpass_forbidden-reason": "Wachtwoorden kunnen niet gewijzigd worden: $1",
        "resetpass-no-info": "U dient aangemeld zijn voordat u deze pagina kunt gebruiken.",
        "resetpass-submit-loggedin": "Wachtwoord wijzigen",
        "resetpass-submit-cancel": "Annuleren",
        "resetpass-temp-password": "Tijdelijk wachtwoord:",
        "resetpass-abort-generic": "De wachtwoordwijziging is afgebroken door een uitbreiding.",
        "resetpass-expired": "Uw wachtwoord is verlopen. Stel een nieuw wachtwoord om aan te melden.",
-       "resetpass-expired-soft": "Uw wachtwoord is verlopen en moet opnieuw worden ingesteld. Kies nu een nieuw wachtwoord of klik op \"{{int:resetpass-submit-cancel}}\" om dit later te doen.",
-       "resetpass-validity-soft": "Uw wachtwoord is niet geldig: $1\n\nKies nu een nieuw wachtwoord of klik \"{{int:resetpass-submit-cancel}}\" om het later opnieuw in te stellen.",
+       "resetpass-expired-soft": "Uw wachtwoord is verlopen en moet opnieuw worden ingesteld. Kies nu een nieuw wachtwoord of klik op \"{{int:authprovider-resetpass-skip-label}}\" om dit later te doen.",
+       "resetpass-validity-soft": "Uw wachtwoord is niet geldig: $1\n\nKies nu een nieuw wachtwoord of klik \"{{int:authprovider-resetpass-skip-label}}\" om het later opnieuw in te stellen.",
        "passwordreset": "Wachtwoord opnieuw instellen",
        "passwordreset-text-one": "Vul dit formulier in om uw wachtwoord opnieuw in te stellen.",
        "passwordreset-text-many": "{{PLURAL:$1|Vul een van de gegevensvelden in om per e-mail een tijdelijk wachtwoord te ontvangen.}}",
        "passwordreset-emailsentusername": "Als er een e-mailadres geregistreerd is voor die gebruikersnaam, dan wordt er een e-mail verzonden om uw wachtwoord opnieuw in te stellen.",
        "passwordreset-emailsent-capture": "Er is een e-mail voor het opnieuw instellen van een wachtwoord verzonden. Deze wordt hieronder weergegeven.",
        "passwordreset-emailerror-capture": "Er is een e-mail voor het opnieuw instellen van een wachtwoord aangemaakt. Deze wordt hieronder weergegeven. Het verzenden naar de {{GENDER:$2|gebruiker}} is mislukt om de volgende reden: $1",
+       "passwordreset-invalideamil": "Ongeldig e-mailadres",
        "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-passwordrequired": "U  moet uw wachtwoord invoeren om deze wijziging te bevestigen.",
        "minoredit": "Dit is een kleine bewerking",
        "watchthis": "Deze pagina volgen",
        "savearticle": "Pagina opslaan",
+       "savechanges": "Wijzigingen opslaan",
        "publishpage": "Pagina publiceren",
+       "publishchanges": "Wijzigingen publiceren",
        "preview": "Voorvertoning",
        "showpreview": "Bewerking ter controle bekijken",
        "showdiff": "Wijzigingen bekijken",
        "content-model-css": "CSS",
        "content-json-empty-object": "Leeg object",
        "content-json-empty-array": "Lege reeks",
+       "deprecated-self-close-category": "Pagina's met ongeldige zelfsluitende HTML-tags",
        "duplicate-args-warning": "<strong>Waarschuwing:</strong> [[:$1]] roept [[:$2]] aan met meer dan één waarde voor de parameter \"$3\". Alleen de laatste waarde wordt gebruikt.",
        "duplicate-args-category": "Pagina's met dubbele sjabloonparameters",
        "duplicate-args-category-desc": "De pagina bevat aanroepen van sjablonen waarin hetzelfde argument meerdere keren wordt gebruikt, bijvoorbeeld <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> of <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "rightslogtext": "Hieronder staan de wijzigingen in gebruikersrechten.",
        "action-read": "deze pagina te bekijken",
        "action-edit": "deze pagina te bewerken",
-       "action-createpage": "pagina's aan te maken",
+       "action-createpage": "deze pagina aan te maken",
        "action-createtalk": "overlegpagina's aan te maken",
        "action-createaccount": "deze gebruiker aan te maken",
        "action-autocreateaccount": "dit externe gebruikersaccount automatisch aanmaken",
        "recentchanges-submit": "Weergeven",
        "rcnotefrom": "Wijzigingen sinds <strong>$3 om $4</strong> (maximaal <strong>$1</strong> {{PLURAL:$1|wijziging|wijzigingen}}).",
        "rclistfrom": "Wijzigingen bekijken vanaf $3 $2",
-       "rcshowhideminor": "Kleine wijzigingen $1",
+       "rcshowhideminor": "Kleine bewerkingen $1",
        "rcshowhideminor-show": "weergeven",
        "rcshowhideminor-hide": "verbergen",
        "rcshowhidebots": "bots $1",
        "apisandbox": "API-zandbak",
        "apisandbox-jsonly": "JavaScript is vereist om de API-zandbak te kunnen gebruiken.",
        "apisandbox-api-disabled": "De API is uitgeschakeld op deze site.",
-       "apisandbox-intro": "Gebruik deze pagina om te experimenteren met de <strong>MediaWiki-API</strong>.\nZie de [[mw:API:Main page|API-documentatie]] voor verdere details over het gebruik van de API. Voorbeeld: [//www.mediawiki.org/wiki/API#A_simple_example hoe de inhoud van een Hoofdpagina ophalen]. Selecteer een handeling om meer voorbeelden te zien.\n\nHoewel dit een testfunctie is, kunnen sommige handelingen toch wijzigingen in de wiki maken.",
+       "apisandbox-intro": "Gebruik deze pagina om te experimenteren met de <strong>MediaWiki-API</strong>.\nZie de [[mw:API:Main page|API-documentatie]] voor verdere details over het gebruik van de API. Voorbeeld: [https://www.mediawiki.org/wiki/API#A_simple_example hoe de inhoud van een Hoofdpagina ophalen]. Selecteer een handeling om meer voorbeelden te zien.\n\nHoewel dit een testfunctie is, kunnen sommige handelingen toch wijzigingen in de wiki maken.",
        "apisandbox-fullscreen": "Paneel uitvouwen",
        "apisandbox-fullscreen-tooltip": "Het zandbakpaneel zo groot als het browservenster maken.",
        "apisandbox-unfullscreen": "Pagina weergeven",
        "sp-contributions-username": "IP-adres of gebruikersnaam:",
        "sp-contributions-toponly": "Alleen nieuwste versies weergeven",
        "sp-contributions-newonly": "Alleen nieuwe pagina's weergeven",
+       "sp-contributions-hideminor": "Kleine bewerkingen verbergen",
        "sp-contributions-submit": "Bekijken",
        "whatlinkshere": "Koppelingen naar deze pagina",
        "whatlinkshere-title": "Pagina's die verwijzen naar \"$1\"",
        "confirm-watch-top": "Deze pagina toevoegen aan uw volglijst?",
        "confirm-unwatch-button": "OK",
        "confirm-unwatch-top": "Deze pagina verwijderen uit uw volglijst?",
+       "confirm-rollback-button": "OK",
+       "confirm-rollback-top": "Bewerkingen op deze pagina terugdraaien?",
        "quotation-marks": "\"$1\"",
        "imgmultipageprev": "← vorige pagina",
        "imgmultipagenext": "volgende pagina →",
        "timezone-local": "Lokale tijd",
        "duplicate-defaultsort": "'''Waarschuwing:''' de standaardsortering \"$2\" krijgt voorrang voor de sortering \"$1\".",
        "duplicate-displaytitle": "<strong>Waarschuwing:</strong>Titelweergave \"$2\" overschrijft eerdere titelweergave \"$1\".",
-       "restricted-displaytitle": "<strong>Waarschuwing:</strong> Titelweergave \"$1\" werd genegeerd omdat het niet overeenkomt met de werkelijke titel van de pagina.",
+       "restricted-displaytitle": "<strong>Waarschuwing:</strong> Titelweergave \"$1\" werd genegeerd omdat deze niet overeenkomt met de werkelijke paginatitel.",
        "invalid-indicator-name": "<strong>Fout:</strong> de eigenschap <code>name</code> van de paginastatusindicators mag niet leeg zijn.",
        "version": "Versie",
        "version-extensions": "Geïnstalleerde uitbreidingen",
        "mw-widgets-dateinput-placeholder-month": "JJJJ-MM",
        "mw-widgets-titleinput-description-new-page": "pagina bestaat nog niet",
        "mw-widgets-titleinput-description-redirect": "doorverwijzing naar $1",
-       "api-error-blacklisted": "Kies een andere, beschrijvende naam.",
        "sessionmanager-tie": "Het is niet mogelijk om meerdere authenticatietypen voor verzoeken te combineren: $1.",
        "sessionprovider-generic": "$1-sessies",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "op cookies gebaseerde sessies",
        "log-action-filter-block-unblock": "Opheffing van blokkade",
        "log-action-filter-delete-delete": "Verwijderen van pagina",
        "log-action-filter-delete-restore": "Terugplaatsen van pagina",
+       "log-action-filter-newusers-create": "Aangemaakt door een anonieme gebruiker",
+       "log-action-filter-newusers-create2": "Aangemaakt door een geregistreerde gebruiker",
        "log-action-filter-newusers-autocreate": "Automatische aanmaak",
+       "log-action-filter-newusers-byemail": "Aangemaakt met wachtwoord verzonden via e-mail",
        "log-action-filter-patrol-patrol": "Handmatige markering",
        "log-action-filter-patrol-autopatrol": "Automatische markering",
        "log-action-filter-protect-protect": "Beveiliging",
        "log-action-filter-rights-rights": "Handmatige aanpassing",
        "log-action-filter-rights-autopromote": "Automatische aanpassing",
        "log-action-filter-upload-upload": "Nieuwe upload",
-       "log-action-filter-upload-overwrite": "Herupload"
+       "log-action-filter-upload-overwrite": "Herupload",
+       "authmanager-authn-autocreate-failed": "Het automatisch aanmaken van een lokaal account is mislukt: $1",
+       "authmanager-create-disabled": "Het aanmaken van accounts is uitgeschakeld.",
+       "authmanager-email-label": "E-mail",
+       "authmanager-email-help": "E-mailadres",
+       "authmanager-realname-label": "Echte naam",
+       "authmanager-realname-help": "Echte naam van de gebruiker",
+       "authmanager-provider-temporarypassword": "Tijdelijk wachtwoord",
+       "authprovider-resetpass-skip-label": "Overslaan",
+       "specialpage-securitylevel-not-allowed-title": "Niet toegestaan"
 }
index c5c1570..0909fd5 100644 (file)
        "protectedpagetext": "Sida har vorte verna for å hindra endring eller andre handlingar.",
        "viewsourcetext": "Du kan sjå og kopiere kjeldekoden til denne sida:",
        "viewyourtext": "Du kan sjå og kopiera kjelda til '''endringane dine''' på sida:",
-       "protectedinterface": "Denne sida inneheld tekst nytta av brukargrensesnittet for programvara på wikien, og er låst for å hindra hærverk.\nFor å leggja til eller endra omsetjingar for alle wikiar, gjer vel å nytta [//translatewiki.net/wiki/Main_Page?setlang=nn translatewiki.net], prosjektet for lokalisering av MediaWiki.",
-       "editinginterface": "'''Åtvaring:''' Du endrar på ei side som inneheld tekst nytta av brukargrensesnittet for programvara.\nEndringar på denne sida påverkar utsjånaden til brukargrensesnittet for dei andre brukarane av wikien.\nFor å leggja til eller endra omsetjingar, gjer vel å nytta [//translatewiki.net/wiki/Main_Page?setlang=nn translatewiki.net], prosjektet for lokalisering av MediaWiki.",
+       "protectedinterface": "Denne sida inneheld tekst nytta av brukargrensesnittet for programvara på wikien, og er låst for å hindra hærverk.\nFor å leggja til eller endra omsetjingar for alle wikiar, gjer vel å nytta [https://translatewiki.net/wiki/Main_Page?setlang=nn translatewiki.net], prosjektet for lokalisering av MediaWiki.",
+       "editinginterface": "'''Åtvaring:''' Du endrar på ei side som inneheld tekst nytta av brukargrensesnittet for programvara.\nEndringar på denne sida påverkar utsjånaden til brukargrensesnittet for dei andre brukarane av wikien.\nFor å leggja til eller endra omsetjingar, gjer vel å nytta [https://translatewiki.net/wiki/Main_Page?setlang=nn translatewiki.net], prosjektet for lokalisering av MediaWiki.",
        "cascadeprotected": "Denne sida er verna mot endring fordi ho er inkludert i {{PLURAL:$1|den opplista sida|dei opplista sidene}} som har djupvern slått på:\n$2",
        "namespaceprotected": "Du har ikkje tilgang til å endre sidene i '''$1'''-namnerommet.",
        "customcssprotected": "↓Du har ikkje tilgang til å endre denne sida, fordi ho inneheld ein annan brukar sine personlege innstillingar.",
        "resetpass-wrong-oldpass": "Feil mellombels eller noverande passord.\nDu kan allereie ha byta passordet, eller ha bede om å få eit nytt mellombels passord.",
        "resetpass-temp-password": "Mellombels passord:",
        "resetpass-abort-generic": "Passordbytet vart stogga av ei utviding.",
-       "resetpass-validity-soft": "Passordet ditt er ikkje gyldig: $1\n\nGjer vel å velja eit nytt passord no, eller klikk «{{int:resetpass-submit-cancel}}» for å endra det seinare.",
+       "resetpass-validity-soft": "Passordet ditt er ikkje gyldig: $1\n\nGjer vel å velja eit nytt passord no, eller klikk «{{int:authprovider-resetpass-skip-label}}» for å endra det seinare.",
        "passwordreset": "Attendestilling av passord",
        "passwordreset-text-one": "Fyll ut dette skjemaet for å attendestilla passordet ditt.",
        "passwordreset-disabled": "↓Tilbakestilling av passord er ikkje aktivert på denne wikien",
        "upload-too-many-redirects": "URL-en inneheldt for mange omdirigeringar",
        "upload-http-error": "Ein HTTP-feil oppstod: $1",
        "upload-copy-upload-invalid-domain": "Kopiopplastingar er ikkje tilgjengelege frå dette domenet.",
+       "upload-dialog-button-cancel": "Bryt av",
        "backend-fail-stream": "Kunne ikkje strøyma fila «$1».",
        "backend-fail-backup": "Kunne ikkje tryggingskopiera fila «$1».",
        "backend-fail-notexists": "Fila $1 finst ikkje.",
        "querypage-disabled": "Spesialsida er slegen av for skuld yting.",
        "apisandbox": "API-sandkasse",
        "apisandbox-api-disabled": "API er slege av på nettstaden.",
-       "apisandbox-intro": "Nytt sida til å røyna ut '''MediaWiki web service API''-en.\nSjå [//www.mediawiki.org/wiki/API:Main_page API-dokumentasjonen] for meir informasjon om bruk av API-en. Døme: [//www.mediawiki.org/wiki/API#A_simple_example hent innhaldet til ei hovudside].\nVel ei handling for å sjå fleire døme.",
+       "apisandbox-intro": "Nytt sida til å røyna ut '''MediaWiki web service API''-en.\nSjå [https://www.mediawiki.org/wiki/API:Main_page API-dokumentasjonen] for meir informasjon om bruk av API-en. Døme: [https://www.mediawiki.org/wiki/API#A_simple_example hent innhaldet til ei hovudside].\nVel ei handling for å sjå fleire døme.",
        "apisandbox-submit": "Gjer førespurnad",
        "apisandbox-reset": "Tøm",
        "apisandbox-examples": "Døme",
        "allmessagesname": "Namn",
        "allmessagesdefault": "Standardtekst",
        "allmessagescurrent": "Gjeldande meldingstekst",
-       "allmessagestext": "Dette er ei liste over systemmeldingar i MediaWiki-namnerommet.\nVitja [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] og [//translatewiki.net translatewiki.net] om du ynskjer å bidra til den generelle omsetjinga av MediaWiki.",
+       "allmessagestext": "Dette er ei liste over systemmeldingar i MediaWiki-namnerommet.\nVitja [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] og [https://translatewiki.net translatewiki.net] om du ynskjer å bidra til den generelle omsetjinga av MediaWiki.",
        "allmessagesnotsupportedDB": "Denne sida kan ein ikkje bruka fordi «'''$wgUseDatabaseMessages'''» er slått av.",
        "allmessages-filter-legend": "Filtrer",
        "allmessages-filter": "Filtrer etter tilpassingsgrad:",
        "api-error-badtoken": "Intern feil: ugild token.",
        "api-error-copyuploaddisabled": "Opplasting etter URL er avslege på tenaren.",
        "api-error-duplicate": "Det finst {{PLURAL:$1|ei anna fil|andre filer}} på nettstaden med same innhaldet.",
-       "api-error-duplicate-archive": "Det fanst {{PLURAL:$1|ei anna fi]|andre file]}} på nettstaden med det same innhaldet, men {{PLURAL:$1|ho|dei}} vart sletta.",
+       "api-error-duplicate-archive": "Det fanst {{PLURAL:$1|ei anna fi|andre file}} på nettstaden med det same innhaldet, men {{PLURAL:$1|ho|dei}} vart sletta.",
        "api-error-empty-file": "Fila du sende var tom.",
        "api-error-emptypage": "Det er ikkje tillate å oppretta nye tomme sider.",
        "api-error-fetchfileerror": "Intern feil: Noko gjekk gale då fila vart henta.",
        "mw-widgets-dateinput-placeholder-month": "ÅÅÅÅ-MM",
        "mw-widgets-titleinput-description-new-page": "sida finst ikkje enno",
        "mw-widgets-titleinput-description-redirect": "omdiriger til $1",
-       "api-error-blacklisted": "Vel eit anna namn som er meir skildrande.",
        "randomrootpage": "Tilfeldig rotsida"
 }
index d67458b..8eb3af7 100644 (file)
@@ -28,7 +28,7 @@
        "tog-numberheadings": "Numerotar automaticament los títols",
        "tog-showtoolbar": "Far veire la barra d'aisinas de modificacion (necessita JavaScript)",
        "tog-editondblclick": "Modificar de paginas amb un clic doble (necessita JavaScript)",
-       "tog-editsectiononrightclick": "Activar la modificacion de seccions en fasent un clic drech suls títols (necessita JavaScript)",
+       "tog-editsectiononrightclick": "Activar la modificacion de seccions en fasent un clic dreit suls títols (necessita JavaScript)",
        "tog-watchcreations": "Apondre las paginas que creï e los fichièrs qu'impòrti a ma lista de seguiment",
        "tog-watchdefault": "Apondre las paginas que modifiqui e los fichièrs qu'impòrti a ma lista de seguiment",
        "tog-watchmoves": "Apondre las paginas e los fichièrs que tòrni nomenar a ma lista de seguiment",
        "tog-uselivepreview": "Utilizar l’apercebut rapid",
        "tog-forceeditsummary": "M'avertir quand ai pas completat lo contengut de la bóstia de comentaris",
        "tog-watchlisthideown": "Amagar mas pròprias modificacions dins la lista de seguiment",
-       "tog-watchlisthidebots": "Amagar los cambiaments faches pels bòts dins la lista de seguiment",
+       "tog-watchlisthidebots": "Amagar los cambiaments faits pels bòts dins la lista de seguiment",
        "tog-watchlisthideminor": "Amagar las modificacions menoras dins la lista de seguiment",
        "tog-watchlisthideliu": "Amaga, de la lista, las modificacions pels utilizaires connectats",
+       "tog-watchlistreloadautomatically": "Recargar automaticament la lista de seguiment quand las opcions de filtratge son modificadas (JavaScript requesit)",
        "tog-watchlisthideanons": "Amaga, de la lista, las modificacions anonimas",
        "tog-watchlisthidepatrolled": "Amagar las modificacions susvelhadas de la lista de seguiment",
+       "tog-watchlisthidecategorization": "Amagar la categorizacion de las paginas",
        "tog-ccmeonemails": "Me mandar una còpia dels corrièrs electronics que mandi als autres utilizaires",
        "tog-diffonly": "Far pas veire lo contengut de las paginas jos las difs",
        "tog-showhiddencats": "Afichar las categorias amagadas",
-       "tog-norollbackdiff": "Ometre lo diff aprèp l’utilizacion d’un revert",
+       "tog-norollbackdiff": "Afichar pas lo diff aprèp aver revocat",
        "tog-useeditwarning": "M’avisar quand quiti una pagina de modificacion sens publicar los cambiaments",
        "tog-prefershttps": "Utilizar totjorn una connexion securizada en essent connectat",
        "underline-always": "Totjorn",
        "viewhelppage": "Vejatz la pagina d'ajuda",
        "categorypage": "Vejatz la pagina de las categorias",
        "viewtalkpage": "Pagina de discussion",
-       "otherlanguages": "En autras lengas",
+       "otherlanguages": "Dins d'autras lengas",
        "redirectedfrom": "(Redirigit dempuèi $1)",
        "redirectpagesub": "Pagina de redireccion",
        "redirectto": "Redirigir cap a :",
        "jumptosearch": "Recercar",
        "view-pool-error": "O planhèm, los servidors son subrecargats pel moment.\nTròp d’utilizaires cercan a accedir a aquesta pagina.\nEsperatz un moment abans d'ensajar d’accedir a aquesta pagina.\n\n$1",
        "generic-pool-error": "O planhèm, los servidors son subrecargats pel moment.\nTròp d’utilizaires ensajan de consultar aquesta ressorsa.\nEsperatz un moment abans d'ensajar d’accedir a aquesta pagina.",
-       "pool-timeout": "Relambi depassat pendent l'espèra del varrolh",
+       "pool-timeout": "Relambi depassat pendent l'espèra del verrolh",
        "pool-queuefull": "La fila de trabalh es plena",
        "pool-errorunknown": "Error desconeguda",
        "pool-servererror": "Lo servici de comptatge de la reserva es pas disponible ($1).",
        "privacy": "Politica de confidencialitat",
        "privacypage": "Project:Confidencialitat",
        "badaccess": "Error de permission",
-       "badaccess-group0": "Avètz pas los dreches sufisents per realizar l’accion que demandatz.",
+       "badaccess-group0": "Avètz pas los dreits sufisents per realizar l’accion que demandatz.",
        "badaccess-groups": "L’accion qu'ensajatz de realizar es pas accessibla qu’als utilizaires {{PLURAL:$2|del grop|d´un d´aquestes gropes}}: $1.",
        "versionrequired": "Version $1 de MediaWiki necessària",
        "versionrequiredtext": "La version $1 de MediaWiki es necessària per utilizar aquesta pagina. Consultatz [[Special:Version|la pagina de las versions]]",
        "nosuchspecialpage": "Pagina especiala inexistanta",
        "nospecialpagetext": "<strong>Avètz demandat una pagina especiala qu'es pas reconeguda pel logicial {{SITENAME}}.</strong>\n\nUna lista de las paginas especialas pòt èsser trobada sus [[Special:SpecialPages|{{int:specialpages}}]].",
        "error": "Error",
-       "databaseerror": "Error de la banca de donadas",
-       "databaseerror-text": "Una error de requèsta de banca de donadas s'es producha. Aquò pòt provenir d'un bug dins lo logicial.",
-       "databaseerror-textcl": "Una error de requèsta de banca de donadas s'es produsida.",
+       "databaseerror": "Error de la basa de donadas",
+       "databaseerror-text": "Una error de requèsta de basa de donadas s'es produita. Aquò pòt provenir d'un bug dins lo logicial.",
+       "databaseerror-textcl": "Una error de requèsta de basa de donadas s'es produita.",
        "databaseerror-query": "Requèsta : $1",
        "databaseerror-function": "Foncion : $1",
        "databaseerror-error": "Error : $1",
        "laggedslavemode": "<strong>Atencion :</strong> Aquesta pagina pòt conténer pas totes los darrièrs cambiaments efectuats.",
-       "readonly": "Mesas a jorn blocadas sus la banca de donadas",
-       "enterlockreason": "Indicatz la rason del varrolhatge, e mai una estimacion de sa durada",
-       "readonlytext": "Los ajustons e mesas a jorn de la banca de donadas son actualament blocats, probablament per permetre la mantenença de la banca, aprèp aquò, tot dintrarà dins l'òrdre.\n\nL’administrator qu'a varrolhat la banca de donadas a balhat l’explicacion seguenta : $1",
-       "missing-article": "La banca de donada a pas trobat lo tèxte d’una pagina qu’auriá degut trobar, intitolada « $1 » $2.\n\nAquò es, en principi, causat en seguissent lo ligam perimit d'un diff o de l’istoric cap a una pagina qu'es estada suprimida.\n\nS'es pas lo cas, belèu avètz trobat un bòg dins lo programa.\nInformatz-ne un [[Special:ListUsers/sysop|administrator]] aprèp aver notada l’adreça cibla del ligam.",
+       "readonly": "Mesas a jorn blocadas sus la basa de donadas",
+       "enterlockreason": "Indicatz la rason del verrolhatge, e mai una estimacion de sa durada",
+       "readonlytext": "Los empeutons e mesas a jorn de la basa de donadas son actualament blocats, probablament per permetre la mantenença de la basa, aprèp aquò, tot dintrarà dins l'òrdre.\n\nL’administrator qu'a verrolhat la basa de donadas a balhat l’explicacion seguenta :<br /> $1",
+       "missing-article": "La basa de donada a pas trobat lo tèxte d’una pagina qu’auriá degut trobar, intitolada « $1 » $2.\n\nAquò es, en principi, causat en seguissent lo ligam perimit d'un diff o de l’istoric cap a una pagina qu'es estada suprimida.\n\nS'es pas lo cas, belèu avètz trobat un bòg dins lo programa.\nInformatz-ne un [[Special:ListUsers/sysop|administrator]] aprèp aver notada l’adreça cibla del ligam.",
        "missingarticle-rev": "(revision#: $1)",
        "missingarticle-diff": "(Diff: $1, $2)",
-       "readonly_lag": "La banca de donadas es estada automaticament clavada pendent que los servidors segondaris ratrapan lor retard sul servidor principal.",
+       "readonly_lag": "La basa de donadas es estada automaticament clavada pendent que los servidors segondaris ratrapan lor retard sul servidor principal.",
        "internalerror": "Error intèrna",
        "internalerror_info": "Error intèrna: $1",
        "internalerror-fatal-exception": "Error fatala de tipe \"$1\"",
        "no-null-revision": "Impossible de crear una novèla revision voida per la pagina « $1 »",
        "badtitle": "Títol marrit",
        "badtitletext": "Lo títol de la pagina demandada es invalid, void o s’agís d’un títol interlenga o interprojècte mal ligat. Benlèu conten un o maites caractèrs que pòdon pas èsser utilizats dins los títols.",
-       "perfcached": "Las donadas seguendas son en escondedor e benlèu, son pas a jorn. Un maximum de {{PLURAL:$1|un resultat|$1 resultats}} es disponible dins l'escondedor.",
-       "perfcachedts": "Las donadas seguendas son en escondedor e benlèu, son pas a jorn. Un maximum de {{PLURAL:$1|un resultat|$1 resultats}} es disponible dins l'escondedor.",
+       "perfcached": "Las donadas seguendas son en cache e benlèu, son pas a jorn. Un maximum de {{PLURAL:$1|un resultat|$1 resultats}} es disponible dins lo cache.",
+       "perfcachedts": "Las donadas seguendas son en cache e benlèu, son pas a jorn. Un maximum de {{PLURAL:$1|un resultat|$1 resultats}} es disponible dins lo cache.",
        "querypage-no-updates": "Las mesas a jorn per aquesta pagina son actualamnt desactivadas. Las donadas çaijós son pas mesas a jorn.",
        "viewsource": "Vejatz lo tèxte font",
        "viewsource-title": "Veire la font de $1",
        "protectedpagetext": "Aquesta pagina es estada protegida per empachar sa modificacion o d'autras accions.",
        "viewsourcetext": "Podètz veire e copiar lo contengut de l’article per poder trabalhar dessús :",
        "viewyourtext": "Podètz veire e copiar lo contengut de '''vòstras modificacions''' a aquesta pagina :",
-       "protectedinterface": "Aquesta pagina provesís de tèxte d’interfàcia pel logicial susaqueste wiki, e es protegida per evitar los abuses.\nPer apondre o modificar de traduccions sus totes los wikis, utilizatz [//translatewiki.net/ translatewiki.net], lo projècte de localizacion de MediaWiki.",
+       "protectedinterface": "Aquesta pagina provesís de tèxte d’interfàcia pel logicial susaqueste wiki, e es protegida per evitar los abuses.\nPer apondre o modificar de traduccions sus totes los wikis, utilizatz [https://translatewiki.net/ translatewiki.net], lo projècte de localizacion de MediaWiki.",
        "editinginterface": "<strong>Atencion :<strong> sètz a mand de modificar una pagina utilizada per crear lo tèxte de l’interfàcia del logicial.\nLos cambiaments sus aquesta pagina se repercutaràn sus l'aparéncia de l'interfàcia d'utilizaire pels autres utilizaires d'aqueste wiki.",
        "cascadeprotected": "Aquesta pagina es actualament protegida perque es inclusa dins {{PLURAL:$1|la pagina seguenta|las paginas seguentas}}, {{PLURAL:$1|qu'es estada protegida|que son estadas protegidas}} amb l’opcion « proteccion en cascada » activada :\n$2",
        "namespaceprotected": "Avètz pas la permission de modificar las paginas de l’espaci de noms « '''$1''' ».",
        "customcssprotected": "Avètz pas la permission d'editar aquesta pagina CSS perque conten de preferéncias d’autres utilizaires.",
        "customjsprotected": "Avètz pas la permission d'editar aquesta pagina JavaScript perque conten de preferéncias d’autres utilizaires.",
-       "mycustomcssprotected": "Avètz pas lo drech de modificar aquesta pagina CSS.",
-       "mycustomjsprotected": "Avètz pas lo drech de modificar aquesta pagina JavaScript.",
-       "myprivateinfoprotected": "Avètz pas los dreches per modificar vòstras informacions personalas.",
-       "mypreferencesprotected": "Avètz pas los dreches per modificar vòstras preferéncias.",
+       "mycustomcssprotected": "Avètz pas lo dreit de modificar aquesta pagina CSS.",
+       "mycustomjsprotected": "Avètz pas lo dreit de modificar aquesta pagina JavaScript.",
+       "myprivateinfoprotected": "Avètz pas los dreits per modificar vòstras informacions personalas.",
+       "mypreferencesprotected": "Avètz pas los dreits per modificar vòstras preferéncias.",
        "ns-specialprotected": "Las paginas dins l’espaci de noms « {{ns:special}} » pòdon pas èsser modificadas",
        "titleprotected": "Aqueste títol es estat protegit a la creacion per [[User:$1|$1]].\nLo motiu avançat es <em>$2</em>.",
-       "filereadonlyerror": "Impossible de modificar lo fichièr « $1 » perque lo repertòri de fichièrs « $2 » es en lectura sola.\n\nL'administrator que l'a varrolhat a provesit aqueste motiu : « $3 ».",
+       "filereadonlyerror": "Impossible de modificar lo fichièr « $1 » perque lo repertòri de fichièrs « $2 » es en lectura sola.\n\nL'administrator del sistèma que l'a verrolhat a provesit aqueste motiu : « $3 ».",
        "invalidtitle-knownnamespace": "Títol invalid amb l'espaci de noms « $2 » e l'intitulat « $3 »",
        "invalidtitle-unknownnamespace": "Títol invalid amb lo numèro d'espaci de noms $1 e l'intitulat « $2 » desconeguts",
        "exception-nologin": "Pas connectat",
        "exception-nologin-text": "[[Special:Userlogin|Connectatz-vos]] per poder accedir a aquesta pagina o aquesta accion.",
        "exception-nologin-text-manual": "$1 per poder accedir a aquesta pagina o aquesta accion.",
        "virus-badscanner": "Marrida configuracion : escaner de virús desconegut : ''$1''",
-       "virus-scanfailed": "Fracàs de la recèrca (còde $1)",
+       "virus-scanfailed": "Fracàs de la recèrca (còdi $1)",
        "virus-unknownscanner": "antivirús desconegut :",
        "logouttext": "'''Ara, sètz desconnectat.'''\n\nNotatz que d'unas paginas pòdon èsser encara afichadas coma s'eratz encara connectat, fins al moment qu'escafaretz l'escondedor de vòstre navigador.",
        "cannotlogoutnow-title": "Impossible de se desconnectar ara",
        "createacct-yourpasswordagain": "Confirmatz lo senhal",
        "createacct-yourpasswordagain-ph": "Entratz lo senhal tornarmai",
        "remembermypassword": "Me reconnectar automaticament a las visitas venentas (al maximum $1 {{PLURAL:$1|jorn|jorns}})",
-       "userlogin-remembermypassword": "Gardar ma sesilha activa",
+       "userlogin-remembermypassword": "Gardar ma session activa",
        "userlogin-signwithsecure": "Utilizar una connexion securizada",
        "cannotloginnow-title": "Impossible de se connectar ara",
        "yourdomainname": "Vòstre domeni",
        "password-change-forbidden": "Podètz pas modificar los senhals sus aqueste wiki.",
-       "externaldberror": "Siá una error s’es producha amb la banca de donadas d’autentificacion extèrna, siá sètz pas autorizat a metre a jorn vòstre compte extèrne.",
+       "externaldberror": "Siá una error s’es produita amb la basa de donadas d’autentificacion extèrna, siá sètz pas autorizat a metre a jorn vòstre compte extèrne.",
        "login": "Identificacion",
        "nav-login-createaccount": "Crear un compte o se connectar",
        "userlogin": "Crear un compte o se connectar",
        "createacct-reason-ph": "Perqué creatz un autre compte",
        "createacct-submit": "Creatz vòstre compte",
        "createacct-another-submit": "Crear un compte",
-       "createacct-benefit-heading": "{{SITENAME}} es escrich per de monde coma vos.",
+       "createacct-benefit-heading": "{{SITENAME}} es escrit per de monde coma vos.",
        "createacct-benefit-body1": "{{PLURAL:$1|cambiament|cambiaments}}",
        "createacct-benefit-body2": "{{PLURAL:$1|pagina|paginas}}",
        "createacct-benefit-body3": "{{PLURAL:$1|contributor recent|contributors recents}}",
        "nocookieslogin": "{{SITENAME}} utiliza de cookies per la connexion mas avètz los cookies desactivats. Activatz-los e reconnectatz-vos.",
        "nocookiesfornew": "Lo compte d'utilizaire es pas estat creat, perque avèm pas pogut identificar son origina.\nVerificatz qu'avètz activat los cookies, recargatz la pagina e tornatz ensajar.",
        "noname": "Avètz pas picat de nom d'utilizaire valid.",
-       "loginsuccesstitle": "Identificacion capitada.",
+       "loginsuccesstitle": "Connectat",
        "loginsuccess": "Sètz actualament connectat(ada) sus {{SITENAME}} en tant que « $1 ».",
-       "nosuchuser": "L'utilizaire « $1 » existís pas.\nLo nom d'utilizaire es sensible a la cassa.\nVerificatz qu'avètz plan ortografiat lo nom, o [[Special:CreateAccount|creatz-vos un compte novèl]].",
+       "nosuchuser": "L'utilizaire « $1 » existís pas.\nLo nom d'utilizaire es sensible a la cassa.\nVerificatz vòstra ortografia, o [[Special:CreateAccount|creatz-vos un compte novèl]].",
        "nosuchusershort": "I a pas de contributor amb lo nom « $1 ». Verificatz l’ortografia.",
        "nouserspecified": "Vos cal especificar vòstre nom d'utilizaire.",
        "login-userblocked": "Aqueste utilizaire es blocat. Connexion pas autorizada.",
        "createaccount-title": "Creacion d'un compte per {{SITENAME}}",
        "createaccount-text": "Qualqu'un a creat un compte per vòstra adreça de corrièr electronic sus {{SITENAME}} ($4) intitolat « $2 », amb per senhal « $3 ». Deuriaz dobrir una sessilha e cambiar, tre ara, aqueste senhal.\n\nIgnoratz aqueste messatge se aqueste compte es estat creat per error.",
        "login-throttled": "Avètz ensajat un tròp grand nombre de connexions darrièrament.\nEsperatz $1 abans d’ensajar tornarmai.",
-       "login-abort-generic": "Vòstra temptativa de connexion a fracassat",
+       "login-abort-generic": "Vòstra temptativa de connexion a fracassat - Anullat",
        "loginlanguagelabel": "Lenga: $1",
-       "suspicious-userlogout": "Vòstra demanda de desconnexion es estada refusada perque sembla qu’es estada mandada per un navigador copat o la mesa en escondedor d’un proxy.",
+       "suspicious-userlogout": "Vòstra demanda de desconnexion es estada refusada perque sembla qu’es estada mandada per un navigador copat o la mesa en cache d’un proxy.",
        "createacct-another-realname-tip": "Lo nom vertadièr es opcional.\nSe decidissètz de lo provesir, serà utilizat per atribuir a l’utilizaire sos trabalhs.",
        "pt-login": "Se connectar",
        "pt-login-button": "Se connectar",
        "resetpass-submit-cancel": "Anullar",
        "resetpass-wrong-oldpass": "Senhal actual o temporari invalid.\nBenlèu ja avètz modificat vòstre senhal o demandat un senhal temporari novèl.",
        "resetpass-recycled": "Reïnicializatz vòstre senhal a quicòm mai que l’actual.",
-       "resetpass-temp-emailed": "Sètz connect{{GENDER:|at|ada}} amb un còde temporari provesit per corrièr electronic.\nPer acabar la connexion, vos cal provesir un senhal novèl aicí :",
+       "resetpass-temp-emailed": "Sètz connect{{GENDER:|at|ada}} amb un còdi temporari provesit per corrièr electronic.\nPer acabar la connexion, vos cal provesir un senhal novèl aicí :",
        "resetpass-temp-password": "Senhal temporari :",
        "resetpass-abort-generic": "La modificacion del senhal es estada anulada per una extension.",
        "resetpass-expired": "Vòstre senhal a expirat. Provesissètz-ne un novèl per vos connectar.",
-       "resetpass-expired-soft": "Vòstre senhal a expirat, e deu èsser reïnicializat. Causissètz-ne un novèl ara, o clicatz sus « {{int:resetpass-submit-cancel}} » per o far mai tard.",
-       "resetpass-validity-soft": "Vòstre senhal es pas valid : $1\n\nCausissètz un senhal novèl ara, o clicatz sus « {{int:resetpass-submit-cancel}} » per lo reïnicializar mai tard.",
+       "resetpass-expired-soft": "Vòstre senhal a expirat, e deu èsser reïnicializat. Causissètz-ne un novèl ara, o clicatz sus « {{int:authprovider-resetpass-skip-label}} » per o far mai tard.",
+       "resetpass-validity-soft": "Vòstre senhal es pas valid : $1\n\nCausissètz un senhal novèl ara, o clicatz sus « {{int:authprovider-resetpass-skip-label}} » per lo reïnicializar mai tard.",
        "passwordreset": "Remesa a zèro del senhal",
        "passwordreset-text-one": "Emplenatz aqueste formulari per reïnicializar vòstre senhal.",
        "passwordreset-text-many": "{{PLURAL:$1|Completatz un d'aqueles camps per recebre un senhal temporari per corrièr electronic.}}",
        "changeemail-none": "(pas cap)",
        "changeemail-password": "Vòstre senhal sus {{SITENAME}} :",
        "changeemail-submit": "Cambiar l'adreça electronica:",
-       "changeemail-throttled": "Avètz fach tròp de temptativas de connexion.\nEsperatz $1 abans d’ensajar tornarmai.",
+       "changeemail-throttled": "Avètz fait tròp de temptativas de connexion.\nEsperatz $1 abans d’ensajar tornarmai.",
        "resettokens": "Reïnicializar los getons",
        "resettokens-text": "Aici, podètz reïnicializar los getons que permeton d’accedir a d'unas donadas privadas associadas a vòstre compte.\n\nLo vos caldriá far se las avètz partejats accidentalament amb qualqu'un o se vòstre compte es estat compromés.",
        "resettokens-no-tokens": "I a pas cap de geton de reïnicializar.",
        "blankarticle": "<strong>Atencion :</strong> La pagina que creatz es voida.\nSe clicatz tornarmai sus « {{int:savearticle}} », la pagina serà creada sens cap de contengut.",
        "anoneditwarning": "<strong>Atencion :<strong> sètz pas connectat.\nVòstra adreça IP serà visibla per tot lo monde se fasètz de modificacions. Se <strong>[$1 vos connectatz]</strong> o <strong>[$2 creatz un compte]</strong>, vòstras modificacions seràn atribuidas a vòstre nom d’utilizaire, entre autres avantatges.",
        "anonpreviewwarning": "''Sètz pas identificat. Salvar enregistrarà vòstra adreça IP dins l’istoric de las modificacions de la pagina.''",
-       "missingsummary": "'''Atencion :''' avètz pas modificat lo resumit de vòstra modificacion. Se clicatz tornarmai sul boton « Salvar », lo salvament serà fach sens avertiment mai.",
+       "missingsummary": "'''Atencion :''' avètz pas modificat lo resumit de vòstra modificacion. Se clicatz tornarmai sul boton « Salvar », lo salvament serà fait sens avertiment mai.",
        "missingcommenttext": "Mercé de metre un comentari çaijós.",
-       "missingcommentheader": "'''*Rampèl:''' Avètz pas escrich de títol per aqueste comentari. Se tornatz clicar sus \"{{*int:*savearticle}}\" serà enregistrat sens títol.",
+       "missingcommentheader": "<strong>Rapèl :</strong> Avètz pas provesit cap de subjècte per aqueste comentari.\nSe clicatz tornamai sus « {{int:Savearticle}} », vòstra modificacion serà enregistrada sens subjècte.",
        "summary-preview": "Previsualizacion del resumit :",
        "subject-preview": "Previsualizacion del subjècte",
        "blockedtitle": "L'utilizaire es blocat",
        "loginreqlink": "connectar",
        "loginreqpagetext": "Vos cal vos $1 per veire las autras paginas.",
        "accmailtitle": "Senhal mandat.",
-       "accmailtext": "Un senhal generat aleatòriament per [[User talk:$1|$1]] es estat mandat a $2.\nLo senhal per aqueste compte novèl pòt èsser cambiat sus la pagina ''[[Special:ChangePassword|Cambiament de senhal]]'' aprèp s'èsser connectat.",
+       "accmailtext": "Un senhal generat aleatòriament per [[User talk:$1|$1]] es estat mandat a $2.\nLo senhal per aqueste compte novèl pòt èsser cambiat sus la pagina ''[[Special:ChangePassword|Cambiament de senhal]]'' aprèp connexion.",
        "newarticle": "(Novèl)",
        "newarticletext": "Avètz seguit un ligam cap a una pagina qu’existís pas encara o qu'es estada [{{fullurl:Special:Log|type=delete&page={{FULLPAGENAMEE}}}} escafada].\nPer crear aquesta pagina, picatz vòstre tèxte dins la bóstia çaijós (podètz consultar [$1 la pagina d’ajuda] per mai d’entresenhas).\nSe sètz arribat(ada) aicí per error, clicatz sul boton '''retorn''' de vòstre navigador.",
        "anontalkpagetext": "---- ''Sètz sus la pagina de discussion d'un utilizaire anonim qu'a pas encara creat un compte o que n'utiliza pas.\nPer aquesta rason, devèm utilizar son adreça IP per l'identificar. Una adreça d'aqueste tipe pòt èsser partejada entre mantun utilizaire. Se sètz un utilizaire anonim e se constatatz que de comentaris que vos concernisson pas vos son estats adreçats, podètz [[Special:CreateAccount|crear un compte]] o [[Special:UserLogin|vos connectar]] per evitar tota confusion venenta amb d’autres contributors anonims.''",
-       "noarticletext": "Pel moment, i a pas cap de tèxte sus aquesta pagina ;\npodètz [[Special:Search/{{PAGENAME}}|aviar una recèrca sul títol d'aqueste títol de pagina]] dins las autras pagina,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} recercar dins las operacions ligadas]\no [{{fullurl:{{FULLPAGENAME}}|action=edit}} crear aquesta pagina]</span>.",
+       "noarticletext": "Pel moment, i a pas cap de tèxte sus aquesta pagina.\nPodètz [[Special:Search/{{PAGENAME}}|aviar una recèrca sul títol d'aqueste títol de pagina]] dins las autras pagina,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} recercar dins las operacions ligadas],\no [{{fullurl:{{FULLPAGENAME}}|action=edit}} crear aquesta pagina]</span>.",
        "noarticletext-nopermission": "Actualament i a pas cap de tèxte dins aquesta pagina.\nPodètz [[Special:Search/{{PAGENAME}}|far una recèrca sul títol de la pagina]] dins las autras paginas,\no <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} recercar dins los jornals associats]</span>.",
-       "missing-revision": "La revision n° $1 de la pagina intitulada « {{FULLPAGENAME}} » existís pas.\n\nAquò se produsís en general en seguent un ligam istoric obsolèt cap a una pagina qu'es estada suprimida.\nPodètz trobar mai de detalhs dins lo [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} jornal de las supressions].",
+       "missing-revision": "La revision n° $1 de la pagina intitulada « {{FULLPAGENAME}} » existís pas.\n\nAquò se produtz en general en seguent un ligam istoric obsolèt cap a una pagina qu'es estada suprimida.\nPodètz trobar mai de detalhs dins lo [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} jornal de las supressions].",
        "userpage-userdoesnotexist": "Lo compte d'utilizaire « <nowiki>$1</nowiki> » es pas enregistrat. Indicatz se volètz crear o editar aquesta pagina.",
        "userpage-userdoesnotexist-view": "Lo compte d'utilizaire « $1 » es pas enregistrat.",
        "blocked-notice-logextract": "Aqueste utilizaire es actualament blocat.\nLa darrièra entrada del jornal dels blocatges es indicada çaijós a títol d’informacion :",
        "usercssyoucanpreview": "'''Astúcia :''' Utilizatz lo boton 'Previsualizacion' per testar vòstre fuèlh css/js novèl abans de l'enregistrar.",
        "userjsyoucanpreview": "'''Astúcia :''' Utilizatz lo boton 'Previsualizacion' per testar vòstre fuèlh css/js novèl abans de l'enregistrar.",
        "usercsspreview": "'''Remembratz-vos que sètz a previsualizar vòstre pròpri fuèlh CSS !'''\n'''Es pas estada encara enregistrada !'''",
-       "userjspreview": "'''Remembratz-vos que sètz a visualizar o testar vòstre còde JavaScript e qu’es pas encara estat enregistrat !'''",
+       "userjspreview": "'''Remembratz-vos que sètz a visualizar o testar vòstre còdi JavaScript e qu’es pas encara estat enregistrat !'''",
        "sitecsspreview": "'''Remembratz-vos que sètz a previsualizar vòstre pròpri fuèlh CSS !'''\n'''Es pas estada encara enregistrada !'''",
-       "sitejspreview": "'''Remembratz-vos que sètz a visualizar o testar vòstre còde JavaScript e qu’es pas encara estat enregistrat !'''",
+       "sitejspreview": "'''Remembratz-vos que sètz a visualizar o testar vòstre còdi JavaScript e qu’es pas encara estat enregistrat !'''",
        "userinvalidcssjstitle": "'''Atencion :''' existís pas d'estil « $1 ». Remembratz-vos que las paginas personalas amb extensions .css e .js utilizan de títols en minusculas, per exemple, {{ns:user}}:Foo/vector.css e non pas {{ns:user}}:Foo/Vector.css.",
        "updated": "(Mes a jorn)",
        "note": "'''Nòta :'''",
        "previewnote": "'''Remembratz-vos qu'es pas qu'una previsualizacion.'''\nVòstras modificacions son pas encara estadas enregistradas !",
        "continue-editing": "Anar a la zòna de modificacion",
        "previewconflict": "Aquesta previsualizacion fa veire lo tèxte de la bóstia de modificacion superiora coma apareisserà se causissètz de lo salvar.",
-       "session_fail_preview": "'''Podèm pas enregistrar vòstra modificacion a causa d’una pèrda d’informacions concernent vòstra sesilha.\nEnsajatz tornarmai.\nS'aquò fracassa encara, [[Special:UserLogout|desconnectatz-vos]], puèi connectatz-vos tornamai.'''",
-       "session_fail_preview_html": "'''Podèm pas enregistrar vòstra modificacion a causa d’una pèrda d’informacions que concernís vòstra sesilha.'''\n\n''Perque {{SITENAME}} a activat l’HTML brut, la previsualizacion es estada amagada per prevenir un atac per JavaScript.''\n\n'''Se la temptativa de modificacion èra legitima, ensajatz encara.\nS'aquò capita pas un còp de mai, [[Special:UserLogout|desconnectatz-vos]], puèi connectatz-vos tornamai.'''",
+       "session_fail_preview": "O planhèm, podèm pas enregistrar vòstra modificacion a causa d’una pèrda d’informacions a prepaus de vòstra session.\n\nBenlèu que sètz estat desconnectat. <strong>Verificatz que sètz encara connectat e ensajatz tornamai.</strong>\nSe aquò fracassa tornamai, ensajatz en vos [[Special:UserLogout|desconnectant]], puèi en vos reconnectant, e verificatz que vòstre navigador accèpta los cookies d'aqueste site.",
+       "session_fail_preview_html": "O planhèm, podèm pas enregistrar vòstra modificacion a causa d’una pèrda d’informacions que concernís vòstra session.\n\n<em>Perque {{SITENAME}} a activat l’HTML brut, la previsualizacion es estada amagada per prevenir un atac per JavaScript.</em>\n\n<strong>Se la temptativa de modificacion èra legitima, ensajatz encara.</strong>\nS'aquò capita pas un còp de mai, [[Special:UserLogout|desconnectatz-vos]], puèi connectatz-vos tornamai.",
        "token_suffix_mismatch": "'''Vòstra modificacion es pas estada acceptada perque vòstre navigador a mesclat los caractèrs de ponctuacion dins l’identificant d’edicion. La modificacion es estada regetada per empachar la corrupcion del tèxte de l’article. Aqueste problèma se produtz quand utilizatz un mandatari (proxy) anonim problematic.'''",
        "edit_form_incomplete": "'''D'unas partidas del formulari de modificacion an pas atench lo servidor, verificatz que vòstras modificacions son intactas e ensajatz tornarmai.'''",
        "editing": "Modificacion de $1",
        "editingsection": "Modificacion de $1 (seccion)",
        "editingcomment": "Modificacion de $1 (seccion novèla)",
        "editconflict": "Conflicte de modificacion : $1",
-       "explainconflict": "Aqueste pagina es estada salvada aprèp qu'avètz començat de la modificar.\nLa zòna d'edicion superiora conten lo tèxte tal coma es enregistrat actualament dins la banca de donadas.\nVòstras modificacions apareisson dins la zòna d'edicion inferiora.\nVos va caler aportar vòstras modificacions al tèxte existent.\n'''Sol''' lo tèxte de la zòna superiora serà salvat.",
+       "explainconflict": "Aqueste pagina es estada salvada aprèp qu'avètz començat de la modificar.\nLa zòna d'edicion superiora conten lo tèxte tal coma es enregistrat actualament dins la basa de donadas.\nVòstras modificacions apareisson dins la zòna d'edicion inferiora.\nVos va caler aportar vòstras modificacions al tèxte existent.\n'''Sol''' lo tèxte de la zòna superiora serà salvat.",
        "yourtext": "Vòstre tèxte",
        "storedversion": "Version enregistrada",
-       "nonunicodebrowser": "'''Atencion : Vòstre navigador supòrta pas l’unicode. Una solucion temporària es estada trobada per vos permetre de modificar un article en tota seguretat : los caractèrs non-ASCII apareisseràn dins vòstra bóstia de modificacion en tant que còdes exadecimals. Deuriatz utilizar un navigador mai recent.'''",
+       "nonunicodebrowser": "'''Atencion : Vòstre navigador supòrta pas l’unicode. Una solucion temporària es estada trobada per vos permetre de modificar un article en tota seguretat : los caractèrs non-ASCII apareisseràn dins vòstra bóstia de modificacion en tant que còdis exadecimals. Deuriatz utilizar un navigador mai recent.'''",
        "editingold": "'''Atencion : sètz a modificar una version obsolèta d'aquesta pagina. Se salvatz, totas las modificacions efectuadas dempuèi aquesta version seràn perdudas.'''",
        "yourdiff": "Diferéncias",
-       "copyrightwarning": "Totas las contribucions a {{SITENAME}} son consideradas coma publicadas jols tèrmes de la $2 (vejatz $1 per mai de detalhs). Se desiratz pas que vòstres escriches sián modificats e distribuits a volontat, mercés de los sometre pas aicí.<br /> Nos prometètz tanben qu'avètz escrich aquò vos-meteis, o que l’avètz copiat d’una font provenent del domeni public, o d’una ressorsa liura.'''UTILIZETZ PAS DE TRABALHS JOS COPYRIGHT SENS AUTORIZACION EXPRÈSSA !'''",
-       "copyrightwarning2": "Totas las contribucions a {{SITENAME}} pòdon èsser modificadas o suprimidas per d’autres utilizaires. Se desiratz pas que vòstres escriches sián modificats e distribuits a volontat, mercés de los sometre pas aicí.<br /> Tanben nos prometètz qu'avètz escrich aquò vos-meteis, o que l’avètz copiat d’una font provenent del domeni public, o d’una ressorsa liura. (vejatz $1 per mai de detalhs). '''UTILIZETZ PAS DE TRABALHS JOS COPYRIGHT SENS AUTORIZACION EXPRÈSSA !'''",
+       "copyrightwarning": "Totas las contribucions a {{SITENAME}} son consideradas coma publicadas jols tèrmes de la $2 (vejatz $1 per mai de detalhs). Se desiratz pas que vòstres escrits sián modificats e distribuits a volontat, mercés de los sometre pas aicí.<br /> Nos prometètz tanben qu'avètz escrit aquò vos-meteis, o que l’avètz copiat d’una font provenent del domeni public, o d’una ressorsa liura.'''UTILIZETZ PAS DE TRABALHS JOS COPYRIGHT SENS AUTORIZACION EXPRÈSSA !'''",
+       "copyrightwarning2": "Totas las contribucions a {{SITENAME}} pòdon èsser modificadas o suprimidas per d’autres utilizaires. Se desiratz pas que vòstres escrits sián modificats e distribuits a volontat, mercés de los sometre pas aicí.<br /> Tanben nos prometètz qu'avètz escrit aquò vos-meteis, o que l’avètz copiat d’una font provenent del domeni public, o d’una ressorsa liura. (vejatz $1 per mai de detalhs). '''UTILIZETZ PAS DE TRABALHS JOS COPYRIGHT SENS AUTORIZACION EXPRÈSSA !'''",
        "longpageerror": "'''ERROR : Lo tèxte qu'avètz somés fa {{PLURAL:$1|un Kio|$1 Kio}}, çò que depassa lo limit fixat a {{PLURAL:$2|un Kio|$2 Kio}}.'''. Pòt pas èsser salvat.",
-       "readonlywarning": "'''AVERTIMENT : La banca de donadas es estada varrolhada per d'operacions de mantenença. Doncas, poiretz pas publicar vòstras modificacions pel moment.'''\nPodètz copiar e pegar vòstre tèxte dins un fichièr de tèxte e lo salvar per mai tard.\n\nL’administrator qu'a varrolhat la banca de donadas a balhat l’explicacion seguenta : $1",
+       "readonlywarning": "<strong>AVERTIMENT : La basa de donadas es estada verrolhada per d'operacions de mantenença. Doncas, poiretz pas publicar vòstras modificacions pel moment.</strong>\nL’administrator sistèma qu'an verrolhada la basa de donadas a donat l’explicacion seguenta : $1",
        "protectedpagewarning": "'''AVERTIMENT : Aquesta pagina es protegida. Sols los utilizaires qu'an l'estatut d'administrator la p�don modificar. ''' La darri�ra entrada del jornal es afichada �aij�s per refer�ncia :",
        "semiprotectedpagewarning": "'''N�ta:''' Aquesta pagina es estada protegida d'un tal biais que sols los contributors enregistrats la p�scan modificar. La darri�ra entrada del jornal es afichada �aij�s per refer�ncia :",
-       "cascadeprotectedwarning": "'''ATENCION :''' Aquesta pagina es estada protegida de biais que sols los administrators pòscan l’editar.\nAquesta proteccion es estada facha perque aquesta pagina es inclusa dins {{PLURAL:$1|una pagina protegida|de paginas protegidas}} amb la « proteccion en cascada » activada.",
-       "titleprotectedwarning": "'''ATENCION : Aquesta pagina es estada protegida de tal biais que de [[Special:ListGroupRights|dreches especifics]] son requesits per la poder crear.''' La darri�ra entrada del jornal es afichada �aij�s per refer�ncia :",
+       "cascadeprotectedwarning": "'''ATENCION :''' Aquesta pagina es estada protegida de biais que sols los administrators la pòscan editar perque es transclusa dins {{PLURAL:$1|la pagina protegida seguenta, qu'a|las paginas protegidas seguentas,  qu'an}} la « proteccion en cascada » activada :",
+       "titleprotectedwarning": "'''ATENCION : Aquesta pagina es estada protegida de tal biais que de [[Special:ListGroupRights|dreits especifics]] son requesits per la poder crear.''' La darrièra entrada del jornal es afichada çaijós per referéncia :",
        "templatesused": "{{PLURAL:$1|Modèl utilizat|Modèls utilizats}} sus aquesta pagina :",
        "templatesusedpreview": "{{PLURAL:$1|Modèl utilizat|Modèls utilizats}} dins aquesta previsualizacion :",
        "templatesusedsection": "{{PLURAL:$1|Modèl utilizat|Modèls utilizats}} dins aquesta seccion :",
        "template-semiprotected": "(semiprotegit)",
        "hiddencategories": "{{PLURAL:$1|Categoria amagada|Categorias amagadas}} qu'aquesta pagina ne fa partida :",
        "edittools": "<!-- Tot tèxte picat aicí serà afichat jos las bóstias de modificacion o d’impòrt de fichièr. -->",
-       "nocreatetext": "{{SITENAME}} a restrencha la possibilitat de crear de paginas novèlas.\nPodètz tonar en rèire e modificar una pagina existenta, [[Special:UserLogin|vos connectar o crear un compte]].",
+       "nocreatetext": "{{SITENAME}} a restrenta la possibilitat de crear de paginas novèlas.\nPodètz tonar en rèire e modificar una pagina existenta, [[Special:UserLogin|vos connectar o crear un compte]].",
        "nocreate-loggedin": "Avètz pas la permission de crear de paginas novèlas.",
        "sectioneditnotsupported-title": "Modificacion de seccion pas presa en carga",
        "sectioneditnotsupported-text": "La modificacion d'una seccion es pas suportada dins aquesta pagina de modificacion.",
        "edit-hook-aborted": "Modificacion fracassada per croquet.\nCap d'explicacion pas balhada.",
        "edit-gone-missing": "A pas pogut metre a jorn la pagina.\nSembla que siá estada suprimida.",
        "edit-conflict": "Modificar lo conflicte.",
-       "edit-no-change": "Vòstra modificacion es estada ignorada perque cap de cambiament es pas estat fach dins lo tèxte.",
+       "edit-no-change": "Vòstra modificacion es estada ignorada perque cap de cambiament es pas estat fait dins lo tèxte.",
        "postedit-confirmation-created": "La pagina es estada creada.",
        "postedit-confirmation-restored": "La pagina es estada restablida.",
        "postedit-confirmation-saved": "Vòstra modificacion es estada salvada.",
        "content-failed-to-parse": "Fracàs de l'analisi del contengut de $2 pel modèl $1: $3",
        "invalid-content-data": "Donadas del contengut invalidas",
        "content-not-allowed-here": "Lo contengut \"$1\" es pas autorizat sus la pagina [[$2]]",
-       "editwarning-warning": "Quitar aquesta pagina vos farà pèrdre totas las modificacions qu'avètz fachas.\nSe sètz connectat, podètz desactivar aqueste avertiment dins la seccion « {{int:prefs-editing}} » de vòstras preferéncias.",
+       "editwarning-warning": "Quitar aquesta pagina vos farà pèrdre totas las modificacions qu'avètz faitas.\nSe sètz connectat, podètz desactivar aqueste avertiment dins la seccion « {{int:prefs-editing}} » de vòstras preferéncias.",
        "editpage-notsupportedcontentformat-title": "Format de contengut pas pres en carga",
        "editpage-notsupportedcontentformat-text": "Lo format de contengut $1 es pas pres en carga pel modèl de contengut $2 .",
        "content-model-wikitext": "wikitèxte",
        "expensive-parserfunction-category": "Paginas amb tròp d’apèls dispendioses de foncions parsaires",
        "post-expand-template-inclusion-warning": "Atencion : Aquesta pagina conten tròp d'inclusions de modèls.\nD'unas inclusions seràn pas efectuadas.",
        "post-expand-template-inclusion-category": "Paginas que contenon tròp d'inclusions de modèls",
-       "post-expand-template-argument-warning": "Atencion : Aquesta pagina conten al mens un paramètre de modèl que l'inclusion es renduda impossibla. Aprèp extension, aqueste auriá produch un resultat tròp long, doncas, es pas estat inclut.",
+       "post-expand-template-argument-warning": "Atencion : Aquesta pagina conten al mens un paramètre de modèl que l'inclusion es renduda impossibla. Aprèp extension, aqueste auriá produit un resultat tròp long, doncas, es pas estat inclús.",
        "post-expand-template-argument-category": "Paginas que contenon al mens un paramètre de modèl pas evaluat",
        "parser-template-loop-warning": "Modèl en bocla detectat : [[$1]]",
        "parser-template-recursion-depth-warning": "Limit de longor de la recursion del modèl depassat ($1)",
        "parser-unstrip-loop-warning": "Bocla pas desmontabla detectada",
        "parser-unstrip-recursion-limit": "Limit de recursion pas desmontable depassat ($1)",
        "converter-manual-rule-error": "Error detectada dins la règla manuala de conversion de lenga",
-       "undo-success": "Aquesta modificacion va èsser desfacha. Confirmatz los cambiaments (visibles en bas d'aquesta pagina), puèi salvatz se sètz d’acòrdi. Mercés de motivar l’anullacion dins la bóstia de resumit.",
-       "undo-failure": "Aquesta modificacion a pas pogut èsser desfacha a causa de conflictes amb de modificacions intermediàrias.",
-       "undo-norev": "La modificacion a pas pogut èsser desfacha perque siá es inexistenta siá es estada suprimida.",
+       "undo-success": "Aquesta modificacion va èsser desfaita. Confirmatz los cambiaments (visibles en bas d'aquesta pagina), puèi salvatz se sètz d’acòrdi. Mercés de motivar l’anullacion dins la bóstia de resumit.",
+       "undo-failure": "Aquesta modificacion a pas pogut èsser desfaita a causa de conflictes amb de modificacions intermediàrias.",
+       "undo-norev": "La modificacion a pas pogut èsser desfaita perque siá es inexistenta siá es estada suprimida.",
        "undo-nochange": "Sembla que la modificacion es ja estada anullada.",
        "undo-summary": "Anullacion de las modificacions $1 de [[Special:Contributions/$2|$2]] ([[User talk:$2|discutir]] | [[Special:Contributions/$2|{{MediaWiki:Contribslink}}]])",
        "undo-summary-username-hidden": "Anullar la revision $1 per un utilizaire amagat",
        "revdelete-unsuppress": "Levar las restriccions sus las versions restablidas",
        "revdelete-log": "Motiu :",
        "revdelete-submit": "Aplicar {{PLURAL:$1|a la version seleccionada|a las versions seleccionadas}}",
-       "revdelete-success": "'''Visibilitat de las versions mesas a jorn amb succès.'''",
+       "revdelete-success": "Visibilitat de las versions mesa a jorn.",
        "revdelete-failure": "'''La visibilitat de la revision a pas pogut èsser mesa a jorn :'''\n$1",
-       "logdelete-success": "'''Jornal de las visibilitat parametrat amb succès.'''",
+       "logdelete-success": "Visibilitat del jornal modificada.",
        "logdelete-failure": "'''La visibilitat del jornal a pas pogut èsser definida :'''\n$1",
        "revdel-restore": "Modificar la visibilitat",
        "pagehist": "Istoric de la pagina",
        "deletedhist": "Istoric de las supressions",
        "revdelete-hide-current": "Error al moment de la supression de l'element datat del $1 e $2 : es la revision correnta.\nPòt pas èsser suprimit.",
-       "revdelete-show-no-access": "Error al moment de l'afichatge de l'element datat del $1 e $2 : es marcat coma « restrench ».\nI avètz pas accès.",
-       "revdelete-modify-no-access": "Error al moment de la modificacion de l'element datat del $1 a $2 : es marcat coma « restrench ».\nI avètz pas accès.",
-       "revdelete-modify-missing": "Error al moment de la modificacion de l'element amb l'ID $1 : es mancant dins la banca de donadas !",
+       "revdelete-show-no-access": "Error al moment de l'afichatge de l'element datat del $1 e $2 : es marcat coma « restrent ».\nI avètz pas accès.",
+       "revdelete-modify-no-access": "Error al moment de la modificacion de l'element datat del $1 a $2 : es marcat coma « restrent ».\nI avètz pas accès.",
+       "revdelete-modify-missing": "Error al moment de la modificacion de l'element amb l'ID $1 : es mancant dins la basa de donadas !",
        "revdelete-no-change": "'''Atencion :''' l'element datat del $1 a $2 ja a los paramètres de visibilitat demandats.",
        "revdelete-concurrent-change": "Error al moment de la modificacion de l'element datat del $1 a $2 : son estatut es estat cambiat per qualqu'un mai pendent qu'o modificatz.\nVerificatz los jornals.",
        "revdelete-only-restricted": "Error al moment de la supression de l'entrada datada del $1 a $2 : podètz pas suprimir aqueles elements als administrators sens seleccionar tanben d'opcions de supression mai.",
-       "revdelete-reason-dropdown": "* Rasons correntas de supression\n** Violacion dels dreches d'autors\n** Entresenhas personalas inapropriadas\n** Nom d'utilizaire inapropriat\n** Informacions potencialament difamatòrias.",
+       "revdelete-reason-dropdown": "* Rasons correntas de supression\n** Violacion dels dreits d'autors\n** Entresenhas personalas inapropriadas\n** Nom d'utilizaire inapropriat\n** Informacions potencialament difamatòrias.",
        "revdelete-otherreason": "Autra rason / rason suplementària :",
        "revdelete-reasonotherlist": "Autra rason",
        "revdelete-edit-reasonlist": "Modifica los motius de la supression",
        "mergehistory-go": "Veire las edicions fusionablas",
        "mergehistory-submit": "Fusionar las revisions",
        "mergehistory-empty": "Cap de revision pòt pas èsser fusionada.",
-       "mergehistory-done": "$3 {{PLURAL:$3|revision|revisions}} de $1 {{PLURAL:$3|fusionada|fusionadas}} amb succès amb [[:$2]].",
+       "mergehistory-done": "$3 version{{PLURAL:$3||s}} de $1 {{PLURAL:$3|es estada fusionada|son estada fusionadas}} dins [[:$2]].",
        "mergehistory-fail": "Impossible de procedir a la fusion dels istorics. Seleccionatz  tornamai la pagina e mai los paramètres de data.",
        "mergehistory-fail-toobig": "Impossible d’efectuar la fusion de l’istoric perque un nombre de {{PLURAL:$1|revisions}} superior al limit de $1 deuriá èsser desplaçat.",
        "mergehistory-no-source": "La pagina d'origina $1 existís pas.",
        "powersearch-remember": "Se remembrar de la seleccion per las recèrcas venentas",
        "search-external": "Recèrca extèrna",
        "searchdisabled": "La recèrca sus {{SITENAME}} es desactivada.\nEn esperant la reactivacion, podètz efectuar una recèrca via Google.\nAtencion, lor indexacion de contengut {{SITENAME}} benlèu es pas a jorn.",
-       "search-error": "Una error s'es producha en recercant : $1",
+       "search-error": "Una error s'es produita en recercant : $1",
        "preferences": "Preferéncias",
        "mypreferences": "Preferéncias",
        "prefs-edits": "Nombre d’edicions :",
        "prefs-watchlist": "Lista de seguiment",
        "prefs-editwatchlist": "Modificar la lista de seguiment",
        "prefs-editwatchlist-label": "Modificar de títols de vòstra lista de seguiment",
+       "prefs-editwatchlist-edit": "Veire e levar de títols de vòstra lista de seguiment",
        "prefs-editwatchlist-raw": "Modificar la lista de seguiment en mòde brut",
        "prefs-editwatchlist-clear": "Escafar la lista de seguiment",
        "prefs-watchlist-days": "Nombre de jorns d'afichar dins la lista de seguiment :",
        "rows": "Rengadas :",
        "columns": "Colomnas :",
        "searchresultshead": "Recèrca",
-       "stub-threshold": "Limit superior pels <a href=\"#\" class=\"stub\">ligams cap als esbòsses</a> (octets) :",
+       "stub-threshold": "Limit pel formatatge dels ligams d’esbòs ($1) :",
        "stub-threshold-disabled": "Desactivat",
        "recentchangesdays": "Nombre de jorns d'afichar dins los darrièrs cambiaments :",
        "recentchangesdays-max": "(maximum $1 {{PLURAL:$1|jorn|jorns}})",
        "prefs-custom-css": "CSS personalizat",
        "prefs-custom-js": "JS personalizat",
        "prefs-common-css-js": "JavaScript e CSS partejat per totes los abilhatges :",
-       "prefs-reset-intro": "Podètz utilizar aquesta pagina per restablir vòstras preferéncias a las valors per defaut del site. Aquò pòt pas èsser desfach.",
+       "prefs-reset-intro": "Podètz utilizar aquesta pagina per restablir vòstras preferéncias a las valors per defaut del site. Aquò pòt pas èsser desfait.",
        "prefs-emailconfirm-label": "Confirmacion del corrièr electronic :",
        "youremail": "Adreça de corrièr electronic :",
        "username": "{{GENDER:$1|Nom d'utilizaire|Nom d'utilizaira}}:",
        "prefs-help-signature": "Los comentaris sus las paginas de discussion devon èsser signats amb « <nowiki>~~~~</nowiki> », que serà convertit en vòstra signatura e un orodatament.",
        "badsig": "Signatura bruta incorrècta, verificatz vòstras balisas HTML.",
        "badsiglength": "Vòstra signatura es tròp longa.\nDeu aver, al maximum $1 caractèr{{PLURAL:$1||s}}.",
-       "yourgender": "Cossí vos agrada mai èsser descrich ?",
+       "yourgender": "Cossí vos agrada mai d'èsser descrit ?",
        "gender-unknown": "M'agrada mai sens detalh",
        "gender-male": "Modifica de pagina del wiki",
        "gender-female": "Modifica de paginas del wiki",
        "prefs-tokenwatchlist": "Geton",
        "prefs-diffs": "Diferéncias",
        "prefs-help-prefershttps": "Aquesta preferéncia serà efectiva al moment de vòstra connexion que ven.",
-       "prefs-tabs-navigation-hint": "Astúcia : Podètz utilizar las flèchas d'esquèrra e de drecha per navigar entre los onglets.",
-       "userrights": "Gestion dels dreches d'utilizaire",
-       "userrights-lookup-user": "Gestion dels dreches d'utilizaire",
+       "prefs-tabs-navigation-hint": "Astúcia : Podètz utilizar las sagetas d'esquèrra e de dreita per navigar entre los onglets.",
+       "userrights": "Gestion dels dreits d'utilizaire",
+       "userrights-lookup-user": "Gestion dels dreits d'utilizaire",
        "userrights-user-editname": "Entrar un nom d’utilizaire :",
        "editusergroup": "Modificacion dels gropes d’{{GENDER:$1|utilizaires}}",
-       "editinguser": "Modificacion dels dreches de l’{{GENDER:$1|utilizaire|utilizaira}} <strong>[[User:$1|$1]]</strong> $2",
+       "editinguser": "Modificacion dels dreits de l’{{GENDER:$1|utilizaire|utilizaira}} <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "Modificar los gropes de l’utilizaire",
        "saveusergroups": "Enregistrar los gropes de l’{{GENDER:$1|utilizaire|utilizaira}}",
        "userrights-groupsmember": "Membre de :",
        "userrights-groupsmember-auto": "Membre implicit de :",
        "userrights-groups-help": "Podètz modificar los gropes alsquals aparten aqueste utilizaire.\n* Una casa marcada significa que l'utilizaire se tròba dins aqueste grop.\n* Una casa pas marcada significa, al contrari, que s’i tròba pas.\n* Una * indica que podretz pas levar aqueste grop un còp que l'auretz apondut e vice-versa.",
        "userrights-reason": "Motiu :",
-       "userrights-no-interwiki": "Sètz pas abilitat per modificar los dreches dels utilizaires sus d'autres wikis.",
-       "userrights-nodatabase": "La banca de donadas « $1 » existís pas o es pas en local.",
-       "userrights-nologin": "Vos cal [[Special:UserLogin|vos connectar]] amb un compte d'administrator per balhar los dreches d'utilizaire.",
-       "userrights-notallowed": "Avètz pas la permission d'apondre o suprimir de dreches d'utilizaire.",
+       "userrights-no-interwiki": "Sètz pas abilitat per modificar los dreits dels utilizaires sus d'autres wikis.",
+       "userrights-nodatabase": "La basa de donadas « $1 » existís pas o es pas en local.",
+       "userrights-nologin": "Vos cal [[Special:UserLogin|vos connectar]] amb un compte d'administrator per balhar los dreits d'utilizaire.",
+       "userrights-notallowed": "Avètz pas la permission d'apondre o suprimir de dreits d'utilizaire.",
        "userrights-changeable-col": "Los gropes que podètz cambiar",
        "userrights-unchangeable-col": "Los gropes que podètz pas cambiar",
-       "userrights-conflict": "Conflicte de modificacion de dreches d'utilizaire ! Relegissètz e confirmatz vòstras modificacions.",
-       "userrights-removed-self": "Avètz suprimit vòstres pròpris dreches corrèctament. Del còp, podètz pas mai accedir a aquela pagina.",
+       "userrights-conflict": "Conflicte de modificacion de dreits d'utilizaire ! Relegissètz e confirmatz vòstras modificacions.",
+       "userrights-removed-self": "Avètz suprimit vòstres pròpris dreits. Del còp, podètz pas mai accedir a aquesta pagina.",
        "group": "Grop :",
        "group-user": "Utilizaires",
        "group-autoconfirmed": "Utilizaires enregistrats",
        "right-editmyusercss": "Modificar vòstres pròpris fichièrs CSS utilizaire",
        "right-editmyuserjs": "Modificar vòstres pròpris fichièrs JavaScript utilizaire",
        "right-viewmywatchlist": "Afichar vòstra pròpria lista de seguiment",
-       "right-editmywatchlist": "Modificar vòstra pròpria lista de seguiment. Remarcatz que certanas accions apondràn encara de paginas sens aqueste drech.",
+       "right-editmywatchlist": "Modificar vòstra pròpria lista de seguiment. Remarcatz que certanas accions apondràn encara de paginas sens aqueste dreit.",
        "right-viewmyprivateinfo": "Veire vòstras donadas personalas (exemple adreça, nom vertadièr)",
        "right-editmyprivateinfo": "Modificar vòstras donadas personalas (exemple adreça, nom vertadièr)",
        "right-editmyoptions": "Modificar vòstras preferéncias",
        "right-rollback": "Revocacion rapida del darrièr utilizaire qu'a modificat una pagina particulara",
-       "right-markbotedits": "Marcar los cambiaments revocats coma de cambiaments que son estats fachs per de robòts",
+       "right-markbotedits": "Marcar los cambiaments revocats coma de cambiaments que son estats faits per de robòts",
        "right-noratelimit": "Pas afectat pels limits de taus",
        "right-import": "Importar de paginas dempuèi d'autres wikis",
        "right-importupload": "Importar de paginas dempuèi un fichièr",
        "right-patrolmarks": "Veire los marcatges de susvelhança dins los darrièrs cambiaments",
        "right-unwatchedpages": "Veire la lista de las paginas pas seguidas",
        "right-mergehistory": "Fusionar los istorics de las paginas",
-       "right-userrights": "Modificar totes los dreches d'un utilizaire",
-       "right-userrights-interwiki": "Modificar los dreches d'utilizaires que son sus un autre wiki",
-       "right-siteadmin": "Varrolhar e desvarrolhar la banca de donadas",
+       "right-userrights": "Modificar totes los dreits d'un utilizaire",
+       "right-userrights-interwiki": "Modificar los dreits d'utilizaires que son sus un autre wiki",
+       "right-siteadmin": "Verrolhar e desverrolhar la basa de donadas",
        "right-override-export-depth": "Exportar las paginas en incluent las paginas ligadas fins a una prigondor de 5 nivèls",
        "right-sendemail": "Mandar un corrièl als autres utilizaires",
        "right-passwordreset": "Veire los corrièrs electronics de reïnicializacion dels senhals",
        "right-applychangetags": "Aplicar [[Special:Tags|las balisas]] amb sas pròprias modificacions",
-       "grant-generic": "ensemble de dreches « $1 »",
+       "grant-generic": "ensemble de dreits « $1 »",
        "grant-blockusers": "Blocar e desblocar d'utilizaires",
        "grant-patrol": "Marcar de paginas coma patrolhadas",
        "newuserlogpage": "Istoric de las creacions de comptes",
        "rightslogtext": "Aquò es un jornal dels cambiaments d'estatut d’utilizaire.",
        "action-read": "legir aquesta pagina",
        "action-edit": "modificar aquesta pagina",
-       "action-createpage": "crear de paginas",
-       "action-createtalk": "crear de paginas de discussion",
+       "action-createpage": "crear aquesta pagina",
+       "action-createtalk": "crear aquesta pagina de discussion",
        "action-createaccount": "crear aqueste compte d'utilizaire",
        "action-history": "afichar l’istoric d'aquesta pagina",
        "action-minoredit": "marcar aqueste cambiament coma menor",
        "action-move": "renomenar aquesta pagina",
        "action-move-subpages": "tornar nomenar aquesta pagina e sas sospaginas",
-       "action-move-rootuserpages": "tornar nomenar las paginas de l’utilizaire de banca.",
+       "action-move-rootuserpages": "renomenar las paginas de l’utilizaire de basa.",
        "action-move-categorypages": "Renomenar de paginas de categoria",
        "action-movefile": "renomenar aqueste fichièr",
        "action-upload": "importar aqueste fichièr",
        "action-autopatrol": "aver vòstra modificacion marcada coma patrolhada",
        "action-unwatchedpages": "veire la lista de las paginas pas susvelhadas",
        "action-mergehistory": "fusionar l’istoric d'aquesta pagina",
-       "action-userrights": "modificar totes los dreches d’utilizaire",
-       "action-userrights-interwiki": "modificar los dreches d’utilizaire e los sus d’autres wikis",
-       "action-siteadmin": "varrolhar o desvarrolhar la banca de donadas",
+       "action-userrights": "modificar totes los dreits d’utilizaire",
+       "action-userrights-interwiki": "modificar los dreits d’utilizaire e los sus d’autres wikis",
+       "action-siteadmin": "verrolhar o desverrolhar la basa de donadas",
        "action-sendemail": "mandar corrièrs electronics",
        "action-editmywatchlist": "modificar vòstra lista de seguiment",
        "action-viewmywatchlist": "afichar vòstra pròpria lista de seguiment",
        "filedesc": "Descripcion",
        "fileuploadsummary": "Resumit :",
        "filereuploadsummary": "Modificacions del fichièr :",
-       "filestatus": "Estatut dels dreches d'autor :",
+       "filestatus": "Estatut dels dreits d'autor :",
        "filesource": "Font :",
        "ignorewarning": "Ignorar l’avertiment e salvar lo fichièr",
        "ignorewarnings": "Ignorar los avertiments al moment de l’impòrt",
        "hookaborted": "La modificacion qu'avètz ensajat de realizar es estada anullada per un croquet d'extension.",
        "illegal-filename": "Lo nom del fichièr es pas autorizat.",
        "overwrite": "Espotir un fichièr existent es pas autorizat.",
-       "unknown-error": "Una error desconeguda s'es producha.",
+       "unknown-error": "Una error desconeguda s'es produita.",
        "tmp-create-error": "Impossible de crear lo fichièr temporari.",
        "tmp-write-error": "Error d'escritura del fichièr temporari.",
        "large-file": "Los fichièrs importats deurián pas èsser mai gros que $1 ; aqueste fichièr fa $2.",
        "fileexists-thumbnail-yes": "Lo fichièr sembla èsser un imatge en talha reducha ''(thumbnail)''. [[$1|thumb]]\nVerificatz lo fichièr <strong>[[:$1]]</strong>.\nSe lo fichièr verificat es lo meteis imatge (dins una resolucion melhora), es pas de besonh d’importar una version reducha.",
        "file-thumbnail-no": "Lo nom del fichièr comença per <strong>$1</strong>.\nEs possible que s’agisca d’una version reducha ''(miniatura)''.\nSe dispausatz del fichièr en resolucion nauta, importatz-lo, si que non cambiatz lo nom del fichièr.",
        "fileexists-forbidden": "Un fichièr amb aqueste nom existís ja e pòt pas èsser espotit.\nSe volètz totjorn importar aquel fichièr, mercé de tornar en arrièr e d'utilizar un nom novèl. [[File:$1|thumb|center|$1]]",
-       "fileexists-shared-forbidden": "Un fichièr amb lo meteis nom existís ja dins la banca de donadas comuna.\nS'o volètz importar tornamai, tornatz en rèire e importatz-lo jos un autre nom. [[File:$1|thumb|center|$1]]",
+       "fileexists-shared-forbidden": "Un fichièr amb lo meteis nom existís ja dins la basa de donadas comuna.\nS'o volètz importar tornamai, tornatz en rèire e importatz-lo jos un autre nom. [[File:$1|thumb|center|$1]]",
        "file-exists-duplicate": "Aqueste fichièr es un doble {{PLURAL:$1|del fichièr seguent|dels fichièrs seguents}} :",
        "file-deleted-duplicate": "Un fichièr identic a aqueste ([[:$1]]) ja es estat suprimit. Vos caldriá verificar lo jornal de las supressions d'aqueste fichièr abans de la tornar telecargar.",
        "file-deleted-duplicate-notitle": "Un fichièr identic a aqueste fichièr es ja estat suprimit amai lo títol. \nVos caldriá demandar a qualqu'un la possibilitat de verificar lo jornal d'aqueste fichièr suprimit per tal d'examinar la situacion  abans de l'importar tornarmai.",
        "copyuploaddisabled": "Mandadís de fichièr per URL desactivat.",
        "uploaddisabledtext": "L'impòrt de fichièrs cap al servidor es desactivat.",
        "php-uploaddisabledtext": "Lo telecargament de fichièrs es estat desactivat dins PHP. Verificatz l'opcion de configuracion file_uploads.",
-       "uploadscripted": "Aqueste fichièr conten de còde HTML o un escript que poiriá èsser interpretat d'un biais incorrècte per un navigador Internet.",
+       "uploadscripted": "Aqueste fichièr conten de còdi HTML o un escript que poiriá èsser interpretat d'un biais incorrècte per un navigador Internet.",
        "uploadscriptednamespace": "Aqueste fichièr SVG conten un espaci de noms '$1' pas autorizat.",
        "uploadinvalidxml": "Lo XML dins lo fichièr importat a pas pogut èsser analisat.",
        "uploadvirus": "Aqueste fichièr conten un virús ! Per mai de detalhs, consultatz : $1",
        "upload-proto-error": "Protocòl incorrècte",
        "upload-proto-error-text": "L’impòrt requerís d'URLs començant per <code>http://</code> o <code>ftp://</code>.",
        "upload-file-error": "Error intèrna",
-       "upload-file-error-text": "Una error intèrna s'es producha en volent crear un fichièr temporari sul servidor. Contactatz un [[Special:ListUsers/sysop|administrator del sistèma]].",
+       "upload-file-error-text": "Una error intèrna s'es produita en volent crear un fichièr temporari sul servidor. Contactatz un [[Special:ListUsers/sysop|administrator del sistèma]].",
        "upload-misc-error": "Error d’impòrt desconeguda",
-       "upload-misc-error-text": "Una error desconeguda s'es producha pendent l’impòrt.\nVerificatz que l’URL es valida e accessibla, puèi ensajatz tornamai.\nSe lo problèma persistís, contactatz un [[Special:ListUsers/sysop|administrator del sistèma]].",
+       "upload-misc-error-text": "Una error desconeguda s'es produita pendent l’impòrt.\nVerificatz que l’URL es valida e accessibla, puèi ensajatz tornamai.\nSe lo problèma persistís, contactatz un [[Special:ListUsers/sysop|administrator del sistèma]].",
        "upload-too-many-redirects": "L'URL conten tròp de redireccions",
        "upload-http-error": "Una error HTTP es intervenguda : $1",
        "upload-copy-upload-invalid-domain": "La còpia dels telecargaments es pas disponibla dempuèi aqueste domeni.",
        "backend-fail-readonly": "Lo supòrt d'emmagazinatge \"$1\" es actualament en lectura sola. La rason indicada es : \"$2\"",
        "backend-fail-synced": "Lo fichièr \"$1\" es dins un estat incoerent dins los supòrts d'emmagazinatge intèrnes",
        "backend-fail-connect": "Impossible de se connectar al supòrt d'emmagazinatge \"$1\".",
-       "backend-fail-internal": "Una error desconeguda s'es producha dins lo supòrt d'emmagazinatge \"$1\".",
+       "backend-fail-internal": "Una error desconeguda s'es produita dins lo supòrt d'emmagazinatge \"$1\".",
        "backend-fail-contenttype": "Impossible de determinar lo tipe de contengut del fichièr d'emmagazinar en \"$1\".",
        "backend-fail-batchsize": "Lo supòrt d'emmagazinatge a provesit un lòt de $1 {{PLURAL:$1|operacion|operacions}} de fichièr ; lo limit es de $2 {{PLURAL:$2|operacion|operacions}}.",
-       "backend-fail-usable": "Impossible de legir o d'escriure lo fichièr « $1 » en rason de dreches insufisents o repertòris/contenidors mancants.",
-       "filejournal-fail-dbconnect": "Impossible de se connectar a la banca de donadas del jornal pel terminal d'emmagazinatge \"$1\".",
-       "filejournal-fail-dbquery": "Impossible de metre a jorn la banca de donadas del jornal pel terminal d'emmagazinatge \"$1\".",
-       "lockmanager-notlocked": "Impossible de desvarrolhar « $1 » ; es pas varrolhada.",
-       "lockmanager-fail-closelock": "Impossible de tampar lo fichièr de varrolh per « $1 ».",
-       "lockmanager-fail-deletelock": "Impossible de suprimir lo fichièr de varrolh per « $1 ».",
-       "lockmanager-fail-acquirelock": "Impossible d'obténer lo fichièr de varrolh per « $1 ».",
-       "lockmanager-fail-openlock": "Impossible de dobrir lo fichièr de varrolh per « $1 ».",
-       "lockmanager-fail-releaselock": "Impossible de daissar anar lo fichièr de varrolh per « $1 ».",
-       "lockmanager-fail-db-bucket": "Impossible de contactar pro de bancas de donadas de varrolhatge dins lo godet $1.",
-       "lockmanager-fail-db-release": "Impossible de daissar anar los varrolhs sus la banca de donadas $1.",
-       "lockmanager-fail-svr-acquire": "Impossible d'aquerir de varrolhs sul servidor $1.",
-       "lockmanager-fail-svr-release": "Impossible de daissar anar los varrolhs sul servidor $1.",
-       "zip-file-open-error": "Una error s'es producha al moment de la dobertura del fichièr ZIP per contraròtle.",
+       "backend-fail-usable": "Impossible de legir o d'escriure lo fichièr « $1 » en rason de dreits insufisents o repertòris/contenidors mancants.",
+       "filejournal-fail-dbconnect": "Impossible de se connectar a la basa de donadas del jornal pel terminal d'emmagazinatge \"$1\".",
+       "filejournal-fail-dbquery": "Impossible de metre a jorn la basa de donadas del jornal pel terminal d'emmagazinatge \"$1\".",
+       "lockmanager-notlocked": "Impossible de desverrolhar « $1 » ; es pas verrolhada.",
+       "lockmanager-fail-closelock": "Impossible de tampar lo fichièr de verrolh per « $1 ».",
+       "lockmanager-fail-deletelock": "Impossible de suprimir lo fichièr de verrolh per « $1 ».",
+       "lockmanager-fail-acquirelock": "Impossible d'obténer lo fichièr de verrolh per « $1 ».",
+       "lockmanager-fail-openlock": "Impossible de dobrir lo fichièr de verrolh per « $1 ».",
+       "lockmanager-fail-releaselock": "Impossible de daissar anar lo fichièr de verrolh per « $1 ».",
+       "lockmanager-fail-db-bucket": "Impossible de contactar pro de basas de donadas de verrolhatge dins lo godet $1.",
+       "lockmanager-fail-db-release": "Impossible de daissar anar los verrolhs sus la basa de donadas $1.",
+       "lockmanager-fail-svr-acquire": "Impossible d'aquerir de verrolhs sul servidor $1.",
+       "lockmanager-fail-svr-release": "Impossible de daissar anar los verrolhs sul servidor $1.",
+       "zip-file-open-error": "Una error s'es produita al moment de la dobertura del fichièr ZIP per contraròtle.",
        "zip-wrong-format": "Lo fichièr especificat es pas un archiu ZIP.",
        "zip-bad": "Lo fichièr es un archiu ZIP corromput o illegible.\nPòt pas èsser verificat corrèctament per la seguretat.",
        "zip-unsupported": "Lo fichièr es un archiu ZIP qu'utiliza de caracteristicas pas suportadas per MediaWiki. \nSa seguretat pòt pas èsser verificada corrèctament.",
-       "uploadstash": "Escondedor d'impòrt",
-       "uploadstash-clear": "Escafar los fichièrs en escondedor",
-       "uploadstash-nofiles": "Avètz pas de fichièrs en escondedor d'impòrt.",
-       "uploadstash-errclear": "L'escafament dels fichièrs a fracassat.",
+       "uploadstash": "Cache d'impòrt",
+       "uploadstash-clear": "Escafar los fichièrs en cache",
+       "uploadstash-nofiles": "Avètz pas de fichièrs en cache d'impòrt.",
+       "uploadstash-errclear": "La supression dels fichièrs a fracassat.",
        "uploadstash-refresh": "Actualizar la lista dels fichièrs",
        "invalid-chunk-offset": "Offset de segment invalid",
        "img-auth-accessdenied": "Accès refusat",
        "img-auth-isdir": "Ensajatz d'accedir al repertòri « $1 ».\nSol l'accès als fichièrs es permesa.",
        "img-auth-streaming": "Lectura en continú de « $1 ».",
        "img-auth-public": "La foncion d'img_auth.php es d'afichar de fichièrs d'un wiki privat.\nAqueste wiki es configurat coma un wiki public.\nPer una seguretat optimala, img_auth.php es desactivat.",
-       "img-auth-noread": "L'utilizaire a pas lo drech en lectura sus « $1 ».",
+       "img-auth-noread": "L'utilizaire a pas lo dreit en lectura sus « $1 ».",
        "http-invalid-url": "URL incorrècta : $1",
        "http-invalid-scheme": "Las URLs amb l\"esquèma « $1 » son pas suportadas",
        "http-request-error": "Error desconeguda al moment del mandadís de la requèsta.",
        "filedelete-nofile-old": "Existís pas cap de version archivada de '''$1''' amb los atributs indicats.",
        "filedelete-otherreason": "Rason diferenta/suplementària :",
        "filedelete-reason-otherlist": "Autra rason",
-       "filedelete-reason-dropdown": "*Motius de supression costumièrs\n** Violacion de drech d’autor\n** Fichièr duplicat",
+       "filedelete-reason-dropdown": "*Motius de supression costumièrs\n** Violacion de dreit d’autor\n** Fichièr duplicat",
        "filedelete-edit-reasonlist": "Modifica los motius de la supression",
        "filedelete-maintenance": "La supression e lo restabliment de fichièrs es temporàriament desactivada pendent la mantenença.",
        "filedelete-maintenance-title": "Impossible de suprimir lo fichièr",
        "statistics-edits-average": "Modificacions mejanas per pagina",
        "statistics-users": "[[Special:ListUsers|Utilizaires]] enregistrats",
        "statistics-users-active": "Utilizaires actius",
-       "statistics-users-active-desc": "Utilizaires qu'an fach al mens una accion durant {{PLURAL:$1|lo darrièr jorn|los $1 darrièrs jorns}}",
+       "statistics-users-active-desc": "Utilizaires qu'an fait al mens una accion pendent {{PLURAL:$1|lo darrièr jorn|los $1 darrièrs jorns}}",
        "pageswithprop": "Paginas amb una proprietat de pagina",
        "pageswithprop-legend": "Paginas amb una proprietat de pagina",
        "pageswithprop-text": "Aquesta pagina fa la lista de las paginas qu'utilizan una proprietat de pagina particulara.",
        "doubleredirects": "Redireccions doblas",
        "doubleredirectstext": "Vaquí una lista de las paginas que redirigisson cap a de paginas que son elas-meteissas de paginas de redireccion.\nCada entrada conten de ligams cap a la primièra e la segonda redireccions, e mai la primièra linha de tèxte de la segonda pagina, çò que provesís, de costuma, la « vertadièra » pagina cibla, cap a la quala la primièra redireccion deuriá redirigir.\nLas entradas <del>barradas</del> son estadas resolgudas.",
        "double-redirect-fixed-move": "[[$1]] es estat desplaçat.\nEs estat mes a jorn automaticament e redirigís ara cap a [[$2]].",
-       "double-redirect-fixed-maintenance": "Correccion automatica de la dobla redireccion de [[$1]] cap a [[$2]] dins un prètzfach de mantenença.",
+       "double-redirect-fixed-maintenance": "Correccion automatica de la dobla redireccion de [[$1]] cap a [[$2]] dins un prètzfait de mantenença.",
        "double-redirect-fixer": "Corrector de redireccion",
        "brokenredirects": "Redireccions copadas",
        "brokenredirectstext": "Aquestas redireccions mènan cap a de paginas qu'existisson pas :",
        "wantedpages-summary": "Aquesta pagina compta totes los ligams, encluses los inserits via de modèls de navigacion. Per una lista dels articles mai demandats, vejatz articles mai demandats, que comptabiliza pas que las referéncias que provenon de l'espaci de nom dels articles. Vejatz tanben lo '''articles mai demandats'''.",
        "wantedpages-badtitle": "Títol invalid dins los resultats : $1",
        "wantedfiles": "Fichièrs desirats",
-       "wantedfiletext-cat": "Los fichièrs seguents son utilizats, mas existisson pas localament. Se se tròban sus un depaus partejat, pòdon èsser listats aicí, mentre que sián, de fach, ja disponibles. Totes aqueles falses positius seràn <del>raiats</del>. Amai, las paginas qu'intègran de fichièrs qu'existisson pas son repertoriadas dins [[:$1]].",
+       "wantedfiletext-cat": "Los fichièrs seguents son utilizats, mas existisson pas localament. Se se tròban sus un depaus partejat, pòdon èsser listats aicí, mentre que sián, de fait, ja disponibles. Totes aqueles falses positius seràn <del>raiats</del>. Amai, las paginas qu'intègran de fichièrs qu'existisson pas son repertoriadas dins [[:$1]].",
        "wantedfiletext-cat-noforeign": "Los fichièrs seguents son utilizats mas existisson pas. Amai, las paginas qu'intègran los fichièrs qu'existisson pas son listats dins [[:$1]].",
-       "wantedfiletext-nocat": "Los fichièrs seguents son utilizats, mas existisson pas localament. Se se tròban sus un depaus partejat, pòdon èsser listats aicí, mentre que sián, de fach, ja disponibles. Totes aqueles falses positius seràn <del>raiats</del>.",
+       "wantedfiletext-nocat": "Los fichièrs seguents son utilizats, mas existisson pas localament. Se se tròban sus un depaus partejat, pòdon èsser listats aicí, mentre que sián, de fait, ja disponibles. Totes aqueles falses positius seràn <del>raiats</del>.",
        "wantedfiletext-nocat-noforeign": "Los fichièrs seguents son utilizats mas existisson pas.",
        "wantedtemplates": "Modèls demandats",
        "mostlinked": "Paginas mai ligadas",
        "booksources-isbn": "ISBN :",
        "booksources-search": "Recercar",
        "booksources-text": "Vaquí una lista de ligams cap a d’autres sites que vendon de libres nòus e d’ocasion e suls quals trobaretz benlèu d'entresenhas suls obratges que cercatz. {{SITENAME}} es pas ligada a cap d'aquestas societats, a pas l’intencion de ne far la promocion.",
-       "booksources-invalid-isbn": "Lo numèro ISBN balhat sembla pas èsser valid ; verificatz s'avètz fach una error al moment de la còpia dempuèi la font.",
+       "booksources-invalid-isbn": "Lo numèro ISBN balhat sembla pas èsser valid ; verificatz s'avètz fait una error al moment de la còpia dempuèi la font.",
        "specialloguserlabel": "Autor :",
-       "speciallogtitlelabel": "Cibla (títol o utilizaire):",
+       "speciallogtitlelabel": "Cibla (títol o {{ns:user}}:nom d'utilizaire) :",
        "log": "Jornals",
        "all-logs-page": "Totas las operacions publicas",
        "alllogstext": "Afichatge combinat de totes los jornals de {{SITENAME}}.\nPodètz restrénher la vista en seleccionant un tipe de jornal, un nom d’utilizaire (cassa sensibla) o una pagina ciblada (idem).",
        "allpagesbadtitle": "Lo títol rensenhat per la pagina es incorrècte o possedís un prefix reservat. Conten segurament un o mantun caractèr especial que pòt pas èsser utilizats dins los títols.",
        "allpages-bad-ns": "{{SITENAME}} a pas d’espaci de noms « $1 ».",
        "allpages-hide-redirects": "Amagar las redireccions",
-       "cachedspecial-viewing-cached-ttl": "Visualizatz una version d'aquesta pagina mesa en escondedor, que pòt èsser datada d’al mai $1.",
+       "cachedspecial-viewing-cached-ttl": "Visualizatz una version d'aquesta pagina mesa en cache, que pòt èsser datada d’al mai $1.",
        "cachedspecial-refresh-now": "Veire lo mai recent.",
        "categories": "Categorias",
        "categoriespagetext": "{{PLURAL:$1|La categoria seguenta es utilizada|Las categorias seguentas son utilizadas}} per de paginas o de fichièrs.\n[[Special:UnusedCategories|Las categorias inutilizadas]] son pas afichadas aicí.\nVejatz tanben [[Special:WantedCategories|las categorias demandadas]].",
        "activeusers-hidebots": "Amagar los robòts",
        "activeusers-hidesysops": "Amagar los administrators",
        "activeusers-noresult": "Cap d'utilizaire pas trobat.",
-       "listgrouprights": "Dreches dels gropes d'utilizaires",
-       "listgrouprights-summary": "Aquesta pagina conten una lista de gropes definits sus aqueste wiki e mai los dreches d'accès qu'i son associats.\nI pòt aver [[{{MediaWiki:Listgrouprights-helppage}}|d'entresenhas complementàrias]] a prepaus dels dreches.",
-       "listgrouprights-key": "Legenda :\n*<span class=\"listgrouprights-granted\">Drech autrejat</span>\n*<span class=\"listgrouprights-revoked\">Drech revocat</span>",
+       "listgrouprights": "Dreits dels gropes d'utilizaires",
+       "listgrouprights-summary": "Aquesta pagina conten una lista de gropes definits sus aqueste wiki e mai los dreits d'accès qu'i son associats.\nI pòt aver [[{{MediaWiki:Listgrouprights-helppage}}|d'entresenhas complementàrias]] a prepaus dels dreits.",
+       "listgrouprights-key": "Legenda :\n*<span class=\"listgrouprights-granted\">Dreit autrejat</span>\n*<span class=\"listgrouprights-revoked\">Dreit revocat</span>",
        "listgrouprights-group": "Grop",
-       "listgrouprights-rights": "Dreches associats",
-       "listgrouprights-helppage": "Help:Dreches dels gropes",
+       "listgrouprights-rights": "Dreits associats",
+       "listgrouprights-helppage": "Help:Dreits dels gropes",
        "listgrouprights-members": "(lista dels membres)",
        "listgrouprights-addgroup": "Pòt apondre $2 {{PLURAL:$2|grop|gropes}} : $1",
        "listgrouprights-removegroup": "Pòt levar $2 {{PLURAL:$2|gropa|gropes}} : $1",
        "listgrouprights-removegroup-self-all": "Se pòt levar totes los gropes de son compte pròpri",
        "listgrouprights-namespaceprotection-header": "Restriccions d'espaci de noms",
        "listgrouprights-namespaceprotection-namespace": "Espaci de noms",
-       "listgrouprights-namespaceprotection-restrictedto": "Drech(s) que permet(on) a l'utilizaire de modificar",
+       "listgrouprights-namespaceprotection-restrictedto": "Dreit(s) que permet(on) a l'utilizaire de modificar",
        "trackingcategories": "Categorias de seguiment",
        "trackingcategories-msg": "Categoria de seguiment",
        "trackingcategories-name": "Nom del messatge",
        "emailccsubject": "Còpia de vòstre messatge a $1 : $2",
        "emailsent": "Messatge mandat",
        "emailsenttext": "Vòstre messatge es estat mandat.",
-       "emailuserfooter": "Aqueste corrièr electronic es estat mandat per « $1 » a « $2 » per la foncion « Mandar un corrièr electronic a l’utilizaire » sus {{SITENAME}}.",
+       "emailuserfooter": "Aqueste corrièr electronic es estat mandat per « $1 » a « $2 » per la foncion « {{int:emailuser}} » sus {{SITENAME}}.",
        "usermessage-summary": "A daissat un messatge de sistèma.",
        "usermessage-editor": "Messatgièr del sistèma",
        "watchlist": "Lista de seguiment",
        "watchlist-options": "Opcions de la lista de seguiment",
        "watching": "Seguit...",
        "unwatching": "Fin del seguit...",
-       "watcherrortext": "Una error s'es producha al moment de la modificacion dels paramètres de vòstra lista de seguiment per « $1 ».",
+       "watcherrortext": "Una error s'es produita al moment de la modificacion dels paramètres de vòstra lista de seguiment per « $1 ».",
        "enotif_reset": "Marcar totas las paginas coma visitadas",
        "enotif_impersonal_salutation": "Utilizaire de {{SITENAME}}",
        "enotif_subject_deleted": "La pagina $1 sus {{SITENAME}} es estada suprimida per {{GENDER:$2|$2}}",
        "deletecomment": "Motiu :",
        "deleteotherreason": "Motius suplementaris o autres :",
        "deletereasonotherlist": "Autre motiu",
-       "deletereason-dropdown": "* Motius de supression los mai corrents\n** Corrièrs indesirables\n** Vandalisme\n** Violacion dels dreches d’autor\n** Demanda de l’autor\n** Redireccion copada",
+       "deletereason-dropdown": "* Motius de supression los mai corrents\n** Corrièrs indesirables\n** Vandalisme\n** Violacion dels dreits d’autor\n** Demanda de l’autor\n** Redireccion copada",
        "delete-edit-reasonlist": "Modifica los motius de la supression",
        "delete-toobig": "Aquesta pagina dispausa d'un istoric important, depassant {{PLURAL:$1|revision|revisions}}.\nLa supression de talas paginas es estada limitada per evitar de perturbacions accidentalas de {{SITENAME}}.",
-       "delete-warning-toobig": "Aquesta pagina dispausa d'un istoric important, depassant {{PLURAL:$1|revision|revisions}}.\nLa suprimir pòt perturbar lo foncionament de la banca de donada de {{SITENAME}}.\nD'efectuar amb prudéncia.",
+       "delete-warning-toobig": "Aquesta pagina dispausa d'un istoric important, depassant {{PLURAL:$1|revision|revisions}}.\nLa suprimir pòt perturbar lo foncionament de la basa de donada de {{SITENAME}}.\nD'efectuar amb prudéncia.",
        "deleteprotected": "Podètz pas suprimir aquesta pagina perque es estada protegida.",
        "rollback": "Anullar las modificacions",
        "rollbacklink": "anullar",
        "revertpage": "Anullacion de las modificacions de [[Special:Contributions/$2|$2]] ([[User talk:$2|Discussion]]) cap a la darrièra version de [[User:$1|$1]]",
        "revertpage-nouser": "Revocacion de las modificacions per un utilizaire amagat a la darrièra version per {{GENDER:$1|[[User:$1|$1]]}}",
        "rollback-success": "Anullacion de las modificacions de $1 ; retorn a la version de $2.",
-       "sessionfailure-title": "La sesilha a fracassat",
-       "sessionfailure": "Vòstra sesilha de connexion sembla aver de problèmas ;\naquesta accion es estada anullada en prevencion d’un piratatge de sesilha.\nClicatz sus « Precedent » e tornatz cargar la pagina d’ont venètz, puèi ensajatz tornarmai.",
+       "sessionfailure-title": "La session a fracassat",
+       "sessionfailure": "Vòstra session de connexion sembla aver de problèmas ;\naquesta accion es estada anullada en prevencion d’un piratatge de session.\nClicatz sus « Precedent » e tornatz cargar la pagina d’ont venètz, puèi ensajatz tornarmai.",
+       "changecontentmodel": "Modificar lo modèl de contengut d’una pagina",
        "changecontentmodel-title-label": "Títol de la pagina",
        "changecontentmodel-model-label": "Novèl modèl de contengut",
        "changecontentmodel-reason-label": "Motiu :",
        "protectexpiry": "Expiracion (expira pas per defaut)",
        "protect_expiry_invalid": "Lo temps d’expiracion es invalid",
        "protect_expiry_old": "Lo temps d’expiracion ja es passat.",
-       "protect-unchain-permissions": "Desvarrolhar ancara mai d'opcions de proteccion",
+       "protect-unchain-permissions": "Desverrolhar ancara mai d'opcions de proteccion",
        "protect-text": "Podètz consultar e modificar lo nivèl de proteccion de la pagina «$1».",
        "protect-locked-blocked": "Podètz pas modificar los nivèls de proteccion tant que sètz bloca{{GENDER:||t|ada}}.. Vaquí los reglatges actuals de la pagina <strong>$1</strong> :",
-       "protect-locked-dblock": "Lo nivèl de proteccion pòt pas èsser modificat perque la banca de donadas es varrolhada.\nVaquí los reglatges actuals de la pagina <strong>$1</strong> :",
-       "protect-locked-access": "Avètz pas los dreches necessaris per modificar los nivèls de proteccion de las paginas.\nVaquí los reglatges actuals de la pagina <strong>$1</strong> :",
+       "protect-locked-dblock": "Lo nivèl de proteccion pòt pas èsser modificat perque la basa de donadas es verrolhada.\nVaquí los reglatges actuals de la pagina <strong>$1</strong> :",
+       "protect-locked-access": "Avètz pas los dreits necessaris per modificar los nivèls de proteccion de las paginas.\nVaquí los reglatges actuals de la pagina <strong>$1</strong> :",
        "protect-cascadeon": "Aquesta pagina es protegida perque es inclusa dins {{PLURAL:$1|la pagina seguenta qu'es estada protegida|las paginas seguentas que son estadas protegidas}}, amb l’opcion « proteccion en cascada » activada. Podètz cambiar lo nivèl de proteccion d'aquesta pagina sens qu'aquò afècte la proteccion en cascada.",
        "protect-default": "Autorizar totes los utilizaires",
-       "protect-fallback": "Autorizar unicament los utilizaires amb lo drech « $1 »",
+       "protect-fallback": "Autorizar unicament los utilizaires amb lo dreit « $1 »",
        "protect-level-autoconfirmed": "Autorizar unicament los utilizaires autoconfirmats",
        "protect-level-sysop": "Autorizar unicament los administrators",
        "protect-summary-cascade": "proteccion en cascada",
        "undeletepage": "Veire e restablir la pagina escafada",
        "undeletepagetitle": "'''La lista seguenta se compausa de versions suprimidas de [[:$1]]'''.",
        "viewdeletedpage": "Istoric de la pagina suprimida",
-       "undeletepagetext": "{{PLURAL:$1|Aquesta pagina es estada escafada e se tròba|Aquestas paginas son estadas escafadas e se tròban}} dins l'archiu. {{PLURAL:$1|Figura|Figuran}} encara dins la banca de donada e {{PLURAL:$1|pòt èsser restablida|pòdon èsser restablidas}}.\nL'archiu pòt èsser escafat periodicament.",
+       "undeletepagetext": "{{PLURAL:$1|Aquesta pagina es estada escafada e se tròba|Aquestas paginas son estadas escafadas e se tròban}} dins l'archiu. {{PLURAL:$1|Figura|Figuran}} encara dins la basa de donada e {{PLURAL:$1|pòt èsser restablida|pòdon èsser restablidas}}.\nL'archiu pòt èsser escafat periodicament.",
        "undelete-fieldset-title": "Restablir las versions",
        "undeleteextrahelp": "Per restablir l'istoric complet d'aquesta pagina, daissatz vèrjas totas las casas de marcar, puèi clicatz sus '''''Restablir'''''.\nPer efectuar un restabliment parcial, marcatz las casas que correspondon a las versions que son de restablir, puèi clicatz sus '''''Restablir'''''.",
        "undeleterevisions": "$1 {{PLURAL:$1|revision archivada|revisions archivadas}}",
        "undelete-filename-mismatch": "Impossible de restablir lo fichièr datat del $1 : fichièr introbable",
        "undelete-bad-store-key": "Impossible de restablir lo fichièr datat del $1 : lo fichièr èra absent abans la supression.",
        "undelete-cleanup-error": "Error al moment de la supression de l’archiu inutilizada « $1 ».",
-       "undelete-missing-filearchive": "Impossible de restablir lo fichièr amb l’ID $1 perque es pas dins la banca de donadas. Benlèu ja i es estat restablit.",
+       "undelete-missing-filearchive": "Impossible de restablir lo fichièr amb l’ID $1 perque es pas dins la basa de donadas. Benlèu ja i es estat restablit.",
        "undelete-error": "Pagina d'error d'anullacion",
        "undelete-error-short": "Error al moment del restabliment del fichièr : $1",
        "undelete-error-long": "D'errors son estadas rencontradas al moment del restabliment del fichièr :\n\n$1",
        "sp-contributions-uploads": "impòrts",
        "sp-contributions-logs": "jornals",
        "sp-contributions-talk": "Discutir",
-       "sp-contributions-userrights": "gerir los dreches",
+       "sp-contributions-userrights": "gerir los dreits",
        "sp-contributions-blocked-notice": "Aqueste utilizaire es actualament blocat. La darrièra entrada del jornal dels blocatges es indicada çaijós a títol d’informacion :",
        "sp-contributions-blocked-notice-anon": "Aquesta adreça IP es actualament blocada.\nLa darrièra intrada del jornal dels blocatges es indicada çaijós a títol d’informacion :",
        "sp-contributions-search": "Cercar las contribucions",
        "whatlinkshere-prev": "{{PLURAL:$1|precedent|$1 precedents}}",
        "whatlinkshere-next": "{{PLURAL:$1|seguent|$1 seguents}}",
        "whatlinkshere-links": "← ligams",
-       "whatlinkshere-hideredirs": "$1 redireccions",
-       "whatlinkshere-hidetrans": "$1 transclusions",
+       "whatlinkshere-hideredirs": "$1 las redireccions",
+       "whatlinkshere-hidetrans": "$1 las inclusions",
        "whatlinkshere-hidelinks": "$1 ligams",
        "whatlinkshere-hideimages": "$1 los fichièrs ligats",
        "whatlinkshere-filters": "Filtres",
        "proxyblockreason": "Vòstra ip es estada blocada perque s’agís d’un proxy dobèrt. Mercé de contactar vòstre fornidor d’accès internet o vòstre supòrt tecnic e de l’informar d'aqueste problèma de seguretat.",
        "sorbsreason": "Vòstra adreça IP es listada en tant que mandatari (proxy) dobèrt DNSBL per {{SITENAME}}.",
        "sorbs_create_account_reason": "Vòstra adreça IP es listada en tant que mandatari (proxy) dobèrt DNSBL per {{SITENAME}}.\nPodètz pas crear un compte",
-       "cant-see-hidden-user": "L'utilizaire qu'ensajatz de blocar es ja estat blocat e amagat. Sens lo drech hideuser, podètz pas veire o modificar lo blocatge de l'utilizaire.",
+       "cant-see-hidden-user": "L'utilizaire qu'ensajatz de blocar es ja estat blocat e amagat. Sens lo dreit hideuser, podètz pas veire o modificar lo blocatge de l'utilizaire.",
        "ipbblocked": "Podètz pas blocar o desblocar d'autres utilizaire, perque vos {{GENDER:|meteis|meteissa|meteis}} sètz {{GENDER:|blocat|blocada|blocat}}.",
        "ipbnounblockself": "Sètz pas autorizat a vos desblocar vos meteis",
-       "lockdb": "Varrolhar la banca",
-       "unlockdb": "Desvarrolhar la banca",
-       "lockdbtext": "Lo clavatge de la banca de donadas empacharà totes los utilizaires de modificar las paginas, de salvar lors preferéncias, de modificar lor lista de seguiment e d'efectuar totas las autras operacions necessitant de modificacions dins la banca de donadas.\nConfirmatz qu'es plan çò que volètz far e que desblocaretz la banca tre que vòstra operacion de mantenença serà acabada.",
-       "unlockdbtext": "Lo desclavatge de la banca de donadas permetrà a totes los utilizaires de modificar tornarmai de paginas, de metre a jorn lors preferéncias e lor lista de seguiment, e mai d'efectuar las autras operacions que necessitan de modificacions dins la banca de donadas.\nConfirmatz qu'es plan çò que volètz far.",
-       "lockconfirm": "Òc, confirmi que desiri varrolhar la banca de donadas.",
-       "unlockconfirm": "Òc, confirmi que desiri desvarrolhar la banca de donadas.",
-       "lockbtn": "Varrolhar la banca",
-       "unlockbtn": "Desvarrolhar la banca",
+       "lockdb": "Verrolhar la basa",
+       "unlockdb": "Desverrolhar la basa",
+       "lockdbtext": "Lo clavatge de la basa de donadas empacharà totes los utilizaires de modificar las paginas, de salvar lors preferéncias, de modificar lor lista de seguiment e d'efectuar totas las autras operacions necessitant de modificacions dins la basa de donadas.\nConfirmatz qu'es plan çò que volètz far e que desblocaretz la banca tre que vòstra operacion de mantenença serà acabada.",
+       "unlockdbtext": "Lo desclavatge de la basa de donadas permetrà a totes los utilizaires de modificar tornamai de paginas, de metre a jorn lors preferéncias e lor lista de seguiment, e mai d'efectuar las autras operacions que necessitan de modificacions dins la basa de donadas.\nConfirmatz qu'es plan çò que volètz far.",
+       "lockconfirm": "Òc, confirmi que desiri verrolhar la basa de donadas.",
+       "unlockconfirm": "Òc, confirmi que desiri desverrolhar la basa de donadas.",
+       "lockbtn": "Verrolhar la banca",
+       "unlockbtn": "Desverrolhar la basa",
        "locknoconfirm": "Avètz pas marcat la casa de confirmacion.",
-       "lockdbsuccesssub": "Varrolhatge de la banca capitat.",
-       "unlockdbsuccesssub": "Banca desvarrolhada.",
-       "lockdbsuccesstext": "La banca de donadas de {{SITENAME}} es varrolhada.\n\nDoblidetz pas de la desvarrolhar quand auretz acabat vòstra operacion de mantenença.",
-       "unlockdbsuccesstext": "La banca de donadas de {{SITENAME}} es desvarrolhada.",
-       "lockfilenotwritable": "Lo fichièr de blocatge de la banca de donadas es pas inscriptible. Per blocar o desblocar la banca de donadas, vos cal poder escriure sul servidor web.",
-       "databasenotlocked": "La banca de donadas es pas varrolhada.",
+       "lockdbsuccesssub": "Verrolhatge de la basa capitat.",
+       "unlockdbsuccesssub": "Basa desverrolhada.",
+       "lockdbsuccesstext": "La basa de donadas de {{SITENAME}} es verrolhada.<br />\n\nDoblidetz pas de [[Special:UnlockDB|la desverrolhar]] quand auretz acabat vòstra operacion de mantenença.",
+       "unlockdbsuccesstext": "La basa de donadas de {{SITENAME}} es desverrolhada.",
+       "lockfilenotwritable": "Lo fichièr de blocatge de la basa de donadas es pas inscriptible. Per blocar o desblocar la basa de donadas, vos cal poder escriure sul servidor web.",
+       "databasenotlocked": "La basa de donadas es pas verrolhada.",
        "lockedbyandtime": "(per $1 lo $2 a $3)",
        "move-page": "Renomenar $1",
        "move-page-legend": "Tornar nomenar una pagina",
        "imageinvalidfilename": "Lo nom del fichièr cibla es incorrècte",
        "fix-double-redirects": "Metre a jorn las redireccions que puntant cap al títol ancian",
        "move-leave-redirect": "Daissar una redireccion darrièr",
-       "protectedpagemovewarning": "'''ATENCION:''' Aquesta pagina es estada protegida per que sonque los utilizaires qu'an los dreches d'administrators la pòscan tornar nomenar. La darrièra entrada del jornal es afichada çaijós per referéncia :",
+       "protectedpagemovewarning": "'''ATENCION:''' Aquesta pagina es estada protegida per que sonque los utilizaires qu'an los dreits d'administrators la pòscan renomenar. La darrièra entrada del jornal es afichada çaijós per referéncia :",
        "semiprotectedpagemovewarning": "'''Nòta :''' Aquesta pagina es estada blocada per que sonque los utilizaires enregistrats la pòscan tornar nomenar. La darrièra entrada del jornal es afichada çaijós per referéncia :",
        "move-over-sharedrepo": "== Lo fichièr existís ==\n[[:$1]] existís ja sus un depaus partejat. Tornar nomenar aqueste fichièr farà lo fichièr sul depaus partatge inaccessible.",
        "file-exists-sharedrepo": "Lo nom causit es ja utilizat per un fichièr sus un depaus partejat.\nCausissètz un autre nom.",
        "allmessagesname": "Nom del camp",
        "allmessagesdefault": "Messatge per defaut",
        "allmessagescurrent": "Messatge actual",
-       "allmessagestext": "Aquò es la lista de totes los messatges disponibles dins l’espaci MediaWiki.\nVisitatz la [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Localizacion MediaWiki] e [//translatewiki.net translatewiki.net] se desiratz contribuir a la localizacion MediaWiki generica.",
+       "allmessagestext": "Aquò es la lista de totes los messatges disponibles dins l’espaci MediaWiki.\nVisitatz la [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Localizacion MediaWiki] e [https://translatewiki.net translatewiki.net] se desiratz contribuir a la localizacion MediaWiki generica.",
        "allmessagesnotsupportedDB": "Aquesta pagina '''{{ns:special}}:Allmessages''' es pas utilizabla perque '''$wgUseDatabaseMessages''' es estat desactivat.",
        "allmessages-filter-legend": "Filtre",
        "allmessages-filter": "Filtrar per estat de modificacion :",
        "importuploaderrortemp": "Lo telecargament del fichièr d'importar a pas capitat. Un dorsièr temporari es mancant.",
        "import-parse-failure": "Ruptura dins l'analisi de l'impòrt XML",
        "import-noarticle": "Pas de pagina d'importar !",
-       "import-nonewrevisions": "Cap de revision pas importada (totas èran ja presentas, o ignoradas del fach d’errors).",
+       "import-nonewrevisions": "Cap de revision pas importada (totas èran ja presentas, o ignoradas del fait d’errors).",
        "xml-error-string": "$1 a la linha $2, col $3 (octet $4) : $5",
        "import-upload": "Impòrt d'un fichier XML",
-       "import-token-mismatch": "Pèrda de las donadas de sesilha. Tornatz ensajar.",
+       "import-token-mismatch": "Pèrda de las donadas de session.\n\nBenlèu que sètz estats desconnectats. <strong>Verificatz que sètz totjorn connectat e reensajatz</strong>.\nSe aquò fonciona totjorn pas, ensajatz de [[Special:UserLogout|vos desconnectar]] e reconnectatz-vos, e verificatz que vòstre navigador accèpta los cookies d'aqueste site.",
        "import-invalid-interwiki": "Impossible d'importar dempuèi lo wiki especificat.",
        "import-error-edit": "La pagina « $1 » es pas estada importada perque sètz pas autorizat a la modificar.",
        "import-error-create": "La pagina « $1 » es pas estada importada perque sètz pas autorizat a la crear.",
        "pageinfo-magic-words": "{{PLURAL:$1|Mot magic|Mots magics}} ($1)",
        "pageinfo-hidden-categories": "{{PLURAL:$1|Categoria amagada|Categorias amagadas}} ($1)",
        "pageinfo-templates": "{{PLURAL:$1|Modèl inclús|Modèls incluses}} ($1)",
-       "pageinfo-transclusions": "{{PLURAL:$1|Pagina traducha|Paginas traduchas}} sus ($1)",
+       "pageinfo-transclusions": "{{PLURAL:$1|Pagina traduita|Paginas traduitas}} sus ($1)",
        "pageinfo-toolboxlink": "Informacion sus la pagina",
        "pageinfo-redirectsto": "Redirigir cap a",
        "pageinfo-redirectsto-info": "info",
        "rcpatroldisabledtext": "La foncionalitat de relectura dels darrièrs cambiaments es actualament desactivada.",
        "markedaspatrollederror": "Pòt pas èsser marcat coma pas vandalizat",
        "markedaspatrollederrortext": "Vos cal seleccionar una version per poder la marcar coma pas vandalizada.",
-       "markedaspatrollederror-noautopatrol": "Avètz pas lo drech de marcar vòstras pròprias modificacions coma susvelhadas.",
+       "markedaspatrollederror-noautopatrol": "Avètz pas lo dreit de marcar vòstras pròprias modificacions coma susvelhadas.",
        "markedaspatrollednotify": "Aquesta modificacion de $1 es estada marcada coma relegida.",
        "markedaspatrollederrornotify": "Fracàs del marcatge coma contrarotlat.",
        "patrol-log-page": "Istoric de las versions patrolhadas",
        "filedeleteerror-short": "Error al moment de la supression del fichièr : $1",
        "filedeleteerror-long": "D'errors son estadas rencontradas al moment de la supression del fichièr :\n\n$1",
        "filedelete-missing": "Lo fichièr « $1 » pòt pas èsser suprimit perque existís pas.",
-       "filedelete-old-unregistered": "La revision del fichièr especificat « $1 » es pas dins la banca de donadas.",
-       "filedelete-current-unregistered": "Lo fichièr especificat « $1 » es pas dins la banca de donadas.",
+       "filedelete-old-unregistered": "La revision del fichièr especificat « $1 » es pas dins la basa de donadas.",
+       "filedelete-current-unregistered": "Lo fichièr especificat « $1 » es pas dins la basa de donadas.",
        "filedelete-archive-read-only": "Lo dorsièr d’archivatge « $1 » es pas modificable pel servidor.",
        "previousdiff": "← Cambiament precedent",
        "nextdiff": "Cambiament seguent →",
-       "mediawarning": "<strong>Atencion :</strong> Aqueste tipe de fichièr pòt conténer de còde malvolent.\nSe l'executatz, vòstre sistèma pòt èsser compromés.",
+       "mediawarning": "<strong>Atencion :</strong> Aqueste tipe de fichièr pòt conténer de còdi malvolent.\nSe l'executatz, vòstre sistèma pòt èsser compromés.",
        "imagemaxsize": "Format maximal dels imatges :<br />''(per las paginas de descripcion d’imatges)''",
        "thumbsize": "Talha de la miniatura :",
        "widthheightpage": "$1 × $2, $3 {{PLURAL:$3|pagina|paginas}}",
        "exif-keywords": "Mots claus",
        "exif-worldregioncreated": "Region del mond dins la quala la fòto es estada presa",
        "exif-countrycreated": "País dins lo qual la fòto es estada presa",
-       "exif-countrycodecreated": "Còde del país dins lo qual la fòto es estada presa",
+       "exif-countrycodecreated": "Còdi del país dins lo qual la fòto es estada presa",
        "exif-provinceorstatecreated": "Província o Estat dins lo qual la fòto es estada presa",
        "exif-citycreated": "Vila dins la quala la fòto es estada presa",
        "exif-sublocationcreated": "Partida de la vila dins la quala la fòto es estada presa",
        "exif-worldregiondest": "Region del mond representada",
        "exif-countrydest": "País representat",
-       "exif-countrycodedest": "Còde del país representat",
+       "exif-countrycodedest": "Còdi del país representat",
        "exif-provinceorstatedest": "Província o Estat representat",
        "exif-citydest": "Vila representada",
        "exif-sublocationdest": "Partida de la vila representada",
        "exif-urgency": "Urgéncia",
        "exif-fixtureidentifier": "Nom element recurrent",
        "exif-locationdest": "Luòc representat",
-       "exif-locationdestcode": "Còde del luòc representat",
+       "exif-locationdestcode": "Còdi del luòc representat",
        "exif-objectcycle": "Moment de la jornada al qual aqueste mèdia es destinat",
        "exif-contact": "Informacions de contacte",
        "exif-writer": "Autor",
        "exif-iimsupplementalcategory": "Categorias suplementàrias",
        "exif-datetimeexpires": "Utilizar pas aprèp",
        "exif-datetimereleased": "Paregut lo",
-       "exif-originaltransmissionref": "Còde de localizacion de la transmission originala",
+       "exif-originaltransmissionref": "Còdi de localizacion de la transmission originala",
        "exif-identifier": "Identificant",
        "exif-lens": "Lentilha utilizada",
        "exif-serialnumber": "Numèro de seria de l'aparelh de fòto",
        "exif-datetimemetadata": "Data de la darrièra modificacion de las metadonadas",
        "exif-nickname": "Nom informal de l'imatge",
        "exif-rating": "Nòta (sus 5)",
-       "exif-rightscertificate": "Certificat de gestion dels dreches",
-       "exif-copyrighted": "Estatut del drech d'autor",
-       "exif-copyrightowner": "Detentor del drech d'autor",
+       "exif-rightscertificate": "Certificat de gestion dels dreits",
+       "exif-copyrighted": "Estatut del dreit d'autor",
+       "exif-copyrightowner": "Detentor del dreit d'autor",
        "exif-usageterms": "Condicions d'utilizacion",
-       "exif-webstatement": "Declaracion de dreches d'autor en linha",
+       "exif-webstatement": "Declaracion de dreits d'autor en linha",
        "exif-originaldocumentid": "Identificant unic del document original",
        "exif-licenseurl": "URL de la licéncia",
        "exif-morepermissionsurl": "Informacions sus las licéncias alternativas",
        "exif-contentwarning": "Avertiment sul contengut",
        "exif-giffilecomment": "Comentari de fichièr GIF",
        "exif-intellectualgenre": "Tipe d'element",
-       "exif-subjectnewscode": "Còde del subjècte",
-       "exif-scenecode": "Còde de scèna IPTC",
+       "exif-subjectnewscode": "Còdi del subjècte",
+       "exif-scenecode": "Còdi de scèna IPTC",
        "exif-event": "Eveniment representat",
        "exif-organisationinimage": "Organizacion representada",
        "exif-personinimage": "Persona representada",
        "exif-compression-2": "CCITT Grop 3 Longor de l'encodatge Huffman modificat de dimension 1",
        "exif-compression-3": "CCITT Grop 3 encodatge del fax",
        "exif-compression-4": "CCITT Grop 4 encodatge del fax",
-       "exif-copyrighted-true": "Somés al drech d'autor",
-       "exif-copyrighted-false": "Estat dels dreches d’autor pas definit",
+       "exif-copyrighted-true": "Somés al dreit d'autor",
+       "exif-copyrighted-false": "Estat dels dreits d’autor pas definit",
        "exif-unknowndate": "Data desconeguda",
        "exif-orientation-1": "Normala",
        "exif-orientation-2": "Inversada orizontalament",
        "exif-exposureprogram-4": "Prioritat a l’obturacion",
        "exif-exposureprogram-5": "Programa de creacion (preferéncia a la prigondor de camp)",
        "exif-exposureprogram-6": "Programa d'accion (preferéncia a la velocitat d’obturacion)",
-       "exif-exposureprogram-7": "Mòde retrach (per clichats de prèp amb rèireplan fosc)",
+       "exif-exposureprogram-7": "Mòde retrait (per clichats de prèp amb rèireplan fosc)",
        "exif-exposureprogram-8": "Mòde païsatge (per de clichats de païsatges nets)",
        "exif-subjectdistance-value": "{{PLURAL:$1|$1 mètre|$1 mètres}}",
        "exif-meteringmode-0": "Desconegut",
        "exif-whitebalance-1": "Balança dels blancs manuala",
        "exif-scenecapturetype-0": "Estandard",
        "exif-scenecapturetype-1": "Païsatge",
-       "exif-scenecapturetype-2": "Retrach",
+       "exif-scenecapturetype-2": "Retrait",
        "exif-scenecapturetype-3": "Scèna nuechenca",
        "exif-gaincontrol-0": "Cap",
        "exif-gaincontrol-1": "Augmentacion febla de l’aquisicion",
        "exif-dc-date": "Data(s)",
        "exif-dc-publisher": "Editor",
        "exif-dc-relation": "Mèdias connèxes",
-       "exif-dc-rights": "dreches",
+       "exif-dc-rights": "Dreits",
        "exif-dc-source": "Mèdia font",
        "exif-dc-type": "Tipe de mèdia",
        "exif-rating-rejected": "Regetat",
        "exif-isospeedratings-overflow": "Mai grand que 65535",
        "exif-iimcategory-ace": "Arts, cultura e lésers",
-       "exif-iimcategory-clj": "Crime e drech",
+       "exif-iimcategory-clj": "Crime e dreit",
        "exif-iimcategory-dis": "Catastròfas e accidents",
        "exif-iimcategory-fin": "Economia e afars",
        "exif-iimcategory-edu": "Educacion",
        "monthsall": "totes",
        "confirmemail": "Confirmar l'adreça de corrièr electronic",
        "confirmemail_noemail": "L’adreça de corrièr electronic configurada dins vòstras [[Special:Preferences|preferéncias]] es pas valida.",
-       "confirmemail_text": "{{SITENAME}} necessita la verificacion de vòstra adreça de corrièr electronic abans de poder utilizar tota foncion de messatjariá. Utilizatz lo boton çaijós per mandar un corrièr electronic de confirmacion a vòstra adreça. Lo corrièr contendrà un ligam contenent un còde, cargatz aqueste ligam dins vòstre navigador per validar vòstra adreça.",
-       "confirmemail_pending": "Un còde de confirmacion ja vos es estat mandat per corrièr electronic ;\nse venètz de crear vòstre compte, esperatz qualques minutas que l’e-mail arribe abans de demandar un còde novèl.",
-       "confirmemail_send": "Mandar un còde de confirmacion",
+       "confirmemail_text": "{{SITENAME}} necessita la verificacion de vòstra adreça de corrièr electronic abans de poder utilizar tota foncion de messatjariá. Utilizatz lo boton çaijós per mandar un corrièr electronic de confirmacion a vòstra adreça. Lo corrièr contendrà un ligam contenent un còdi, cargatz aqueste ligam dins vòstre navigador per validar vòstra adreça.",
+       "confirmemail_pending": "Un còdi de confirmacion ja vos es estat mandat per corrièr electronic ;\nse venètz de crear vòstre compte, esperatz qualques minutas que l’e-mail arribe abans de demandar un còdi novèl.",
+       "confirmemail_send": "Mandar un còdi de confirmacion",
        "confirmemail_sent": "Corrièr electronic de confirmacion mandat.",
-       "confirmemail_oncreate": "Un còde de confirmacion es estat mandat a vòstra adreça de corrièr electronic.\nAqueste còde es pas requerit per se connectar, mas n'aurètz besonh per activar las foncionalitats ligadas als corrièrs electronics sus aqueste wiki.",
+       "confirmemail_oncreate": "Un còdi de confirmacion es estat mandat a vòstra adreça de corrièr electronic.\nAqueste còdi es pas requesit per se connectar, mas n'auretz besonh per activar las foncionalitats ligadas als corrièrs electronics sus aqueste wiki.",
        "confirmemail_sendfailed": "{{SITENAME}} pòt pas mandar lo corrièr de confirmacion.\nVerificatz se vòstra adreça conten pas de caractèrs interdiches.\n\nRetorn del programa de corrièr : $1",
-       "confirmemail_invalid": "Còde de confirmacion incorrècte. Benlèu lo còde a expirat.",
+       "confirmemail_invalid": "Còdi de confirmacion incorrècte. Benlèu que lo còdi a expirat.",
        "confirmemail_needlogin": "Vos cal vos $1 per confirmar vòstra adreça de corrièr electronic.",
        "confirmemail_success": "Vòstra adreça de corrièr electronic es confirmada. Ara, vos podètz connectar e aprofechar del wiki.",
        "confirmemail_loggedin": "Ara, vòstra adreça es confirmada",
        "confirmemail_subject": "Confirmacion d’adreça de corrièr electronic per {{SITENAME}}",
-       "confirmemail_body": "Qualqu’un, probablament vos,e amb l’adreça IP $1, a enregistrat un compte « $2 » amb aquesta adreça de corrièr electronic sul site {{SITENAME}}.\n\nPer confirmar qu'aqueste compte vos aparten vertadièrament e activar las foncions de messatjariá sus {{SITENAME}}, seguissètz lo ligam çaijós dins vòstre navigador :\n\n$3\n\nSe s’agís pas de vos, dobriscatz pas lo ligam.\nAqueste còde de confirmacion expirarà lo $4, seguissètz l’autre ligam çaijós dins vòstre navigador :\n\n$5\n\nAqueste còde de confirmacion expirarà lo $4.",
-       "confirmemail_body_changed": "Qualqu’un, probablament vos, a partir de l’adreça IP $1,\na modificat l’adreça de corrièr associada al compte « $2 » de {{SITENAME}}\nen aquesta adreça.\n\nPer confirmar qu'aqueste compte vos aparten vertadièrament e per tal\nde reactivar las foncions de messatjariá sus {{SITENAME}},\nseguissètz aqueste ligam dins vòstre navigador :\n\n$3\n\nS'aqueste compte vos aparten *pas*, dobriscatz pas aqueste ligam ;\npodètz seguir l’autre ligam çaijós per anullar la\nconfirmacion de vòstra adreça de corrièl :\n\n$5\n\nAqueste còde de confirmacion expirarà lo $4.",
-       "confirmemail_body_set": "Qualqu’un, probablament vos, dempuèi l’adreça IP $1, a modificat l'adreça de corrièr electronic del compte « $2 » amb aquesta sul site {{SITENAME}}.\n\nPer confirmar qu'aqueste compte vos aparten vertadièrament e reactivar las foncions de messatjariá sus {{SITENAME}}, seguissètz lo ligam çaijós dins vòstre navigador :\n\n$3\n\nAqueste còde de confirmacion expirarà lo $4.\n\nSe s’agís *pas* de vòstre compte, seguissètz aqueste ligam per anullar la confirmacion de l'adreça de corrièr electronic :\n\n$5",
+       "confirmemail_body": "Qualqu’un, probablament vos,e amb l’adreça IP $1, a enregistrat un compte « $2 » amb aquesta adreça de corrièr electronic sul site {{SITENAME}}.\n\nPer confirmar qu'aqueste compte vos aparten vertadièrament e activar las foncions de messatjariá sus {{SITENAME}}, seguissètz lo ligam çaijós dins vòstre navigador :\n\n$3\n\nSe s’agís pas de vos, dobriscatz pas lo ligam.\nAqueste còdi de confirmacion expirarà lo $4, seguissètz l’autre ligam çaijós dins vòstre navigador :\n\n$5\n\nAqueste còdi de confirmacion expirarà lo $4.",
+       "confirmemail_body_changed": "Qualqu’un, probablament vos, a partir de l’adreça IP $1,\na modificat l’adreça de corrièr associada al compte « $2 » de {{SITENAME}}\nen aquesta adreça.\n\nPer confirmar qu'aqueste compte vos aparten vertadièrament e per tal\nde reactivar las foncions de messatjariá sus {{SITENAME}},\nseguissètz aqueste ligam dins vòstre navigador :\n\n$3\n\nS'aqueste compte vos aparten *pas*, dobriscatz pas aqueste ligam ;\npodètz seguir l’autre ligam çaijós per anullar la\nconfirmacion de vòstra adreça de corrièl :\n\n$5\n\nAqueste còdi de confirmacion expirarà lo $4.",
+       "confirmemail_body_set": "Qualqu’un, probablament vos, dempuèi l’adreça IP $1, a modificat l'adreça de corrièr electronic del compte « $2 » amb aquesta sul site {{SITENAME}}.\n\nPer confirmar qu'aqueste compte vos aparten vertadièrament e reactivar las foncions de messatjariá sus {{SITENAME}}, seguissètz lo ligam çaijós dins vòstre navigador :\n\n$3\n\nAqueste còdi de confirmacion expirarà lo $4.\n\nSe s’agís *pas* de vòstre compte, seguissètz aqueste ligam per anullar la confirmacion de l'adreça de corrièr electronic :\n\n$5",
        "confirmemail_invalidated": "Confirmacion de l’adreça de corrièr electronic anullada",
        "invalidateemail": "Anullar la confirmacion del corrièr electronic",
        "scarytranscludedisabled": "[La transclusion interwiki es desactivada]",
        "size-megabytes": "$1 Mo",
        "size-gigabytes": "$1 Go",
        "lag-warn-normal": "Los cambiaments que datan de mens de $1 {{PLURAL:$1|segonda|segondas}} pòdon aparéisser pas dins aquesta lista.",
-       "lag-warn-high": "En rason d’una fòrta carga de las bancas de donadas, los cambiaments que datan de mens de $1 {{PLURAL:$1|segonda|segondas}} pòdon aparéisser pas dins aquesta lista.",
+       "lag-warn-high": "En rason d’una fòrta carga de las basas de donadas, los cambiaments que datan de mens de $1 {{PLURAL:$1|segonda|segondas}} pòdon aparéisser pas dins aquesta lista.",
        "watchlistedit-normal-title": "Modificacion de la lista de seguiment",
        "watchlistedit-normal-legend": "Levar de paginas de la lista de seguiment",
        "watchlistedit-normal-explain": "Las paginas que seguissètz son visiblas çaijós, classadas per espaci de noms.\nPer levar una pagina (e sa pagina de discussion) de la lista, seleccionatz la casa al costat puèi clicatz sul boton en bas.\nTanben la podètz [[Special:EditWatchlist/raw|modificar en mòde brut]].",
        "version-poweredby-others": "autres",
        "version-poweredby-translators": "traductors de translatewiki.net",
        "version-software": "Logicial installat",
-       "version-software-product": "Produch",
+       "version-software-product": "Produit",
        "version-software-version": "Version",
        "version-entrypoints": "URL dels punts d'entrada",
        "version-entrypoints-header-entrypoint": "Punt d'entrada",
        "fileduplicatesearch-noresults": "Cap de fichièr nomenat « $1 » es pas estat trobat.",
        "specialpages": "Paginas especialas",
        "specialpages-note-top": "Legenda",
-       "specialpages-note": "* Paginas especialas normalas.\n* <span class=\"mw-specialpagerestricted\">Paginas especialas restrenchas.</span>",
+       "specialpages-note": "* Paginas especialas normalas.\n* <span class=\"mw-specialpagerestricted\">Paginas especialas restrentas.</span>",
        "specialpages-group-maintenance": "Rapòrts de mantenença",
        "specialpages-group-other": "Autras paginas especialas",
        "specialpages-group-login": "S'identificar / s'inscriure",
        "specialpages-group-changes": "Darrièrs cambiaments e jornals",
        "specialpages-group-media": "Rapòrts dels fichièrs de mèdias e dels impòrts",
-       "specialpages-group-users": "Utilizaires e dreches estacats",
+       "specialpages-group-users": "Utilizaires e dreits estacats",
        "specialpages-group-highuse": "Utilizacion intensa de las paginas",
        "specialpages-group-pages": "Listas de paginas",
        "specialpages-group-pagetools": "Aisinas per las paginas",
        "compare-revision-not-exists": "La revision qu'avètz especificada existís pas.",
        "dberr-problems": "O planhèm ! Aqueste site rencontra de dificultats tecnicas.",
        "dberr-again": "Ensajatz d'esperar qualques minutas e tornatz cargar.",
-       "dberr-info": "(Accès a la banca de donadas impossible : $1)",
-       "dberr-info-hidden": "(Accès a la banca de donadas impossible)",
+       "dberr-info": "(Accès a la basa de donadas impossible : $1)",
+       "dberr-info-hidden": "(Accès a la basa de donadas impossible)",
        "dberr-usegoogle": "Podètz ensajar de cercar amb Google pendent aqueste temps.",
        "dberr-outofdate": "Notatz que lors indèxes de nòstre contengut pòdon èsser depassats.",
        "dberr-cachederror": "Aquò es una còpia amagada de la pagina demandada e pòt èsser depassada.",
        "feedback-bugcheck": "Remirable ! Verificatz simplament qu'es pas un dels [$1 bugs ja coneguts].",
        "feedback-bugnew": "Ai verificat. Senhalar un bug novèl",
        "feedback-cancel": "Anullar",
-       "feedback-close": "Fach",
+       "feedback-close": "Fait",
        "feedback-external-bug-report-button": "Senhalar un bug tecnic",
        "feedback-dialog-title": "Sometre un comentari",
        "feedback-error-title": "Error",
        "api-error-publishfailed": "Error intèrna: Lo servidor a pas pogut publicar lo fichièr temporari.",
        "api-error-stasherror": "Una error s'es produsida al moment del telecargament del fichièr per lo dissimular.",
        "api-error-timeout": "Lo servidor a pas respondut dins lo relambi pervist.",
-       "api-error-unclassified": "Una error desconeguda s'es producha.",
+       "api-error-unclassified": "Una error desconeguda s'es produita.",
        "api-error-unknown-code": "Error desconeguda : « $1 »",
        "api-error-unknown-error": "Error intèrna : Quicòm a mal virat al moment del mandadís de vòstre fichièr.",
        "api-error-unknown-warning": "Avertiment desconegut : $1",
        "limitreport-expansiondepth": "Mai granda prigondor d’espandiment",
        "limitreport-expensivefunctioncount": "Nombre de foncions d’analisi costosas",
        "expandtemplates": "Espandiment dels modèls",
-       "expand_templates_intro": "Aquesta pagina especiala accèpta un tèxte wiki source e permet de realizar recursivament l’espandiment dels modèls que conten.\nRealiza tanben l’espandiment de las foncions del parser talas coma\n<code><nowiki>{{</nowiki>#language:...}}</code> e de variablas coma\n<code><nowiki>{{</nowiki>CURRENTDAY}}</code>.\nEn fach, realiza l'espandiment de gaireben tot çò qu'es enquadrat per d'acoladas doblas.",
-       "expand_templates_title": "Títol de la pagina, se lo còde utiliza {{FULLPAGENAME}}, etc. :",
+       "expand_templates_intro": "Aquesta pagina especiala accèpta un tèxte wiki source e permet de realizar recursivament l’espandiment dels modèls que conten.\nRealiza tanben l’espandiment de las foncions del parser talas coma\n<code><nowiki>{{</nowiki>#language:...}}</code> e de variablas coma\n<code><nowiki>{{</nowiki>CURRENTDAY}}</code>.\nEn fait, realiza l'espandiment de gaireben tot çò qu'es enquadrat per d'acoladas doblas.",
+       "expand_templates_title": "Títol de la pagina, se lo còdi utiliza {{FULLPAGENAME}}, etc. :",
        "expand_templates_input": "Picatz vòstre tèxte aicí :",
        "expand_templates_output": "Visualizatz lo resultat :",
        "expand_templates_xml_output": "Sortida XML",
        "special-characters-title-endash": "jonhent anglés",
        "special-characters-title-emdash": "jonhent em",
        "special-characters-title-minus": "signe mens",
-       "randomrootpage": "Pagina raiç aleatòria"
+       "randomrootpage": "Pagina raiç aleatòria",
+       "log-action-filter-rights": "Tipe de cambiament de dreits :",
+       "log-action-filter-suppress": "Tipe de supression :",
+       "changecredentials": "Modificar las informacions d’identificacion"
 }
index 18d8a84..750bc46 100644 (file)
        "jumpto": "Siirry",
        "jumptonavigation": "navigatsii",
        "jumptosearch": "eči",
-       "view-pool-error": "Pahakse mielekse palvelimet ollah ylikuormittunnuot täl hetkel. Liijan moni käyttäi oppiu tarkastella tädä sivuu. Vuota kodvaine enne gu opit uvvessah.",
+       "view-pool-error": "Pahakse mielekse palvelimet ollah ylikuormittunnuot täl hetkel. Liijan moni käyttäi oppiu tarkastella tädä sivuu. Vuota kodvaine, enne gu opit uvvessah.\n\n$1",
        "generic-pool-error": "Pahakse mielekse palvelimet ollah ylikuormittunnuot nygöi. Liijan moni käyttäi oppiu tarkastella tädä sivuu.",
        "pool-timeout": "Lukittumizen vuotanduaigu on loppenuhes.",
        "pool-queuefull": "Ečindykyzymykzien tallendustila on täyzi",
        "privacypage": "Project:Luottamuksen periuateh",
        "badaccess": "Ei oigevuksii",
        "badaccess-group0": "Sinul ei ole lubua suorittua tädä toiminduo.",
-       "badaccess-groups": "Tämän toimindon voijah suorittua vai {{PLURAL:$2|täh joukkoh|nämmih joukkoloih}} kuulujat käyttäjät.",
+       "badaccess-groups": "Tämän toimindon voijah suorittua vai {{PLURAL:$2|täh joukkoh|nämmih joukkoloih}}:$1 kuulujat käyttäjät.",
        "versionrequired": "MediiWikis pidäy vähimyölleh versii $1",
        "versionrequiredtext": "MediiWikis pidäy vähimyölleh versii $1 tädä sivuu kaččojes. Kačo [[Special:Version|versii]].",
        "ok": "OK",
        "revdelete-radio-same": "(älä vaihta)",
        "revdelete-radio-set": "Peitetty",
        "revdelete-radio-unset": "Nägövil",
-       "logdelete-success": "'''Tapahtumuhistourien nägyvytty on muutettu.'''",
+       "logdelete-success": "Tapahtumuhistourien nägyvytty on muutettu.",
        "logdelete-failure": "'''Tapahtumuhistourien nägyvytty ei voidu azettua:'''\n$1",
        "revdel-restore": "vaihta nägyvys",
        "pagehist": "Sivuhistourii",
index 3d5bc9c..4f80dee 100644 (file)
        "protectedpagetext": "ଏହି ପୃଷ୍ଠାଟି ସମ୍ପାଦନା କିମ୍ବା ଅନ୍ୟକୌଣସି କାର୍ଯ୍ୟ କରିବାରୁ କିଳାଯାଇଛି ।",
        "viewsourcetext": "ଆପଣ ଏହି ପୃଷ୍ଠାର ଲେଖା ଦେଖିପାରିବେ ଓ ନକଲ କରିପାରିବେ:",
        "viewyourtext": "ଆପଣ <strong>ଆପଣଙ୍କ ସମ୍ପାଦିତ </strong> ଅଧରଟିକୁ ଦେଖିପାରିବେ ଓ ଏହି ପୃଷ୍ଠାକୁ ନକଲ କରି ପାରିବେ",
-       "protectedinterface": "ଏହି ପୃଷ୍ଠାଟି ଏହି ଉଇକିରେ ଥିବା ସଫ୍ଟୱେର ନିମନ୍ତେ ଇଣ୍ଟରଫେସ ଲେଖା ଯୋଗାଇଥାଏ ଓ ଏହା ଅପବ୍ୟବହାରକୁ ରୋକିବା ନିମନ୍ତେ କିଳାଯାଇଅଛି । ସମସ୍ତ ଉଇକିର ଅନୁବାଦକୁ ଯୋଡ଼ିବା ଏବଂ ବଦଳାଇବା ପାଇଁ ମେଡ଼ିଆଉଇକିର ସ୍ଥାନୀୟ ପ୍ରକଳ୍ପରେ ଥିବା [//translatewiki.net/ translatewiki.net]କୁ ବ୍ୟବହାର କରନ୍ତୁ ।",
+       "protectedinterface": "ଏହି ପୃଷ୍ଠାଟି ଏହି ଉଇକିରେ ଥିବା ସଫ୍ଟୱେର ନିମନ୍ତେ ଇଣ୍ଟରଫେସ ଲେଖା ଯୋଗାଇଥାଏ ଓ ଏହା ଅପବ୍ୟବହାରକୁ ରୋକିବା ନିମନ୍ତେ କିଳାଯାଇଅଛି । ସମସ୍ତ ଉଇକିର ଅନୁବାଦକୁ ଯୋଡ଼ିବା ଏବଂ ବଦଳାଇବା ପାଇଁ ମେଡ଼ିଆଉଇକିର ସ୍ଥାନୀୟ ପ୍ରକଳ୍ପରେ ଥିବା [https://translatewiki.net/ translatewiki.net]କୁ ବ୍ୟବହାର କରନ୍ତୁ ।",
        "editinginterface": "'''ଚେତାବନୀ:''' ଆପଣ ସଫ୍ଟୱେରର ଇଣ୍ଟରଫେସ ଲେଖା ଯୋଗାଇବା ନିମନ୍ତେ ବ୍ୟବହାର କରାଯାଉଥିବା ଏକ ପୃଷ୍ଠାର ସମ୍ପାଦନା କରୁଅଛନ୍ତି ।\nଏହି ଉଇକିପୃଷ୍ଠାର କିଛି ବି ବଦଳ ବାକି ସଭ୍ୟମାନଙ୍କ ଇଣ୍ଟରଫେସର ଦେଖଣାକୁ ପ୍ରଭାବିତ କରିବ ।",
-       "translateinterface": "ସମସ୍ତ ଉଇକିରେ ଅନୁବାଦ ଯୋଡିବା ପାଇଁ କିମ୍ବା ବଦଳାଇବା ପାଇଁ ମେଡିଆଉଇକିର ଅଞ୍ଚଳିକୀକରଣ ପ୍ରକଳ୍ପ  [//translatewiki.net/ translatewiki.net] ବ୍ୟବହାର କରନ୍ତୁ ।",
+       "translateinterface": "ସମସ୍ତ ଉଇକିରେ ଅନୁବାଦ ଯୋଡିବା ପାଇଁ କିମ୍ବା ବଦଳାଇବା ପାଇଁ ମେଡିଆଉଇକିର ଅଞ୍ଚଳିକୀକରଣ ପ୍ରକଳ୍ପ  [https://translatewiki.net/ translatewiki.net] ବ୍ୟବହାର କରନ୍ତୁ ।",
        "cascadeprotected": "ଏହି ପୃଷ୍ଠା ସମ୍ପାଦନା କରିବାରୁ କିଳାଯାଇଅଛି, କାରଣ ଏଥିରେ ତଳଲିଖିତ {{PLURAL:$1|ପୃଷ୍ଠାଟିଏ ଅଛି|ଟି ପୃଷ୍ଠା ଅଛି}} ଯାହା \"କ୍ୟାସକେଡ଼ କରା\" ସୁବିଧା ଦେଇ କିଳାଯାଇଅଛି ।:\n$2",
        "namespaceprotected": "ଆପଣଙ୍କୁ ଏହି '''$1''' ନେମସ୍ପେସ ଥିବା ପୃଷ୍ଠାରେ ସମ୍ପାଦନା କରିବା ନିମନ୍ତେ ଅନୁମତି ମିଳିନାହିଁ ।",
        "customcssprotected": "ଆପଣଙ୍କୁ ଏହି CSS ପୃଷ୍ଠାର ସମ୍ପାଦନା ନିମନ୍ତେ ଅନୁମତି ମିଳିନାହିଁ, କାରଣ ଏଥିରେ ଆଉଜଣେ ସଭ୍ୟଙ୍କର ବ୍ୟକ୍ତିଗତ ସଜାଣି ରହିଅଛି ।",
        "noname": "ଆପଣ ଗୋଟିଏ ବୈଧ ଇଉଜର ନାମ ଦେଇନାହାନ୍ତି ।",
        "loginsuccesstitle": "ଠିକଭାବେ ଲଗ-ଇନ ହେଲା",
        "loginsuccess": "'''ଆପଣ {{SITENAME}}ରେ \"$1\" ନାମରେ ଲଗ-ଇନ କରିଛନ୍ତି ।'''",
-       "nosuchuser": "\"$1\" à¬¨à¬¾à¬®à¬°à­\87 à¬\95à­\87ହି à¬\9cଣà­\87 à¬¬à¬¿ à¬¸à¬­à­\8dà­\9f à¬¨à¬¾à¬¹à¬¾à¬¨à­\8dତି à¥¤\nà¬\87à¬\89à¬\9cର à¬¨à¬¾à¬® à¬\87à¬\82ରାà¬\9cà­\80 à¬\9bà­\8bà¬\9f à¬\93 à¬¬à¬¡à¬¼ à¬\85à¬\95à­\8dଷର à¬ªà­\8dରତି à¬¸à¬®à­\8dବà­\87ଦନଶà­\80ଳ à¥¤\nà¬\86ପଣ à¬¨à¬¿à¬\9cର à¬¬à¬¨à¬¾à¬¨ à¬ªà¬°à¬\96ି à¬¨à¬¿à¬\85ନà­\8dତà­\81, à¬\85ଥବା [[Special:CreateAccount|ନà­\82à¬\86 à¬\96ାତାà¬\9fିà¬\8f à¬¤à¬¿à¬\86ରି à¬\95ରନà­\8dତà­\81]] à¥¤",
+       "nosuchuser": "\"$1\" ନାମରେ କେହି ଜଣେ ବି ସଭ୍ୟ ନାହାନ୍ତି ।\nଇଉଜର ନାମ ଇଂରାଜୀ ଛୋଟ ଓ ବଡ଼ ଅକ୍ଷର ପ୍ରତି ସମ୍ବେଦନଶୀଳ ।\nବନାନ ପରଖି ନିଅନ୍ତୁ, ଅଥବା [[Special:CreateAccount|ନୂଆ ଖାତାଟିଏ ତିଆରି କରନ୍ତୁ]] ।",
        "nosuchusershort": "\"$1\" ନାମରେ କେହି ଜଣେ ବି ସଭ୍ୟ ନାହାନ୍ତି ।\nଆପଣ ବନାନ ପରଖି ନିଅନ୍ତୁ ।",
        "nouserspecified": "ଆପଣଙ୍କୁ ଇଉଜର ନାମଟିଏ ଦେବାକୁ ପଡ଼ିବ ।",
        "login-userblocked": "ଏହି ସଭ୍ୟଙ୍କୁ ଅଟକାଯାଇଛି । ଲଗ ଇନ କରିବାକୁ ଅନୁମତି ନାହିଁ ।",
        "resetpass-temp-password": "ଅସ୍ଥାୟୀ ପାସୱାର୍ଡ଼:",
        "resetpass-abort-generic": "ଏକ ଏକ୍ସଟେନସନ ଦ୍ୱାରା ପାସୱାର୍ଡ଼ ବଦଳ କରିବା ରଦ୍ଦ କରାଯାଇଛି ।",
        "resetpass-expired": "ଆପଣଙ୍କ ପାସୱାର୍ଡ଼ ଅଚଳ ହୋଇଯାଇଛି । ଦୟାକରି ନୂଆ ପାସୱାର୍ଡ଼ଟିଏ ଦିଅନ୍ତୁ ।",
-       "resetpass-expired-soft": "ଆପଣଙ୍କ ପାସୱାର୍ଡ଼ର ଅବଧି ସରିଯାଇଛି ଓ ଆଉଥରେ ବଦଳାଇବାକୁ ପଡ଼ିବ । ଦୟାକରି ଏବେ ନୂଆ ପାସୱାର୍ଡ଼ଟିଏ ବାଛନ୍ତୁ କିମ୍ବା \"{{int:resetpass-submit-cancel}}\"ରେ କ୍ଲିକ କରି ପରେ ରିସେଟ କରନ୍ତୁ ।",
-       "resetpass-validity-soft": "ଆପଣଙ୍କ ପାସୱାର୍ଡ଼ ବୈଧ ନୁହେଁ: $1\n\nଦୟାକରି ନୂଆ ପାସୱାର୍ଡ଼ଟିଏ ତିଆରି କରନ୍ତୁ, କିମ୍ବା ପରେ ରିସେଟ କରିବା ପାଇଁ \"{{int:resetpass-submit-cancel}}\"ରେ କ୍ଲିକ କରନ୍ତୁ ।",
+       "resetpass-expired-soft": "ଆପଣଙ୍କ ପାସୱାର୍ଡ଼ର ଅବଧି ସରିଯାଇଛି ଓ ଆଉଥରେ ବଦଳାଇବାକୁ ପଡ଼ିବ । ଦୟାକରି ଏବେ ନୂଆ ପାସୱାର୍ଡ଼ଟିଏ ବାଛନ୍ତୁ କିମ୍ବା \"{{int:authprovider-resetpass-skip-label}}\"ରେ କ୍ଲିକ କରି ପରେ ରିସେଟ କରନ୍ତୁ ।",
+       "resetpass-validity-soft": "ଆପଣଙ୍କ ପାସୱାର୍ଡ଼ ବୈଧ ନୁହେଁ: $1\n\nଦୟାକରି ନୂଆ ପାସୱାର୍ଡ଼ଟିଏ ତିଆରି କରନ୍ତୁ, କିମ୍ବା ପରେ ରିସେଟ କରିବା ପାଇଁ \"{{int:authprovider-resetpass-skip-label}}\"ରେ କ୍ଲିକ କରନ୍ତୁ ।",
        "passwordreset": "ପାସୱାର୍ଡ଼ ପୁନସ୍ଥାପନ କରନ୍ତୁ",
        "passwordreset-text-one": "ଏକ ଅସ୍ଥାୟୀ ପାସୱାର୍ଡ଼ ପାଇବା ପାଇଁ ଏହି ଫର୍ମଟି ସମ୍ପୂର୍ଣ୍ଣ ଭାବେ ପୂରଣ କରନ୍ତୁ ।",
        "passwordreset-text-many": "{{PLURAL:$1|ଇମେଲ ଯୋଗେ ଏକ ଅସ୍ଥାୟୀ ପାସୱାର୍ଡ଼ ପାଇବା ପାଇଁ ତଳ ଘର ମଧ୍ୟରୁ ଗୋଟେ ଭରନ୍ତୁ ।}}",
        "allmessagesname": "ନାମ",
        "allmessagesdefault": "ଆପେଆପେ ଚିଠିରେ ରହିବା କଥା",
        "allmessagescurrent": "ଏବେକର ସନ୍ଦେଶ ଲେଖା",
-       "allmessagestext": "ଏଥିରେ ମିଡ଼ିଆଉଇକି ନେମସ୍ପେସରେ ଥିବା ସିଷ୍ଟମ ସନ୍ଦେଶର ଏକ ତାଲିକା ଦିଆଗଲା ।\nଯଦି ଆପଣ ମୂଳ ଦୟାକରି ମିଡ଼ିଆଉଇକି ଆଞ୍ଚଳିକୀକରଣରେ ଭାଗ ନେବା ପାଇଁ ଚାହାନ୍ତି ତେବେ [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation ମିଡ଼ିଆଉଇକି ଆଞ୍ଚଳିକୀକରଣ] ଓ [//translatewiki.net translatewiki.net] ଦେଖନ୍ତୁ ।",
+       "allmessagestext": "ଏଥିରେ ମିଡ଼ିଆଉଇକି ନେମସ୍ପେସରେ ଥିବା ସିଷ୍ଟମ ସନ୍ଦେଶର ଏକ ତାଲିକା ଦିଆଗଲା ।\nଯଦି ଆପଣ ମୂଳ ଦୟାକରି ମିଡ଼ିଆଉଇକି ଆଞ୍ଚଳିକୀକରଣରେ ଭାଗ ନେବା ପାଇଁ ଚାହାନ୍ତି ତେବେ [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation ମିଡ଼ିଆଉଇକି ଆଞ୍ଚଳିକୀକରଣ] ଓ [https://translatewiki.net translatewiki.net] ଦେଖନ୍ତୁ ।",
        "allmessagesnotsupportedDB": "'''$wgUseDatabaseMessages''' ଅଚଳ କରାଯାଇଥିବାରୁ ଏହି ପୃଷ୍ଠାଟି ବ୍ୟବହାର କରାଯାଇପାରିବ ନାହିଁ ।",
        "allmessages-filter-legend": "ଛାଣିବା",
        "allmessages-filter": "ଆପଣା ପସନ୍ଦରେ ଛାଣିବେ:",
        "tags": "ବୈଧ ସମ୍ପାଦନା ଚିହ୍ନ",
        "tag-filter": "[[Special:Tags|ଟାଗ]] ଛଣା:",
        "tag-filter-submit": "ଛାଣିବା",
-       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|à¬\97à­\8bà¬\9fି à¬\9fà­\8dà­\9fାà¬\97|à¬\97à­\8bà¬\9fି ଟ୍ୟାଗ}}]]: $2)",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|à¬\9fà­\8dà­\9fାà¬\97|ଟ୍ୟାଗ}}]]: $2)",
        "tags-title": "ସୂଚକ",
        "tags-intro": "ଏହି ପୃଷ୍ଠା ସଫ୍ଟୱାର ଏକ ବଦଳ ଭାବେ ଚିହ୍ନିତ କରୁଥିବା ଚିହ୍ନସବୁର ମାନେ ସହ ତାଲିକା ତିଆରି କରିଥାଏ ।",
        "tags-tag": "ଚିହ୍ନ ନାମ",
        "special-characters-title-endash": "en ଡ୍ୟାସ",
        "special-characters-title-emdash": "em dash",
        "special-characters-title-minus": "ମେନୁଗୁଡିକର ଚିହ୍ନ",
-       "mw-widgets-titleinput-description-redirect": "$1କୁ ପୁନଃପ୍ରେରଣ କରିବେ",
-       "api-error-blacklisted": "ଦୟାକରି ଏକ ଅଲଗା, ବିବରଣୀ ଶିରୋନାମାରେ ରଖିବେ ।"
+       "mw-widgets-titleinput-description-redirect": "$1କୁ ପୁନଃପ୍ରେରଣ କରିବେ"
 }
index 76d9abf..8c42878 100644 (file)
        "protectedpagetext": "Ацы фарс ивынæй æмæ æндæр митæй æхгæд у.",
        "viewsourcetext": "Ацы фарсы код фенæн æмæ халдих кæнæн ис:",
        "viewyourtext": "Дæ бон у фенын æмæ скопи кæнын ацы фарсмæ '''цы ивдтытæ сарæзтай''', уыдон бындур текст :",
-       "protectedinterface": "Ацы фарсы ис ацы викийы софты интерфейсæн текст æмæ у æхгæд, цæмæй йæ фехалæн ма уа.\nАлы викийы тæлмæцтæ ивынæн, дæ хорзæхæй, архай [//translatewiki.net/ translatewiki.net-æй], кæцы у MediaWiki-йы локализацигæнæн проект.",
+       "protectedinterface": "Ацы фарсы ис ацы викийы софты интерфейсæн текст æмæ у æхгæд, цæмæй йæ фехалæн ма уа.\nАлы викийы тæлмæцтæ ивынæн, дæ хорзæхæй, архай [https://translatewiki.net/ translatewiki.net-æй], кæцы у MediaWiki-йы локализацигæнæн проект.",
        "editinginterface": "'''Сындæг:''' Ды ивыс ахæм фарс, кæм ис софты интерфейсы текст.\nАцы фарсы фæивд фæзындзæн ацы викийы алы архайæджы интерфейсыл дæр.",
-       "translateinterface": "Алы викийы тæлмæцтæ ивынæн, дæ хорзæхæй, архай [//translatewiki.net/ translatewiki.net-æй], кæцы у MediaWiki-йы локализацигæнæн проект.",
+       "translateinterface": "Алы викийы тæлмæцтæ ивынæн, дæ хорзæхæй, архай [https://translatewiki.net/ translatewiki.net-æй], кæцы у MediaWiki-йы локализацигæнæн проект.",
        "cascadeprotected": "Ацы фарс ивынæй æхгæд у уымæн æмæ у æфтыд бындæр цы \"каскадон\" хъахъхъонд {{PLURAL:$1|фарс ис, уырдæм|фæрстæ сты, уыдонмæ}}:\n$2",
        "namespaceprotected": "Дæуæн нæй бар ивын фæрстæ '''$1''' номдоны.",
        "customcssprotected": "Дæуæн нæй бар ивын ацы CSS фарс, уымæн æмæ уым ис æндæр архайæджы персоналон æвæрдтытæ.",
index 1085b31..cb9ca86 100644 (file)
                        "לערי ריינהארט",
                        "아라",
                        "Macofe",
-                       "ਪ੍ਰਚਾਰਕ"
+                       "ਪ੍ਰਚਾਰਕ",
+                       "Tow"
                ]
        },
        "tog-underline": "ਲਿੰਕ ਹੇਠ-ਲਾਈਨ:",
        "tog-hideminor": "ਤਾਜ਼ਾ ਤਬਦੀਲੀਆਂ ਵਿੱਚੋਂ ਛੋਟੀਆਂ ਸੋਧਾਂ ਲੁਕਾਓ",
        "tog-hidepatrolled": "ਤਾਜ਼ਾ ਤਬਦੀਲੀਆਂ ਵਿੱਚੋਂ ਜਾਂਚੀਆਂ ਸੋਧਾਂ ਲੁਕਾਓ",
        "tog-newpageshidepatrolled": "ਨਵੀਂ ਸਫ਼ਾ ਸੂਚੀ ਵਿੱਚੋਂ ਜਾਂਚੇ ਸਫ਼ੇ ਲੁਕਾਓ",
+       "tog-hidecategorization": "ਸਫ਼ਿਆਂ ਦਾ ਸ਼੍ਰੇਣੀਕਰਨ ਲੁਕਾਓ",
        "tog-extendwatchlist": "ਸਿਰਫ਼ ਤਾਜ਼ਾ ਹੀ ਨਹੀਂ, ਸਗੋਂ ਸਾਰੀਆਂ ਤਬਦੀਲੀਆਂ ਨੂੰ ਵਖਾਉਣ ਲਈ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਨੂੰ ਵਧਾਓ",
        "tog-usenewrc": "ਹਾਲੀਆ ਤਬਦੀਲੀਆਂ ਅਤੇ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵਿੱਚ ਸਫ਼ੇ ਮੁਤਾਬਕ ਤਬਦੀਲੀਆਂ ਦੇ ਗਰੁੱਪ ਬਣਾਓ (ਜਾਵਾਸਕਰਿਪਟ ਲੋੜੀਂਦੀ ਹੈ)",
        "tog-numberheadings": "ਆਟੋ-ਨੰਬਰ ਸਿਰਨਾਵੇਂ",
        "morenotlisted": "ਇਹ ਸੂਚੀ ਪੂਰੀ ਨਹੀਂ ਹੈ।",
        "mypage": "ਸਫ਼ਾ",
        "mytalk": "ਗੱਲ-ਬਾਤ",
-       "anontalk": "à¨\87ਸ IP à¨²à¨\88 à¨\97ੱਲ-ਬਾਤ",
+       "anontalk": "ਗੱਲ-ਬਾਤ",
        "navigation": "ਫੇਰੀ ਪਾਓ",
        "and": "&#32;ਅਤੇ",
        "qbfind": "ਖੋਜ",
        "protectedpagetext": "ਇਹ ਪੰਨੇ ਸੰਪਾਦਨ ਅਤੇ ਹੋਰ ਕੰਮ ਤੋਂ ਸੁਰੱਖਿਅਤ ਕੀਤਾ ਹੋਇਆ ਹੈ।",
        "viewsourcetext": "ਤੁਸੀਂ ਇਸ ਸਫ਼ੇ ਦਾ ਸਰੋਤ ਵੇਖ ਅਤੇ ਕਾਪੀ ਕਰ ਸਕਦੇ ਹੋ:",
        "viewyourtext": "ਤੁਸੀਂ ਇਸ ਸਫ਼ੇ ’ਤੇ ਕੀਤੀਆਂ \"ਆਪਣੀਆਂ ਸੋਧਾਂ\" ਦਾ ਸਰੋਤ ਵੇਖ ਅਤੇ ਨਕਲ ਕਰ ਸਕਦੇ ਹੋ:",
-       "protectedinterface": "ਇਹ ਸਫ਼ਾ ਇਸ ਵਿਕੀ ਉਤਲੇ ਸਾਫ਼ਟਵੇਅਰ ਲਈ ਇੰਟਰਫ਼ੇਸ-ਲਿਖਤ ਦਿੰਦਾ ਹੈ ਅਤੇ ਦੁਰਵਰਤੋਂ ਤੋਂ ਬਚਾਉਣ ਲਈ ਰਾਖਵਾਂ ਰੱਖਿਆ ਗਿਆ ਹੈ।\nਸਾਰੇ ਵਿਕੀਆਂ ਲਈ ਅਨੁਵਾਦ ਜੋੜਨ ਜਾਂ ਬਦਲਣ ਲਈ [//translatewiki.net/ translatewiki.net], ਮੀਡੀਆਵਿਕੀ ਸਥਾਨੀਕਰਨ ਪ੍ਰੋਜੈਕਟ ਦੀ ਵਰਤੋਂ ਕਰੋ ਜੀ।",
-       "editinginterface": "'''ਚਿਤਾਵਨੀ''' ਤੁਸੀਂ ਐਸੇ ਸਫ਼ੇ ਨੂੰ ਬਦਲ ਰਹੇ ਹੋ ਜੋ ਸਾਫ਼ਟਵੇਅਰ ਇੰਟਰਫ਼ੇਸ ਦੇ ਮੂਲ ਪਾਠ ਲਈ ਵਰਤਿਆ ਗਿਆ ਹੈ।\nਇਸ ਸਫ਼ੇ ਵਿਚਲੀ ਤਬਦੀਲੀ ਦੂਜੇ ਵਰਤੋਂਕਾਰਾਂ ਲਈ ਵਰਤੇ ਜਾਣ ਵਾਲੇ ਇੰਟਰਫ਼ੇਸ ਦੀ ਸ਼ਕਲ ’ਤੇ ਅਸਰ ਪਾ ਦੇਵੇਗੀ। ਉਲਥਾ ਕਰਨ ਲਈ ਕਿਰਪਾ ਕਰਕੇ [//translatewiki.net/wiki/Main_Page?setlang=pa ਟ੍ਰਾਂਸਲੇਟਵਿਕੀ.ਨੈਟ] ਦੀ ਵਰਤੋਂ ਕਰੋ, ਇਹ ਮੀਡੀਆਵਿਕੀ ਦੀ ਸਥਾਨੀਕਰਨ ਪ੍ਰੋਜੈਕਟ ਹੈ।",
+       "protectedinterface": "ਇਹ ਸਫ਼ਾ ਇਸ ਵਿਕੀ ਉਤਲੇ ਸਾਫ਼ਟਵੇਅਰ ਲਈ ਇੰਟਰਫ਼ੇਸ-ਲਿਖਤ ਦਿੰਦਾ ਹੈ ਅਤੇ ਦੁਰਵਰਤੋਂ ਤੋਂ ਬਚਾਉਣ ਲਈ ਰਾਖਵਾਂ ਰੱਖਿਆ ਗਿਆ ਹੈ।\nਸਾਰੇ ਵਿਕੀਆਂ ਲਈ ਅਨੁਵਾਦ ਜੋੜਨ ਜਾਂ ਬਦਲਣ ਲਈ [https://translatewiki.net/ translatewiki.net], ਮੀਡੀਆਵਿਕੀ ਸਥਾਨੀਕਰਨ ਪ੍ਰੋਜੈਕਟ ਦੀ ਵਰਤੋਂ ਕਰੋ ਜੀ।",
+       "editinginterface": "'''ਚਿਤਾਵਨੀ''' ਤੁਸੀਂ ਐਸੇ ਸਫ਼ੇ ਨੂੰ ਬਦਲ ਰਹੇ ਹੋ ਜੋ ਸਾਫ਼ਟਵੇਅਰ ਇੰਟਰਫ਼ੇਸ ਦੇ ਮੂਲ ਪਾਠ ਲਈ ਵਰਤਿਆ ਗਿਆ ਹੈ।\nਇਸ ਸਫ਼ੇ ਵਿਚਲੀ ਤਬਦੀਲੀ ਦੂਜੇ ਵਰਤੋਂਕਾਰਾਂ ਲਈ ਵਰਤੇ ਜਾਣ ਵਾਲੇ ਇੰਟਰਫ਼ੇਸ ਦੀ ਸ਼ਕਲ ’ਤੇ ਅਸਰ ਪਾ ਦੇਵੇਗੀ। ਉਲਥਾ ਕਰਨ ਲਈ ਕਿਰਪਾ ਕਰਕੇ [https://translatewiki.net/wiki/Main_Page?setlang=pa ਟ੍ਰਾਂਸਲੇਟਵਿਕੀ.ਨੈਟ] ਦੀ ਵਰਤੋਂ ਕਰੋ, ਇਹ ਮੀਡੀਆਵਿਕੀ ਦੀ ਸਥਾਨੀਕਰਨ ਪ੍ਰੋਜੈਕਟ ਹੈ।",
        "cascadeprotected": "ਇਹ ਸਫ਼ਾ ਸੁਰੱਖਿਅਤ ਹੈ, ਕਿਉਂਕਿ ਇਹ ਹੇਠ ਲਿਖੇ {{PLURAL:$1|ਸਫ਼ੇ|ਸਫ਼ਿਆਂ}} ਦੀ ਸੁਰੱਖਿਆ-ਪੌੜੀ ਵਿੱਚ ਸ਼ਾਮਲ ਹੈ:\n$2",
        "namespaceprotected": "ਤੁਹਾਨੂੰ '''$1''' ਥਾਂ-ਨਾਮ ਵਾਲ਼ੇ ਸਫ਼ਿਆਂ ਵਿਚ ਫੇਰ-ਬਦਲ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ।",
        "customcssprotected": "ਤੁਹਾਨੂੰ ਇਸ CSS ਸਫ਼ੇ ਵਿਚ ਸੋਧ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ ਕਿਉਂਕਿ ਇਸ ਵਿਚ ਕਿਸੇ ਹੋਰ ਮੈਂਬਰ ਦੀਆਂ ਨਿੱਜੀ ਸੈਟਿੰਗਾਂ ਹਨ।",
        "password-change-forbidden": "ਇਸ ਵਿਕੀ ਤੇ ਤੁਸੀਂ ਪਾਸਵਰਡ ਨਹੀਂ ਬਦਲ ਸਕਦੇ।",
        "externaldberror": "ਜਾਂ ਤਾਂ ਪ੍ਰਮਾਣਕੀ ਡਾਟਾਬੇਸ ਦੋਸ਼ ਆਇਆ ਹੈ ਜਾਂ ਤੁਹਾਨੂੰ ਆਪਣੇ ਬਾਹਰੀ ਖਾਤੇ ਨੂੰ ਅੱਪਡੇਟ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ।",
        "login": "ਲਾਗਇਨ",
+       "login-security": "ਆਪਣੀ ਪਛਾਣ ਦੀ ਪੜਤਾਲ ਕਰਵਾਉ",
        "nav-login-createaccount": "ਲਾਗਇਨ/ਖਾਤਾ ਬਣਾਓ",
        "userlogin": "ਲਾਗਇਨ/ਖਾਤਾ ਬਣਾਓ",
        "userloginnocreate": "ਲਾਗਇਨ",
        "noname": "ਤੁਸੀਂ ਇੱਕ ਸਹੀ ਯੂਜ਼ਰ-ਨਾਂ ਨਹੀਂ ਦਿੱਤਾ।",
        "loginsuccesstitle": "ਲਾਗਇਨ ਸਫ਼ਲ",
        "loginsuccess": "'''ਤੁਸੀਂ {{SITENAME}} ਉੱਤੇ \"$1\" ਵਜੋਂ ਲਾਗਇਨ ਹੋ ਚੁੱਕੇ ਹੋ।'''",
-       "nosuchuser": "!\"$1\" ਨਾਂ ਨਾਲ਼ ਕੋਈ ਵਰਤੋਂਕਾਰ ਨਹੀਂ ਹੈ। ਵੱਡੇ ਅਤੇ ਛੋਟੇ ਅੱਖਰ ਵਰਤਣ ਨਾਲ ਫ਼ਰਕ ਪੈਂਦਾ ਹੈ।\nਆਪਣੇ ਸਪੈਲਿੰਗ ਨੂੰ ਧਿਆਨ ਨਾਲ ਚੈੱਕ ਕਰੋ ਜਾਂ [[Special:CreateAccount|ਨਵਾਂ ਖਾਤਾ ਬਣਾਓ]]",
+       "nosuchuser": "!\"$1\" ਨਾਂ ਨਾਲ ਕੋਈ ਵਰਤੋਂਕਾਰ ਨਹੀਂ ਹੈ।\nਵੱਡੇ ਅਤੇ ਛੋਟੇ ਅੱਖਰ ਵਰਤਣ ਨਾਲ ਫ਼ਰਕ ਪੈਂਦਾ ਹੈ।\nਆਪਣੇ ਸ਼ਬਦਜੋੜ ਧਿਆਨ ਨਾਲ ਜਾਂਚੋ ਜਾਂ [[Special:CreateAccount|ਨਵਾਂ ਖਾਤਾ ਬਣਾਉ]]",
        "nosuchusershort": "\"$1\" ਨਾਂ ਨਾਲ ਕੋਈ ਵੀ ਵਰਤੋਂਕਾਰ ਨਹੀਂ ਹੈ। ਆਪਣੇ ਸਪੈਲਿੰਗ ਧਿਆਨ ਨਾਲ ਚੈੱਕ ਕਰੋ।",
        "nouserspecified": "ਤੁਹਾਨੂੰ ਇੱਕ ਯੂਜ਼ਰ-ਨਾਂ ਦੇਣਾ ਪਵੇਗਾ।",
        "login-userblocked": "ਇਹ ਯੂਜ਼ਰ-ਨਾਂ ਪਾਬੰਦੀਸ਼ੁਦਾ ਹੈ। ਲਾਗਇਨ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ।",
        "resetpass-temp-password": "ਆਰਜ਼ੀ ਪਾਸਵਰਡ:",
        "resetpass-abort-generic": "ਇੱਕ ਐਕਸਟੈਂਸ਼ਨ ਵੱਲੋਂ ਪਾਸਵਰਡ ਦੀ ਤਬਦੀਲੀ ਰੱਦ ਕੀਤੀ ਗਈ",
        "resetpass-expired": "ਤੁਹਾਡੇ ਪਛਾਣ-ਸ਼ਬਦ ਦੀ ਮਿਆਦ ਮੁੱਕ ਗਈ ਹੈ। ਦਾਖ਼ਲ ਹੋਣ ਲਈ ਮਿਹਰਬਾਨੀ ਕਰਕੇ ਨਵਾਂ ਪਛਾਣ-ਸ਼ਬਦ ਬਣਾਉ।",
-       "resetpass-expired-soft": "ਤੁਹਾਡੇ ਪਛਾਣ-ਸ਼ਬਦ ਦੀ ਮਿਆਦ ਮੁੱਕ ਗਈ ਹੈ ਅਤੇ ਨਵਾਂ ਬਣਾਉਣਾ ਪਵੇਗਾ। ਕੋਈ ਨਵਾਂ ਪਛਾਣ-ਸ਼ਬਦ ਚੁਣੋ ਜੀ ਜਾਂ ਬਾਅਦ 'ਚ ਬਣਾਉਣ ਵਾਸਤੇ \"{{int:resetpass-submit-cancel}}\" ਦੱਬੋ।",
-       "resetpass-validity-soft": "ਤੁਹਾਡਾ ਪਛਾਣ-ਸ਼ਬਦ ਸਹੀ ਨਹੀਂ ਹੈ: $1\n\nਮਿਹਰਬਾਨੀ ਕਰਕੇ ਕੋਈ ਨਵਾਂ ਪਛਾਣ-ਸ਼ਬਦ ਚੁਣੋ ਜਾਂ ਬਾਅਦ 'ਚ ਬਣਾਉਣ ਵਾਸਤੇ \"{{int:resetpass-submit-cancel}}\" ਦੱਬੋ।",
+       "resetpass-expired-soft": "ਤੁਹਾਡੇ ਪਛਾਣ-ਸ਼ਬਦ ਦੀ ਮਿਆਦ ਮੁੱਕ ਗਈ ਹੈ ਅਤੇ ਨਵਾਂ ਬਣਾਉਣਾ ਪਵੇਗਾ। ਕੋਈ ਨਵਾਂ ਪਛਾਣ-ਸ਼ਬਦ ਚੁਣੋ ਜੀ ਜਾਂ ਬਾਅਦ 'ਚ ਬਣਾਉਣ ਵਾਸਤੇ \"{{int:authprovider-resetpass-skip-label}}\" ਦੱਬੋ।",
+       "resetpass-validity-soft": "ਤੁਹਾਡਾ ਪਛਾਣ-ਸ਼ਬਦ ਸਹੀ ਨਹੀਂ ਹੈ: $1\n\nਮਿਹਰਬਾਨੀ ਕਰਕੇ ਕੋਈ ਨਵਾਂ ਪਛਾਣ-ਸ਼ਬਦ ਚੁਣੋ ਜਾਂ ਬਾਅਦ 'ਚ ਬਣਾਉਣ ਵਾਸਤੇ \"{{int:authprovider-resetpass-skip-label}}\" ਦੱਬੋ।",
        "passwordreset": "ਪਾਸਵਰਡ ਮੁੜ-ਸੈੱਟ ਕਰੋ",
        "passwordreset-text-one": "ਪਾਸਵਰਡ ਦੁਬਾਰਾ ਬਣਾਉਣ ਲਈ ਇਹ ਫ਼ਾਰਮ ਭਰੋ।",
        "passwordreset-text-many": "{{PLURAL:$1|ਈ-ਮੇਲ ਜ਼ਰੀਏ ਆਪਣਾ ਆਰਜ਼ੀ ਪਾਸਵਰਡ ਹਾਸਲ ਕਰਨ ਲਈ ਕੋਈ ਇੱਕ ਥਾਂ ਭਰੋ।}}",
        "accmailtext": "[[User talk:$1|$1]] ਲਈ ਰਲ਼ਵੇਂ ਤੌਰ ’ਤੇ ਬਣਿਆ ਪਾਸਵਰਡ $2 ਨੂੰ ਭੇਜਿਆ ਜਾ ਚੁੱਕਾ ਹੈ।\nਇਸ ਨਵੇਂ ਖਾਤੇ ਲਈ ਲਾਗਇਨ ਕਰਨ ਤੋਂ ਬਾਅਦ ''[[Special:ChangePassword|ਪਾਸਵਰਡ ਬਦਲੋ]]'' ’ਤੇ ਜਾ ਕੇ ਪਾਸਵਰਡ ਬਦਲਿਆ ਜਾ ਸਕਦਾ ਹੈ।",
        "newarticle": "(ਨਵਾਂ)",
        "newarticletext": "ਤੁਸੀਂ ਕਿਸੇ ਅਜਿਹੇ ਸਫ਼ੇ ਦੇ ਕੜੀ ’ਤੇ ਹੋ ਜੋ ਹਾਲੇ ਬਣਾਇਆ ਨਹੀਂ ਗਿਆ।\nਸਫ਼ਾ ਬਣਾਉਣ ਲਈ ਹੇਠ ਦਿੱਤੇ ਖਾਨੇ ਵਿਚ ਲਿਖਣਾ ਸ਼ੁਰੂ ਕਰੋ। (ਹੋਰ ਮਦਦ ਲਈ [$1 ਮਦਦ ਸਫ਼ਾ] ਵੇਖੋ।)\nਜੇ ਤੁਸੀਂ ਗ਼ਲਤੀ ਨਾਲ ਇੱਥੇ ਆਏ ਹੋ ਤਾਂ ਆਪਣੇ ਬ੍ਰਾਊਜ਼ਰ ਦੇ '''ਪਿੱਛੇ''' ਬਟਨ ’ਤੇ ਕਲਿੱਕ ਕਰੋ।",
-       "anontalkpagetext": "----''à¨\87ਹ à¨\87à¨\95 à¨\97à©\81ਮਨਾਮ à¨®à©\88à¨\82ਬਰ à¨²à¨\88 à¨\87à¨\95 à¨\9aਰà¨\9aਾ à¨¸à¨«à¨¼à¨¾ à¨¹à©\88 à¨\9cਿਸਨà©\87 à¨¹à¨¾à¨²à©\87 à¨\96ਾਤਾ à¨¨à¨¹à©\80 à¨¬à¨£à¨¾à¨\87à¨\86 à¨\9cਾà¨\82 à¨\89ਸਨà©\82à©° à¨µà¨°à¨¤ à¨¨à¨¹à©\80à¨\82 à¨°à¨¿à¨¹à¨¾à¥¤\nà¨\87ਸ à¨µà¨¾à¨¸à¨¤à©\87 à¨¸à¨¾à¨¡à©\87 à¨\95à©\8bਲ à¨\89ਸਨà©\82à©° à¨ªà¨\9bਾਨਣ à¨²à¨\88 IP à¨ªà¨¤à¨¾ à¨¹à©\88।\nà¨\87à¨\95 IP à¨ªà¨¤à¨¾ à¨\95à¨\88 à¨µà¨°à¨¤à¨£ à¨µà¨¾à¨²à¨¼à¨¿à¨\86à¨\82 à¨¦à©\81à¨\86ਰਾ à¨¸à¨¾à¨\82à¨\9dਾ à¨\95à©\80ਤਾ à¨\9cਾ à¨¸à¨\95ਦਾ à¨¹à©\88।\nà¨\9cà©\87 à¨¤à©\81ਸà©\80à¨\82 à¨\87ੱà¨\95 à¨\97à©\81ਮਨਾਮ à¨®à©\88à¨\82ਬਰ à¨¹à©\8b à¨\85ਤà©\87 à¨¸à¨®à¨\9dਦà©\87 à¨¹à©\8b à¨\95ਿ à¨\87ਹ à¨\9fਿੱਪਣà©\80à¨\86à¨\82 à¨¤à©\81ਹਾਡà©\87 à¨²à¨\88 à¨¹à¨¨ à¨¤à¨¾à¨\82 à¨®à¨¿à¨¹à¨°à¨¬à¨¾à¨¨à©\80 à¨\95ਰà¨\95à©\87 à¨¹à©\8bਰਾà¨\82 à¨\97à©\81ਮਨਾਮ à¨®à©\88à¨\82ਬਰਾà¨\82 à¨¨à¨¾à¨²à¨¼ à¨ªà©\88ਦਾ à¨¹à©\8bਣ à¨µà¨¾à¨²à¨¼à©\80 à¨\89ਲà¨\9dਣ à¨¤à©\8bà¨\82 à¨¬à¨\9aਣ à¨²à¨\88 [[Special:CreateAccount|à¨\96ਾਤਾ à¨¬à¨£à¨¾à¨\93]] ਜਾਂ [[Special:UserLogin|ਲਾਗਇਨ ਕਰੋ]]।''",
+       "anontalkpagetext": "----''à¨\87ਹ à¨\95ਿਸà©\87 à¨\97à©\81ਮਨਾਮ à¨®à©\88à¨\82ਬਰ à¨²à¨\88 à¨\87à¨\95 à¨\9aਰà¨\9aਾ à¨¸à¨«à¨¼à¨¾ à¨¹à©\88 à¨\9cਿਸਨà©\87 à¨¹à¨¾à¨²à©\87 à¨\96ਾਤਾ à¨¨à¨¹à©\80à¨\82 à¨¬à¨£à¨¾à¨\87à¨\86 à¨\9cਾà¨\82 à¨\9cਿਹà©\9cਾ à¨\87ਸਨà©\82à©° à¨µà¨°à¨¤à¨¦à¨¾ à¨¨à¨¹à©\80à¨\82 à¨¹à©\88।\nà¨\87ਸ à¨µà¨¾à¨¸à¨¤à©\87 à¨¸à¨¾à¨¡à©\87 à¨\95à©\8bਲ à¨\89ਸਨà©\82à©° à¨ªà¨\9bਾਨਣ à¨²à¨\88 IP à¨ªà¨¤à¨¾ à¨¹à©\88।\nà¨\85à¨\9cਿਹਾ à¨\95à©\8bà¨\88 IP à¨ªà¨¤à¨¾ à¨\95à¨\88 à¨µà¨°à¨¤à¨£ à¨µà¨¾à¨²à¨¿à¨\86à¨\82 à¨µà©±à¨²à©\8bà¨\82 à¨¸à¨¾à¨\82à¨\9dਾ à¨\95à©\80ਤਾ à¨\9cਾ à¨¸à¨\95ਦਾ à¨¹à©\88।\nà¨\9cà©\87 à¨¤à©\81ਸà©\80à¨\82 à¨\87ੱà¨\95 à¨\97à©\81ਮਨਾਮ à¨®à©\88à¨\82ਬਰ à¨¹à©\8b à¨\85ਤà©\87 à¨¸à¨®à¨\9dਦà©\87 à¨¹à©\8b à¨\95ਿ à¨¤à©\81ਹਾਡà©\87 à¨²à¨\88 à¨¬à©\87ਮਤਲਬ à¨\9fਿੱਪਣà©\80à¨\86à¨\82 à¨¹à©\8b à¨°à¨¹à©\80à¨\86à¨\82 à¨¹à¨¨ à¨¤à¨¾à¨\82 à¨®à¨¿à¨¹à¨°à¨¬à¨¾à¨¨à©\80 à¨\95ਰà¨\95à©\87 à¨¹à©\8bਰਾà¨\82 à¨\97à©\81ਮਨਾਮ à¨®à©\88à¨\82ਬਰਾà¨\82 à¨¨à¨¾à¨² à¨ªà©\88ਦਾ à¨¹à©\8bਣ à¨µà¨¾à¨²à¨¼à©\80 à¨\89ਲà¨\9dਣ à¨¤à©\8bà¨\82 à¨¬à¨\9aਣ à¨²à¨\88 [[Special:CreateAccount|à¨\96ਾਤਾ à¨¬à¨£à¨¾à¨\89]] ਜਾਂ [[Special:UserLogin|ਲਾਗਇਨ ਕਰੋ]]।''",
        "noarticletext": "ਫ਼ਿਲਹਾਲ ਇਸ ਸਫ਼ੇ ’ਤੇ ਕੋਈ ਲਿਖਤ ਨਹੀਂ ਹੈ। ਤੁਸੀਂ ਦੂਜੇ ਸਫ਼ਿਆਂ ’ਤੇ [[Special:Search/{{PAGENAME}}|ਇਸ ਸਿਰਲੇਖ ਦੀ ਖੋਜ]] ਕਰ ਸਕਦੇ ਹੋ, <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ਸਬੰਧਤ ਚਿੱਠੇ ਲੱਭ] ਸਕਦੇ ਹੋ ਜਾਂ ਇਸ [{{fullurl:{{FULLPAGENAME}}|action=edit}} ਸਫ਼ੇ ਵਿਚ ਲਿਖ] ਸਕਦੇ ਹੋ</span>।",
        "noarticletext-nopermission": "ਫ਼ਿਲਹਾਲ ਇਸ ਪੰਨੇ ’ਤੇ ਕੋਈ ਲਿਖਤ ਨਹੀਂ ਹੈ। ਤੁਸੀਂ ਦੂਸਰੇ ਪੰਨਿਆਂ ’ਤੇ [[Special:Search/{{PAGENAME}}|ਇਸ ਸਿਰਲੇਖ ਦੀ ਖੋਜ]] ਕਰ ਸਕਦੇ ਹੋ, ਸਬੰਧਤ <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ਚਿੱਠੇ] ਖੋਜ ਸਕਦੇ ਹੋ ਜਾਂ [{{fullurl:{{FULLPAGENAME}}|action=edit}} ਇਸ ਪੰਨੇ ਵਿੱਚ ਲਿਖ] ਸਕਦੇ ਹੋ।</span>",
        "userpage-userdoesnotexist": "ਵਰਤੋਂਕਾਰ ਖਾਤਾ \"$1\" ਰਜਿਸਟਰ ਨਹੀਂ ਹੈ।\nਜੇ ਤੁਸੀਂ ਇਸਨੂੰ ਬਣਾਉਣਾ/ਸੋਧਣਾ ਚਾਹੁੰਦੇ ਹੋ ਤਾਂ ਮਿਰਬਾਨੀ ਕਰਕੇ ਜਾਂਚ ਕਰ ਲਓ।",
        "undelete-show-file-submit": "ਹਾਂ",
        "namespace": "ਨਾਂ-ਥਾਂ:",
        "invert": "ਉਲਟ ਚੋਣ",
+       "tooltip-invert": "ਚੁਣੇ ਗਏ ਨਾਮਸਥਾਨ ਵਿੱਚ ਮੌਜੂਦ ਸਫ਼ਿਆਂ ਵਿੱਚ ਹੋਈਆਂ ਤਬਦੀਲੀਆਂ ਨੂੰ ਲੁਕਾਉਣ ਲਈ ਇਸ ਡੱਬੇ ਉੱਤੇ ਨਿਸ਼ਾਨ ਲਗਾਓ।",
        "namespace_association": "ਸਬੰਧਤ ਨਾਂ-ਥਾਂ",
+       "tooltip-namespace_association": "ਚੁਣੇ ਗਏ ਨਾਮਸਥਾਨ ਨਾਲ ਸੰਬੰਧਿਤ ਗੱਲਬਾਤ ਜਾਂ ਵਿਸ਼ਾ ਨਾਮਸਥਾਨ ਨੂੰ ਸ਼ਾਮਲ ਕਰਨ ਲਈ ਇਸ ਡੱਬੇ ਨੂੰ ਚੁਣੋ",
        "blanknamespace": "(ਮੁੱਖ)",
        "contributions": "{{GENDER:$1|ਮੈਂਬਰ}} ਯੋਗਦਾਨ",
        "contributions-title": "$1 ਲਈ ਵਰਤੋਂਕਾਰ ਯੋਗਦਾਨ",
        "mycontris": "ਯੋਗਦਾਨ",
+       "anoncontribs": "ਯੋਗਦਾਨ",
        "contribsub2": "{{GENDER:$3|$1}} ($2) ਲਈ",
        "uctop": "(ਮੌਜੂਦਾ)",
        "month": "ਇਸ (ਅਤੇ ਪਿਛਲੇ) ਮਹੀਨੇ ਤੋਂ :",
        "whatlinkshere-prev": "{{PLURAL:$1|ਪਿਛਲਾ|ਪਿਛਲੇ $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|ਅਗਲਾ|ਅਗਲੇ $1}}",
        "whatlinkshere-links": "← ਕੜੀਆਂ",
-       "whatlinkshere-hideredirs": "ਅਸਿੱਧੇ ਰਾਹ $1",
+       "whatlinkshere-hideredirs": "$1 ਰੀਡਾਇਰੈਕਟ",
        "whatlinkshere-hidetrans": "$1 ਇੱਥੇ ਕੀ ਕੀ ਜੁੜਦਾ ਹੈ।",
        "whatlinkshere-hidelinks": "$1 ਲਿੰਕ",
        "whatlinkshere-hideimages": "ਫ਼ਾਈਲ ਲਿੰਕ $1",
        "tooltip-pt-logout": "ਸਾਈਟ ਤੋਂ ਬਾਹਰ ਆਉ",
        "tooltip-pt-createaccount": "ਤੁਹਾਨੂੰ ਖਾਤਾ ਬਣਾਉਣ ਤੋਂ ਬਾਅਦ ਲਾਗ ਇਨ ਕਰਨ ਦੀ ਸਲਾਹ ਦਿੱਤੀ ਜਾਂਦੀ ਹੈ; ਹਾਲਾਂਕਿ ਇਹ ਲਾਜ਼ਮੀ ਨਹੀਂ",
        "tooltip-ca-talk": "ਸਮਗੱਰੀ ਸਫ਼ੇ ਬਾਰੇ ਚਰਚਾ",
-       "tooltip-ca-edit": "ਤà©\81ਸà©\80à¨\82 à¨\87ਹ à¨¸à¨«à¨¼à¨¾ à¨¸à©\8bਧ à¨¸à¨\95ਦà©\87 à¨¹à©\8b। à¨\95ਿਰਪਾ à¨\95ਰà¨\95à©\87 à¨¤à¨¬à¨¦à©\80ਲà©\80 à¨¸à¨¾à¨\82ਭਣ à¨¤à©\8bà¨\82 à¨ªà¨¹à¨¿à¨²à¨¾à¨\82 à¨\9dਲà¨\95 à¨µà©\87à¨\96à©\8b।",
+       "tooltip-ca-edit": "à¨\87ਹ à¨¸à¨«à¨¼à¨¾ à¨¸à©\8bਧà©\8b",
        "tooltip-ca-addsection": "ਨਵਾਂ ਭਾਗ ਸ਼ੁਰੂ ਕਰੋ",
        "tooltip-ca-viewsource": "ਇਹ ਸਫ਼ਾ ਸੁਰੱਖਿਅਤ ਹੈ।\nਤੁਸੀਂ ਇਹਦਾ ਸਰੋਤ ਵੇਖ ਸਕਦੇ ਹੋ।",
        "tooltip-ca-history": "ਇਸ ਸਫ਼ੇ ਦੇ ਪਿਛਲੇ ਰੀਵਿਜਨ",
        "tooltip-t-recentchangeslinked": "ਇਸ ਸਫ਼ੇ ਤੋਂ ਲਿੰਕ ਕੀਤੇ ਸਫ਼ਿਆਂ ਵਿਚ ਤਾਜ਼ਾ ਤਬਦੀਲੀਆਂ",
        "tooltip-feed-rss": "ਇਸ ਸਫ਼ੇ ਲਈ RSS ਫ਼ੀਡ",
        "tooltip-feed-atom": "ਇਸ ਸਫ਼ੇ ਦੀ ਐਟਮ ਫ਼ੀਡ",
-       "tooltip-t-contributions": "ਇਸ ਵਰਤੋਂਕਾਰ ਦੇ ਯੋਗਦਾਨ ਦੀ ਸੂਚੀ",
+       "tooltip-t-contributions": "{{GENDER:$1|}} ਦੀ ਯੋਗਦਾਨ ਸੂਚੀ",
        "tooltip-t-emailuser": "ਇਸ ਵਰਤੋਂਕਾਰ ਨੂੰ ਈ-ਮੇਲ ਭੇਜੋ",
        "tooltip-t-upload": "ਫ਼ਾਈਲਾਂ ਅਪਲੋਡ ਕਰੋ",
        "tooltip-t-specialpages": "ਸਾਰੇ ਖ਼ਾਸ ਸਫ਼ਿਆਂ ਦੀ ਲਿਸਟ",
        "anonusers": "{{SITENAME}} ਬੇਨਾਮ {{PLURAL:$2|ਵਰਤੋਂਕਾਰ|ਵਰਤੋਂਕਾਰ}} $1",
        "creditspage": "ਸਫ਼ੇ ਬਾਬਤ ਕਰਜ਼",
        "spamprotectiontitle": "Spam ਸੁਰੱਖਿਆ ਫਿਲਟਰ",
+       "simpleantispam-label": "ਸਪੈਮ ਵਿਰੋਧੀ ਚੈੱਕ।\nਇਸ ਨੂੰ <strong>ਨਾ</strong> ਭਰੋ!",
        "pageinfo-title": "\"$1\" ਵਾਸਤੇ ਜਾਣਕਾਰੀ",
        "pageinfo-not-current": "ਅਫ਼ਸੋਸ, ਪੁਰਾਣੀਆਂ ਸੁਧਾਈਆਂ ਵਾਸਤੇ ਇਹ ਜਾਣਕਾਰੀ ਦੇਣੀ ਅਸੰਭਵ ਹੈ।",
        "pageinfo-header-basic": "ਮੁੱਢਲੀ ਜਾਣਕਾਰੀ",
        "confirm-watch-top": "ਇਸ ਸਫ਼ੇ ਨੂੰ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵਿਚ ਜੋੜਨਾ ਹੈ?",
        "confirm-unwatch-button": "ਠੀਕ ਹੈ",
        "confirm-unwatch-top": "ਇਸ ਸਫ਼ੇ ਨੂੰ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਤੋਂ ਹਟਾਉਣਾ ਹੈ?",
+       "confirm-rollback-button": "ਠੀਕ ਹੈ",
        "quotation-marks": "\"$1\"",
        "imgmultipageprev": "← ਪਿਛਲਾ ਸਫ਼ਾ",
        "imgmultipagenext": "ਅਗਲਾ ਸਫ਼ਾ →",
        "special-characters-group-khmer": "ਖ਼ਮੇਰ",
        "special-characters-title-endash": "ਅੰਗਰੇਜ਼ੀ ਡੈਸ਼",
        "special-characters-title-emdash": "em ਡੈਸ਼",
-       "special-characters-title-minus": "ਘਟਾਓ ਦਾ ਨਿਸ਼ਾਨ"
+       "special-characters-title-minus": "ਘਟਾਓ ਦਾ ਨਿਸ਼ਾਨ",
+       "authmanager-password-help": "ਪ੍ਰਮਾਣਿਕਤਾ ਲਈ ਪਛਾਣ-ਸ਼ਬਦ।",
+       "authmanager-email-label": "ਈਮੇਲ",
+       "authmanager-email-help": "ਈਮੇਲ ਪਤਾ",
+       "authmanager-realname-label": "ਅਸਲੀ ਨਾਂ",
+       "authprovider-resetpass-skip-label": "ਛੱਡ ਦਿਉ",
+       "specialpage-securitylevel-not-allowed-title": "ਇਜਾਜ਼ਤ ਨਹੀਂ",
+       "cannotauth-not-allowed-title": "ਪ੍ਰਵਾਨਗੀ ਨਹੀਂ ਮਿਲੀ",
+       "credentialsform-account": "ਖਾਤੇ ਦਾ ਨਾਂ:"
 }
index 6e60056..a2de392 100644 (file)
        "protectedpagetext": "Ining bulung a iti misusi ya para eya ma-edit",
        "viewsourcetext": "Malyari meng lon at kopian ing pikuanan (source) ning bulung a ini:",
        "protectedinterface": "Maki interface text ya para king software ing bulung a iti. Makasara ya ba yang e mayabusu.",
-       "editinginterface": "'''Babala:''' Babie yang interface text para king software ing bulung a i-edit mu. Makayapektu la king itsura ning user interface para kareng aliwang gagamit deng pamagbayu keti. Malyari lang munta king [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net] deng bisang sumaup king pamaglikas.",
+       "editinginterface": "'''Babala:''' Babie yang interface text para king software ing bulung a i-edit mu. Makayapektu la king itsura ning user interface para kareng aliwang gagamit deng pamagbayu keti. Malyari lang munta king [https://translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net] deng bisang sumaup king pamaglikas.",
        "cascadeprotected": "Makaprotekta ya king pamag-edit ing bulung a ini uling kayabe ya king makatuking {{PLURAL:$1|bulung, a|bulung, a}} a maki proteksiun uling makasalangi ya ing  \"tuki-tuki\" o \"cascading\" option:\n$2",
        "namespaceprotected": "Ala kang paintulut a mag-edit bulung king pirinan lagyung (namespace a) '''$1'''.",
        "ns-specialprotected": "E la malyaring i-edit deng bulung a makabukud.",
index a229310..4a376c8 100644 (file)
        "listgrouprights-summary": "L'pache-lo ch'est ène lisse d'chés groupes d'uzeus définis édseur ech wiki aveuc chés drouots d'intrèe achuchonnés.<br />I put y avoèr ichi d'eutes [[MediaWiki:Listgrouprights-helppage|informacions]] édseur chés drouots individuèls. ([[{{MediaWiki:Listgrouprights-helppage}}|vir]])",
        "listgrouprights-members": "(lisse éd chés mimbes)",
        "emailuser": "Imèle echl'uzeu-lo",
-       "emailpage": "Imèle dech uzeu",
        "watchlist": "Em lisse à suire",
        "mywatchlist": "M'lisse à suire",
        "watchlistfor2": "Pour $1 $2",
        "block-log-flags-nocreate": "créhachon d'conpte intérdite",
        "movepagetext": "Implouéyez ch'formuloére édsou pou érlonmer éne pache, in déplachant tout sin histoérique vers ch'nouvieu nom. Echl’anthiu tite i varo eune pache éd érdirécchon vers ch'nouvieu tite. Os povez métte à jour oùtonmatiquemint chés érdirécchons à ch'momint-chi qu' pointette vers ch'tite original. <br /> Si os couésiyez éd n'poin l'foaire, os d'vez vérifier toute [[Special:DoubleRedirects|doube érdirécchon]] ou [[Special:BrokenRedirects|bérsiée érdirécchon]].<br /> Vos avez el résponsabilité d'vérifier éq chés loïens continuette éd pointer vers leu déstinnachon prévue.\n\nNotez éq l'pache n'éro '''poin''' déplachée s’il essiste déjo eune pache aveuc ch'nouvieu tite, sauf si l'pache o un histoérique éd canjemints vièrge ,   vide ou est éne simpe érdiréctchn. Cha pérmet d'érlonmer eune pache vers esn posicion d’origine si ch'déplachemint est éne berlure.\n\n'''AFUTE !'''<br />\nCha put provoquer un canjemint radical pi imprévu pou eune pache souvint arbéyée ; vos dvez vos asseurer d’avoér conpérte chés consécanches dvint d'continuer.",
        "movepagetalktext": "L'pache éd pérlache achochonnèe sro oùtonmatiquemint érlonmée aveuc l'pache-lo ''' hormis si: ''' <br />\n*eune pache éd pérlache aveuc un teske essiste aveuc ch'nom-lo piécha, ou\n*os débiffez el casse édzou.\n\nDin chés cas-lo, I feut érlonmer ou ratatouiller l'pache aveuc l'main.",
-       "movearticle": "Déplacer l'pache",
        "newtitle": "Pou un nouvieu tite:",
        "move-watch": "Suire l'pache-lo",
        "movepagebtn": "Déplacer l'pache",
index e1c45bf..7600f64 100644 (file)
        "protectedpagetext": "Wyłączono możliwość edycji tej strony.",
        "viewsourcetext": "Tekst źródłowy strony można podejrzeć i skopiować.",
        "viewyourtext": "Tekst źródłowy <strong>zmodyfikowanej przez Ciebie</strong> strony możesz podejrzeć i skopiować.",
-       "protectedinterface": "Ta strona zawiera tekst interfejsu oprogramowania wiki i jest zabezpieczona przed nadużyciami.\nBy dodać lub zmienić tłumaczenia wszystkich serwisów wiki, użyj [//translatewiki.net/ translatewiki.net], projektu lokalizacji MediaWiki.",
+       "protectedinterface": "Ta strona zawiera tekst interfejsu oprogramowania wiki i jest zabezpieczona przed nadużyciami.\nBy dodać lub zmienić tłumaczenia wszystkich serwisów wiki, użyj [https://translatewiki.net/ translatewiki.net], projektu lokalizacji MediaWiki.",
        "editinginterface": "<strong>Ostrzeżenie:</strong> Edytujesz stronę, która zawiera tekst interfejsu oprogramowania.\nZmiany na tej stronie zmienią wygląd interfejsu dla innych użytkowników tej wiki.",
-       "translateinterface": "Aby dodać lub zmienić tłumaczenia wszystkich wiki, użyj [//translatewiki.net/ translatewiki.net], projektu lokalizacji oprogramowania MediaWiki.",
+       "translateinterface": "Aby dodać lub zmienić tłumaczenia wszystkich wiki, użyj [https://translatewiki.net/ translatewiki.net], projektu lokalizacji oprogramowania MediaWiki.",
        "cascadeprotected": "Ta strona została zabezpieczona przed edycją, ponieważ jest ona zawarta na {{PLURAL:$1|następującej stronie, która została zabezpieczona|następujących stronach, które zostały zabezpieczone}} z włączoną opcją dziedziczenia:\n$2",
        "namespaceprotected": "Nie masz uprawnień do edytowania stron w przestrzeni nazw '''$1'''.",
        "customcssprotected": "Nie jesteś uprawniony do edytowania tej strony CSS, ponieważ zawiera ona ustawienia osobiste innego użytkownika.",
        "password-change-forbidden": "Nie można zmieniać haseł na tej wiki.",
        "externaldberror": "Wystąpił błąd autentyfikacyjnej bazy danych lub nie posiadasz uprawnień koniecznych do aktualizacji zewnętrznego konta.",
        "login": "Zaloguj się",
+       "login-security": "Potwierdź swoją tożsamość",
        "nav-login-createaccount": "Logowanie i rejestracja",
        "userlogin": "Logowanie i rejestracja",
        "userloginnocreate": "Zaloguj się",
        "userlogin-resetpassword-link": "Nie pamiętasz hasła?",
        "userlogin-helplink2": "Pomoc przy logowaniu",
        "userlogin-loggedin": "Zalogowano jako {{GENDER:$1|$1}}.\nUżyj poniższego formularza, aby zalogować się jako inny użytkownik.",
+       "userlogin-reauth": "Musisz się ponownie zalogować, aby potwierdzić, że jesteś {{GENDER:$1|$1}}.",
        "userlogin-createanother": "Załóż nowe konto",
        "createacct-emailrequired": "Adres e‐mail",
        "createacct-emailoptional": "Adres e-mail (opcjonalnie)",
        "createacct-email-ph": "Wpisz swój adres e-mail",
        "createacct-another-email-ph": "Podaj adres e-mail",
        "createaccountmail": "Użyj tymczasowego hasła wygenerowanego losowo i wyślij je na podany adres e-mail",
+       "createaccountmail-help": "Pozwala utworzyć konto dla innej osoby, nie znając jej hasła.",
        "createacct-realname": "Prawdziwe imię i nazwisko (opcjonalnie)",
        "createaccountreason": "Powód:",
        "createacct-reason": "Powód",
        "createacct-reason-ph": "Dlaczego zakładasz kolejne konto",
+       "createacct-reason-help": "Komunikat wyświetlany w rejestrze tworzenia kont",
        "createacct-submit": "Utwórz konto",
        "createacct-another-submit": "Utwórz konto",
+       "createacct-continue-submit": "Kontynuuj tworzenie konta",
        "createacct-another-continue-submit": "Kontynuuj tworzenie konta",
        "createacct-benefit-heading": "{{grammar:B.lp|{{SITENAME}}}} tworzą ludzie tacy jak Ty.",
        "createacct-benefit-body1": "{{PLURAL:$1|edycja|edycje|edycji}}",
        "nocookiesnew": "Konto użytkownika zostało utworzone, ale nie jesteś zalogowany.\n{{SITENAME}} używa ciasteczek do przechowywania informacji o zalogowaniu się.\nMasz obecnie w przeglądarce wyłączoną obsługę ciasteczek.\nŻeby się zalogować, włącz obsługę ciasteczek, następnie podaj nazwę użytkownika i hasło dostępu do swojego konta.",
        "nocookieslogin": "{{SITENAME}} wykorzystuje ciasteczka do przechowywania informacji o zalogowaniu się przez użytkownika.\nMasz obecnie w przeglądarce wyłączoną obsługę ciasteczek.\nSpróbuj ponownie po jej włączeniu.",
        "nocookiesfornew": "Konto użytkownika nie zostało utworzone, ponieważ nie można było potwierdzić jego źródła.\nUpewnij się, że masz włączoną obsługę ciasteczek, przeładuj stronę i spróbuj ponownie.",
+       "createacct-loginerror": "Konto zostało pomyślnie utworzone, ale nie mogłeś zostać zalogowany automatycznie. Proszę, [[Special:UserLogin|zalogować się ręcznie]].",
        "noname": "To nie jest poprawna nazwa użytkownika.",
        "loginsuccesstitle": "Zalogowano",
        "loginsuccess": "'''{{GENDER:|Zalogowałeś się|Zalogowałaś się|Zalogowano}} do {{GRAMMAR:D.lp|{{SITENAME}}}} jako „$1”.'''",
        "createacct-another-realname-tip": "Wpisanie imienia i nazwiska nie jest obowiązkowe.\nJeśli zdecydujesz się je podać, zostaną użyte, by udokumentować Twoje autorstwo.",
        "pt-login": "Zaloguj się",
        "pt-login-button": "Zaloguj się",
+       "pt-login-continue-button": "Kontynuuj logowanie",
        "pt-createaccount": "Utwórz konto",
        "pt-userlogout": "Wyloguj",
        "php-mail-error-unknown": "Wystąpił nieznany błąd w funkcji PHP mail()",
        "changepassword-success": "Twoje hasło zostało zmienione!",
        "changepassword-throttled": "Ostatnio zbyt wiele razy próbowałeś zalogować się na to konto.\nOdczekaj $1, zanim ponowisz próbę.",
        "botpasswords": "Hasła bota",
-       "botpasswords-summary": "<em>Hasła bota</em> pozwalają na dostęp do konta użytkownika za pośrednictwem interfejsu API bez korzystania z danych konta. Uprawnienia uczestnika przy użyciu hasła bota mogą być ograniczone.\n\nJeśli nie wiesz, dlaczego miałbyś je tworzyć, nie powinieneś tego robić. Nikt nie powinien prosić Cię o utworzyć i podanie tego hasła.",
+       "botpasswords-summary": "<em>Hasła bota</em> pozwalają na dostęp do konta użytkownika za pośrednictwem interfejsu API bez korzystania z danych konta. Uprawnienia użytkownika przy użyciu hasła bota mogą być ograniczone.\n\nJeśli nie wiesz, dlaczego miałbyś je tworzyć, nie powinieneś tego robić. Nikt nie powinien prosić Cię o utworzenie i podanie tego hasła.",
        "botpasswords-disabled": "Hasła robotów zostały wyłączone.",
        "botpasswords-no-central-id": "Aby użyć hasła robotów, musisz być zalogowany na koncie uniwersalnym.",
        "botpasswords-existing": "Istniejące hasło bota",
        "botpasswords-restriction-failed": "Logowanie nie powiodło się z powodu ograniczeń na hasło bota.",
        "botpasswords-not-exist": "Użytkownik \"$1\" nie ma hasła dla bota o nazwie \"$2\".",
        "resetpass_forbidden": "Hasła nie mogą zostać zmienione",
+       "resetpass_forbidden-reason": "Hasła nie mogą zostać zmienione: $1",
        "resetpass-no-info": "Musisz być zalogowany, by uzyskać bezpośredni dostęp do tej strony.",
        "resetpass-submit-loggedin": "Zmień hasło",
        "resetpass-submit-cancel": "Anuluj",
        "resetpass-temp-password": "Tymczasowe hasło:",
        "resetpass-abort-generic": "Zmiana hasła została przerwana przez rozszerzenie.",
        "resetpass-expired": "Twoje hasło wygasło. Proszę ustawić nowe hasło do logowania.",
-       "resetpass-expired-soft": "Twoje hasło wygasło i musi zostać zresetowane. Proszę wybrać nowe hasło albo kliknąć na \"{{int:resetpass-submit-cancel}}\", aby zresetować je później.",
-       "resetpass-validity-soft": "Twoje hasło jest niepoprawne: $1\n\nWybierz teraz nowe hasło albo kliknij „{{int:resetpass-submit-cancel}}”, aby zresetować je później.",
+       "resetpass-expired-soft": "Twoje hasło wygasło i musi zostać zresetowane. Proszę wybrać nowe hasło albo kliknąć na „{{int:authprovider-resetpass-skip-label}}”, aby zresetować je później.",
+       "resetpass-validity-soft": "Twoje hasło jest niepoprawne: $1\n\nWybierz teraz nowe hasło albo kliknij „{{int:authprovider-resetpass-skip-label}}”, aby zresetować je później.",
        "passwordreset": "Wyczyść hasło",
        "passwordreset-text-one": "Wypełnij ten formularz, aby otrzymać tymczasowe hasło na email.",
        "passwordreset-text-many": "{{PLURAL:$1|Wypełnij jedno z poniższych pól, aby otrzymać tymczasowe hasło przez e-mail.}}",
        "minoredit": "To jest drobna zmiana",
        "watchthis": "Obserwuj",
        "savearticle": "Zapisz",
+       "savechanges": "Zapisz zmiany",
        "publishpage": "Opublikuj stronę",
+       "publishchanges": "Opublikuj zmiany",
        "preview": "Podgląd",
        "showpreview": "Pokaż podgląd",
        "showdiff": "Podgląd zmian",
        "accmailtext": "Losowo wygenerowane hasło dla [[User talk:$1|$1]] zostało wysłane do $2.\n\nHasło dla tego nowego konta po zalogowaniu można zmienić na stronie ''[[Special:ChangePassword|zmiana hasła]]''.",
        "newarticle": "(Nowy)",
        "newarticletext": "Brak strony o tym tytule.\nJeśli chcesz ją utworzyć, wpisz treść strony w poniższym polu (więcej informacji odnajdziesz [$1 na stronie pomocy]).\nJeśli utworzenie nowej strony nie było Twoim zamiarem, wciśnij ''Wstecz'' w swojej przeglądarce.",
-       "anontalkpagetext": "---- ''To jest strona dyskusji anonimowego użytkownika – takiego, który nie ma jeszcze swojego konta lub nie chce go w tej chwili używać.\nBy go identyfikować, używamy adresów IP.\nJednak adres IP może być współdzielony przez wielu użytkowników.\nJeśli jesteś anonimowym użytkownikiem i uważasz, że zamieszczone tu komentarze nie są skierowane do Ciebie, [[Special:CreateAccount|utwórz konto]] lub [[Special:UserLogin|zaloguj się]] – dzięki temu unikniesz w przyszłości podobnych nieporozumień.''",
+       "anontalkpagetext": "----\n<em>To jest strona dyskusji anonimowego użytkownika – takiego, który nie ma jeszcze swojego konta lub nie chce go w tej chwili używać.</em>\nBy go identyfikować, używamy adresów IP.\nJednak adres IP może być współdzielony przez wielu użytkowników.\nJeśli jesteś anonimowym użytkownikiem i uważasz, że zamieszczone tu komentarze nie są skierowane do Ciebie, [[Special:CreateAccount|utwórz konto]] lub [[Special:UserLogin|zaloguj się]] – dzięki temu unikniesz w przyszłości podobnych nieporozumień.",
        "noarticletext": "Obecnie ta strona nie ma zawartości.\nMożesz [[Special:Search/{{PAGENAME}}|wyszukać ten tytuł na innych stronach]],\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} przeszukać rejestr] \nlub [{{fullurl:{{FULLPAGENAME}}|action=edit}} utworzyć tę stronę]</span>.",
        "noarticletext-nopermission": "Ta strona nie posiada jeszcze zawartości.\nMożesz [[Special:Search/{{PAGENAME}}|wyszukać ten tytuł]] w treści innych stron\nlub <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} przeszukać powiązane rejestry]</span>, ale nie masz uprawnień do utworzenia tej strony",
        "missing-revision": "Wersja #$1 strony \"{{FULLPAGENAME}}\" nie istnieje.\n\nZazwyczaj jest to spowodowane przestarzałym linkiem do usuniętej strony. Powód usunięcia znajduje się w [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} rejestrze].",
        "mergehistory-fail-bad-timestamp": "Znacznik czasu jest nieprawidłowy.",
        "mergehistory-fail-invalid-source": "Strona źródłowa jest nieprawidłowa.",
        "mergehistory-fail-invalid-dest": "Strona docelowa jest nieprawidłowa.",
-       "mergehistory-fail-permission": "Brak uprawnień aby połączyć historię.",
+       "mergehistory-fail-permission": "Brak uprawnień, aby połączyć historię.",
        "mergehistory-fail-self-merge": "Strona źródłowa i docelowa są takie same.",
        "mergehistory-fail-toobig": "Nie można połączyć historii, gdyż wymagałoby to przeniesienia więcej niż maksymalnej dopuszczalnej liczby $1 {{PLURAL:$1|wersji}}.",
        "mergehistory-no-source": "Strona źródłowa $1 nie istnieje.",
        "prefs-editwatchlist-raw": "Tekstowy edytor obserwowanych",
        "prefs-editwatchlist-clear": "Wyczyść listę obserwowanych",
        "prefs-watchlist-days": "Liczba dni widocznych na liście obserwowanych:",
-       "prefs-watchlist-days-max": "Maksimum $1 {{PLURAL:$1|dzień|dni}}",
+       "prefs-watchlist-days-max": "Maksymalnie $1 {{PLURAL:$1|dzień|dni}}",
        "prefs-watchlist-edits": "Liczba edycji pokazywanych w rozszerzonej liście obserwowanych:",
        "prefs-watchlist-edits-max": "Maksymalnie 1000",
        "prefs-watchlist-token": "Identyfikator listy obserwowanych:",
        "gender-female": "kobieta",
        "prefs-help-gender": "Podanie płci nie jest obowiązkowe. Jeśli zdecydujesz się ją określić, oprogramowanie dostosuje do niej interfejs. Informacja o Twojej płci będzie widoczna dla wszystkich.",
        "email": "E‐mail",
-       "prefs-help-realname": "Imię i nazwisko jest opcjonalne.\nJeśli zdecydujesz się je podać, zostaną użyte, by udokumentować Twoje autorstwo.",
+       "prefs-help-realname": "Imię i nazwisko jest opcjonalne.\nJeśli zdecydujesz się je podać, zostaną użyte, by udokumentować twoje autorstwo.",
        "prefs-help-email": "Podanie adresu e‐mail nie jest obowiązkowe, lecz jest konieczne do zresetowania zapomnianego hasła.",
        "prefs-help-email-others": "Możesz również umożliwić innym użytkownikom wysłanie do Ciebie e‐maila poprzez Twoją stronę użytkownika lub stronę dyskusji (bez ujawniania Twojego adresu).",
        "prefs-help-email-required": "Wymagany jest adres e‐mail.",
        "grant-editprotected": "Edycja stron zabezpieczonych",
        "grant-highvolume": "Masowe edytowanie",
        "grant-oversight": "Ukrywanie użytkowników i wersji stron",
+       "grant-patrol": "Patrolować zmiany w stronach",
        "grant-protect": "Zabezpieczanie i odbezpieczanie stron",
        "grant-rollback": "Wycofywanie zmian na stronach",
        "grant-sendemail": "Wysyłanie e‐maili do innych użytkowników",
        "rightslogtext": "Rejestr zmian uprawnień użytkowników.",
        "action-read": "przeglądania tej strony",
        "action-edit": "edytowania tej strony",
-       "action-createpage": "tworzenia stron",
-       "action-createtalk": "tworzenia stron dyskusji",
+       "action-createpage": "utwórz tę stronę",
+       "action-createtalk": "tworzenia tej strony dyskusji",
        "action-createaccount": "utworzenia tego konta użytkownika",
+       "action-autocreateaccount": "automatycznego utworzenia tego zewnętrznego konta użytkownika",
        "action-history": "przeglądania historii tej strony",
        "action-minoredit": "do oznaczenia tej edycji jako drobna zmiana",
        "action-move": "przeniesienia tej strony",
        "upload-too-many-redirects": "URL zawiera zbyt wiele przekierowań",
        "upload-http-error": "Wystąpił błąd protokołu HTTP – $1",
        "upload-copy-upload-invalid-domain": "Przesyłanie kopii z tej domeny nie jest dostępne.",
+       "upload-foreign-cant-upload": "Ta wiki nie jest skonfigurowana, aby przesyłać pliki do żądanego zewnętrznego repozytorium plików.",
+       "upload-foreign-cant-load-config": "Wczytywanie konfiguracji przesyłania plików do zewnętrznego repozytorium nie powiodło się.",
+       "upload-dialog-disabled": "Przesyłanie plików przy pomocy tego okna jest wyłączone na tej wiki.",
        "upload-dialog-title": "Prześlij plik",
        "upload-dialog-button-cancel": "Anuluj",
        "upload-dialog-button-done": "Gotowe",
        "apisandbox": "Środowisko testowe API",
        "apisandbox-jsonly": "Do korzystania z brudnopisu API wymagany jest JavaScript.",
        "apisandbox-api-disabled": "API jest wyłączone na tej stronie.",
-       "apisandbox-intro": "Użyj tej strony do eksperymentowania z <strong>serwisem API MediaWiki</strong>.\nWięcej szczegółów na temat wykorzystywania API można znaleźć w [[mw:API:Main page|dokumentacji API]]. Przykład: [//www.mediawiki.org/wiki/API#A_simple_example pobranie zawartości strony głównej]. Wybierz akcję, by zobaczyć więcej przykładów.\n\nZwróć uwagę, że chociaż jest to brudnopis, to działania, które można przeprowadzać na tej stronie, mogą zmienić wiki.",
+       "apisandbox-intro": "Użyj tej strony do eksperymentowania z <strong>serwisem API MediaWiki</strong>.\nWięcej szczegółów na temat wykorzystywania API można znaleźć w [[mw:API:Main page|dokumentacji API]]. Przykład: [https://www.mediawiki.org/wiki/API#A_simple_example pobranie zawartości strony głównej]. Wybierz akcję, by zobaczyć więcej przykładów.\n\nZwróć uwagę, że chociaż jest to środowisko testowe, to działania, które można przeprowadzać na tej stronie, mogą zmienić zawartość wiki.",
        "apisandbox-fullscreen": "Rozszerz panel",
        "apisandbox-fullscreen-tooltip": "Rozszerz panel środowiska testowego, aby zajmował całe okno przeglądarki.",
        "apisandbox-unfullscreen": "Pokaż stronę",
        "apisandbox-request-url-label": "URL zapytania:",
        "apisandbox-request-time": "Czas przetwarzania zapytania: {{PLURAL:$1|$1 ms}}",
        "apisandbox-results-fixtoken": "Popraw token i wyślij ponownie",
+       "apisandbox-results-fixtoken-fail": "Nie udało się pobrać tokena „$1”.",
        "apisandbox-alert-page": "Pola na tej stronie są nieprawidłowe.",
        "apisandbox-alert-field": "Wartość tego pola jest nieprawidłowa.",
        "booksources": "Książki",
        "trackingcategories-msg": "Śledzenie kategorii",
        "trackingcategories-name": "Nazwa komunikatu",
        "trackingcategories-desc": "Kryteria włączenia kategorii",
+       "restricted-displaytitle-ignored": "Strony z ignorowanym formatowaniem tytułu",
+       "restricted-displaytitle-ignored-desc": "Strona ma ignorowany <code><nowiki>{{DISPLAYTITLE}}</nowiki></code> ponieważ nie pasuje on do tytułu aktualnej strony.",
        "noindex-category-desc": "Ta strona nie jest indeksowana przez roboty, ponieważ ma wpisane magiczne słowo <code><nowiki>__NOINDEX__</nowiki></code> i znajduje się w przestrzeni nazw, w której ta flaga jest dozwolona.",
        "index-category-desc": "Na stronie znajduje się magiczne słowo <code><nowiki>__INDEX__</nowiki></code> (i strona znajduje się w przestrzeni nazw, w której jest ono dozwolone), więc jest indeksowana przez wyszukiwarki nawet wtedy, gdy normalnie by się to nie działo.",
        "post-expand-template-inclusion-category-desc": "Rozmiar tej strony jest większy niż <code>$wgMaxArticleSize</code> po rozszerzeniu wszystkich szablonów, więc część szablonów nie jest rozszerzonych.",
        "rollbacklinkcount": "cofnij $1 {{PLURAL:$1|edycję|edycje|edycji}}",
        "rollbacklinkcount-morethan": "cofnij więcej niż $1 {{PLURAL:$1|edycję|edycje|edycji}}",
        "rollbackfailed": "Nie udało się cofnąć zmiany",
+       "rollback-missingparam": "W żądaniu nie podano wymaganych parametrów.",
        "cantrollback": "Nie można cofnąć edycji tego autora, ponieważ jest jedynym autorem tej strony.",
        "alreadyrolled": "Nie można dla strony [[:$1|$1]] cofnąć ostatniej zmiany, którą wykonał [[User:$2|$2]] ([[User talk:$2|dyskusja]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]).\nKtoś inny zdążył już to zrobić lub wprowadził własne poprawki do treści strony.\n\nAutorem ostatniej zmiany jest teraz [[User:$3|$3]] ([[User talk:$3|dyskusja]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
        "editcomment": "Edycję opisał: <em>$1</em>.",
        "revertpage": "Wycofano edycje użytkownika [[Special:Contributions/$2|$2]] ([[User talk:$2|dyskusja]]). Autor przywróconej wersji to [[User:$1|$1]].",
        "revertpage-nouser": "Wycofano edycje ukrytego użytkownika. Autor przywróconej wersji to {{GENDER:$1|[[User:$1|$1]]}}.",
        "rollback-success": "Wycofano edycje użytkownika $1;\nprzywrócono ostatnią wersję autorstwa $2.",
+       "rollback-success-notify": "Wycofano edycje użytkownika $1;\nprzywrócono ostatnią wersję autorstwa $2. [$3 Pokaż zmiany]",
        "sessionfailure-title": "Błąd sesji",
        "sessionfailure": "Wystąpił problem z weryfikacją zalogowania.\nPolecenie zostało anulowane, aby uniknąć przechwycenia sesji.\nNaciśnij „wstecz” w przeglądarce, przeładuj stronę, po czym ponownie wydaj polecenie.",
        "changecontentmodel": "Edycja modelu zawartości strony",
        "changecontentmodel-success-text": "Typ zawartości [[:$1]] został zmieniony.",
        "changecontentmodel-cannot-convert": "Zawartość [[:$1]] nie może być przekształcona do typu $2.",
        "changecontentmodel-nodirectediting": "Model zawartości $1 nie obsługuje bezpośredniego edytowania",
+       "changecontentmodel-emptymodels-text": "Zawartość [[:$1]] nie może być przekształcona do żadnego typu.",
        "log-name-contentmodel": "Rejestr zmian modelu zawartości",
        "log-description-contentmodel": "Wydarzenia związane z modelami zawartości stron",
        "logentry-contentmodel-change": "$1 {{GENDER:$2|zmienił|zmieniła|zmienił(a)}} model zawartości strony $3 z „$4” na „$5”",
        "sp-contributions-username": "Adres IP lub nazwa użytkownika:",
        "sp-contributions-toponly": "Pokaż wyłącznie ostatnie wersje",
        "sp-contributions-newonly": "Pokazuj tylko edycje tworzące nową stronę",
+       "sp-contributions-hideminor": "Ukryj drobne zmiany",
        "sp-contributions-submit": "Szukaj",
        "whatlinkshere": "Linkujące",
        "whatlinkshere-title": "Strony linkujące do „$1”",
        "allmessagesname": "Nazwa",
        "allmessagesdefault": "Tekst domyślny",
        "allmessagescurrent": "Tekst obecny",
-       "allmessagestext": "Lista wszystkich komunikatów systemowych dostępnych w przestrzeni nazw MediaWiki.\nOdwiedź [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Tłumaczenie MediaWiki] oraz [//translatewiki.net translatewiki.net], jeśli chcesz uczestniczyć w tłumaczeniu oprogramowania MediaWiki.",
+       "allmessagestext": "Lista wszystkich komunikatów systemowych dostępnych w przestrzeni nazw MediaWiki.\nOdwiedź [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Tłumaczenie MediaWiki] oraz [https://translatewiki.net translatewiki.net], jeśli chcesz uczestniczyć w tłumaczeniu oprogramowania MediaWiki.",
        "allmessagesnotsupportedDB": "Ta strona nie może być użyta, ponieważ zmienna '''$wgUseDatabaseMessages''' jest wyłączona.",
        "allmessages-filter-legend": "Filtr",
        "allmessages-filter": "Filtrowanie według stanu modyfikacji:",
        "tooltip-ca-nstab-category": "Zobacz stronę kategorii",
        "tooltip-minoredit": "Oznacz zmianę jako drobną",
        "tooltip-save": "Zapisz zmiany",
+       "tooltip-publish": "Opublikuj swoje zmiany",
        "tooltip-preview": "Obejrzyj efekt swojej edycji przed zapisaniem zmian!",
        "tooltip-diff": "Pokaż zmiany wykonane w tekście.",
        "tooltip-compareselectedversions": "Pokazuje różnice między dwiema wybranymi wersjami tej strony.",
        "rcpatroldisabled": "Wyłączono funkcję patrolowania na stronie ostatnich zmian",
        "rcpatroldisabledtext": "Patrolowanie ostatnich zmian jest obecnie wyłączone.",
        "markedaspatrollederror": "Nie można oznaczyć jako „sprawdzone”",
-       "markedaspatrollederrortext": "Musisz wybrać wersję żeby oznaczyć ją jako „sprawdzoną”.",
+       "markedaspatrollederrortext": "Musisz wybrać wersję, żeby oznaczyć ją jako „sprawdzoną”.",
        "markedaspatrollederror-noautopatrol": "Nie masz uprawnień wymaganych do oznaczania swoich edycji jako „sprawdzone”.",
        "markedaspatrollednotify": "Ta zmiana na stronie «$1» została oznaczona jako sprawdzona.",
        "markedaspatrollederrornotify": "Oznaczenie strony jako sprawdzonej nie powiodło się.",
        "size-megabytes": "$1&nbsp;MB",
        "size-gigabytes": "$1&nbsp;GB",
        "lag-warn-normal": "Zmiany nowsze niż $1 {{PLURAL:$1|sekunda|sekundy|sekund}} mogą nie być widoczne na tej liście.",
-       "lag-warn-high": "Z powodu dużego obciążenia serwerów bazy danych, zmiany nowsze niż $1 {{PLURAL:$1|sekunda|sekundy|sekund}} mogą nie być widoczne na tej liście.",
+       "lag-warn-high": "Z powodu dużego obciążenia serwerów bazy danych zmiany nowsze niż $1 {{PLURAL:$1|sekunda|sekundy|sekund}} mogą nie być widoczne na tej liście.",
        "watchlistedit-normal-title": "Edytuj listę obserwowanych stron",
        "watchlistedit-normal-legend": "Usuń strony z listy obserwowanych",
        "watchlistedit-normal-explain": "Poniżej znajduje się lista obserwowanych przez Ciebie stron.\nAby usunąć stronę z listy zaznacz znajdujące się obok niej pole i naciśnij „{{int:Watchlistedit-normal-submit}}”.\nMożesz także skorzystać z [[Special:EditWatchlist/raw|tekstowego edytora listy obserwowanych]].",
        "log-name-managetags": "Rejestr zarządzania znacznikami",
        "log-description-managetags": "Na tej stronie są wymienione zadania związane z zarządzaniem [[Special:Tags|znacznikami]]. Dziennik (log) zawiera tylko działania wykonane ręcznie przez administratora; znaczniki mogą być tworzone lub usuwane przez oprogramowanie wiki bez dodawania wpisów w dzienniku (logu).",
        "logentry-managetags-create": "$1 {{GENDER:$2|utworzył|utworzyła}} znacznik „$4”",
-       "logentry-managetags-delete": "$1 {{GENDER:$2|usunął|usunęła}} znacznik \"$4\" (wykluczony z $5 {{PLURAL:$5|wersji lub wpisu dziennika|wersji i/lub wpisów dziennika}})",
+       "logentry-managetags-delete": "$1 {{GENDER:$2|usunął|usunęła}} znacznik „$4” (usunięty z $5 {{PLURAL:$5|wersji lub wpisu dziennika|wersji i/lub wpisów dziennika}})",
        "logentry-managetags-activate": "$1 aktywował{{GENDER:$2||a}} znacznik \"$4\" do korzystania przez uczestników i boty",
        "logentry-managetags-deactivate": "$1 wyłączył{{GENDER:$2||a}} znacznik \"$4\" z korzystania przez uczestników i boty",
        "log-name-tag": "Rejestr znaczników",
        "api-error-stashfilestorage": "Wystąpił błąd podczas przesyłania pliku do archiwum.",
        "api-error-stashzerolength": "Serwer nie może zapisać pliku zapasowego do archiwum, gdyż ma on zerową długość.",
        "api-error-stashnotloggedin": "Musisz się zalogować, aby móc zapisać plik zapasowy do archiwum.",
-       "api-error-stashwrongowner": "Plik w archiwum, do którego próbujesz uzyskać dostęp, nie należy do ciebie.",
-       "api-error-stashnosuchfilekey": "Klucz zbioru w archiwum, do którego próbujesz uzyskać dostęp, nie należy do ciebie.",
+       "api-error-stashwrongowner": "Plik w archiwum, do którego próbujesz uzyskać dostęp, nie należy do Ciebie.",
+       "api-error-stashnosuchfilekey": "Klucz zbioru w archiwum, do którego próbujesz uzyskać dostęp, nie należy do Ciebie.",
        "api-error-timeout": "Serwer nie odpowiedział w oczekiwanym czasie.",
        "api-error-unclassified": "Wystąpił nieznany błąd",
        "api-error-unknown-code": "Błąd nieznany – „$1”",
        "mw-widgets-dateinput-placeholder-month": "RRRR-MM",
        "mw-widgets-titleinput-description-new-page": "strona jeszcze nie istnieje",
        "mw-widgets-titleinput-description-redirect": "przekierowanie do $1",
-       "api-error-blacklisted": "Wybierz inny, opisowy tytuł.",
        "sessionmanager-tie": "Nie można łączyć kilku rodzajów uwierzytelniania dla zapytania: $1.",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "sesje na podstawie cookie",
        "sessionprovider-nocookies": "Być może cookies są wyłączone. Upewnij się, że masz włączone cookies i zacznij od nowa.",
        "randomrootpage": "Losowa strona (bez podstron)",
        "log-action-filter-block": "Rodzaj blokady:",
+       "log-action-filter-contentmodel": "Typ modyfikacji modelu zawartości:",
        "log-action-filter-delete": "Rodzaj usunięcia:",
+       "log-action-filter-import": "Typ importu:",
+       "log-action-filter-managetags": "Typ działania zarządzania znacznikami:",
+       "log-action-filter-move": "Typ przeniesienia:",
+       "log-action-filter-newusers": "Typ utworzenia konta:",
        "log-action-filter-patrol": "Rodzaj patrolu:",
        "log-action-filter-protect": "Rodzaj zabezpieczenia:",
-       "log-action-filter-rights": "Typ zmiany uprawień",
+       "log-action-filter-rights": "Typ zmiany uprawień:",
+       "log-action-filter-suppress": "Typ ukrycia:",
        "log-action-filter-upload": "Rodzaj przesłanych:",
        "log-action-filter-all": "Wszystkie",
        "log-action-filter-block-block": "Zablokowanie",
        "log-action-filter-block-reblock": "Zmiana blokady",
        "log-action-filter-block-unblock": "Odblokowanie",
+       "log-action-filter-contentmodel-change": "Zmiana modelu zawartości",
+       "log-action-filter-contentmodel-new": "Utworzenie strony z niestandardowym modelem zawartości",
        "log-action-filter-delete-delete": "Usunięcie strony",
        "log-action-filter-delete-restore": "Odtworzenie strony",
        "log-action-filter-delete-event": "Usunięcie wpisu rejestru",
        "log-action-filter-delete-revision": "Usunięcie wersji",
        "log-action-filter-import-interwiki": "Import transwiki",
+       "log-action-filter-import-upload": "Import poprzez przesłanie XML",
        "log-action-filter-managetags-create": "Utworzenie znacznika",
        "log-action-filter-managetags-delete": "Usunięcie znacznika",
        "log-action-filter-managetags-activate": "Aktywacja znacznika",
        "log-action-filter-managetags-deactivate": "Deaktywacja znacznika",
+       "log-action-filter-move-move": "Przeniesienie bez nadpisania przekierowania",
+       "log-action-filter-move-move_redir": "Przeniesienie ponad przekierowaniem",
+       "log-action-filter-newusers-create": "Utworzenie przez anonimowego użytkownika",
+       "log-action-filter-newusers-create2": "Utworzenie przez zarejestrowanego użytkownika",
+       "log-action-filter-newusers-autocreate": "Automatyczne utworzenie",
+       "log-action-filter-newusers-byemail": "Utworzenie z hasłem przesłanym e-mailem",
        "log-action-filter-patrol-patrol": "Ręczny",
        "log-action-filter-patrol-autopatrol": "Automatyczny",
        "log-action-filter-protect-protect": "Zabezpieczenie",
        "log-action-filter-protect-modify": "Zmiana zabezpieczenia",
        "log-action-filter-protect-unprotect": "Odbezpieczenie",
+       "log-action-filter-protect-move_prot": "Przeniesienie zabezpieczenia",
        "log-action-filter-rights-rights": "Ręczna zmiana",
        "log-action-filter-rights-autopromote": "Automatyczna zmiana",
+       "log-action-filter-suppress-event": "Ukrycie wpisu rejestru",
+       "log-action-filter-suppress-revision": "Ukrycie wersji",
+       "log-action-filter-suppress-delete": "Ukrycie strony",
+       "log-action-filter-suppress-block": "Ukrycie użytkownika poprzez blokadę",
+       "log-action-filter-suppress-reblock": "Ukrycie użytkownika poprzez ponowną blokadę",
        "log-action-filter-upload-upload": "Nowe przesłane",
        "log-action-filter-upload-overwrite": "Przesłane ponownie",
        "authmanager-create-disabled": "Utworzenie konta jest wyłączone.",
        "authmanager-create-from-login": "Aby utworzyć konto, wypełnij poniższe pola.",
+       "authmanager-authplugin-setpass-failed-title": "Zmiana hasła nie powiodła się",
+       "authmanager-authplugin-setpass-failed-message": "Wtyczka do uwierzytelniania uniemożliwiła zmianę hasła.",
+       "authmanager-authplugin-create-fail": "Wtyczka do uwierzytelniania uniemożliwiła utworzenie konta.",
        "authmanager-authplugin-setpass-denied": "Wtyczka uwierzytelniania nie zezwala na zmianę haseł.",
        "authmanager-authplugin-setpass-bad-domain": "Niepoprawna domena.",
        "authmanager-autocreate-noperm": "Automatyczne tworzenie konta jest niedozwolone.",
        "authmanager-autocreate-exception": "Automatyczne tworzenie konta tymczasowo wyłączone z powodu wcześniejszych błędów.",
        "authmanager-userdoesnotexist": "Konto użytkownika „$1” nie jest zarejestrowane.",
+       "authmanager-username-help": "Nazwa użytkownika dla uwierzytelniania.",
        "authmanager-password-help": "Hasło do uwierzytelniania.",
+       "authmanager-domain-help": "Domena uwierzytelniania zewnętrznego.",
+       "authmanager-retype-help": "Ponownie hasło w celu potwierdzenia.",
        "authmanager-email-label": "E-mail",
        "authmanager-email-help": "Adres e‐mail",
+       "authmanager-realname-label": "Imię i nazwisko",
        "authmanager-realname-help": "Prawdziwe imię i nazwisko użytkownika",
        "authmanager-provider-password": "Uwierzytelnianie oparte na haśle",
+       "authmanager-provider-password-domain": "Uwierzytelnianie na podstawie hasła i domeny",
        "authmanager-provider-temporarypassword": "Hasło tymczasowe",
+       "authprovider-confirmlink-success-line": "$1: Połączono.",
        "authprovider-resetpass-skip-label": "Pomiń",
+       "authprovider-resetpass-skip-help": "Pomiń resetowanie hasła.",
        "authform-newtoken": "Brakujący token. $1",
        "authform-notoken": "Brakujący token",
        "authform-wrongtoken": "Nieprawidłowy token",
        "specialpage-securitylevel-not-allowed": "Niestety, nie możesz korzystać z tej strony, ponieważ twoja tożsamość nie może zostać zweryfikowana.",
        "authpage-cannot-login-continue": "Nie można kontynuować logowania. Sesja najprawdopodobniej wygasła.",
+       "authpage-cannot-create": "Nie można rozpocząć tworzenie konta.",
+       "authpage-cannot-create-continue": "Nie można kontynuować tworzenia konta. Twoja sesja najprawdopodobniej wygasła.",
        "cannotauth-not-allowed-title": "Brak dostępu",
-       "changecredentials-submit-cancel": "Anuluj",
-       "removecredentials-submit": "Usuń",
-       "removecredentials-submit-cancel": "Anuluj",
-       "credentialsform-account": "Nazwa konta:"
+       "cannotauth-not-allowed": "Nie masz uprawnień, aby skorzystać z tej strony",
+       "changecredentials-submit": "Zmień poświadczenia",
+       "removecredentials-submit": "Usuń poświadczenia",
+       "credentialsform-account": "Nazwa konta:",
+       "linkaccounts": "Połącz konta",
+       "linkaccounts-success-text": "Konto zostało połączone.",
+       "linkaccounts-submit": "Połącz konta",
+       "unlinkaccounts": "Odłącz konta",
+       "unlinkaccounts-success": "Konta zostały odłączone."
 }
index 3d32f5b..c0018be 100644 (file)
        "protectedpagetext": "Sta pàgina-sì a l'è stàita blocà për evité 'd modìfiche o d'àutre assion.",
        "viewsourcetext": "A peul vardé e copié la sorgiss dë sta pàgina.",
        "viewyourtext": "A peul vëdde e copié la sorgiss ëd <strong>soe modìfiche</strong> a costa pàgina-sì.",
-       "protectedinterface": "Costa pàgina-sì a l'ha andrinta un cheicòs che a fa part dl'antërfacia dël programa che a deuvro tùit; donca a l'é proteta për evité che a-i rivo dle ròbe brute.\nPër gionté o modifiché dle tradussion për tute le wiki, për piasì ch'a deuvra [//translatewiki.net/ translatewiki.net], ël proget ëd localisassion ëd MediaWiki.",
+       "protectedinterface": "Costa pàgina-sì a l'ha andrinta un cheicòs che a fa part dl'antërfacia dël programa che a deuvro tùit; donca a l'é proteta për evité che a-i rivo dle ròbe brute.\nPër gionté o modifiché dle tradussion për tute le wiki, për piasì ch'a deuvra [https://translatewiki.net/ translatewiki.net], ël proget ëd localisassion ëd MediaWiki.",
        "editinginterface": "<strong>Dossman!</strong> A l'é dapress ch'a modìfica na pàgina ch'as deuvra për generé ël test dl'antërfacia dël programa. \nLe modìfiche a sta pàgina a toco l'aparensa ëd l'antërfacia utent a tuti j'utent dzora a sta wiki.",
-       "translateinterface": "Për gionté o modifiché le tradussion për tute le wiki, për piasì ch'a deuvra [//translatewiki.net/ translatewiki.net], ël proget ëd localisassion ëd MediaWiki.",
+       "translateinterface": "Për gionté o modifiché le tradussion për tute le wiki, për piasì ch'a deuvra [https://translatewiki.net/ translatewiki.net], ël proget ëd localisassion ëd MediaWiki.",
        "cascadeprotected": "Ant sta pàgina-sì as peulo pa fé ëd modìfiche, përché a-i intra ant {{PLURAL:$1|la pàgina|le pàgine}} butà sot a protession con la fonsion «a tombé» viscà ansima a: $2",
        "namespaceprotected": "A l'ha nen ël përmess dë feje dle modìfiche a le pàgine dlë spassi nominal '''$1'''.",
        "customcssprotected": "Ch'a varda ch'a l'ha pa ël përmess ëd modifiché sta pàgina ëd CSS, për via ch'a l'ha andrinta ij gust ëd n'àutr utent.",
        "resetpass-temp-password": "Ciav provisòria:",
        "resetpass-abort-generic": "La modìfica ëd la ciav a l'é stàita anulà da n'estension.",
        "resetpass-expired": "Soa ciav a l'é scadùa. Për piasì, ch'a definissa na ciav neuva për rintré ant ël sistema.",
-       "resetpass-expired-soft": "Soa ciav a l'é scadùa e a l'ha damanca d'esse arnovà. Për piasì, ch'a serna na neuva ciav adess o ch'a sgnaca su «{{int:resetpass-submit-cancel}}» për cangela pi tard.",
-       "resetpass-validity-soft": "Soa ciav a l'é nen bon-a: $1\n\nPër piasì, ch'a serna na neuva ciav adess, opura ch'a sgnaca su «{{int:resetpass-submit-cancel}}» për riampostela pi tard.",
+       "resetpass-expired-soft": "Soa ciav a l'é scadùa e a l'ha damanca d'esse arnovà. Për piasì, ch'a serna na neuva ciav adess o ch'a sgnaca su «{{int:authprovider-resetpass-skip-label}}» për cangela pi tard.",
+       "resetpass-validity-soft": "Soa ciav a l'é nen bon-a: $1\n\nPër piasì, ch'a serna na neuva ciav adess, opura ch'a sgnaca su «{{int:authprovider-resetpass-skip-label}}» për riampostela pi tard.",
        "passwordreset": "Ri-inissialisassion ëd la ciav",
        "passwordreset-text-one": "Ch'a completa 's formolari për reimposté soa ciav.",
        "passwordreset-text-many": "{{PLURAL:$1|Ch'a compila un dij camp për arsèive na ciav provisòria për pòsta eletrònica.}}",
        "apihelp-no-such-module": "Ël mòdol «$1» as treuva nen.",
        "apisandbox": "Spassi dle preuve API",
        "apisandbox-api-disabled": "API a l'é disabilità ansima a 's sit.",
-       "apisandbox-intro": "Ch'a deuvra sta pàgina për sperimenté ël '''servissi an sl'aragnà MediaWiki API'''.\nCh'a fasa riferiment a [//www.mediawiki.org/wiki/API:Main_page la documentassion ëd l'API] për d'àutri detaj an sl'utilisassion ëd l'API. Për esempi: [//www.mediawiki.org/wiki/API#A_simple_example oten-e ël contnù ëd na pàgina d'Intrada]. Ch'a selession-a n'assion për vëdde d'àutri esempi.",
+       "apisandbox-intro": "Ch'a deuvra sta pàgina për sperimenté ël '''servissi an sl'aragnà MediaWiki API'''.\nCh'a fasa riferiment a [https://www.mediawiki.org/wiki/API:Main_page la documentassion ëd l'API] për d'àutri detaj an sl'utilisassion ëd l'API. Për esempi: [https://www.mediawiki.org/wiki/API#A_simple_example oten-e ël contnù ëd na pàgina d'Intrada]. Ch'a selession-a n'assion për vëdde d'àutri esempi.",
        "apisandbox-submit": "Fé l'arcesta",
        "apisandbox-reset": "Scancela",
        "apisandbox-examples": "Esempi",
        "allmessagesname": "Nòm",
        "allmessagesdefault": "Test che a-i sarìa se a-i fusso pa 'd modìfiche",
        "allmessagescurrent": "Test corent",
-       "allmessagestext": "Costa-sì a l'é na lista dij mëssagi ëd sistema disponìbij ant lë spassi nominal MediaWiki.\nPër piasì, ch'a vìsita la [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Localisassion ëd MediaWiki] e [//translatewiki.net translatewiki.net] se a veul contribuì a la localisassion general ëd MediaWiki.",
+       "allmessagestext": "Costa-sì a l'é na lista dij mëssagi ëd sistema disponìbij ant lë spassi nominal MediaWiki.\nPër piasì, ch'a vìsita la [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Localisassion ëd MediaWiki] e [https://translatewiki.net translatewiki.net] se a veul contribuì a la localisassion general ëd MediaWiki.",
        "allmessagesnotsupportedDB": "Sta pàgina-sì a peul pa esse dovrà përchè '''$wgUseDatabaseMessages''' a l'é stàit disabilità.",
        "allmessages-filter-legend": "Filtr",
        "allmessages-filter": "Filtré për stat ëd përsonalisassion:",
index 21de22e..21272c1 100644 (file)
                        "Amire80",
                        "Obaid Raza",
                        "Macofe",
-                       "Matma Rex"
+                       "Matma Rex",
+                       "Saanvel"
                ]
        },
        "tog-underline": "حوڑ تھلے لین:",
        "tog-hideminor": "چھوٹیاں تبدیلیاں چھپاؤ",
        "tog-hidepatrolled": "ویکھیاں تبدیلیاں لکاؤ",
        "tog-newpageshidepatrolled": "نویاں صفیاں توں ویکھیاں تبدیلیاں لکاؤ",
+       "tog-hidecategorization": "صفحیاں دی گٹھ لکائو۔",
        "tog-extendwatchlist": "نظر تھلے رکھے صفحے نوں ودھاو, تاں جے اوہ تبدیلیاں جیڑیاں کم دے قابل نیں ویکھیاں جا سکن",
        "tog-usenewrc": "تھوڑا خر پہلے کیتیاں گیاں تبدیلیاں ورتو",
        "tog-numberheadings": "آپ نمبر دین والیاں سرخیاں",
        "tog-showtoolbar": "ایڈٹ ٹولبار وکھاؤ",
        "tog-editondblclick": "صفیاں تے ڈبل کلک کرن تے تبدیلیاں لیاؤ",
-       "tog-editsectiononrightclick": "سیکشن سرخی تے تبدیلی لیاؤ سجی کلک نال",
-       "tog-watchcreations": "جیہڑے صفے میں بناندا واں اوہ میری اکھ تھلے لسٹ چ کر دیو",
-       "tog-watchdefault": "جیہڑے صفے میں لکھداں اوہ میری اکھ تھلے لسٹ چ کر دیو",
-       "tog-watchmoves": "جیڈے صفحے میں لے چلداں اوہ میری اکھ تھلے کر دیو",
-       "tog-watchdeletion": "جیڈے صفحے میں مٹانداں اوہ میری اکھ تھلے کر دیو",
+       "tog-editsectiononrightclick": "سیکشن سرخی تے تبدیلی لیاؤ سجے کلک نال",
+       "tog-watchcreations": "صفے جیہڑے میں بناندا واں تے جیہڑیاں فائیلاں میں چڑھائواں اوہ میری اکھ تھلے لسٹ چ کر دیو",
+       "tog-watchdefault": "جیہڑے صفے تے فائیلاں میں لکھداں اوہ میری اکھ تھلے لسٹ چ کر دیو",
+       "tog-watchmoves": "جیڈے صفحے تے فائیلاں میں لے چلداں اوہ میری اکھ تھلے کر دیو",
+       "tog-watchdeletion": "جیڈے صفحے تے فائیلاں میں مٹانداں اوہ میری اکھ تھلے کر دیو",
+       "tog-watchuploads": "نویائیاں فائیلاں جیہڑیاں میں چڑھائواں اوہ میری اکھ تھلے لسٹ چ کر دیو",
+       "tog-watchrollback": "صفحے جہناں نوں میں واپس کراں اوہ میری اکھ تھلے لسٹ چ کر دیو",
        "tog-minordefault": "ساریاں تبدیلیاں نوں نکا ڈیفالٹ نال دسو۔",
        "tog-previewontop": "ایڈٹ باکس توں پہلے پریویو وکھاؤ",
        "tog-previewonfirst": "پہلی تبدیلی تے پریویو وکھاؤ",
        "tog-watchlisthideliu": "تبدیلیاں نوں لکاؤ اوناں لاگ ان ورتن والیاں کولوں جیہڑے واچلسٹ تے نیں۔",
        "tog-watchlisthideanons": "تبدیلیاں واجلسٹ دے گمنام ورتن والیاں توں لکاؤ",
        "tog-watchlisthidepatrolled": "نکی لکھائی اکھ تھلوں لکاؤ",
+       "tog-watchlisthidecategorization": "صفحیاں دی گٹھ لکائو۔",
        "tog-ccmeonemails": "مینوں اوہناں ای میلاں دیاں کاپیاں بھیجو جیہڑیاں میں دوجیاں نوں بھیجاں۔",
        "tog-diffonly": "تبدیلی توں علاوہ صفحہ نا وکھاؤ",
        "tog-showhiddencats": "لکیاں کیٹاگریاں وکھاؤ",
-       "tog-norollbackdiff": "صفحے دی واپسی تے تبدیلی کڈ دو",
+       "tog-norollbackdiff": "صفحے دی واپسی تے تبدیلی نہ وکھائو",
        "tog-useeditwarning": "جدوں میں کوئی صفحہ تبدیلی کر کے بچاۓ بغیر چھڈن لگاں تے منوں دس دیو",
        "underline-always": "ہمیشہ",
        "underline-never": "کدی وی نئیں",
-       "underline-default": "براؤزر ڈیفالٹ",
+       "underline-default": "سکÛ\8cÙ\86 Û\8cا Ø¨Ø±Ø§Ø¤Ø²Ø± Ú\88Û\8cÙ\81اÙ\84Ù¹",
        "editfont-style": "تبدیلی کرن ویلے دی لکھائی دا خط:",
        "editfont-default": "براؤزر ڈیفالٹ",
        "editfont-monospace": "اکوجۓ حالی تھاں آلا خط",
        "oct": "اکتوبر",
        "nov": "نومبر",
        "dec": "دسمبر",
+       "january-date": "جنوری $1",
+       "february-date": "فروری $1",
+       "march-date": "مارچ $1",
+       "april-date": "اپریل $1",
+       "may-date": "مئی $1",
+       "june-date": "جون $1",
+       "july-date": "جولائی $1",
+       "august-date": "اگست $1",
+       "september-date": "ستمبر $1",
+       "october-date": "اکتوبر $1",
+       "november-date": "نومبر $1",
+       "december-date": "دسمبر $1",
+       "period-am": "AM",
+       "period-pm": "PM",
        "pagecategories": "{{PLURAL:$1|گٹھ|گٹھیاں}}",
-       "category_header": "\"$1\" Ú©Û\8cٹاگرÛ\8c وچ صفے",
-       "subcategories": "تھÙ\84Û\92 Ø¢Ù\84Û\8c Ú©Û\8cٹاگرÛ\8c",
-       "category-media-header": "اس \"$1\" Ú©Û\8cٹاگرÛ\8c وچ میڈيا",
-       "category-empty": "''اس Ú©Û\8cٹاگرÛ\8c Ù\88Ú\86 Ú©Ù\88ئÛ\8c ØµÙ\81Ø­Û\81 Û\8cا Ù\85Û\8cÚ\88Û\8cا Ù\85Ù\88جÙ\88د Ù\86Û\81Û\8cÚº۔''",
+       "category_header": "\"$1\" Ú¯Ù¹Ú¾Û\8cاں وچ صفے",
+       "subcategories": "تھÙ\84Û\92 Ø¢Ù\84Û\8c Ú¯Ù¹Ú¾",
+       "category-media-header": "اس \"$1\" Ú¯Ù¹Ú¾ وچ میڈيا",
+       "category-empty": "''اس Ú¯Ù¹Ú¾ Ù\88Ú\86 Ú©Ù\88ئÛ\8c ØµÙ\81Ø­Û\81 Û\8cا Ù\85Û\8cÚ\88Û\8cا Ù\86ئÛ\8c۔''",
        "hidden-categories": "{{PLURAL:$1|چھپی گٹھ|چھپی گٹھیاں}}",
        "hidden-category-category": "لکائیاں گٹھاں",
        "category-subcat-count": "{{PLURAL:$2|اس گٹھ دی صرف اکو تھلے آلی نکی گٹھ اے|اس گٹھ دیاں 2$ چوں   {{PLURAL:$1|نکی گٹھ|$1 نکی گٹھیاں}}}} نیں۔",
        "newwindow": "(نئی ونڈو چ کھولو)",
        "cancel": "مکاؤ",
        "moredotdotdot": "مزید۔۔۔۔",
-       "mypage": "میرا صفہ",
+       "morenotlisted": "ایہ لسٹ پوری نئی۔",
+       "mypage": "صفہ",
        "mytalk": "میریاں گلاں",
-       "anontalk": "اس آئی پی آسطے گل کرو",
+       "anontalk": "گل",
        "navigation": "کھوج",
        "and": "&#32;تے",
        "qbfind": "کھوج",
        "faq": "FAQ",
        "faqpage": "Project:FAQ",
        "actions": "کم",
-       "namespaces": "Ù\86اÙ\88اں Ø¯Û\8c Ø¬Ú¯Û\81:",
+       "namespaces": "Ù\86اÙ\88اں Ø¯Û\8c ØªÚ¾Ø§Úº:",
        "variants": "قسماں",
        "navigation-heading": "کھوج پتر",
        "errorpagetitle": "مسئلہ",
        "create-this-page": "اے صفحہ بناؤ",
        "delete": "مٹاؤ",
        "deletethispage": "اے صفحہ مٹاؤ",
+       "undeletethispage": "اس صفحے نوں واپس لیاؤ",
        "undelete_short": "مٹانا واپس {{PLURAL:$1|اکتبدیلی|$1 تبدیلی}}",
        "viewdeleted_short": "ویکھو {{PLURAL:$1|اک مٹائی گئی تبدیلی|$1 مٹائیاں گئیاں تبدیلیاں}}",
        "protect": "بچاؤ",
        "redirectedfrom": "(لیایا گیا $1)",
        "redirectpagesub": "صفحہ ریڈائریکٹ کرو",
        "redirectto": "اگے کرو:",
-       "lastmodifiedat": "This page was last modified on $1, at $2.\nاس صفحے نوں آخری آری $1 تریخ نوں $2 وجے بدلیا گیا۔",
+       "lastmodifiedat": "اس صفحے نوں آخری آری $1 تریخ نوں $2 وجے بدلیا گیا۔",
        "viewcount": "اس صفحے نوں {{PLURAL:$1|اک واری|$1 واری}} کھولیا گیا اے۔",
        "protectedpage": "بجایا صفحہ",
        "jumpto": "جاؤ:",
        "site-atom-feed": "$1 Atom Feed",
        "page-rss-feed": "\"$1\" RSS Feed",
        "page-atom-feed": "\"$1\" Atom Feed",
+       "feed-atom": "ایٹم",
        "red-link-title": "$1 (ایہ صفہ حلے تک نئیں بنایا گیا)",
        "sort-descending": "ونڈ تھلے ول",
        "sort-ascending": "ونڈ اتے ول",
        "nstab-mediawiki": "سنیعا",
        "nstab-template": "سانچہ",
        "nstab-help": "مدد آلا صفہ",
-       "nstab-category": "کیٹاگری",
+       "nstab-category": "گٹھ",
+       "mainpage-nstab": "پہلا صفہ",
        "nosuchaction": "کوئی ایسا کم نئیں",
        "nosuchactiontext": "یو آر ایل نال دسیا کم نئیں ہوےکدا۔\nتساں ہوسکدا اے یو ار ایل غلط ٹائپ کردتی ہووے۔\nایہ اک بگ نوں وی دسدا اے سوفٹویر چ جینوں {{سائٹناں}} نے ورتیا",
        "nosuchspecialpage": "انج دا کوئی خاص صفحہ نئیں",
        "viewsourcetext": "تسی اس صفحے دی لکھائی نوں ویکھ تے نقل کر سکدے او:",
        "viewyourtext": "تسیں آپنی تبدیلیاں دا ذریعہ ایس صفے تے ویکھ تے کاپی کرسکدے او۔",
        "protectedinterface": "اے صفحے سافٹویئر نوں ورتن دی تھاں دیندا اے تے ایدے غلط ورتن نوں روکن واسطے اینوں بچایا ہویا اے۔",
-       "editinginterface": "'''خبردار:''' تسیں اک ایسا صفہ بدل رۓ او جیہڑا مکھی صفے دے سوفٹویر نوں لکھت دیندا اے۔ ایس صفے ج تبدیلی ورتنن والیاں دے مکھی صفے دے وکھالے نوں بدل دے گی۔ بولی وٹاندرے لئی، مہربانی کرکے میڈیاوکی بولی ویونت [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net] ول ویکھو۔",
+       "editinginterface": "'''خبردار:''' تسیں اک ایسا صفہ بدل رۓ او جیہڑا مکھی صفے دے سوفٹویر نوں لکھت دیندا اے۔ ایس صفے ج تبدیلی ورتنن والیاں دے مکھی صفے دے وکھالے نوں بدل دے گی۔ بولی وٹاندرے لئی، مہربانی کرکے میڈیاوکی بولی ویونت [https://translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net] ول ویکھو۔",
        "cascadeprotected": "ایس صفے نوں تبدیلی توں بچایا گیا اے، کیوں جے ایہ تھلے دتے گۓ {{PLURAL:$1|صفہ|صفے}} چ ہیگا اے تے اینوں ''کیسکیڈنگ'' چنوتی نال بچایا گیا اے:\n\n $2",
        "namespaceprotected": "'''$1''' ناں دے صفحے تسی نئیں لکھ سکدے۔",
        "customcssprotected": "تسی اے CSS صفحے نوں تبدیل نئیں کر سکدے کیونجے ایدے کسے دوجے ورتن آلے دیاں من پسند تانگاں نیں۔",
        "userlogin-yourpassword": "کنجی",
        "userlogin-yourpassword-ph": "کنجی پاؤ",
        "createacct-yourpassword-ph": "کنجی پاؤ",
-       "yourpasswordagain": "کنجی دوبارہ لکھو:",
+       "yourpasswordagain": "کنجی فیر لکھو:",
        "createacct-yourpasswordagain": "کنجی پکی کرو",
        "createacct-yourpasswordagain-ph": "کنجی فیر پاؤ",
        "remembermypassword": "اس براؤزر تے میرا ورتن ناں یاد رکھو ($1 {{PLURAL:$1|دن|دناں}} واسطے)",
        "resetpass_forbidden": "کنجی بدلی نئیں جاسکدی",
        "resetpass-no-info": "تسی لاگ ان ہوکے ای اس صفحے نوں ویکھ سکدے او۔",
        "resetpass-submit-loggedin": "کنجی بدلو",
-       "resetpass-submit-cancel": "ختم",
+       "resetpass-submit-cancel": "مکاؤ",
        "resetpass-wrong-oldpass": "غلط عارضی یا ہلے دی کنجی۔\nتساں نے شاید اپنی کنجی بدل لئی ہوۓ یا عارضی کنجی دی درخواست کیتی ہوۓ۔",
        "resetpass-temp-password": "عارضی کنجی:",
        "passwordreset": "کنجی فیر بناؤ",
        "headline_tip": "دوسرے درجے دی سرخی",
        "nowiki_sample": "فارمیٹ نہ ہوئی لکھائی ایتھے پاؤ",
        "nowiki_tip": "وکی فارمیٹ رھندیو۔",
+       "image_sample": "Example.jpg",
        "image_tip": "وچ مورت لگاؤ",
+       "media_sample": "Example.ogg",
        "media_tip": "فائل دا جوڑ",
        "sig_tip": "تواڈے دستخط ویلے دے نال",
        "hr_tip": "سدھی لکیر",
        "recentchanges-label-plusminus": "صفے دا ناپ اینے بائٹاں نال بدلیا گیا",
        "recentchanges-legend-heading": "<strong>وات:</strong>",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (ایہ وی ویکھو [[Special:NewPages|نویں صفیاں دی لسٹ]])",
+       "recentchanges-legend-plusminus": "(<em>±123</em>)",
        "rcnotefrom": "ہلے تک '''$2''' توں '''$1''' تبدیلیاں تھلے دتیاں گئیاں نیں۔",
        "rclistfrom": "$3 $2 توں ہونے آلیاں نویاں تبدیلیاں وکھاؤ",
        "rcshowhideminor": "$1 معمولی تبدیلیاں",
        "uploadnewversion-linktext": "اس فائل دا نوا ورژن چھڑھاؤ",
        "shared-repo-from": "$1 توں",
        "shared-repo": "اک سانجی ریپوزیٹری",
+       "shared-repo-name-wikimediacommons": "وکیمیڈیا کامنز",
        "upload-disallowed-here": "تسیں ایس فائل تے نہیں لکھ سکدے",
        "filerevert": "$1 واپس",
        "filerevert-legend": "فائل پچھلی حالت چ لے جاؤ",
        "contributions": " $1 ورتن آلے دا حصہ",
        "contributions-title": "$1 دے کم",
        "mycontris": "میرے کم",
+       "anoncontribs": "حصےداری",
        "contribsub2": "$1 آستے ($2)",
        "nocontribs": "ایناں ناپاں نال رلدیاں کوئی تبدیلیاں نئیں لبیاں۔",
        "uctop": "(اتے)",
        "allmessagesname": "ناں",
        "allmessagesdefault": "ڈیفالٹ لکھائی",
        "allmessagescurrent": "موجودہ لکھائی",
-       "allmessagestext": "ایہ لسٹ اے پربندھ سنیعیاں دی  جیہڑے میڈیاوکی دی ناں تھاں تے ہیگے نیں۔\nمہربانی کرکے [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] تے [//translatewiki.net translatewiki.net] تے جاؤ۔\nاگر تسیں میڈیا وکی دے بولی وٹاندرے چ کم کرنا چاندے او۔",
+       "allmessagestext": "ایہ لسٹ اے پربندھ سنیعیاں دی  جیہڑے میڈیاوکی دی ناں تھاں تے ہیگے نیں۔\nمہربانی کرکے [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] تے [https://translatewiki.net translatewiki.net] تے جاؤ۔\nاگر تسیں میڈیا وکی دے بولی وٹاندرے چ کم کرنا چاندے او۔",
        "allmessagesnotsupportedDB": "اے صفہ نئیں ورتیا جاسکدا کیوں جے '''$wgUseDatabaseMessages''' روک دتا گیا اے۔",
        "allmessages-filter-legend": "فلٹر",
        "allmessages-filter": "کسٹمائزیشن سٹیٹ فلٹر ہوئي:",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|ریوین|ریویناں }} $2 توں",
        "javascripttest": "JavaScript ٹیسٹنگ",
        "javascripttest-qunit-intro": "mediawiki.org تے [$1 ٹسٹنگ ڈوکومنٹیشن] ویکھو۔",
-       "tooltip-pt-userpage": "میرا صفہ",
+       "tooltip-pt-userpage": "{{GENDER:|میرا صفہ}}صفہ",
        "tooltip-pt-anonuserpage": "ورتن صفہ IP  پتے لئی تسی تبدیل کر رۓ او۔۔۔",
-       "tooltip-pt-mytalk": "میریاں گلاں",
+       "tooltip-pt-mytalk": "{{GENDER:|Your}} گل بات",
        "tooltip-pt-anontalk": "ایس IP  پتے دیاں تبدیلیاں تے گل بات",
        "tooltip-pt-preferences": "میریاں تانگاں",
        "tooltip-pt-watchlist": "او صفے جنہاں وچ تبدیلیاں تسی ویکھ رہے او",
        "tooltip-pt-mycontris": "میرے کم",
        "tooltip-pt-login": "ایہ بہتر اے کہ لاگ ان ہو جاؤ، فیر وی ایہ لازمی نئیں۔",
        "tooltip-pt-logout": "باہر آؤ",
-       "tooltip-pt-createaccount": "ایہ تواڈے لئی چنگا اے جے تسیں کھاتہ بناؤ تے لاگ ان ہوو؛ پر ایہ لازمی وی نئیں",
+       "tooltip-pt-createaccount": "ایہ تواڈے لئی چنگا اے جے تسیں کھاتہ کھولو تے لاگ ان ہوو؛ پر ایہ لازمی وی نئیں",
        "tooltip-ca-talk": "اس صفے بارے گل بات",
        "tooltip-ca-edit": "اس صفے تے لکھو",
        "tooltip-ca-addsection": "اس گل بات وچ حصہ لے لو۔",
        "tooltip-search-fulltext": "اس شبد نوں صفیاں چ لبو",
        "tooltip-p-logo": "پہلا صفہ",
        "tooltip-n-mainpage": "پہلے صفے نوں ویکھو",
-       "tooltip-n-mainpage-description": "پہلے ورقے تے جاؤ",
+       "tooltip-n-mainpage-description": "پہلے صفے تے جاؤ",
        "tooltip-n-portal": "پربندھ بارے ، تسیں کی کر سکدے او تے کنج کھوج سکدے او",
        "tooltip-n-currentevents": "موجودہ حالات تے پچھلیاں معلومات دیکھو",
        "tooltip-n-recentchanges": "وکی تے نویاں تبدیلیاں۔",
        "tooltip-t-recentchangeslinked": "اس صفے توں جڑے صفیاں چ نویاں تبدیلیاں",
        "tooltip-feed-rss": "RSS feed for this page",
        "tooltip-feed-atom": "Atom feed for this page",
-       "tooltip-t-contributions": "اس ورتن والے دے کم ویکھو",
+       "tooltip-t-contributions": "اس ورتن والے دے کم ویکھو {{GENDER:$1|this user}}",
        "tooltip-t-emailuser": "اس ورتن والے نو ای میل کرو",
        "tooltip-t-upload": "فائل چڑھاؤ",
        "tooltip-t-specialpages": "سارے خاص صفیاں دی اک لسٹ",
        "tooltip-ca-nstab-main": "مواد آلا صفہ ویکھو",
        "tooltip-ca-nstab-user": "ورتن آلے دا صفہ ویکھو",
        "tooltip-ca-nstab-media": "میڈیا آلا صفحہ ویکھو",
-       "tooltip-ca-nstab-special": "ایہ اک خاص صفہ اے، تے ایہ صفہ آپے نئیں لکھ سکدے",
+       "tooltip-ca-nstab-special": "ایہ اک خاص صفہ اے، تے ایہنوں لکھیا نئی جا سکدا۔",
        "tooltip-ca-nstab-project": "وینت دا صفہ ویکھو",
        "tooltip-ca-nstab-image": "فائل دا صفہ ویکھو",
        "tooltip-ca-nstab-mediawiki": "پربندھ سنیعہ ویکھو",
index c1e7cb9..f4424e0 100644 (file)
        "protectedpagetext": "Redigīsnas mazīngisku per šin pāusan pastāi izklāutan.",
        "viewsourcetext": "Mazīngi widātun be kōpitun šisse pāusan appun:",
        "protectedinterface": "Šin pāusan turri ēn sen prōgraminin interfācas tekstan, stesse paggan tenesses redigīsnas mazīngisku pastāi blōkitan.",
-       "editinginterface": "'''Ēmpirsergīsenis:''' Tu redigijja pāusan, kawīdan turri en sen prōgraminin interfācas tekstan.\nKitawīdinsnas en šismu pāusan wīrst kitawīdinušas interfācas pawīdan per kittans tērpautajans.\nPer tulkausnans, madli endirēis tērpautun [//translatewiki.net/wiki/Main_Page?setlang=prg translatewiki.net], - MediaWiki tulkausnan prōjaktan.",
+       "editinginterface": "'''Ēmpirsergīsenis:''' Tu redigijja pāusan, kawīdan turri en sen prōgraminin interfācas tekstan.\nKitawīdinsnas en šismu pāusan wīrst kitawīdinušas interfācas pawīdan per kittans tērpautajans.\nPer tulkausnans, madli endirēis tērpautun [https://translatewiki.net/wiki/Main_Page?setlang=prg translatewiki.net], - MediaWiki tulkausnan prōjaktan.",
        "cascadeprotected": "Šin pāusan ast pakūnstan ezze redigīsnan, beggi ast ebīmtan en {{PLURAL:$1|ripīntsmu pāusan, kawīdan|ripīntimans pāusans, kawīdai}} turri mazīngiskwan \"pakūnsnas weldīsnan\" enklaūtan:\n$2",
        "namespaceprotected": "Tū ni assei preiwērptan, kāi redigīlai pāusans en '''$1''' tītelin plattibei.",
        "ns-specialprotected": "Speciālai pāusai ni mazzi būtwei redigītan.",
        "allmessagesname": "Emmens",
        "allmessagesdefault": "Auprestamins teksts",
        "allmessagescurrent": "Bigānts teksts",
-       "allmessagestext": "Sta ast listi wisēisan waīstin preiēiminan en MediaWikis tītelin plattibin.\nMadli kāimalukeis [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] be [//translatewiki.net translatewiki.net] ik tu kwaitēi delīkan īmtun en MediaWikis prōgraminin tulkausnai.",
+       "allmessagestext": "Sta ast listi wisēisan waīstin preiēiminan en MediaWikis tītelin plattibin.\nMadli kāimalukeis [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] be [https://translatewiki.net translatewiki.net] ik tu kwaitēi delīkan īmtun en MediaWikis prōgraminin tulkausnai.",
        "allmessagesnotsupportedDB": "Šī pāusan ni mazzi būtwei tērpautan, beggi wariābli '''$wgUseDatabaseMessages''' ast izklaūtan.",
        "allmessages-filter-legend": "Filtrīs",
        "allmessages-filter": "Filtrīs pa būsenin:",
index d755f65..f40ed82 100644 (file)
        "protectedpagetext": "دا مخ د سمون او نورو کړنو د ترسره کولو په تکل ژغورل شوی.",
        "viewsourcetext": "تاسې د دې مخ سرچينه کتلی او لمېسلی شی.",
        "viewyourtext": "په دې مخ کې <strong>تاسې د خپلو سمونونو</strong> سرچينه کتلی او لمېسلی شی.",
-       "protectedinterface": "دا مخ د دې ويکي د ساوترې د ليدنمخ متن لري، او د ورانکارۍ په خاطر ژغورل شوی.\nپه ټولو ويکي گانو کې د ژباړې د ورگډولو او يا هم د ژباړې د سمون او بدلون لپاره د مېډياويکي د ځايتابه پروژه [//translatewiki.net/ translatewiki.net] وکاروۍ.",
+       "protectedinterface": "دا مخ د دې ويکي د ساوترې د ليدنمخ متن لري، او د ورانکارۍ په خاطر ژغورل شوی.\nپه ټولو ويکي گانو کې د ژباړې د ورگډولو او يا هم د ژباړې د سمون او بدلون لپاره د مېډياويکي د ځايتابه پروژه [https://translatewiki.net/ translatewiki.net] وکاروۍ.",
        "editinginterface": "<strong>گواښنه:</strong> تاسې چې په دې مخ کې بدلون راولۍ همدا مخ د يوې ساوترې د ليدنمخ متن په توگه کارېږي.\nد دې مخ بدلون به د ټولو کارنانو لپاره د ليدنمخ بڼه اغېزمنه کړي.",
        "namespaceprotected": "تاسې د '''$1''' په نوم-تشيال کې د مخونو د سمولو اجازه نه لرۍ.",
        "customcssprotected": "تاسې د دې CSS مخ د سمولو اجازه نه لرۍ، دا ځکه چې دا مخ د بل کارن شخصي امستنې لري.",
        "resetpass-temp-password": "لنډمهالی پټنوم:",
        "resetpass-abort-generic": "پټنوم بدلون مو د يو شاتاړي لخوا لغوه شوی.",
        "resetpass-expired": "ستاسې د پټنوم وخت پای ته رسېدلی. د ننوتلو لپاره لطفاً خپل ځانته يو نوی پټنوم وټاکئ.",
-       "resetpass-expired-soft": "ستاسې د پټنوم وخت پای ته رسېدلی او بايد بياپرځای شي. لطفاً خپل ځانته يو نوی پټنوم همدا اوس وټاکئ او يا هم د وروسته پرځای کولو لپاره \"{{int:resetpass-submit-cancel}}\" ټک ورکړئ.",
-       "resetpass-validity-soft": "ستاسې پټنوم سم نه دی: $1\n\nلطفاً يو نوی پټنوم همدا اوس وټاکئ او يا هم د وروسته پر ځای کولو لپاره په  \"{{int:resetpass-submit-cancel}}\" ټک ورکړئ.",
+       "resetpass-expired-soft": "ستاسې د پټنوم وخت پای ته رسېدلی او بايد بياپرځای شي. لطفاً خپل ځان ته يو نوی پټنوم همدا اوس وټاکئ او يا هم د وروسته پرځای کولو لپاره \"{{int:authprovider-resetpass-skip-label}}\" ټک ورکړئ.",
+       "resetpass-validity-soft": "ستاسې پټنوم سم نه دی: $1\n\nلطفاً يو نوی پټنوم همدا اوس وټاکئ او يا هم د وروسته پر ځای کولو لپاره په  \"{{int:authprovider-resetpass-skip-label}}\" ټک ورکړئ.",
        "passwordreset": "پټنوم بياپرځايول",
        "passwordreset-text-one": "د برېښليک له لارې د لنډمهاله پټنوم د ترلاسه کولو لپاره دا فورمه ډکه کړئ.",
        "passwordreset-text-many": "{{PLURAL:$1|د برېښليک له لارې د يو لنډمهاله پټنوم د ترلاسه کولو لپاره له لاندينيو ډگرونو څخه يو يې ډک کړۍ.}}",
        "minoredit": "دا يو وړوکی سمون دی",
        "watchthis": "همدا مخ کتل",
        "savearticle": "مخ خوندي کول",
+       "savechanges": "بدلونونه خوندي کول",
        "publishpage": "مخ خپرول",
+       "publishchanges": "بدلونونه خپرول",
        "preview": "مخليدنه",
        "showpreview": "مخليدنه",
        "showdiff": "بدلونونه ښکاره کول",
        "rightslogtext": "دا د کارن رښتو د بدلونونو يو يادښت دی.",
        "action-read": "همدا مخ لوستل",
        "action-edit": "دا مخ سمول",
-       "action-createpage": "Ù\85Ø®Ù\88Ù\86Ù\87 جوړول",
-       "action-createtalk": "د خبرو اترو مخونه جوړول",
+       "action-createpage": "Ù\87Ù\85دا Ù\85Ø® جوړول",
+       "action-createtalk": "د خبرو اترو دا مخ جوړول",
        "action-createaccount": "دا گڼون جوړول",
        "action-history": "د دې مخ پېښليک کتل",
        "action-minoredit": "دا سمون وړوکی په نخښه کول",
        "whatlinkshere-next": "{{PLURAL:$1|راتلونکی|راتلونکي $1}}",
        "whatlinkshere-links": "← تړنې",
        "whatlinkshere-hideredirs": "مخ گرځونې $1",
-       "whatlinkshere-hidetrans": "پاÙ\8aÙ\84ې $1",
+       "whatlinkshere-hidetrans": "Ù\88رگÚ\89Û\90دÙ\86ې $1",
        "whatlinkshere-hidelinks": "تړنې $1",
        "whatlinkshere-hideimages": "د دوتنې تړنې $1",
        "whatlinkshere-filters": "چاڼگرونه",
        "allmessagesname": "نوم",
        "allmessagesdefault": "تلواليزه پيغام متن",
        "allmessagescurrent": "اوسنی پيغام متن",
-       "allmessagestext": "دا د مېډياويکي په نوم-تشيال کې د غونډال د پيغامونو لړليک دی.\nکه چېرته تاسې د ميډياويکي په ځايتابه کې ونډې ترسره کول غواړۍ نو لطفاً [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation د ميډياويکي ځايتابه] او [//translatewiki.net translatewiki.net] څخه ليدنه وکړۍ.",
+       "allmessagestext": "دا د مېډياويکي په نوم-تشيال کې د غونډال د پيغامونو لړليک دی.\nکه چېرته تاسې د ميډياويکي په ځايتابه کې ونډې ترسره کول غواړۍ نو لطفاً [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation د ميډياويکي ځايتابه] او [https://translatewiki.net translatewiki.net] څخه ليدنه وکړۍ.",
        "allmessagesnotsupportedDB": "'''Special:Allmessages''' ترېنه کار نه اخيستل کېږي ځکه چې '''$wgUseDatabaseMessages''' مړ دی.",
        "allmessages-filter-legend": "چاڼگر",
        "allmessages-filter-unmodified": "نابدلېدلي",
        "confirm-watch-top": "همدا مخ خپل کتنلړ کې ورگډوې؟",
        "confirm-unwatch-button": "ښه",
        "confirm-unwatch-top": "همدا مخ خپل کتنلړ څخه لرې کوې؟",
+       "confirm-rollback-button": "هوکې",
        "percent": "$1%",
        "parentheses": "($1)",
        "brackets": "[$1]",
        "authmanager-realname-help": "د کارن اصلي نوم",
        "authprovider-resetpass-skip-label": "تېرېدل",
        "changecredentials-submit": "بدلول",
-       "changecredentials-submit-cancel": "ناگارل",
        "removecredentials-submit": "غورځول",
-       "removecredentials-submit-cancel": "ناگارل",
        "credentialsform-account": "گڼون نوم:"
 }
index 99f90b9..73381f0 100644 (file)
@@ -96,7 +96,9 @@
                        "Luk3",
                        "Ryuu",
                        "Luan",
-                       "Anderson Costa"
+                       "Anderson Costa",
+                       "LucyDiniz",
+                       "Tusca"
                ]
        },
        "tog-underline": "Sublinhar links:",
        "protectedpagetext": "Esta página foi protegida contra novas edições ou ações relacionadas.",
        "viewsourcetext": "Você pode ver e copiar o código desta página.",
        "viewyourtext": "Você pode ver e copiar o código fonte '''das suas edições''' a esta página.",
-       "protectedinterface": "Esta página fornece texto de interface ao software deste wiki, se encontrando protegida para prevenir abusos.\n\nPara adicionar ou alterar traduções em todos os wikis, utilize o [//translatewiki.net/ translatewiki.net], projeto de traduções do MediaWiki.",
-       "editinginterface": "'''Aviso:''' Você se encontra prestes a editar uma página que é utilizada para fornecer texto de interface ao software.\nAlterações nesta página irão afetar a aparência da interface de usuário para outros usuários deste wiki.\nPara alterar ou adicionar traduções, considere utilizar a [//translatewiki.net/wiki/Main_Page?setlang=pt-br translatewiki.net], um projeto destinado para a tradução do MediaWiki.",
-       "translateinterface": "Para adicionar ou modificar traduções para todas as wikis, por favor use  [//translatewiki.net/ translatewiki.net], o projeto de localização do MediaWiki.",
+       "protectedinterface": "Esta página fornece texto de interface ao software deste wiki, se encontrando protegida para prevenir abusos.\n\nPara adicionar ou alterar traduções em todos os wikis, utilize o [https://translatewiki.net/ translatewiki.net], projeto de traduções do MediaWiki.",
+       "editinginterface": "'''Aviso:''' Você se encontra prestes a editar uma página que é utilizada para fornecer texto de interface ao software.\nAlterações nesta página irão afetar a aparência da interface de usuário para outros usuários deste wiki.\nPara alterar ou adicionar traduções, considere utilizar a [https://translatewiki.net/wiki/Main_Page?setlang=pt-br translatewiki.net], um projeto destinado para a tradução do MediaWiki.",
+       "translateinterface": "Para adicionar ou modificar traduções para todas as wikis, por favor use  [https://translatewiki.net/ translatewiki.net], o projeto de localização do MediaWiki.",
        "cascadeprotected": "Esta página foi protegida contra edições porque é transcluída {{PLURAL:$1| na seguinte página que está protegida|nas seguintes páginas que estão protegidas}} com a opção \"em cascata\" ativada: $2",
        "namespaceprotected": "Você não possui permissão para editar páginas no espaço nominal '''$1'''.",
        "customcssprotected": "Você não tem permissão para editar esta página CSS, porque ele contém configurações pessoais de outro usuário.",
        "noname": "Você não colocou um nome de usuário válido.",
        "loginsuccesstitle": "Autenticado",
        "loginsuccess": "'''Agora você está {{GENDER:autenticado|autenticada}} ao wiki {{SITENAME}} como \"$1\"'''.",
-       "nosuchuser": "Não existe nenhum usuário com o nome \"$1\".\nOs nomes de usuário são sensíveis a letras maiúsculas.\nVerifique o que foi digitado ou [[Special:CreateAccount|crie uma nova conta]].",
+       "nosuchuser": "Não existe nenhum usuário com o nome \"$1\".\nOs nomes de usuário são sensíveis a letras maiúsculas.\nVerifique se digitou corretamente ou [[Special:CreateAccount|crie uma nova conta]].",
        "nosuchusershort": "Não existe um usuário com o nome \"$1\". Verifique o nome que introduziu.",
        "nouserspecified": "Você precisa especificar um nome de usuário.",
        "login-userblocked": "Este usuário está bloqueado. Entrada proibida.",
        "createacct-another-realname-tip": "O nome verdadeiro é opcional.\nSe você optar por fornecê-lo, este nome será utilizado para dar ao usuário a atribuição de seu trabalho.",
        "pt-login": "Entrar",
        "pt-login-button": "Entrar",
+       "pt-login-continue-button": "Continuar conexão",
        "pt-createaccount": "Crie uma conta",
        "pt-userlogout": "Sair",
        "php-mail-error-unknown": "Erro desconhecido na função mail() do PHP",
        "botpasswords-invalid-name": "O nome de usuário especificado não contém o separador de senha de robô (\"$1\").",
        "botpasswords-not-exist": "O usuário \"$1\" não possui uma senha de robô \"$2\".",
        "resetpass_forbidden": "As senhas não podem ser alteradas",
+       "resetpass_forbidden-reason": "Senhas não podem ser alteradas: $1",
        "resetpass-no-info": "Você precisa estar autenticado para acessar esta página diretamente.",
        "resetpass-submit-loggedin": "Alterar senha",
        "resetpass-submit-cancel": "Cancelar",
        "resetpass-temp-password": "Senha temporária:",
        "resetpass-abort-generic": "Uma extensão cancelou a alteração da senha.",
        "resetpass-expired": "Sua senha expirou. Por favor insira uma nova senha para autenticar-se.",
-       "resetpass-expired-soft": "Sua senha expirou e necessita ser resetada. Por favor escolha uma nova agora, ou clique \"{{int:resetpass-submit-cancel}}\" para resetar mais tarde.",
-       "resetpass-validity-soft": "Sua senha não é válida: $1\n\nPor favor escolha uma nova senha agora, ou clique \"{{int:resetpass-submit-cancel}}\" para redefini-la mais tarde.",
+       "resetpass-expired-soft": "Sua senha expirou e necessita ser resetada. Por favor escolha uma nova agora, ou clique \"{{int:authprovider-resetpass-skip-label}}\" para resetar mais tarde.",
+       "resetpass-validity-soft": "Sua senha não é válida: $1\n\nPor favor escolha uma nova senha agora, ou clique \"{{int:authprovider-resetpass-skip-label}}\" para redefini-la mais tarde.",
        "passwordreset": "Redefinir senha",
        "passwordreset-text-one": "Complete este formulário para trocar sua senha.",
        "passwordreset-text-many": "{{PLURAL:$1|Preencha um dos campos para trocar sua senha.}}",
        "passwordreset-emailsentusername": "Se houver um endereço de email associado a esta conta, ser-lhe-á enviada uma mensagem para redefinir a sua senha.",
        "passwordreset-emailsent-capture": "Foi enviado um e-mail de lembrete, que é mostrado abaixo.",
        "passwordreset-emailerror-capture": "Foi gerado um e-mail de recuperação da senha, conforme mostrado abaixo, mas o envio {{GENDER:$2|ao usuário|à usuária}} falhou. $1",
+       "passwordreset-emailsent-capture2": "A redefinição da senha {{PLURAL:$1|do e-mail|dos e-mails}} foi enviada. {{PLURAL:$1|O nome de usuário e senha|A lista de nomes de usuário e senhas}} encontram-se a seguir.",
        "changeemail": "Alterar ou remover endereço de email",
        "changeemail-header": "Preencha este formulário para alterar seu endereço de e-mail. Se você gostaria de remover a associação de qualquer endereço de e-mail da sua conta, deixe o novo endereço de email em branco quando enviar o formulário.",
        "changeemail-passwordrequired": "Você terá que digitar sua senha para confirmar esta mudança.",
        "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-passwordreset": "Ver todos os e-mails de reposição de senhas",
-       "right-managechangetags": "Criar e apagar [[Special:Tags|tags]] na base de dados",
+       "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",
+       "right-deletechangetags": "Deletar [[Special:Tags|tags]] da base de dados.",
        "grant-generic": "conjunto de direitos \"$1\"",
        "grant-group-page-interaction": "Interagir com páginas",
        "grant-group-file-interaction": "Interagir com multimídia",
        "action-viewmyprivateinfo": "veja suas informações privadas",
        "action-editmyprivateinfo": "modifique suas informações privadas",
        "action-editcontentmodel": "editar o conteudo do modelo de uma pagina",
-       "action-managechangetags": "Criar e apagar etiquetas da base de dados",
+       "action-managechangetags": "Criar e (des)ativar marcações",
        "action-applychangetags": "aplicar etiquetas juntamente com suas alterações",
        "action-changetags": "adicionar e remover etiquetas arbitrárias em revisões e ''logs'' individuais",
+       "action-deletechangetags": "deletar marcações da base de dados",
        "nchanges": "$1 {{PLURAL:$1|alteração|alterações}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|desde a última visita}}",
        "enhancedrc-history": "histórico",
        "uploadstash-thumbnail": "ver miniatura",
        "invalid-chunk-offset": "Deslocamento de fragmento inválido",
        "img-auth-accessdenied": "Acesso negado",
-       "img-auth-nopathinfo": "PATH_INFO em falta.\nO seu servidor não está configurado para passar esta informação.\nPode ser baseado em CGI e não consegue suportar img_auth.\nConsulte a documentação em [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization Image Authorization].",
+       "img-auth-nopathinfo": "PATH_INFO em falta.\nO seu servidor não está configurado para passar esta informação.\nPode ser baseado em CGI e não consegue suportar img_auth.\nConsulte a documentação em [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization Image Authorization].",
        "img-auth-notindir": "O caminho solicitado não está no diretório configurado para envios.",
        "img-auth-badtitle": "Não é possível criar um título válido a partir de \"$1\".",
        "img-auth-nologinnWL": "Você não está logado e \"$1\" não está na lista branca.",
        "apihelp-no-such-module": "Modulo \"$1\" não foram achados.",
        "apisandbox": "Caixa de areia da API",
        "apisandbox-api-disabled": "A API está desabilitada neste site.",
-       "apisandbox-intro": "Use esta página para realizar testes com o '''serviço web de API do MediaWiki'''.\nConsulte a [//www.mediawiki.org/wiki/API:Main_page a documentação API] para obter mais detalhes de uso da API.  Exemplo: [//www.mediawiki.org/wiki/API#A_simple_example obter o conteúdo de uma Página principal].  Selecione uma ação para mais exemplos.\n\nNote que, embora esta seja uma área de testes, as ações que executar nesta página podem modificar a wiki.",
+       "apisandbox-intro": "Use esta página para realizar testes com o '''serviço web de API do MediaWiki'''.\nConsulte a [https://www.mediawiki.org/wiki/API:Main_page a documentação API] para obter mais detalhes de uso da API.  Exemplo: [https://www.mediawiki.org/wiki/API#A_simple_example obter o conteúdo de uma Página principal].  Selecione uma ação para mais exemplos.\n\nNote que, embora esta seja uma área de testes, as ações que executar nesta página podem modificar a wiki.",
        "apisandbox-unfullscreen": "Mostrar página",
        "apisandbox-submit": "Fazer requisição",
        "apisandbox-reset": "Limpar",
        "allmessagesname": "Nome",
        "allmessagesdefault": "Texto padrão",
        "allmessagescurrent": "Texto atual",
-       "allmessagestext": "Esta é uma lista de todas as mensagens de sistema disponíveis no espaço nominal {{ns:mediawiki}}.\nAcesse [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] e [//translatewiki.net translatewiki.net] caso deseje contribuir para traduções do MediaWiki feitas para uso geral.",
+       "allmessagestext": "Esta é uma lista de todas as mensagens de sistema disponíveis no espaço nominal {{ns:mediawiki}}.\nAcesse [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] e [https://translatewiki.net translatewiki.net] caso deseje contribuir para traduções do MediaWiki feitas para uso geral.",
        "allmessagesnotsupportedDB": "Esta página não pode ser utilizada, uma vez que '''$wgUseDatabaseMessages''' foi desativado.",
        "allmessages-filter-legend": "Filtro",
        "allmessages-filter": "Filtrar por estado de personalização:",
        "timezone-local": "Local",
        "duplicate-defaultsort": "Aviso: A chave de ordenação padrão \"$2\" sobrepõe-se à anterior chave de ordenação padrão \"$1\".",
        "duplicate-displaytitle": "<strong>Aviso:</strong> O título exibido \"$2\" substituí o título anterior \"$1\".",
-       "restricted-displaytitle": "<Strong>Aviso:</Strong> O título de exibição “$1” foi ignorado devido a não ser equivalente ao título verdadeiro da página.",
+       "restricted-displaytitle": "<strong>Aviso:</strong> O título de exibição “$1” foi ignorado devido a não ser equivalente ao título verdadeiro da página.",
        "invalid-indicator-name": "<strong>Erro:</strong> O atributo indicador do status da página <code>name</code> não deve estar vazio.",
        "version": "Versão",
        "version-extensions": "Extensões instaladas",
        "mw-widgets-dateinput-placeholder-month": "AAAA-MM",
        "mw-widgets-titleinput-description-new-page": "a página ainda não existe",
        "mw-widgets-titleinput-description-redirect": "redirecionar para $1",
-       "api-error-blacklisted": "Por favor, escolha  um título descritivo diferente.",
        "randomrootpage": "Página raiz aleatória"
 }
index d2053db..48cbc04 100644 (file)
        "tog-ccmeonemails": "Enviar-me cópias das mensagens por correio electrónico que eu enviar a outros utilizadores",
        "tog-diffonly": "Não mostrar o conteúdo da página ao comparar duas edições",
        "tog-showhiddencats": "Mostrar categorias ocultas",
-       "tog-norollbackdiff": "Omitir diferenças depois de reverter edições em bloco",
+       "tog-norollbackdiff": "Ocultar diferenças depois de reverter edições em bloco",
        "tog-useeditwarning": "Avisar-me ao abandonar uma página editada sem gravar as alterações.",
        "tog-prefershttps": "Usar sempre uma ligação segura enquanto tiver sessão iniciada",
        "underline-always": "Sempre",
        "viewyourtext": "Pode ver e copiar o código-fonte das <strong>suas edições</strong> desta página.",
        "protectedinterface": "Esta página fornece o texto da interface ao software, e está protegida para prevenir abusos.",
        "editinginterface": "<strong>Aviso:</strong> Está a editar uma página usada para fornecer texto de interface ao software. Alterações a esta página afetarão a aparência da interface de utilizador para os outros utilizadores.",
-       "translateinterface": "Para traduções, considere utilizar a [//translatewiki.net/wiki/Main_Page?setlang=pt translatewiki.net], um projeto destinado à tradução do MediaWiki.",
+       "translateinterface": "Para adicionar ou alterar traduções para todas as wikis, considere utilizar a [https://translatewiki.net/wiki/Main_Page?setlang=pt translatewiki.net], um projeto destinado à tradução do MediaWiki.",
        "cascadeprotected": "Esta página foi protegida contra edições por estar transcluída {{PLURAL:$1|na página listada|nas páginas listadas}} a seguir, ({{PLURAL:$1|página essa que está protegida|páginas essas que estão protegidas}} com a opção de proteção \"em cascata\" ativada):\n$2",
        "namespaceprotected": "Não tem permissão para editar páginas no domínio '''$1'''.",
        "customcssprotected": "Não tem permissão para editar esta página de CSS porque esta contém as configurações pessoais de outro utilizador.",
        "password-change-forbidden": "Não pode alterar palavras-passe nesta wiki.",
        "externaldberror": "Ocorreu um erro externo à base de dados durante a autenticação ou não lhe é permitido atualizar a sua conta externa.",
        "login": "Entrar",
+       "login-security": "Verificar a sua identidade",
        "nav-login-createaccount": "Entrar / criar conta",
        "userlogin": "Criar uma conta ou entrar",
        "userloginnocreate": "Entrar",
        "userlogin-resetpassword-link": "Esqueceu-se da sua palavra-passe?",
        "userlogin-helplink2": "Ajuda para iniciar sessão",
        "userlogin-loggedin": "Já está {{GENDER:$1|autenticado|autenticada|autenticado}} com o nome $1.\nUse o formulário abaixo para iniciar sessão com outro nome.",
+       "userlogin-reauth": "Deve iniciar novamente sessão para verificar se é {{GENDER:$1|$1}}.",
        "userlogin-createanother": "Criar outra conta",
        "createacct-emailrequired": "Endereço de correio eletrónico",
        "createacct-emailoptional": "Endereço de correio eletrónico (opcional)",
        "createacct-email-ph": "Digite o seu endereço de correio eletrónico",
        "createacct-another-email-ph": "Digite o endereço de correio eletrónico",
        "createaccountmail": "Usar uma palavra passe aleatória e temporária e enviar para o endereço de correio eletrónico especificado",
+       "createaccountmail-help": "Pode ser utilizado para criar uma conta para outra pessoa sem saber a palavra-passe.",
        "createacct-realname": "Nome verdadeiro (opcional)",
        "createaccountreason": "Motivo:",
        "createacct-reason": "Motivo",
        "createacct-reason-ph": "Porque está a criar outra conta",
        "createacct-submit": "Crie a sua conta",
        "createacct-another-submit": "Criar conta",
+       "createacct-continue-submit": "Continuar criação de conta",
+       "createacct-another-continue-submit": "Continuar criação de conta",
        "createacct-benefit-heading": "{{SITENAME}} é feito por pessoas como você.",
        "createacct-benefit-body1": "{{PLURAL:$1|edição|edições}}",
        "createacct-benefit-body2": "{{PLURAL:$1|página|páginas}}",
        "noname": "Não especificou um nome de utilizador válido.",
        "loginsuccesstitle": "Autenticação bem sucedida",
        "loginsuccess": "'''Encontra-se agora ligado à {{SITENAME}} como \"$1\"'''.",
-       "nosuchuser": "Não existe nenhum utilizador com o nome \"$1\".\nOs nomes de utilizador são sensíveis à capitalização.\nVerifique a ortografia, ou [[Special:CreateAccount|crie uma nova conta]].",
+       "nosuchuser": "Não existe nenhum utilizador com o nome \"$1\".\nOs nomes de utilizador são sensíveis às letras maiúsculas e minúsculas.\nVerifique a ortografia, ou [[Special:CreateAccount|crie uma nova conta]].",
        "nosuchusershort": "Não existe um utilizador com o nome \"$1\". Verifique o nome que introduziu.",
        "nouserspecified": "Precisa de especificar um nome de utilizador.",
        "login-userblocked": "Este utilizador está bloqueado. Não é permitido o acesso.",
        "createacct-another-realname-tip": "O fornecimento do nome verdadeiro é opcional.\nSe optar por revelá-lo, ele será utilizado para atribuir-lhe crédito pelo seu trabalho.",
        "pt-login": "Entrar",
        "pt-login-button": "Entrar",
+       "pt-login-continue-button": "Continuar o início de sessão",
        "pt-createaccount": "Criar uma conta",
        "pt-userlogout": "Sair",
        "php-mail-error-unknown": "Erro desconhecido na função mail() do PHP",
        "botpasswords-newpassword": "A nova palavra-passe para iniciar sessão com <strong>$1</strong> é <strong>$2</strong>. Por favor, recorde-se dela para futura referência.</em>",
        "botpasswords-no-provider": "BotPasswordsSessionProvider não está disponível.",
        "resetpass_forbidden": "Não é possível alterar palavras-passe",
+       "resetpass_forbidden-reason": "As palavras-passe não podem ser alteradas: $1",
        "resetpass-no-info": "Precisa de iniciar sessão para aceder diretamente a esta página.",
        "resetpass-submit-loggedin": "Alterar palavra-passe",
        "resetpass-submit-cancel": "Cancelar",
        "resetpass-temp-password": "Palavra-passe temporária:",
        "resetpass-abort-generic": "A alteração da palavra-passe foi cancelada por uma extensão.",
        "resetpass-expired": "A sua palavra-passe expirou. Por favor, defina uma nova para iniciar a sessão.",
-       "resetpass-expired-soft": "A sua palavra-passe expirou e tem de ser redefinida. Escolha uma nova agora ou clique \"{{int:resetpass-submit-cancel}}\" para redefini-la mais tarde.",
-       "resetpass-validity-soft": "A sua palavra-passe não é válida: $1\n\nPor favor, escolha uma nova palavra-passe agora, ou clique em \"{{int:resetpass-submit-cancel}}\" para redefini-la mais tarde.",
+       "resetpass-expired-soft": "A sua palavra-passe expirou e tem de ser redefinida. Escolha uma nova agora ou clique \"{{int:authprovider-resetpass-skip-label}}\" para redefini-la mais tarde.",
+       "resetpass-validity-soft": "A sua palavra-passe não é válida: $1\n\nPor favor, escolha uma nova palavra-passe agora, ou clique em \"{{int:authprovider-resetpass-skip-label}}\" para redefini-la mais tarde.",
        "passwordreset": "Redefinir palavra-passe",
        "passwordreset-text-one": "Preencha este formulário para receber uma palavra-passe temporária por correio eletrónico.",
        "passwordreset-text-many": "{{PLURAL:$1|Preencha um dos campos para receber uma palavra-passe temporária por correio eletrónico.}}",
        "passwordreset-emailsentusername": "Se houver um endereço de correio eletrónico associado a esta conta, ser-lhe-á enviada uma mensagem para redefinir a sua palavra-passe.",
        "passwordreset-emailsent-capture": "Foi enviado um correio eletrónico para recuperação da palavra-passe, que é mostrado abaixo.",
        "passwordreset-emailerror-capture": "Foi gerado um correio eletrónico para redefinição da palavra-passe, mostrado abaixo, mas o seu envio para {{GENDER:$2|o utilizador|a utilizadora}} falhou: $1",
+       "passwordreset-invalideamil": "Correio eletrónico inválido",
+       "passwordreset-nodata": "Não foram fornecidos nome de utilizador(a) nem endereço de correio eletrónico",
        "changeemail": "Alterar ou remover o endereço de correio eletrónico",
        "changeemail-header": "Complete este formulário para alterar o seu endereço de correio eletrónico. Se quer eliminar a associação de qualquer endereço de correio eletrónico com a sua conta, deixe em branco o novo endereço de correio eletrónico ao submeter o formulário.",
        "changeemail-passwordrequired": "Necessita de introduzir a sua palavra-passe para confirmar esta alteração.",
        "minoredit": "Marcar como edição menor",
        "watchthis": "Vigiar esta página",
        "savearticle": "Gravar página",
+       "savechanges": "Gravar alterações",
        "publishpage": "Publicar página",
+       "publishchanges": "Publicar alterações",
        "preview": "Antevisão",
        "showpreview": "Antever resultado",
        "showdiff": "Mostrar alterações",
        "userpage-userdoesnotexist": "A conta \"<nowiki>$1</nowiki>\" não se encontra registada.\nVerifique se deseja realmente criar ou editar esta página, por favor.",
        "userpage-userdoesnotexist-view": "A conta de utilizador \"$1\" não está registada.",
        "blocked-notice-logextract": "Este utilizador está bloqueado.\nPara referência, o último registo de bloqueio é apresentado abaixo:",
-       "clearyourcache": "'''Nota:''' Após gravar, terá de limpar a ''cache'' do seu navegador para ver as alterações.\n*'''Firefox / Safari:''' Pressione ''Shift'' enquanto clica ''Recarregar'', ou pressione ''Ctrl-F5'' ou ''Ctrl-R'' (''⌘-R'' no Mac)\n*'''Google Chrome:''' Pressione ''Ctrl-Shift-R'' (''⌘-Shift-R'' no Mac)\n*'''Internet Explorer:''' Pressione ''Ctrl'' enquanto clica ''Recarregar'', ou pressione ''Ctrl-F5''\n*'''Opera:''' Limpe a ''cache'' em ''Ferramentas → Preferências'' (''Tools → Preferences'')",
+       "clearyourcache": "'''Nota:''' Após gravar, terá de limpar a ''cache'' do seu navegador para ver as alterações.\n*'''Firefox / Safari:''' Pressione ''Shift'' enquanto clica ''Recarregar'', ou pressione ''Ctrl-F5'' ou ''Ctrl-R'' (''⌘-R'' no Mac)\n*'''Google Chrome:''' Pressione ''Ctrl-Shift-R'' (''⌘-Shift-R'' no Mac)\n*'''Internet Explorer:''' Pressione ''Ctrl'' enquanto clica ''Recarregar'', ou pressione ''Ctrl-F5''\n*'''Opera:''' Ir para <em>Menu → Configurações</em> (<em>Opera → Preferências</em> no Mac) e, em seguida, <em>Privacidade e segurança → Limpar dados de navegação → Imagens e ficheiros em cache</em>.",
        "usercssyoucanpreview": "'''Dica:''' Use o botão \"{{int:showpreview}}\" para testar o seu novo CSS antes de gravar.",
        "userjsyoucanpreview": "'''Dica:''' Use o botão \"{{int:showpreview}}\" para testar o seu novo JavaScript antes de gravar.",
        "usercsspreview": "'''Lembre-se de que está apenas a antever o seu CSS particular.\nEste ainda não foi gravado!'''",
        "right-override-export-depth": "Exportar páginas incluindo páginas ligadas até uma profundidade de 5",
        "right-sendemail": "Enviar correio eletrónico a outros utilizadores",
        "right-passwordreset": "Ver mensagens de redefinição da palavra-passe",
-       "right-managechangetags": "Criar e eliminar [[Special:Tags|etiquetas]] da base de dados",
+       "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",
+       "right-deletechangetags": "Eliminar [[Special:Tags|etiquetas]] da base de dados",
        "grant-generic": "Conjunto de direitos \"$1\"",
        "grant-group-page-interaction": "Interagir com páginas",
        "grant-group-file-interaction": "Interagir com conteúdo multimédia",
        "rightslogtext": "Este é um registo de mudanças nos privilégios dos utilizadores.",
        "action-read": "ler esta página",
        "action-edit": "editar esta página",
-       "action-createpage": "criar páginas",
-       "action-createtalk": "criar páginas de discussão",
+       "action-createpage": "criar esta página",
+       "action-createtalk": "criar esta página de discussão",
        "action-createaccount": "criar esta conta de utilizador",
        "action-autocreateaccount": "criar automaticamente esta conta de utilizador externa",
        "action-history": "ver histórico desta página",
        "action-viewmyprivateinfo": "ver a sua informação privada",
        "action-editmyprivateinfo": "editar a sua informação privada",
        "action-editcontentmodel": "editar o modelo de conteúdo de uma página",
-       "action-managechangetags": "criar e eliminar etiquetas da base de dados",
+       "action-managechangetags": "criar e (des)ativar etiquetas",
        "action-applychangetags": "aplicar etiquetas juntamente com as suas alterações",
        "action-changetags": "adicionar e remover etiquetas arbitrárias em revisões e entradas de registo individuais",
        "nchanges": "$1 {{PLURAL:$1|alteração|alterações}}",
        "uploaded-script-svg": "Encontrou um elemento scriptable no ficheiro \"$1\" SVG carregado.",
        "uploaded-hostile-svg": "Encontrou-se um código CSS não seguro no elemento de estilo do arquivo SVG carregado.",
        "uploaded-event-handler-on-svg": "Não está permitido configurar atributos controladores de eventos <code>$1=\"$2\"</code> nos arquivos SVG.",
+       "uploaded-image-filter-svg": "Foi encontrado um filtro de imagem com a URL: <code>&lt;$1 $2=\"$3\"&gt;</code> no ficheiro SVG carregado.",
        "uploadscriptednamespace": "Este ficheiro SVG contém um domínio que não é permitido \"$1\".",
        "uploadinvalidxml": "Erro detectado na análise do XML do ficheiro carregado.",
        "uploadvirus": "O ficheiro contém um vírus! \nDetalhes: $1",
        "upload-options": "Opções de carregamento",
        "watchthisupload": "Vigiar este ficheiro",
        "filewasdeleted": "Um ficheiro com este nome foi carregado anteriormente e subsequentemente eliminado.\nDeverá verificar o $1 antes de voltar a enviá-lo.",
+       "filename-thumb-name": "Isto parece ser o título de uma miniatura. Por favor, não volte a carregar miniaturas na mesma wiki. Se este não é o caso, corrija o nome do ficheiro por um mais significativo, e que não possua o prefixo de miniatura.",
        "filename-bad-prefix": "O nome do ficheiro que está a enviar começa por '''\"$1\"''', um nome pouco explicativo, normalmente originado de forma automática por câmaras digitais. Escolha um nome de ficheiro mais explicativo, por favor.",
        "filename-prefix-blacklist": " #<!-- deixe esta linha exactamente como está --> <pre>\n# A sintaxe é a seguinte:\n#   * Tudo a partir do carácter \"#\" até ao fim da linha é um comentário\n#   * Todas as linhas não vazias são um prefixo para nomes de ficheiros típicos atribuídos automaticamente por câmaras digitais\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # alguns telefones móveis\nIMG # genérico\nJD # Jenoptik\nMGP # Pentax\nPICT # misc.\n #</pre> <!-- deixe esta linha exactamente como está -->",
        "upload-proto-error": "Protocolo incorreto",
        "upload-too-many-redirects": "A URL continha demasiados redirecionamentos",
        "upload-http-error": "Ocorreu um erro HTTP: $1",
        "upload-copy-upload-invalid-domain": "Não é possível realizar carregamentos remotos neste domínio.",
+       "upload-foreign-cant-upload": "Esta wiki não está configurada para carregar ficheiros para o repositório externo solicitado.",
        "upload-dialog-title": "Carregar ficheiro",
        "upload-dialog-button-cancel": "Cancelar",
        "upload-dialog-button-done": "Feito",
        "apihelp-no-such-module": "Módulo \"$1\" não encontrado.",
        "apisandbox": "Testes da API",
        "apisandbox-api-disabled": "A API está desativada neste site.",
-       "apisandbox-intro": "Use esta página para fazer experiências com a <strong>API de serviços da web do MediaWiki</strong>.\nConsulte a [[mw:API:Main page|documentação da API]] para informações sobre o uso da API. Exemplo: [//www.mediawiki.org/wiki/API#A_simple_example obter o conteúdo da Página Principal]. Selecione uma operação para ver mais exemplos.\n\nNote que, embora esta seja uma área de testes, as operações que executar nesta página podem modificar a wiki.",
+       "apisandbox-intro": "Use esta página para fazer experiências com a <strong>API de serviços da web do MediaWiki</strong>.\nConsulte a [[mw:API:Main page|documentação da API]] para informações sobre o uso da API. Exemplo: [https://www.mediawiki.org/wiki/API#A_simple_example obter o conteúdo da Página Principal]. Selecione uma operação para ver mais exemplos.\n\nNote que, embora esta seja uma área de testes, as operações que executar nesta página podem modificar a wiki.",
        "apisandbox-fullscreen": "Expandir painel",
        "apisandbox-fullscreen-tooltip": "Expandir o painel da página de testes para preencher a janela do navegador.",
        "apisandbox-unfullscreen": "Mostrar página",
        "rollbacklinkcount": "reverter $1 {{PLURAL:$1|edição|edições}}",
        "rollbacklinkcount-morethan": "reverter mais do que $1 {{PLURAL:$1|edição|edições}}",
        "rollbackfailed": "A reversão falhou",
+       "rollback-missingparam": "Faltam parâmetros obrigatórios no pedido.",
        "cantrollback": "Não foi possível reverter a edição; o último contribuidor é o único autor desta página",
        "alreadyrolled": "Não foi possível reverter as edições de [[:$1]] por [[User:$2|$2]] ([[User talk:$2|discussão]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]);\nalguém editou ou já reverteu a página.\n\nA última edição foi de [[User:$3|$3]] ([[User talk:$3|discussão]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
        "editcomment": "O resumo da edição era: <em$1</em>.",
        "revertpage": "Foram revertidas as edições de [[Special:Contributions/$2|$2]] ([[User talk:$2|disc]]) para a última revisão de [[User:$1|$1]]",
        "revertpage-nouser": "Foram revertidas as edições de um utilizador oculto para a última revisão de {{GENDER:$1|[[User:$1|$1]]}}",
        "rollback-success": "Foram revertidas as edições de $1, com o conteúdo passando a estar como na última edição de $2.",
+       "rollback-success-notify": "Revertidas as edições de $1;\nMudança para a última revisão de $2. [$3 Mostrar alterações]",
        "sessionfailure-title": "Erro de sessão",
        "sessionfailure": "Foram detectados problemas com a sua sessão;\na operação foi cancelada como medida de proteção contra a interceptação de sessões.\nVolte à página anterior, recarregue-a e tente novamente.",
        "changecontentmodel": "Editar o modelo de conteúdo de uma página",
        "sp-contributions-username": "Endereço de IP ou utilizador(a):",
        "sp-contributions-toponly": "Mostrar apenas as edições mais recentes",
        "sp-contributions-newonly": "Mostrar só edições que são criações de páginas",
+       "sp-contributions-hideminor": "Ocultar edições menores",
        "sp-contributions-submit": "Pesquisar",
        "whatlinkshere": "Páginas afluentes",
        "whatlinkshere-title": "Páginas com ligações para \"$1\"",
        "whatlinkshere-links": "← afluentes",
        "whatlinkshere-hideredirs": "$1 redirecionamentos",
        "whatlinkshere-hidetrans": "$1 transclusões",
-       "whatlinkshere-hidelinks": "$1 links",
+       "whatlinkshere-hidelinks": "$1 ligações",
        "whatlinkshere-hideimages": "$1 links para arquivos",
        "whatlinkshere-filters": "Filtros",
        "whatlinkshere-submit": "Ir",
        "allmessagesname": "Nome",
        "allmessagesdefault": "Texto padrão",
        "allmessagescurrent": "Texto atual",
-       "allmessagestext": "Esta é a lista das mensagens de sistema disponíveis no domínio MediaWiki.\nSe deseja colaborar na localização genérica do MediaWiki, visite [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] e a [//translatewiki.net translatewiki.net].",
+       "allmessagestext": "Esta é a lista das mensagens de sistema disponíveis no domínio MediaWiki.\nSe deseja colaborar na localização genérica do MediaWiki, visite [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] e a [https://translatewiki.net translatewiki.net].",
        "allmessagesnotsupportedDB": "Esta página não pode ser usada porque a <strong>$wgUseDatabaseMessages</strong> foi desativada.",
        "allmessages-filter-legend": "Filtro",
        "allmessages-filter": "Filtrar pelo estado de personalização:",
        "tooltip-ca-nstab-category": "Ver a página de categoria",
        "tooltip-minoredit": "Marcar como edição menor",
        "tooltip-save": "Gravar as alterações",
+       "tooltip-publish": "Publicar as suas alterações",
        "tooltip-preview": "Antever as suas alterações. Use antes de gravar, por favor!",
        "tooltip-diff": "Mostrar alterações que fez a este texto.",
        "tooltip-compareselectedversions": "Ver as diferenças entre as duas versões selecionadas desta página.",
        "confirmemail_body_set": "Alguém, provavelmente você a partir do endereço IP $1,\ndefiniu o seu endereço de correio eletrónico como correio da conta \"$2\" em {{SITENAME}}.\n\nPara confirmar que esta conta é realmente sua e reativar\nas funcionalidades de correio eletrónico em {{SITENAME}},\nabra a seguinte ligação no seu navegador:\n\n$3\n\nCaso a conta *não* lhe pertença, abra a seguinte ligação\npara cancelar a confirmação do endereço de correio eletrónico:\n\n$5\n\nEste código de confirmação expira a $4.",
        "confirmemail_invalidated": "Confirmação de endereço de correio eletrónico cancelada",
        "invalidateemail": "Cancelar confirmação do correio eletrónico",
+       "notificationemail_subject_changed": "O endereço de correio eletrónico registado em {{SITENAME}} foi alterado",
+       "notificationemail_subject_removed": "O endereço de correio eletrónico registado em {{SITENAME}} foi removido",
+       "notificationemail_body_changed": "Alguém, provavelmente você, a partir do endereço IP $1, alterou o endereço de correio eletrónico da conta \"$2\" para \"$3\" em {{SITENAME}}.\n\nCaso não tenha alterado, contacte imediatamente um administrador do sítio.",
+       "notificationemail_body_removed": "Alguém, provavelmente você, a partir do endereço IP $1, eliminou o endereço de correio eletrónico da conta \"$2\" em {{SITENAME}}.\n\nCaso não tenha alterado, contacte imediatamente um administrador do sítio.",
        "scarytranscludedisabled": "[Transclusão interwikis foi impossibilitada]",
        "scarytranscludefailed": "[Não foi possível obter a predefinição a partir de $1]",
        "scarytranscludefailed-httpstatus": "[Não foi possível obter a predefinição a partir de $1: HTTP $2]",
        "confirm-watch-top": "Adicionar esta página à lista de páginas vigiadas?",
        "confirm-unwatch-button": "OK",
        "confirm-unwatch-top": "Remover esta página da lista de páginas vigiadas?",
+       "confirm-rollback-button": "OK",
+       "confirm-rollback-top": "Reverter as edições desta página?",
        "quotation-marks": "\"$1\"",
        "imgmultipageprev": "← página anterior",
        "imgmultipagenext": "página seguinte →",
        "feedback-useragent": "Agente de utilizador:",
        "searchsuggest-search": "Pesquisa",
        "searchsuggest-containing": "contendo...",
+       "api-error-autoblocked": "O seu endereço de IP foi bloqueado automaticamente, pois foi utilizado por um utilizador bloqueado.",
        "api-error-badaccess-groups": "Não tem permissão para enviar ficheiros para esta wiki.",
        "api-error-badtoken": "Erro interno: Chave incorrecta.",
+       "api-error-blocked": "Foi bloqueado de editar.",
        "api-error-copyuploaddisabled": "O carregamento de ficheiros por URL não foi possibilitado neste servidor.",
        "api-error-duplicate": "Já {{PLURAL:$1|existia outro ficheiro|existiam outros ficheiro}} na wiki com o mesmo conteúdo.",
        "api-error-duplicate-archive": "Já {{PLURAL:$1|estava outro ficheiro|estavam outros ficheiros}} no  site com o mesmo conteúdo, mas {{PLURAL:$1|foi|foram}} eliminados.",
        "mw-widgets-dateinput-placeholder-month": "AAAA-MM",
        "mw-widgets-titleinput-description-new-page": "a página ainda não existe.",
        "mw-widgets-titleinput-description-redirect": "redirecionar para $1",
-       "api-error-blacklisted": "Escolha um título diferente e descritivo, por favor.",
        "sessionprovider-generic": "Sessões $1",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "sessões baseadas em cookie",
        "sessionprovider-nocookies": "Os cookies podem estar desativados. Certifique-se de que os cookies estão ativados e inicie novamente.",
        "log-action-filter-newusers": "Tipo de criação de conta:",
        "log-action-filter-patrol": "Tipo de patrulha:",
        "log-action-filter-protect": "Tipo de proteção:",
-       "log-action-filter-rights": "Tipo de alteração de privilégio",
-       "log-action-filter-suppress": "Tipo de supressão",
+       "log-action-filter-rights": "Tipo de alteração de privilégio:",
+       "log-action-filter-suppress": "Tipo de supressão:",
        "log-action-filter-upload": "Tipo de carregamento:",
        "log-action-filter-all": "Todas",
        "log-action-filter-block-block": "Bloquear",
        "log-action-filter-suppress-event": "Supressão de registo",
        "log-action-filter-suppress-delete": "Supressão de página",
        "log-action-filter-upload-upload": "Novo carregamento",
-       "log-action-filter-upload-overwrite": "Recarregar"
+       "log-action-filter-upload-overwrite": "Recarregar",
+       "authmanager-create-disabled": "A criação de contas está desativada.",
+       "authmanager-create-from-login": "Para criar a sua conta, por favor, preencha os campos abaixo.",
+       "authmanager-authplugin-setpass-bad-domain": "Domínio inválido.",
+       "authmanager-userdoesnotexist": "A conta de utilizador(a) \"$1\" não está registada.",
+       "authmanager-username-help": "Nome de utilizador(a) para autenticação.",
+       "authmanager-password-help": "Palavra-passe para autenticação.",
+       "authmanager-domain-help": "Domínio para a autenticação externa.",
+       "authmanager-retype-help": "A palavra-passe novamente para confirmação.",
+       "authmanager-email-label": "Correio eletrónico",
+       "authmanager-email-help": "Endereço de correio eletrónico",
+       "authmanager-realname-label": "Nome verdadeiro",
+       "authmanager-realname-help": "Nome verdadeiro do(a) utilizador(a)",
+       "authprovider-resetpass-skip-label": "Ignorar",
+       "authpage-cannot-login": "Não é possível iniciar sessão.",
+       "authpage-cannot-login-continue": "Não é possível continuar a iniciar sessão. A sua sessão pode ter expirado.",
+       "authpage-cannot-create": "Não é possível iniciar a criação da conta.",
+       "authpage-cannot-create-continue": "Não é possível continuar a criação da conta. A sua sessão pode ter expirado.",
+       "cannotauth-not-allowed-title": "Permissão negada",
+       "cannotauth-not-allowed": "Não possui permissão para utilizar esta página",
+       "changecredentials": "Alterar credenciais",
+       "changecredentials-submit": "Alterar credenciais",
+       "changecredentials-invalidsubpage": "$1 não é um tipo de credencial válido.",
+       "changecredentials-success": "As suas credenciais foram alteradas.",
+       "removecredentials": "Remover credenciais",
+       "removecredentials-submit": "Remover credenciais",
+       "removecredentials-invalidsubpage": "$1 não é um tipo de credencial válido.",
+       "removecredentials-success": "As suas credenciais foram removidas.",
+       "credentialsform-provider": "Tipo de credenciais:",
+       "credentialsform-account": "Nome da conta:",
+       "cannotlink-no-provider-title": "Não existem contas vinculáveis",
+       "cannotlink-no-provider": "Não existem contas vinculáveis",
+       "linkaccounts": "Associar contas",
+       "linkaccounts-success-text": "A conta foi associada.",
+       "linkaccounts-submit": "Associar contas",
+       "unlinkaccounts": "Desassociar contas",
+       "unlinkaccounts-success": "A conta foi desassociada."
 }
index 069b685..505ddcd 100644 (file)
        "subject": "Used as label for input box in the EditPage page.\n\nSee also:\n* {{msg-mw|Summary}}\n{{Identical|Subject}}",
        "minoredit": "Text above Save page button in editor\n\nSee also:\n* {{msg-mw|Minoredit}}\n* {{msg-mw|Accesskey-minoredit}}\n* {{msg-mw|Tooltip-minoredit}}",
        "watchthis": "Text of checkbox above {{msg-mw|Showpreview}} button in editor.\n\nSee also:\n* {{msg-mw|Watchthis}}\n* {{msg-mw|Accesskey-watch}}\n* {{msg-mw|Tooltip-watch}}\n{{Identical|Watch this page}}",
-       "savearticle": "Text on the Save page button. See also {{msg-mw|showpreview}} and {{msg-mw|showdiff}} for the other buttons.\n\nSee also:\n* {{msg-mw|Savearticle}}\n* {{msg-mw|Accesskey-save}}\n* {{msg-mw|Tooltip-save}}\n{{Identical|Save page}}",
-       "publishpage": "Text on the button to save the changes to the page. It should be an action which is short and makes clear that the effect is immediate and public.\n\nSee also {{msg-mw|showpreview}} and {{msg-mw|showdiff}} for the other buttons.\n\nNote: This i18n is being introduced in advance of usage to provide extra time for translators.\n\nSee also:\n* {{msg-mw|Accesskey-publish}}\n* {{msg-mw|Tooltip-publish}}\n{{Identical|Publish page}}",
+       "savearticle": "Text on the button to create a new page. It should be an action which is short and makes clear that the effect is immediate and public.\n\nSee also {{msg-mw|showpreview}} and {{msg-mw|showdiff}} for the other buttons, and {{msg-mw|savechanges}} for the label for the button when the page is being modified.\n\nSee also:\n* {{msg-mw|Accesskey-publish}}\n* {{msg-mw|Tooltip-publish}}\n{{Identical|Save page}}",
+       "savechanges": "Text on the button to save the changes to an existing page. It should be an action which is short and makes clear that the effect is immediate and public.\n\nSee also {{msg-mw|showpreview}} and {{msg-mw|showdiff}} for the other buttons, and {{msg-mw|savearticle}} for the label for the button when the page is being modified.\n\nNote: This i18n is being introduced in advance of usage to provide extra time for translators.\n\nSee also:\n* {{msg-mw|Accesskey-publish}}\n* {{msg-mw|Tooltip-publish}}\n{{Identical|Save changes}}",
+       "publishpage": "Text on the button to create a new page on a public wiki. It should be an action which is short and makes clear that the effect is immediate and public.\n\nSee also {{msg-mw|showpreview}} and {{msg-mw|showdiff}} for the other buttons, and {{msg-mw|publishchanges}} for the label for the button when the page is being modified.\n\nNote: This i18n is being introduced in advance of usage to provide extra time for translators.\n\nSee also:\n* {{msg-mw|Accesskey-publish}}\n* {{msg-mw|Tooltip-publish}}\n{{Identical|Publish page}}",
+       "publishchanges": "Text on the button to save the changes to an existing page on a public wiki. It should be an action which is short and makes clear that the effect is immediate and public.\n\nSee also {{msg-mw|showpreview}} and {{msg-mw|showdiff}} for the other buttons, and {{msg-mw|publishchanges}} for the label for the button when the page is being created.\n\nNote: This i18n is being introduced in advance of usage to provide extra time for translators.\n\nSee also:\n* {{msg-mw|Accesskey-publish}}\n* {{msg-mw|Tooltip-publish}}\n{{Identical|Publish changes}}",
        "preview": "The title of the Preview page shown after clicking the \"Show preview\" button in the edit page. Since this is a heading, it should probably be translated as a noun and not as a verb.\n\n{{Identical|Preview}}",
        "showpreview": "The text of the button to preview the page you are editing. See also {{msg-mw|showdiff}} and {{msg-mw|savearticle}} for the other buttons.\n\nSee also:\n* {{msg-mw|Showpreview}}\n* {{msg-mw|Accesskey-preview}}\n* {{msg-mw|Tooltip-preview}}\n{{Identical|Show preview}}",
        "showdiff": "Button below the edit page. See also {{msg-mw|Showpreview}} and {{msg-mw|Savearticle}} for the other buttons.\n\nSee also:\n* {{msg-mw|Showdiff}}\n* {{msg-mw|Accesskey-diff}}\n* {{msg-mw|Tooltip-diff}}\n{{Identical|Show change}}",
        "editpage-notsupportedcontentformat-title": "Title of error page shown when using an incompatible format on EditPage.\n\nUsed as title for the following error message:\n* {{msg-mw|Editpage-notsupportedcontentformat-text}}.",
        "editpage-notsupportedcontentformat-text": "Error message shown when using an incompatible format on EditPage.\n\nThe title for this error is {{msg-mw|Editpage-notsupportedcontentformat-title}}.\n\nParameters:\n* $1 - the format id\n* $2 - the content model name",
        "content-model-wikitext": "Name for the wikitext content model, used when decribing what type of content a page contains.\n\nThis message is substituted in:\n*{{msg-mw|Bad-target-model}}\n*{{msg-mw|Content-not-allowed-here}}",
-       "content-model-text": "Name for the plain text 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|Plain text}}",
+       "content-model-text": "Name for the plain text content model, used when decribing what type of content a page contains. Plaintext means that the content of the page will be rendered as is like:\n\n<nowiki>This is [[plain text]]. <a href=\"https://www.mediawiki.org/\">Really!</a></nowiki>\n\nThis message is substituted in:\n*{{msg-mw|Bad-target-model}}\n*{{msg-mw|Content-not-allowed-here}}\n\n{{Identical|Plain text}}",
        "content-model-javascript": "Name for the JavaScript content model, used when decribing what type of content a page contains.\n\nThis message is substituted in:\n*{{msg-mw|Bad-target-model}}\n*{{msg-mw|Content-not-allowed-here}}",
        "content-model-css": "Name for the CSS content model, used when decribing what type of content a page contains.\n\nThis message is substituted in:\n*{{msg-mw|Bad-target-model}}\n*{{msg-mw|Content-not-allowed-here}}",
        "content-model-json": "Name for the JSON content model, used when decribing what type of content a page contains.\n\nThis message is substituted in:\n*{{msg-mw|Bad-target-model}}\n*{{msg-mw|Content-not-allowed-here}}",
        "content-json-empty-object": "Used to represent an object with no properties on a JSON content model page.",
        "content-json-empty-array": "Used to represent an array with no values on a JSON content model page.",
+       "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.",
+       "deprecated-self-close-category-desc": "Invalid self-closed HTML tag category description. Shown on [[Special:TrackingCategories]].\n\nSee also:\n* {{msg-mw|deprecated-self-close-category}}",
        "duplicate-args-warning": "If a page calls a template and specifies the same argument more than once, such as <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> or <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>, this warning is displayed when previewing.\n\nParameters:\n* $1 - The calling page\n* $2 - The called template\n* $3 - The name of the duplicated argument",
        "duplicate-args-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 template calls that use duplicates of arguments, such as <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> or <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "duplicate-args-category-desc": "Duplicate arguments category description. Shown on [[Special:TrackingCategories]].\n\nSee also:\n* {{msg-mw|Duplicate-args-category}}",
        "upload-http-error": "Parameters:\n* $1 - error message",
        "upload-copy-upload-invalid-domain": "Error message shown if a user is trying to upload (i.e. copy) a file from a website that is not in $wgCopyUploadsDomains (if set).\n\nSee also:\n* {{msg-mw|http-invalid-url}}\n* {{msg-mw|tmp-create-error}}\n* {{msg-mw|tmp-write-error}}",
        "upload-foreign-cant-upload": "Error message shown when a user is trying to upload a file to foreign repository that is not configured to receive file uploads from current wiki.",
+       "upload-foreign-cant-load-config": "Error message shown when a user is trying to upload a file to foreign repository and the foreign wiki is down or otherwise unable to respond to API requests.",
+       "upload-dialog-disabled": "Message shown when the upload dialog functionality is disabled. (This doesn't mean that uploads in general are disabled, only this specific method of uploading.)",
        "upload-dialog-title": "Title of the upload dialog box\n{{Identical|Upload file}}",
        "upload-dialog-button-cancel": "Button to cancel the dialog\n{{Identical|Cancel}}",
        "upload-dialog-button-done": "Button to close the dialog once upload is complete\n{{Identical|Done}}",
        "prefixindex-namespace": "The page title of [[Special:PrefixIndex]] limited to a specific namespace. Similar to {{msg-mw|allinnamespace}}. $1 is the name of the namespace",
        "prefixindex-summary": "{{notranslate}}\n\nThe summary displayed at the top of [[Special:Prefixindex]]. [[mw:Manual:Interface/Special pages summary|MediaWiki manual]].",
        "prefixindex-submit": "Label on submit button in [[Special:PrefixIndex]]\n{{Identical|Show}}",
-       "prefixindex-strip": "Label for a checkbox. If the checkbox is checked, the prefix searched will be removed from the title displayed in the list. Used in [[Special:PrefixIndex]].\n\nSee the following search results:\n* [{{canonicalurl:Special:PrefixIndex|prefix=Doc&namespace=10}} Special:PrefixIndex?prefix=Doc&namespace=10] (prefix NOT stripped)\n* [{{canonicalurl:Special:PrefixIndex|prefix=Doc&namespace=10&stripprefix=1}} Special:PrefixIndex?prefix=Doc&namespace=10&stripprefix=1] (prefix stripped)",
+       "prefixindex-strip": "Label for a checkbox. If the checkbox is checked, the prefix searched (do not confuse with prefix of the namespace) will be removed from the title displayed in the list. Used in [[Special:PrefixIndex]].\n\nSee the following search results:\n* [{{canonicalurl:Special:PrefixIndex|prefix=Doc&namespace=10}} Special:PrefixIndex?prefix=Doc&namespace=10] (prefix NOT stripped)\n* [{{canonicalurl:Special:PrefixIndex|prefix=Doc&namespace=10&stripprefix=1}} Special:PrefixIndex?prefix=Doc&namespace=10&stripprefix=1] (prefix stripped)",
        "shortpages": "{{doc-special|ShortPages}}",
        "shortpages-summary": "{{notranslate}}\nThe summary displayed at the top of [[Special:Shortpages]]. [[mw:Manual:Interface/Special pages summary|mw manual]].",
        "longpages": "{{doc-special|LongPages}}",
        "apisandbox-jsonly": "Displayed as an error message if the browser does not have JavaScript enabled.",
        "apisandbox-api-disabled": "Displayed as an error message if the API is disabled on this site.",
        "apisandbox-intro": "Displayed (from JavaScript) as a header on [[Special:ApiSandbox]].",
-       "apisandbox-fullscreen": "JavaScript button label for enabling full-page mode.",
+       "apisandbox-fullscreen": "JavaScript button label for enabling full-page mode.\n\nSee https://phabricator.wikimedia.org/T129632#2465838 for details.",
        "apisandbox-fullscreen-tooltip": "Tooltip for the {{msg-mw|apisandbox-fullscreen}} button.",
-       "apisandbox-unfullscreen": "JavaScript button label for disabling full-page mode.",
+       "apisandbox-unfullscreen": "JavaScript button label for disabling full-page mode.\n\nSee https://phabricator.wikimedia.org/T129632#2465838 for details.",
        "apisandbox-unfullscreen-tooltip": "Tooltip for the {{msg-mw|apisandbox-unfullscreen}} button.",
        "apisandbox-submit": "JavaScript button label for submitting the request.",
        "apisandbox-reset": "JavaScript button label for clearing the form.\n{{Identical|Clear}}",
        "revertpage": "Parameters:\n* $1 - username 1\n* $2 - username 2\n* $3 - (Optional) revision ID of the revision reverted to\n* $4 - (Optional) timestamp of the revision reverted to\n* $5 - (Optional) revision ID of the revision reverted from\n* $6 - (Optional) timestamp of the revision reverted from\nSee also:\n* {{msg-mw|Revertpage-nouser}}\n{{Identical|Revert}}",
        "revertpage-nouser": "This is a confirmation message a user sees after reverting, when the username of the version is hidden with RevisionDelete.\n\nIn other cases the message {{msg-mw|Revertpage}} is used.\n\nParameters:\n* $1 - username 1, can be used for GENDER\n* $2 - (Optional) username 2\n* $3 - (Optional) revision ID of the revision reverted to\n* $4 - (Optional) timestamp of the revision reverted to\n* $5 - (Optional) revision ID of the revision reverted from\n* $6 - (Optional) timestamp of the revision reverted from",
        "rollback-success": "This message shows up on screen after successful revert (generally visible only to admins). $1 describes user whose changes have been reverted, $2 describes user which produced version, which replaces reverted version.\n{{Identical|Revert}}\n{{Identical|Rollback}}",
-       "rollback-success-notify": "Notification shown after a successful revert.\n* $1 - User whose changes have been reverted\n* $2 - User that made the edit that was restored\n* $3 - Url to the diff of the rollback\nSee also:\n*{{mw-msg|showdiff}}\n{{Identical|rollback-success}}\n{{Format|jquerymsg}}",
+       "rollback-success-notify": "Notification shown after a successful revert.\n* $1 - User whose changes have been reverted\n* $2 - User that made the edit that was restored\n* $3 - Url to the diff of the rollback\nSee also:\n* {{msg-mw|showdiff}}\n{{Identical|rollback-success}}\n{{Format|jquerymsg}}",
        "sessionfailure-title": "Used as title of the error message {{msg-mw|Sessionfailure}}.",
        "sessionfailure": "Used as error message.\n\nThe title for this error message is {{msg-mw|Sessionfailure-title}}.",
        "changecontentmodel": "Title of the change content model special page",
        "sp-contributions-username": "This message appears whenever someone requests [[Special:Contributions]].\n{{Identical|IP address or username}}",
        "sp-contributions-toponly": "A checkbox at [[Special:Mycontributions|Special:Contributions]]",
        "sp-contributions-newonly": "Used as checkbox label at [[Special:Mycontributions|Special:Contributions]].\n\n\"page creation\" means the \"first revision\" of a page.\n\nPreceded by {{msg-mw|Sp-contributions-toponly}}.",
+       "sp-contributions-hideminor": "Used as checkbox label at [[Special:Mycontributions|Special:Contributions]].\n\nSee also:\n* {{msg-mw|Tog-hideminor}}",
        "sp-contributions-submit": "{{Identical|Search}}",
        "sp-contributions-explain": "{{optional}}",
        "sp-contributions-footer": "{{ignored}}This is the footer for users that are not anonymous or newbie on [[Special:Contributions]].",
        "tooltip-ca-nstab-category": "Tooltip shown when hovering over the {{msg-mw|Nstab-category}} tab.\n\nSee also:\n* {{msg-mw|Nstab-category}}\n* {{msg-mw|Accesskey-ca-nstab-category}}\n* {{msg-mw|Tooltip-ca-nstab-category}}",
        "tooltip-minoredit": "Tooltip shown when hovering over the \"{{msg-mw|Minoredit}}\" link below the edit form.\n\nSee also:\n* {{msg-mw|Minoredit}}\n* {{msg-mw|Accesskey-minoredit}}\n* {{msg-mw|Tooltip-minoredit}}",
        "tooltip-save": "This is the text that appears when you hover the mouse over {{msg-mw|Savearticle}} button on the edit page.\n\nSee also:\n* {{msg-mw|Savearticle}}\n* {{msg-mw|Accesskey-save}}\n* {{msg-mw|Tooltip-save}}",
-       "tooltip-publish": "This is the text that appears when you hover the mouse over {{msg-mw|publishpage}} button on the edit page.\n\nNote: This i18n is being introduced in advance of usage to provide extra time for translators.\n\nSee also:\n* {{msg-mw|publishpage}}\n* {{msg-mw|Accesskey-publish}}\n{{Identical|Publish page}}",
+       "tooltip-publish": "This is the text that appears when you hover the mouse over {{msg-mw|publishpage}} button on the edit page.\n\nNote: This i18n is being introduced in advance of usage to provide extra time for translators.\n\nSee also:\n* {{msg-mw|publishpage}}\n* {{msg-mw|Accesskey-publish}}",
        "tooltip-preview": "Tooltip shown when hovering over {{msg-mw|Showpreview}} button.\n\nIf the length of the translated message is over 60 characters (including spaces) then the end of the message will be cut off when using Firefox 2.0.0.7 browser, Linux operating system and the Monobook skin.\n\nSee also:\n* {{msg-mw|Showpreview}}\n* {{msg-mw|Accesskey-preview}}\n* {{msg-mw|Tooltip-preview}}",
        "tooltip-diff": "This is the text (tooltip) that appears when you hover the mouse over {{msg-mw|Showdiff}} button on the edit page.\n\nSee also:\n* {{msg-mw|Showdiff}}\n* {{msg-mw|Accesskey-diff}}\n* {{msg-mw|Tooltip-diff}}",
        "tooltip-compareselectedversions": "Tooltip of {{msg-mw|Compareselectedversions}} (which is used as button in history pages).\n\nSee also:\n* {{msg-mw|Compareselectedversions}}\n* {{msg-mw|Accesskey-compareselectedversions}}\n* {{msg-mw|Tooltip-compareselectedversions}}",
        "exif-spectralsensitivity": "Exif is a format for storing metadata in image files. See this [[w:Exchangeable_image_file_format|Wikipedia article]] and the example at the bottom of [[commons:File:Phalacrocorax-auritus-020.jpg|this page on Commons]]. The tags are explained [http://www.awaresystems.be/imaging/tiff/tifftags/privateifd/exif.html briefly] and [http://www.kodak.com/global/plugins/acrobat/en/service/digCam/exifStandard2.pdf in further detail].\n\nHow sensitive each channel (colour) of the photo is to light. This tag is almost never used.",
        "exif-isospeedratings": "Exif is a format for storing metadata in image files. See this [[w:Exchangeable_image_file_format|Wikipedia article]] and the example at the bottom of [[commons:File:Phalacrocorax-auritus-020.jpg|this page on Commons]]. The tags are explained [http://www.awaresystems.be/imaging/tiff/tifftags/privateifd/exif.html briefly] and [http://www.kodak.com/global/plugins/acrobat/en/service/digCam/exifStandard2.pdf in further detail].\n\nThe iso speed of the film used in the camera. This is basically a measure of how sensitive the film in the camera is to light.",
        "exif-shutterspeedvalue": "Exif is a format for storing metadata in image files. See this [[w:Exchangeable_image_file_format|Wikipedia article]] and the example at the bottom of [[commons:File:Phalacrocorax-auritus-020.jpg|this page on Commons]]. The tags are explained [http://www.awaresystems.be/imaging/tiff/tifftags/privateifd/exif.html briefly] and [http://www.kodak.com/global/plugins/acrobat/en/service/digCam/exifStandard2.pdf in further detail].\n\n[[w:Shutter_speed|Shutter speed]] is the time that the camera shutter is open.\n\nThis is the shutter speed measured in APEX units (negative base 2 log of shutter speed in seconds). See {{msg-mw|exif-exposuretime}} for this property in more traditional units of seconds.",
-       "exif-aperturevalue": "Exif is a format for storing metadata in image files. See this [[w:Exchangeable_image_file_format|Wikipedia article]] and the example at the bottom of [[commons:File:Phalacrocorax-auritus-020.jpg|this page on Commons]]. The tags are explained [http://www.awaresystems.be/imaging/tiff/tifftags/privateifd/exif.html briefly] and [http://www.kodak.com/global/plugins/acrobat/en/service/digCam/exifStandard2.pdf in further detail].\n\nThe [[w:Aperture|aperture]] of a camera is the hole through which light shines. This message can be translated 'Aperture width'. Note, this is measured in APEX units which is 2*log<sub>2</sub>(f-number) . See {{msg-mw|exif-fnumber}} for this value in more traditional units.",
+       "exif-aperturevalue": "{{exif-qqq}}\n\nThe [[w:Aperture|aperture]] of a camera is the hole through which light shines. This message can be translated 'Aperture width'. Note, this is measured in APEX units which is 2*log<sub>2</sub>(f-number) . See {{msg-mw|exif-fnumber}} for this value in more traditional units.",
        "exif-brightnessvalue": "Exif is a format for storing metadata in image files. See this [[w:Exchangeable_image_file_format|Wikipedia article]] and the example at the bottom of [[commons:File:Phalacrocorax-auritus-020.jpg|this page on Commons]]. The tags are explained [http://www.awaresystems.be/imaging/tiff/tifftags/privateifd/exif.html briefly] and [http://www.kodak.com/global/plugins/acrobat/en/service/digCam/exifStandard2.pdf in further detail].\n\nHow intense the illumination of the scene photographed is. Measured in APEX brightness units. See Annex C of Exif standard for details on the measurement system in use.",
        "exif-exposurebiasvalue": "Exif is a format for storing metadata in image files. See this [[w:Exchangeable_image_file_format|Wikipedia article]] and the example at the bottom of [[commons:File:Phalacrocorax-auritus-020.jpg|this page on Commons]]. The tags are explained [http://www.awaresystems.be/imaging/tiff/tifftags/privateifd/exif.html briefly] and [http://www.kodak.com/global/plugins/acrobat/en/service/digCam/exifStandard2.pdf in further detail].\n\nAnother term for [[w:Exposure_bias|'exposure bias']] is 'exposure compensation'.",
        "exif-maxaperturevalue": "Exif is a format for storing metadata in image files. See this [[w:Exchangeable_image_file_format|Wikipedia article]] and the example at the bottom of [[commons:File:Phalacrocorax-auritus-020.jpg|this page on Commons]]. The tags are explained [http://www.awaresystems.be/imaging/tiff/tifftags/privateifd/exif.html briefly] and [http://www.kodak.com/global/plugins/acrobat/en/service/digCam/exifStandard2.pdf in further detail].\n\nThe 'land' in a camera refers possibly to the inner surface of the barrel of the lens. An alternative phrasing for this message could perhaps be 'maximum width of the land aperture'.",
        "exif-subjectdistance": "Exif is a format for storing metadata in image files. See this [[w:Exchangeable_image_file_format|Wikipedia article]] and the example at the bottom of [[commons:File:Phalacrocorax-auritus-020.jpg|this page on Commons]]. The tags are explained [http://www.awaresystems.be/imaging/tiff/tifftags/privateifd/exif.html briefly] and [http://www.kodak.com/global/plugins/acrobat/en/service/digCam/exifStandard2.pdf in further detail].\n\nThe subject of a photograph is the person or thing on which the camera focuses. 'Subject distance' is the distance to the subject given in meters.",
        "exif-meteringmode": "Exif is a format for storing metadata in image files. See this [[w:Exchangeable_image_file_format|Wikipedia article]] and the example at the bottom of [[commons:File:Phalacrocorax-auritus-020.jpg|this page on Commons]]. The tags are explained [http://www.awaresystems.be/imaging/tiff/tifftags/privateifd/exif.html briefly] and [http://www.kodak.com/global/plugins/acrobat/en/service/digCam/exifStandard2.pdf in further detail].\n\nSee [[w:Metering_mode|Wikipedia article]] on metering mode.\n{{Related|Exif-meteringmode}}",
-       "exif-lightsource": "Exif is a format for storing metadata in image files. See this [[w:Exchangeable_image_file_format|Wikipedia article]] and the example at the bottom of [[commons:File:Phalacrocorax-auritus-020.jpg|this page on Commons]]. The tags are explained [http://www.awaresystems.be/imaging/tiff/tifftags/privateifd/exif.html briefly] and [http://www.kodak.com/global/plugins/acrobat/en/service/digCam/exifStandard2.pdf in further detail].\n{{Related|Exif-lightsource}}",
+       "exif-lightsource": "{{exif-qqq}}\n\n{{Related|Exif-lightsource}}",
        "exif-flash": "Exif is a format for storing metadata in image files. See this [[w:Exchangeable_image_file_format|Wikipedia article]] and the example at the bottom of [[commons:File:Phalacrocorax-auritus-020.jpg|this page on Commons]]. The tags are explained [http://www.awaresystems.be/imaging/tiff/tifftags/privateifd/exif.html briefly] and [http://www.kodak.com/global/plugins/acrobat/en/service/digCam/exifStandard2.pdf in further detail].\n\nSee this [[w:en:Flash_(photography)|Wikipedia article]] for an explanation of the term.\n{{Related|Exif-flash}}\n{{Identical|Flash}}",
        "exif-focallength": "Exif is a format for storing metadata in image files. See this [[w:Exchangeable_image_file_format|Wikipedia article]] and the example at the bottom of [[commons:File:Phalacrocorax-auritus-020.jpg|this page on Commons]]. The tags are explained [http://www.awaresystems.be/imaging/tiff/tifftags/privateifd/exif.html briefly] and [http://www.kodak.com/global/plugins/acrobat/en/service/digCam/exifStandard2.pdf in further detail].\n\nSee this [[w:en:Focal_length_(photography)|Wikipedia article]] for an explanation of the term.",
        "exif-focallength-format": "{{optional}}\nExif is a format for storing metadata in image files. See this [http://en.wikipedia.org/wiki/Exchangeable_image_file_format Wikipedia article] and the example at the bottom of [http://commons.wikimedia.org/wiki/File:Phalacrocorax-auritus-020.jpg this page on Commons]. The tags are explained [http://www.awaresystems.be/imaging/tiff/tifftags/privateifd/exif.html briefly] and [http://www.kodak.com/global/plugins/acrobat/en/service/digCam/exifStandard2.pdf in further detail].\n\nParameters:\n* $1 - a number\nNote:\n* mm is the abbreviation used in English for the unit of measurement of length \"millimeter\".",
        "exif-lightsource-9": "{{Related|Exif-lightsource}}",
        "exif-lightsource-10": "{{Related|Exif-lightsource}}",
        "exif-lightsource-11": "{{Related|Exif-lightsource}}",
-       "exif-lightsource-12": "{{Related|Exif-lightsource}}",
-       "exif-lightsource-13": "{{Related|Exif-lightsource}}",
-       "exif-lightsource-14": "{{Related|Exif-lightsource}}",
-       "exif-lightsource-15": "{{Related|Exif-lightsource}}",
+       "exif-lightsource-12": "{{exif-qqq}}\n\nThe \"D\" stands for \"daylight\", as defined in the JIS Z 9112:2012 standard.\n\n{{Related|Exif-lightsource}}",
+       "exif-lightsource-13": "{{exif-qqq}}\n\nThe \"N\" symbol is defined in the JIS Z 9112:2012 standard.\n\n{{Related|Exif-lightsource}}",
+       "exif-lightsource-14": "{{exif-qqq}}\n\nThe \"W\" stands for \"white\", as defined in the JIS Z 9112:2012 standard.\n\n{{Related|Exif-lightsource}}",
+       "exif-lightsource-15": "{{exif-qqq}}\n\nThe \"WW\" stands for \"warm white\", as defined in the JIS Z 9112:2012 standard.\n\n{{Related|Exif-lightsource}}",
        "exif-lightsource-17": "{{Related|Exif-lightsource}}",
        "exif-lightsource-18": "{{Related|Exif-lightsource}}",
        "exif-lightsource-19": "{{Related|Exif-lightsource}}",
        "mw-widgets-dateinput-placeholder-month": "Placeholder displayed in a date input field when it's empty, representing a date format with 4 digits for year and 2 digits for month, separated with hyphens (without a day). This should be uppercase, if possible, and must not include any additional explanations. If there is no good way to translate it, make this message blank.",
        "mw-widgets-titleinput-description-new-page": "Description label for a new page in the title input widget.",
        "mw-widgets-titleinput-description-redirect": "Description label for a redirect in the title input widget.",
-       "api-error-blacklisted": "Used as error message.\n\nFollowed by the link {{msg-mw|Mwe-upwiz-feedback-blacklist-info-prompt}}.",
        "sessionmanager-tie": "Used as an error message when multiple session sources are tied in priority.\n\nParameters:\n* $1 - List of dession type descriptions, from messages like {{msg-mw|sessionprovider-mediawiki-session-cookiesessionprovider}}.",
        "sessionprovider-generic": "Used to create a generic session type description when one isn't provided via the proper message. Should be phrased to make sense when added to a message such as {{msg-mw|cannotloginnow-text}}.\n\nParameters:\n* $1 - PHP classname.",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "Description of the sessions provided by the CookieSessionProvider class, which use HTTP cookies. Should be phrased to make sense when added to a message such as {{msg-mw|cannotloginnow-text}}.",
        "cannotauth-not-allowed-title": "Title of the error page shown when the user tries to use an authentication-related page they should not have access to.",
        "cannotauth-not-allowed": "Text of the error page shown when the user tries t use an authentication-related page they should not have access to.",
        "changecredentials": "Title of the special page [[Special:ChangeCredentials]] which allows changing authentication credentials (such as the password).",
-       "changecredentials-submit": "Used on [[Special:ChangeCredentials]].\n{{Identical|Change}}",
-       "changecredentials-submit-cancel": "Used on [[Special:ChangeCredentials]].\n{{Identical|Cancel}}",
+       "changecredentials-submit": "Used on [[Special:ChangeCredentials]].",
        "changecredentials-invalidsubpage": "Error message shown when using [[Special:ChangeCredentials]] with an invalid type.\n\nParameters:\n* $1 - subpage name.",
        "changecredentials-success": "Success message after using [[Special:ChangeCredentials]].",
        "removecredentials": "Title of the special page [[Special:RemoveCredentials]] which allows removing authentication credentials (such as a two-factor token).",
-       "removecredentials-submit": "Used on [[Special:RemoveCredentials]].\n{{Identical|Remove}}",
-       "removecredentials-submit-cancel": "Used on [[Special:RemoveCredentials]].\n{{Identical|Cancel}}",
+       "removecredentials-submit": "Used on [[Special:RemoveCredentials]].",
        "removecredentials-invalidsubpage": "Error message shown when using [[Special:RemoveCredentials]] with an invalid type.\n\nParameters:\n* $1 - subpage name.",
        "removecredentials-success": "Success message after using [[Special:RemoveCredentials]].",
        "credentialsform-provider": "Shown on [[Special:ChangeCredentials]]/[[Special:RemoveCredentials]] as the label for the authentication type (e.g. \"password\", \"English Wikipedia via OAuth\")",
        "linkaccounts-success-text": "Text shown on top of the form after a successful action.",
        "linkaccounts-submit": "Text of the main submit button on [[Special:LinkAccounts]] (when there is one)",
        "unlinkaccounts": "Title of the special page [[Special:UnlinkAccounts]] which allows the user to remove linked remote accounts.",
-       "unlinkaccounts-success": "Account unlinking form success message"
+       "unlinkaccounts-success": "Account unlinking form success message",
+       "authenticationdatachange-ignored": "Shown when authentication data change was unsuccessful due to configuration problems.\n\nCf. e.g. {{msg-mw|Passwordreset-ignored}}."
 }
index a77384d..de84e8e 100644 (file)
        "protectedpagetext": "Kay p'anqaqa llamk'apuymanta hukchaymantapas amachasqam.",
        "viewsourcetext": "Kay p'anqap pukyu qillqantam qhawayta iskaychaytapas atinki:",
        "viewyourtext": "'''Qampa llamk'apusqayki'''p pukyu qillqantam qhawayta iskaychaytapas atinki:",
-       "protectedinterface": "Kay p'anqapiqa wakichintinpa uyapuranpaq qillqam. Wandalismu nisqamanta amachasqam kachkan.\nTukuy wikikunapi uyapuraman t'ikrasqakunata yapayta icha hukchayta munaspaykiqa, [//translatewiki.net/wiki/Main_Page?setlang=qu translatewiki.net] nisqa MediaWiki t'ikrana ruraykamay llika tiyaypi ruray.",
-       "editinginterface": "'''Paqtataq:''' Llamp'u kaqpaq uyapura qillqakuna ruranapaq p'anqatam llamk'apuchkanki.\nHukchaptiykiqa, chay uyapurap rikch'ayninqa hukyanqa kay wikipi huk ruraqkunapaqpas.\nUyapuraman t'ikrasqakunata yapayta icha hukchayta munaspaykiqa, [//translatewiki.net/wiki/Main_Page?setlang=qu translatewiki.net] nisqa MediaWiki t'ikrana ruraykamay llika tiyaypi ruranaykimanta hamut'ariy.",
+       "protectedinterface": "Kay p'anqapiqa wakichintinpa uyapuranpaq qillqam. Wandalismu nisqamanta amachasqam kachkan.\nTukuy wikikunapi uyapuraman t'ikrasqakunata yapayta icha hukchayta munaspaykiqa, [https://translatewiki.net/wiki/Main_Page?setlang=qu translatewiki.net] nisqa MediaWiki t'ikrana ruraykamay llika tiyaypi ruray.",
+       "editinginterface": "'''Paqtataq:''' Llamp'u kaqpaq uyapura qillqakuna ruranapaq p'anqatam llamk'apuchkanki.\nHukchaptiykiqa, chay uyapurap rikch'ayninqa hukyanqa kay wikipi huk ruraqkunapaqpas.\nUyapuraman t'ikrasqakunata yapayta icha hukchayta munaspaykiqa, [https://translatewiki.net/wiki/Main_Page?setlang=qu translatewiki.net] nisqa MediaWiki t'ikrana ruraykamay llika tiyaypi ruranaykimanta hamut'ariy.",
        "cascadeprotected": "Kay p'anqaqa amachasqam kachkan, ''phaqcha'' nisqa kamachiwan amachasqa kay {{PLURAL:$1|p'anqapi|p'anqakunapi}} ch'aqtasqa kaspanmi:\n$2",
        "namespaceprotected": "'''$1''' nisqa suti k'ititaqa llamk'apuyta manam saqillasunkichu.",
        "customcssprotected": "Manam saqillasunkichu kay CSS p'anqata llamk'apuyta, huk ruraqpa kikin tiyachisqankunayuq kaptinmi.",
        "resetpass-temp-password": "Mit'alla yaykuna rima:",
        "resetpass-abort-generic": "Yaykuna rima hukchaytaqa yapa wakichim p'itirqan.",
        "resetpass-expired": "Yaykuna rimaykiqa mawk'ayasqañam. Ama hina kaspa, yaykunaykipaq musuq yaykuna rimaykita churay.",
-       "resetpass-expired-soft": "Yaykuna rimayki mawk'ayasqaña kaspa kutichinam tiyan. Ama hina kaspa, kunallan musuq yaykuna rimaykita akllay icha \"{{int:resetpass-submit-cancel}}\"-ta ñit'iy qhipaqta kutichinaykipaq.",
-       "resetpass-validity-soft": "Yaykuna rimaykiqa manam allinchu: $1.\n\nAma hina kaspa, kunallan musuq yaykuna rimaykita akllay icha \"{{int:resetpass-submit-cancel}}\"-ta ñit'iy qhipaqta kutichinaykipaq.",
+       "resetpass-expired-soft": "Yaykuna rimayki mawk'ayasqaña kaspa kutichinam tiyan. Ama hina kaspa, kunallan musuq yaykuna rimaykita akllay icha \"{{int:authprovider-resetpass-skip-label}}\"-ta ñit'iy qhipaqta kutichinaykipaq.",
+       "resetpass-validity-soft": "Yaykuna rimaykiqa manam allinchu: $1.\n\nAma hina kaspa, kunallan musuq yaykuna rimaykita akllay icha \"{{int:authprovider-resetpass-skip-label}}\"-ta ñit'iy qhipaqta kutichinaykipaq.",
        "passwordreset": "Yaykuna rimata kutichiy",
        "passwordreset-text-one": "Kay hunt'ana p'anqata hunt'ay, yaykuna rimaykita kutichinaykipaq.",
        "passwordreset-text-many": "{{PLURAL:$1|Kay k'itichakunamanta hukta hunt'achiy, yaykuna rimaykita kutichinaykipaq.}}",
        "allmessagesname": "Suti",
        "allmessagesdefault": "Ñawpaq qillqa",
        "allmessagescurrent": "Kunan kachkaq qillqa",
-       "allmessagestext": "Kayqa MediaWiki suti k'itipi llamk'achinalla willaykunayuq sutisuyum.\nAma hina kaspa, [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] nisqata, [//translatewiki.net translatewiki.net] nisqatapas watukuy, MediaWiki nisqata t'ikraywan yanapayta munaspaykiqa.",
+       "allmessagestext": "Kayqa MediaWiki suti k'itipi llamk'achinalla willaykunayuq sutisuyum.\nAma hina kaspa, [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] nisqata, [https://translatewiki.net translatewiki.net] nisqatapas watukuy, MediaWiki nisqata t'ikraywan yanapayta munaspaykiqa.",
        "allmessagesnotsupportedDB": "Kay p'anqaqa manam llamk'achinallachu, '''$wgUseDatabaseMessages''' nisqaman ama nisqa kaptinmi.",
        "allmessages-filter-legend": "Ch'illchina",
        "allmessages-filter": "Ch'illchina, allinchasqa kachkaykama:",
index 2256026..6de7ea2 100644 (file)
        "blocklogentry": "[[$1]]-ta chay pachakaman wichkarka: $2 $3",
        "unblocklogentry": "$1 rurakpa wichkayta kishpichirka",
        "block-log-flags-nocreate": "Mushuk rurak shutipa kamayta wichkashkami",
-       "movearticle": "Kay pankama mushuk shutita karapana:",
        "newtitle": "Kay mushuk shutiman",
        "move-watch": "Kay ishkay pankakunata rikukuna",
        "movepagebtn": "Kay pankaman mushuk shutita karapana:",
index eb3ee7c..2a2e31c 100644 (file)
        "viewsourcetext": "Ti pos guardar e copiar il code-fundamental da questa pagina:",
        "viewyourtext": "Ti pos giardar e copiar la il code da funatuna da '''tias midadas''' vid questa pagina:",
        "protectedinterface": "Questa pagina cuntegna ils texts per l'interfatscha da la software ed è protegida per evitar abus.",
-       "editinginterface": "'''Attenziun:''' Questa pagina cuntegna text che vegn duvra en la interfatscha da questa software. \nMidadas influenzeschan directamain l'interfatscha per tut ils utilisaders sin questa vichi. \nSche ti vuls far translaziuns u correcturas per tut las vichis, lura utilisescha [//translatewiki.net/ translatewiki.net], il project per translatar MediaWiki.",
+       "editinginterface": "'''Attenziun:''' Questa pagina cuntegna text che vegn duvra en la interfatscha da questa software. \nMidadas influenzeschan directamain l'interfatscha per tut ils utilisaders sin questa vichi. \nSche ti vuls far translaziuns u correcturas per tut las vichis, lura utilisescha [https://translatewiki.net/ translatewiki.net], il project per translatar MediaWiki.",
        "cascadeprotected": "Questa pagina è protegida da modificaziuns perquai ch'ella è integrada en suandanta{{PLURAL:$1| pagina, ch'è protegida|s paginas, ch'èn protegidas}} entras l'opziun «protecziun ertada»: \n$2",
        "namespaceprotected": "Ti n'has betg la lubientscha da modifitgar paginas dal tip da pagina '''$1'''.",
        "customcssprotected": "Ti n'has betg la permissiun da modifitgar questa pagina da CSS, perquai ch'ella cuntegna configuraziuns persunalas d'in auter utilisader.",
        "allmessagesname": "num",
        "allmessagesdefault": "text original",
        "allmessagescurrent": "text actual",
-       "allmessagestext": "Quai è ina glista da tut ils messadis dals differents tips da paginas da MediaWiki che vegnan utilisadas da la software MediaWiki.\nFai ina visita sin [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] e [//translatewiki.net translatewiki.net] sche ti vuls gidar da translatar la software MediaWiki.",
+       "allmessagestext": "Quai è ina glista da tut ils messadis dals differents tips da paginas da MediaWiki che vegnan utilisadas da la software MediaWiki.\nFai ina visita sin [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] e [https://translatewiki.net translatewiki.net] sche ti vuls gidar da translatar la software MediaWiki.",
        "allmessagesnotsupportedDB": "Questa pagina na po betg vegnir mussada, perquai che '''$wgUseDatabaseMessages''' è vegnì deactivà.",
        "allmessages-filter-legend": "Filtrar",
        "allmessages-filter": "Filtrar tenor standi da modificaziun:",
index 07166e6..6171017 100644 (file)
@@ -47,6 +47,7 @@
        "tog-watchdefault": "Adaugă paginile și fișierele pe care le modific la lista mea de urmărire",
        "tog-watchmoves": "Adaugă paginile și fișierele pe care le redenumesc la lista mea de urmărire",
        "tog-watchdeletion": "Adaugă paginile și fișierele pe care le șterg la lista mea de urmărire",
+       "tog-watchuploads": "Adaugă în lista de pagini urmărite fișierele noi pe care le încarc",
        "tog-watchrollback": "Adaugă în lista mea de pagini urmărite acele pagini asupra cărora am efectuat o revenire",
        "tog-minordefault": "Marchează din oficiu toate modificările ca fiind minore",
        "tog-previewontop": "Arată previzualizarea deasupra căsuței de modificare",
        "protectedpagetext": "Această pagină este protejată împotriva modificărilor sau a altor acțiuni.",
        "viewsourcetext": "Puteți vizualiza și copia sursa acestei pagini.",
        "viewyourtext": "Puteți vizualiza și copia conținutul <strong>modificărilor dumneavoastră</strong> efectuate asupra acestei pagini.",
-       "protectedinterface": "Această pagină asigură textul interfeței pentru software și este protejată pentru a preveni abuzurile.\nPentru a adăuga sau modifica traduceri corespunzătoare tuturor wikiurilor, utilizați [//translatewiki.net/ translatewiki.net], proiectul MediaWiki de localizare.",
+       "protectedinterface": "Această pagină asigură textul interfeței pentru software și este protejată pentru a preveni abuzurile.\nPentru a adăuga sau modifica traduceri corespunzătoare tuturor wikiurilor, utilizați [https://translatewiki.net/ translatewiki.net], proiectul MediaWiki de localizare.",
        "editinginterface": "<strong>Avertizare</strong>: Modificați o pagină care este folosită pentru a furniza textul interfeței software.\nModificările aduse acestei pagini vor afecta aspectul interfeței pentru alți utilizatori ai acestui wiki.",
-       "translateinterface": "Pentru a adăuga sau modifica traduceri corespunzătoare tuturor wikiurilor, utilizați [//translatewiki.net/ translatewiki.net], proiectul MediaWiki pentru localizare.",
+       "translateinterface": "Pentru a adăuga sau modifica traduceri corespunzătoare tuturor wikiurilor, utilizați [https://translatewiki.net/ translatewiki.net], proiectul MediaWiki pentru localizare.",
        "cascadeprotected": "Această pagină a fost protejată la modificare, deoarece este inclusă în {{PLURAL:$1|următoarea pagină|următoarele pagini}} {{PLURAL:$1|protejată|protejate}} cu opțiunea „în cascadă”:\n$2",
        "namespaceprotected": "Nu aveți permisiunea de a modifica pagini din spațiul de nume '''$1'''.",
        "customcssprotected": "Nu aveți permisiunea de a modifica această pagină CSS, deoarece conține setările personale ale altui utilizator.",
        "userlogin-resetpassword-link": "V-ați uitat parola?",
        "userlogin-helplink2": "Ajutor la autentificare",
        "userlogin-loggedin": "Sunteți deja {{GENDER:$1|autentificat|autentificată}} ca {{GENDER:$1|$1}}.\nUtilizați formularul de mai jos pentru a vă autentifica cu alt nume de utilizator.",
+       "userlogin-reauth": "Trebuie să vă autentificați din nou pentru a confirma că sunteți {{GENDER:$1|$1}}.",
        "userlogin-createanother": "Creează un alt cont",
        "createacct-emailrequired": "Adresă de e-mail",
        "createacct-emailoptional": "Adresă de e-mail (opțională)",
        "createacct-email-ph": "Introduceți adresa dumnevoastră de e-mail",
        "createacct-another-email-ph": "Introduceți adresa de e-mail",
        "createaccountmail": "Utilizează o parolă temporară aleasă la întâmplare și o trimite la adresa de e-mail indicată",
+       "createaccountmail-help": "Poate fi folosit pentru a crea un cont pentru o altă persoană fără a cunoaște parola.",
        "createacct-realname": "Nume real (opțional)",
        "createaccountreason": "Motiv:",
        "createacct-reason": "Motiv",
        "createacct-reason-ph": "De ce creați un alt cont",
+       "createacct-reason-help": "Mesaj care apare în jurnalul de creare a conturilor",
        "createacct-submit": "Creați-vă contul",
        "createacct-another-submit": "Creează contul",
+       "createacct-continue-submit": "Continuă crearea contului",
+       "createacct-another-continue-submit": "Continuă crearea contului",
        "createacct-benefit-heading": "{{SITENAME}} este un proiect clădit de oameni ca dumneavoastră.",
        "createacct-benefit-body1": "{{PLURAL:$1|modificare|modificări|de modificări}}",
        "createacct-benefit-body2": "{{PLURAL:$1|pagină|pagini|de pagini}}",
        "nocookiesnew": "Contul a fost creat, dar nu sunteți autentificat{{GENDER:||ă|}}. {{SITENAME}} folosește module cookie pentru a reține utilizatorii autentificați. Navigatorul dumneavoastră are aceste module cookie dezactivate. Vă rugăm să le activați și să vă reautentificați folosind noul nume de utilizator și noua parolă.",
        "nocookieslogin": "{{SITENAME}} folosește module cookie pentru a autentifica utilizatorii. Browser-ul dvs. are cookie-urile dezactivate. Vă rugăm să le activați și să incercați din nou.",
        "nocookiesfornew": "Contul de utilizator nu a fost creat, deoarece nu am putut confirma sursa.\nAsigurați-vă că aveți cookie-urile activate, reîncărcați pagina și încercați din nou.",
+       "createacct-loginerror": "Contul a fost creat cu succes, dar nu s-a putut efectua autentificarea automată. Vă rugăm să vă [[Special:UserLogin|autentificați manual]].",
        "noname": "Numele de utilizator pe care l-ați introdus nu este valid.",
        "loginsuccesstitle": "Autentificat(ă)",
        "loginsuccess": "'''Ați fost autentificat la {{SITENAME}} ca „$1”.'''",
        "createacct-another-realname-tip": "Numele real este opțional.\nDacă decideți furnizarea sa, acesta va fi folosit pentru a atribui utilizatorului munca sa.",
        "pt-login": "Autentificare",
        "pt-login-button": "Autentificare",
+       "pt-login-continue-button": "Continuă autentificarea",
        "pt-createaccount": "Creare cont",
        "pt-userlogout": "Închide sesiunea",
        "php-mail-error-unknown": "Eroare necunoscută în funcția PHP mail()",
        "resetpass-temp-password": "Parolă temporară:",
        "resetpass-abort-generic": "Schimbarea parolei a fost anulată de către o extensie.",
        "resetpass-expired": "Parola dumneavoastră a expirat. Alegeți o parolă nouă pentru a vă autentifica.",
-       "resetpass-expired-soft": "Parola dumneavoastră a expirat și trebuie schimbată. Alegeți o parolă nouă acum sau apăsați „{{int:resetpass-submit-cancel}}” pentru a o reseta mai târziu.",
-       "resetpass-validity-soft": "Parola dumneavoastră nu este validă: $1 \n\nAlegeți o parolă nouă acum sau apăsați „{{int:resetpass-submit-cancel}}” pentru a o reseta mai târziu.",
+       "resetpass-expired-soft": "Parola dumneavoastră a expirat și trebuie schimbată. Alegeți o parolă nouă acum sau apăsați „{{int:authprovider-resetpass-skip-label}}” pentru a o reseta mai târziu.",
+       "resetpass-validity-soft": "Parola dumneavoastră nu este validă: $1 \n\nAlegeți o parolă nouă acum sau apăsați „{{int:authprovider-resetpass-skip-label}}” pentru a o reseta mai târziu.",
        "passwordreset": "Resetare parolă",
        "passwordreset-text-one": "Completați acest formular pentru a vă reseta parola.",
        "passwordreset-text-many": "{{PLURAL:$1|Completați unul din câmpuri pentru a primi o parolă temporară prin e-mail.}}",
        "passwordreset-emailsentusername": "Dacă există o adresă de e-mail asociată acestui nume de utilizator, atunci se va trimite un e-mail de resetare a parolei.",
        "passwordreset-emailsent-capture": "Un mesaj de resetare a parolei a fost trimis, fiind afișat mai jos.",
        "passwordreset-emailerror-capture": "Un mesaj de resetare a parolei a fost generat (fiind afișat mai jos), dar trimiterea sa către {{GENDER:$2|utilizator}} a eșuat: $1",
+       "passwordreset-invalideamil": "Adresă de e-mail nevalidă",
+       "passwordreset-nodata": "Nu au fost furnizate un nume de utilizator sau o adresă de e-mail",
        "changeemail": "Modificare sau înlăturare adresă de e-mail",
        "changeemail-header": "Completați acest formular pentru a vă schimba adresa de e-mail. Dacă doriți să înlăturați orice asociere a unei adrese de e-mail cu contul dumneavoastră, lăsați necompletat câmpul pentru introducerea unei noi adrese de e-mail atunci când trimiteți formularul.",
        "changeemail-passwordrequired": "Va trebui să introduceți parola pentru a confirma această schimbare.",
        "minoredit": "Aceasta este o modificare minoră",
        "watchthis": "Urmărește această pagină",
        "savearticle": "Salvare pagină",
+       "publishpage": "Publică pagina",
        "preview": "Previzualizare",
        "showpreview": "Previzualizare",
        "showdiff": "Afișare diferențe",
        "revdelete-unsuppress": "Anulează restricțiile la versiunile restaurate",
        "revdelete-log": "Motivul ștergerii:",
        "revdelete-submit": "Aplică {{PLURAL:$1|versiunii selectate|versiunilor selectate}}",
-       "revdelete-success": "'''Vizibilitatea versiunilor a fost schimbată cu succes.'''",
+       "revdelete-success": "Vizibilitatea versiunilor a fost schimbată.",
        "revdelete-failure": "'''Nu s-a putut modifica vizibilitatea versiunii:'''\n$1",
-       "logdelete-success": "'''Jurnalul vizibilității a fost configurat cu succes.'''",
+       "logdelete-success": "Vizibilitatea jurnalului modificată.",
        "logdelete-failure": "'''Vizibilitatea jurnalului nu poate fi definită:'''\n$1",
        "revdel-restore": "Schimbă vizibilitatea",
        "pagehist": "Istoricul paginii",
        "mergehistory-fail-bad-timestamp": "Ora și data nu sunt valide.",
        "mergehistory-fail-invalid-source": "Pagina sursă nu este validă.",
        "mergehistory-fail-invalid-dest": "Pagina de destinație nu este validă.",
+       "mergehistory-fail-no-change": "Unificarea istoricului nu a unit nicio versiune. Verificați din nou pagina și parametrii temporali.",
+       "mergehistory-fail-permission": "Permisiuni insuficiente pentru a uni istoricul.",
+       "mergehistory-fail-self-merge": "Paginile sursă și destinație sunt identice.",
        "mergehistory-fail-toobig": "Nu s-a putut efectua unirea istoricelor întrucât s-ar fi depășit limita de $1 {{PLURAL:$1|versiune|versiuni|de versiuni}} mutat{{PLURAL:$1|ă|e}}.",
        "mergehistory-no-source": "Pagina sursă $1 nu există.",
        "mergehistory-no-destination": "Pagina de destinație $1 nu există.",
        "prefs-personal": "Informații personale",
        "prefs-rc": "Schimbări recente",
        "prefs-watchlist": "Listă de urmărire",
-       "prefs-editwatchlist": "Modifică lista de pagini urmărite",
+       "prefs-editwatchlist": "Modificare listă de pagini urmărite",
        "prefs-editwatchlist-label": "Modificați titluri din lista dumneavoastră de pagini urmărite:",
-       "prefs-editwatchlist-edit": "Vizualizați și eliminați titluri din lista dumneavoastră de pagini urmărite",
+       "prefs-editwatchlist-edit": "Vizualizare și eliminare titluri din lista dumneavoastră de pagini urmărite",
        "prefs-editwatchlist-raw": "Modifică lista brută de pagini urmărite",
-       "prefs-editwatchlist-clear": "Goliți-vă lista de pagini urmărite",
+       "prefs-editwatchlist-clear": "Golește-mi lista de pagini urmărite",
        "prefs-watchlist-days": "Numărul de zile care apar în lista paginilor urmărite:",
        "prefs-watchlist-days-max": "Maxim $1 {{PLURAL:$1|zi|zile}}",
        "prefs-watchlist-edits": "Numărul de modificări care apar în lista extinsă a paginilor urmărite:",
        "ipb-unblock": "Deblocați un nume de utilizator sau o adresă IP",
        "ipb-blocklist": "Vezi blocările existente",
        "ipb-blocklist-contribs": "Contribuțiile {{GENDER:$1|utilizatorului $1|utilizatoarei $1}}",
+       "ipb-blocklist-duration-left": "$1 a mai rămas",
        "unblockip": "Deblochează adresă IP",
        "unblockiptext": "Folosiți formularul de mai jos pentru a restaura permisiunea de scriere pentru adrese IP sau nume de utilizator blocate anterior.",
        "ipusubmit": "Elimină blocarea",
        "lockdbsuccesstext": "Baza de date a fost blocată.<br />\nNu uitați să o [[Special:UnlockDB|deblocați]] la terminarea operațiilor administrative.",
        "unlockdbsuccesstext": "Baza de date a fost deblocată.",
        "lockfilenotwritable": "Fișierul bazei de date închise nu poate fi scris.\nPentru a închide sau deschide baza de date, acesta trebuie să poată fi scris de serverul web.",
+       "databaselocked": "Baza de date este deja blocată.",
        "databasenotlocked": "Baza de date nu este blocată.",
        "lockedbyandtime": "(de $1, pe $2, la $3 )",
        "move-page": "Redenumire $1",
        "allmessagesname": "Nume",
        "allmessagesdefault": "Textul standard",
        "allmessagescurrent": "Textul curent",
-       "allmessagestext": "Aceasta este lista completă a mesajelor disponibile în domeniul MediaWiki.\nVă rugăm să vizitați [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] și [//translatewiki.net translatewiki.net] dacă vreți să contribuiți la localizarea programului MediaWiki generic.",
+       "allmessagestext": "Aceasta este lista completă a mesajelor disponibile în domeniul MediaWiki.\nVă rugăm să vizitați [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] și [https://translatewiki.net translatewiki.net] dacă vreți să contribuiți la localizarea programului MediaWiki generic.",
        "allmessagesnotsupportedDB": "'''{{ns:special}}:Allmessages''' nu poate fi folosit deoarece opțiunea '''$wgUseDatabaseMessages''' este dezactivată.",
        "allmessages-filter-legend": "Filtru",
        "allmessages-filter": "Filtru după statutul de modificare:",
        "confirm-watch-top": "Adăugați această pagină la lista de pagini urmărite?",
        "confirm-unwatch-button": "OK",
        "confirm-unwatch-top": "Eliminați această pagină din lista de pagini urmărite?",
+       "confirm-rollback-button": "OK",
        "quotation-marks": "„$1”",
        "imgmultipageprev": "← pagina anterioară",
        "imgmultipagenext": "pagina următoare →",
        "tags-edit-revision-legend": "Adaugă sau înlătură etichete din {{PLURAL:$1|această versiune|toate cele $1 versiuni|toate cele $1 de versiuni}}",
        "tags-edit-logentry-legend": "Adaugă sau înlătură etichete din {{PLURAL:$1|această intrare din jurnal|toate cele $1 intrări din jurnal|toate cele $1 de intrări din jurnal}}",
        "tags-edit-existing-tags": "Etichete existente:",
-       "tags-edit-existing-tags-none": "''Niciuna''",
+       "tags-edit-existing-tags-none": "<em>Niciuna</em>",
        "tags-edit-new-tags": "Etichete noi:",
        "tags-edit-add": "Se adaugă aceste etichete:",
        "tags-edit-remove": "Se șterg aceste etichete:",
        "tags-edit-reason": "Motiv:",
        "tags-edit-revision-submit": "Aplică modificările {{PLURAL:$1|acestei versiuni|celor $1 versiuni|celor $1 de versiuni}}",
        "tags-edit-logentry-submit": "Aplică modificările {{PLURAL:$1|acestei intrări din jurnal|celor $1 intrări din jurnal|celor $1 de intrări din jurnal}}",
-       "tags-edit-success": "Modificările au fost aplicate cu succes.",
+       "tags-edit-success": "Modificările au fost aplicate.",
        "tags-edit-failure": "Modificările nu au putut fi aplicate:\n$1",
        "tags-edit-nooldid-title": "Versiune-țintă nevalidă",
        "tags-edit-nooldid-text": "Fie nu ați indicat nicio versiune-țintă pe care să aplicați această funcție, fie versiunea indicată nu există.",
        "logentry-protect-protect-cascade": "$1 {{GENDER:$2|a protejat}} $3 $4 [protecție în cascadă]",
        "logentry-protect-modify": "$1 {{GENDER:$2|a modificat}} nivelul protecției pentru $3 $4",
        "logentry-protect-modify-cascade": "$1 {{GENDER:$2|a modificat}} nivelul protecției pentru $3 $4 [protecție în cascadă]",
-       "logentry-rights-rights": "$1 {{GENDER:$2|a schimbat}} apartenența la grup pentru $3 de la $4 la $5",
+       "logentry-rights-rights": "$1 {{GENDER:$2|a schimbat}} apartenența la grup pentru {{GENDER:$6|$3}} de la $4 la $5",
        "logentry-rights-rights-legacy": "$1 {{GENDER:$2|a schimbat}} apartenența la grup pentru $3",
        "logentry-rights-autopromote": "$1 {{GENDER:$2|a fost promovat|a fost promovată}} în mod automat de la $4 la $5",
        "logentry-upload-upload": "$1 {{GENDER:$2|a încărcat}} $3",
        "feedback-useragent": "Agent utilizator:",
        "searchsuggest-search": "Căutare",
        "searchsuggest-containing": "conținând...",
+       "api-error-autoblocked": "Adresa dumnevoastră IP a fost blocată automat, pentru că a fost folosită de un utilizator blocat.",
        "api-error-badaccess-groups": "Nu aveți dreptul să încărcați fișiere pe acest wiki.",
        "api-error-badtoken": "Eroare internă: jeton greșit.",
+       "api-error-blocked": "Vi s-a blocat accesul la modificări.",
        "api-error-copyuploaddisabled": "Încărcarea prin URL este dezactivată pe acest server.",
        "api-error-duplicate": "Există {{PLURAL:$1|un alt fișier deja încărcat|alte fișiere deja încărcate}} cu același conținut.",
        "api-error-duplicate-archive": "{{PLURAL:$1|A existat un alt fișier|Au existat alte fișiere}} cu același conținut pe site, dar {{PLURAL:$1|a fost|au fost}} șterse.",
        "api-error-nomodule": "Eroare internă: niciun modul de încărcare setat.",
        "api-error-ok-but-empty": "Eroare internă: niciun răspuns de la server.",
        "api-error-overwrite": "Nu este permisă suprascrierea unui fișier existent.",
+       "api-error-ratelimited": "Ați încercat să încărcați într-un interval de timp scurt mai multe fișiere decât permite acest wiki.\nÎncercați din nou peste câteva minute.",
        "api-error-stashfailed": "Eroare internă: serverul nu a putut stoca fișierul temporar.",
        "api-error-publishfailed": "Eroare internă: serverul nu a putut publica fișierul temporar.",
        "api-error-stasherror": "A apărut o eroare la încărcarea fișierului în depozitul temporar.",
        "api-error-unknownerror": "Eroare necunoscută: „$1”.",
        "api-error-uploaddisabled": "Încărcarea este dezactivată pe acest wiki.",
        "api-error-verification-error": "Acest fișier ar putea fi corupt sau poate avea extensia greșită.",
+       "api-error-was-deleted": "Un fișier cu același nume a fost deja încărcat în trecut și ulterior șters.",
        "duration-seconds": "$1 {{PLURAL:$1|secundă|secunde|de secunde}}",
        "duration-minutes": "$1 {{PLURAL:$1|minut|minute|de minute}}",
        "duration-hours": "$1 {{PLURAL:$1|oră|ore|de ore}}",
        "expand_templates_generate_xml": "Arată arborele de analiză XML",
        "expand_templates_generate_rawhtml": "Arată HTML brut",
        "expand_templates_preview": "Previzualizare",
-       "expand_templates_preview_fail_html": "<em>Întrucât la {{SITENAME}} este activat HTML brut și a avut loc o pierdere a sesiunii de date, previzualizarea a fost ascunsă ca măsură de precauție împotriva atacurilor prin JavaScript.</em>\n\n<strong>Dacă aceasta este o încercare legitimă de a previzualiza, încercați din nou.</strong>\nDacă nici astfel nu funcționează, încercați să [[Special:UserLogout|închideţi sesiunea]] şi să vă autentificaţi din nou.",
+       "expand_templates_preview_fail_html": "<em>Întrucât la {{SITENAME}} este activat HTML brut și a avut loc o pierdere a sesiunii de date, previzualizarea a fost ascunsă ca măsură de precauție împotriva atacurilor prin JavaScript.</em>\n\n<strong>Dacă aceasta este o încercare legitimă de a previzualiza, încercați din nou.</strong>\nDacă nici astfel nu funcționează, încercați să [[Special:UserLogout|închideţi sesiunea]] şi să vă autentificaţi din nou și să verificați dacă navigatorul dumneavoastră permite module cookie pentru acest site.",
        "expand_templates_preview_fail_html_anon": "<em>Întrucât la {{SITENAME}} este activat HTML brut și nu v-ați autentificat, previzualizarea a fost ascunsă ca măsură de precauție împotriva atacurilor prin JavaScript.</em>\n\n<strong>Dacă aceasta este o încercare legitimă de a previzualiza, [[Special:UserLogin|autentificați-vă]] și încercați din nou.</strong>",
        "expand_templates_input_missing": "Trebuie să furnizați cel puțin un text ca date de intrare.",
        "pagelanguage": "Modificare limbă pagină",
index dd73eab..27535c3 100644 (file)
        "protectedpagetext": "Sta pàgene ha state prutette pe no fa fà cangiaminde o otre aziune a uecchje.",
        "viewsourcetext": "Tu puè 'ndrucà e cupià 'a sorgente de sta pàgene.",
        "viewyourtext": "Tu puè 'ndrucà e copià 'a sorgende de <strong>le cangiaminde tune</strong> a sta pàgene.",
-       "protectedinterface": "Sta pàgene dèje 'nu teste de l'inderfacce pu software de sta uicchi, e jè prutette pe prevenìe l'abbuse.\nPe aggiungere o cangià le traduziune pe tutte le uicchi, pe piacere ause [//translatewiki.net/ translatewiki.net], 'u proggette de localizzazzione de MediaUicchi.",
+       "protectedinterface": "Sta pàgene dèje 'nu teste de l'inderfacce pu software de sta uicchi, e jè prutette pe prevenìe l'abbuse.\nPe aggiungere o cangià le traduziune pe tutte le uicchi, pe piacere ause [https://translatewiki.net/ translatewiki.net], 'u proggette de localizzazzione de MediaUicchi.",
        "editinginterface": "<strong>Fà attenziò:</strong> Tu ste cange 'na pàgene ca jè ausate pe dà 'n'inderfacce de teste p'u software.\nLe cangiaminde de sta pàgene vonne a mettene mane sus a l'inderfacce utende pe l'otre utinde de sta Uicchi.",
-       "translateinterface": "Pe aggiungere o cangià le traduziune pe tutte le uicchi, pe piacere ause [//translatewiki.net/translatewiki.net], 'u proggette de localizzazzione de MediaUicchi.",
+       "translateinterface": "Pe aggiungere o cangià le traduziune pe tutte le uicchi, pe piacere ause [https://translatewiki.net/translatewiki.net], 'u proggette de localizzazzione de MediaUicchi.",
        "cascadeprotected": "Sta pàgene ha state prutette da le cangiaminde, purcè jè ingluse jndr'à {{PLURAL:$1|seguende pàgene, ca jè|le seguende pàggene, ca sonde}} prutette cu l'opzione \"a cascate\":\n$2",
        "namespaceprotected": "Non ge tine 'u permesse pe cangià pàggene d'u neimspeise '''$1'''.",
        "customcssprotected": "Non ge tine 'u permesse pe cangià sta pàgene de CSS, purcè tène otre configurazione personale.",
        "resetpass-temp-password": "Password temboranea:",
        "resetpass-abort-generic": "'U cange de passuord ha state annullate da 'n'estenzione.",
        "resetpass-expired": "'A password toje ha scadute. Pe piacere 'mboste 'a password nove pe trasè.",
-       "resetpass-expired-soft": "'A password toje ha scadute e ave abbesògne de essere azzerate. Pe piacere scacchie 'n'otra password mò, o cazze \"{{int:resetpass-submit-cancel}}\" pe azzerarle cchiù tarde.",
-       "resetpass-validity-soft": "'A password toje non g'è valide: $1\n\nPe piacere scacchie 'na password nove, o cazze \"{{int:resetpass-submit-cancel}}\"pe azzerarle cchiù tarde.",
+       "resetpass-expired-soft": "'A password toje ha scadute e ave abbesògne de essere azzerate. Pe piacere scacchie 'n'otra password mò, o cazze \"{{int:authprovider-resetpass-skip-label}}\" pe azzerarle cchiù tarde.",
+       "resetpass-validity-soft": "'A password toje non g'è valide: $1\n\nPe piacere scacchie 'na password nove, o cazze \"{{int:authprovider-resetpass-skip-label}}\"pe azzerarle cchiù tarde.",
        "passwordreset": "Azzere 'a passuord",
        "passwordreset-text-one": "Comblete stu module pe azzerà 'a passuord toje.",
        "passwordreset-text-many": "{{PLURAL:$1|Inghie une de le cambe pe azzerà 'a passuord toje.}}",
        "apihelp-no-such-module": "Module \"$1\" none acchiate.",
        "apisandbox": "Sandbox de l'API",
        "apisandbox-api-disabled": "API non g'è abbiletate sus a stu site.",
-       "apisandbox-intro": "Ause sta pàgene pe sperimendà cu le '''API de le web service pe MediaUicchi'''.\nFà referimende a [//www.mediawiki.org/wiki/API:Main_page 'a documendazione de l'API] pe cchiù dettaglie de l'ause de l'API.\nEsembie: [//www.mediawiki.org/wiki/API#A_simple_example pigghie 'u condenute d'a Pàgene Prengepàle]. Scacchie 'n'azione pe 'ndrucà otre esembie.\n\nVide ca, pure ca queste jè 'na buatte de sabbie tu puè carrescià le cangiaminde de sta pàgene sus 'a uicchi.",
+       "apisandbox-intro": "Ause sta pàgene pe sperimendà cu le '''API de le web service pe MediaUicchi'''.\nFà referimende a [https://www.mediawiki.org/wiki/API:Main_page 'a documendazione de l'API] pe cchiù dettaglie de l'ause de l'API.\nEsembie: [https://www.mediawiki.org/wiki/API#A_simple_example pigghie 'u condenute d'a Pàgene Prengepàle]. Scacchie 'n'azione pe 'ndrucà otre esembie.\n\nVide ca, pure ca queste jè 'na buatte de sabbie tu puè carrescià le cangiaminde de sta pàgene sus 'a uicchi.",
        "apisandbox-submit": "Fà 'na richieste",
        "apisandbox-reset": "Pulizze",
        "apisandbox-examples": "Esembie",
        "allmessagesname": "Nome",
        "allmessagesdefault": "Teste de default",
        "allmessagescurrent": "Teste corrende",
-       "allmessagestext": "Queste jè 'na liste de tutte le messagge d'u sisteme ca se ponne acchià jndr'à le namespace de MediaUicchi.\nPe piacere vè vide [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Localizzazione de MediaUicchi] e [//translatewiki.net translatewiki.net] ce tu vuè ccu condrebbuisce a 'a localizzazione de MediaUicchi.",
+       "allmessagestext": "Queste jè 'na liste de tutte le messagge d'u sisteme ca se ponne acchià jndr'à le namespace de MediaUicchi.\nPe piacere vè vide [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Localizzazione de MediaUicchi] e [https://translatewiki.net translatewiki.net] ce tu vuè ccu condrebbuisce a 'a localizzazione de MediaUicchi.",
        "allmessagesnotsupportedDB": "Sta pàgene non ge pò essere ausate purcè '''$wgUseDatabaseMessages''' ha state disabbilitate.",
        "allmessages-filter-legend": "Filtre",
        "allmessages-filter": "Filtre cu 'nu state personalizzate:",
index 7bcd76d..c710e22 100644 (file)
@@ -91,7 +91,9 @@
                        "Исмаил Садуев",
                        "Lemondoge",
                        "SamGold",
-                       "Jdforrester"
+                       "Jdforrester",
+                       "Jack who built the house",
+                       "Cat1987"
                ]
        },
        "tog-underline": "Подчёркивание ссылок:",
        "category-empty": "''Эта категория в данный момент пуста.''",
        "hidden-categories": "{{PLURAL:$1|1=Скрытая категория|Скрытые категории}}",
        "hidden-category-category": "Скрытые категории",
-       "category-subcat-count": "{{PLURAL:$2|1=ЭÑ\82а ÐºÐ°Ñ\82егоÑ\80иÑ\8f Ñ\81одеÑ\80жиÑ\82 Ñ\82олÑ\8cко Ñ\81ледÑ\83Ñ\8eÑ\89Ñ\83Ñ\8e Ð¿Ð¾Ð´ÐºÐ°Ñ\82егоÑ\80иÑ\8e.|Ð\92 Ñ\8dÑ\82ой ÐºÐ°Ñ\82егоÑ\80ии Ð¾Ñ\82обÑ\80ажаеÑ\82Ñ\81Ñ\8f $1 {{PLURAL:$1|подкаÑ\82егоÑ\80иÑ\8f|подкаÑ\82егоÑ\80ий|подкаÑ\82егоÑ\80ии}} из имеющихся $2.}}",
+       "category-subcat-count": "{{PLURAL:$2|1=ЭÑ\82а ÐºÐ°Ñ\82егоÑ\80иÑ\8f Ñ\81одеÑ\80жиÑ\82 Ñ\82олÑ\8cко Ñ\81ледÑ\83Ñ\8eÑ\89Ñ\83Ñ\8e Ð¿Ð¾Ð´ÐºÐ°Ñ\82егоÑ\80иÑ\8e.|Ð\92 Ñ\8dÑ\82ой ÐºÐ°Ñ\82егоÑ\80ии Ð¾Ñ\82обÑ\80ажаеÑ\82Ñ\81Ñ\8f $1 {{PLURAL:$1|подкаÑ\82егоÑ\80иÑ\8f|подкаÑ\82егоÑ\80ии|подкаÑ\82егоÑ\80ий}} из имеющихся $2.}}",
        "category-subcat-count-limited": "В этой категории {{PLURAL:$1|$1 подкатегория|$1 подкатегории|$1 подкатегорий}}.",
        "category-article-count": "{{PLURAL:$2|1=Эта категория содержит единственную страницу.|{{PLURAL:$1|Показана $1 страница|Показаны $1 страницы|Показано $1 страниц}} из $2, {{PLURAL:$2|находящейся|находящихся}} в данной категории.}}",
        "category-article-count-limited": "В этой категории {{PLURAL:$1|$1 страница|$1 страницы|$1 страниц|1=только одна страница}}.",
        "poolcounter-usage-error": "Ошибка использования: $1",
        "aboutsite": "Описание {{grammar:genitive|{{SITENAME}}}}",
        "aboutpage": "Project:Описание",
-       "copyright": "СодеÑ\80жимое доступно по лицензии $1 (если не указано иное).",
+       "copyright": "СодеÑ\80жание доступно по лицензии $1 (если не указано иное).",
        "copyrightpage": "{{ns:project}}:Авторские права",
        "currentevents": "Текущие события",
        "currentevents-url": "Project:Текущие события",
        "perfcached": "Следующие данные взяты из кэша и могут не учитывать последних изменений. В кэше хранится не более $1 {{PLURAL:$1|записи|записей}}.",
        "perfcachedts": "Следующие данные взяты из кэша, последний раз он обновлялся в $1. В кэше хранится не более $4 {{PLURAL:$4|записи|записей}}.",
        "querypage-no-updates": "Обновление этой страницы сейчас отключено.\nПредставленные здесь данные не будут обновляться.",
-       "viewsource": "Просмотр",
+       "viewsource": "Просмотр вики-текста",
        "viewsource-title": "Просмотр исходного текста страницы $1",
        "actionthrottled": "Ограничение по скорости",
        "actionthrottledtext": "Для борьбы со спамом было установлено ограничение на максимальное число попыток выполнения этого действия в короткий промежуток времени — и вы исчерпали этот лимит. Пожалуйста, повторите попытку через несколько минут.",
        "protectedpagetext": "Эта страница защищена для предотвращения её редактирования или совершений других действий.",
        "viewsourcetext": "Вы можете просмотреть и скопировать исходный текст этой страницы.",
        "viewyourtext": "Вы можете просмотреть и скопировать исходный текст <strong>ваших правок</strong> на этой странице.",
-       "protectedinterface": "Эта страница содержит интерфейсное сообщение программного обеспечения. Во избежание вандализма её изменение запрещено.\nЧтобы добавить или изменить перевод этого сообщения во всех вики, пожалуйста, используйте сайт локализации MediaWiki [//translatewiki.net/ translatewiki.net]",
+       "protectedinterface": "Эта страница содержит интерфейсное сообщение программного обеспечения. Во избежание вандализма её изменение запрещено.\nЧтобы добавить или изменить перевод этого сообщения во всех вики, пожалуйста, используйте сайт локализации MediaWiki [https://translatewiki.net/ translatewiki.net]",
        "editinginterface": "<strong>Внимание:</strong> Вы редактируете страницу, содержащую текст интерфейса программного обеспечения.\nЕё изменение повлияет на внешний вид интерфейса для других пользователей этой вики.",
-       "translateinterface": "Чтобы добавить или изменить перевод этого сообщения, пожалуйста, используйте сайт локализации MediaWiki [//translatewiki.net/ translatewiki.net].",
+       "translateinterface": "Чтобы добавить или изменить перевод этого сообщения, пожалуйста, используйте сайт локализации MediaWiki [https://translatewiki.net/ translatewiki.net].",
        "cascadeprotected": "Данная страница защищена от изменений, поскольку она включена в {{PLURAL:$1|1=следующую страницу, для которой|следующие страницы, для которых}} включена каскадная защита:\n$2",
        "namespaceprotected": "У вас нет разрешения редактировать страницы в пространстве имён «$1».",
        "customcssprotected": "У вас нет разрешения редактировать эту CSS-страницу, так как она содержит личные настройки другого участника.",
        "yourdomainname": "Ваш домен:",
        "password-change-forbidden": "Вы не можете изменить пароль в этой вики.",
        "externaldberror": "Произошла ошибка при аутентификации с помощью внешней базы данных или у вас недостаточно прав для внесения изменений в свою внешнюю учётную запись.",
-       "login": "Представиться системе",
+       "login": "Войти",
+       "login-security": "Подтвердите свою личность",
        "nav-login-createaccount": "Представиться / зарегистрироваться",
        "userlogin": "Представиться или зарегистрироваться",
-       "userloginnocreate": "Ð\9fÑ\80едÑ\81Ñ\82авиÑ\82Ñ\8cÑ\81Ñ\8f",
+       "userloginnocreate": "Ð\92ойÑ\82и",
        "logout": "Завершение сеанса",
        "userlogout": "Завершение сеанса",
        "notloggedin": "Вы не представились системе",
        "userlogin-resetpassword-link": "Сбросить ваш пароль?",
        "userlogin-helplink2": "Помощь по входу",
        "userlogin-loggedin": "Вы уже вошли как {{GENDER:$1|$1}}.\nИспользуйте форму ниже, чтобы войти под другой учётной записью.",
+       "userlogin-reauth": "Вы должны войти в систему снова, чтобы подтвердить, что вы и есть {{GENDER:$1|$1}}.",
        "userlogin-createanother": "Создать другую учётную запись",
        "createacct-emailrequired": "Адрес электронной почты",
        "createacct-emailoptional": "Адрес электронной почты (необязательно)",
        "createacct-email-ph": "Введите свой адрес электронной почты",
        "createacct-another-email-ph": "Введите адрес электронной почты",
        "createaccountmail": "Использовать сгенерированный случайным образом временный пароль и выслать его на указанный адрес электронной почты",
+       "createaccountmail-help": "\nМожет использоваться, чтобы создать учетную запись для другого лица, не узнавая пароль.",
        "createacct-realname": "Настоящее имя (необязательно)",
        "createaccountreason": "Причина:",
        "createacct-reason": "Причина",
        "createacct-reason-ph": "Зачем вы создаёте другую учетную запись",
+       "createacct-reason-help": "Сообщение, отображаемое в журнале создания учётных записей",
        "createacct-submit": "Создать учётную запись",
        "createacct-another-submit": "Создать учётную запись",
        "createacct-continue-submit": "Продолжить создание учётной записи",
        "nocookiesnew": "Участник зарегистрирован, но не представлен. {{SITENAME}} использует «cookies» для представления участников. У вас «cookies» запрещены. Пожалуйста, разрешите их, а затем представьтесь со своиим новым именем участника и паролем.",
        "nocookieslogin": "{{SITENAME}} использует «cookies» для представления участников. Вы их отключили. Пожалуйста, включите их и попробуйте снова.",
        "nocookiesfornew": "Учётная запись участника не была создана из-за невозможности проверить её источник. \nУбедитесь, что включены «cookies», обновите страницу и попробуйте ещё раз.",
+       "createacct-loginerror": "Учётная запись была успешно создана, но вы не смогли войти в систему автоматически. Пожалуйста, [[Special:UserLogin|авторизуйтесь вручную]].",
        "noname": "Вы не указали допустимого имени участника.",
        "loginsuccesstitle": "Вход произведён",
        "loginsuccess": "Теперь вы работаете под именем $1.",
        "resetpass-temp-password": "Временный пароль:",
        "resetpass-abort-generic": "Изменение пароля было прервано расширением.",
        "resetpass-expired": "Срок действия вашего пароля истёк. Пожалуйста, установите новый пароль для входа в систему.",
-       "resetpass-expired-soft": "Срок действия вашего пароля истёк, и теперь он должен быть изменён. Пожалуйста, выберите новый пароль или нажмите «{{int:resetpass-submit-cancel}}», чтобы изменить его позже.",
-       "resetpass-validity-soft": "Задан некорректный пароль: $1\n\nПожалуйста, выберите новый пароль или нажмите «{{int:resetpass-submit-cancel}}», чтобы сбросить его позже.",
+       "resetpass-expired-soft": "Срок действия вашего пароля истёк, и теперь он должен быть изменён. Пожалуйста, выберите новый пароль или нажмите «{{int:authprovider-resetpass-skip-label}}», чтобы изменить его позже.",
+       "resetpass-validity-soft": "Задан некорректный пароль: $1\n\nПожалуйста, выберите новый пароль или нажмите «{{int:authprovider-resetpass-skip-label}}», чтобы сбросить его позже.",
        "passwordreset": "Сброс пароля",
        "passwordreset-text-one": "Заполните эту форму, чтобы сбросить свой пароль.",
        "passwordreset-text-many": "{{PLURAL:$1|Заполните одно из полей для получения временного пароля по электронной почте.}}",
-       "passwordreset-disabled": "СбÑ\80оÑ\81Ñ\8b Ð¿Ð°Ñ\80олÑ\8f Ð¾Ñ\82клÑ\8eÑ\87енÑ\8b Ð½Ð° Ñ\8dÑ\82ой Ð²Ð¸ÐºÐ¸.",
+       "passwordreset-disabled": "СбÑ\80оÑ\81Ñ\8b Ð¿Ð°Ñ\80олÑ\8f Ð² Ñ\8dÑ\82ой Ð²Ð¸ÐºÐ¸ Ð¾Ñ\82клÑ\8eÑ\87енÑ\8b.",
        "passwordreset-emaildisabled": "Функции электронной почты отключены в этой вики.",
        "passwordreset-username": "Имя участника:",
        "passwordreset-domain": "Домен:",
        "passwordreset-emailsentusername": "Если есть адрес электронной почты, связанный с этим именем участника, то будет отправлено письмо для восстановления пароля.",
        "passwordreset-emailsent-capture": "Отправлено электронное письмо с информацией о сбросе пароля, текст которого можно увидеть ниже.",
        "passwordreset-emailerror-capture": "Было создано электронное письмо с информацией о сбросе пароля, текст которого можно увидеть ниже, однако его не удалось отправить {{GENDER:$2|участнику|участнице}} по следующей причине: $1",
+       "passwordreset-emailsent-capture2": "{{PLURAL:$1|Письмо|Письма}} для сброса пароля {{PLURAL:$1|было отправлено|были отправлены}}. {{PLURAL:$1|Логин и пароль показаны|Список логинов и паролей показан}} ниже.",
+       "passwordreset-emailerror-capture2": "Отправка {{GENDER:$2|участнику}} письма по электронной почте не удалась: $1 В {{PLURAL:$3|логин и пароль показаны|список логинов и паролей показан}} ниже.",
        "passwordreset-invalideamil": "Недопустимый адрес электронной почты",
+       "passwordreset-nodata": "Ни имя участника, ни адрес электронной почты не были предоставлены",
        "changeemail": "Изменить или удалить адрес электронной почты",
        "changeemail-header": "Заполните эту форму, чтобы изменить свой адрес электронной почты. Если вы хотите отвязать свой адрес электронной почты от учётной записи, то при заполнении формы оставьте пустым поле нового адреса электронной почты.",
        "changeemail-passwordrequired": "Чтобы подтвердить это изменение, вам нужно будет ввести свой пароль.",
        "summary": "Описание изменений:",
        "subject": "Тема/заголовок:",
        "minoredit": "Малое изменение",
-       "watchthis": "Ð\92клÑ\8eÑ\87иÑ\82Ñ\8c Ñ\8dÑ\82Ñ\83 Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\83 Ð² Ñ\81пиÑ\81ок Ð½Ð°Ð±Ð»Ñ\8eдениÑ\8f",
+       "watchthis": "СледиÑ\82Ñ\8c Ð·Ð° Ñ\8dÑ\82ой Ñ\81Ñ\82Ñ\80аниÑ\86ей",
        "savearticle": "Записать страницу",
+       "savechanges": "Сохранить изменения",
        "publishpage": "издавать страницу",
+       "publishchanges": "Опубликовать изменения",
        "preview": "Предпросмотр",
        "showpreview": "Предварительный просмотр",
        "showdiff": "Внесённые изменения",
        "nosuchsectiontitle": "Невозможно найти раздел",
        "nosuchsectiontext": "Вы пытаетесь редактировать несуществующий раздел.\nВозможно, он был перемещён или удалён, пока вы просматривали эту страницу.",
        "loginreqtitle": "Требуется авторизация",
-       "loginreqlink": "пÑ\80едÑ\81Ñ\82авиÑ\82Ñ\8cÑ\81Ñ\8f",
+       "loginreqlink": "войÑ\82и",
        "loginreqpagetext": "Вы должны $1, чтобы просмотреть другие страницы.",
        "accmailtitle": "Пароль выслан",
        "accmailtext": "Сгенерированный случайным образом пароль для [[User talk:$1|$1]] выслан на адрес $2.\n\nПосле авторизации можно будет сменить пароль для этой учётной записи на ''[[Special:ChangePassword|специальной странице смены пароля]]''.",
        "searchall": "все",
        "showingresults": "Ниже {{PLURAL:$1|1=показан <strong>1</strong> результат|показан  <strong>$1</strong> результат|показано <strong>$1</strong> результата|показаны <strong>$1</strong> результатов}}, начиная с № <strong>$2</strong>.",
        "showingresultsinrange": "Ниже показано до {{PLURAL:$1|<strong>1</strong> результата|<strong>$1</strong> результата|<strong>$1</strong> результатов}} в диапазоне от <strong>$2</strong> до <strong>$3</strong>.",
-       "search-showingresults": "{{PLURAL:$4|Результат <strong>$1</strong> из <strong>$3</strong>|Результаты <strong>$1 — $2</strong> из <strong>$3</strong>}}",
+       "search-showingresults": "{{PLURAL:$4|1=Результат <strong>$1</strong> из <strong>$3</strong>|Результаты <strong>$1—$2</strong> из <strong>$3</strong>}}",
        "search-nonefound": "Соответствий запросу не найдено.",
        "search-nonefound-thiswiki": "Нет результатов, соответствующих запросу на этом сайте.",
        "powersearch-legend": "Расширенный поиск",
        "userrights-groupsmember-auto": "Неявно состоит в группах:",
        "userrights-groups-help": "Вы можете изменить группы, в которые входит этот участник.\n* Если около названия группы стоит отметка, значит участник входит в эту группу.\n* Если отметка не стоит — участник не относится к соответствующей группе.\n* Знак * отмечает, что вы не сможете удалить участника из группы, если добавите его в неё, или наоборот.",
        "userrights-reason": "Причина:",
-       "userrights-no-interwiki": "У Ð²Ð°Ñ\81 Ð½ÐµÑ\82 Ñ\80азÑ\80еÑ\88ениÑ\8f Ð¸Ð·Ð¼ÐµÐ½Ñ\8fÑ\82Ñ\8c Ð¿Ñ\80ава Ñ\83Ñ\87аÑ\81Ñ\82ников Ð½Ð° других вики.",
+       "userrights-no-interwiki": "У Ð²Ð°Ñ\81 Ð½ÐµÑ\82 Ñ\80азÑ\80еÑ\88ениÑ\8f Ð¸Ð·Ð¼ÐµÐ½Ñ\8fÑ\82Ñ\8c Ð¿Ñ\80ава Ñ\83Ñ\87аÑ\81Ñ\82ников Ð² других вики.",
        "userrights-nodatabase": "База данных $1 не существует или расположена не локально.",
        "userrights-nologin": "Вы должны [[Special:UserLogin|представиться системе]] с учётной записи администратора, чтобы присваивать права участникам.",
        "userrights-notallowed": "У вас нет разрешения добавлять и удалять права участников.",
        "right-protect": "изменение уровня защиты страниц и правка каскадно защищённых страниц",
        "right-editprotected": "правка страниц, защищённых как «{{int:protect-level-sysop}}»",
        "right-editsemiprotected": "правка страниц, защищённых как «{{int:protect-level-autoconfirmed}}»",
-       "right-editcontentmodel": "Редактирование контентной модели страницы",
+       "right-editcontentmodel": "редактирование контентной модели страницы",
        "right-editinterface": "изменение пользовательского интерфейса",
        "right-editusercssjs": "правка CSS- и JS-файлов других участников",
        "right-editusercss": "правка CSS-файлов других участников",
        "right-override-export-depth": "экспортирование страниц, включая связанные страницы с глубиной до 5",
        "right-sendemail": "отправка электронной почты другим участникам",
        "right-passwordreset": "просмотр электронных писем с изменением пароля",
-       "right-managechangetags": "Создание и (де)активация [[Special:Tags|меток]]",
+       "right-managechangetags": "создание и (де)активация [[Special:Tags|меток]]",
        "right-applychangetags": "применение [[Special:Tags|меток]] вместе со своими правками",
        "right-changetags": "добавление и удаление произвольных [[Special:Tags|меток]] на отдельных правках и записях в журнале",
-       "right-deletechangetags": "Удаление [[Special:Tags|меток]] из базы данных",
+       "right-deletechangetags": "удаление [[Special:Tags|меток]] из базы данных",
        "grant-generic": "Набор прав «$1»",
        "grant-group-page-interaction": "Взаимодействие со страницами",
        "grant-group-file-interaction": "Взаимодействие с медиафайлами",
        "rightslogtext": "Это журнал изменений прав участника.",
        "action-read": "чтение этой страницы",
        "action-edit": "редактирование этой страницы",
-       "action-createpage": "Ñ\81оздание Ñ\81Ñ\82Ñ\80аниÑ\86",
-       "action-createtalk": "Ñ\81оздание Ñ\81Ñ\82Ñ\80аниÑ\86 Ð¾Ð±Ñ\81Ñ\83ждений",
+       "action-createpage": "Ñ\81оздание Ñ\8dÑ\82ой Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\8b",
+       "action-createtalk": "Ñ\81оздание Ñ\8dÑ\82ой Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\8b Ð¾Ð±Ñ\81Ñ\83ждениÑ\8f",
        "action-createaccount": "создание этой учётной записи",
        "action-autocreateaccount": "автоматический вход с помощью внешней учётной записи участника",
        "action-history": "просмотр истории этой страницы",
        "hide": "Скрыть",
        "show": "Показать",
        "minoreditletter": "м",
-       "newpageletter": "Ð\9d",
+       "newpageletter": "н",
        "boteditletter": "б",
        "unpatrolledletter": "!",
        "number_of_watching_users_pageview": "[$1 {{PLURAL:$1|наблюдающий участник|наблюдающих участника|наблюдающих участников}}]",
        "upload-http-error": "Произошла ошибка HTTP: $1",
        "upload-copy-upload-invalid-domain": "Копирование загрузок не доступно в этом домене.",
        "upload-foreign-cant-upload": "Эта вики не настроена для загрузки файлов на запрошенный сторонний файловый репозиторий.",
+       "upload-foreign-cant-load-config": "Не удалось загрузить конфигурацию загрузки файлов на внешнее хранилище файлов.",
+       "upload-dialog-disabled": "На этом вики-сайте отключена возможность загрузки файлов с помощью этого диалогового окна.",
        "upload-dialog-title": "Загрузить файл",
        "upload-dialog-button-cancel": "Отменить",
        "upload-dialog-button-done": "Готово",
        "apisandbox": "Песочница API",
        "apisandbox-jsonly": "Для использования API-песочницы требуется JavaScript.",
        "apisandbox-api-disabled": "API отключен на этом сайте.",
-       "apisandbox-intro": "Используйте эту страницу для экспериментов с <strong>MediaWiki API</strong>.\nОбратитесь к [[mw:API:Main page|документации API]] для получения дополнительной информации об использовании API. Например, о том, [//www.mediawiki.org/wiki/API#A_simple_example как получить содержание Заглавной страницы]. Выберите действие, чтобы увидеть другие примеры.\nОбратите внимание, что, хотя это и песочница, действия, выполненные на этой странице, могут внести изменения в вики.",
+       "apisandbox-intro": "Используйте эту страницу для экспериментов с <strong>MediaWiki API</strong>.\nОбратитесь к [[mw:API:Main page|документации API]] для получения дополнительной информации об использовании API. Например, о том, [https://www.mediawiki.org/wiki/API#A_simple_example как получить содержание Заглавной страницы]. Выберите действие, чтобы увидеть другие примеры.\nОбратите внимание, что, хотя это и песочница, действия, выполненные на этой странице, могут внести изменения в вики.",
        "apisandbox-fullscreen": "Развернуть панель",
        "apisandbox-fullscreen-tooltip": "Развернуть панель песочницы, чтобы заполнить окно браузера.",
        "apisandbox-unfullscreen": "Показать страницу",
        "trackingcategories-msg": "Отслеживающая категория",
        "trackingcategories-name": "Имя сообщения",
        "trackingcategories-desc": "Критерий включения в категорию",
+       "restricted-displaytitle-ignored": "Страницы с игнорируемыми отображаемыми названиями",
        "noindex-category-desc": "Страница не индексируются поисковыми роботами, потому что на ней имеется «волшебное слово» <code><nowiki>__NOINDEX__</nowiki></code>, и она находится в пространстве имён, где разрешён этот флаг).",
        "index-category-desc": "На странице имеется «волшебное слово» <nowiki>__INDEX__</nowiki> (и страница находится в пространстве имён, где разрешён этот флаг), поэтому она индексируются поисковыми роботами в тех случаях, когда этого обычно не происходит.",
        "post-expand-template-inclusion-category-desc": "Размер страницы станет больше <code>$wgMaxArticleSize</code> после показа всех шаблонов, поэтому некоторые из них не были показаны полностью.",
        "addedwatchtext": "Страница «[[:$1]]» вместе с её обсуждением были добавлены в ваш [[Special:Watchlist|список наблюдения]].",
        "addedwatchtext-short": "Страница «$1» была добавлена в ваш список наблюдения.",
        "removewatch": "Удалить из списка наблюдения",
-       "removedwatchtext": "Статья «[[:$1]]» и её страница обсуждения были удалены из вашего [[Special:Watchlist|списка наблюдения]].",
+       "removedwatchtext": "Страница «[[:$1]]» вместе с её обсуждением были удалены из вашего [[Special:Watchlist|списка наблюдения]].",
        "removedwatchtext-short": "Страница «$1» была удалена из вашего списка наблюдения.",
        "watch": "Следить",
        "watchthispage": "Наблюдать за этой страницей",
        "rollbacklinkcount": "откатить $1 {{PLURAL:$1|правку|правки|правок}}",
        "rollbacklinkcount-morethan": "откатить больше, чем $1 {{PLURAL:$1|правку|правки|правок}}",
        "rollbackfailed": "Ошибка при совершении отката",
+       "rollback-missingparam": "Отсутствуют обязательные параметры по запросу.",
        "cantrollback": "Невозможно откатить изменения. Последним, кто вносил изменения, был единственный автор этой страницы.",
        "alreadyrolled": "Невозможно откатить последние изменения страницы «[[:$1]]», совершённые [[User:$2|$2]] ([[User talk:$2|обсуждение]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]),\nпоскольку кто-то другой уже успел откатить эти правки или отредактировать страницу.\n\nПоследние изменения {{GENDER:$3|внёс|внесла}} [[User:$3|$3]] ([[User talk:$3|обсуждение]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
        "editcomment": "Было дано описание изменения: <em>$1</em>.",
        "revertpage": "Откат правок [[Special:Contributions/$2|$2]] ([[User talk:$2|обсуждение]]) к версии [[User:$1|$1]]",
        "revertpage-nouser": "Правки (имя участника скрыто) откачены к версии {{GENDER:$1|[[User:$1|$1]]}}",
        "rollback-success": "Откачены правки $1; возврат к версии $2.",
+       "rollback-success-notify": "Откачены правки $1; возврат к последней версии $2. [$3 Показать изменения]",
        "sessionfailure-title": "Ошибка сеанса",
        "sessionfailure": "Похоже, возникли проблемы с текущим сеансом работы;\nэто действие было отменено в целях предотвращения «захвата сеанса».\nПожалуйста, нажмите кнопку «Назад» и перезагрузите страницу, с которой вы пришли.",
        "changecontentmodel": "Редактирование контентной модели страницы",
        "sp-contributions-username": "IP-адрес или имя участника:",
        "sp-contributions-toponly": "Показывать только правки, являющиеся последними версиями",
        "sp-contributions-newonly": "Показывать только правки, являющиеся созданием страниц",
+       "sp-contributions-hideminor": "Скрыть малые правки",
        "sp-contributions-submit": "Найти",
        "whatlinkshere": "Ссылки сюда",
        "whatlinkshere-title": "Страницы, ссылающиеся на «$1»",
        "cant-move-category-page": "У вас нет разрешения переименовывать страницы категорий.",
        "cant-move-to-category-page": "У вас нет разрешения переименовывать страницы в страницу категории.",
        "newtitle": "Новое название:",
-       "move-watch": "Ð\92клÑ\8eÑ\87иÑ\82Ñ\8c Ñ\8dÑ\82Ñ\83 Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\83 Ð² Ñ\81пиÑ\81ок Ð½Ð°Ð±Ð»Ñ\8eдениÑ\8f",
+       "move-watch": "Ð\94обавиÑ\82Ñ\8c Ð² Ñ\81пиÑ\81ок Ð½Ð°Ð±Ð»Ñ\8eдениÑ\8f Ð¸Ñ\81Ñ\85однÑ\83Ñ\8e Ð¸ Ñ\86елевÑ\83Ñ\8e Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\8b",
        "movepagebtn": "Переименовать страницу",
        "pagemovedsub": "Страница переименована",
        "movepage-moved": "'''Страница «$1» переименована в «$2»'''",
        "allmessagesname": "Сообщение",
        "allmessagesdefault": "Текст по умолчанию",
        "allmessagescurrent": "Текущий текст",
-       "allmessagestext": "Это список системных сообщений, доступных в пространстве имён «MediaWiki».\nЕсли вы хотите внести вклад в общую локализацию MediaWiki, пожалуйста, посетите страницу [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation описания локализации] и проект [//translatewiki.net translatewiki.net].",
+       "allmessagestext": "Это список системных сообщений, доступных в пространстве имён «MediaWiki».\nЕсли вы хотите внести вклад в общую локализацию MediaWiki, пожалуйста, посетите страницу [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation описания локализации] и проект [https://translatewiki.net translatewiki.net].",
        "allmessagesnotsupportedDB": "Эта страница недоступна, так как отключена опция '''$wgUseDatabaseMessages'''.",
        "allmessages-filter-legend": "Фильтр",
        "allmessages-filter": "Фильтр по статусу изменения:",
        "tooltip-ca-undelete": "Восстановить исправления страницы, сделанные до того, как она была удалена",
        "tooltip-ca-move": "Переименовать страницу",
        "tooltip-ca-watch": "Добавить эту страницу в ваш список наблюдения",
-       "tooltip-ca-unwatch": "Удалить эту страницу из вашего списка наблюдения",
+       "tooltip-ca-unwatch": "Удалить эту страницу из своего списка наблюдения",
        "tooltip-search": "Искать в {{grammar:prepositional|{{SITENAME}}}}",
        "tooltip-search-go": "Перейти к странице, имеющей в точности такое название",
        "tooltip-search-fulltext": "Найти страницы, содержащие указанный текст",
        "timezone-local": "Местное",
        "duplicate-defaultsort": "Внимание. Ключ сортировки по умолчанию «$2» переопределяет прежний ключ сортировки по умолчанию «$1».",
        "duplicate-displaytitle": "<strong>Внимание:</strong> Отображаемое название «$2» переопределяет ранее заданное отображаемое название «$1».",
-       "restricted-displaytitle": "<strong>Ð\92нимание:</strong> Ð\9eÑ\82обÑ\80ажаемое Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ðµ Â«$1» Ð±Ñ\8bло Ð¿Ñ\80оигноÑ\80иÑ\80овано, Ð¿Ð¾Ñ\81колÑ\8cкÑ\83 Ð¾Ð½Ð° не соответствует актуальному названию страницы.",
+       "restricted-displaytitle": "<strong>Ð\92нимание:</strong> Ð\9eÑ\82обÑ\80ажаемое Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ðµ Â«$1» Ð±Ñ\8bло Ð¿Ñ\80оигноÑ\80иÑ\80овано, Ð¿Ð¾Ñ\81колÑ\8cкÑ\83 Ð¾Ð½Ð¾ не соответствует актуальному названию страницы.",
        "invalid-indicator-name": "<strong>Ошибка:</strong> Атрибут <code>name</code> индикаторов состояния страницы не должен быть пустым.",
        "version": "Версия",
        "version-extensions": "Установленные расширения",
        "mw-widgets-dateinput-placeholder-month": "ГГГГ-ММ",
        "mw-widgets-titleinput-description-new-page": "страница ещё не существует",
        "mw-widgets-titleinput-description-redirect": "перенаправление на $1",
-       "api-error-blacklisted": "Пожалуйста, выберите другое, более понятное название.",
        "sessionmanager-tie": "Невозможно использовать одновременно несколько типов проверки подлинности запроса: $1.",
        "sessionprovider-generic": "$1 сессий",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "сессий на основе куки",
        "log-action-filter-newusers": "Тип создания учётной записи:",
        "log-action-filter-patrol": "Тип патрулирования:",
        "log-action-filter-protect": "Тип защиты:",
-       "log-action-filter-rights": "Тип изменения прав",
-       "log-action-filter-suppress": "Тип сокрытия",
+       "log-action-filter-rights": "Тип изменения прав:",
+       "log-action-filter-suppress": "Тип сокрытия:",
        "log-action-filter-upload": "Тип загрузки:",
        "log-action-filter-all": "Все",
        "log-action-filter-block-block": "Блокировка",
        "log-action-filter-suppress-reblock": "Сокрытие пользователя через повторное блокирование",
        "log-action-filter-upload-upload": "Новая загрузка",
        "log-action-filter-upload-overwrite": "Повторно загрузить",
+       "authmanager-authn-no-primary": "Предоставленные учётные данные не могут быть проверены на подлинность.",
+       "authmanager-authn-no-local-user": "Предоставленные учётные данные не связаны ни с одним участником этой вики.",
+       "authmanager-authn-no-local-user-link": "Предоставленные учётные данные корректны, но не связаны ни с одни участником этой вики. Войдите с помощью какого-то другого способа или создайте новую учётную запись, и у вас появится возможность привязать свои предыдущие учётные данные к этой учетной записи.",
        "authmanager-authn-autocreate-failed": "Автоматическое создание локальной учётной записи не удалось: $1",
        "authmanager-create-disabled": "Создание учётных записей отключено.",
+       "authmanager-create-from-login": "Чтобы создать учётную запись, пожалуйста, заполните приведённые ниже поля.",
+       "authmanager-create-not-in-progress": "Создание учётной записи не выполняется или данные сессии были утеряны. Пожалуйста, начните снова с самого начала.",
+       "authmanager-create-no-primary": "Предоставленные учётные данные не могут быть использованы для создания учётной записи.",
+       "authmanager-link-no-primary": "Предоставленные учётные данные не могут быть использованы для связывания учётных записей.",
+       "authmanager-link-not-in-progress": "Связывание учётной записи не выполняется или данные сессии были утеряны. Пожалуйста, начните снова с самого начала.",
        "authmanager-authplugin-setpass-failed-title": "Ошибка изменения пароля",
+       "authmanager-authplugin-setpass-failed-message": "Плагин аутентификации запрещает смену пароля.",
+       "authmanager-authplugin-create-fail": "Плагин аутентификации запрещает создание учётных записей.",
+       "authmanager-authplugin-setpass-denied": "Плагин аутентификации не позволяет изменять пароли.",
        "authmanager-authplugin-setpass-bad-domain": "Неверный домен.",
+       "authmanager-autocreate-noperm": "Автоматическое создание учётных записей не разрешено.",
        "authmanager-autocreate-exception": "Автоматическое создание учётной записи временно отключено из-за предыдущих ошибок.",
        "authmanager-userdoesnotexist": "Не зарегистрировано учётной записи «$1».",
+       "authmanager-username-help": "Имя участника для проверки подлинности.",
+       "authmanager-password-help": "Пароль для проверки подлинности.",
        "authmanager-domain-help": "Домен для внешней аутентификации.",
+       "authmanager-retype-help": "Ещё раз пароль для подтверждения.",
        "authmanager-email-label": "Электронная почта",
        "authmanager-email-help": "Адрес электронной почты",
        "authmanager-realname-label": "Настоящее имя",
        "authmanager-realname-help": "Настоящее имя участника",
        "authmanager-provider-password": "Аутентификация на основе пароля",
+       "authmanager-provider-password-domain": "Проверка подлинности на основе пароля и домена",
        "authmanager-provider-temporarypassword": "Временный пароль",
+       "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": "Пропустить",
        "authprovider-resetpass-skip-help": "Пропустить сброс пароля.",
+       "authform-nosession-signup": "Учётная запись была создана, но ваш браузер не сможет «запомнить», что вы вошли.\n\n$1",
+       "authform-newtoken": "Отсутствует токен. $1",
+       "authform-notoken": "Отсутствует токен",
+       "authform-wrongtoken": "Неверный токен",
+       "specialpage-securitylevel-not-allowed-title": "Не разрешено",
+       "specialpage-securitylevel-not-allowed": "Извините, вам не можете использовать эту страницу, поскольку ваша личность не может быть проверена.",
+       "authpage-cannot-login": "Невозможно продолжить вход в учётную запись.",
+       "authpage-cannot-login-continue": "Невозможно продолжить вход в учётную запись. Скорее всего, время вашей сессии истекло.",
+       "authpage-cannot-create": "Невозможно продолжить создание учётной записи.",
+       "authpage-cannot-create-continue": "Невозможно продолжить создание учётной записи. Скорее всего, время вашей сессии истекло.",
+       "authpage-cannot-link": "Невозможно начать связывание учётной записи.",
+       "authpage-cannot-link-continue": "Невозможно продолжить связывание учётной записи. Скорее всего, время вашей сессии истекло.",
        "cannotauth-not-allowed-title": "Доступ запрещён",
        "cannotauth-not-allowed": "Вы не можете использовать эту страницу",
        "changecredentials": "Изменение учётных данных",
-       "changecredentials-submit": "Изменить",
-       "changecredentials-submit-cancel": "Отмена",
+       "changecredentials-submit": "Изменить учётные данные",
        "changecredentials-invalidsubpage": "$1 является недопустимым типом учётных данных.",
        "changecredentials-success": "Ваши учётные данные были изменены.",
        "removecredentials": "Удалить учётные данные",
-       "removecredentials-submit": "Удалить",
-       "removecredentials-submit-cancel": "Отмена"
+       "removecredentials-submit": "Удалить учётные данные",
+       "removecredentials-invalidsubpage": "$1 является недопустимым типом учётных данных.",
+       "removecredentials-success": "Ваши учётные данные были удалены.",
+       "credentialsform-provider": "Тип учётных данных:",
+       "credentialsform-account": "Имя учётной записи:",
+       "cannotlink-no-provider-title": "Нет связываемых учётных записей",
+       "cannotlink-no-provider": "Нет связываемых учётных записей.",
+       "linkaccounts": "Связать учётные записи",
+       "linkaccounts-success-text": "Учетная запись была связана.",
+       "linkaccounts-submit": "Связать учётные записи",
+       "unlinkaccounts": "Отвязать учётные записи",
+       "unlinkaccounts-success": "Учетная запись была отвязан."
 }
index b7f8c44..1259b35 100644 (file)
        "protectedpagetext": "Тота сторінка была замкнута, жебы не годен быв єй едітовати або інакше мінити.",
        "viewsourcetext": "Можете видїти і копіровати код той сторінкы:",
        "viewyourtext": "Можете собі посмотрити і скопіровати жрідловый текст '''вашых змін''' той сторінкы:",
-       "protectedinterface": "Тота сторінка є частёв інтрефейсу проґрамового забеспечіня той вікі і єй можуть едітовати лем адміністраторы проєкту.\nЖебы придати або змінити переклады, просиме хоснуйте [//translatewiki.net/ translatewiki.net], локалізачный проєкт MediaWiki.",
-       "editinginterface": "'''Позірь:''' Едітуєте сторінку,котра є частинов текстового інтерфейсу.\nЗміны той сторінкы выкличуть зміну інтерфейсу про іншых хоснователїв той вікі. \nДодати ці змінити переклады на вшыткых вікі просиме хоснуйте [//translatewiki.net/wiki/Main_Page?setlang=uk translatewiki.net] — проєкт, што ся занимать локалізаціов MediaWiki.",
+       "protectedinterface": "Тота сторінка є частёв інтрефейсу проґрамового забеспечіня той вікі і єй можуть едітовати лем адміністраторы проєкту.\nЖебы придати або змінити переклады, просиме хоснуйте [https://translatewiki.net/ translatewiki.net], локалізачный проєкт MediaWiki.",
+       "editinginterface": "'''Позірь:''' Едітуєте сторінку,котра є частинов текстового інтерфейсу.\nЗміны той сторінкы выкличуть зміну інтерфейсу про іншых хоснователїв той вікі. \nДодати ці змінити переклады на вшыткых вікі просиме хоснуйте [https://translatewiki.net/wiki/Main_Page?setlang=uk translatewiki.net] — проєкт, што ся занимать локалізаціов MediaWiki.",
        "cascadeprotected": "Сторінка є замнкута, бо є вложена до  {{PLURAL:$1|наслїдуючой сторінкы замкнуты|наслїдуючіх сторінок замнкнутых|наслїдуючіх сторінок замнкнутых}} каскадовым замком:\n$2",
        "namespaceprotected": "Не маєте права едітовати сторінкы в просторї  назв «$1».",
        "customcssprotected": "Не маєте права едітовати тоту сторінку з CSS, бо обсягує персоналны наставлїна іншого хоснователя.",
        "allmessagesname": "Назва",
        "allmessagesdefault": "Штандартный текст",
        "allmessagescurrent": "Актуалный текст",
-       "allmessagestext": "Тото є список вшыткых повідомлїнь доступных в просторї назв «MediaWiki».\nКідь хочете приспівати ку локалізації софтверу MediaWiki, навщівте [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation локалізачну сторінку на mediawiki.org] і [//translatewiki.net сервер server translatewiki.net].",
+       "allmessagestext": "Тото є список вшыткых повідомлїнь доступных в просторї назв «MediaWiki».\nКідь хочете приспівати ку локалізації софтверу MediaWiki, навщівте [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation локалізачну сторінку на mediawiki.org] і [https://translatewiki.net сервер server translatewiki.net].",
        "allmessagesnotsupportedDB": "{{ns:special}}:AllMessages не є підпороване, бо wgUseDatabaseMessages є выпнуте.",
        "allmessages-filter-legend": "Філтер",
        "allmessages-filter": "Філтер за станом:",
index 8b5d51c..39b1992 100644 (file)
        "protectedpagetext": "सम्पादनं, अन्यक्रियां च अवरोद्धुम् इदं पृष्ठं संरक्षितमस्ति ।",
        "viewsourcetext": "भवान्/भवती एतस्य पृष्ठस्य स्रोतः द्रष्टुं, मुद्रणं (print) कर्तुं च अर्हति ।",
        "viewyourtext": "भवान्/भवती एतस्मिन् पृष्ठे '''स्वस्य सम्पादनानि'' द्रष्टुं  अर्हति, तेषां प्रतिलिपिम् (copy) अपि कर्तुं अर्हति ।",
-       "protectedinterface": "एतत् पृष्ठं तन्त्रांशाय मध्यस्थपाठं (interface text) प्रयच्छति । इदञ्च पृष्ठम् अयोग्यसम्पादनात् संरक्षितमस्ति ।  \nविकि इत्यस्य सर्वेषु बन्धुप्रकल्पेषु अनुवादमिदं योजयितुं कृपया [//translatewiki.net/ translatewiki.net] इत्यस्य मिडीयाविकि-स्थानीयकरणस्य उपयोगं करोतु ।",
+       "protectedinterface": "एतत् पृष्ठं तन्त्रांशाय मध्यस्थपाठं (interface text) प्रयच्छति । इदञ्च पृष्ठम् अयोग्यसम्पादनात् संरक्षितमस्ति ।  \nविकि इत्यस्य सर्वेषु बन्धुप्रकल्पेषु अनुवादमिदं योजयितुं कृपया [https://translatewiki.net/ translatewiki.net] इत्यस्य मिडीयाविकि-स्थानीयकरणस्य उपयोगं करोतु ।",
        "editinginterface": "<strong>पूर्वसूचना :</strong> तन्त्रांशाय मध्यस्थपाठं (interface text) प्रयच्छति, तादृशस्य पृष्ठस्य भवता/भवत्या सम्पादनं क्रियमाणमस्ति । अत्र कृतानि परिवर्तनानि अस्य विकि-प्रकल्पस्य अन्ययोजकेभ्यः अपि कार्यान्वितानि भविष्यन्ति ।",
-       "translateinterface": "विकि इत्यस्य सर्वेषु बन्धुप्रकल्पेषु अनुवादमिदं योजयितुं कृपया [//translatewiki.net/ translatewiki.net] इत्यस्य मिडीयाविकि-स्थानीयकरणस्य उपयोगं करोतु ।",
+       "translateinterface": "विकि इत्यस्य सर्वेषु बन्धुप्रकल्पेषु अनुवादमिदं योजयितुं कृपया [https://translatewiki.net/ translatewiki.net] इत्यस्य मिडीयाविकि-स्थानीयकरणस्य उपयोगं करोतु ।",
        "cascadeprotected": "इदं पृष्ठं सम्पादनात् संरक्षितमस्ति । कारणम् एतत् पृष्ठं {{PLURAL:$1|तादृशे पृष्ठे|तादृशेषु पृष्ठेषु}} अन्तर्भवति, यादृशेषु पृष्ठेषु सोपानवत् सुरक्षा अस्ति : $2",
        "namespaceprotected": "भवान्/भवती '''$1''' नामाकाशे अन्तर्भूतेषु पृष्ठेषु परिवर्तनं कर्तुं न शक्नोति ।",
        "customcssprotected": "भवान्/भवती इदं CSS पृष्ठं सम्पादयितुं न शक्नोति । यतः अन्यस्य सदस्यस्य वैयक्तिकव्यवस्थापनानि (settings) अत्र सन्ति ।",
        "resetpass-temp-password": "अल्पकालीनकूटशब्दः :",
        "resetpass-abort-generic": "केनचित् विस्तारकेन (extension) कूटशब्दस्य परिवर्तनं स्थगितम् अस्ति ।",
        "resetpass-expired": "भवतः/भवत्याः कृटशब्दस्य अवधिः समाप्ता । प्रवेष्टुं नवीनकूटशब्दं निर्धारयतु ।",
-       "resetpass-expired-soft": "भवतः/भवत्याः कृटशब्दस्य अवधिः समाप्ता । कृपया नवीनकूटशब्दं निर्धारयतु । पश्चात् नवीनकूटशब्दं निर्धारयितुं \"{{int:resetpass-submit-cancel}}\" नुदतु ।",
-       "resetpass-validity-soft": "भवतः/भवत्याः कृटशब्दः अयोग्यः अस्ति । कृपया नवीनकूटशब्दं निर्धारयतु । पश्चात् नवीनकूटशब्दं निर्धारयितुं \"{{int:resetpass-submit-cancel}}\" नुदतु ।",
+       "resetpass-expired-soft": "भवतः/भवत्याः कृटशब्दस्य अवधिः समाप्ता । कृपया नवीनकूटशब्दं निर्धारयतु । पश्चात् नवीनकूटशब्दं निर्धारयितुं \"{{int:authprovider-resetpass-skip-label}}\" नुदतु ।",
+       "resetpass-validity-soft": "भवतः/भवत्याः कृटशब्दः अयोग्यः अस्ति । कृपया नवीनकूटशब्दं निर्धारयतु । पश्चात् नवीनकूटशब्दं निर्धारयितुं \"{{int:authprovider-resetpass-skip-label}}\" नुदतु ।",
        "passwordreset": "कूटशब्दः परिवर्त्यताम्",
        "passwordreset-text-one": "वि-पत्रमाध्यमेन अल्पकालीनकूटशब्दं प्राप्तुम् अधस्तनं प्रपत्रं पूरयतु ।",
        "passwordreset-text-many": "{{PLURAL:$1|वि-पत्रमाध्यमेन अल्पकालीनकूटशब्दं प्राप्तुम् अधस्तनां कामपि एकां पेटिकां पूरयतु ।}}",
        "allmessagesname": "नाम",
        "allmessagesdefault": "मूलसन्देशः",
        "allmessagescurrent": "सद्यः सन्देशपाठः ।",
-       "allmessagestext": "मीडियाविकि इत्यनेन नामाकाशेन सह सल्लग्नानां यन्त्रजनीतानां सूचनानाम् आवलिः अत्र अस्ति । कृपया अत्र [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation], अत्र [//translatewiki.net translatewiki.net] if you wish to contribute to the generic MediaWiki localisation. च गच्छतु ।",
+       "allmessagestext": "मीडियाविकि इत्यनेन नामाकाशेन सह सल्लग्नानां यन्त्रजनीतानां सूचनानाम् आवलिः अत्र अस्ति । कृपया अत्र [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation], अत्र [https://translatewiki.net translatewiki.net] if you wish to contribute to the generic MediaWiki localisation. च गच्छतु ।",
        "allmessagesnotsupportedDB": "अस्य पुटस्य उपयोगः नैव शक्यते यतः '''$wgUseDatabaseMessages''' तटास्थम् अस्ति ।",
        "allmessages-filter-legend": "शोधनी ।",
        "allmessages-filter": "ग्राहकीकरणस्य स्थितौ शोधनी ।",
index deaa0d6..643d165 100644 (file)
        "category_header": "\"$1\" категория ыстатыйалара",
        "subcategories": "Субкатегориялар",
        "category-media-header": "\"$1\" категория билэлэрэ",
-       "category-empty": "''Бу категорияҕа билигин туох да суох.''",
+       "category-empty": "<em>Бу категорияҕа билигин туох да суох.</em>",
        "hidden-categories": "{{PLURAL:$1|Кистэммит категория|Кистэммит категориялар}}",
        "hidden-category-category": "Кистэммит категориялар",
        "category-subcat-count": "{{PLURAL:$2|Бу категория манна көстүбүт субкатегориялаах.|$2 категорияттан {{PLURAL:$1|субкатегорията|$1 субкатегориялара}} көрдөрүлүннүлэр.}}",
        "about": "Бу туһунан",
        "article": "Ыстатыйа",
        "newwindow": "(атын түннүккэ арыллар)",
-       "cancel": "Ð\90лÒ\95аÑ\81",
+       "cancel": "СалÒ\95аама",
        "moredotdotdot": "Өссө...",
        "morenotlisted": "Бу тиһик толорута суох.",
        "mypage": "Сирэй",
        "searcharticle": "Көрдөр",
        "history": "Устуоруйата",
        "history_short": "Устуоруйа",
-       "updatedmarker": "Кэнники киириим кэнниттэн уларыйыылар",
+       "updatedmarker": "тиһэх киириим кэнниттэн уларыйбыт",
        "printableversion": "Бэчээттииргэ аналлаах барыл",
        "permalink": "Куруук баар сигэ",
        "print": "Бэчээттээ",
        "unprotectthispage": "Бу сирэй көмүскэлин уларыт",
        "newpage": "Саҥа сирэй",
        "talkpage": "Бу сирэйи ырыт",
-       "talkpagelinktext": "Ырытыы",
+       "talkpagelinktext": "ырытыы",
        "specialpage": "Анал сирэй",
        "personaltools": "Тус бэйэ туттар тэриллэрэ",
        "articlepage": "Ыстатыйаны көр",
        "pool-servererror": "Пул ааҕааччытын сулууспата үлэлээбэт($1).",
        "poolcounter-usage-error": "Туһаныы алҕаһа: $1",
        "aboutsite": "{{SITENAME}} туһунан",
-       "aboutpage": "Project:туһунан",
+       "aboutpage": "Project:Бу туһунан",
        "copyright": "Маны туһанары $1 лиссиэнсийэ көҥүллүүр (атын ыйыллыбытах буоллаҕына).",
-       "copyrightpage": "{{ns:project}}:баÑ\81 Ð±Ð¸Ð»Ð¸Ð¸Ñ\82Ñ\8d",
+       "copyrightpage": "{{ns:project}}:Ð\91аÑ\81 Ð±Ð¸Ð»Ð¸Ð¸",
        "currentevents": "Туох буола турара",
        "currentevents-url": "Project:Сонуннар",
        "disclaimers": "Бүк охсунуу",
        "helppage-top-gethelp": "Көмө",
        "mainpage": "Сүрүн сирэй",
        "mainpage-description": "Сүрүн сирэй",
-       "policy-url": "Project:Сиэрэ",
+       "policy-url": "Project:Сиэр-туом",
        "portal": "Түмсүү сирэ",
-       "portal-url": "Project:Ð\9aиÑ\81Ñ\82Ñ\8dÑ\8dһин Ñ\81иÑ\8dрэ",
+       "portal-url": "Project:ТүмÑ\81Ò¯Ò¯ Ñ\81ирэ",
        "privacy": "Кистээһин сиэрэ",
        "privacypage": "Project:Кистээһин сиэрэ",
        "badaccess": "Сатаан киирбэтэ",
        "versionrequired": "MediaWiki $1 -с барыла ирдэнэр",
        "versionrequiredtext": "Бу сирэйи туттарга MediaWiki $1 -с барыла наада. [[Special:Version|Барыллар тустарынан сирэйи]] көр.",
        "ok": "Сөп",
-       "retrievedfrom": "\"$1\" -н кэллэ",
-       "youhavenewmessages": "$1 ($2) кэллэ",
+       "retrievedfrom": "Төрдө — «$1»",
+       "youhavenewmessages": "$1 ($2) кэллэ.",
        "youhavenewmessagesfromusers": "Маны $1 {{PLURAL:$3|соҕотох кыттааччыттан|$3 кыттааччыттан}} туппуккун ($2).",
        "youhavenewmessagesmanyusers": "Маны $1 элбэх кыттааччыттан туппуккун ($2).",
        "newmessageslinkplural": "{{PLURAL:$1|саҥа этии|999=саҥа этии}}",
        "confirmable-yes": "Сөп",
        "confirmable-no": "Суох",
        "thisisdeleted": "$1 көрдөрөбүн эбэтэр хостуубун дуу?",
-       "viewdeleted": "$1 көрдөрөбүн?",
+       "viewdeleted": "$1 - көрөҕүн дуо?",
        "restorelink": "{{PLURAL:$1|биир сотторуллубут көннөрүү|$1 сотторуллубут көннөрүүлэр}}",
        "feedlinks": "Маннык:",
        "feed-invalid": "Суруттарыыга анаммыт ханаал сыыһа тииптээх.",
        "nosuchaction": "Маннык дьайыы суох",
        "nosuchactiontext": "Бу URL-га баар дьайыы сыыһалаах.\nБаҕар URL суруйарга алҕаһаабытыҥ буолуо эбэтэр сыыһалаах сигэннэн тахсыбытыҥ буолуо.\n{{SITENAME}} бэйэтин сыыһата эмиэ буолуон сөп.",
        "nosuchspecialpage": "Маннык анал сирэй суох",
-       "nospecialpagetext": "Аналлаах сирэйи сыыһа көрдөөтүҥ,  [[Special:SpecialPages|манна]] аналлаах сирэйдэр испииһэктэрин булуоххун сөп.",
+       "nospecialpagetext": "<strong>Көрдөөбүт сирэйиҥ суох эбит.</strong>\n\n[[Special:SpecialPages|Аналлаах сирэйдэр испииһэктэрэ]].",
        "error": "Алҕас",
        "databaseerror": "Билии олоҕор сыыһа",
        "databaseerror-text": "Билии олоҕор алҕас таҕыста.\nБырагыраамма алҕаһа буолуон сөп.",
        "databaseerror-query": "Ыйытык: $1",
        "databaseerror-function": "Функция: $1",
        "databaseerror-error": "Алҕас: $1",
-       "transaction-duration-limit-exceeded": "\nРепликация оҥорорго улахан лаг мэһэйдээбэтин туһугар транзакция тохтотуллубута, сурутуу уһуна ($1) ($2){{PLURAL:$2|}}лимиты таһынан ааһарын быһыытынан.\nЭн  биир олорууга хас да элэмиэни уларытар буоллаххына, ол оннугар элбэх улахана суох операциялары оҥорорго холонон көрүҥ.",
-       "laggedslavemode": "Болҕой: Бу сирэй бүтэһик уларытыылара суох буолуон сөп",
+       "transaction-duration-limit-exceeded": "Репликация оҥорорго улахан лаг мэһэйдээбэтин туһугар транзакция тохтотулунна, сурутуу ($1) уһуна ($2){{PLURAL:$2|сөкүүндэ}} лимиты таһынан ааһарын быһыытынан.\nХас да элэмиэни күргүөмүнэн уларытар буоллаххына, ол оннугар биирдиилээн уларытан көр.",
+       "laggedslavemode": "<strong>Болҕой:</strong> Бу сирэй бүтэһик уларытыылара суох буолуон сөп.",
        "readonly": "Билии олоҕун уларытар бобуллубут",
        "enterlockreason": "Уларытыыны бобуу төрүөтүн уонна төһө өр бобулларын ый.",
-       "readonlytext": "Билии олоҕор билигин саҥа киллэриилэр уонна атын уларытыылар бобуллубуттар, бука былааннаммыт көрүү-истии үлэлэр буолалларыттан.\nОну боппут сүрүннээччи маннык сурук хаалларбыт: $1",
+       "readonlytext": "Билии олоҕор билигин саҥа киллэриилэр уонна атын уларытыылар бобуллубуттар, бука былааннаммыт көрүү-истии үлэлэр буолалларыттан буолуо.\n\nОну боппут дьаһабыл маннык быһаарыы сурук хаалларбыт: $1",
        "missing-article": "Көрдөөбүт тиэкиһиҥ манна көстүбэтэ: «$1» $2.\n\nМаннык үксүн сотуллубут сирэй историятыгар тиэрдэр эргэрбит сигэнииттэн тахсааччы.\n\nАтын биричиинэ дии саныыр буоллаххына бырагыраамма сыыһата буолуон сөп.\nОччоҕо [[Special:ListUsers/sysop|администраатарга]] биллэрэриҥ буоллар (URLын умнаайаҕын).",
        "missingarticle-rev": "(#-с торум: $1)",
        "missingarticle-diff": "(Уратыта: $1, $2)",
        "protectedpagetext": "Бу сирэй уларытыыттан уонна да атын дьайыылартан көмүскэммит.",
        "viewsourcetext": "Эн бу сирэй төрүт куодун көрүөххүн уонна төгүллээн ылыаххын сөп:",
        "viewyourtext": "<strong>Бэйэҥ көннөрүүлэриҥ</strong> төрүт куодун бу сирэйгэ көрүөххүн уонна хатылаан ылыаххын сөп.",
-       "protectedinterface": "Ð\91Ñ\83 Ñ\81иÑ\80Ñ\8dй Ð±Ñ\8bÑ\80агÑ\8bÑ\80аамма Ð¸Ð½Ñ\82еÑ\80Ñ\84ейÑ\81Ñ\8bн Ð±Ð¸Ð»Ð»Ñ\8dÑ\80ииÑ\82ин ÐºÓ©Ñ\80дөÑ\80Ó©Ñ\80, Ð¾Ð½Ð¾Ð½ Ð¼Ð¾Ò»Ñ\83огÑ\83Ñ\80Ñ\83Ñ\83Ñ\82Ñ\82ан Ñ\85алÑ\8bÑ\82ан Ñ\85аÑ\82анан Ñ\82Ñ\83Ñ\80аÑ\80.\nТÑ\8bлбааһÑ\8bн Ñ\83лаÑ\80Ñ\8bÑ\82Ñ\8bаÑ\85Ñ\85Ñ\8bн Ð±Ð°Ò\95аÑ\80аÑ\80 Ð±Ñ\83оллаÑ\85Ñ\85Ñ\8bна Ð¾Ð½Ð½Ð¾ Ð°Ð½Ð°Ð»Ð»Ð°Ð°Ñ\85 Ñ\82Ñ\8bлбааÑ\81 Ñ\81иÑ\82им-Ñ\81иÑ\80ин Ñ\82Ñ\83һан: MediaWiki [//translatewiki.net/ translatewiki.net]",
+       "protectedinterface": "Ð\91Ñ\83 Ñ\81иÑ\80Ñ\8dй Ð±Ñ\8bÑ\80агÑ\8bÑ\80аамма Ð°Ð»Ñ\82Ñ\8bһаанÑ\8bн (инÑ\82еÑ\80Ñ\84ейÑ\81ин) Ð±Ð¸Ð»Ð»Ñ\8dÑ\80ииÑ\82ин ÐºÓ©Ñ\80дөÑ\80Ó©Ñ\80, Ð¾Ð½Ð¾Ð½ Ð¼Ð¾Ò»Ñ\83огÑ\83Ñ\80Ñ\83Ñ\83Ñ\82Ñ\82ан Ñ\85алÑ\8bÑ\82ан Ñ\85аÑ\82анан Ñ\82Ñ\83Ñ\80аÑ\80.\nТÑ\8bлбааһÑ\8bн Ñ\83лаÑ\80Ñ\8bÑ\82Ñ\8bаÑ\85Ñ\85Ñ\8bн Ð±Ð°Ò\95аÑ\80аÑ\80 Ð±Ñ\83оллаÑ\85Ñ\85Ñ\8bна Ð¾Ð½Ð½Ð¾ Ð°Ð½Ð°Ð»Ð»Ð°Ð°Ñ\85 Ñ\82Ñ\8bлбааÑ\81 Ñ\81иÑ\82им-Ñ\81иÑ\80и Ñ\82Ñ\83һан: MediaWiki [https://translatewiki.net/ translatewiki.net]",
        "editinginterface": "<strong>Болҕой:</strong> Быраҕыраамма тас көстүүтүн (интерфейсын) хааччыйар тиэкиһи уларытаары гынан эрэҕин.\nБу сирэйи уларыттаххына атын кыттааччылар көрөллөрүгэр быраҕыраамма көстүүтэ уларыйыа.",
-       "translateinterface": "Бу биллэриини тылбаастыырга эбэтэр уларытарга, бука диэн, MediaWiki диэн анал тылбаастыыр сиргэ киир [//translatewiki.net/ translatewiki.net].",
+       "translateinterface": "Бу биллэриини тылбаастыырга эбэтэр уларытарга, бука диэн, MediaWiki диэн анал тылбаастыыр сиргэ киир [https://translatewiki.net/ translatewiki.net].",
        "cascadeprotected": "Бу сирэй уларыйар кыаҕа суох, тоҕо диэтэххэ уларыйара бобуллубут {{PLURAL:$1|сирэй бөлөҕөр|сирэйдэр бөлөхтөрүгэр}} киирэр (каскаднай көмүскэл холбоммут):\n$2",
        "namespaceprotected": "Эн '''$1''' аат эйгэтигэр киирэр сирэйдэри уларытар кыаҕыҥ суох.",
        "customcssprotected": "Эн бу CSS-сирэйи уларытар кыаҕыҥ суох, тоҕо диэтэххэ онтуҥ атын киһи тус бэйэтин туруорууларын таарыйар.",
        "resetpass-temp-password": "Быстах кэмҥэ туттуллар киирии тыл:",
        "resetpass-abort-generic": "Киирии тылы уларытыыны кэҥэтии тохтотто.",
        "resetpass-expired": "Киирии тылыҥ болдьоҕо ааспыт эбит. Бука диэн, саҥа киирии тылла туруорун.",
-       "resetpass-expired-soft": "Киирии тылыҥ болдьоҕо бүппүт, онон уларытыллыахтаах эбит. Бука диэн атын киирии тылы суруй эбэтэр маня баттаан кэлин киллэрээр \"{{int:resetpass-submit-cancel}}\".",
-       "resetpass-validity-soft": "Киирии тылыҥ алҕастаах: $1\n\nБука диэн саҥа киирии тылла суруй эбэтэр кэлин киллэриэххин баҕарар буоллаххына маны баттаа \"{{int:resetpass-submit-cancel}}\"",
+       "resetpass-expired-soft": "Киирии тылыҥ болдьоҕо бүппүт, онон уларытыллыахтаах эбит. Бука диэн атын киирии тылы суруй эбэтэр маня баттаан кэлин киллэрээр \"{{int:authprovider-resetpass-skip-label}}\".",
+       "resetpass-validity-soft": "Киирии тылыҥ алҕастаах: $1\n\nБука диэн саҥа киирии тылла суруй эбэтэр кэлин киллэриэххин баҕарар буоллаххына маны баттаа \"{{int:authprovider-resetpass-skip-label}}\"",
        "passwordreset": "Киирии тылы саҥаттан",
        "passwordreset-text-one": "Урукку киирии тылы уларытарга бу форманы толор.",
        "passwordreset-text-many": "{{PLURAL:$1|Быстах киирии тылы электрон почтаҕар ыыттарарга түннүктэртэн биирдэстэрин толор.}}",
        "newarticle": "(Саҥа ыстатыйа)",
        "newarticletext": "Эн суох сирэйгэ киирэ сатаатыҥ.\nМаннык ааттаах саҥа ыстатыйаны оҥорор буоллаххына, аллара баар түннүккэ суруй\n(сиһ. [$1 көмөнү] көрүөххүн сөп).\nӨскө манна сыыһа киирбит буоллаххына интэриниэтиҥ бырагыраамматын \"төнүн\" диэххин сөп.",
        "anontalkpagetext": "----''Бу аатын эппэтэх кыттааччы ырытар сирэйэ.\nIP-аадырыһа эрэ көстөр.\nБиир IP-аадырыс хас да киһиэхэ бэриллиэн сөп. Өскө атын киһиэхэ суруллубут суругу алҕас туппут буоллаххына, бэйэҥ [[Special:CreateAccount|ааккын билиһиннэр]] эбэтэр [[Special:UserLogin|киир]], оччоҕо кэлин да булкуур тахсыа суоҕа.''",
-       "noarticletext": "Ð\91илигин Ð±Ñ\83 Ñ\81иÑ\80Ñ\8dй ÐºÑ\83Ñ\80аанаÑ\85.\nÐ\91Ñ\83 Ð°Ð°Ñ\82 Ð°Ñ\82Ñ\8bн Ñ\8bÑ\81Ñ\82аÑ\82Ñ\8bйалга Ñ\82Ñ\83Ñ\82Ñ\82Ñ\83ллаÑ\80Ñ\8bн [[Special:Search/{{PAGENAME}}|бÑ\83лÑ\83оÑ\85Ñ\85Ñ\83н Ñ\81өп]],\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} Ñ\81Ñ\83Ñ\80Ñ\83нааллаÑ\80га ÐºÓ©Ñ\80дүөÑ\85Ñ\85үн Ñ\81өп],\nÑ\8dбÑ\8dÑ\82Ñ\8dÑ\80 [{{fullurl:{{FULLPAGENAME}}|action=edit}} Ð¼Ð°Ð½Ð½Ñ\8bк Ð°Ð°Ñ\82Ñ\82ааÑ\85 Ñ\81аҥа Ñ\8bÑ\81Ñ\82аÑ\82Ñ\8bйанÑ\8b Ñ\81Ñ\83Ñ\80Ñ\83йÑ\83оÑ\85Ñ\85Ñ\83н] Ñ\81өп</span>.",
+       "noarticletext": "Ð\91илигин Ð±Ñ\83 Ñ\81иÑ\80Ñ\8dй ÐºÑ\83Ñ\80аанаÑ\85.\nÐ\91Ñ\83 Ð°Ð°Ñ\82 Ð°Ñ\82Ñ\8bн Ñ\8bÑ\81Ñ\82аÑ\82Ñ\8bйалаÑ\80га Ñ\82Ñ\83Ñ\82Ñ\82Ñ\83ллаÑ\80Ñ\8bн [[Special:Search/{{PAGENAME}}|бÑ\83лÑ\83оÑ\85Ñ\85Ñ\83н Ñ\81өп]],\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} Ñ\81Ñ\83Ñ\80Ñ\83нааллаÑ\80га ÐºÓ©Ñ\80дүөÑ\85Ñ\85үн Ñ\81өп],\nÑ\8dбÑ\8dÑ\82Ñ\8dÑ\80 [{{fullurl:{{FULLPAGENAME}}|action=edit}} Ð¼Ð°Ð½Ð½Ñ\8bк Ð°Ð°Ñ\82Ñ\82ааÑ\85 Ñ\81аҥа Ñ\8bÑ\81Ñ\82аÑ\82Ñ\8bйанÑ\8b Ñ\81Ñ\83Ñ\80Ñ\83йÑ\83оÑ\85Ñ\85Ñ\83н Ñ\81өп]</span>.",
        "noarticletext-nopermission": "Билигин бу сирэй кураанах.\nБу [[Special:Search/{{PAGENAME}}|ааты атын сирэйдэргэ көрдөөн көрүөххүн]] сөп,\nэбэтэр <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} сурунаалларга манна сыһыаннаах суруктары булуоххун сөп].</span> Бу сирэйи айар кыаҕыҥ суох.",
        "missing-revision": "«{{FULLPAGENAME}}» сирэй $1 барыла суох.\n\nМаннык үксүн хайыы-үйэ сотуллубут билэҕэ эргэрбит сигэнэн бардахха буолааччы.\nСиһилии баҕар [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} сотуу сурунаалыгар] баара буолуо.",
        "userpage-userdoesnotexist": "\"<nowiki>$1</nowiki>\" аат бэлиэтэммэтэх. Бу сирэйи оҥорор/уларытар баҕалааххын дуо?",
        "whatlinkshere-links": "← ыйынньыктар",
        "whatlinkshere-hideredirs": "$1 утаарыы",
        "whatlinkshere-hidetrans": "$1 киллэриилэр",
-       "whatlinkshere-hidelinks": "$1 сигэ (ыйынньык)",
+       "whatlinkshere-hidelinks": "$1 сигэ",
        "whatlinkshere-hideimages": "$1 билэ сигэтэ",
        "whatlinkshere-filters": "Фильтрдар",
        "whatlinkshere-submit": "Толор",
        "allmessagesname": "Биллэрии",
        "allmessagesdefault": "Туспа этиллибэтэҕинэ суруллар тиэкис",
        "allmessagescurrent": "Билиҥҥи тиэкис",
-       "allmessagestext": "Ð\9cанна MediaWiki Ð±Ð¸Ð»Ð»Ñ\8dÑ\80иилÑ\8dÑ\80ин Ð¸Ñ\81пииһÑ\8dгÑ\8d ÐºÓ©Ñ\81Ñ\82Ó©Ñ\80.\nЭн MediaWiki Ð´Ð²Ð¸Ð¶Ð¾Ð³Ñ\83н Ñ\82Ñ\8bлбааÑ\81Ñ\82Ñ\8bÑ\8bÑ\80га ÐºÓ©Ð¼Ó©Ð»Ó©Ò»Ò¯Ó©Ñ\85Ñ\85үн Ð±Ð°Ò\95аÑ\80аÑ\80 Ð±Ñ\83оллаÑ\85Ñ\85Ñ\8bна Ð¼Ð°Ð½Ð½Ð° [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] Ñ\83онна Ð¼Ð°Ð½Ð½Ð° [//translatewiki.net translatewiki.net] киир.",
+       "allmessagestext": "Ð\9cанна MediaWiki Ð±Ð¸Ð»Ð»Ñ\8dÑ\80иилÑ\8dÑ\80ин Ð¸Ñ\81пииһÑ\8dгÑ\8d ÐºÓ©Ñ\81Ñ\82Ó©Ñ\80.\nЭн MediaWiki Ð°Ð»Ñ\82Ñ\8bһаанÑ\8bн Ñ\82Ñ\8bлбааÑ\81Ñ\82Ñ\8bÑ\8bÑ\80га ÐºÓ©Ð¼Ó©Ð»Ó©Ò»Ò¯Ó©Ñ\85Ñ\85үн Ð±Ð°Ò\95аÑ\80аÑ\80 Ð±Ñ\83оллаÑ\85Ñ\85Ñ\8bна Ð¼Ð°Ð½Ð½Ð° [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Ð\9cедиаÐ\92икини Ñ\82Ñ\8bлбааÑ\81Ñ\82ааһÑ\8bн] Ñ\83онна Ð¼Ð°Ð½Ð½Ð° [https://translatewiki.net translatewiki.net] киир.",
        "allmessagesnotsupportedDB": "'''{{ns:special}}:Allmessages''' туттуллар кыаҕа суох, тоҕо диэтэххэ '''$wgUseDatabaseMessages''' араарыллыбыт.",
        "allmessages-filter-legend": "Сиидэ",
        "allmessages-filter": "Уларытыы көрүҥүнэн наардыыр сиидэ:",
index ce87370..75e3238 100644 (file)
@@ -97,8 +97,8 @@
        "october-gen": "O̠ḱ́ṭo̠bo̠r",
        "november-gen": "Nove̠mbo̠r",
        "december-gen": "December",
-       "jan": "Jạn",
-       "feb": "Febr",
+       "jan": "Jạnuari",
+       "feb": "Phebuari",
        "mar": "Ma̠r",
        "apr": "Epr",
        "may": "Me",
        "sep": "Seṕ",
        "oct": "Okṭ",
        "nov": "No̠v",
-       "dec": "Dis",
+       "dec": "Disembor",
        "pagecategories": "{{PLURAL:$1|Bivag|Bivagko}}",
        "category_header": "Sakam korenaḱ rokom sokom \"$1\"",
        "subcategories": "Huḍiń rokom sokomko",
        "cancel": "Badme",
        "moredotdotdot": "Aema",
        "mypage": "In̕aḱ sakam",
-       "mytalk": "Iñaḱ́ ro̠ṛ",
+       "mytalk": "Galmarao",
        "anontalk": "Nui baṅ ńutumanić beoharićaḱ galmarao sakam",
-       "navigation": "Ñamme",
+       "navigation": "Ạcurbaṛa",
        "and": "&#31;ar",
        "qbfind": "N̕am",
        "qbbrowse": "Sendra",
        "faq": "Baḍae kupuliko",
        "faqpage": "Project:FAQ",
        "actions": "Kạmi",
-       "namespaces": "Ñutum jaiga",
+       "namespaces": "Ńutum reaḱ ṭhai",
        "variants": "Etaḱko",
+       "navigation-heading": "Ạcurbaṛa minu",
        "errorpagetitle": "vul",
        "returnto": "$1 te ruar-rok' me",
        "tagline": "Oka khoć",
        "history": "Sakam reaḱ jạṛ",
        "history_short": "Jạṛ",
        "updatedmarker": "Ińaḱ mucạt hiripor khon nitaḱ halot",
-       "printableversion": "Chapai lekan version",
-       "permalink": "Terejuge joṛao",
+       "printableversion": "Chapa sodorḱ bharson",
+       "permalink": "Tirejuge joṛao",
        "print": "Chapa",
        "view": "Udukme",
-       "edit": "So̠mpado̠n",
+       "view-foreign": "$1 re ńelme",
+       "edit": "Toṅge",
        "create": "Tearme",
        "editthispage": "Noa sakam joṛaome",
        "create-this-page": "Noa sakam benao me",
        "personaltools": "Nijaḱ jontropạti",
        "articlepage": "Menaḱ sakam uduḱme",
        "talk": "Galmarao",
-       "views": "Ñel koyoḱ",
-       "toolbox": "Jontopạti baḱso",
+       "views": "Ńelogoḱ",
+       "toolbox": "Jontropạti",
        "userpage": "Laṛcaṛićaḱ sakam uduḱme",
        "projectpage": "Porjakṭ sakam uduḱme",
        "imagepage": "Rẽt sakam uduḱme",
        "lastmodifiedat": "Noa sakam do sạjao hoena $1, $2 te",
        "viewcount": "Noa sakamdo {{PLURAL:$1 dhom $1 dhom}} udug hoena.",
        "protectedpage": "Rukhíạ sakamko",
-       "jumpto": "Calaḱme :",
+       "jumpto": "Donme :",
        "jumptonavigation": "Ñamme",
        "jumptosearch": "Sendra",
        "view-pool-error": "Ikạkańmẽ, sarvarre nitoḱ do aḍi cap menaḱa.\nẠḍi aema beoharko noa sakam ńel lạgit́ko kurumuṭueda.\nNãwate noa sakam ńel kurumuṭuy lạgit́te dayakate mit́ghạṛi tạṅgiymẽ.\n$1",
        "mainpage": "Mukhiạ Sakam",
        "mainpage-description": "Mukhiạ sakam",
        "policy-url": "Project:Ritiniti",
-       "portal": "Khũṭ boloḱ ho̠r",
-       "portal-url": "Project: Khũṭ bolokt họr",
-       "privacy": "Nijaḱ eḱtear",
+       "portal": "Hoṛko boloḱ hor",
+       "portal-url": "Projeṭ:Hoṛko bolon hor",
+       "privacy": "Oku eḱtear",
        "privacypage": "Project: Nijaḱ eḱteạr",
        "badaccess": "Ektiạr vul",
        "badaccess-group0": "Am do oka kạmi lạgit́em aroj akat́, ona kạmi purạo lạgit́te ạidạri do bạnuḱa.",
        "retrievedfrom": "\"$1\" khon ñam ạgui",
        "youhavenewmessages": "Amaḱ do $1 ($2) menaḱa",
        "youhavenewmessagesmulti": "Amaḱ nãwã mesagko do $1 menaḱa",
-       "editsection": "So̠mpado̠n",
-       "editold": "So̠mpado̠n",
+       "editsection": "Tońge",
+       "editold": "Toṅge",
        "viewsourceold": "Ńamoḱ jayga",
        "editlink": "Tońge",
        "viewsourcelink": "vitrireaḱ́ jo̠to̠ ńelme",
-       "editsectionhint": "Sapṛao dhara: $1",
+       "editsectionhint": "Toṅge dhara: $1",
        "toc": "Menaḱaḱko",
        "showtoc": "Uduḱme",
        "hidetoc": "uku, Danaṅ",
        "nstab-main": "Sakam",
        "nstab-user": "Laṛcaṛicaḱ sakam",
        "nstab-media": "Midiạ sakam",
-       "nstab-special": "Jạruṛ pata",
+       "nstab-special": "Osokayteaḱ sakam",
        "nstab-project": "Porject reaḱ sakam",
-       "nstab-image": "Fail",
+       "nstab-image": "Phayel",
        "nstab-mediawiki": "Mesag",
        "nstab-template": "Sajao sakam",
        "nstab-help": "Goṛo sakam",
        "nstab-category": "Juṛu ko",
+       "mainpage-nstab": "Mukhiạ sakam",
        "nosuchaction": "Noṅkanaḱ kạmi bạnuḱa",
        "nosuchactiontext": "Noa URL re goṭa akan kạmi do ạnlekate baṅkana.\nAm do paseć mit́ṭen vul joṛaoem emakada se URL oltem vul akada.\nNoa do noṅkanaḱ menkana je {{SITENAME}} sayeṭre beoharen sofṭower re mit́ṭen vul menaḱa.",
        "nosuchspecialpage": "Noṅkanaḱ asokay sakam do banuḱa",
        "welcomeuser": "Johar",
        "welcomecreation-msg": "Amaḱ ekaunṭ do̠ jhićena. Amaḱ pạsindko bodol alom hiṛińa.",
        "yourname": "Beoboharicaḱ ńutum",
+       "userlogin-yourname": "Beoharićaḱ ńutum:",
        "userlogin-yourname-ph": "Amaḱ beohar ńutum emme.",
        "yourpassword": "Uku namber",
+       "userlogin-yourpassword": "Uku nambar",
+       "userlogin-yourpassword-ph": "Amaḱ uku nambar emme",
+       "createacct-yourpassword-ph": "Uku namber emme",
        "yourpasswordagain": "Arhõ oku namber olme",
+       "createacct-yourpasswordagain": "Uku nambar sãyãḱme",
+       "createacct-yourpasswordagain-ph": "Uku nambar arhõ emme",
        "remembermypassword": "Mitṭen khon bạṛti khata reaḱ cạbi disạ dohoḱma (Jạsti $1 {{PLURAL:$1 din reaḱ din reaḱ}} lạgit)",
+       "userlogin-remembermypassword": "Bolo thirege dohokạńme",
        "yourdomainname": "Amaḱ ḍomen:",
        "externaldberror": "Hoe daṛeyaḱa jahan bahre reaḱ jacaeaḱ ḍaṭabes vul hoeakana se amaḱ bahre reaḱ ekaunṭ do nahaḱ halot aguire ạidạri bạnuḱa.",
        "login": "bolok' duar",
        "logout": "Bahre oḍoń",
        "userlogout": "Bahre oḍoń",
        "notloggedin": "Bhitri baṅ bolokana",
+       "userlogin-noaccount": "Cet́ accountge banuḱtama?",
+       "userlogin-joinproject": "Seledoḱ {{SITENAME}}",
        "nologin": "Amaḱ do cet́ wikipeḍiare ekaunṭ banuḱtama? Ado '''$1'''",
        "nologinlink": "account tear me",
        "createaccount": "Ṭhai benaome",
        "gotaccount": "Amaḱ do cet́ miṭten ekaunṭ tear menaḱtama? $1 tearmẽ.",
        "gotaccountlink": "Bhitri bolon",
        "userlogin-resetlink": "Amaḱ boloḱ talam cạbi sanamem hiṛińkeda?",
+       "userlogin-resetpassword-link": "Amaḱ uku nambarem hiṛiń akada?",
+       "userlogin-helplink2": "Bolon khạtir go̠ṛo̠",
+       "createacct-emailoptional": "Email ṭhikana (iccha lekate)",
+       "createacct-email-ph": "Amaḱ e-mail ṭhikana emme",
        "createaccountmail": "E-mail hotete",
        "createaccountreason": "Karon",
+       "createacct-submit": "Amaḱ account tearme",
+       "createacct-benefit-heading": "{{SITENAME}} am lekan hoṛ hotete tear akan.",
+       "createacct-benefit-body1": "{{PLURAL:$1|joṛao|joṛaoko}}",
+       "createacct-benefit-body2": "{{PLURAL:$1|sakam|sakamko}}",
+       "createacct-benefit-body3": "nahaḱ {{PLURAL:$1|kamiạ|kạmiako}}",
        "badretype": "Am do okaṭaḱ oku nambarkom em keda ona do baṅ milạolena.",
        "userexists": "Laṛcaṛicaḱ ńutum em hoyena ona do beohar hoyakana.\nDayakatet́ eṭagaḱ ńutum bachaome.",
        "loginerror": "Bhitri bolok do vulgea",
        "createaccount-text": "Okoe co am lạgit́te mitṭen ekaunṭko amaḱ e-mail ṭhikạna lạgit {{SITENAME}} re ($4) ńutum \"$2\", oku nambar \"$3\".\nAm do mesagem baṅ daṛeyaḱa, judi noa ekaunṭ do vulge benaolen khan.",
        "login-throttled": "Am do mitghạri lahare por por aema dhao boloḱem kurumuṭu keda.\nArhõ kurumuṭue lahare dayakate thoṛagan tạṅgiemẽ.",
        "login-abort-generic": "Amaḱ bhitri boloḱ do baṅ hoylena - batena.",
-       "loginlanguagelabel": "katha: $1",
+       "loginlanguagelabel": "Pạrsi: $1",
+       "pt-login": "Bolok' duar",
+       "pt-login-button": "Bolon",
+       "pt-createaccount": "Ṭhai benaome",
+       "pt-userlogout": "Bahre oḍoń",
        "user-mail-no-addy": "Jahan e-mail ṭhikana bạgi kate e-mail kul kurumuṭu hoena.",
        "changepassword": "Uku nombor bodolme",
        "resetpass_header": "Ekaunṭ oku namber bodol",
        "passwordreset-email": "E-mail ṭhikạna:",
        "passwordreset-emailtitle": "{{SITENAME}} sayeṭre beoharićaḱ purạo thutiko",
        "passwordreset-emailelement": "Beoharićaḱ ńutum: \n$1\n\nMit́ ghạṛi lạgit uku nambar: \n$2",
-       "passwordreset-emailsent": "Mitṭen disạ ruaṛ e-mail do kulena.",
+       "passwordreset-emailsentemail": "Mitṭen disạ ruaṛ e-mail do kulena.",
        "passwordreset-emailsent-capture": "Mit́ṭen disạ ruaṛaḱ e-mail dokulena, oka do latarre ńeloḱ kana.",
        "passwordreset-emailerror-capture": "Disạ ruạṛ oco lạgit́te mit́ṭen e-mail tear hoelena, oka do latarre udugoḱkana, menkhan $1 beoharić ṭhen  ṭhen baṅ kul hoe akana.",
        "changeemail": "E-mail ṭhikạna do bodolme",
-       "changeemail-text": "Amaḱ e-mail ṭhikạna bodol lạgit́te noa forom purao me. Am do noa sariyaḱ lạgit́te amaḱ oku nambar em jạruṛtama.",
+       "changeemail-header": "Ekaunṭ e-mail ṭhikạna do bodolme",
        "changeemail-no-info": "Noa sakam sojhete laṛcaṛ lạgit́te am do bhitri boloḱ hoyoḱtama.",
        "changeemail-oldemail": "Nitaḱ e-mail ṭhikạna:",
        "changeemail-newemail": "Nãwã e-mail ṭhikạna:",
        "preview": "Ńel, Unuduḱ",
        "showpreview": "Unuduḱ",
        "showdiff": "Bodolko ńeloḱma",
-       "anoneditwarning": "'''Sabdhan:''' amdo begor logkatem bolowakana.\nAmaḱ IP ṭhikana do noa sakam sompadon jạṛre rekorḍoḱa.",
+       "anoneditwarning": "Husiạr: amdo nit́hõ bam boloakana.\nJudil am nonḍem toṅge lekhan amaḱ IP ṭhikana do noa sakamre ol tahẽna.",
        "anonpreviewwarning": "\"Am do bhitri bam bolo akana. Noa sakamre amaḱ kạmiko jạre IP ṭhiikạ̣nare rukhiyạ ḱa.\"",
        "missingcommenttext": "Daya kate amaḱ menaḱ katha latare olmẽ.",
        "summary-preview": "Guṭ katha unuduḱ:",
        "accmailtext": "[[User talk:$1 $1]] lạgit́te aćte benaoen uku nambar do $2 kul hoena.\nBhitri bolo kateḱ noa nãwã ekaunṭ lạgit uku nambar \"[[Special:ChangePassword Change password]]\" sakam khonem bodol daṛyakya.",
        "newarticle": "(Nãwa)",
        "newarticletext": "Am do oka mitṭen joṛaoem pańja akada, onaṭak do bạnuḱa.\nOna sakam tear lạgit́te, latar reaḱ baksore ol ehoṕmẽ (arhõ jạsti baḍae lạgit́te [$1 help page] pańjaemẽ).\nAm do judi nonḍe vulkatem heć akan khan, tobe amaḱ sendrakore '''back''' baṭon linmẽ.",
-       "noarticletext": "Nitoḱ noa sakamre do ol bạnuḱa.\n\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}} edit this page]</span>.",
+       "noarticletext": "Nitoḱ noa sakamre do cet́olge bạnuḱa.\n\nAm menlekhan eṭaḱ sakamkore [[Special:Search/{{PAGENAME}}|search for this page title]],\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} search the related logs],\nor [{{fullurl:{{FULLPAGENAME}}|action=edit}} edit this page]</span>.",
        "noarticletext-nopermission": "Noa sakamre do nitoḱ o̠l banuḱa.\n\nYou can [[Special:Search/{{PAGENAME}}|search for this page title]] in other pages,\nor <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} search the related logs]</span>.",
        "userpage-userdoesnotexist": "\"<nowiki>$1</nowiki>\" ńutuman jahãe beoharićaḱ ekaunṭ do baṅ resṭri hoeakana. Daya kate biḍạo katet́ ńelmẽ noa sakam do benoa/sompadonem menet́ kana se baṅ.",
        "userpage-userdoesnotexist-view": "Beoharićaḱ \"$1\" ekaunṭ do baṅ resṭire akana.",
        "currentrev": "Mucạt nãwã aroe",
        "currentrev-asof": "Mucạt nãwã aroy",
        "revisionasof": "Nãwã aro sakam $1 leka",
-       "revision-info": "Ńel/pańja ruạṛ $1 khon $2",
+       "revision-info": "Revision as of $1 by {{GENDER:$6|$2}}$7",
        "previousrevision": "Pạhilaḱ paṛhao ruạṛ",
        "nextrevision": "nãwate n'el ruar",
        "currentrevisionlink": "Nitoḱaḱ nãwa aroy",
        "rev-deleted-user": "(laṛcaṛić ńutum ocoḱena)",
        "rev-deleted-event": "(Log kạmi do ocog hoena)",
        "rev-deleted-user-contribs": "[Beoharićaḱ ńutum se IP ṭhikạna do ocog hoena - kạmi khon sompadon do uku hoe akana]",
-       "rev-delundel": "ńeloḱ/danaṅ",
+       "rev-delundel": "Juḍawaḱko ńel",
        "rev-showdeleted": "Uduḱme",
        "revisiondelete": "Get giḍi/nãwã aro baṅ getgiḍi",
        "revdelete-show-file-submit": "Hẽ",
        "lineno": "Sạr $1:",
        "compareselectedversions": "Noa barea nãwã bachawanaḱ talare tolonayme",
        "editundo": "ruạṛ",
-       "searchresults": "Se̠ndra fo̠l",
+       "searchresults": "Se̠ndra pho̠l",
        "searchresults-title": "\"$1\"  renaḱ Sẽndra  phol",
        "prevn": "Laha reaḱ {{PLURAL:$1|$1}}",
        "nextn": "Táyom teaḱ {{PLURAL:$1|$1}}",
        "search-interwiki-default": "$1 folko:",
        "search-interwiki-more": "(Arhõ)",
        "searchrelated": "songenko",
-       "searchall": "Sanam",
+       "searchall": "Sanamaḱ",
        "search-nonefound": "Kupuli leka roṛruạṛ bạnuḱa",
        "powersearch-togglelabel": "Sendra",
        "powersearch-toggleall": "Sanamaḱ",
        "powersearch-togglenone": "Okaṭaḱ hõ baṅ",
        "preferences": "Pạsindko",
-       "mypreferences": "Iñaḱ pạsindko",
+       "mypreferences": "Pạsindko",
        "prefs-skin": "Harta",
        "skin-preview": "Ńel, Unuduḱ",
        "datedefault": "Pạsind banuḱa",
        "email": "E-mail",
        "prefs-help-email": "E-mail ṭhikana do bạṛtitege, menkhan uku namber nãwãte benao jạruṛa, am do amaḱ uku nomborem hiṛiń keda.",
        "prefs-help-email-others": "Am são e-mail hotete jogajog dohoy lạgitte mitṭen joṛao se amaḱ katha roṛaḱ sakam bachao jońme.\nAmaḱ e-mail ṭhikạna do bań cabaḱa tinre onko do ko beohara",
-       "email-address-validity-valid": "E-mail ṭhikạna do jewetge ńamena",
-       "email-address-validity-invalid": "Amaḱ jewet e-mail ṭhkạna emmẽ",
        "userrights": "Beoharićaḱ laṛcaṛ ektiạrko",
        "userrights-lookup-user": "Beoharkoaḱ gãotako laṛcaṛ",
        "userrights-user-editname": "Beoharićaḱ ńutum emmẽ",
        "newuserlogpage": "Laṛcaṛićaḱ tear cạbi",
        "action-edit": "noa sakam joṛao",
        "nchanges": "$1 {{PLURAL:$1 bodol bodolko}}",
+       "enhancedrc-history": "Jạṛ",
        "recentchanges": "Nãwã bo̠do̠lko",
        "recentchanges-legend": "Nahaḱ bodol teaḱko",
        "recentchanges-summary": "Noa sakamre wiki reaḱ joto khon nãwã bodolko paṅjaṅjaymẽ.",
        "recentchanges-feed-description": "Noa feedre wiki reaḱ joto khon nãwã bodolko paṅjaymẽ",
        "recentchanges-label-newpage": "Noa sompadon do nãwã mint́ṭen sakame tearkeda",
-       "recentchanges-label-minor": "Noado hudiń mạchi sompadonkana",
-       "recentchanges-label-bot": "Noa sompadon do bot darate purauena",
+       "recentchanges-label-minor": "Noado hudiń mạchi toṅge",
+       "recentchanges-label-bot": "Noa toṅge do bot hotete purauena",
        "recentchanges-label-unpatrolled": "Noa sompadon do ńit́ hạbić baṅ ńel ńamakana",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (arhõ ńelme [[Asokaete:Nãwã sakamko |nãwã sakamko reaḱ lisṭi]])",
        "rcnotefrom": "$2 habić bodolak ko do latare ńeloḱkana",
        "rclistfrom": "Nãwã  bodolko uduḱme $3 $2 khon ehoṕkate",
-       "rcshowhideminor": "$1 kaṭic culuń tońge",
+       "rcshowhideminor": "$1 kaṭic culuń tońgeko",
+       "rcshowhideminor-show": "Uduḱme",
+       "rcshowhideminor-hide": "Danaṅ",
        "rcshowhidebots": " boṭko $1",
-       "rcshowhideliu": "Beoharićaḱ boloḱ $1",
+       "rcshowhidebots-show": "Uduḱme",
+       "rcshowhidebots-hide": "Danaṅ",
+       "rcshowhideliu": "Regisṭari beoharićko $1",
+       "rcshowhideliu-hide": "Danaṅ",
        "rcshowhideanons": "$1 Nũtum bańa bebohariḱ",
+       "rcshowhideanons-show": "Uduḱme",
+       "rcshowhideanons-hide": "Danaṅ",
        "rcshowhidepatr": "$1 Biḍạen sompadonko",
-       "rcshowhidemine": "$1 ińaḱ tońge",
+       "rcshowhidemine": "$1 ińaḱ tońgeko",
+       "rcshowhidemine-show": "Uduḱme",
+       "rcshowhidemine-hide": "Danaṅ",
        "rclinks": "$2 din lahare $1 bodol unuduḱme <br />$3",
        "diff": "Judạ",
        "hist": "Jạr",
        "hide": "Danaṅ",
-       "show": "Udugme",
+       "show": "Udume",
        "minoreditletter": "m",
        "newpageletter": "N",
        "boteditletter": "b",
+       "rc-change-size-new": "Bodol tayomte",
        "rc-enhanced-expand": "Purạote uduḱ",
        "rc-enhanced-hide": "Purạo cuku",
        "recentchangeslinked": "Sãotenaḱ bodolko",
        "recentchangeslinked-summary": "Noa do ona tạlika kana oka do nebetarge bodol hoyakan oka do asokayte hatao akan sakam khon.\n\n[[Special:Watchlist|your watchlist]] renaḱ sakamko do '''bold''' .",
        "recentchangeslinked-page": "sakạm ńutum",
        "recentchangeslinked-to": "Joṛaoaḱ sakamre ńel ocoyme emaḱ sakam bạgi katet",
-       "upload": "Fael aploḍme",
+       "upload": "Phayel aploḍme",
        "uploadbtn": "Rẽt rakabmẽ",
        "uploadlogpage": "Chạbi do uthạome",
        "filename": "Rẽt ńutum",
        "listfiles_name": "Ńutum",
        "listfiles_user": "Beoharić, Laṛcaṛic",
        "file-anchor-link": "Re̕t",
-       "filehist": "Fael renaḱ Jạṛ",
+       "filehist": "Phayel reaḱ Jạṛ",
        "filehist-help": "date re click me/somóy re click me fail reak obostha nel lagit",
        "filehist-deleteall": "Joto get giḍi",
        "filehist-deleteone": "Get giḍi",
        "filehist-user": "Laṛcaṛić",
        "filehist-dimensions": "Maṕ",
        "filehist-comment": "Roṛ",
-       "imagelinks": "Fael bebohar",
+       "imagelinks": "Phayel bebohar",
        "linkstoimage": "Latar reaḱ {{PLURAL:$1 sakam $1 sakam}} khon noa rẽtre joṛao menaḱa:",
        "nolinkstoimage": "Nonḍe do noa são joṛao sakam banuka",
        "sharedupload-desc-here": "Noa rẽt do nonḍe khon-  $1 ar paseć eṭaḱaḱ porjekṭko beoharakana.\nNoa reaḱ pasnao katha [$2 rẽt pasnao sakam] latare emena",
+       "upload-disallowed-here": "Am do noa phayel cetanre bam ol daṛẽaḱa",
        "randompage": "Joṛao sakam",
        "statistics": "Halot",
        "statistics-pages": "Sakamko",
        "pager-older-n": "{{PLURAL:$1 arhõ mare 1ṭen arhõ mare $1ṭen}}",
        "booksources": "Puthi ńamoḱ ṭhại/jayga",
        "booksources-search-legend": "Puthi reak ṭhai sendrayme",
+       "booksources-search": "Sendra",
        "log": "Cạbiko",
        "allpages": "joto sakam",
        "allarticles": "Sanam sakam",
        "emailmessage": "Mesag",
        "emailsend": "Kulmẽ",
        "watchlist": "Inak' n'el ko",
-       "mywatchlist": "Iñak jagarna tạlikạ",
+       "mywatchlist": "Ńeloḱgoḱ tạlika",
        "watchlistfor2": "$1 ($2) lạ̣gitte",
        "watch": "Ńelme",
        "unwatch": "bang nelok' a",
        "namespace": "Ńutum reaḱ ṭhai",
        "invert": "Seć bachao",
        "blanknamespace": "Mukhiạ̣",
-       "contributions": "Beharićaḱ Kạmiko",
+       "contributions": "{{GENDER:$1|Beoharićaḱ }} Kạmiko",
        "contributions-title": "$1 Beoharićaḱ kạmiko",
        "mycontris": "Ińaḱ kạmiko",
+       "anoncontribs": "Ińaḱ kạmiko",
        "contribsub2": "$1 ($2) lạgitte",
        "uctop": "(coṭ utạr)",
        "month": "Cando khon (ar etohopreaḱ)",
        "whatlinkshere-prev": "{{PLURAL:$1 Laha reaḱ Laha reaḱ$1ṭen}}",
        "whatlinkshere-next": "{{PLURAL:$1 |Laha renaḱ | Laha renaḱko $1}}",
        "whatlinkshere-links": "Joṛaoko",
-       "whatlinkshere-hideredirs": "$1 acurgeya",
-       "whatlinkshere-hidetrans": "$1 ṭarnskuleson uduḱme",
-       "whatlinkshere-hidelinks": "$1 joṛao",
+       "whatlinkshere-hideredirs": "$1 arhõ unuduḱ",
+       "whatlinkshere-hidetrans": "Selet́ $1",
+       "whatlinkshere-hidelinks": "$1 joṛaoko",
        "whatlinkshere-hideimages": "$1 Chubi joṛaoko",
        "whatlinkshere-filters": "Sapha",
        "block": "Beoharić esedem",
        "thumbnail-more": "Lạṭui mẽ",
        "thumbnail_error": "Benawakan unuduḱ kạṭuṕ do baṅ ṭhika: $1",
        "import-upload-filename": "Rẽt ńutum",
-       "tooltip-pt-userpage": "Amaḱ́ bebo̠harić sakam",
-       "tooltip-pt-mytalk": "Amaḱ katha ro̠ṛrenaḱ́ sakam",
-       "tooltip-pt-preferences": "Amaḱ pạsindko",
+       "tooltip-pt-userpage": "{{GENDER:|am beoharićaḱ}} sakam",
+       "tooltip-pt-mytalk": "{{GENDER:|Amaḱ}} ro̠ṛreaḱ́ sakam",
+       "tooltip-pt-preferences": "{{GENDER:|Amaḱ}} pạsindko",
        "tooltip-pt-watchlist": "Sakam tạlika okaṭak̕katet́ am do nãwã aroy lạgitem ńeleḱkan",
-       "tooltip-pt-mycontris": "Amaḱ kạmi reaḱ tạlika",
-       "tooltip-pt-login": "Am do log in lagit́ metao am kana; menkhan noa do jarur bań kana",
+       "tooltip-pt-mycontris": "Mit́ṭen lisṭ {{GENDER:|amaḱ}} kạmiko reaḱ",
+       "tooltip-pt-login": "Am do boloḱ lagit́te udgạoiń emamkana; Nonḍe boloḱ unạḱ jarur do bań kana",
        "tooltip-pt-logout": "O̠nḍo̠ńme",
+       "tooltip-pt-createaccount": "Am do mit́ṭen hisạb jhić katet́ boloniń metamkana, tobe joborjosti katet́ do baṅ.",
        "tooltip-ca-talk": "Galmãrao bhitri renaḱ sakam lạgit́",
-       "tooltip-ca-edit": "Noa sakam em edit daṛeaḱ. Daya kateć save laha re preview batton bebohar me.",
+       "tooltip-ca-edit": "Noa sakam joṛaome",
        "tooltip-ca-addsection": "Nãwã sekson sạrdi",
        "tooltip-ca-viewsource": "Noa sakam do poṭom gea\nOna te source em ńel daṛeaḱ",
        "tooltip-ca-history": "Noa sakam renaḱ calao parom ńel ruạṛ",
        "tooltip-n-mainpage-description": "Mukhiạ sakamre calaḱme",
        "tooltip-n-portal": "Niạ pro̠je̠ḱ́ṭreaḱ Biso̠yko, Cet́em ceka daṛia,Okare̠ sendra ñamoḱ́a",
        "tooltip-n-currentevents": "Nitaḱ events re jos hudis ńãm me",
-       "tooltip-n-recentchanges": "Uiki nãhaḱ palaṭrenaḱ́ tạlikạ",
+       "tooltip-n-recentchanges": "Uikire nãhaḱ bodolko reaḱ tạlikạ",
        "tooltip-n-randompage": "Ãr hõ sakam ko agui mẽ",
        "tooltip-n-help": "Sendra ñamreaḱ jayga",
        "tooltip-t-whatlinkshere": "Sanam wiki sakam renaḱ list ar link do nonde",
        "tooltip-t-recentchangeslinked": "Noa sakam re nitaḱ bodol akan sakam renaḱ linked",
-       "tooltip-feed-atom": "Noa sakam lạgit́ atom jomaḱ",
+       "tooltip-feed-atom": "Noa sakam lạgit́ atom phiḍ",
        "tooltip-t-contributions": "Beoharićak kami reaḱ tạ̣lika",
        "tooltip-t-emailuser": "Nui beoharić mitṭen e-mail kulayme",
-       "tooltip-t-upload": "Failko aploḍ̣me",
+       "tooltip-t-upload": "Phayelko aploḍ̣me",
        "tooltip-t-specialpages": "Jạruṛ patakureaḱ tạlikạ",
        "tooltip-t-print": "Printoḱ lekan sakam",
        "tooltip-t-permalink": "Terejuge joṛaokam ñel sakam",
        "tooltip-ca-nstab-main": "Bahal sakam ńel me",
        "tooltip-ca-nstab-user": "Beoharićaḱ sakam uduḱme",
-       "tooltip-ca-nstab-special": "Noa do nij/bises sakam kana, amem menle rehõ bam joṛao dareaḱa",
-       "tooltip-ca-nstab-project": "project page nel' me",
+       "tooltip-ca-nstab-special": "Noa do mit́ṭen bises sakam kana, ar noa do bam joṛao daṛẽaḱa",
+       "tooltip-ca-nstab-project": "projeṭ sakam ńelmẽ",
        "tooltip-ca-nstab-image": "Fael sakam ńel",
        "tooltip-ca-nstab-template": "Forom uduḱme",
        "tooltip-ca-nstab-help": "Goṛo sakam ńelmẽ",
        "tooltip-preferences-save": "Pạsindko rukhiyaymẽ",
        "tooltip-summary": "Khaṭote guṭ katha bhoraome",
        "others": "Eṭagaḱko",
+       "simpleantispam-label": "Enṭi espam ńel\nDo <strong>not</strong> noa purạome!",
        "pageinfo-header-edits": "Toṅgeko",
        "pageinfo-watchers": "Ńeńelkoaḱ nombor",
-       "previousdiff": "mareak' kamiko",
+       "pageinfo-toolboxlink": "Sakam reaḱ baḍaejońaḱko",
+       "previousdiff": "Marenaḱ toṅgeko",
        "nextdiff": "Nãwã joṛao",
        "file-info-size": "$1 x $2 pixels, file size: $3, MIME type: $4",
        "file-nohires": "Aema resulation nondḍe banuḱa",
        "svg-long-desc": "SVG rẽt, normalte $1 x $2 pixels, rẽt sayej: $3",
-       "show-big-image": "Purạo resulation",
+       "show-big-image": "Mukhiạ phayel",
+       "show-big-image-preview": "Noa ńeloḱ akar do:$1",
+       "show-big-image-other": "Eman teaḱ {{PLURAL:$2|resolution|resolutions}}: $1",
+       "show-big-image-size": "$1 X $2 Pikcel",
        "ilsubmit": "Sendra",
        "bad_image_list": "Format do latar re leka",
        "metadata": "Meṭa khobor",
        "watchlisttools-view": "Jońgṛao bodolaḱko ńel",
        "watchlisttools-edit": "Ńelok tạlika ńel ar joṛao",
        "watchlisttools-raw": "Baṇ purạo akan ńelok tạlika purạomẽ",
+       "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_galmarao}}:$1|talk]])",
        "duplicate-defaultsort": "'''Sontoroḱmẽ:''' ḍifolṭ sajao reaḱ cạbi: $2 lahare ḍifolṭ sajao reaḱ sakam: ''$1'' e bae luturaḱ kana.",
-       "specialpages": "Jạruṛ patako",
+       "specialpages": "Osokayteaḱ sakamko",
        "external_image_whitelist": "#Noa sakam do cet leka menaḱa oṅkage dohoemẽ\n#Sanam okte re jạhiren kuṭrạ latar re (khạli hạtiń //talare) bạisạomẽ\n#Noako do bahre reaḱ (hotlinked) chubi reaḱ URL saõte milạo hoyoḱa\n#Okako milạḱa, onako do chubi lekate udugoḱa, baṅkhan do khali chubi joṛao udugoḱa\n#Noa layen reaḱ ehoṕre # menaḱa ona layenko menko hisapte beohar hoyoḱka\n#Noa do kas-baṅ rimjhạoaḱge\n#Noa dag cetanre regex kuṭrạ bạsạomẽ. Noa layen cetleka menaḱa oṅkage dohoemẽ</pre>",
-       "tag-filter": "[[Special:Tags|Tag]] saphay:"
+       "tag-filter": "[[Special:Tags|Tag]] saphay:",
+       "logentry-move-move": "$1 beoharić $3 sakam do $4 ńutumre {{GENDER:$2|ạcạr}} akada",
+       "logentry-newusers-create": "Beoharićaḱ hisạb khata $1 do jhićena",
+       "logentry-upload-upload": "$1 {{GENDER:$2|rakaṕ akadae}} $3",
+       "searchsuggest-search": "Se̠ndra"
 }
index 5a1c117..6dc082e 100644 (file)
        "protectedpagetext": "Custa pàgina est istada amparada pro nde prevenner su càmbiu o àteras fatas.",
        "viewsourcetext": "Podes bìere o copiare su còdighe mitza de custa pàgina:",
        "viewyourtext": "Càstia e còpia su còdighe mitza de is <strong>mudàntzias tuas</strong> in custa pàgina:",
-       "protectedinterface": "Custa pàgina frunit testu pro s'interfàtzie de su programma de custa wiki, ed est amparada pro prevènnere abusos.\nPro annànghere o cambiare tradutziones pro totus sas wikis, pro piaghere imprea [//translatewiki.net/ translatewiki.net], su progetu MediaWiki de localizatzione.",
-       "editinginterface": "<strong>Atentzione:</strong> Ses modificande una pàgina chi est impreada pro frunire testu de s'interfàtzie pro su programma.\nCàmbios a custa pàgina ant a influentzare sa bisura de s'interfàtzie impitadore pro àteros impitadores in custa wiki.\nPro annànghere o cambiare tradutziones pro totus sas wikis, pro piaghere imprea [//translatewiki.net/ translatewiki.net], su progetu MediaWiki de localizatzione.",
+       "protectedinterface": "Custa pàgina frunit testu pro s'interfàtzie de su programma de custa wiki, ed est amparada pro prevènnere abusos.\nPro annànghere o cambiare tradutziones pro totus sas wikis, pro piaghere imprea [https://translatewiki.net/ translatewiki.net], su progetu MediaWiki de localizatzione.",
+       "editinginterface": "<strong>Atentzione:</strong> Ses modificande una pàgina chi est impreada pro frunire testu de s'interfàtzie pro su programma.\nCàmbios a custa pàgina ant a influentzare sa bisura de s'interfàtzie impitadore pro àteros impitadores in custa wiki.\nPro annànghere o cambiare tradutziones pro totus sas wikis, pro piaghere imprea [https://translatewiki.net/ translatewiki.net], su progetu MediaWiki de localizatzione.",
        "cascadeprotected": "Custa pàgina est istada amparada dae sas modìficas proite est incluida in {{PLURAL:$1|custa pàgina, chi est amparada|custas pàginas, chi sunt amparadas}} cun s'optzione \"a tzurru\" ativada:\n$2",
        "namespaceprotected": "Non tenes su permissu de cambiare is pàginas in su nùmene-lugu '''$1'''.",
        "customcssprotected": "Non tenes sos permissos pro cambiare custa pàgina CSS proite cuntènnidi sas impostaduras pessonales de un'àteru impitadore.",
        "resetpass-temp-password": "Password temporànea:",
        "resetpass-abort-generic": "Su càmbiu de sa password est istadu arreadu dae un'estensione.",
        "resetpass-expired": "Sa password tua est iscadida. Pro piaghere inserta una password noa pro intrare.",
-       "resetpass-validity-soft": "Sa password password tua no est bàlida: $1\n\nPro piaghere issèbera una password noa como, o carca \"{{int:resetpass-submit-cancel}}\" pro lu fàghere prus a tardu.",
+       "resetpass-validity-soft": "Sa password password tua no est bàlida: $1\n\nPro piaghere issèbera una password noa como, o carca \"{{int:authprovider-resetpass-skip-label}}\" pro lu fàghere prus a tardu.",
        "passwordreset": "Reseta sa password",
        "passwordreset-disabled": "Non si podent cambiare sas passwords in custa wiki.",
        "passwordreset-emaildisabled": "Is funtzionalidades de email sunt istadas disabilitadas in custa wiki.",
index ef529ee..3f5890a 100644 (file)
        "protectedpagetext": "Sta pàggina fu bluccata pi privèniri canciamenti o àutri opirazzioni.",
        "viewsourcetext": "Poi taliari e cupiari lu còdici surgenti di sta pàggina.",
        "viewyourtext": "Poi taliari e cupiari lu còdici surgenti dî <strong>tò canciamenti</strong> nti sta pàggina.",
-       "protectedinterface": "Sta pàggina cunteni un elementu ca fà parti dâ nterfaccia utenti dû software eggh'è  prutetta p'evitari pussìbbili abbusi. Pi jùnciri o canciari li traduzzioni pi tutti li wiki usari [//translatewiki.net/translatewiki.net] lu pruggettu di lucalizzazzioni di Mediawiki.",
+       "protectedinterface": "Sta pàggina cunteni un elementu ca fà parti dâ nterfaccia utenti dû software eggh'è  prutetta p'evitari pussìbbili abbusi. Pi jùnciri o canciari li traduzzioni pi tutti li wiki usari [https://translatewiki.net/translatewiki.net] lu pruggettu di lucalizzazzioni di Mediawiki.",
        "editinginterface": "<strong>Accura:</strong> Lu testu di sta pàggina fa parti dâ nterfaccia utenti dû situ.\nTutti li canciamenti appurtati a sta pàggina si riflèttinu supra li missaggi visualizzati pi tutti l'utenti di sta wiki.",
-       "translateinterface": "Pi agghiùnciri o canciari traduzzioni pi tutti li wiki, pi favuri adòpira [//translatewiki.net/ translatewiki.net], lu pruggettu di lucalizzazzioni di MediaWiki.",
+       "translateinterface": "Pi agghiùnciri o canciari traduzzioni pi tutti li wiki, pi favuri adòpira [https://translatewiki.net/ translatewiki.net], lu pruggettu di lucalizzazzioni di MediaWiki.",
        "cascadeprotected": "Sta pàggina è prutetta dî canciamenti pirchì veni nclusa {{PLURAL:$1|ntâ pàggina siquenti, ca fu prutiggiuta|ntê pàggini siquenti, ca foru prutiggiuti}} cu l'opzioni «a cascata»:\n$2",
        "namespaceprotected": "Nun hai lu pirmissu pi canciari li pàggini ntô namespace '''$1'''.",
        "customcssprotected": "Nun hai lu pirmissu pi canciari sta pàggina CSS pirchì cunteni li mpustazzioni pirsunali di n'àutru utenti.",
        "resetpass-temp-password": "Password timpurània:",
        "resetpass-abort-generic": "Lu canciu dâ password fu annullatu di n'estinzioni.",
        "resetpass-expired": "La tò password scadìu. Pi favuri mposta na password nova pi tràsiri.",
-       "resetpass-expired-soft": "La tò password scadìu e s'havi a azzirari. Pi favuri scegghi na password nova ora, o puru clicca \"{{int:resetpass-submit-cancel}}\" p'azziràrila n'àutra vota.",
-       "resetpass-validity-soft": "La tò password nun è vàlida: $1\n\nPi favuri scegghi na password nova ora, o puru clicca \"{{int:resetpass-submit-cancel}}\" p'azziràrila n'àutra vota.",
+       "resetpass-expired-soft": "La tò password scadìu e s'havi a azzirari. Pi favuri scegghi na password nova ora, o puru clicca \"{{int:authprovider-resetpass-skip-label}}\" p'azziràrila n'àutra vota.",
+       "resetpass-validity-soft": "La tò password nun è vàlida: $1\n\nPi favuri scegghi na password nova ora, o puru clicca \"{{int:authprovider-resetpass-skip-label}}\" p'azziràrila n'àutra vota.",
        "passwordreset": "Azziramentu dâ password",
        "passwordreset-text-one": "Jinchi stu mòdulu p'arricèviri na password timpurània pi posta elittrònica.",
        "passwordreset-text-many": "{{PLURAL:$1|Jinchi unu dî campi p'arricèviri na password timpurània pi posta elittrònica.}}",
        "allmessagesname": "Nomu",
        "allmessagesdefault": "Testu pridifinitu",
        "allmessagescurrent": "Testu attuali",
-       "allmessagestext": "Chista è na lista di missaggi di sistema chi s'attròvanu sutta MediaWiki:''nomu''.\nVisita [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] e [//translatewiki.net translatewiki.net] si voi cuntribbuiri â localizzazioni generica di MediaWiki.",
+       "allmessagestext": "Chista è na lista di missaggi di sistema chi s'attròvanu sutta MediaWiki:''nomu''.\nVisita [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] e [https://translatewiki.net translatewiki.net] si voi cuntribbuiri â localizzazioni generica di MediaWiki.",
        "allmessagesnotsupportedDB": "'''{{ns:special}}:Allmessages''' nun è suppurtatu pirchì lu flag '''$wgUseDatabaseMessages''' nun è attivu.",
        "allmessages-filter-legend": "Filtru",
        "allmessages-filter": "Filtru pi statu di canciamentu:",
index 6f6ec3b..b85a4d5 100644 (file)
        "october-date": "$1 October",
        "november-date": "$1 November",
        "december-date": "$1 Dezember",
+       "period-am": "AM",
+       "period-pm": "PM",
        "pagecategories": "{{PLURAL:$1|Categerie|Categeries}}",
        "category_header": "Pages in categerie \"$1\"",
        "subcategories": "Subcategeries",
        "morenotlisted": "This leet isna complete.",
        "mypage": "Ma page",
        "mytalk": "Ma tauk",
-       "anontalk": "Tauk fer this IP address",
+       "anontalk": "Tauk",
        "navigation": "Navigation",
        "and": "&#32;n",
        "qbfind": "Fynd",
        "pool-queuefull": "Pool line is ful",
        "pool-errorunknown": "Onknawn mistak.",
        "pool-servererror": "The puil coonter service is na available ($1).",
+       "poolcounter-usage-error": "Uisage error: $1",
        "aboutsite": "Aneat {{SITENAME}}",
        "aboutpage": "Project:Aneat",
        "copyright": "Content is available unner $1 onless itherwise noted.",
        "nstab-template": "Template",
        "nstab-help": "Help page",
        "nstab-category": "Categerie",
+       "mainpage-nstab": "Main page",
        "nosuchaction": "Nae sic action",
        "nosuchactiontext": "The action speceefieed bi the URL isna recognised\nYe micht hae mistyped the URL, or follaed ae wrang link\nThis micht forby be caused bi ae bug in the saffware uised bi {{SITENAME}}.",
        "nosuchspecialpage": "Nae sic byordinar page",
        "missingarticle-rev": "(reveesion#: $1)",
        "missingarticle-diff": "(Diff: $1, $2)",
        "readonly_lag": "The database haes been autaematiclie lockit while the sclave database servers catch up tae the maister",
+       "nonwrite-api-promise-error": "The 'Promise-Non-Write-API-Action' HTTP header wis sent but the request wis tae an API write module.",
        "internalerror": "Internal mistak",
        "internalerror_info": "Internal mistak: $1",
+       "internalerror-fatal-exception": "Fatal exception o teep \"$1\"",
        "filecopyerror": "Cuidna copie file \"$1\" til \"$2\".",
        "filerenameerror": "Cuidna rename file \"$1\" til \"$2\".",
        "filedeleteerror": "Cuidna delyte file \"$1\".",
        "protectedpagetext": "This page haes been protected fer tae hider eeditin or ither actions.",
        "viewsourcetext": "Ye can leuk at n copie the soorce o this page:",
        "viewyourtext": "Ye can see n copie the soorce o <strong>yer eedits</strong> til this page:",
-       "protectedinterface": "This page provides interface tex fer the saffware oan this wiki, n is protected fer tae hinder abuise.\nTae eik or chynge owersets fer aw wikis, please uise [//translatewiki.net/ translatewiki.net], the MediaWiki localisation waurk.",
+       "protectedinterface": "This page provides interface tex fer the saffware oan this wiki, n is protected fer tae hinder abuise.\nTae eik or chynge owersets fer aw wikis, please uise [https://translatewiki.net/ translatewiki.net], the MediaWiki localisation waurk.",
        "editinginterface": "<strong>Warnishment:</strong> Ye'r eeditin ae page that is uised tae provide interface tex fer the saffware.\nChynges til this page will affect the kithin o the uiser interface fer ither uisers oan this wiki.",
-       "translateinterface": "Tae eik or chynge owersets fer aw wikis, please uise [//translatewiki.net/ translatewiki.net], the MediaWiki localisation wairk.",
+       "translateinterface": "Tae eik or chynge owersets fer aw wikis, please uise [https://translatewiki.net/ translatewiki.net], the MediaWiki localisation wairk.",
        "cascadeprotected": "This page haes been protectit fae eiditin, cause it is inclædit in the follaein {{PLURAL:$1|page|pages}}, that ar protectit wi the \"cascadin\" optie turnit oan:\n$2",
        "namespaceprotected": "Ye dinna hae permeession tae edit pages in the '''$1''' namespace.",
        "customcssprotected": "Ye dinna hae permeession tae eidit this CSS page cause it contains anither uiser's personal settings.",
        "virus-scanfailed": "the scan failed (code $1)",
        "virus-unknownscanner": "onken't antivirus:",
        "logouttext": "<strong>Ye'r nou loggit oot.</strong>\n\nMynd that some pages micht continue tae be displeyed aes gif ye were still loggit in, til ye clear yer brouser cache.",
+       "cannotlogoutnow-title": "Canna log oot nou",
        "welcomeuser": "Weelcome, $1!",
        "welcomecreation-msg": "Yer accoont haes been cræftit.\nYe can chynge yer {{SITENAME}} [[Special:Preferences|preeferences]] gif ye like.",
        "yourname": "Uisername:",
        "remembermypassword": "Mynd ma login oan this brouser (fer $1 {{PLURAL:$1|day|days}} at the maist)",
        "userlogin-remembermypassword": "Keep me loggit in",
        "userlogin-signwithsecure": "Uise secure connection",
+       "cannotloginnow-title": "Canna log in nou",
        "yourdomainname": "Yer domain:",
        "password-change-forbidden": "Ye canna chynge passwords oan this wiki.",
        "externaldberror": "Aither thaur wis aen external authentication database mistak, or ye'r naw permitit tae update yer external accoont.",
        "login": "Log in",
+       "login-security": "Verify yer identity",
        "nav-login-createaccount": "Log in / cræft aen accoont",
        "userlogin": "Cræft aen accoont or log in",
        "userloginnocreate": "Log in.",
        "userlogin-resetpassword-link": "Fergot yer password?",
        "userlogin-helplink2": "Heelp wi loggin in",
        "userlogin-loggedin": "Ye'r awreadie loggit in as {{GENDER:$1|$1}}.\nUise the form ablow tae log in as anither uiser.",
+       "userlogin-reauth": "Ye must log in again tae verify that ye are {{GENDER:$1|$1}}.",
        "userlogin-createanother": "Mak anither accoont",
        "createacct-emailrequired": "Wab-mail address",
        "createacct-emailoptional": "Wab-mail address (optional)",
        "createaccountreason": "Raison:",
        "createacct-reason": "Raison",
        "createacct-reason-ph": "Why ar ye creating anither accoont",
+       "createacct-reason-help": "Message shawn in the accoont creation log",
        "createacct-submit": "Mak yer accoont",
        "createacct-another-submit": "Mak anither accoont",
+       "createacct-continue-submit": "Continue accoont creation",
+       "createacct-another-continue-submit": "Continue accoont creation",
        "createacct-benefit-heading": "{{SITENAME}} is makit bi fowk like ye.",
        "createacct-benefit-body1": "{{PLURAL:$1|eidit|eidits}}",
        "createacct-benefit-body2": "{{PLURAL:$1|page|pages}}.",
        "createacct-benefit-body3": "recent {{PLURAL:$1|contreebuter|contreebuters}}",
        "badretype": "The passwairds ye entered dinna match.",
+       "usernameinprogress": "An accoont creation for this uiser name is already in progress.\nPlease wait.",
        "userexists": "The uiser name ye entered is awreadie in uiss. Please chuise ae different name.",
        "loginerror": "Login mistak",
        "createacct-error": "Accoont cræftin mistak",
        "nocookieslogin": "{{SITENAME}} uises cookies tae log in uisers. Ye hae cookies disabled. Please enable thaim an gie it anither shot.",
        "nocookiesfornew": "The uiser accoont wisna cræftit, aes we couda confirm its soorce.\nEnsure that ye have cookies enabled, relaid this page n gie it anither shote.",
        "noname": "Ye'v na speceefie'd ae valid uisername.",
-       "loginsuccesstitle": "Login fine",
+       "loginsuccesstitle": "Logged in",
        "loginsuccess": "<strong>Ye're nou loggit in tae {{SITENAME}} aes \"$1\".</strong>",
-       "nosuchuser": "Thaur's nae sic uiser aes \"$1\".\nUiser names ar case-sensiteeve.\nCheck yer speelin, or [[Special:CreateAccount|mak ae new accoont]].",
+       "nosuchuser": "Thare is no uiser bi the name \"$1\".\nUisernames are case sensitive.\nCheck yer spellin, or [[Special:CreateAccount|create a new accoont]].",
        "nosuchusershort": "Thaur's nae sic uiser aes \"$1\". Check yer spellin.",
        "nouserspecified": "Ye hae tae merk up ae uisername.",
        "login-userblocked": "Uiser \"$1\" is blockit. Log-in naw permitit.",
        "wrongpassword": "The passwaird ye entered is wrang. Please gie it anither shot.",
        "wrongpasswordempty": "The passwaird ye entered is blank. Please gie it anither shot.",
        "passwordtooshort": "Yer password is ower short.\nIt maun hae at laest {{PLURAL:$1|1 chairacter|$1 chairacters}}.",
+       "passwordtoolong": "Passwirds canna be langer nor {{PLURAL:$1|1 character|$1 characters}}.",
        "password-name-match": "Yer passwaird maun be different fae yer uisername.",
        "password-login-forbidden": "The uise o this uisername n passwaird haes been ferbidden.",
        "mailmypassword": "Reset password",
        "createacct-another-realname-tip": "Real name is aen optie.\nGif ye chuise tae provide it, this will be uised fer giein the uiser attreebution fer their wark.",
        "pt-login": "Log in",
        "pt-login-button": "Log in",
+       "pt-login-continue-button": "Continue login",
        "pt-createaccount": "Mak accoont",
        "pt-userlogout": "Log oot",
        "php-mail-error-unknown": "Onken't mistak in PHP's mail() function.",
        "resetpass-temp-password": "Temperie passwaird:",
        "resetpass-abort-generic": "Passwaird chynge haes been aborted bi aen extension.",
        "resetpass-expired": "Yer passwaird haes expired. Please set ae new passwaird tae log-in.",
-       "resetpass-expired-soft": "Yer passwaird haes expired n needs tae be reset. Please chuise ae new passwaird nou, or clap oan \"{{int:resetpass-submit-cancel}}\" tae reset it later.",
-       "resetpass-validity-soft": "Yer passwaird isna valid: $1\n\nPlease chuise ae new passwaird nou, or clap \"{{int:resetpass-submit-cancel}}\" tae reset it later.",
+       "resetpass-expired-soft": "Yer passwaird haes expired n needs tae be reset. Please chuise ae new passwaird nou, or clap oan \"{{int:authprovider-resetpass-skip-label}}\" tae reset it later.",
+       "resetpass-validity-soft": "Yer passwaird isna valid: $1\n\nPlease chuise ae new passwaird nou, or clap \"{{int:authprovider-resetpass-skip-label}}\" tae reset it later.",
        "passwordreset": "Reset passwaird",
        "passwordreset-text-one": "Compleate this form tae receive ae temperie passwaird via wab-mail.",
        "passwordreset-text-many": "{{PLURAL:$1|Fill in yin o the fields tae receive ae temperie passwaird via wab-mail.}}",
        "recentchangeslinked-summary": "This is ae leet o chynges makit recentlie til pages linked fae ae speceefied page (or til memmers o ae speceefied categerie).\nPages oan [[Special:Watchlist|yer watchleet]] ar <strong>baud</strong.",
        "recentchangeslinked-page": "Page name:",
        "recentchangeslinked-to": "Shaw chynges til pages linked til the gien page instead",
+       "recentchanges-page-added-to-category": "[[:$1]] addit tae category",
+       "recentchanges-page-removed-from-category": "[[:$1]] remuived frae category",
        "upload": "Uplaid file",
        "uploadbtn": "Uplaid file",
        "reuploaddesc": "Gang back til the uplaid form.",
        "querypage-disabled": "This speecial page is disablit fer performance raisons.",
        "apihelp": "API help",
        "apihelp-no-such-module": "Module \"$1\" wis no foond.",
+       "apisandbox-loading": "Laidin information for API module \"$1\"...",
+       "apisandbox-load-error": "An error occurred while laidin information for API module \"$1\": $2",
        "booksources": "Buik soorces",
        "booksources-search-legend": "Rake fer buik soorces",
        "booksources-search": "Rake",
        "logempty": "Nae matchin eetems in log.",
        "log-title-wildcard": "Rake titles stairtin wi this tex",
        "showhideselectedlogentries": "Chynge veesibeelitie o selectit log entries",
+       "log-edit-tags": "Eedit tags o selectit log entries",
        "allpages": "Aw pages",
        "nextpage": "Neis page ($1)",
        "prevpage": "Aforegaun page ($1)",
        "rollback-success": "Reverted eedits b $1;\nchynged back til the laist reveesion bi $2.",
        "sessionfailure-title": "Session failure",
        "sessionfailure": "Thaur seems tae be ae proablem wi yer login session;\nthis action haes been canceled aes ae precaution again session hijackin.\nGang back til the preeveeoos page, relaid that page n than gie it anither gae.",
+       "log-name-contentmodel": "Content model chynge log",
        "protectlogpage": "Fend log",
        "protectlogtext": "Ablow is ae leet o chynges til page protections.\nSee the [[Special:ProtectedPages|protected pages leet]] fer the leet o currently operational page protections.",
        "protectedarticle": "protectit \"[[$1]]\"",
        "allmessagesname": "Name",
        "allmessagesdefault": "Defaut message tex",
        "allmessagescurrent": "Message tex the nou",
-       "allmessagestext": "This is ae leet o seestem messages available in the MediaWiki namespace.\nPlease veesit [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] n [//translatewiki.net translatewiki.net] gif ye wish tae contreebute tae the generic MediaWiki localisation.",
+       "allmessagestext": "This is ae leet o seestem messages available in the MediaWiki namespace.\nPlease veesit [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] n [https://translatewiki.net translatewiki.net] gif ye wish tae contreebute tae the generic MediaWiki localisation.",
        "allmessagesnotsupportedDB": "This page canna be uised cause <strong>$wgUseDatabaseMessages</strong> haes been disablt.",
        "allmessages-filter-legend": "Filter",
        "allmessages-filter": "Filter b custymization state:",
        "patrol-log-page": "Patrow log",
        "patrol-log-header": "This is ae log o patrowed reveesions.",
        "log-show-hide-patrol": "$1 patrow log",
+       "log-show-hide-tag": "$1 tag log",
        "deletedrevision": "Delytit auld reveesion $1.",
        "filedeleteerror-short": "Mistak delytin file: $1",
        "filedeleteerror-long": "mistaks were encoontered while delytin the file:\n\n$1",
        "tags-active-no": "Naw",
        "tags-edit": "eedit",
        "tags-hitcount": "$1 {{PLURAL:$1|chynge|chynges}}",
+       "tags-edit-logentry-selected": "{{PLURAL:$1|Selectit log event|Selectit log events}}:",
+       "tags-edit-logentry-legend": "Add or remuive tags frae {{PLURAL:$1|this log entry|aw $1 log entries}}",
+       "tags-edit-logentry-submit": "Apply chynges tae {{PLURAL:$1|this log entry|$1 log entries}}",
        "comparepages": "Compare pages",
        "compare-page1": "Page 1",
        "compare-page2": "Page 2",
        "logentry-upload-upload": "$1 {{GENDER:$2|uplaidit}} $3",
        "logentry-upload-overwrite": "$1 {{GENDER:$2|uplaidit}} ae new version o $3",
        "logentry-upload-revert": "$1 {{GENDER:$2|uplaidit}} $3",
+       "log-name-managetags": "Tag management log",
+       "log-description-managetags": "This page leets management tasks relatit tae [[Special:Tags|tags]]. The log conteens anly actions carried oot manually bi an admeenistrator; tags mey be creatit or deletit bi the wiki saftware wioot an entry bein recordit in this log.",
+       "logentry-managetags-delete": "$1 {{GENDER:$2|deletit}} the tag \"$4\" (remuived frae $5 {{PLURAL:$5|reveesion or log entry|reveesions an/or log entries}})",
+       "log-name-tag": "Tag log",
        "rightsnone": "(nane)",
        "revdelete-summary": "eedit the ootline",
        "feedback-adding": "Eikin feedback til page...",
        "pagelang-select-lang": "Pick yer leid",
        "right-pagelang": "Chynge page leid",
        "action-pagelang": "chynge the page leid",
-       "log-name-pagelang": "Chynge leid log",
+       "log-name-pagelang": "Leid chynge log",
        "log-description-pagelang": "This is ae log o chynges in page leids.",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2|chynged}} page leid fer $3 fae $4 tae $5.",
        "default-skin-not-found": "Whoops! The defaut skin fer yer wiki, defined in <code dir=\"ltr\">$wgDefaultSkin</code> aes <code>$1</code>, is no available.\n\nYer instawation seems tae incluid the follaein skins. See [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] fer information oan hou tae enable thaim n chuise the defaut.\n\n$2\n\n; Gif ye'v juist instawed MediaWiki:\n: Ye proabablie instawed it fae git, or directlie fae the soorce code uisin some ither method. This is expectie. Gie instawin some skins fae [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's skin directory] ae shot, bi:\n:* Dounlaidin the [https://www.mediawiki.org/wiki/Download tarball installer], this comes wi several skins n extensions. Ye can than capie n paste the <code>skins/</code> directerie fae this.\n:* Dounlaidin indiveedual skin tarballs frae [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Clonin one of the <code>mediawiki/skins/*</code> repositries bi wa o git intae the <code dir=\"ltr\">skins/</code> directerie o yer MediaWiki instawation.\n: Daein this shoudna interfere wi yer git repositrie gif ye'r ae MediaWiki deveeloper.\n\n; Gif ye,v juist upgradit MediaWiki:\n: MediaWiki 1.24 n newer nae langer enables instawed skins autæmateeclie (see [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]). Ye can paste the follaein lines intae <code>LocalSettings.php</code> tae enable aw nou installed skins:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Gif ye'v juist modified <code>LocalSettings.php</code>:\n: Double-check the skin names fer typos.",
        "json-error-recursion": "Yin or mair recurseeve references in the value tae be encoded",
        "json-error-inf-or-nan": "Yin or mair NAN or INF values in the value tae be encoded",
        "json-error-unsupported-type": "Ae value o ae type that canna be encoded wis gien",
-       "special-characters-group-ipa": "IPA"
+       "special-characters-group-ipa": "IPA",
+       "log-action-filter-delete-event": "Log deletion",
+       "log-action-filter-suppress-event": "Log suppression",
+       "authmanager-authn-no-local-user-link": "The supplee'd credentials are valid but are nae associatit wi ony uiser on this wiki. Login in a different way, or create a new uiser, an ye will hae an option tae airtin yer previous credentials tae that accoont.",
+       "authform-nosession-login": "The authentication wis successfu, but yer brouser canna \"remember\" bein logged in.\n\n$1",
+       "authpage-cannot-login": "Unable tae stairt login.",
+       "authpage-cannot-login-continue": "Unable tae continue login. Yer session maist likly timed oot."
 }
index 23a7daa..279b68f 100644 (file)
        "resetpass-temp-emailed": "توهان برق ٽپال ذريعي اماڻيل عارضي ڳجھي لفظ سان لاگ اِن ٿيا آهيو. لاگ اِن کي مڪمل ڪرڻ لاءِ توهان کي هتي نئون ڳجھو لفظ طَي ڪرڻو ئي پوندو:",
        "resetpass-temp-password": "عارضي ڳجھو لفظ:",
        "resetpass-expired": "توهان جو ڳجھو لفظ مدي خارج ٿي چڪو آهي. نئون ڳجھو لفظ مقرر ڪريو ۽ لاگ اِن ٿيو.",
-       "resetpass-expired-soft": "توهان جو ڳجھو لفظ مدي خارج ٿي چڪو آهي. مهرباني ڪري نئون ڳجھو لفظ چونڊيو، يا ساڳيو ڪم ڪنهن ٻي وقت ڪرڻ لاءِ \"{{int:resetpass-submit-cancel}}\" تي ڪلڪ ڪريو.",
-       "resetpass-validity-soft": "توهان جو ڳجھو لفظ ناقابل ڪار آهي: $1\nمهرباني ڪري نئون ڳجھو لفظ چونڊيو، يا ساڳيو ڪم ڪنهن ٻي وقت ڪرڻ لاءِ \"{{int:resetpass-submit-cancel}}\" تي ڪلڪ ڪريو.",
+       "resetpass-expired-soft": "توهان جو ڳجھو لفظ مدي خارج ٿي چڪو آهي. مهرباني ڪري نئون ڳجھو لفظ چونڊيو، يا ساڳيو ڪم ڪنهن ٻي وقت ڪرڻ لاءِ \"{{int:authprovider-resetpass-skip-label}}\" تي ڪلڪ ڪريو.",
+       "resetpass-validity-soft": "توهان جو ڳجھو لفظ ناقابل ڪار آهي: $1\nمهرباني ڪري نئون ڳجھو لفظ چونڊيو، يا ساڳيو ڪم ڪنهن ٻي وقت ڪرڻ لاءِ \"{{int:authprovider-resetpass-skip-label}}\" تي ڪلڪ ڪريو.",
        "passwordreset": "ڳجھو لفظ مَٽايو",
        "passwordreset-text-one": "برق ٽپال ذريعي عارضي ڳجھو لفظ حاصل ڪرڻ لاءِ هيءُ فارم پُر ڪريو.",
        "passwordreset-disabled": "هن وڪيءَ تي ڳجھو لفظ نئين سِر مقرر ڪرڻ وارو چارو غير فعال بڻايو ويو آهي.",
        "accmailtitle": "ڳجھو لفظ اماڻجي چڪو.",
        "newarticle": "(نئون)",
        "newarticletext": "توهان اهڙي صفحي جو ڳنڍڻو وٺي هتي پهتا آهيو، جيڪو اڃا وجود نہ ٿو رکي. اهڙو صفحو جوڙڻ لاءِ هيٺين باڪس ۾ ٽائيپ ڪرڻ شروع ڪريو (وڌيڪ ڄاڻڻ لاءِ [$1 امدادي صفحو] ڏسندا). جي توهان هتي غلطيءَ ۾ اچي ويا آهيو تہ رڳو پنهنجي جهانگُوءَ جو '''back''' بٽڻ ڪلڪ ڪندا.",
-       "noarticletext": "في‌الوقت هن صفحي اندر ڪو بہ ٽيڪسٽ نہ آهي. توهان ٻين صفحن ۾ [[Special:Search/{{PAGENAME}}|search ساڳي عنوان جي ڳولا]] ڪري سگھو ٿا.  \n\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} لاڳاپيل لاگس ۾ ڳوليو]،\nor [{{fullurl:{{FULLPAGENAME}}|action=edit}} هيءُ صفحو ترميميو]</span>.",
+       "noarticletext": "في‌الوقت هن صفحي اندر ڪو بہ ٽيڪسٽ نہ آهي.\nتوهان ٻين صفحن ۾ [[Special:Search/{{PAGENAME}}|search ساڳي عنوان جي ڳولا]] ڪري سگھو ٿا،  \n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} لاڳاپيل لاگس ۾ ڳوليو]،\nor [{{fullurl:{{FULLPAGENAME}}|action=edit}} هيءُ صفحو ترميميو]</span>.",
        "userpage-userdoesnotexist-view": "يُوزر کاتو $1 درج ٿيل نہ آهي.",
        "blocked-notice-logextract": "هيءَ يُوزر في‌الحال بندشيل آهي. تازو بندش لاگ حوالي طور پيش ڪجي ٿو:",
        "updated": "(تجديديل)",
        "search-relatedarticle": "لاڳاپيل",
        "searchrelated": "لاڳاپيل",
        "searchall": "سڀ",
+       "search-showingresults": "{{PLURAL:$4|نتيجو <strong>$1</strong> of <strong>$3</strong>|نتيجا <strong>$1 - $2</strong> of <strong>$3</strong>}}",
        "search-nonefound": "توهان جي ڳولا جي نتيجي ۾ ڪجھہ بہ ڪو نہ لڌو.",
        "powersearch-legend": "اعليٰ ڳولا",
        "powersearch-togglelabel": "چڪاسيو:",
        "whatlinkshere-prev": "{{PLURAL:$1|پويون|پويون $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|اڳيون|اڳيان $1}}",
        "whatlinkshere-links": "← ڳنڍڻا",
-       "whatlinkshere-hideredirs": "$1 چورجي ٿو",
+       "whatlinkshere-hideredirs": "$1 چوري ٿو",
        "whatlinkshere-hidelinks": "$1 ڳنڍڻا",
        "whatlinkshere-filters": "ڇاڻيون",
        "whatlinkshere-submit": "هلو",
        "import-upload-filename": "فائيل نانءُ:",
        "import-comment": "تاثر:",
        "importlogpage": "درآمد لاگ",
-       "tooltip-pt-userpage": "توهان جو تعارفي صفحو",
-       "tooltip-pt-mytalk": "توهان جو مباحثي صفحو",
-       "tooltip-pt-preferences": "منهنجون ترجيحات",
+       "tooltip-pt-userpage": "{{GENDER:|توھانجو يوزر}} صفحو",
+       "tooltip-pt-mytalk": "{{GENDER:|توھانجو}} يوزر صفحو",
+       "tooltip-pt-preferences": "{{GENDER:|توھانجون}} ترجيحات",
        "tooltip-pt-watchlist": "توهان جي ٽيٽ فهرست ۾ شامل صفحا",
-       "tooltip-pt-mycontris": "توهان جون ڀاڱيداريون",
+       "tooltip-pt-mycontris": "{{GENDER:|توھانجي}} ڀاڱيدارين جي فھرست",
        "tooltip-pt-login": "توهان کي همٿائجي ٿو تہ توهان لاگ اِن ٿيو، بهرحال اهو لازمي نہ آهي.",
        "tooltip-pt-logout": "لاگ آئوٽ",
        "tooltip-pt-createaccount": "کاتو کولڻ ۽ لاگ اِن ٿيڻ تي توهان کي همٿايو ويندو؛  جيتوڻيڪ، اهو ضروري نہ آهي",
        "tooltip-t-whatlinkshere": "هتان ڳنڍيل سمورا وڪي صفحا",
        "tooltip-t-recentchangeslinked": "ويجھڙائيءَ ۾ صفحن ۾ ٿيل تبديليون هن صفحي سان ڳنڍيل آهن",
        "tooltip-feed-atom": "هن صفحي لاءِ ايٽم فيڊ",
-       "tooltip-t-contributions": "هن يُوزر جون ڀاڱيداريون ڏسو",
+       "tooltip-t-contributions": "{{GENDER:$1|ھن يوزر}} جي ڀاڱيدارين جي فھرست",
        "tooltip-t-emailuser": "هن يُوزر کي برق ٽپال اماڻيو",
        "tooltip-t-upload": "فائيل چاڙهيو",
        "tooltip-t-specialpages": "سڀني خاص صفحن جي فهرست",
index 3ccb425..bfd5492 100644 (file)
        "protectedpagetext": "Chistha pàgina è isthadda prutiggidda pa impidinni la mudìfigga.",
        "viewsourcetext": "È pussìbiri visuarizzà e cupià lu còdizi di chistha pàgina:",
        "protectedinterface": "Chistha pàgina cunteni un'erementu chi fazzi parthi di l'interfàccia utenti di lu software; è dunca prutiggidda pa evità pussìbiri abusi.",
-       "editinginterface": "'''Attinzioni:''' Lu testhu di chistha pàgina fazzi parthi di l'interfàccia utenti di lu situ. Tutti li mudìfigghi arriggaddi a chistha pàgina si rifrèttini i' l'imbasciaddi visuarizzaddi pa tutti l'utenti. Pa li traduzioni, pa piazeri utirizà [//translatewiki.net/wiki/Main_Page?setlang=sdc translatewiki.net], lu prugettu di lucarizazioni MediaWiki.",
+       "editinginterface": "'''Attinzioni:''' Lu testhu di chistha pàgina fazzi parthi di l'interfàccia utenti di lu situ. Tutti li mudìfigghi arriggaddi a chistha pàgina si rifrèttini i' l'imbasciaddi visuarizzaddi pa tutti l'utenti. Pa li traduzioni, pa piazeri utirizà [https://translatewiki.net/wiki/Main_Page?setlang=sdc translatewiki.net], lu prugettu di lucarizazioni MediaWiki.",
        "cascadeprotected": "In chistha pàgina nò è pussìbiri effettuà mudìfigghi parchí è isthadda incrusa {{PLURAL:$1|i la sighenti pàgina indicadda, ch'è isthadda prutiggidda|i li sighenti pàgini indicaddi, chi so isthaddi prutiggiddi}} chirriendi la prutizioni \"ricussiba\":\n$2",
        "namespaceprotected": "Nò si diponi di li pimmissi nezzessàri pa mudifiggà li pagini di lu tipu di pagina '''$1'''.",
        "ns-specialprotected": "No è pussìbiri mudifiggà li pàgini ippiziari.",
        "allmessagesname": "Nommu",
        "allmessagesdefault": "Testhu pridifiniddu",
        "allmessagescurrent": "Testhu attuari",
-       "allmessagestext": "Chistha è la listha di tutti l'imbasciaddi di sisthema dipunìbiri i' lu tipu di pàgina MediaWiki.\nPa piazeri utirizà [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Lucarizazioni] e [//translatewiki.net translatewiki.net] pa l'althri traduzioni.",
+       "allmessagestext": "Chistha è la listha di tutti l'imbasciaddi di sisthema dipunìbiri i' lu tipu di pàgina MediaWiki.\nPa piazeri utirizà [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Lucarizazioni] e [https://translatewiki.net translatewiki.net] pa l'althri traduzioni.",
        "allmessagesnotsupportedDB": "Chistha pàgina nò è supporthadda parchí l'indicadori '''$wgUseDatabaseMessages''' nò è attibuu.",
        "allmessages-filter-unmodified": "Nò mudifiggaddi",
        "allmessages-filter-all": "Tutti",
        "version": "Versioni",
        "version-other": "Althru",
        "version-software-version": "Versioni",
-       "fileduplicatesearch-legend": "Zercha d'un dupricaddu",
        "fileduplicatesearch-filename": "Innòommu di lu file:",
        "fileduplicatesearch-submit": "Zercha",
        "specialpages": "Pagini ippiziari",
index cf0dcd3..5d38477 100644 (file)
        "metadata-help": "ئەی پەڕگە زانیاری فرەێگ لەتێیە، ک گەھا دۊردۊن (camera) یا ئسکەنێر (scanner) خستۊە سەری. ئەگەر پەڕگەگە لە حاڵەتە سەرەتاییەگەیەو دەسکاری کریاۊد، گاھەس بڕێگ لە وردەکاریەیل، زانیارەگان وێنە گووڕیاێەگە وە تەواوی نیشان نەدەن.",
        "metadata-fields": "کاڵگەگان (fields) میتادەیتاێ وێنە ک لە ئەی پەیامە وەڕزارەو کریانە، کاتێگ جەدوەل میتادەیتا کووکریاێ بوود لە پەڕەی وێنە نیشان دەریەن.\nکاڵگەگان تر لە حاڵەتی بنەڕەتی شاریاێن.\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-imagedescription": "ناونیشان وێنە",
-       "exif-pixelydimension": "بەرزی وێنە",
        "exif-flash": "فلەش",
        "exif-keywords": "کلیل‌وشەیل",
        "exif-writer": "نۊسەر",
index d3a576f..f031e4e 100644 (file)
@@ -6,7 +6,8 @@
                        "SeriCtam",
                        "Teak",
                        "Urhixidur",
-                       "아라"
+                       "아라",
+                       "Macofe"
                ]
        },
        "tog-underline": "Squóráam linkám:",
        "protectedpagetext": "Jan páhina coccebj lockom neticpatlöx pos-poop.",
        "viewsourcetext": "Mecohuatlöx ö copynom sourcenam zode jan páhina:",
        "protectedinterface": "Jan páhina coccebj textuade interface software zo 'de ö coccebj lockom neticpatlöx abusenam.",
-       "editinginterface": "'''Warning:''' You are editing a page which is used to provide interface text for the software.\nChanges to this page will affect the appearance of the user interface for other users.\nFor translations, please consider using [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], the MediaWiki localisation project.",
+       "editinginterface": "'''Warning:''' You are editing a page which is used to provide interface text for the software.\nChanges to this page will affect the appearance of the user interface for other users.\nFor translations, please consider using [https://translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], the MediaWiki localisation project.",
        "cascadeprotected": "Jan páhina coccebj protectöxde ticpatlöx, zo coccebj cascadande jan {{PLURAL:$1|páhina|páhinám}}, jan coccebj protëctox cascadanöx opcion zo mii:\n$2",
        "namespaceprotected": "Me necoccebj permiccion ticpatlöx páhinám '''$1''' ipartuatl zo iti.",
        "ns-specialprotected": "Páhinámde {{ns:special}} zo iti neticpatlöx.",
        "filerevert": "Iixponintöx $1",
        "filerevert-legend": "Iixponintöx ciúchan",
        "filerevert-comment": "Commentua:",
-       "filerevert-defaultcomment": "Iixponintöxde vercion $2, $1 'de",
+       "filerevert-defaultcomment": "Iixponintöxde vercion $2, $1 'de ($3)",
        "filerevert-submit": "Iixponintöx",
        "filedelete": "Delatom $1",
        "filedelete-legend": "Ciúchan delatan",
        "nlinks": "$1 {{PLURAL:$1|link|linkám}}",
        "nmembers": "$1 {{PLURAL:$1|diipolam|diipolám}}",
        "nrevisions": "$1 {{PLURAL:$1|revicion|revición}}",
-       "nviews": "$1 {{PLURAL:$1|cohuatl|cohuátl}}",
        "prefixindex": "Indexde prefix",
        "shortpages": "Páhinám diibajlipám",
        "longpages": "Páhinám bajlipám",
        "mailnologin": "Nenadressade iitom",
        "mailnologintext": "Zo coccebj Neces [[Special:UserLogin|caápo]]\nö coccebjöx adressade e-iitom validom [[Special:Preferences|mequáatlaác]]\niitom e-iitomde diijömde caitóm.",
        "emailuser": "E-iitom  jan caitom",
-       "emailpage": "E-iitom caitom",
        "defemailsubject": "{{SITENAME}} e-iitom",
        "noemailtitle": "Nejömde adressade e-iitom",
        "emailfrom": "Iitomde",
        "unlockbtn": "Diilockom database",
        "databasenotlocked": "Database zo necoccebj lockomöx.",
        "move-page-legend": "Yacom páhina",
-       "movearticle": "Yacom páhina:",
        "move-watch": "Cáminot jan páhina",
        "movepagebtn": "Yacom páhina",
        "movetalk": "Yacom czaxö páhina yodina ipríi",
        "movereason": "Ra:",
-       "delete_and_move": "Delatom ö yacom",
        "export": "Exportom páhinám",
        "export-submit": "Exportom",
        "allmessages": "Iitóm systémóm",
index e2adcf4..caddb8a 100644 (file)
        "protectedpagetext": "Moɲoo woo n' ka jejebandi ka barmayyan wala goy tanayaŋ ganji.",
        "viewsourcetext": "War ga hin ka dii moɲoo ašsiloo nda k'a bere:",
        "viewyourtext": "War ga hin ka dii <strong>war fasalyaney</strong> aššilo nda k'i bere:",
-       "protectedinterface": "Moɲoo woo ka hantumoo cebe wikiyoo woo porogaramoo se nd'a ga jejebu hasaraw teekey ga. Goy nda [//translatewiki.net/ translatewiki.net], MediaWiki berandiyan porožewoo ka berandiyaŋ tonton wala k'i barmay.",
+       "protectedinterface": "Moɲoo woo ka hantumoo cebe wikiyoo woo porogaramoo se nd'a ga jejebu hasaraw teekey ga. Goy nda [https://translatewiki.net/ translatewiki.net], MediaWiki berandiyan porožewoo ka berandiyaŋ tonton wala k'i barmay.",
        "editinginterface": "<strong>Yaamar:</strong> War goo ma moo fasal kaŋ nd'i ga goy ka goyjinaa porogaram hantumoo cebe. \nBarmawey kaŋ ga tee moɲoo ka hantumey kaŋ goykaw ga dii y'ey bere wikiyoo woo ga.",
-       "translateinterface": "Ka berandiyan tonton wala k'i barmay, wa goy nda [//translatewiki.net/ translatewiki.net], MediaWiki berandiyan porožewoo.",
+       "translateinterface": "Ka berandiyan tonton wala k'i barmay, wa goy nda [https://translatewiki.net/ translatewiki.net], MediaWiki berandiyan porožewoo.",
        "cascadeprotected": "Moɲoo woo ga jejebu barmayyan ga zam'a goo ne {PLURAL:$1|moo kaŋ ti|moɲey kaŋ ti}} jejebante nda \"kaŋandiyan\" suubari kaŋ ga dira: \n$2",
        "namespaceprotected": "War šii nda fondo ka moɲey barmay <strong>$1</strong> maadogoo ra.",
        "customcssprotected": "War šii nda fondo ka CSS moɲoo woo barmay zama goykaw tana foo boŋkayandiyaney g'a ra.",
        "resetpass-temp-password": "Šiiyan šennikufal:",
        "resetpass-abort-generic": "Dobu foo no ka šennikufal barmayyanoo ganji.",
        "resetpass-expired": "War šennikulaloo waatoo ben. Wa šennikufal taaga dam ka huru.",
-       "resetpass-expired-soft": "War šennikufaloo waatoo ben nd'a ga hima ka yeeti. War šennikufal taaga suuba sohõda, wala \"{{int:resetpass-submit-cancel}}\" naagu k'a yeeti waati foo.",
-       "resetpass-validity-soft": "War šennikufaloi ši boori: $1\n\nTaare šennikufal taaga suuba sohõ, wala \"{{int:resetpass-submit-cancel}}\" naagu k'a yeeti waati foo.",
+       "resetpass-expired-soft": "War šennikufaloo waatoo ben nd'a ga hima ka yeeti. War šennikufal taaga suuba sohõda, wala \"{{int:authprovider-resetpass-skip-label}}\" naagu k'a yeeti waati foo.",
+       "resetpass-validity-soft": "War šennikufaloi ši boori: $1\n\nTaare šennikufal taaga suuba sohõ, wala \"{{int:authprovider-resetpass-skip-label}}\" naagu k'a yeeti waati foo.",
        "passwordreset": "Šennikufal yeeti",
        "passwordreset-text-one": "Takaddaa woo timmandi ka duu šiiyan šennikufal bataga ra.",
        "passwordreset-text-many": "{{PLURAL:$1|Faari foo toonandi ka duu šiiyan šennikufal foo bataga ra.}}",
        "allmessagesname": "Maa",
        "allmessagesdefault": "Tilasu alhabar hantum",
        "allmessagescurrent": "Sohõda alhabar hantum",
-       "allmessagestext": "Woo ti dabariɲaa alhabar maašeede kaŋ ga bara MediaWiki maafarroo ra.\nGuna [https://www.mediawiki.org/wiki/Special:MyLanguage/MediaWiki šenni berandiyan] nda [//translatewiki.net translatewiki.net] nda war ga boona ka kanbuzaamay tee MediaWiki dumi-kul berandiyan se.",
+       "allmessagestext": "Woo ti dabariɲaa alhabar maašeede kaŋ ga bara MediaWiki maafarroo ra.\nGuna [https://www.mediawiki.org/wiki/Special:MyLanguage/MediaWiki šenni berandiyan] nda [https://translatewiki.net translatewiki.net] nda war ga boona ka kanbuzaamay tee MediaWiki dumi-kul berandiyan se.",
        "allmessagesnotsupportedDB": "Moɲoo woo ši hin ka goyandi zama <strong>$wgUseDatabaseMessages</strong> n' ka kayandi.",
        "allmessages-filter-legend": "Fayhaya",
        "allmessages-filter": "Fay boŋhanseyan alhaali bande:",
index 61607db..7b36ba3 100644 (file)
        "viewsourcetext": "Tamsta galat veizietė ė parsėkeltė poslapė teksta.",
        "viewyourtext": "Tamsta galat parveizietė ė parsikeltė <strong>Tamstas pakeitėmu</strong> pradėni teksta i šėtou poslapi.",
        "protectedinterface": "Šėtom poslapi īr pruogramėnės īronguos sasajuos teksts katros īr apsauguots, kū neprietelē anū nasogadėntu.",
-       "editinginterface": "<strong>Diemesė:</strong> Tamsta keitat poslapi, katros īr nauduojams programėnės irongas sōsajės tekstė. Pakeitėmā tamė poslapū tēpuogi pakeis nauduotuojė sōsajės ėšruoda ė kėtėims nauduotujams. Jēgo nuorėt pargoldītė, siūluom pasėnauduotė [//translatewiki.net „translatewiki.net“], „MediaWiki“ lokalėzacėjės pruojėktu.",
-       "translateinterface": "Ka pamainītomiet pargoldīmus vėsūs wiki pruojektus, nauduokat [//translatewiki.net/ translatewiki.net] tėnklapi.",
+       "editinginterface": "<strong>Diemesė:</strong> Tamsta keitat poslapi, katros īr nauduojams programėnės irongas sōsajės tekstė. Pakeitėmā tamė poslapū tēpuogi pakeis nauduotuojė sōsajės ėšruoda ė kėtėims nauduotujams. Jēgo nuorėt pargoldītė, siūluom pasėnauduotė [https://translatewiki.net „translatewiki.net“], „MediaWiki“ lokalėzacėjės pruojėktu.",
+       "translateinterface": "Ka pamainītomiet pargoldīmus vėsūs wiki pruojektus, nauduokat [https://translatewiki.net/ translatewiki.net] tėnklapi.",
        "namespaceprotected": "Tamsta netorėt teisiu keistė poslapiu '''$1''' srėtī.",
        "ns-specialprotected": "Specēlė̄jė poslapē nagal būtė keitamė.",
        "titleprotected": "Nauduotuos [[User:$1|$1]] ožgīnė padėrbtė straipsni tuokio pavadėnėmo.\nDingstės īr <em>$2</em>.",
        "exception-nologin": "Nesat prėsėjongis",
        "exception-nologin-text": "Ka galietomiet ton padėrbtė, Tamstā būtėnā rēk prėsėjongtė.",
        "exception-nologin-text-manual": "Ka galietomiet ton padėrbtė, Tamstā būtėnā rēk $1.",
-       "logouttext": "'''Daba Tamsta esat atsėjongė̄s.'''\n\nGalat ė tuoliau nauduotė {{SITENAME}} anuonėmėškā aba <span class='plainlinks'>[$1 prėsėjonkat]</span> ėš naujė tuo patio aba kėto nauduotuojė vardo.\nAtėduos: katrūs nakatrūs poslapiūs ė tuoliau gal ruodītė būktā būtomiet prėsėjongis lėgė tuol, kumet ėšvalīsat sava naršīklės dietovė (''cache'').",
+       "logouttext": "<strong>Daba Tamsta esat atsėjongė̄s.</strong>\n\nAtėduos: katrūs nakatrūs poslapiūs ė tuoliau gal ruodītė būktā būtomėt prėsėjongė̄s lėg tuol, kūmet ėšvalīsėt sava naršīklės dietovė (''cache'').",
        "cannotlogoutnow-title": "Nēn atsijongtė",
        "welcomeuser": "Svēks, $1!",
        "welcomecreation-msg": "Tamstas paskīra jau padėrbta.\nNūnā galat pakeistė sava {{SITENAME}} [[Special:Preferences|nustatīmus]], jēgo tėktās nuorat.",
        "createaccounterror": "Nė̄šiejė padėrbtė paskīruos: $1",
        "nocookiesnew": "Nauduotuojė paskīra bova sokurta, bat Tamsta nēsot prėsėjongis. {{SITENAME}} nauduo pakavukus (''cookies''), ka prėkergtom nauduotuojus. Tamsta esot ėšjongis anūs. Prašuom ijongtė pakavukus, tumet prisėjonkat so sava naujo nauduotuojė vardo ė slaptažuodio.",
        "nocookieslogin": "{{SITENAME}} nauduo pakavukus (''cookies''), ka prėkergtom nauduotuojus. Tamsta esat ėšjongis anūs. Prašuom ijongtė pakavukus ė pamiegītė apent.",
-       "loginsuccesstitle": "Gerā prėsėjongiet",
+       "loginsuccesstitle": "Prisijongiet gerā",
        "loginsuccess": "'''Dabā Tamsta esat prėsėjongis prī {{SITENAME}} kāp „$1“.'''",
-       "nosuchuser": "Nier anėjuokė nauduotuojė pavadėnta „$1“.\nPatikrinkat rašība, aba [[Special:CreateAccount|padėrbkat naujė paskīra]].",
+       "nosuchuser": "Nier anėjuokė nauduotuojė, katrou vards būtom „$1“ (dėdliuosės rādės svarbo ī).\nPatikrinkėt rašība aba [[Special:CreateAccount|padėrbkėt naujė paskīra]].",
        "nosuchusershort": "Nier juokė nauduotuojė, pavadėnta „$1“. Patėkrinkat rašība.",
        "nouserspecified": "Tamstā rēk nuruodītė nauduotuojė varda.",
        "login-userblocked": "Nauduotuos ožgints īr. Pakliūtė nie galama.",
        "wrongpasswordempty": "Slaptažuodis dīks īr. Pamiegīkat apent.",
        "passwordtooshort": "Tamstas slaptažuodis nier tinkoms aba par tromps īr. Ons tor būtė nuors {{PLURAL:$1|1 sėmbuolė|$1 sėmbuoliu}} ėlgoma.",
        "passwordtoolong": "Slaptažuodis negal būtė ėlgesnis kāp {{PLURAL:$1|1 znuoks|$1 znuokā|$1 znuoku}}.",
+       "passwordtoopopular": "Tonkē nauduojami slaptažuodē natink. Somīslėkėt kuoki tās godresni slaptažuodi.",
        "password-name-match": "Tamstas slaptažuodis tor skirtėis nu Tamstas nauduotuojė varda.",
        "password-login-forbidden": "Tuo nauduotuojė varda ė slaptažuodė nauduojėms nie galėms.",
        "mailmypassword": "Atgamintė slaptažuodi",
        "noemail": "Nier anėjuokė el. pašta adresa ivesta nauduotuojō „$1“.",
        "noemailcreate": "Tamsta nuruodīkat elektruonėni pašta, katros vēk",
        "passwordsent": "Naus slaptažuodis bova nusiōsts i el. pašta adresa,\nožregėstrouta nauduotuojė „$1“.\nPrašuom prisėjongtė vielē, kumet Tamsta gausėt anū.",
-       "blocked-mailpassword": "Tamstas IP adresos īr ožblokouts nū redagavėma, tudie neleidama nauduotė slaptažuodė priminėma funkcėjės, kū apsėsauguotomė nū pėktnaudžēvėma.",
+       "blocked-mailpassword": "Tamstas IP adresos ožgints ī, ka negalietomiet nieka čė dirbtė. Ka būtom apsisauguota nūg pėktnaudiavėma, slaptažuodė atgamėnėms ėšjongts ī.",
        "eauthentsent": "Patvėrtėnėma gruomata bova nusiōsta i paskėrta el. pašta adresa.\nPrīš ėšsiontiant kėta gruomata i Tamstas diežote, Tamsta torėt vīkdītė nuruodīmus gruomatuo, kū patvėrtėntomiet, kū diežotė tėkrā īr Tamstas.",
        "throttled-mailpassword": "Slaptažuodžė priminims jau bova ėšsiōsts, par paskotėnės {{PLURAL:$1|adīna|$1 adīnas}}. Nuorint apsėsauguotė nū pėktnaudēvėma, slaptažuodė priminėms gal būt ėšsiōsts tėk kas {{PLURAL:$1|adīna|$1 adīnas}}.",
        "mailerror": "Bieda siontiont gromata: $1",
        "emailnotauthenticated": "Tamstas el. pašta adresos da nier patvėrtėnts. Anėjuokės gruomatas\nnebus siontamas ni vėinam žemiau ėšvardėntam puoslaugiō.",
        "noemailprefs": "Nuruodėkīt el. pašta adresa, kū vėiktu šėtos funkcėjės.",
        "emailconfirmlink": "Patvėrtinkėt sava el. pašta adresa",
+       "invalidemailaddress": "Alektruonėnė pašta adresos nagal būtė prijėmts, ba ėšruod kap natinkamas skvarmas. Da sīk pamieginkėt ivestė tou adresa aba palikėt laukali dīka.",
        "accountcreated": "Nauduotuos padėrbts īr",
        "accountcreatedtext": "Paskīra nauduotojō [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|aptarėms]]) bova padėrbta.",
        "createaccount-title": "{{SITENAME}} paskīruos kūrėms",
        "createaccount-text": "Kažkastā svetainie {{SITENAME}} ($4) padėrba nauduotojė poslapi, katros vadėnas \"$2\" ė katruo slaptažuodis ī \"$3\", so Tamstas el. pašta adreso.\nDaba galat prėsėjongtė ė pasėkeistė slaptažuodi.\n\nJēgo tat ī kuokistā soklīdėms, tumet Jumis nieka darītė nerēk.",
        "login-throttled": "Tamsta nuognē daug sīkiu miegėnat prėsėjongtė.\nPalaukat $1 prīš miegėnont apent.",
+       "login-abort-generic": "Tamstas prisijongėms napavīka. Ons bova atšaukts.",
        "loginlanguagelabel": "Kalba: $1",
+       "createacct-another-realname-tip": "Viernos vards nie būtėns. \nJēb anou ožrašīsėt, tap ons būs ruodoms prī Tamstas darbū pamėnavuojėma.",
        "pt-login": "Prėsėjongtė",
        "pt-login-button": "Prėsėjongtė",
+       "pt-login-continue-button": "Tuoliau prisijongėnietė",
        "pt-createaccount": "Pasėdėrbtė paskīra",
        "pt-userlogout": "Atsėjongtė",
        "changepassword": "Pakeistė slaptažuodė",
        "newpassword": "Naus slaptažuodis:",
        "retypenew": "Apent ožrašīkat naujė slaptažuodi:",
        "resetpass_submit": "Nostatītė slaptažuodi ė prėsėjongtė",
-       "changepassword-success": "Tamstas slaptažuodis pakeists siekmėngā!",
+       "changepassword-success": "Tamstas slaptažuodis pamainīts gerā!",
        "changepassword-throttled": "Baisē daug čiesu mieginot prisėjongtė.\nDaba palaukėt $1 prīš mieginant vie.",
        "resetpass-submit-loggedin": "Keistė slaptažuodi",
        "resetpass-submit-cancel": "Pabengtė",
        "resetpass-temp-password": "Laikėns slaptažuodis:",
+       "resetpass-expired": "Tamstas slaptažuodis bengė vēktė. Padirbkėt nauja slaptažuodi, ka prisijongtomiet.",
        "passwordreset": "Apent padėrbtė slaptažuodi",
        "passwordreset-username": "Nauduotuojė vards:",
        "passwordreset-domain": "Domens:",
        "passwordreset-email": "El. pašta adresos:",
+       "passwordreset-emailtext-ip": "Kažėkas (mosietās Tamsta, ėš IP adresa $1) ožprašė pamainītė slaptažuodi tinklapie {{SITENAME}} ($4). Tou nauduotuojė {{PLURAL:$3|poslapis|poslapio|poslapē|poslapiu}}\nsorištė so tou al. pašta adreso ī:\n\n$2\n\n{{PLURAL:$3|Tas čiesėškos slaptažuodis|čiesėški slaptažuodē}} bengs vēktė pu {{PLURAL:$5|dėinuos|$5 dėinū}}.\nTamsta prisijonkėt ė pamainīkėt sava slaptažuodi. Jēb kas tā kėts padirba tou prašīma, aba jēb atminiet sava sena slaptažuodi, ta galėt nakrēptė atėdies i tou gromata ė jongtėis so sava seno slaptažuodio.",
        "passwordreset-emailelement": "Nauduotuos:\n$1\n\nČiesėšks slaptažuodis:\n$2",
        "changeemail": "Keistė aba trintė el. pašta adresa",
        "changeemail-oldemail": "Vielībs el. pašta adresosː",
        "newarticle": "(Naus)",
        "newarticletext": "Tamsta pakliovat poslapin, katros dā nie padėrbts.\nJēgo nuorat anon padėrbtė, rašīkat laukė, katros ī apatiuo\n(veiziekat [$1 pagelbas poslapi]).\nJēgo pakliovat čė netīčiuom, paprastiausē paspauskat naršīklės mīgtoka '''atgal'''.",
        "anontalkpagetext": "----''Tas īr anonimėnė nauduotuojė, katros nier sosėkūrės aba nenauduo paskīruos, aptarėmu poslapis.\nDielē tuo nauduojams IP adresos anuo atpažėnėmō.\nTas IP adresos gal būtė dalinams keletō nauduotuoju.\nJēgo Tamsta esat anonimėnis nauduotuos ėr veizėt, kū kuomentarā nier skėrtė Tamstā, [[Special:CreateAccount|sokorkėt paskīra]] aba [[Special:UserLogin|prisėjonkėt]], ė nebūsėt maišuoms so kėtās anonimėnēs nauduotuojās.''",
-       "noarticletext": "Nūnā tamė poslapie nie nė juokė teksta.\nTamsta galat [[Special:Search/{{PAGENAME}}|ėiškuotė ton poslapė pavadėnėma]] terp kėtū poslapiū,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ėiškuotė prėgolontiu īrašu],\naba [{{fullurl:{{FULLPAGENAME}}|action=edit}} keistė ton poslapi]</span>.",
+       "noarticletext": "Nūnā tamė poslapie nie nijuokė teksta.\nTamsta galat [[Special:Search/{{PAGENAME}}|ėiškuotė tou poslapė pavadėnėma]] terp kėtū poslapiu,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ėiškuotė prėgolontiu īrašu],\naba [{{fullurl:{{FULLPAGENAME}}|action=edit}} keistė tou poslapi]</span>.",
        "noarticletext-nopermission": "Nūnā tamė poslapie nier anėjuokė teksta.\nTamsta galat [[Special:Search/{{PAGENAME}}|ėiškuotė šėtuo poslapė pavadėnėma]] kėtūs poslapiūs,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ėiškuotė prėgolontiūm ragėstru]</span>.",
        "userpage-userdoesnotexist": "Nauduotuojė paskīra „<nowiki>$1</nowiki>“ nier ožregėstrouta. Prašuom patikrėntė, a Tamsta nuorėt kortė/keistė ta poslapi.",
        "userpage-userdoesnotexist-view": "Nie nauduotuojė vardo „$1“",
        "right-upload": "Ikeltė failus",
        "right-writeapi": "Nauduotė API rašīmō",
        "right-delete": "Trintė poslapius",
+       "right-browsearchive": "Ėiškuotė ėštrintū poslapiu",
+       "right-undelete": "Tou poslapi padėrbtė apent",
        "newuserlogpage": "Nauduotuojė kūrėma sārošos",
        "rightslog": "Nauduotuoju teisiu istuorėjė",
        "rightslogtext": "Pateikiams nauduotuoju teisiu pakeitėmu sārašos.",
        "pager-older-n": "{{PLURAL:$1|paskesnis|paskesnė|paskesniū}}",
        "booksources": "Kningu šaltėnē",
        "booksources-search-legend": "Kningu šaltėniu paėiška",
+       "booksources-search": "Ėiškuotė",
        "specialloguserlabel": "Nauduotuos:",
        "speciallogtitlelabel": "Pavadėnims:",
        "log": "Specēliūju vīksmū istuorėjė",
        "whatlinkshere-prev": "$1 {{PLURAL:$1|pėrmesnis|pėrmesnė|pėrmesniū}}",
        "whatlinkshere-next": "$1 {{PLURAL:$1|kėts|kėtė|kėtū}}",
        "whatlinkshere-links": "← nūruodas",
-       "whatlinkshere-hideredirs": "$1 nusokėmus",
+       "whatlinkshere-hideredirs": "$1 nūsokėmus",
        "whatlinkshere-hidetrans": "$1 itraukėmus",
        "whatlinkshere-hidelinks": "$1 nūruodas",
        "whatlinkshere-hideimages": "$1 abruozdieliu nūruodas",
        "tooltip-t-recentchangeslinked": "Paskotėnē pakeitėmā straipsniūs, pasėikiamūs nug šėta straipsnė",
        "tooltip-feed-rss": "Šėta poslapė RSS šaltėnis",
        "tooltip-feed-atom": "Ton poslapė Atom šaltėnis",
-       "tooltip-t-contributions": "Ruodītė tou nauduotuojė duovi",
+       "tooltip-t-contributions": "Ruodītė tou {{GENDER:$1|nauduotuojė}} duovi",
        "tooltip-t-emailuser": "Siōstė gromata šėtom prietėliō",
        "tooltip-t-upload": "Ožkrautė abruozdielius",
        "tooltip-t-specialpages": "Specēliūju poslapiu sārašos",
index e8e1631..54c4e65 100644 (file)
        "protectedpagetext": "Ova stranica je zaključana kako bi se spriječilo uređivanje ili druge akcije.",
        "viewsourcetext": "Možete vidjeti i kopirati izvorni kôd ove stranice.",
        "viewyourtext": "Možete vidjeti i kopirati izvor '''vaših izmjena''' na ovoj stranici.",
-       "protectedinterface": "Ova stranica sadrži tekst interfejsa za softver na ovoj wiki, pa je zaključana kako bi se spriječile zloupotrebe. Kako bi dodali ili promijenili prijevode za sve wikije, molimo koristite [//translatewiki.net/ translatewiki.net], projekt lokalizacije MediaWikija.",
-       "editinginterface": "<strong>Upozorenje:</strong> Mijenjate stranicu koja sadrži aktivan tekst programa.\nPromjene na ovoj stranici dovode i do promjena za druge korisnike ovog wikija.\nZa dodavanje ili promjene prijevoda za sve wikije, molimo Vas koristite [//translatewiki.net/ translatewiki.net], projekt prijevoda za MediaWiki.",
-       "translateinterface": "Za dodavanje ili promjenu prijevoda za sve wikije koristite [//translatewiki.net/ translatewiki.net], projekt za lokalizaciju MediaWikija.",
+       "protectedinterface": "Ova stranica sadrži tekst interfejsa za softver na ovoj wiki, pa je zaključana kako bi se spriječile zloupotrebe. Kako bi dodali ili promijenili prijevode za sve wikije, molimo koristite [https://translatewiki.net/ translatewiki.net], projekt lokalizacije MediaWikija.",
+       "editinginterface": "<strong>Upozorenje:</strong> Mijenjate stranicu koja sadrži aktivan tekst programa.\nPromjene na ovoj stranici dovode i do promjena za druge korisnike ovog wikija.\nZa dodavanje ili promjene prijevoda za sve wikije, molimo Vas koristite [https://translatewiki.net/ translatewiki.net], projekt prijevoda za MediaWiki.",
+       "translateinterface": "Za dodavanje ili promjenu prijevoda za sve wikije koristite [https://translatewiki.net/ translatewiki.net], projekt za lokalizaciju MediaWikija.",
        "cascadeprotected": "Uređivanje ove stranice zabranjeno je jer se koristi u {{PLURAL:$1|sljedećoj stranici, koja je zaštićena|sljedećim stranicama, koje su zaštićene}} prenosivom zaštitom:\n$2",
        "namespaceprotected": "Nemate dozvolu uređivati stranice imenskog prostora '''$1'''.",
        "customcssprotected": "Nemate dozvolu za mijenjanje ove CSS stranice jer sadrži osobne postavke nekog drugog korisnika.",
        "resetpass-temp-password": "Privremena lozinka:",
        "resetpass-abort-generic": "Promjenu lozinke/zaporke je prekinula ekstenzija.",
        "resetpass-expired": "Vaša lozinka je istekla. Postavite novu lozinku da biste se prijavili.",
-       "resetpass-expired-soft": "Vaša lozinka je istekla i morate postaviti novu. Postavite novu lozinku ili kliknite „{{int:resetpass-submit-cancel}}“ da je postavite kasnije.",
-       "resetpass-validity-soft": "Vaša loznika nije valjana: $1\n\nMolimo da sada odaberete novu lozinku ili kliknete \"{{int:resetpass-submit-cancel}}\" kako bi je resetirali kasnije.",
+       "resetpass-expired-soft": "Vaša lozinka je istekla i morate postaviti novu. Postavite novu lozinku ili kliknite „{{int:authprovider-resetpass-skip-label}}“ da je postavite kasnije.",
+       "resetpass-validity-soft": "Vaša loznika nije valjana: $1\n\nMolimo da sada odaberete novu lozinku ili kliknete \"{{int:authprovider-resetpass-skip-label}}\" kako bi je resetirali kasnije.",
        "passwordreset": "Ponovno postavi lozinku",
        "passwordreset-text-one": "Dovršite ovaj obrazac kako biste resetirali svoju lozinku/zaporku.",
        "passwordreset-text-many": "{{PLURAL:$1|Ispunite jedno od polja kako bi ste resetirali svoju lozinku/zaporku.}}",
        "allmessagesname": "Naziv",
        "allmessagesdefault": "Uobičajeni tekst",
        "allmessagescurrent": "Trenutni tekst",
-       "allmessagestext": "Ovo je spisak svih sistemskih poruka u dostupnih u MediaWiki imenskom prostoru.\nMolimo posjetite [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki lokalizaciju] i [//translatewiki.net translatewiki.net] ako želite doprinijeti općoj lokalizaciji MediaWikija.",
+       "allmessagestext": "Ovo je spisak svih sistemskih poruka u dostupnih u MediaWiki imenskom prostoru.\nMolimo posjetite [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki lokalizaciju] i [https://translatewiki.net translatewiki.net] ako želite doprinijeti općoj lokalizaciji MediaWikija.",
        "allmessagesnotsupportedDB": "Ova stranica ne može biti korištena jer je '''$wgUseDatabaseMessages''' isključen.",
        "allmessages-filter-legend": "Filter",
        "allmessages-filter": "Filter po stanju podešavanja:",
index 52c8cb6..9d36abb 100644 (file)
        "title-invalid-interwiki": "ႁူဝ်ၶေႃႈ ၼႃႈလိၵ်ႈ ဢၼ်တုၵ်းယွၼ်းမႃးၼၼ်ႉ မၼ်းပႃးဝႆႉ ႁဵင်းၵွင်ႉ တူဝ်ၼႂ်းဝီႇၶီႇ ဢၼ်ဢမ်ႇၸၢင်ႈဢဝ်ၸႂ်ႉလႆႈ တႃႇႁူဝ်ၶေႃႈ။",
        "title-invalid-talk-namespace": "ႁူဝ်ၶေႃႈၼႃႈလိၵ်ႈ ဢၼ်တုၵ်းယွၼ်းမႃးၼၼ်ႉ မၼ်းမၢႆထိုင်ၸူး ၼႃႈလိၵ်ႈဢုပ်ႇဢူဝ်း ဢၼ်ဢမ်ႇၸၢင်ႈ မီးလႆႈၼၼ်ႉ။",
        "title-invalid-characters": "ႁူဝ်ၶေႃႈ ၼႃႈလိၵ်ႈ ဢၼ်တုၵ်းယွၼ်းမႃးၼၼ်ႉ မၼ်းၶဝ်ႈပႃးဝႆႉ တူဝ်လိၵ်ႈ ဢၼ်ဢမ်ႇ ၸႂ်ႉလႆႈ : \"$1\"",
+       "title-invalid-magic-tilde": "ႁူဝ်ၶေႃႈၼႃႈလိၵ်ႈ ဢၼ်တုၵ်းယွၼ်းမႃးဝႆႉၼၼ်ႉ မၼ်းပႃးဝႆႉ ၶႅပ်းႁၢင်ႈသၢႆသွႆႉ ဢၼ်ဢမ်ႇၸၢင်ႈၸႂ်ႉလႆႈၼၼ်ႉ။\n\n(<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "ႁူဝ်ၶေႃႈၼႃႈလိၵ်ႈ ဢၼ်တုၵ်းယွၼ်းမႃးၼၼ်ႉ မၼ်းႁႅင်ႉယၢဝ်းၼႃႇၽႅဝ်။ မၼ်းတေဢမ်ႇလႆႈ ယၢဝ်းလိူဝ် $1 {{PLURAL:$1|byte|bytes}} တီႈၼႂ်း UTF-8 encoding။",
+       "title-invalid-leading-colon": "ႁူဝ်ၶေႃႈၼႃႈလိၵ်ႈ ဢၼ်တုၵ်းယွၼ်းဝႆႉၼၼ်ႉ တီႈတႄႇမၼ်း ပႃးဝႆႉ မၢႆၶႅၼ်ႈ ဢၼ်ဢမ်ႇ ၸၢင်ႈၸႂ်ႉလႆႈၼၼ်ႉ။",
        "viewsource": "တူၺ်း ငဝ်ႈငႃႇ",
        "viewsource-title": "တူၺ်းငဝ်ႈငႃႇ တွၼ်ႈတႃႇ $1",
        "protectedpagetext": "ၼႃႈလိၵ်ႈၼႆႉ ထုၵ်ႇႁႄႉၵင်ႈဝႆႉ တႃႇၵႅတ်ႇၶႄ လွင်ႈမူၼ်ႉမႄး ဢမ်ႇၼၼ် လွင်ႈႁဵတ်းသၢင်ႈ တၢင်ႇၸိူဝ်း",
        "viewsourcetext": "ၸဝ်ႈၵဝ်ႇ ၸၢင်ႈတူၺ်း သေ ထုတ်ႇဢဝ်လႆႈ ငဝ်ႈငႃႇ တႃႇၼႃႈလိၵ်ႈၼႆႉ",
        "viewyourtext": "ၸဝ်ႈၵဝ်ႇ ၸၢင်ႈတူၺ်းသေ ထုတ်ႇဢဝ်လႆႈ ငဝ်ႈငႃႇ တွၼ်ႈတႃႇ <strong>လွင်ႈမႄးထတ်းၸဝ်ႈၵဝ်ႇ</strong> ၸူး ၼႃႈလိၵ်ႈၼႆႉ",
-       "translateinterface": "တႃႇတေထႅမ်သႂ်ႇ ဢမ်ႇၼၼ် မႄး​လႅၵ်ႈလၢႆႈ လွင်ႈပိၼ်ႇၽႃႇသႃႇ တႃႇ ဝီႇၶီႇၼႆ ၶႅၼ်းတေႃႈ ၸႂ်ႉပၼ်  [//translatewiki.net/ translatewiki.net] ဢၼ်ပဵၼ် ၼႃႈၵၢၼ် ပိၼ်ႇၽႃႇသႃႇ မီႇတီႇယႃႇဝီႇၶီႇ ၼႆႉၶႃႈ။",
+       "translateinterface": "တႃႇတေထႅမ်သႂ်ႇ ဢမ်ႇၼၼ် မႄး​လႅၵ်ႈလၢႆႈ လွင်ႈပိၼ်ႇၽႃႇသႃႇ တႃႇ ဝီႇၶီႇၼႆ ၶႅၼ်းတေႃႈ ၸႂ်ႉပၼ်  [https://translatewiki.net/ translatewiki.net] ဢၼ်ပဵၼ် ၼႃႈၵၢၼ် ပိၼ်ႇၽႃႇသႃႇ မီႇတီႇယႃႇဝီႇၶီႇ ၼႆႉၶႃႈ။",
        "namespaceprotected": "ၸဝ်ႈၵဝ်ႇ ဢမ်ႇမီးသုၼ်ႇၶႂၢင်းပၼ် တႃႇတေမႄးထတ်း ၼႃႈလိၵ်ႈၸိူဝ်းၼႆႉ ၵႃႈတီႈၼႂ်း <strong>$1</strong> ၸိုဝ်ႈၼႆႉ။",
        "customcssprotected": "ၸဝ်ႈၵဝ်ႇ ဢမ်ႇမီးသုၼ်ႇၶႂၢင်းပၼ် တွၼ်ႈတႃႇမႄးထတ်း ၼႃႈလိၵ်ႈ CSS ဢၼ်ၼႆႉ။ ယွၼ်ႉပိူဝ်ႈဝႃႈ မၼ်းပႃးဝႆႉ ၵၢၼ်တင်ႈ လွင်ႈသုၼ်ႇတူဝ် ၽူႈၸႂ်ႉတိုဝ်းတၢင်ႇၵေႃႉဢေႃႈ။",
        "customjsprotected": "ၸဝ်ႈၵဝ်ႇ ဢမ်ႇမီးသုၼ်ႇၶႂၢင်းပၼ် တွၼ်ႈတႃႇမႄးထတ်း ၼႃႈလိၵ်ႈ JavaScript ဢၼ်ၼႆႉ။ ယွၼ်ႉပိူဝ်ႈဝႃႈ မၼ်းပႃးဝႆႉ ၵၢၼ်တင်ႈ လွင်ႈသုၼ်ႇတူဝ် ၽူႈၸႂ်ႉတိုဝ်းတၢင်ႇၵေႃႉဢေႃႈ။",
        "mycustomcssprotected": "ၸဝ်ႈၵဝ်ႇ ဢမ်ႇမီးသုၼ်ႇၶႂၢင်းပၼ် တွၼ်ႈတႃႇမႄးထတ်း ၼႃႈလိၵ်ႈ CSS ဢၼ်ၼႆႉ။",
        "mycustomjsprotected": "ၸဝ်ႈၵဝ်ႇ ဢမ်ႇမီးသုၼ်ႇၶႂၢင်းပၼ် တွၼ်ႈတႃႇမႄးထတ်း ၼႃႈလိၵ်ႈ JavaScript ဢၼ်ၼႆႉ။",
+       "myprivateinfoprotected": "ၸဝ်ႈၵဝ်ႇ ဢမ်ႇမီးသုၼ်ႇ တွၼ်ႈတႃႇတေမႄးထတ်း ​လွၼ်ႉၶၢဝ်ႇသုၼ်ႇတူဝ်ၸဝ်ႈၵဝ်ႇ။",
+       "mypreferencesprotected": "ၸဝ်ႈၵဝ်ႇဢမ်ႇမီးသုၼ်ႇ တွၼ်ႈတႃႇမႄးထတ်း ငဝ်ႈၵုမ်းပိူင်ၸဝ်ႈၵဝ်ႇ။",
        "ns-specialprotected": "ၼႃႈလိၵ်ႈၶိုၵ်ႉတွၼ်းၸိူဝ်းၼႆႉ တေဢမ်ႇၸၢင်ႈ မႄးထတ်းလႆႈ",
        "titleprotected": "ႁူဝ်ၶေႃႈဢၼ်ၼႆႉၼႆႉ ထုၵ်ႇ ၽူႈၸႂ်ႉတိုဝ်း [[User:$1|$1]] ၵေႃႉၼႆႉ ႁႄႉၵင်ႈဝႆႉ။ လွင်ႈတၢင်း ဢၼ်မၼ်းပၼ်ဝႆႉတႄႉ <em>$2</em>.",
+       "filereadonlyerror": "ဢမ်ႇၸၢင်ႈမူၼ်ႉမႄး ၾၢႆႇ \"$1\" ၼႆႉ၊ ယွၼ်ႉပိူဝ်ႈဝႃႈ ယွင်ၾႆႇ \"$2\" ၼႆႉ မၼ်းပဵၼ် လၢႆးငၢၼ်းတွၼ်ႈတႃႇ လူဢၼ်လဵဝ်ၵူၺ်း။\n\nဢၼ်ပဵၼ် ၽူႈၵုမ်းပိူင်သၢင်ႈ ၵေႃႉဢၼ်လႆႈၶတ်းဝႆႉၼႆႉ မၼ်းသပ်းလႅင်းဝႆႉဝႃႈ : \"$3\".",
+       "invalidtitle-knownnamespace": "ႁူဝ်ၶေႃႈ ၽိတ်းပိူင်ႈဝႆႉ ၸွမ်းၼင်ႇ လွၵ်းၸိုဝ်ႈ \"$2\" လႄႈ တူဝ်လိၵ်ႈ \"$3\"",
+       "invalidtitle-unknownnamespace": "ႁူဝ်ၶေႃႈ ၽိတ်းပိူင်ႈဝႆႉ ၸွမ်းၼင်ႇ ဢမ်ႇလႆႈႁူႉ တၢင်းၼမ်လွၵ်းၸိုဝ်ႈ $1 လႄႈ တူဝ်လိၵ်ႈ \"$2\"",
        "exception-nologin": "ဢမ်ႇလႆႈၶဝ်ႈဝႆ့",
        "cannotlogoutnow-title": "ဢမ်ႇၸၢင်ႈ လွၵ်ႉဢွၵ်ႇ ယၢမ်းလဵဝ်",
        "cannotlogoutnow-text": "တေဢမ်ႇၸၢင်ႈ လွၵ်ႉၶဝ်ႈ ၽွင်းမိူဝ်ႈၸႂ်ႉ $1",
        "template-protected": "ႁႄႉၵင်ႈဝႆႉ",
        "template-semiprotected": "(ႁႄႉၵၼ်ႈဝႆႉ ၵမ်ႈၽွင်ႈ)",
        "hiddencategories": "ၼႃႈလိၵ်ႈဢၼ်ၼႆႉ မၼ်းပဵၼ် ၼႃႈလိၵ်ႈၶဝ်ႈၸုမ်း {{PLURAL:$1|1 hidden category|$1 ၵၼ်သိူင်ႇဝႆႉ}}:",
+       "nocreate-loggedin": "ၸဝ်ႈၵဝ်ႇ ဢမ်ႇလႆႈမီးသုၼ်ႇ တွၼ်ႈတႃႇတေၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈဢၼ်မႂ်ႇ။",
        "sectioneditnotsupported-title": "ၵၢၼ်မႄးထတ်း တွၼ်ႈၵၼ် ဢမ်ႇလႆႈ ၵမ်ႉထႅမ်ဝႆႉပၼ်။",
        "sectioneditnotsupported-text": "ၵၢၼ်မႄးထတ်း တွၼ်ႈၵၼ် ဢမ်ႇလႆႈ ၵမ်ႉထႅမ်ဝႆႉပၼ် တီႈၼႃႈလိၵ်ႈၼႆ့။",
        "permissionserrors": "ၵၢၼ်လူတ်းပွႆႇ ၽိတ်းပိူင်ႈ",
        "permissionserrorstext": "ၸဝ်ႈၵဝ်ႇဢမ်ႇမီးသုၼ်ႇ တႃႇႁဵတ်းဢၼ်ၼၼ်ႉ၊ ယွၼ်ႉပိူဝ်ႈဝႃႈ {{PLURAL:$1|လွင်ႈတၢင်း|လွင်ႈတၢင်းၸိူဝ်း}} ၼႆႉ:",
        "permissionserrorstext-withaction": "ၸဝ်ႈၵဝ်ႇဢမ်ႇမီးသုၼ်ႇ တႃႇ $2, တွၼ်ႈတႃႇ ၸိူဝ်း ဢၼ်ပဵၼ် {{PLURAL:$1|reason|လွင်ႈတၢင်း}}:",
        "contentmodelediterror": "ၸဝ်ႈၵဝ်ႇတေဢမ်ႇၸၢင်ႈ မႄးထတ်း ၵၢၼ်ၶူၼ်ႉလူဢၼ်ၼႆႉ၊ ယွၼ်ႉပိူဝ်ႈဝႃႈ ၽၢင်တူဝ် ၶေႃႈၶဝ်ႈပႃး မၼ်းၼႆႉပဵၼ်  <code>$1</code>, ဢၼ် ပႅၵ်ႇပိူင်ႈၵၼ်တၢင်း ၽၢင်တူဝ် ၶေႃႈၶဝ်ႈပႃး ၶွင်ႈၼႃႈလိၵ်ႈ <code>$2</code> ၼႆႉ။",
+       "recreate-moveddeleted-warn": "<strong>ၶေႃႈၽၢင်ႉပၼ် : ၸဝ်ႈၵဝ်ႇ ၶိုၼ်းၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈ ဢၼ်လႆႈ မွတ်ႇပႅတ်ႈၵႂႃႇဝႆႉၼၼ်ႉ။</strong>\n\nၸဝ်ႈၵဝ်ႇ ထုၵ်ႇလီဝူၼ်ႉတူၺ်းဝႃႈ ၸွင်ႇမၼ်းသၢင်ႇထုၵ်ႇ တွၼ်ႈတႃႇတေသိုပ်ႇ မႄးထတ်း ၼႃႈလိၵ်ႈၼႆႉဢၼ်ဝႃႈၼၼ်ႉ။\nသဵၼ်ႈလၢႆ မွတ်ႇပႅတ်ႈလႄႈ ၶၢႆႉဢွင်ႈ တွၼ်ႈတႃႇၼႃႈလိၵ်ႈၼႆႉ ၵမ်ႉထႅမ်ဝႆႉပၼ် ၵႃႈတီႈၼႆႈ တွၼ်ႈတႃႇ ႁႂ်းငၢႆႈလူမ်ၸႂ် :",
        "moveddeleted-notice": "ၼႃႈလိၵ်ႈၼႆႉ မွတ်ႇပႅတ်ႈၵႂႃႇယဝ်ႉ။ လွင်ႈမွတ်ႇပႅတ်ႈလႄႈ လွင်ႈၶၢႆႉသၢႆမၢႆ တွၼ်ႈတႃႇ ၼႃႈလိၵ်ႈၼႆႉ ၵမ်ႉထႅမ်ဝႆႉပၼ် ၼင်ႇပႃႈတႂ်ႈၼႆႉယူႇ။ မၼ်းပဵၼ် တွၼ်ႈတႃႇ ႁဵတ်းၽိုၼ်ဢိင်ယဝ်ႉ။",
        "moveddeleted-notice-recent": "ယိၼ်းၶီၸွမ်ႈယူႇ၊ ၼႃႈလိၵ်ႈၼႆႉ တိုၵ်ႉႁႃထုၵ်ႇမွတ်ႇပႅတ်ႈ (ၼႂ်းၶၢဝ်းတၢင်း မိူဝ်ႈပူၼ်ႉမႃး 24 ၸူဝ်ႈမူင်း) ၼႆႉၵူၺ်း။ သဵၼ်ႈမၢႆ မွတ်ႇပႅတ်ႈ လႄႈ ၶၢႆႉဢွင်ႈတီႈ ၸိူဝ်းၼၼ်ႉ လႆႈၵမ်ႉထႅမ်ဝႆႉပၼ်ၼင်ႇၽၢႆႇတႂ်ႈ ႁႂ်ႈၸၢင်ႈပဵၼ် ၵၢၼ်ၽိုၼ်ဢိင်။",
        "log-fulllog": "တူၺ်း သဵၼ်ႈမၢႆဢၼ်တဵမ်ထူၼ်ႈ",
        "userrights-reason": "လွင်ႈတၢင်း :",
        "userrights-no-interwiki": "ၸဝ်ႈၵဝ်ႇ ဢမ်ႇမီးသုၼ်ႇၶႂၢင်းပၼ် တွၼ်ႈတႃႇ မႄးထတ်း သုၼ်ႇၽူႈၸႂ်ႉတိုဝ်းၵႃႈတီႈဝီႇၶီႇ တၢင်ႇဢၼ်။",
        "userrights-nodatabase": "ယွင်ၶေႃႈမုၼ်း $1 ၼႆႉဢမ်ႇမီး ဢမ်ႇၼၼ် မၼ်းဢမ်ႇၸႂ်ႈ လူဝ်ႇၵႄႇ။",
+       "userrights-notallowed": "ၸဝ်ႈၵဝ်ႇဢမ်ႇလႆႈမီးသုၼ်ႇၶႂၢင်းပၼ် တွၼ်ႈတႃႇ တေထႅမ်သႂ်ႇ ဢမ်ႇၼၼ် ထွၼ်ပႅတ်ႈ သုၼ်ႇလႆႈ ၽူႈၸႂ်ႉတိုဝ်း",
        "userrights-changeable-col": "ၸုမ်း ၸိူဝ်းၸဝ်ႈၵဝ်ႇ ၸၢင်ႈလႅၵ်ႈလၢႆႈ",
        "userrights-unchangeable-col": "ၸုမ်း ၸိူဝ်းၸဝ်ႈၵဝ်ႇ ဢမ်ႇၸၢင်ႈလႅၵ်ႈလၢႆႈ",
        "userrights-conflict": "လွင်ႈလႅၵ်ႈလၢႆႈ သုၼ်ႇၽူႈၸႂ်ႉတိုဝ်းၼၼ်ႉ မီးလွင်ႈယုင်ႈယၢင်ႈဝႆႉ။ ၶႅၼ်းတေႃႈ ၶိုၼ်းထတ်းတူၺ်းပၼ် သေ ၶိုၼ်းၼႄႉၼွၼ်းပၼ် လွင်ႈလႅၵ်ႈလၢႆႈၸဝ်ႈၵဝ်ႇလႄႈ။",
        "grouppage-suppress": "{{ns:project}}:တဵၵ်းတဵင်",
        "right-read": "လူ ၼႃႈလိၵ်ႈ",
        "right-edit": "မႄးထတ်း ၼႃႈလိၵ်ႈ",
+       "right-createpage": "ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈ (ၸိူဝ်းဢၼ်ဢမ်ႇၸႂ်ႈ ၼႃးလိၵ်ႈဢုပ်ႇဢူဝ်းၵၼ်)",
        "right-createtalk": "ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈ ဢုပ်ႇဢူဝ်းၵၼ်",
        "right-createaccount": "ၵေႃႇသၢင်ႈ ဢၶွင်ႉ ၽူႈၸႂ်ႉတိုဝ်း ဢၼ်မႂ်ႇ",
        "right-autocreateaccount": "ဢဝ် ဢၶွင်ႉၽူႈၸႂ်ႉတိုဝ်း ၽၢႆႇၼွၵ်ႈသေ ၶဝ်ႈလွၵ်ႉဢိၼ်ႇႁင်း​တူဝ်",
        "minlength1": "ၸိုဝ်ႈၾၢႆႇ ၼႆႉ တီႈဢေႇသုတ်းတေလႆႈပႃး လိၵ်ႈၼိုင်ႈတူဝ်",
        "filename-toolong": "ၸိုဝ်ႈၾၢႆႇၼႆႉ တေဢမ်ႇလႆႈယၢဝ်းပူၼ်ႉလိူဝ် 240 bytes",
        "badfilename": "ၸိုဝ်ႈၾၢႆႇၼႆႉ ထုၵ်ႇလႅၵ်ႈလၢႆႈပဵၼ်ၸူး \"$1\" ယဝ်ႈ။",
+       "filetype-missing": "ၾၢႆႇၼႆႉဢမ်ႇမီးယွႆးလင် (မိူၼ်ၼင်ႇ \".jpg\")",
        "empty-file": "ၾၢႆႇဢၼ်ၸဝ်ႈၵဝ်ႇ မၵ်းမၼ်ႈယိုၼ်ႈမႃးၼၼ်ႉ မၼ်းပဝ်ႇဝႆႉ။",
        "file-too-large": "ၾၢႆႇဢၼ်ၸဝ်ႈၵဝ်ႇ မၵ်းမၼ်ႈယိုၼ်ႈမႃးၼၼ်ႉ မႂ်းယႂ်ႇႁႅင်းၼႃႇ။",
        "filename-tooshort": "ၸိုဝ်ႈၾၢႆႇၼႆႉ ပွတ်းႁႅင်းၼႃႇၽႅဝ်။",
index 6844955..87c4234 100644 (file)
        "viewyourtext": "මෙම පිටුවේ <strong>ඔබගේ සංස්කරණ</strong> වල මූලාශ්‍රය නැරඹීම සහ පිටපත් කිරීම ඔබට කල හැක.",
        "protectedinterface": "මෙම පිටුව විසින්, මෘදුකාංගය සඳහා අතුරුමුව පෙළ සපයන අතර එබැවින් අපයෙදුම වැලැක්වීම සඳහා එය අවුරා ඇත.",
        "editinginterface": "<strong>අවවාදයයි:</strong> මෘදුකාංගයට අතුරුමුව පෙළ සැපයීමට භාවිතා වන පිටුවක් ඔබ විසින් සංස්කරණය කරනු ලබයි.\nමෙම පිටුවට සිදු කරන වෙනස්වීම් විසින් අනෙකුත් පරිශීලකයන්ගේ පරිශීලක අතුරුමුවෙහි පෙනුමට බලපෑම් එල්ල කෙරෙනු ඇත.",
-       "translateinterface": "සියලු විකියන් පරිවර්තන සඳහා එකතු කිරීමට හෝ වෙනස් කිරීමට, [//translatewiki.net/ translatewiki.net], මීඩියාවිකි ප්රාදේශීයකරන ව්යාපෘතිය භාවිතා කරන්න.",
+       "translateinterface": "සියලු විකියන් පරිවර්තන සඳහා එකතු කිරීමට හෝ වෙනස් කිරීමට, [https://translatewiki.net/ translatewiki.net], මීඩියාවිකි ප්රාදේශීයකරන ව්යාපෘතිය භාවිතා කරන්න.",
        "cascadeprotected": "\"තීරු දර්ශන\" විකල්පය සක්‍රීයනය කොට එමගින් ආරක්‍ෂණය කල පහත දැක්වෙන {{PLURAL:$1|පිටුව|පිටු}} අඩංගු කර ඇති බැවින්, මෙම පිටුව සංස්කරණය කිරීමෙන් වලකා ඇත:\n$2",
        "namespaceprotected": "'''$1''' නාමඅවකාශයෙහි පිටු සංස්කරණය කිරීමට ඔබහට අවසර නොමැත.",
        "customcssprotected": "මෙම CSS පිටුව සංස්කරණය කිරීමට ඔබට අවසර නොමැත්තේ එහි අනෙකුත් පරිශීලකයෙකුගේ පුද්ගලික පරිස්ථිතීන් අඩංගු බැවිනි.",
        "resetpass-temp-password": "තාවකාලික මුර-පදය:",
        "resetpass-abort-generic": "මුරපදය වෙනස් කිරීම විස්තීරණය මඟින් වලකා ඇත.",
        "resetpass-expired": "ඔබගේ මුරපදය කල් ඉකුත්වී ඇත.කරුණාකර නව මුරපදයක් සකස් කරන්න.",
-       "resetpass-expired-soft": "ඔබගේ මුරපදය කල් ඉකුත් වී ඇති අතර එය නැවත සකස් කල යුතුය. කරුණාකර දැන් නව මුරපදයක් තෝරන්න, නැතහොත් එය පසුව නැවත සැකසීමට \"{{int:resetpass-submit-cancel}}\" ඉටු කරන්න.",
-       "resetpass-validity-soft": "ඔබේ මුරපදය වලංගු නැත: $1\n\nකරුණාකර දැන් නව මුරපදයක් තෝරන්න, නැතහොත් එය පසුව සැකසීමට \"{{int:resetpass-submit-cancel}}\" ඉටු කරන්න.",
+       "resetpass-expired-soft": "ඔබගේ මුරපදය කල් ඉකුත් වී ඇති අතර එය නැවත සකස් කල යුතුය. කරුණාකර දැන් නව මුරපදයක් තෝරන්න, නැතහොත් එය පසුව නැවත සැකසීමට \"{{int:authprovider-resetpass-skip-label}}\" ඉටු කරන්න.",
+       "resetpass-validity-soft": "ඔබේ මුරපදය වලංගු නැත: $1\n\nකරුණාකර දැන් නව මුරපදයක් තෝරන්න, නැතහොත් එය පසුව සැකසීමට \"{{int:authprovider-resetpass-skip-label}}\" ඉටු කරන්න.",
        "passwordreset": "මුරපදය වෙනස් කරන්න",
        "passwordreset-text-one": "තාවකාලික මුර-පදයක් විද්‍යුත් තැපෑළ මගින් ලබා ගැනීම සඳහා මෙම පෝරමය සම්පූර්ණ කරන්න.",
        "passwordreset-text-many": "{{PLURAL:$1|තාවකාලික මුරපදයක් ඊ-තැපෑල හරහා ගෙන්වා ගැනීමට එක් ක්ෂේත්‍රයක් පුරවන්න}}",
        "apihelp-no-such-module": "ආකෘතිය \"$1\" හමුවුනේ නැත.",
        "apisandbox": "API වැලිපිල්ල",
        "apisandbox-api-disabled": "මෙම අඩවියෙහි API අක්‍රීය කොට ඇත.",
-       "apisandbox-intro": "'''මාධ්‍යවිකි API''' සමඟ අත්හදා බැලීම සඳහා මෙම පිටුව භාවිතා කරන්න.\n\tAPI භාවිතය පිලිබඳ වැඩිදුර විස්තර සඳහා  [//www.mediawiki.org/wiki/API:Main_page API ප්‍රලේඛනය] හී ඉල්ලීමක් කරන්න.",
+       "apisandbox-intro": "'''මාධ්‍යවිකි API''' සමඟ අත්හදා බැලීම සඳහා මෙම පිටුව භාවිතා කරන්න.\n\tAPI භාවිතය පිලිබඳ වැඩිදුර විස්තර සඳහා  [https://www.mediawiki.org/wiki/API:Main_page API ප්‍රලේඛනය] හී ඉල්ලීමක් කරන්න.",
        "apisandbox-submit": "අයදුමක් සිදු කරන්න",
        "apisandbox-reset": "හිස් කරන්න",
        "apisandbox-examples": "නිදසුන",
        "allmessagesname": "නම",
        "allmessagesdefault": "සාමාන්‍ය පණිවුඩ පෙළ",
        "allmessagescurrent": "වත්මන් පෙළ",
-       "allmessagestext": "මේ මාධ්‍යවිකි නාමඅවකාශයෙහිදී  හමුවන පද්ධති පණිවුඩයන් ලැයිස්තුවකි.\nවර්ගීය මාධ්‍යවිකි ප්‍රාදේශීයකරණයට දායක වීමට ඔබ රිසි නම් කරුණාකර [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation මාධ්‍යවිකි ප්‍රාදේශීයකරණය]  සහ [//translatewiki.net බීටාවිකි] වෙත පිවිසෙන්න.",
+       "allmessagestext": "මේ මාධ්‍යවිකි නාමඅවකාශයෙහිදී  හමුවන පද්ධති පණිවුඩයන් ලැයිස්තුවකි.\nවර්ගීය මාධ්‍යවිකි ප්‍රාදේශීයකරණයට දායක වීමට ඔබ රිසි නම් කරුණාකර [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation මාධ්‍යවිකි ප්‍රාදේශීයකරණය]  සහ [https://translatewiki.net බීටාවිකි] වෙත පිවිසෙන්න.",
        "allmessagesnotsupportedDB": "'''$wgUseDatabaseMessages''' අක්‍රීය කොට ඇති බැවින්, මෙම පිටුව භාවිතා කල නොහැක.",
        "allmessages-filter-legend": "පෙරහන",
        "allmessages-filter": "පාරිභෝගීකරණ තත්ත්වය අනුව පෙරීම:",
index 24dd68c..39cfc47 100644 (file)
        "protectedpagetext": "Táto stránka bola zamknutá aby sa zamedzilo úpravám.",
        "viewsourcetext": "Môžete si zobraziť a kopírovať zdroj tejto stránky:",
        "viewyourtext": "Môžete si prehliadnuť a skopírovať zdrojový kód <strong>vašich úprav</strong> tejto stránky:",
-       "protectedinterface": "Táto stránka poskytuje text používateľského rozhrania tejto wiki a je zamknutá, aby sa predišlo jej zneužitiu.\nAk chcete pridať alebo zmeniť preklady pre všetky wiki, prosím, použite [//translatewiki.net/ translatewiki.net], projekt lokalizácie MediaWiki.",
-       "editinginterface": "'''Upozornenie:''' Upravujete stránku, ktorá poskytuje text používateľského rozhrania.\nZmeny tejto stránky ovplyvnia vzhľad používateľského rozhrania ostatným používateľom.\nAk chcete pridať alebo zmeniť preklady pre všetky wiki, prosím, použite [//translatewiki.net/ translatewiki.net], projekt lokalizácie MediaWiki.",
-       "translateinterface": "Na pridanie a zmeny prekladov pre všetky wiki použite [//translatewiki.net/ translatewiki.net], projekt na lokalizáciu MediaWiki.",
+       "protectedinterface": "Táto stránka poskytuje text používateľského rozhrania tejto wiki a je zamknutá, aby sa predišlo jej zneužitiu.\nAk chcete pridať alebo zmeniť preklady pre všetky wiki, prosím, použite [https://translatewiki.net/ translatewiki.net], projekt lokalizácie MediaWiki.",
+       "editinginterface": "'''Upozornenie:''' Upravujete stránku, ktorá poskytuje text používateľského rozhrania.\nZmeny tejto stránky ovplyvnia vzhľad používateľského rozhrania ostatným používateľom.\nAk chcete pridať alebo zmeniť preklady pre všetky wiki, prosím, použite [https://translatewiki.net/ translatewiki.net], projekt lokalizácie MediaWiki.",
+       "translateinterface": "Na pridanie a zmeny prekladov pre všetky wiki použite [https://translatewiki.net/ translatewiki.net], projekt na lokalizáciu MediaWiki.",
        "cascadeprotected": "Táto stránka bola zamknutá proti úpravám, pretože je použitá na {{PLURAL:$1|nasledovnej stránke, ktorá je zamknutá|nasledovných stránkach, ktoré sú zamknuté}} voľbou „kaskádového zamknutia“:\n$2",
        "namespaceprotected": "Nemáte povolenie upravovať stránky v mennom priestore '''$1'''.",
        "customcssprotected": "Nemáte právo upravovať túto CSS stránku, pretože obsahuje osobné nastavenie iného používateľa.",
        "resetpass-temp-password": "Dočasné heslo:",
        "resetpass-abort-generic": "Zmena hesla bola zablokovaná rozšírením.",
        "resetpass-expired": "Platnosť vášho hesla vypršala. Pre prihlásenie si nastavte nové heslo.",
-       "resetpass-expired-soft": "Platnosť vášho hesla vypršala, musíte si nastaviť nové. Zvoľte si nové heslo nebo kliknite na „{{int:resetpass-submit-cancel}}“ a nastavte si ho neskôr.",
-       "resetpass-validity-soft": "Vaše heslo je neplatné: $1\n\nVyberte si nové heslo, alebo kliknite na „{{int:resetpass-submit-cancel}}“ a nastavte si ho neskôr.",
+       "resetpass-expired-soft": "Platnosť vášho hesla vypršala, musíte si nastaviť nové. Zvoľte si nové heslo nebo kliknite na „{{int:authprovider-resetpass-skip-label}}“ a nastavte si ho neskôr.",
+       "resetpass-validity-soft": "Vaše heslo je neplatné: $1\n\nVyberte si nové heslo, alebo kliknite na „{{int:authprovider-resetpass-skip-label}}“ a nastavte si ho neskôr.",
        "passwordreset": "Reset hesla",
        "passwordreset-text-one": "Pre získanie nového hesla vyplňte tento formulár.",
        "passwordreset-text-many": "{{PLURAL:$1|Pre získanie nového hesla emailom, zadajte jeden z údajov.}}",
        "allmessagesname": "Názov",
        "allmessagesdefault": "štandardný text",
        "allmessagescurrent": "aktuálny text",
-       "allmessagestext": "Toto je zoznam všetkých správ dostupných v mennom priestore MediaWiki.\nProsím, navštívte [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] a [//translatewiki.net translatewiki.net] ak chcete prispieť k všeobecnej lokalizácii MediaWiki.",
+       "allmessagestext": "Toto je zoznam všetkých správ dostupných v mennom priestore MediaWiki.\nProsím, navštívte [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] a [https://translatewiki.net translatewiki.net] ak chcete prispieť k všeobecnej lokalizácii MediaWiki.",
        "allmessagesnotsupportedDB": "Túto stránku nemožno použiť, pretože '''$wgUseDatabaseMessages''' je vypnuté.",
        "allmessages-filter-legend": "Filter",
        "allmessages-filter": "Filter podľa stavu prispôsobenia:",
index e522f97..3c18dc9 100644 (file)
        "protectedpagetext": "Ta stran je bila zaklenjena za preprečitev urejanja ali drugih dejanj.",
        "viewsourcetext": "Vsebino te strani si lahko ogledate in kopirate.",
        "viewyourtext": "Lahko si ogledate in kopirate vsebino <strong>vaših urejanj</strong> te strani.",
-       "protectedinterface": "Prikazana stran vsebuje besedilo vmesnika programja na tem wikiju in je zaradi preprečevanja zlorab zaščitena.\n\nZa dodajanje ali spreminjanje prevodov vseh wikijev uporabite [//translatewiki.net/ translatewiki.net], projekt za lokalizacijo MediaWiki.",
+       "protectedinterface": "Prikazana stran vsebuje besedilo vmesnika programja na tem wikiju in je zaradi preprečevanja zlorab zaščitena.\n\nZa dodajanje ali spreminjanje prevodov vseh wikijev uporabite [https://translatewiki.net/ translatewiki.net], projekt za lokalizacijo MediaWiki.",
        "editinginterface": "<strong>Opozorilo:</strong> Urejate stran, ki vsebuje besedilo ali drug element uporabniškega vmesnika programja.\nSpremembe te strani bodo vplivale na podobo uporabniškega vmesnika ostalih uporabnikov na tem wikiju.",
-       "translateinterface": "Za dodajanje ali spreminjanje prevodov vseh wikijev uporabite [//translatewiki.net/ translatewiki.net], projekt za lokalizacijo MediaWiki.",
+       "translateinterface": "Za dodajanje ali spreminjanje prevodov vseh wikijev uporabite [https://translatewiki.net/ translatewiki.net], projekt za lokalizacijo MediaWiki.",
        "cascadeprotected": "Ta stran je bila zaščitena pred urejanji, ker je vključena na {{PLURAL:$1|sledečo stran, ki je bila zaščitena|sledeči strani, ki sta bili zaščiteni|sledeče strani, ki so bile zaščitene}} z vključeno kaskadno možnostjo:\n$2",
        "namespaceprotected": "Za urejanje strani v imenskem prostoru '''$1''' nimate dovoljenja.",
        "customcssprotected": "Nimate pravice urejati te strani CSS, ker vsebuje osebne nastavitve drugega uporabnika.",
        "password-change-forbidden": "Na tem wikiju ne morete spreminjati gesel.",
        "externaldberror": "Pri potrjevanju istovetnosti je prišlo do notranje napake ali pa za osveževanje zunanjega računa nimate dovoljenja.",
        "login": "Prijava",
+       "login-security": "Potrdite svojo identiteto",
        "nav-login-createaccount": "Prijavite se / registrirajte se",
        "userlogin": "Prijavite se / registrirajte se",
        "userloginnocreate": "Prijava",
        "userlogin-resetpassword-link": "Ste pozabili svoje geslo?",
        "userlogin-helplink2": "Pomoč pri prijavi",
        "userlogin-loggedin": "Prijavljeni ste že kot {{GENDER:$1|$1}}.\nUporabite spodnji obrazec, da se prijavite kot drug uporabnik.",
+       "userlogin-reauth": "Ponovno se morate prijaviti, da potrditev, da ste {{GENDER:$1|$1}}.",
        "userlogin-createanother": "Ustvari drug račun",
        "createacct-emailrequired": "E-poštni naslov",
        "createacct-emailoptional": "E-poštni naslov (izbirno)",
        "createacct-email-ph": "Vnesite svoj e-poštni naslov",
        "createacct-another-email-ph": "Vnesite e-poštni naslov",
        "createaccountmail": "Ustvari začasno naključno geslo in ga pošlji na spodaj navedeni e-poštni naslov",
+       "createaccountmail-help": "Se lahko uporablja za ustvarjanje računa za drugo osebo brez da bi vedeli geslo.",
        "createacct-realname": "Pravo ime (izbirno)",
        "createaccountreason": "Razlog:",
        "createacct-reason": "Razlog",
        "createacct-reason-ph": "Zakaj ustvarjate drug račun",
+       "createacct-reason-help": "Sporočilo, prikazano v dnevniku ustvarjanja računov",
        "createacct-submit": "Ustvarite svoj račun",
        "createacct-another-submit": "Ustvarite račun",
+       "createacct-continue-submit": "Nadaljuj z ustvarjanjem računa",
+       "createacct-another-continue-submit": "Nadaljuj z ustvarjanjem računa",
        "createacct-benefit-heading": "{{GRAMMAR:tožilnik|{{SITENAME}}}} ustvarjajo ljudje, kot ste vi.",
        "createacct-benefit-body1": "{{PLURAL:$1|urejanje|urejanji|urejanja|urejanj}}",
        "createacct-benefit-body2": "{{PLURAL:$1|stran|strani}}",
        "nocookiesnew": "Uporabniški račun je ustvarjen, vendar niste prijavljeni.\n{{SITENAME}} za prijavo uporabnikov uporablja piškotke, ki pa so pri vas onemogočeni.\nProsimo, omogočite jih, nato pa se s svojim uporabniškim imenom in geslom ponovno prijavite.",
        "nocookieslogin": "{{SITENAME}} za prijavljanje uporabnikov uporablja piškotke.\nKer jih imate onemogočene, vas prosimo, da jih omogočite in se ponovno prijavite.",
        "nocookiesfornew": "Uporabniški račun ni bil ustvarjen, ker nismo mogli potrditi njegovega izvora.\nPoskrbite, da imate omogočene piškotke, osvežite to stran in poskusite znova.",
+       "createacct-loginerror": "Račun ste uspešno ustvarili, vendar vas nismo mogli samodejno prijaviti. Prosimo, nadaljujte z [[Special:UserLogin|ročno prijavo]].",
        "noname": "Niste vnesli veljavnega uporabniškega imena.",
        "loginsuccesstitle": "Sedaj ste prijavljeni",
        "loginsuccess": "'''Zdaj ste prijavljeni v {{GRAMMAR:tožilnik|{{SITENAME}}}} kot »$1«.'''",
        "createacct-another-realname-tip": "Pravo ime ni obvezno.\nČe se ga odločite navesti, bo uporabljeno za priznavanje uporabnikovega dela.",
        "pt-login": "Prijava",
        "pt-login-button": "Prijava",
+       "pt-login-continue-button": "Nadaljuj s prijavo",
        "pt-createaccount": "Ustvari račun",
        "pt-userlogout": "Odjava",
        "php-mail-error-unknown": "Neznana napaka v funkciji PHP mail()",
        "botpasswords-invalid-name": "Navedeno uporabniško ime ne vsebuje ločila za geslo bota (»$1«).",
        "botpasswords-not-exist": "Uporabnik »$1« nima gesla bota z imenom »$2«.",
        "resetpass_forbidden": "Gesla ne morete spremeniti",
+       "resetpass_forbidden-reason": "Gesel nismo mogli spremeniti: $1",
        "resetpass-no-info": "Za neposreden dostop do te strani morate biti prijavljeni.",
        "resetpass-submit-loggedin": "Spremenite geslo",
        "resetpass-submit-cancel": "Prekliči",
        "resetpass-temp-password": "Začasno geslo:",
        "resetpass-abort-generic": "Razširitev je prekinila spremembo gesla.",
        "resetpass-expired": "Vaše geslo je poteklo. Prosimo, nastavite novo geslo za prijavo.",
-       "resetpass-expired-soft": "Vaše geslo je poteklo in ga morate ponastaviti. Prosimo, izberite novo geslo zdaj ali kliknite »{{int:resetpass-submit-cancel}}«, da ga ponastavite pozneje.",
-       "resetpass-validity-soft": "Vaše geslo ni veljavno: $1\n\nProsimo, izberite novo geslo zdaj ali kliknite »{{int:resetpass-submit-cancel}}«, da ga ponastavite pozneje.",
+       "resetpass-expired-soft": "Vaše geslo je poteklo in ga morate ponastaviti. Prosimo, izberite novo geslo zdaj ali kliknite »{{int:authprovider-resetpass-skip-label}}«, da ga ponastavite pozneje.",
+       "resetpass-validity-soft": "Vaše geslo ni veljavno: $1\n\nProsimo, izberite novo geslo zdaj ali kliknite »{{int:authprovider-resetpass-skip-label}}«, da ga ponastavite pozneje.",
        "passwordreset": "Ponastavitev gesla",
        "passwordreset-text-one": "Da ponastavite svoje geslo, izpolnite naslednji obrazec.",
        "passwordreset-text-many": "{{PLURAL:$1|Da po e-pošti prejmete začasno geslo, izpolnite eno od polj.}}",
        "passwordreset-emailsentusername": "Če obstaja e-poštni naslov, povezan s tem uporabniškim imenom, vam bomo poslali e-pošto za postavitev gesla.",
        "passwordreset-emailsent-capture": "Poslali smo e-pošto za ponastavitev gesla, ki je prikazana spodaj.",
        "passwordreset-emailerror-capture": "Ustvarili smo e-pošto za ponastavitev gesla, ki je prikazana spodaj, vendar pa pošiljanje {{GENDER:$2|uporabniku|uporabnici}} ni uspelo: $1",
+       "passwordreset-emailsent-capture2": "Poslali smo {{PLURAL:$1|e-pošto|e-pošti|e-pošte}} za ponastavitev gesla. {{PLURAL:$1|Uporabniško ime in geslo sta navedena spodaj.|Seznam uporabniških imen in gesel je naveden spodaj.}}",
+       "passwordreset-emailerror-capture2": "Pošiljanje e-pošte {{GENDER:$2|uporabniku|uporabnici}} je spodletelo: $1 {{PLURAL:$3|Uporabniško ime in geslo sta navedena spodaj.|Seznam uporabniških imen in gesel je naveden spodaj.}}",
+       "passwordreset-nocaller": "Podati morate klicatelja",
+       "passwordreset-nosuchcaller": "Klicatelj ne obstaja: $1",
+       "passwordreset-ignored": "Ponastavitve gesla nismo izvedli. Morda ni nastavljen noben ponudnik?",
+       "passwordreset-invalideamil": "Neveljavni e-poštni naslov",
+       "passwordreset-nodata": "Navedli niste ne uporabniškega imena ne e-poštnega naslova",
        "changeemail": "Sprememba ali odstranitev e-poštnega naslova",
        "changeemail-header": "Izpolnite obrazec za spremembo vašega e-poštnega naslova. Če želite s svojega računa odstraniti povezavo s katerim koli e-poštnim naslovom, pustite polje za nov e-poštni naslov med potrjevanje obrazca prazno.",
        "changeemail-passwordrequired": "Za potrditev spremembe boste morali vnesti svoje geslo.",
        "minoredit": "manjše urejanje",
        "watchthis": "Opazuj članek",
        "savearticle": "Shrani stran",
+       "savechanges": "Shrani spremembe",
        "publishpage": "Objavi stran",
+       "publishchanges": "Objavi spremembe",
        "preview": "Predogled",
        "showpreview": "Prikaži predogled",
        "showdiff": "Prikaži spremembe",
        "content-model-css": "CSS",
        "content-json-empty-object": "Prazen objekt",
        "content-json-empty-array": "Prazno polje",
+       "deprecated-self-close-category": "Strani, ki uporabljajo neveljavne samozaključljive oznake HTML",
+       "deprecated-self-close-category-desc": "Stran uporablja neveljavne samozaključljive oznake HTML, kot sta <code>&lt;b/></code> ali <code>&lt;span/></code>. Njihovo vedenje se bo kmalu spremenilo, da bo v skladu s specifikacijo HTML5, zato njihova uporaba v wikibesedilu ni zaželena.",
        "duplicate-args-warning": "<strong>Opozorilo:</strong> [[:$1]] kliče [[:$2]] z več kot eno vrednostjo za parameter »$3«. Uporabili bomo samo zadnjo navedeno vrednost.",
        "duplicate-args-category": "Strani s podvojenimi argumenti v klicih predlog",
        "duplicate-args-category-desc": "Stran vsebuje klice predlog, ki vsebujejo dvojnike argumentov, kot sta <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> ali <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "rightslogtext": "Prikazan je dnevnik sprememb uporabniških pravic.",
        "action-read": "branje te strani",
        "action-edit": "urejanje te strani",
-       "action-createpage": "ustvarjenje strani",
-       "action-createtalk": "ustvarjanje pogovornih strani",
+       "action-createpage": "ustvarjenje te strani",
+       "action-createtalk": "ustvarjanje te pogovorne strani",
        "action-createaccount": "registracija tega uporabniškega računa",
        "action-autocreateaccount": "samodejno ustvarjanje zunanjega uporabniškega računa",
        "action-history": "ogled zgodovine strani",
        "upload-http-error": "Prišlo je do napake HTTP: $1",
        "upload-copy-upload-invalid-domain": "Nalaganje kopij s te domene ni možno.",
        "upload-foreign-cant-upload": "Wiki ni konfiguriran za nalaganje datotek z zahtevanega tujega skladišča datotek.",
+       "upload-foreign-cant-load-config": "Nismo uspeli naložiti konfiguracije nalaganja datotek za zunanje skladišče datotek.",
+       "upload-dialog-disabled": "Nalaganj datotek z uporabo tega obrazca je na wikiju onemogočeno.",
        "upload-dialog-title": "Naloži datoteko",
        "upload-dialog-button-cancel": "Prekliči",
        "upload-dialog-button-done": "Končano",
        "apisandbox": "Peskovnik API",
        "apisandbox-jsonly": "Za uporabo peskovnika API je zahtevan JavaScript.",
        "apisandbox-api-disabled": "API je onemogočen na tej spletni strani.",
-       "apisandbox-intro": "Uporabite to stran za preizkušanje <strong>API spletnih storitev MediaWiki</strong>.\nOglejte si [[mw:API:Main page|dokumentacijo API]] za nadaljnje podrobnosti o uporabi API. Primer: [//www.mediawiki.org/wiki/API#A_simple_example pridobi vsebino Glavne strani]. Izberite dejanje, da si ogledate več primerov.\n\nPomnite, da čeprav je to peskovnik, bodo dejanja, izvedena na tej strani, morda spremenila wiki.",
+       "apisandbox-intro": "Uporabite to stran za preizkušanje <strong>API spletnih storitev MediaWiki</strong>.\nOglejte si [[mw:API:Main page|dokumentacijo API]] za nadaljnje podrobnosti o uporabi API. Primer: [https://www.mediawiki.org/wiki/API#A_simple_example pridobi vsebino Glavne strani]. Izberite dejanje, da si ogledate več primerov.\n\nPomnite, da čeprav je to peskovnik, bodo dejanja, izvedena na tej strani, morda spremenila wiki.",
        "apisandbox-fullscreen": "Razširi ploščo",
        "apisandbox-fullscreen-tooltip": "Razširi ploščo peskovnika, da bo zapolnila okno obrskalnika.",
        "apisandbox-unfullscreen": "Prikaži stran",
        "trackingcategories-msg": "Sledilna kategorija",
        "trackingcategories-name": "Ime sporočila",
        "trackingcategories-desc": "Merila za vključitev v kategorijo",
+       "restricted-displaytitle-ignored": "Strani s prezrtimi prikaznimi naslovi",
+       "restricted-displaytitle-ignored-desc": "Stran ima prezrt <code><nowiki>{{DISPLAYTITLE}}</nowiki></code>, saj ni enak dejanskemu naslovu strani.",
        "noindex-category-desc": "Stran vsebuje čarobno besedo <code><nowiki>__NOINDEX__</nowiki></code> (in je v imenskem prostoru, ki dovoljuje to oznako) in posledično je roboti ne indeksirajo.",
        "index-category-desc": "Stran vsebuje čarobno besedo <code><nowiki>__INDEX__</nowiki></code> (in je v imenskem prostoru, ki dovoljuje to oznako) in posledično jo roboti indeksirajo, čeprav je drugače ne bi.",
        "post-expand-template-inclusion-category-desc": "Velikost strani je po razširitvi vseh predlog več kot <code>$wgMaxArticleSize</code>, zato nekaterih predlog nismo razširili.",
        "rollbacklinkcount": "vrni $1 {{PLURAL:$1|urejanje|urejanji|urejanja|urejanj}}",
        "rollbacklinkcount-morethan": "vrni več kot $1 {{PLURAL:$1|urejanje|urejanji|urejanja|urejanj}}",
        "rollbackfailed": "Vrnitev ni uspela",
+       "rollback-missingparam": "Pri zahtevi manjkajo zahtevani parametri.",
        "cantrollback": "Urejanja ne morem vrniti; zadnji urejevalec je hkrati edini.",
        "alreadyrolled": "Zadnje spremembe [[:$1]] uporabnika [[User:$2|$2]] ([[User talk:$2|pogovor]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) ne morem vrniti;\nstran je spremenil ali vrnil že nekdo drug.\n\nZadnji je stran urejal uporabnik [[User:$3|$3]] ([[User talk:$3|pogovor]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
        "editcomment": "Povzetek urejanja je bil: <em>$1</em>.",
        "revertpage": "vrnitev sprememb uporabnika [[Special:Contributions/$2|$2]] ([[User talk:$2|pogovor]]) na zadnje urejanje uporabnika [[User:$1|$1]]",
        "revertpage-nouser": "vrnitev sprememb skritega uporabnika na zadnjo redakcijo {{GENDER:$1|[[User:$1|$1]]}}",
        "rollback-success": "Razveljavljene spremembe uporabnika $1;\nvrnjeno na urejanje uporabnika $2.",
+       "rollback-success-notify": "Povrnili smo urejanja $1;\nspremenjeno nazaj na zadnjo redakcijo $2. [$3 Prikaži spremembe]",
        "sessionfailure-title": "Neuspeh seje",
        "sessionfailure": "Vaša prijava ni uspela; da bi preprečili ugrabitev seje, je bilo dejanje preklicano. Prosimo, izberite »Nazaj« in ponovno naložite stran, s katere prihajate, nato poskusite znova.",
        "changecontentmodel": "Spremeni model vsebine strani",
        "sp-contributions-username": "IP-naslov ali uporabniško ime:",
        "sp-contributions-toponly": "Prikaži samo vrhnje redakcije",
        "sp-contributions-newonly": "Prikaži samo urejanja, ki so ustvarila nove strani",
+       "sp-contributions-hideminor": "Skrij manjša urejanja",
        "sp-contributions-submit": "Išči",
        "whatlinkshere": "Kaj se povezuje sem",
        "whatlinkshere-title": "Strani, ki se povezujejo na $1",
        "allmessagesname": "Ime",
        "allmessagesdefault": "Prednastavljeno besedilo",
        "allmessagescurrent": "Trenutno besedilo",
-       "allmessagestext": "Navedena so v imenskem prostoru MediaWiki dostopna sistemska sporočila.\nZa lokalizacijo in prevajanje obiščite [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki] in [//translatewiki.net translatewiki.net] ter tako prispevajte k splošnemu prevodu programja.",
+       "allmessagestext": "Navedena so v imenskem prostoru MediaWiki dostopna sistemska sporočila.\nZa lokalizacijo in prevajanje obiščite [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki] in [https://translatewiki.net translatewiki.net] ter tako prispevajte k splošnemu prevodu programja.",
        "allmessagesnotsupportedDB": "Te strani ni mogoče uporabljati, ker je bilo '''$wgUseDatabaseMessages''' izključeno.",
        "allmessages-filter-legend": "Filter",
        "allmessages-filter": "Filtriraj po prilagoditvenem stanju:",
        "confirm-watch-top": "Dodam stran na vaš spisek nadzorov?",
        "confirm-unwatch-button": "V redu",
        "confirm-unwatch-top": "Odstranim stran z vašega spiska nadzorov?",
+       "confirm-rollback-button": "V redu",
+       "confirm-rollback-top": "Povrnemo urejanja te strani?",
        "percent": "$1&#160;%",
        "quotation-marks": "»$1«",
        "imgmultipageprev": "← prejšnja stran",
        "mw-widgets-dateinput-placeholder-month": "LLLL-MM",
        "mw-widgets-titleinput-description-new-page": "stran še ne obstaja",
        "mw-widgets-titleinput-description-redirect": "preusmeritev na $1",
-       "api-error-blacklisted": "Prosimo, izberite drugačen, opisen naslov.",
        "sessionmanager-tie": "Ne morem združiti več vrst overitvenih zahtev: $1.",
        "sessionprovider-generic": "sej $1",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "sej, ki temeljijo na piškotkih",
        "log-action-filter-newusers": "Vrsta ustvarjanja računa:",
        "log-action-filter-patrol": "Vrsta nadzora:",
        "log-action-filter-protect": "Vrsta zaščite:",
-       "log-action-filter-rights": "Vrsta spremembe pravic",
-       "log-action-filter-suppress": "Vrsta zatrtja",
+       "log-action-filter-rights": "Vrsta spremembe pravic:",
+       "log-action-filter-suppress": "Vrsta zatrtja:",
        "log-action-filter-upload": "Vrsta nalaganja:",
        "log-action-filter-all": "Vse",
        "log-action-filter-block-block": "Blokada",
        "log-action-filter-suppress-block": "Zatrtje uporabnika z blokado",
        "log-action-filter-suppress-reblock": "Zatrtje uporabnika s ponovno blokado",
        "log-action-filter-upload-upload": "Novo nalaganje",
-       "log-action-filter-upload-overwrite": "Ponovno nalaganje"
+       "log-action-filter-upload-overwrite": "Ponovno nalaganje",
+       "authmanager-authn-not-in-progress": "Overjanje ni v teku ali pa smo izgubili podatke seje. Prosimo, pričnite znova od začetka.",
+       "authmanager-authn-no-primary": "Navedenih poverilnic nismo mogli overiti.",
+       "authmanager-authn-no-local-user": "Navedene poverilnice niso povezane z nobenim uporabnikom na wikiju.",
+       "authmanager-authn-no-local-user-link": "Navedene poverilnice so veljavne, vendar niso povezane z nobenim uporabnikom na wikiju. Prijavite se na drug način ali ustvarite novega uporabnika in vaše prejšnje poverilnice boste lahko povezali s tem računom.",
+       "authmanager-authn-autocreate-failed": "Samodejno ustvarjanje lokalnega računa je spodletelo: $1",
+       "authmanager-change-not-supported": "Navedenih poverilnic nismo mogli spremeniti, saj jih ne bi nič uporabljalo.",
+       "authmanager-create-disabled": "Ustvarjanje računov je onemogočeno.",
+       "authmanager-create-from-login": "Da ustvarite svoj račun, prosimo, izpolnite spodnja polja.",
+       "authmanager-create-not-in-progress": "Ustvarjanje računa ni v teku ali pa smo izgubili podatke seje. Prosimo, pričnite znova od začetka.",
+       "authmanager-create-no-primary": "Navedenih poverilnic ne moremo uporabiti za ustvarjanje računa.",
+       "authmanager-link-no-primary": "Navedenih poverilnic ne moremo uporabiti za povezovanje računa.",
+       "authmanager-link-not-in-progress": "Povezovanje računa ni v teku ali pa smo izgubili podatke seje. Prosimo, pričnite znova od začetka.",
+       "authmanager-authplugin-setpass-failed-title": "Sprememba gesla je spodletela",
+       "authmanager-authplugin-setpass-failed-message": "Vtičnik za overitev je zavrnil spremembo gesla.",
+       "authmanager-authplugin-create-fail": "Vtičnik za overitev je zavrnil ustvarjanje računa.",
+       "authmanager-authplugin-setpass-denied": "Vtičnik za overitev ne dovoljuje spreminjanje gesel.",
+       "authmanager-authplugin-setpass-bad-domain": "Neveljavna domena.",
+       "authmanager-autocreate-noperm": "Samodejno ustvarjanje računov ni dovoljeno.",
+       "authmanager-autocreate-exception": "Samodejno ustvarjanje računov smo začasno onemogočili zaradi predhodnih napak.",
+       "authmanager-userdoesnotexist": "Uporabniški račun »$1« ni registriran.",
+       "authmanager-userlogin-remembermypassword-help": "Ali naj si geslo zapomnimo dlje, kot traja seja.",
+       "authmanager-username-help": "Uporabniško ime za overjanje.",
+       "authmanager-password-help": "Geslo za overjanje.",
+       "authmanager-domain-help": "Domena za zunanje overjanje.",
+       "authmanager-retype-help": "Geslo ponovno za potrditev.",
+       "authmanager-email-label": "E-pošta",
+       "authmanager-email-help": "E-poštni naslov",
+       "authmanager-realname-label": "Pravo ime",
+       "authmanager-realname-help": "Pravo ime uporabnika",
+       "authmanager-provider-password": "Overjanje, ki temelji na geslu",
+       "authmanager-provider-password-domain": "Overjanje, ki temelji na geslu in domeni",
+       "authmanager-provider-temporarypassword": "Začasno geslo",
+       "authprovider-confirmlink-message": "Na podlagi vaših nedavnih poskusov prijave lahko naslednje račune povežemo z vašim wikiračunom. Povezovanje omogoča prijavo prek teh računov. Prosimo, izberite, katere želite povezati.",
+       "authprovider-confirmlink-request-label": "Računi, ki naj bodo povezani",
+       "authprovider-confirmlink-success-line": "$1: Uspešno povezan",
+       "authprovider-confirmlink-failed": "Povezovanje računov ni uspelo v celoti: $1",
+       "authprovider-confirmlink-ok-help": "Nadaljuj po prikazu sporočil o spodletelih povezovanjih.",
+       "authprovider-resetpass-skip-label": "Preskoči",
+       "authprovider-resetpass-skip-help": "Preskoči ponastavljanje gesla.",
+       "authform-nosession-login": "Overjanje je bilo uspešno, vendar si vaš brskalnik ne more »zapomniti« prijave.\n\n$1",
+       "authform-nosession-signup": "Račun smo ustvarili, vendar si vaš brskalnik ne more »zapomniti« prijave.\n\n$1",
+       "authform-newtoken": "Manjka žeton. $1",
+       "authform-notoken": "Manjka žeton",
+       "authform-wrongtoken": "Napačen žeton",
+       "specialpage-securitylevel-not-allowed-title": "Ni dovoljeno",
+       "specialpage-securitylevel-not-allowed": "Oprostite, vendar te strani ne morete uporabljati, saj vaše identitete nismo mogli preveriti.",
+       "authpage-cannot-login": "Ne moremo pričeti prijave.",
+       "authpage-cannot-login-continue": "Ne moremo nadaljevati s prijavo. Vaša seja je najverjetneje potekla.",
+       "authpage-cannot-create": "Ne moremo pričeti ustvarjanja računa.",
+       "authpage-cannot-create-continue": "Ne moremo nadaljevati z ustvarjanjem računa. Vaša seja je najverjetneje potekla.",
+       "authpage-cannot-link": "Ne moremo pričeti povezovanja računa.",
+       "authpage-cannot-link-continue": "Ne moremo nadaljevati s povezovanjem računov. Vaša seja je najverjetneje potekla.",
+       "cannotauth-not-allowed-title": "Dovoljenje je zavrnjeno",
+       "cannotauth-not-allowed": "Nimate dovoljenja za uporabo te strani",
+       "changecredentials": "Spremeni poverilnice",
+       "changecredentials-submit": "Spremeni poverilnice",
+       "changecredentials-invalidsubpage": "$1 ni veljavna vrsta poverilnic.",
+       "changecredentials-success": "Vaše poverilnice smo spremenili.",
+       "removecredentials": "Odstrani poverilnice",
+       "removecredentials-submit": "Odstrani poverilnice",
+       "removecredentials-invalidsubpage": "$1 ni veljavna vrsta poverilnic.",
+       "removecredentials-success": "Vaše poverilnice smo odstranili.",
+       "credentialsform-provider": "Vrsta poverilnic:",
+       "credentialsform-account": "Ime račun:",
+       "cannotlink-no-provider-title": "Ni računov za povezati",
+       "cannotlink-no-provider": "Ni računov za povezati.",
+       "linkaccounts": "Poveži račune",
+       "linkaccounts-success-text": "Račun smo povezali.",
+       "linkaccounts-submit": "Poveži račune",
+       "unlinkaccounts": "Razveži račune",
+       "unlinkaccounts-success": "Račun smo razvezali.",
+       "authenticationdatachange-ignored": "Sprememba overitvenih podatkov ni bila obdelana. Morda ni bil konfiguriran noben ponudnik?"
 }
index 693b6c5..cd2f351 100644 (file)
        "protectedpagetext": "Diese Seite ies fier doas Bearbta gesperrt.",
        "viewsourcetext": "Quelltext voo dar della Seite:",
        "protectedinterface": "Diese Seite enthält Text fier doas Sproach-Interface der Software und ies gesperrt, im Missbrauch zu verhindern.",
-       "editinginterface": "'''Warnung:''' Diese Seite enthält vu der MediaWiki-Software benutzta Text.\nÄnderunga wirka siech uff de Benutzeroberfläche aus.\nFier Iebersetzunga ziehe bitte ei Betracht, diese eim [//translatewiki.net/wiki/Main_Page?setlang=de Translatewiki], damm MediaWiki-Lokalisierungsprojekt, durchzufiehra.",
+       "editinginterface": "'''Warnung:''' Diese Seite enthält vu der MediaWiki-Software benutzta Text.\nÄnderunga wirka siech uff de Benutzeroberfläche aus.\nFier Iebersetzunga ziehe bitte ei Betracht, diese eim [https://translatewiki.net/wiki/Main_Page?setlang=de Translatewiki], damm MediaWiki-Lokalisierungsprojekt, durchzufiehra.",
        "cascadeprotected": "Diese Seite ies zur Beoarbeetung gesperrt. Se ies ei de {{PLURAL:$1|fulgende Seite|fulgenda Seita}} eengebunda, de mittels der Kaskadensperroption geschitzt {{PLURAL:$1|ies|sein}}:\n$2",
        "namespaceprotected": "Du host kenne Berechtigung, de Seite eim '''$1'''-Noamensraum zu bearbta.",
        "ns-specialprotected": "Spezialseyta kinna nicht beoarbeet warn.",
        "export-pagelinks": "Verlinkte Seyta automatisch miet exportiera, bis zer Rekursionstiefe vu:",
        "allmessagesname": "Noame",
        "allmessagesdefault": "Standardtext",
-       "allmessagestext": "Dies ies anne Liste dar MediaWiki-Systemtexte.\nBesiche de Seyta [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki-Lokalisierung] und [//translatewiki.net translatewiki.net], wenn du diech oa dar Lokalisierung vu MediaWiki beteiliga mechtest.",
+       "allmessagestext": "Dies ies anne Liste dar MediaWiki-Systemtexte.\nBesiche de Seyta [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki-Lokalisierung] und [https://translatewiki.net translatewiki.net], wenn du diech oa dar Lokalisierung vu MediaWiki beteiliga mechtest.",
        "allmessagesnotsupportedDB": "Diese Spezialseyte stieht ne zur Verfigung, do se ieber dann Parameter <tt>$wgUseDatabaseMessages</tt> deaktiviert wurde.",
        "allmessages-filter-all": "Olle",
        "allmessages-language": "Sproache:",
index f14b99f..6295f84 100644 (file)
        "actionthrottledtext": "Hadii aan ahay ka hortaga spamka, laguuma ogolo  shaqadaan badan oo waqti sidaan u yar ku qabatay,waadna ku xad gudubtay halihii laguu oglolaa.\nfadlan waxyar kadib ku soo noqo.",
        "protectedpagetext": "Boggaan  waala difaacay si aan wax looga bedelin.",
        "viewsourcetext": "Waad fiirin kartaa waana koobi gareen kartaa xogta boggaan:",
-       "editinginterface": "'''Digniin:''' Waxaad guda gashay inaad badesho bogga lawada arkayo wajiga hore ee qoraalka softwareka.\nWaxa uu saameeyn ku yeelan doonaa boggaan habka uu wax u arko adeegsadaha iyo dhamaan adeegsadayaasha ee wikgaan.\nSi aad wax ugu kordhiso ama aad uga dhinto turjumaadda mashaariicda wikiga , fadlan adeegso [//translatewiki.net/ translatewiki.net], mashruuca gaarka ah ee MediaWiki.",
+       "editinginterface": "'''Digniin:''' Waxaad guda gashay inaad badesho bogga lawada arkayo wajiga hore ee qoraalka softwareka.\nWaxa uu saameeyn ku yeelan doonaa boggaan habka uu wax u arko adeegsadaha iyo dhamaan adeegsadayaasha ee wikgaan.\nSi aad wax ugu kordhiso ama aad uga dhinto turjumaadda mashaariicda wikiga , fadlan adeegso [https://translatewiki.net/ translatewiki.net], mashruuca gaarka ah ee MediaWiki.",
        "cascadeprotected": "Boggaan waxaa laga difaacay in wax laga bedelo, sababtoo ah wuxuu ka midyahay  {{PLURAL:$1|bog, oo ah |bogyaalo ah, waana}}  kuwa laga difaacay \"qoraalada kaskadka ah\" dooqyada woo u furanyahay:\n$2",
        "namespaceprotected": "Ma laguu ogolo in aad wax ka bedesho maqaalada ku jirto '''$1''' xarun magaceedka.",
        "customcssprotected": "Ma laguu ogolo in aad wax ka badashid boggaan, sababtoo ah waxaa ku qoran isticmaale'yaal kale waxyaabo u shaqsi ah.",
        "allmessagesname": "Magac",
        "allmessagesdefault": "Qoraalka la'isku ogyahay",
        "allmessagescurrent": "Qoraalka hada qoran",
-       "allmessagestext": "Kan waa liiska fariimaha systemka oo laga heli karo xarun magaceedka MediaWiki.\nFadlan booqo [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] iyo [//translatewiki.net translatewiki.net] hadii aad rabto in aad wax ku darsatid guud ahaanba MediaWiki ku fasirida luqadaada.",
+       "allmessagestext": "Kan waa liiska fariimaha systemka oo laga heli karo xarun magaceedka MediaWiki.\nFadlan booqo [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] iyo [https://translatewiki.net translatewiki.net] hadii aad rabto in aad wax ku darsatid guud ahaanba MediaWiki ku fasirida luqadaada.",
        "allmessagesnotsupportedDB": "'''{{ns:special}}:Allmessages''' la'ma isticmaalikaro, '''$wgUseDatabaseMessages''' oo dansan daraadeed.",
        "allmessages-language": "Luqad:",
        "allmessages-filter-submit": "Soco",
index 4cae151..a49e46a 100644 (file)
        "viewsourcetext": "Ju mund të shikoni dhe kopjoni tekstin burimor të kësaj faqe.",
        "viewyourtext": "Ju mund të shikoni dhe kopjoni tekstin burimor të <strong>redaktimeve tuaja</strong> në këtë faqe.",
        "protectedinterface": "Kjo faqe përmban tekstin e dritares së programit, për këtë arsye mbrohet për të shmangur abuzimet.",
-       "editinginterface": "'''Kujdes:''' Po redaktoni një faqe që përdoret për tekstin dritares së programit. \nNdryshimet në këtë faqe do të ndikojnë pamjen e dritares për përdoruesit e tjerë.\nPër përkthime, ju lutem konsideroni përdorimin e [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], projektin e lokalizimit MediaWiki.",
-       "translateinterface": "Të shtoni ose të ndryshojë përkthime për të gjitha wikis, ju lutem përdorimin e [//translatewiki.net/ translatewiki.net], MediaWiki lokalizimin e projektit.",
+       "editinginterface": "'''Kujdes:''' Po redaktoni një faqe që përdoret për tekstin dritares së programit. \nNdryshimet në këtë faqe do të ndikojnë pamjen e dritares për përdoruesit e tjerë.\nPër përkthime, ju lutem konsideroni përdorimin e [https://translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], projektin e lokalizimit MediaWiki.",
+       "translateinterface": "Të shtoni ose të ndryshojë përkthime për të gjitha wikis, ju lutem përdorimin e [https://translatewiki.net/ translatewiki.net], MediaWiki lokalizimin e projektit.",
        "cascadeprotected": "Kjo faqe është mbrojtur nga redaktimi pasi që është përfshirë në {{PLURAL:$1|faqen|faqet}} e mëposhtme që {{PLURAL:$1|është|janë}} mbrojtur sipas metodës \"cascading\":\n$2",
        "namespaceprotected": "Nuk ju lejohet redaktimi i faqeve në hapsirën '''$1'''.",
        "customcssprotected": "Ju nuk keni leje për të redaktuar këtë faqe CSS, sepse ai përmban cilësimet personale tjetër user's.",
        "resetpass-temp-password": "Fjalëkalimi i përkohshëm:",
        "resetpass-abort-generic": "Ndryshimi i fjalëkalimi  dështoi nga një zgjerim.",
        "resetpass-expired": "Fjalëkalimin tuaj ka skaduar. Ju lutem vendosni një fjalëkalim të ri për të hyr.",
-       "resetpass-expired-soft": "Fjalëkalimi juaj ka skaduar dhe duhet të rivendoset. Ju lutem zgjidhni një fjalëkalim të ri tani, ose klikoni \"{{int:resetpass-submit-cancel}}\" për ta rivendosur më vonë.",
-       "resetpass-validity-soft": "Fjalëkalimi juaj ka skaduar dhe duhet të rivendoset. Ju lutem zgjidhni një fjalëkalim të ri tani, ose klikoni \"{{int:resetpass-submit-cancel}}\" për ta rivendosur më vonë.",
+       "resetpass-expired-soft": "Fjalëkalimi juaj ka skaduar dhe duhet të rivendoset. Ju lutem zgjidhni një fjalëkalim të ri tani, ose klikoni \"{{int:authprovider-resetpass-skip-label}}\" për ta rivendosur më vonë.",
+       "resetpass-validity-soft": "Fjalëkalimi juaj ka skaduar dhe duhet të rivendoset. Ju lutem zgjidhni një fjalëkalim të ri tani, ose klikoni \"{{int:authprovider-resetpass-skip-label}}\" për ta rivendosur më vonë.",
        "passwordreset": "Ndrysho fjalkalimin",
        "passwordreset-text-one": "Plotësoni këtë formular për të marrë një fjalëkalim të përkohshëm nëpërmjet postës elektronike.",
        "passwordreset-text-many": "{{PLURAL:$1|Mbush një nga fushat për të marrë një fjalëkalim të përkohshëm nëpërmjet postës elektronike.}}",
        "minoredit": "Ky është një redaktim i vogël",
        "watchthis": "Vëzhgoje këtë faqe",
        "savearticle": "Kryej ndryshimet",
+       "publishpage": "Publiko faqen",
        "preview": "Shqyrto",
        "showpreview": "Shfaq për shqyrtim",
        "showdiff": "Trego ndryshimet",
        "allmessagesname": "Emri",
        "allmessagesdefault": "Teksti i parazgjedhur",
        "allmessagescurrent": "Teksti i tanishëshm",
-       "allmessagestext": "Kjo është një listë e të gjitha faqeve në hapësirën MediaWiki:\nJu lutemi vizitoni [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] dhe [//translatewiki.net translatewiki.net] nëse dëshironi të kontribuoni në lokalizimin e përgjithshëm MediaWiki",
+       "allmessagestext": "Kjo është një listë e të gjitha faqeve në hapësirën MediaWiki:\nJu lutemi vizitoni [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] dhe [https://translatewiki.net translatewiki.net] nëse dëshironi të kontribuoni në lokalizimin e përgjithshëm MediaWiki",
        "allmessagesnotsupportedDB": "Kjo faqe nuk mund të përdoret sepse '''$wgUseDatabaseMessages''' është çaktivizuar.",
        "allmessages-filter-legend": "Filtër",
        "allmessages-filter": "Filtroni nga shteti",
        "feedback-subject": "Subjekti:",
        "feedback-submit": "Dërgo",
        "feedback-thanks": "Faleminderit! Përshtypja juaj është postuar në faqen \"[$2 $1]\".",
+       "feedback-thanks-title": "Ju faleminderit!",
        "searchsuggest-search": "Kërko",
        "searchsuggest-containing": "përmban ...",
        "api-error-badaccess-groups": "Ju nuk lejoheni të ngarkoni skeda në këtë wiki.",
        "api-error-badtoken": "Gabim i brendshëm: Shenjë e keqe.",
        "api-error-copyuploaddisabled": "Ngarkimi nga URL-ja është çaktivizuar në këtë server.",
        "api-error-duplicate": "{{PLURAL:$1|Ekziston një skedë tjetër|Ekzistojnë disa skeda të tjera}} me të njëjtën përmbajtje.",
-       "api-error-duplicate-archive": "{{Ekzistonte një skedë tjetër|Ekzistonin disa skeda të tjera}} me të njëjtën përmbajtje, por {{PLURAL:$1|ajo është|ato janë}} fshirë.",
+       "api-error-duplicate-archive": "{{PLURAL:$1|Ekzistonte një skedë tjetër|Ekzistonin disa skeda të tjera}} me të njëjtën përmbajtje, por {{PLURAL:$1|ajo është|ato janë}} fshirë.",
        "api-error-empty-file": "Skeda që paraqitët ishte bosh.",
        "api-error-emptypage": "Nuk lejohet krijimi i faqeve të reja bosh.",
        "api-error-fetchfileerror": "Gabim i brendshëm: Diçka shkoi keq gjatë marrjes së skedës.",
index b810ffd..df4b1a5 100644 (file)
@@ -74,7 +74,7 @@
        "tog-ccmeonemails": "Пошаљи ми копије имејлова које пошаљем другим корисницима",
        "tog-diffonly": "Не приказуј садржај странице испод разлика",
        "tog-showhiddencats": "Прикажи скривене категорије",
-       "tog-norollbackdiff": "Ð\98зоÑ\81Ñ\82ави разлику након извршеног враћања",
+       "tog-norollbackdiff": "Ð\9dе Ð¿Ñ\80иказÑ\83Ñ\98 разлику након извршеног враћања",
        "tog-useeditwarning": "Упозори ме када напуштам страницу са несачуваним променама",
        "tog-prefershttps": "Увек користи сигурну конекцију када сам пријављен.",
        "underline-always": "увек подвлачи",
        "category_header": "Странице у категорији „$1“",
        "subcategories": "Поткатегорије",
        "category-media-header": "Датотеке у категорији „$1“",
-       "category-empty": "<div style=\"margin:2em 1em 0 1em; padding:0.5em; border:1px solid #AAA; text-align:center;\">''Ова категорија тренутно не садржи странице или датотеке.''</div>",
+       "category-empty": "<em>Ова категорија тренутно не садржи странице или датотеке.</em>",
        "hidden-categories": "{{PLURAL:$1|Сакривена категорија|Сакривене категорије}}",
        "hidden-category-category": "Скривене категорије",
        "category-subcat-count": "{{PLURAL:$2|1=Ова категорија садржи само следећу поткатегорију.|Ова категорија има {{PLURAL:$1|1=следећу поткатегорију|следеће $1 поткатегорије|следећих $1 поткатегорија}}, од укупно $2.}}",
        "newwindow": "(отвара се у новом прозору)",
        "cancel": "Откажи",
        "moredotdotdot": "Више…",
-       "morenotlisted": "Ова листа није комплетна.",
+       "morenotlisted": "Овај списак није комплетан.",
        "mypage": "Страница",
        "mytalk": "Разговор",
        "anontalk": "Разговор",
        "protectedpagetext": "Ова страница је закључана за измене и друге радње.",
        "viewsourcetext": "Можете читати и копирати садржај ове странице.",
        "viewyourtext": "Можете да погледате и копирате изворни текст <strong>ваших измена</strong> на овој страници.",
-       "protectedinterface": "Ова страница садржи текст корисничког окружења за софтвер на овом викију и заштићена је ради спречавања злоупотребе.\nДа бисте додали или изменили преводе свих викија, посетите [//translatewiki.net/ Транслејтвики], пројекат за локализацију Медијавикија.",
+       "protectedinterface": "Ова страница садржи текст корисничког окружења за софтвер на овом викију и заштићена је ради спречавања злоупотребе.\nДа бисте додали или изменили преводе свих викија, посетите [https://translatewiki.net/ Транслејтвики], пројекат за локализацију Медијавикија.",
        "editinginterface": "<strong>Упозорење:</strong> уређујете страницу која се користи за приказивање текста корисничког окружења.\nИзмене на овој страници ће утицати на све кориснике овог викија.",
-       "translateinterface": "Да додате или промените преводе за све викије, посетите [//translatewiki.net/ Транслејтвики], пројекат за локализацију Медијавикија.",
+       "translateinterface": "Да додате или промените преводе за све викије, посетите [https://translatewiki.net/ Транслејтвики], пројекат за локализацију Медијавикија.",
        "cascadeprotected": "Ова страница је закључана јер садржи {{PLURAL:$1|следећу страницу која је заштићена|следеће странице које су заштићене}} „преносивом“ заштитом:\n$2",
        "namespaceprotected": "Немате дозволу да уређујете странице у именском простору <strong>$1</strong>.",
        "customcssprotected": "Немате дозволу да мењате ову CSS страницу јер садржи личне поставке другог корисника.",
        "noemail": "Не постоји имејл адреса за {{GENDER:$1|корисника|корисницу}} $1.",
        "noemailcreate": "Морате навести исправну имејл адресу.",
        "passwordsent": "Нова лозинка је послата на имејл адресу {{GENDER:$1|корисника|кориснице|корисника}} $1.\nПријавите се пошто је примите.",
-       "blocked-mailpassword": "Ð\92аÑ\88оÑ\98 Ð\98Ð\9f Ð°Ð´Ñ\80еÑ\81и Ñ\98е Ð¾Ð½ÐµÐ¼Ð¾Ð³Ñ\83Ñ\9bено Ñ\83Ñ\80еÑ\92иваÑ\9aе Ñ\81Ñ\82Ñ\80аниÑ\86а, ÐºÐ°Ð¾ Ð¸ Ð¼Ð¾Ð³Ñ\83Ñ\9bноÑ\81Ñ\82 Ð·Ð°Ñ\85Ñ\82еваÑ\9aа Ð½Ð¾Ð²Ðµ Ð»Ð¾Ð·Ð¸Ð½Ðºе.",
+       "blocked-mailpassword": "Ð\92аÑ\88а IP Ð°Ð´Ñ\80еÑ\81а Ð¸Ð¼Ð° Ð·Ð°Ð±Ñ\80анÑ\83 Ñ\83Ñ\80еÑ\92иваÑ\9aа. Ð Ð°Ð´Ð¸ Ñ\81пÑ\80еÑ\87аваÑ\9aа Ð·Ð»Ð¾Ñ\83поÑ\82Ñ\80ебе, Ð½Ð¸Ñ\98е Ð´Ð¾Ð·Ð²Ð¾Ñ\99ено Ð²Ñ\80аÑ\9bаÑ\9aе Ð»Ð¾Ð·Ð¸Ð½ÐºÐµ Ñ\81а Ñ\9aе.",
        "eauthentsent": "На наведену имејл адресу је послат потврдни код.\nПре него што пошаљемо даљње поруке, пратите упутства с имејла да бисте потврдили да сте ви отворили налог.",
        "throttled-mailpassword": "Порука за промену лозинке је послата у {{PLURAL:$1|1=последњих сат времена|последња $1 сата|последњих $1 сати}}.\nДа бисмо спречили злоупотребу, подсетник шаљемо само једном у року од {{PLURAL:$1|1=сат времена|$1 сата|$1 сати}}.",
        "mailerror": "Грешка при слању поруке: $1",
        "resetpass-temp-password": "Привремена лозинка:",
        "resetpass-abort-generic": "Промену лозинке је спречио додатак.",
        "resetpass-expired": "Ваша лозинка је истекла. Поставите нову лозинку да бисте се пријавили.",
-       "resetpass-expired-soft": "Ваша лозинка је истекла и морате поставити нову. Поставите нову лозинку или кликните „{{int:resetpass-submit-cancel}}“ да је поставите касније.",
-       "resetpass-validity-soft": "Ваша лозинка није ваљана: $1\n\nМолимо изаберите нову или кликните „{{int:resetpass-submit-cancel}}“ да ресетујете касније.",
+       "resetpass-expired-soft": "Ваша лозинка је истекла и морате поставити нову. Поставите нову лозинку или кликните „{{int:authprovider-resetpass-skip-label}}“ да је поставите касније.",
+       "resetpass-validity-soft": "Ваша лозинка није ваљана: $1\n\nМолимо изаберите нову или кликните „{{int:authprovider-resetpass-skip-label}}“ да ресетујете касније.",
        "passwordreset": "Обнављање лозинке",
        "passwordreset-text-one": "Попуните овај образац да бисте добили привремену лозинку на имејл.",
        "passwordreset-text-many": "{{PLURAL:$1|Испуните једно од поља како бисте добили привремену лозинку на имејл.}}",
        "passwordreset-emailtext-ip": "Неко (вероватно Ви, са ИП адресе $1) је затражио нову лозинку на викију {{SITENAME}} ($4).\nСледећи {{PLURAL:$3|кориснички налог је повезан|кориснички налози су повезани}} с овом имејл адресом:\n\n$2\n\n{{PLURAL:$3|Привремена лозинка истиче|Привремене лозинке истичу}} за {{PLURAL:$5|један дан|$5 дана}}.\nПријавите се и изаберите нову лозинку. Ако је неко други захтевао ову радњу или сте се сетили лозинке и не желите да је мењате, занемарите ову поруку и наставите користити стару лозинку.",
        "passwordreset-emailtext-user": "{{GENDER:$1|Корисник је затражио|Корисница је затражила}} подсетник о подацима за пријаву на викију {{SITENAME}} ($4).\nСледећи {{PLURAL:$3|кориснички налог је повезан|кориснички налози су повезани}} с овом имејл адресом:\n\n$2\n\n{{PLURAL:$3|Привремена лозинка истиче|Привремене лозинке истичу}} за {{PLURAL:$5|један дан|$5 дана}}.\nПријавите се и изаберите нову лозинку. Ако је неко други захтевао ову радњу или сте се сетили лозинке и не желите да је мењате, занемарите ову поруку.",
        "passwordreset-emailelement": "Корисничко име: \n$1\n\nПривремена лозинка: \n$2",
-       "passwordreset-emailsentemail": "Ако је ово имејл адреса регистована на Вашем налогу, подсетник о лозинци ће бити послат на имејл.",
+       "passwordreset-emailsentemail": "Ако је ово имејл адреса повезана са Вашим налогом, подсетник о лозинци ће бити послат на имејл.",
        "passwordreset-emailsentusername": "Ако сте навели имејл адресу приликом регистрације, биће послат имејл за ресетовање лозинке.",
        "passwordreset-emailsent-capture": "Послат је подсетник преко имејла, који је приказан доле.",
        "passwordreset-emailerror-capture": "Имејл за ресетовање лозинке, приказан испод је послат, али слање {{GENDER:$2|кориснику|корисници}} није успело: $1",
        "minoredit": "мања измена",
        "watchthis": "надгледај ову страницу",
        "savearticle": "Сачувај страницу",
+       "savechanges": "Сачувај измене",
+       "publishpage": "Објави страницу",
+       "publishchanges": "Објави измене",
        "preview": "Претпреглед",
        "showpreview": "Прикажи претпреглед",
        "showdiff": "Прикажи измене",
        "userpage-userdoesnotexist": "Кориснички налог „<nowiki>$1</nowiki>“ није отворен.\nРазмислите да ли заиста желите да направите/уредите ову страницу.",
        "userpage-userdoesnotexist-view": "Кориснички налог „$1“ није отворен.",
        "blocked-notice-logextract": "Овај корисник је тренутно блокиран.\nИзвештај о последњем блокирању можете погледати испод:",
-       "clearyourcache": "'''Напомена:''' након чувања, можда ћете морати да очистите кеш прегледача.\n*'''Фајерфокс и Сафари:''' држите ''Shift'' и кликните на ''Освежи'', или притисните ''Ctrl-F5'' или Ctrl-R (''⌘-R'' на Макинтошу)\n*'''Гугл кроум:''' притисните ''Ctrl-Shift-R'' (''⌘-Shift-R'' на Макинтошу)\n*'''Интернет експлорер: '''држите ''Ctrl'' и кликните на ''Освежи'', или притисните ''Ctrl-F5''\n*'''Опера:''' очистите привремену меморију преко менија ''Алатке → Поставке''.",
+       "clearyourcache": "<strong>Напомена:</strong> након чувања, можда ћете морати да очистите кеш прегледача како бисте видели промене.\n* <strong>Фајерфокс / Сафари:</strong> држите <em>Shift</em> и кликните на <em>Освежи</em>, или притисните <em>Ctrl-F5</em> или <em>Ctrl-R (<em>⌘-R</em> на Меку)\n* <strong>Гугл кроум:</strong> притисните <em>Ctrl-Shift-R</em> (<em>⌘-Shift-R</em> на Меку)\n* <strong>Интернет експлорер:</strong> држите <em>Ctrl</em> и кликните на <em>Освежи</em> или притисните <em>Ctrl-F5</em>\n* <strong>Опера:</strong> идите на <em>Алатке → Подешавања</em> (<em>Опера → Поставке</em> на Меку) и затим <em>Приватност и безбедност → Очистите податке о прегледима → Кеширане слике и датотеке</em>.",
        "usercssyoucanpreview": "'''Савет:''' кориситите дугме „{{int:showpreview}}“ да испробате свој нови CSS пре него што га сачувате.",
        "userjsyoucanpreview": "'''Савет:''' кориситите дугме „{{int:showpreview}}“ да испробате свој нови јаваскрипт пре него што га сачувате.",
        "usercsspreview": "'''Ово је само преглед CSS-а.'''\n'''Страница још није сачувана!'''",
        "previewnote": "<strong>Ово је претпреглед.</strong>\nВаше измене још нису сачуване!",
        "continue-editing": "Иди на уређивачки оквир",
        "previewconflict": "Овај преглед осликава како ће текст у текстуалном оквиру изгледати.",
-       "session_fail_preview": "'''Нисмо могли да обрадимо вашу измену због губитка података сесије.'''\nПокушајте поново.\nАко и даље не ради, покушајте да се [[Special:UserLogout|одјавите]] и поново пријавите.",
-       "session_fail_preview_html": "'''Нисмо могли да обрадимо вашу измену због губитка података сесије.'''\n\n''Будући да је на овом викију омогућен унос HTML ознака, преглед је сакривен као мера предострожности против напада преко јаваскрипта.''\n\n'''Ако сте покушали да направите праву измену, покушајте поново.\nАко и даље не ради, покушајте да се [[Special:UserLogout|одјавите]] и поново пријавите.'''",
+       "session_fail_preview": "Нисмо могли да обрадимо вашу измену због губитка података сесије.\n\nМожда сте одјављени. <strong>Проверите да ли сте пријављен и покушајте поново</strong>.\n\nАко и даље не ради, покушајте да се [[Special:UserLogout|одјавите]] и поново пријавите и проверите да ли су на Вашем претраживачу дозвољени колачићи са овог сајта.",
+       "session_fail_preview_html": "Нисмо могли да обрадимо вашу измену због губитка података сесије.\n\n<em>Будући да је на овом викију омогућен унос HTML ознака, преглед је сакривен као мера предострожности против напада преко јаваскрипта.</em>\n\n<strong>Ако сте покушали да направите праву измену, покушајте поново.<strong>\nАко и даље не ради, покушајте да се [[Special:UserLogout|одјавите]] и поново пријавите и проверите да ли Ваш претраживач дозвољава колачиће са овог сајта.",
        "token_suffix_mismatch": "'''Ваша измена је одбачена јер је ваш прегледач убацио знакове интерпункције у новчић уређивања.\nТо се понекад догађа када се користи неисправан посредник.'''",
        "edit_form_incomplete": "<strong>Неки делови обрасца за уређивање нису стигли до сервера. Проверите да ли су ваше измене непромењене и покушајте поново.</strong>",
        "editing": "Уређујете $1",
        "userrights-unchangeable-col": "Групе које не можете да промените",
        "userrights-irreversible-marker": "$1*",
        "userrights-conflict": "Сукоб промена корисничких права! Молимо проверите ваше измене.",
-       "userrights-removed-self": "УÑ\81пеÑ\88но Ñ\81Ñ\82е Ñ\81еби Ñ\81кинÑ\83ли Ð¿Ñ\80ава. Ð\97бог Ñ\82ога Ð½Ð¸Ñ\98е Ð²Ð°Ð¼ дозвољен приступ овој страници.",
+       "userrights-removed-self": "СкинÑ\83ли Ñ\81Ñ\82е Ñ\81еби Ð¿Ñ\80ава. Ð\97бог Ñ\82ога Ð\92ам Ð½Ð¸Ñ\98е дозвољен приступ овој страници.",
        "group": "Група:",
        "group-user": "Корисници",
        "group-autoconfirmed": "Аутоматски потврђени корисници",
        "group-bot-member": "{{GENDER:$1|бот}}",
        "group-sysop-member": "{{GENDER:$1|администратор|администраторка|администратор}}",
        "group-bureaucrat-member": "{{GENDER:$1|бирократа}}",
-       "group-suppress-member": "{{GENDER:$1|ревизор|ревизорка}}",
+       "group-suppress-member": "{{GENDER:$1|брисач измена}}",
        "grouppage-user": "{{ns:project}}:Корисници",
        "grouppage-autoconfirmed": "{{ns:project}}:Аутоматски потврђени корисници",
        "grouppage-bot": "{{ns:project}}:Ботови",
        "right-override-export-depth": "извоз страница укључујући и повазене странице до дубине од пет веза",
        "right-sendemail": "слање имејла другим корисницима",
        "right-passwordreset": "прегледање порука за обнављање лозинке",
-       "right-managechangetags": "Ð\9fрављење и (де)активирање [[Special:Tags|ознака]]",
+       "right-managechangetags": "прављење и (де)активирање [[Special:Tags|ознака]]",
        "right-applychangetags": "примењивање [[Special:Tags|ознака]] на нечије измене",
        "right-changetags": "додавање и уклањање разних [[Special:Tags|ознака]] на појединачним изменама и уносима у дневницима",
        "grant-group-page-interaction": "Уређивање страница",
        "uploadstash-summary": "Ова страница пружа приступ датотекама које су послате (или се шаљу), али још нису објављене. Ове датотеке су видљиве само кориснику који га је послао.",
        "uploadstash-clear": "Очисти сакривене датотеке",
        "uploadstash-nofiles": "Немате сакривене датотеке.",
-       "uploadstash-badtoken": "Извршавање дате радње није успело. Разлог томе може бити истек времена за уређивање. Покушајте поново.",
+       "uploadstash-badtoken": "Извршавање дате радње није успело, разлог томе може бити истек времена за уређивање. Покушајте поново.",
        "uploadstash-errclear": "Чишћење датотека није успело.",
        "uploadstash-refresh": "Освежи списак датотека",
        "invalid-chunk-offset": "Неисправна полазна тачка",
        "listgrouprights-namespaceprotection-restrictedto": "Права потребна за уређивање",
        "listgrants-rights": "Права",
        "trackingcategories": "Медијавики категорије",
-       "trackingcategories-summary": "Ð\9eва Ð¿Ð¾Ñ\81ебна Ñ\81Ñ\82Ñ\80аниÑ\86а Ñ\98е Ñ\81пиÑ\81ак ÐºÐ°Ñ\82егоÑ\80иÑ\98а ÐºÐ¾Ñ\98е Ñ\81Ñ\83 Ð´ÐµÐ¾ Ð\9cедиÑ\98авикиÑ\98а, Ð¾Ð½Ðµ Ñ\81е Ð°Ñ\83Ñ\82омаÑ\82Ñ\81ки Ð°Ð¶Ñ\83Ñ\80иÑ\80аÑ\98Ñ\83 Ð¸ Ñ\9aиÑ\85ови Ð½Ð°Ð·Ð¸Ð²Ð¸ Ñ\81е Ð¼Ð¾Ð³Ñ\83 Ð¼ÐµÑ\9aаÑ\9aаÑ\82и Ñ\83Ñ\80еÑ\92иваÑ\9aем Ñ\81иÑ\81Ñ\82емÑ\81киÑ\85 Ð¿Ð¾Ñ\80Ñ\83ка Ñ\83 Ð¸Ð¼ÐµÐ½Ñ\81ком Ð¿Ñ\80оÑ\81Ñ\82оÑ\80Ñ\83 {{ns:8}}.",
+       "trackingcategories-summary": "Ова посебна страница је списак категорија које су део Медијавикија, оне се аутоматски ажурирају и њихови називи се могу мењати уређивањем системских порука у именском простору {{ns:8}}.",
        "trackingcategories-name": "Име поруке",
        "trackingcategories-desc": "Које странице се налазе у категорији",
        "noindex-category-desc": "Странице које у себи имају магичну реч <code><nowiki>__NOINDEX__</nowiki></code>.",
        "sp-contributions-username": "ИП адреса или корисничко име:",
        "sp-contributions-toponly": "Само најновије измене",
        "sp-contributions-newonly": "Само измене којима су направљене нове странице",
+       "sp-contributions-hideminor": "Сакриј мање измене",
        "sp-contributions-submit": "Претражи",
        "whatlinkshere": "Шта води овде",
        "whatlinkshere-title": "Странице које су повезане са „$1“",
        "ipb-unblock": "Деблокирај корисничко име или IP адресу",
        "ipb-blocklist": "Погледај постојећа блокирања",
        "ipb-blocklist-contribs": "Доприноси за {{GENDER:$1|$1}}",
+       "ipb-blocklist-duration-left": "преостало: $1",
        "unblockip": "Деблокирај корисника",
        "unblockiptext": "Користите образац испод да бисте вратили право писања блокираној ИП адреси или корисничком имену.",
        "ipusubmit": "Уклони ову блокаду",
        "allmessagesname": "Назив",
        "allmessagesdefault": "Подразумевани текст",
        "allmessagescurrent": "Тренутни текст поруке",
-       "allmessagestext": "Ово је списак свих системских порука које су доступне у именском простору „Медијавики“.\nПосетите [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Медијавики локализацију] и [//translatewiki.net Транслејтвики] ако желите да помогнете у превођењу.",
+       "allmessagestext": "Ово је списак свих системских порука које су доступне у именском простору „Медијавики“.\nПосетите [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Медијавики локализацију] и [https://translatewiki.net Транслејтвики] ако желите да помогнете у превођењу.",
        "allmessagesnotsupportedDB": "Ова страница не може да се користи јер је '''$wgUseDatabaseMessages''' онемогућен.",
        "allmessages-filter-legend": "Филтер",
        "allmessages-filter": "Филтрирај по стању:",
        "tooltip-ca-nstab-category": "Погледајте страницу категорија",
        "tooltip-minoredit": "Означите измену као мању",
        "tooltip-save": "Сачувајте измене које сте направили",
+       "tooltip-publish": "Објави своје измене",
        "tooltip-preview": "Прегледајте своје измене. Пожељно је да користите ово дугме пре чувања",
        "tooltip-diff": "Погледајте све измене које сте направили на тексту",
        "tooltip-compareselectedversions": "Погледаjте разлике између две изабране измене ове странице.",
        "previousdiff": "← Старија измена",
        "nextdiff": "Новија измена →",
        "mediawarning": "<strong>Упозорење:</strong> ова врста датотеке може садржати штетан код.\nАко га покренете, Ваш рачунар може бити угрожен.",
-       "imagemaxsize": "Ограничење величине слике:<br />''(на страницама за опис датотека)''",
+       "imagemaxsize": "Ограничење величине слике:<br /><em>(на страницама за опис датотека)</em>",
        "thumbsize": "Величина минијатуре:",
        "widthheight": "$1 × $2",
        "widthheightpage": "$1 × $2, $3 {{PLURAL:$3|страница|странице|страница}}",
        "variantname-gan": "gan",
        "variantname-sr-ec": "Ћирилица",
        "variantname-sr-el": "Latinica",
-       "variantname-sr": "ћир/lat",
+       "variantname-sr": "Ћир./lat.",
        "variantname-kk-kz": "kk-kz",
        "variantname-kk-tr": "kk-tr",
        "variantname-kk-cn": "kk-cn",
        "confirmemail_body_set": "Неко, вероватно ви, са ИП адресе $1 \nје променио имејл адресу налога „$2“ у ову адресу на {{SITENAME}}.\n\nДа бисмо потврдили да овај налог стварно припада вама и поново активирали могућности имејла на {{SITENAME}}, отворите следећу везу у прегледачу:\n\n$3\n\nАко налог *не* припада вама, пратите следећу везу да откажете потврду имејл адресе:\n\n$5\n\nОвај потврдни код истиче $4.",
        "confirmemail_invalidated": "Потврда имејл адресе је отказана",
        "invalidateemail": "Отказивање потврде имејла",
+       "notificationemail_body_changed": "Неко, вероватно Ви је променио имејл адресу налога из $2“ у „$3“ са IP адресе $1 на сајту {{SITENAME}}.\n\nАко ово нисте били Ви, одмах обавестите администраторе сајта.",
        "scarytranscludedisabled": "[Међувики укључивање шаблона је онемогућено]",
        "scarytranscludefailed": "[Добављање шаблона за $1 није успело]",
        "scarytranscludefailed-httpstatus": "[Не могу да преузмем шаблон $1: HTTP $2]",
        "version-libraries-license": "Лиценца",
        "version-libraries-description": "Опис",
        "version-libraries-authors": "Аутори",
-       "redirect": "Преусмерење на датотеку, корисника, страницу или измену",
+       "redirect": "Преусмерење на датотеку, корисника, страницу, измену или дневник",
        "redirect-submit": "Иди",
        "redirect-lookup": "Тип вредности:",
        "redirect-value": "Вредност:",
        "mw-widgets-dateinput-placeholder-month": "ГГГГ-ММ",
        "mw-widgets-titleinput-description-new-page": "страница још увек не постоји",
        "mw-widgets-titleinput-description-redirect": "преусмерава на $1",
-       "api-error-blacklisted": "Изаберите другачији, описан назив.",
        "randomrootpage": "Случајна коренска страница",
        "log-action-filter-block": "Тип блокирања:",
        "log-action-filter-contentmodel": "Тип промене модела садржаја:",
index fced0d0..ad1dc2e 100644 (file)
        "protectedpagetext": "Ova stranica je zaključana za izmene i druge radnje.",
        "viewsourcetext": "Možete čitati i kopirati sadržaj ove stranice.",
        "viewyourtext": "Možete da pogledate i kopirate izvorni tekst <strong>vaših izmena</strong> na ovoj stranici.",
-       "protectedinterface": "Ova stranica sadrži tekst korisničkog okruženja za softver na ovom vikiju i zaštićena je radi sprečavanja zloupotrebe.\nDa biste dodali ili izmenili prevode svih vikija, posetite [//translatewiki.net/ Translejtviki], projekat za lokalizaciju Medijavikija.",
+       "protectedinterface": "Ova stranica sadrži tekst korisničkog okruženja za softver na ovom vikiju i zaštićena je radi sprečavanja zloupotrebe.\nDa biste dodali ili izmenili prevode svih vikija, posetite [https://translatewiki.net/ Translejtviki], projekat za lokalizaciju Medijavikija.",
        "editinginterface": "<strong>Upozorenje:</strong> uređujete stranicu koja se koristi za prikazivanje teksta korisničkog okruženja.\nIzmene na ovoj stranici će uticati na sve korisnike ovog vikija.",
-       "translateinterface": "Da dodate ili promenite prevode za sve vikije, posetite [//translatewiki.net/ Translejtviki], projekat za lokalizaciju Medijavikija.",
+       "translateinterface": "Da dodate ili promenite prevode za sve vikije, posetite [https://translatewiki.net/ Translejtviki], projekat za lokalizaciju Medijavikija.",
        "cascadeprotected": "Ova stranica je zaključana jer sadrži {{PLURAL:$1|sledeću stranicu koja je zaštićena|sledeće stranice koje su zaštićene}} „prenosivom“ zaštitom:\n$2",
        "namespaceprotected": "Nemate dozvolu da uređujete stranice u imenskom prostoru <strong>$1</strong>.",
        "customcssprotected": "Nemate dozvolu da menjate ovu CSS stranicu jer sadrži lične postavke drugog korisnika.",
        "resetpass-temp-password": "Privremena lozinka:",
        "resetpass-abort-generic": "Promenu lozinke je sprečio dodatak.",
        "resetpass-expired": "Vaša lozinka je istekla. Postavite novu lozinku da biste se prijavili.",
-       "resetpass-expired-soft": "Vaša lozinka je istekla i morate postaviti novu. Postavite novu lozinku ili kliknite „{{int:resetpass-submit-cancel}}“ da je postavite kasnije.",
-       "resetpass-validity-soft": "Vaša lozinka nije valjana: $1\n\nMolimo izaberite novu ili kliknite „{{int:resetpass-submit-cancel}}“ da resetujete kasnije.",
+       "resetpass-expired-soft": "Vaša lozinka je istekla i morate postaviti novu. Postavite novu lozinku ili kliknite „{{int:authprovider-resetpass-skip-label}}“ da je postavite kasnije.",
+       "resetpass-validity-soft": "Vaša lozinka nije valjana: $1\n\nMolimo izaberite novu ili kliknite „{{int:authprovider-resetpass-skip-label}}“ da resetujete kasnije.",
        "passwordreset": "Obnavljanje lozinke",
        "passwordreset-text-one": "Popunite ovaj obrazac da biste dobili privremenu lozinku na e-poštu.",
        "passwordreset-text-many": "{{PLURAL:$1|Ispunite jedno od polja kako biste dobili privremenu lozinku na e-poštu.}}",
        "minoredit": "manja izmena",
        "watchthis": "nadgledaj ovu stranicu",
        "savearticle": "Sačuvaj stranicu",
-       "preview": "Pregled",
+       "savechanges": "Sačuvaj izmene",
+       "publishpage": "Objavi stranicu",
+       "publishchanges": "Objavi izmene",
+       "preview": "Pretpregled",
        "showpreview": "Prikaži pretpregled",
        "showdiff": "Prikaži izmene",
        "blankarticle": "<strong>Upozorenje:</strong> stranica koju pravite nema nikakav sadržaj.\nAko još jednom pritisnete „{{int:savearticle}}“ napravićete praznu stranicu.",
        "userpage-userdoesnotexist": "Korisnički nalog „<nowiki>$1</nowiki>“ nije otvoren.\nRazmislite da li zaista želite da napravite/uredite ovu stranicu.",
        "userpage-userdoesnotexist-view": "Korisnički nalog „$1“ nije otvoren.",
        "blocked-notice-logextract": "Ovaj korisnik je trenutno blokiran.\nIzveštaj o poslednjem blokiranju možete pogledati ispod:",
-       "clearyourcache": "'''Napomena:''' nakon čuvanja, možda ćete morati da očistite keš pregledača.\n*'''Fajerfoks i Safari:''' držite ''Shift'' i kliknite na ''Osveži'', ili pritisnite ''Ctrl-F5'' ili Ctrl-R (''⌘-R'' na Makintošu)\n*'''Gugl kroum:''' pritisnite ''Ctrl-Shift-R'' (''⌘-Shift-R'' na Makintošu)\n*'''Internet eksplorer: '''držite ''Ctrl'' i kliknite na ''Osveži'', ili pritisnite ''Ctrl-F5''\n*'''Opera:''' očistite privremenu memoriju preko menija ''Alatke → Postavke''.",
+       "clearyourcache": "<strong>Napomena:</strong> nakon čuvanja, možda ćete morati da očistite keš pregledača kako biste videli promene.\n* <strong>Fajerfoks / Safari:</strong> držite <em>Shift</em> i kliknite na <em>Osveži</em>, ili pritisnite <em>Ctrl-F5</em> ili <em>Ctrl-R (<em>⌘-R</em> na Meku)\n* <strong>Gugl kroum:</strong> pritisnite <em>Ctrl-Shift-R</em> (<em>⌘-Shift-R</em> na Meku)\n* <strong>Internet eksplorer:</strong> držite <em>Ctrl</em> i kliknite na <em>Osveži</em> ili pritisnite <em>Ctrl-F5</em>\n* <strong>Opera:</strong> idite na <em>Alatke → Podešavanja</em> (<em>Opera → Postavke</em> na Meku) i zatim <em>Privatnost i bezbednost → Očistite podatke o pregledima → Keširane slike i datoteke</em>.",
        "usercssyoucanpreview": "'''Savet:''' korisitite dugme „{{int:showpreview}}“ da isprobate svoj novi CSS pre nego što ga sačuvate.",
        "userjsyoucanpreview": "'''Savet:''' korisitite dugme „{{int:showpreview}}“ da isprobate svoj novi javaskript pre nego što ga sačuvate.",
        "usercsspreview": "'''Ovo je samo pregled CSS-a.'''\n'''Stranica još nije sačuvana!'''",
        "rev-showdeleted": "prikaži",
        "revisiondelete": "Obriši/vrati izmene",
        "revdelete-nooldid-title": "Nema tražene izmene",
-       "revdelete-nooldid-text": "Niste naveli željenu izmenu, ona ne postoji ili pokušavate da je sakrijete.",
+       "revdelete-nooldid-text": "Niste izabrali odredišnu izmenu na kojoj treba da se izvrši ova funkcija, ta izmena ne postoji, ili pokušavate sakriti trenutnu izmenu.",
        "revdelete-no-file": "Tražena datoteka ne postoji.",
        "revdelete-show-file-confirm": "Želite li da vidite obrisanu izmenu datoteke „<nowiki>$1</nowiki>“ od $2; $3?",
        "revdelete-show-file-submit": "Da",
        "group-bot-member": "{{GENDER:$1|bot}}",
        "group-sysop-member": "{{GENDER:$1|administrator|administratorka}}",
        "group-bureaucrat-member": "{{GENDER:$1|birokrata}}",
-       "group-suppress-member": "{{GENDER:$1|revizor|revizorka}}",
+       "group-suppress-member": "{{GENDER:$1|brisač izmena}}",
        "grouppage-user": "{{ns:project}}:Korisnici",
        "grouppage-autoconfirmed": "{{ns:project}}:Automatski potvrđeni korisnici",
        "grouppage-bot": "{{ns:project}}:Botovi",
        "right-override-export-depth": "izvoz stranica uključujući i povazene stranice do dubine od pet veza",
        "right-sendemail": "slanje e-poruka drugim korisnicima",
        "right-passwordreset": "pregledanje poruka za obnavljanje lozinke",
-       "right-managechangetags": "pravljenje i/ili brisanje [[Special:Tags|oznaka]] iz baze podataka",
+       "right-managechangetags": "pravljenje i (de)aktiviranje [[Special:Tags|oznaka]]",
        "grant-group-page-interaction": "Uređivanje stranica",
        "grant-group-file-interaction": "Uređivanje datoteka",
        "grant-group-watchlist-interaction": "Uređivanje vašeg spiska nadgledanja",
        "listgrouprights-namespaceprotection-restrictedto": "Prava potrebna za uređivanje",
        "listgrants-rights": "Prava",
        "trackingcategories": "Medijaviki kategorije",
-       "trackingcategories-summary": "Ova posebna stranica je spisak kategorija koje su deo Medijavikija, one se automatski ažuriraju i njihovi nazivi se mogu menjanjati uređivanjem sistemskih poruka u imenskom prostoru {{ns:8}}.",
+       "trackingcategories-summary": "Ova posebna stranica je spisak kategorija koje su deo Medijavikija, one se automatski ažuriraju i njihovi nazivi se mogu menjati uređivanjem sistemskih poruka u imenskom prostoru {{ns:8}}.",
        "trackingcategories-name": "Ime poruke",
        "trackingcategories-desc": "Koje stranice se nalaze u kategoriji",
        "noindex-category-desc": "Stranice koje u sebi imaju magičnu reč <code><nowiki>__NOINDEX__</nowiki></code>.",
        "allmessagesname": "Naziv",
        "allmessagesdefault": "Podrazumevani tekst",
        "allmessagescurrent": "Trenutni tekst poruke",
-       "allmessagestext": "Ovo je spisak svih sistemskih poruka koje su dostupne u imenskom prostoru „Medijaviki“.\nPosetite [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Medijaviki lokalizaciju] i [//translatewiki.net Translejtviki] ako želite da pomognete u prevođenju.",
+       "allmessagestext": "Ovo je spisak svih sistemskih poruka koje su dostupne u imenskom prostoru „Medijaviki“.\nPosetite [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Medijaviki lokalizaciju] i [https://translatewiki.net Translejtviki] ako želite da pomognete u prevođenju.",
        "allmessagesnotsupportedDB": "Ova stranica ne može da se koristi jer je '''$wgUseDatabaseMessages''' onemogućen.",
        "allmessages-filter-legend": "Filter",
        "allmessages-filter": "Filtriraj po stanju:",
        "tooltip-ca-nstab-category": "Pogledajte stranicu kategorija",
        "tooltip-minoredit": "Označite izmenu kao manju",
        "tooltip-save": "Sačuvajte izmene koje ste napravili",
+       "tooltip-publish": "Objavi svoje izmene",
        "tooltip-preview": "Pregledajte svoje izmene. Poželjno je da koristite ovo dugme pre čuvanja",
        "tooltip-diff": "Pogledajte sve izmene koje ste napravili na tekstu",
        "tooltip-compareselectedversions": "Pogledajte razlike između dve izabrane izmene ove stranice.",
        "previousdiff": "← Starija izmena",
        "nextdiff": "Novija izmena →",
        "mediawarning": "<strong>Upozorenje:</strong> ova vrsta datoteke može sadržati štetan kod.\nAko ga pokrenete, Vaš računar može biti ugrožen.",
-       "imagemaxsize": "Ograničenje veličine slike:<br />''(na stranicama za opis datoteka)''",
+       "imagemaxsize": "Ograničenje veličine slike:<br /><em>(na stranicama za opis datoteka)</em>",
        "thumbsize": "Veličina minijature:",
        "widthheight": "$1 × $2",
        "widthheightpage": "$1 × $2, $3 {{PLURAL:$3|stranica|stranice|stranica}}",
        "variantname-gan": "gan",
        "variantname-sr-ec": "Ćirilica",
        "variantname-sr-el": "Latinica",
-       "variantname-sr": "ћир/lat",
+       "variantname-sr": "Ћир./lat.",
        "variantname-kk-kz": "kk-kz",
        "variantname-kk-tr": "kk-tr",
        "variantname-kk-cn": "kk-cn",
        "mw-widgets-dateinput-placeholder-month": "GGGG-MM",
        "mw-widgets-titleinput-description-new-page": "stranica još uvek ne postoji",
        "mw-widgets-titleinput-description-redirect": "preusmerava na $1",
-       "api-error-blacklisted": "Izaberite drugačiji, opisan naziv.",
        "randomrootpage": "Slučajna korenska stranica"
 }
index 7cf0bcc..499ddeb 100644 (file)
        "protectedpagetext": "A papira disi sroto gi kenki.",
        "viewsourcetext": "Yu kan luku nanga kopi a source fu a papira disi:",
        "ns-specialprotected": "Spesrutu papira no kan kenki.",
-       "titleprotected": "[[User:$1|$1]] sroto a meki fu wan papira nanga a nen disi\nFu san ede: ''$2''.",
+       "titleprotected": "[[User:$1|$1]] sroto a meki fu wan papira nanga a nen disi\nFu san ede: <em>$2</em>.",
        "logouttext": "'''Yu psa gwe now.'''\n\nYu kan tan kebroiki {{SITENAME}} sondro nen, noso yu kan psa kon baka leki a srefi noso wan tra kebroikiman.\nSabi taki a kan gersi leki yu psa kon ete, te leki yu leygi a cache fu yu browser.",
        "yourname": "Kebroikiman nen:",
        "yourpassword": "Psa wortu:",
index 3c3d811..3853940 100644 (file)
        "viewsourcetext": "Wältext fon disse Siede:",
        "viewyourtext": "Du koast dän Wältext fon '''dien Beoarbaidenge''' fon disse Siede bekiekje un kopierje:",
        "protectedinterface": "Disse Siede änthaalt Text foar dät Sproak-Interface fon ju Software un is speerd, uum Misbruuk tou ferhinnerjen.",
-       "editinginterface": "'''Woarskauenge:''' Du beoarbaidest ne Siede ju der bruukt wäd, Interface-Text foar ju Software tou lääwerjen.\nAnnerengen ap disse Siede wirkje sik uut ap ju Benutseruurfläche foar uur Bruukere.\nFoar Uursättengen koast du fielicht beeter [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net] bruuke, dät is dät MediaWiki Lokalisierengsprojekt.",
+       "editinginterface": "'''Woarskauenge:''' Du beoarbaidest ne Siede ju der bruukt wäd, Interface-Text foar ju Software tou lääwerjen.\nAnnerengen ap disse Siede wirkje sik uut ap ju Benutseruurfläche foar uur Bruukere.\nFoar Uursättengen koast du fielicht beeter [https://translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net] bruuke, dät is dät MediaWiki Lokalisierengsprojekt.",
        "cascadeprotected": "Disse Siede is tou Beoarbaidenge speerd. Ju is in do {{PLURAL:$1|foulgjende Siede|foulgjende Sieden}} ienbuunen, do der middels ju Kaskadenspeeroption skutsed {{PLURAL:$1|is|sunt}}:\n$2",
        "namespaceprotected": "Du hääst neen Begjuchtigenge, ju Siede in dän '''$1'''-Noomensruum tou beoarbaidjen.",
        "customcssprotected": "↓Du hääst nit ju Begjuchtegenge, disse CSS änthooldende Siede tou beoarbaidjen, deer ju do persöönelke Ienstaalengen fon n uur Benutser änthaalt.",
        "allmessagesname": "Noome",
        "allmessagesdefault": "Standardtext",
        "allmessagescurrent": "Dissen Text",
-       "allmessagestext": "Dit is ne Lieste fon aal System-Ättergjuchte do in dän MediaWiki-Noomenruum tou Ferföigenge stounde.\nBesäik jädden [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] un [//translatewiki.net translatewiki.net], wan du mee-oarbaidje wolt an ju MediaWiki-Sortierenge.",
+       "allmessagestext": "Dit is ne Lieste fon aal System-Ättergjuchte do in dän MediaWiki-Noomenruum tou Ferföigenge stounde.\nBesäik jädden [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] un [https://translatewiki.net translatewiki.net], wan du mee-oarbaidje wolt an ju MediaWiki-Sortierenge.",
        "allmessagesnotsupportedDB": "Disse Spezioalsiede stoant nit tou Ferföigenge, deer ju uur dän Parameter <tt>$wgUseDatabaseMessages</tt> deaktivierd wuude.",
        "allmessages-filter-legend": "Sieuwe",
        "allmessages-filter": "Sieuwe foar anpaaseden Toustand:",
index cf4c8c4..ed76949 100644 (file)
        "protectedpagetext": "Ieu kaca dijaga tina éditan atawa peta lianna.",
        "viewsourcetext": "Anjeun bisa némbongkeun sarta nyalin sumber ieu kaca:",
        "viewyourtext": "Anjeun bisa némbongkeun sarta nyalin sumber '''éditan anjeun''' ka ieu kaca:",
-       "protectedinterface": "Ieu kaca nyadiakeun téks antarmuka pikeun sopwér di ieu wiki, ku kkituna dikonci pikeun nyingkahan \nanu ngaruksak.\nPikeun nambahkeun atawa ngarobah tarjamahan pikeun sakabéh wiki, buka [//translatewiki.net/ translatewiki.net], proyék lokalisasi MediaWiki.",
+       "protectedinterface": "Ieu kaca nyadiakeun téks antarmuka pikeun sopwér di ieu wiki, ku kkituna dikonci pikeun nyingkahan \nanu ngaruksak.\nPikeun nambahkeun atawa ngarobah tarjamahan pikeun sakabéh wiki, buka [https://translatewiki.net/ translatewiki.net], proyék lokalisasi MediaWiki.",
        "editinginterface": "<strong>Awas:</strong> Anjeun keur ngédit kaca nu dipaké pikeun nyadiakeun téks antarmuka pikeun sopwérna.\nParobahan kana ieu kaca bakal mangaruhan pidangan antarmuka pikeun pamaké séjén di ieu wiki.",
-       "translateinterface": "Pikeun nambahkeun atawa ngarobah tarjamah keur sakabéh wiki, paké [//translatewiki.net/ translatewiki.net], proyék lokalisasi MediaWiki.",
+       "translateinterface": "Pikeun nambahkeun atawa ngarobah tarjamah keur sakabéh wiki, paké [https://translatewiki.net/ translatewiki.net], proyék lokalisasi MediaWiki.",
        "cascadeprotected": "Kaca ieu geus dikonci ti éditan alatan disartakeun di {{PLURAL:$1|kaca|kaca-kaca}} katut anu geus dikonci kalawan pilihan \"runtun\": $2",
        "namespaceprotected": "Anjeun teu ngabogaan hak pikeun ngédit kaca di ngaranspasi '''$1'''.",
        "customcssprotected": "Anjeun teu teu diwenangkeun pikeun ngédit ieu kaca CSS, sabab ngandung setélan pribadi kontributor séjén.",
        "resetpass-temp-password": "Sandi samentara:",
        "resetpass-abort-generic": "Ganti kecap sandi geus dibolaykeun ku hiji éksténsi.",
        "resetpass-expired": "Kecap sandi anjeun geus kadaluwarsa. Mangga jieun anu anyar pikeun asup log.",
-       "resetpass-expired-soft": "Kecap sandi anjeun kudu disetél deui kusabab geus kadaluwarsa. Mangga pilih sandi anyar, atawa klik \"{{int:resetpass-submit-cancel}}\" lamun moal ayeuna.",
-       "resetpass-validity-soft": "Kecap sandi anjeun henteu sah: $1\n\nMangga pilih sandi anyar ayeuna, atawa klik \"{{int:resetpass-submit-cancel}}\" lamun moal ayeuna.",
+       "resetpass-expired-soft": "Kecap sandi anjeun kudu disetél deui kusabab geus kadaluwarsa. Mangga pilih sandi anyar, atawa klik \"{{int:authprovider-resetpass-skip-label}}\" lamun moal ayeuna.",
+       "resetpass-validity-soft": "Kecap sandi anjeun henteu sah: $1\n\nMangga pilih sandi anyar ayeuna, atawa klik \"{{int:authprovider-resetpass-skip-label}}\" lamun moal ayeuna.",
        "passwordreset": "Setél ulang sandi",
        "passwordreset-text-one": "Eusian formulir ieu pikeun ngirimkeun kecap sandi saheulaanan kana surélék.",
        "passwordreset-text-many": "{{PLURAL:$1|Eusian salassahiji lapang pikeun nampa kecap sandi saheulaanan ngaliwatan ratron.}}",
index 828ca49..6b1f4dd 100644 (file)
@@ -71,7 +71,8 @@
                        "Dammråtta",
                        "Mgr",
                        "Matma Rex",
-                       "McDutchie"
+                       "McDutchie",
+                       "Larske"
                ]
        },
        "tog-underline": "Stryk under länkar:",
        "protectedpagetext": "Den här sidan har skrivskyddats för att förhindra redigering eller andra åtgärder.",
        "viewsourcetext": "Du kan se och kopiera denna sidas källtext.",
        "viewyourtext": "Du kan se och kopiera källan för <strong>dina redigeringar</strong> av denna sida.",
-       "protectedinterface": "Denna sida innehåller text för mjukvarans gränssnitt på denna wiki, och är skrivskyddad för att förebygga missbruk.\nFör att lägga till eller ändra översättningar för alla wikis, var god använd [//translatewiki.net/ translatewiki.net], lokaliseringsprojektet för MediaWiki.",
+       "protectedinterface": "Denna sida innehåller text för mjukvarans gränssnitt på denna wiki, och är skrivskyddad för att förebygga missbruk.\nFör att lägga till eller ändra översättningar för alla wikis, var god använd [https://translatewiki.net/ translatewiki.net], lokaliseringsprojektet för MediaWiki.",
        "editinginterface": "<strong>Varning:</strong> Du redigerar en sida som används för texten i gränssnittet.\nÄndringar på denna sida kommer att påverka användargränssnittets utseende för andra användare på denna wiki.",
-       "translateinterface": "För att lägga till eller ändra översättningar för alla wikis, använd [//translatewiki.net/ translatewiki.net], lokaliseringsprojektet för MediaWiki.",
+       "translateinterface": "För att lägga till eller ändra översättningar för alla wikis, använd [https://translatewiki.net/ translatewiki.net], lokaliseringsprojektet för MediaWiki.",
        "cascadeprotected": "Den här sidan har skyddats från redigering eftersom den inkluderas på följande {{PLURAL:$1|sida|sidor}} som skrivskyddats med \"kaskaderande\"-inställningen aktiverad:\n$2",
        "namespaceprotected": "Du har inte behörighet att redigera sidor i namnrymden '''$1'''.",
        "customcssprotected": "Du har inte behörighet att redigera denna CSS-sida eftersom den innehåller en annan användares personliga inställningar.",
        "resetpass-temp-password": "Tillfälligt lösenord:",
        "resetpass-abort-generic": "Lösenordsändring av har avbrutits av ett tillägg.",
        "resetpass-expired": "Ditt lösenord har gått ut. Var god ange ett nytt lösenord för att logga in.",
-       "resetpass-expired-soft": "Ditt lösenord har gått ut och behöver återställas. Var god välj ett nytt lösenord nu eller klicka på \"{{int:resetpass-submit-cancel}}\" för att återställa det senare.",
-       "resetpass-validity-soft": "Ditt lösenord är ogiltigt: $1\n\nVar god välj ett nytt lösenord nu eller klicka på \"{{int:resetpass-submit-cancel}}\" för att återställa det senare.",
+       "resetpass-expired-soft": "Ditt lösenord har gått ut och behöver återställas. Var god välj ett nytt lösenord nu eller klicka på \"{{int:authprovider-resetpass-skip-label}}\" för att återställa det senare.",
+       "resetpass-validity-soft": "Ditt lösenord är ogiltigt: $1\n\nVar god välj ett nytt lösenord nu eller klicka på \"{{int:authprovider-resetpass-skip-label}}\" för att återställa det senare.",
        "passwordreset": "Återställ lösenord",
        "passwordreset-text-one": "Fyll i detta formulär för att återställa ditt lösenord.",
        "passwordreset-text-many": "{{PLURAL:$1|Fyll i ett av fälten för att få ett tillfälligt lösenord via e-post.}}",
        "passwordreset-emailerror-capture": "En lösenordsåterställning via e-post har skapats, som visas nedan, men det gick inte att skicka den till {{GENDER:$2|användaren}}: $1",
        "passwordreset-emailsent-capture2": "{{PLURAL:$1|E-postmeddelande|E-postmeddelanden}} för återställning av lösenord har skickats. {{PLURAL:$1|Användarnamnet och lösenordet|Listan över användarnamn och lösenord}} visas nedan.",
        "passwordreset-emailerror-capture2": "Kunde inte skicka e-post till {{GENDER:$2|användaren}}: $1 {{PLURAL:$3|Användarnamnet och lösenordet|Listan över användarnamn och lösenord}} listas nedan.",
+       "passwordreset-nocaller": "En användare måste anges",
+       "passwordreset-nosuchcaller": "Användare finns inte: $1",
        "passwordreset-ignored": "Lösenordsåterställningen hanterades inte. Kanske ingen leverantör har konfigurerats?",
        "passwordreset-invalideamil": "Ogiltig e-postadress",
        "passwordreset-nodata": "Varken ett användarnamn eller en e-postadress angavs",
        "minoredit": "Mindre ändring (m)",
        "watchthis": "Bevaka denna sida",
        "savearticle": "Spara sidan",
+       "savechanges": "Spara ändringar",
        "publishpage": "Publicera sida",
+       "publishchanges": "Publicera ändringar",
        "preview": "Förhandsgranska",
        "showpreview": "Visa förhandsgranskning",
        "showdiff": "Visa ändringar",
        "content-model-css": "CSS",
        "content-json-empty-object": "Tomt objekt",
        "content-json-empty-array": "Tomt fält",
+       "deprecated-self-close-category": "Sidor som använder ogiltiga självstängda HTML-taggar",
+       "deprecated-self-close-category-desc": "Sidan använder ogiltiga självstängda HTML-taggar, som <code>&lt;b/></code> eller <code>&lt;span/></code>.  Beteendet för dessa kommer snart att ändras för att bli konsistent med HTML5-specifikationen, så dessa anses vara för föråldrade för att använda i wikitext.",
        "duplicate-args-warning": "<strong>Varning:</strong> [[:$1]] anropar [[:$2]] med mer än ett värde för parametern \"$3\". Endast det sista värdet kommer att användas.",
        "duplicate-args-category": "Sidor som använder upprepade argument i mallanrop",
        "duplicate-args-category-desc": "Sidan innehåller mallanrop som använder repeterade argument, så som <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> eller <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "rightslogtext": "Detta är en logg över ändringar av användares rättigheter.",
        "action-read": "läs denna sida",
        "action-edit": "redigera denna sida",
-       "action-createpage": "skapa sidor",
-       "action-createtalk": "skapa diskussionssidor",
+       "action-createpage": "skapa denna sida",
+       "action-createtalk": "skapa den här diskussionssidan",
        "action-createaccount": "skapa detta användarkonto",
        "action-autocreateaccount": "skapa detta externa användarkonto automatiskt",
        "action-history": "visa historiken för denna sida",
        "upload-http-error": "Ett HTTP-fel uppstod: $1",
        "upload-copy-upload-invalid-domain": "Uppladdning av kopior är inte tillgängligt från denna domän.",
        "upload-foreign-cant-upload": "Denna wiki är inte konfigurerad för att ladda upp filer till det begärda externa filförvaret.",
+       "upload-foreign-cant-load-config": "Misslyckades att läsa in konfigurationen för filuppladdningar till det externa filförvaret.",
+       "upload-dialog-disabled": "Filuppladdningar med denna dialogruta har inaktiverats på denna wiki.",
        "upload-dialog-title": "Ladda upp fil",
        "upload-dialog-button-cancel": "Avbryt",
        "upload-dialog-button-done": "Klar",
        "uploadnewversion-linktext": "Ladda upp en ny version av denna fil",
        "shared-repo-from": "från $1",
        "shared-repo": "en gemensam filförvaring",
+       "shared-repo-name-wikimediacommons": "Wikimedia Commons",
        "filepage.css": "/* CSS som skrivs här inkluderas på filbeskrivningssidan, även på utländska klientwikis */",
        "upload-disallowed-here": "Du kan inte skriva över denna fil.",
        "filerevert": "Återställ $1",
        "apisandbox": "API-sandlåda",
        "apisandbox-jsonly": "JavaScript krävs för att använda API-sandlådan.",
        "apisandbox-api-disabled": "API är inaktiverat på denna webbplats.",
-       "apisandbox-intro": "Använd den här sidan för att experimentera med <strong>MediaWikis API för webbtjänster</strong>.\nSe [[mw:API:Main page|API-dokumentationen]] för ytterligare detaljer kring API-användningen. Exempel: [//www.mediawiki.org/wiki/API#A_simple_example få innehållet från en huvudsida]. Välj en handling för att se fler exempel.\n\nObservera att även om detta är en sandlåda kan handlingar du utför på denna sida påverka wikin.",
+       "apisandbox-intro": "Använd den här sidan för att experimentera med <strong>MediaWikis API för webbtjänster</strong>.\nSe [[mw:API:Main page|API-dokumentationen]] för ytterligare detaljer kring API-användningen. Exempel: [https://www.mediawiki.org/wiki/API#A_simple_example få innehållet från en huvudsida]. Välj en handling för att se fler exempel.\n\nObservera att även om detta är en sandlåda kan handlingar du utför på denna sida påverka wikin.",
        "apisandbox-fullscreen": "Utvidga panel",
        "apisandbox-fullscreen-tooltip": "Utvidga sandlådspanelen för att fylla webbläsarens fönster.",
        "apisandbox-unfullscreen": "Visa sida",
        "sp-contributions-username": "IP-adress eller användarnamn:",
        "sp-contributions-toponly": "Visa endast aktuella sidversioner",
        "sp-contributions-newonly": "Visa endast redigeringar där sidor skapas",
+       "sp-contributions-hideminor": "Dölj mindre ändringar",
        "sp-contributions-submit": "Sök",
        "whatlinkshere": "Vad som länkar hit",
        "whatlinkshere-title": "Sidor som länkar till \"$1\"",
        "allmessagesname": "Namn",
        "allmessagesdefault": "Standardtext",
        "allmessagescurrent": "Nuvarande text",
-       "allmessagestext": "Detta är en lista över alla meddelanden i namnrymden MediaWiki.\nBesök [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] eller [//translatewiki.net translatewiki.net] om du vill bidra till översättningen av MediaWiki.",
+       "allmessagestext": "Detta är en lista över alla meddelanden i namnrymden MediaWiki.\nBesök [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] eller [https://translatewiki.net translatewiki.net] om du vill bidra till översättningen av MediaWiki.",
        "allmessagesnotsupportedDB": "Den här sidan kan inte användas eftersom '''$wgUseDatabaseMessages''' är avstängd.",
        "allmessages-filter-legend": "Filtrera",
        "allmessages-filter": "Filtrera efter anpassningsgrad:",
        "mw-widgets-dateinput-placeholder-month": "ÅÅÅÅ-MM",
        "mw-widgets-titleinput-description-new-page": "sidan existerar inte ännu",
        "mw-widgets-titleinput-description-redirect": "omdirigerar till $1",
-       "api-error-blacklisted": "Välj en annan beskrivande titel.",
        "sessionmanager-tie": "Kan inte kombinera flera begäransautentiseringstyper: $1.",
        "sessionprovider-generic": "$1-sessioner",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "cookiebaserade sessioner",
        "log-action-filter-newusers": "Typ av kontoskapande:",
        "log-action-filter-patrol": "Typ av patrullering:",
        "log-action-filter-protect": "Typ av skydd:",
-       "log-action-filter-rights": "Typ av rättighetsändring",
-       "log-action-filter-suppress": "Censurtyp",
+       "log-action-filter-rights": "Typ av rättighetsändring:",
+       "log-action-filter-suppress": "Censurtyp:",
        "log-action-filter-upload": "Typ av uppladdning:",
        "log-action-filter-all": "Alla",
        "log-action-filter-block-block": "Blockering",
        "cannotauth-not-allowed-title": "Tillgång nekad",
        "cannotauth-not-allowed": "Du har inte behörighet att använda denna sida",
        "changecredentials": "Ändra inloggningsuppgifter",
-       "changecredentials-submit": "Ändra",
-       "changecredentials-submit-cancel": "Avbryt",
+       "changecredentials-submit": "Ändra inloggningsuppgifter",
        "changecredentials-invalidsubpage": "$1 är inte en giltig typ av inloggningsuppgift.",
        "changecredentials-success": "Dina inloggningsuppgifter har ändrats.",
        "removecredentials": "Ta bort inloggningsuppgifter",
-       "removecredentials-submit": "Ta bort",
-       "removecredentials-submit-cancel": "Avbryt",
+       "removecredentials-submit": "Ta bort inloggningsuppgifter",
        "removecredentials-invalidsubpage": "$1 är inte en giltig typ av inloggningsuppgift.",
        "removecredentials-success": "Dina inloggningsuppgifter har tagits bort.",
        "credentialsform-provider": "Typ av inloggningsuppgifter:",
        "linkaccounts-success-text": "Kontot länkades.",
        "linkaccounts-submit": "Länka konton",
        "unlinkaccounts": "Avlänka konton",
-       "unlinkaccounts-success": "Kontot avlänkades."
+       "unlinkaccounts-success": "Kontot avlänkades.",
+       "authenticationdatachange-ignored": "Ändringen av autentiseringsdata hanterades inte. Kanske ingen tillhandahållare har konfigurerats?"
 }
index d47434e..6ab227a 100644 (file)
        "protectedpagetext": "Ukurasa huu umefungwa ili kuepuka uhariri na matendo mengine.",
        "viewsourcetext": "Unaweza kutazama na kuiga chanzo cha ukurasa huu:",
        "viewyourtext": "Unaweza kutazama na kunakili chanzo cha ''maharirio yako'' katika ukurasa huu:",
-       "protectedinterface": "Ukurasa huu unatoa maelezo ya msingi ya bidhaa pepe, na pia umefungwa ili kuzuiya uharibifu.\n\nKuongeza au kubadili tafsiri za wiki zote, tafadhali tumia [//translatewiki.net/ translatewiki.net],mradi wa kurafsiri wa MediaWiki.",
+       "protectedinterface": "Ukurasa huu unatoa maelezo ya msingi ya bidhaa pepe, na pia umefungwa ili kuzuiya uharibifu.\n\nKuongeza au kubadili tafsiri za wiki zote, tafadhali tumia [https://translatewiki.net/ translatewiki.net],mradi wa kurafsiri wa MediaWiki.",
        "editinginterface": "<strong>Ilani</strong> Unahariri ukurasa unaotumika kutoa maelezo ya msingi ya bidhaa pepe.\nMabadiliko katika ukurasa huu yataathiri mwonekano mzima wa viungo vya watumiaji wengine.",
-       "translateinterface": "Kuongeza au kubadilisha tafsiri ya wiki yote, tafadhali tumia [//translatewiki.net/ translatewiki.net],mradi wa kutafsiri wa MediaWiki.",
+       "translateinterface": "Kuongeza au kubadilisha tafsiri ya wiki yote, tafadhali tumia [https://translatewiki.net/ translatewiki.net],mradi wa kutafsiri wa MediaWiki.",
        "cascadeprotected": "Ukurasa huu umekingwa usihaririwe, kwa sababu umejumlishwa katika {{PLURAL:$1|ukurasa ufuatao, ambao umekingwa|kurasa zifuatazo, ambazo zimekingwa}} na chagua la \"cascadi\" iliwashwa:\n$2",
        "namespaceprotected": "Huna ruhusa ya kuhariri kurasa za eneo la wiki la '''$1'''.",
        "customcssprotected": "Huna ruksa ya kuhariri ukurasa huu wa CSS, kwa sababu una mapendekezo ya binafsi ya mtumiaji mwingine.",
        "resetpass-temp-password": "Neno la siri la muda:",
        "resetpass-abort-generic": "Mabadiliko ya neno la siri la imekomeshwa na ugani.",
        "resetpass-expired": "Neno lako la siri limekwisha muda wake. Tafadhali weka neno la siri lipya kuingia.",
-       "resetpass-expired-soft": "Neno lako la siri kwisha muda wake na haja ya kuwa kuseti upya. Tafadhali chagua neno la siri lipya, au bofya \"{{int:resetpass-submit-cancel}}\" kuseti upya tena.",
-       "resetpass-validity-soft": "Neno lako la siri sio halai: $1\n\nTafadhali chagua neno lipya la siri sasa, au ubonyeze  \"{{int:resetpass-submit-cancel}}\" kuseti upya baadaye",
+       "resetpass-expired-soft": "Neno lako la siri kwisha muda wake na haja ya kuwa kuseti upya. Tafadhali chagua neno la siri lipya, au bofya \"{{int:authprovider-resetpass-skip-label}}\" kuseti upya tena.",
+       "resetpass-validity-soft": "Neno lako la siri sio halai: $1\n\nTafadhali chagua neno lipya la siri sasa, au ubonyeze  \"{{int:authprovider-resetpass-skip-label}}\" kuseti upya baadaye",
        "passwordreset": "Seti upya neno la siri",
        "passwordreset-text-one": "Jaza fomu hii kupokea neno la siri la muda kupitia barua pepe.",
        "passwordreset-text-many": "{{PLURAL:$1|Jaza katika moja ya mashamba kupokea neno la siri la muda kupitia barua pepe.}}",
        "allmessagesname": "Jina",
        "allmessagesdefault": "Ujumbe uliopo bidhaa pepe",
        "allmessagescurrent": "Ujumbe unapo sasa hivi",
-       "allmessagestext": "Hii ni orodha ya jumbe za mfumo zilizopo katika eneo la MediaWiki.\nUkitaka kusaidia kazi ya kutohoa MediaWiki yote katika lugha nyingi, tafadhali uende tovuti ya [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Kutohoa MediaWiki Kwenye Lugha Nyingi] na [//translatewiki.net translatewiki.net].",
+       "allmessagestext": "Hii ni orodha ya jumbe za mfumo zilizopo katika eneo la MediaWiki.\nUkitaka kusaidia kazi ya kutohoa MediaWiki yote katika lugha nyingi, tafadhali uende tovuti ya [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Kutohoa MediaWiki Kwenye Lugha Nyingi] na [https://translatewiki.net translatewiki.net].",
        "allmessagesnotsupportedDB": "Ukurasa huu hauwezi kutumika kwa sababu '''$wgUseDatabaseMessages''' imelemazwa.",
        "allmessages-filter-legend": "Chuja",
        "allmessages-filter": "Zichujwe kwa hali ya kutengenezwa:",
index 23b272e..c595457 100644 (file)
        "protectedpagetext": "Ta zajta je zawarto przed sprowjańym.",
        "viewsourcetext": "We tekst zdrzůduowy tyj zajty możno dali filować, idźe go tyż kopjyrować.",
        "viewyourtext": "We tekst zdrzůduowy tyj zajty możno dali filować, idźe go tyż kopjować.",
-       "protectedinterface": "Na tyj zajće znojduje śe tekst interfejsu uoprogramowańo, bestůż uůna je zawarto uod sprowjańo. Coby doćepnůńć abo sprowjić tůmaczyńa wszyskich serwerůw, użyj [//translatewiki.net/ translatewiki.net], průjyktu lokalizacyji MediaWiki.",
-       "editinginterface": "''''Dej pozůr:''' Sprowjosz zajta, na keryj je tekst interfejsu uoprogramowańo. Pomjyńyńa na tyj zajće zmjyńům wyglůnd interfejsu lo inkszych użytkowńikůw. Coby doćepnůńć abo sprowjić tůmaczyńa, użyj [//translatewiki.net/wiki/Main_Page?setlang=szl translatewiki.net].",
+       "protectedinterface": "Na tyj zajće znojduje śe tekst interfejsu uoprogramowańo, bestůż uůna je zawarto uod sprowjańo. Coby doćepnůńć abo sprowjić tůmaczyńa wszyskich serwerůw, użyj [https://translatewiki.net/ translatewiki.net], průjyktu lokalizacyji MediaWiki.",
+       "editinginterface": "''''Dej pozůr:''' Sprowjosz zajta, na keryj je tekst interfejsu uoprogramowańo. Pomjyńyńa na tyj zajće zmjyńům wyglůnd interfejsu lo inkszych użytkowńikůw. Coby doćepnůńć abo sprowjić tůmaczyńa, użyj [https://translatewiki.net/wiki/Main_Page?setlang=szl translatewiki.net].",
        "cascadeprotected": "Ta zajta je zawarto uod sprowjańo, po takymu, co uůna je załůnczůno na {{PLURAL:$1|nastympujůncyj zajće, kero zostoła zawarto|nastympujůncych zajtach, kere zostoły zawarte}} ze załůnczůnům uopcyjům dźedźiczyńo:\n$2",
        "namespaceprotected": "Ńy mosz uprowńyń, coby sprowjać zajty we raumje mjan '''$1'''.",
        "customcssprotected": "Ńy mosz uprawńyń do sprowjańo tyj zajty, bo na ńij sům uosobiste sztalowańo inkszego użytkowńika.",
        "allmessagesname": "Mjano",
        "allmessagesdefault": "Tekst důmyślny",
        "allmessagescurrent": "Tekst uobecny",
-       "allmessagestext": "Uoto lista wšyjstkych kůmůńikatůw systymowych dostympnych w přestřyńi mjan MedjaWiki.\nUodwjydź [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Tuůmačyńy MediaWiki] a tyž [//translatewiki.net translatewiki.net] kejbyś chćou učestńičyć w tuůmačyńu uoprůgramowańo MediaWiki.",
+       "allmessagestext": "Uoto lista wšyjstkych kůmůńikatůw systymowych dostympnych w přestřyńi mjan MedjaWiki.\nUodwjydź [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Tuůmačyńy MediaWiki] a tyž [https://translatewiki.net translatewiki.net] kejbyś chćou učestńičyć w tuůmačyńu uoprůgramowańo MediaWiki.",
        "allmessagesnotsupportedDB": "Ta zajta ńy može być užyta, bez tůž co zmjynna '''$wgUseDatabaseMessages''' je wůuůnčůno.",
        "thumbnail-more": "Zwjynksz",
        "filemissing": "Njy mo pliku",
index 8ca8832..ccd1f6c 100644 (file)
        "protectedpagetext": "இப்பக்கம் தொகுக்கப்படுவதையோ அல்லது பிற செயல்களைத் தவிர்ப்பதற்காகவோ பூட்டப்பட்டுள்ளது.",
        "viewsourcetext": "நீங்கள் இந்தப் பக்கத்தின் மூலத்தைப் பார்க்கவும் அதனை நகலெடுக்கவும் முடியும்:",
        "viewyourtext": "நீங்கள் இந்த பக்கத்திற்கான ''' உங்கள் திருத்தங்களுக்கான ''' மூலத்தைக் காணவும்  நகலெடுக்கவும் முடியும்.",
-       "protectedinterface": "இப்பக்கம் இம்மென் பொருளுக்கான பயனர் இடைமுக உரைகளை வழங்குகிறது, விசம தொகுப்புக்களை தவிர்ப்பதற்க்காக இப்பக்கம் பூட்டப்பட்டுள்ளது.\nஅனைத்து விக்கியிலும் மொழிபெயர்ப்பைச் சேர்க்க அல்லது மாற்ற, தயவு செய்து [//translatewiki.net/ translatewiki.net], மீடியா விக்கியின் தன்மொழியாக்க திட்டம் பயன்படுத்துங்கள்.",
+       "protectedinterface": "இப்பக்கம் இம்மென் பொருளுக்கான பயனர் இடைமுக உரைகளை வழங்குகிறது, விசம தொகுப்புக்களை தவிர்ப்பதற்க்காக இப்பக்கம் பூட்டப்பட்டுள்ளது.\nஅனைத்து விக்கியிலும் மொழிபெயர்ப்பைச் சேர்க்க அல்லது மாற்ற, தயவு செய்து [https://translatewiki.net/ translatewiki.net], மீடியா விக்கியின் தன்மொழியாக்க திட்டம் பயன்படுத்துங்கள்.",
        "editinginterface": "<strong>எச்சரிக்கை:</strong>நீங்கள் இம்மென் பொருளுக்கான பயனர் இடைமுக உரைகளை வழங்கும் பக்கமொன்றை தொகுக்க முயற்சி செய்கிறீர்கள். இதில் செய்யப்படும் மாற்றங்கள் ஏனைய பயனர்களது பயனர் இடைமுகங்களிலும் மாற்றங்களை ஏற்படுத்தும்.",
-       "translateinterface": "அனைத்து விக்கிகளிலும் மொழிபெயர்ப்பு சேர்க்க அல்லது மாற்ற, தயவு செய்து மீடியா விக்கி மொழிபெயர்ப்பு திட்டமான [//translatewiki.net/ translatewiki.net] ஐ பயன்படுத்துங்கள்.",
+       "translateinterface": "அனைத்து விக்கிகளிலும் மொழிபெயர்ப்பு சேர்க்க அல்லது மாற்ற, தயவு செய்து மீடியா விக்கி மொழிபெயர்ப்பு திட்டமான [https://translatewiki.net/ translatewiki.net] ஐ பயன்படுத்துங்கள்.",
        "cascadeprotected": "படிநிலைக் காப்புக்குட்படுத்தப்பட்டுள்ள பின்வரும் {{PLURAL:$1|பக்கத்தில்|பக்கங்களில்}} இப்பக்கம் இணைக்கப் பட்டுள்ளமையால் இப்பக்கம் தொகுப்பதிலிருந்து காக்கப்பட்டுள்ளது:$2",
        "namespaceprotected": "'''$1''' பெயர்வெளியில் தொகுப்புக்களைச் செய்வதற்கு உங்களுக்கு அனுமதி கிடையாது.",
        "customcssprotected": "வேறு பயனர் ஒருவரின் தனிப்பட்ட அமைப்புகள் காணப்படுவதால் இப்பக்கத்தை தொகுக்க உங்களுக்கு அனுமதி கிடையாது.",
        "resetpass-temp-password": "தற்காலிக கடவுச்சொல்:",
        "resetpass-abort-generic": "ஒரு இணைப்பின் கடவுச்சொல் மாற்றுதல் நிறுத்தப்பட்டது.",
        "resetpass-expired": "உங்கள் கடவுச்சொல் காலாவதியாகிவிட்டது. உள்நுழைய ஒரு புதிய கடவுச்சொல்லை தெரிவுசெய்யவும்.",
-       "resetpass-expired-soft": "உங்கள் கடவுச்சொல் காலாவதியானது மற்றும் புதிய கடவுச்சொல் உருவாக்க வேண்டும். தயவு செய்து புதிய கடவுச்சொல்லை இப்போதே தேர்ந்தெடுங்கள், அல்லது பின்னர் மாற்ற \"{{int:resetpass-submit-cancel}}\" அழுத்துங்கள்.",
-       "resetpass-validity-soft": "உங்கள் கடவுச்சொல் செல்லாதது: $1\n\nஇப்போதே புதிய கடவுச்சொல் தேர்ந்தெடுங்கள், அல்லது பின்னர் மாற்ற \"{{int:resetpass-submit-cancel}}\" அழுத்துங்கள்.",
+       "resetpass-expired-soft": "உங்கள் கடவுச்சொல் காலாவதியானது மற்றும் புதிய கடவுச்சொல் உருவாக்க வேண்டும். தயவு செய்து புதிய கடவுச்சொல்லை இப்போதே தேர்ந்தெடுங்கள், அல்லது பின்னர் மாற்ற \"{{int:authprovider-resetpass-skip-label}}\" அழுத்துங்கள்.",
+       "resetpass-validity-soft": "உங்கள் கடவுச்சொல் செல்லாதது: $1\n\nஇப்போதே புதிய கடவுச்சொல் தேர்ந்தெடுங்கள், அல்லது பின்னர் மாற்ற \"{{int:authprovider-resetpass-skip-label}}\" அழுத்துங்கள்.",
        "passwordreset": "கடவுச்சொல்லை மீட்டமை",
        "passwordreset-text-one": "உங்கள் கடவுச்சொல்லை மீட்டமைக்க இந்த படிவத்தை நிறைவு செய்க.",
        "passwordreset-text-many": "{{PLURAL:$1|உங்கள் கடவுச்சொல்லை மீட்டமைக்க புலங்கள் ஒன்றினை நிரப்பவும்.}}",
        "sp-contributions-blocked-notice-anon": "இந்த IP முகவரி தற்போது தடுக்கப்பட்டுள்ளது.\nசமீபத்திய தடுப்பு குறிப்பேடு  கீழே குறிப்பிற்காக வழங்கப்பட்டுள்ளது :",
        "sp-contributions-search": "பங்களிப்புகளைத் தேடு",
        "sp-contributions-username": "ஐ.பி. அல்லது பயனர் பெயர்:",
-       "sp-contributions-toponly": "சமீபத்திய பரிசீலனைகளுக்குட்பட்ட  திருத்தங்களை மட்டும் காண்பி",
-       "sp-contributions-newonly": "பக்க உருவாக்க திருத்தங்களை மட்டும் காட்டு",
+       "sp-contributions-toponly": "சமீபத்திய மாற்றமைவுத் திருத்தங்கள் மட்டும்",
+       "sp-contributions-newonly": "பக்க உருவாக்கங்கள் மட்டும்",
+       "sp-contributions-hideminor": "சிறு தொகுப்புக்களை மறை",
        "sp-contributions-submit": "தேடுக",
        "whatlinkshere": "இப்பக்கத்தை இணைத்தவை",
        "whatlinkshere-title": "\"$1\" பக்கத்துக்கு இணைக்கப்பட்டவை",
        "allmessagesname": "பெயர்",
        "allmessagesdefault": "இயல்பிருப்பு உரை",
        "allmessagescurrent": "தற்போதைய உரை",
-       "allmessagestext": "இது மீடியாவிக்கி பெயர்வெளியிலுள்ள எல்லா முறைமை தகவல்களினதும் பட்டியலாகும்.\nமொழிபெயர்ப்பில் உதவ விரும்பின் அருள்கூர்ந்து [//translatewiki.net பீட்டாவிக்கி], [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation மீடியாவிக்கி மொழியாக்க]  தளங்களுக்குச் செல்லவும்.",
+       "allmessagestext": "இது மீடியாவிக்கி பெயர்வெளியிலுள்ள எல்லா முறைமை தகவல்களினதும் பட்டியலாகும்.\nமொழிபெயர்ப்பில் உதவ விரும்பின் அருள்கூர்ந்து [https://translatewiki.net பீட்டாவிக்கி], [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation மீடியாவிக்கி மொழியாக்க]  தளங்களுக்குச் செல்லவும்.",
        "allmessagesnotsupportedDB": "'''$wgUseDatabaseMessages''' முடக்கப்பட்டுள்ளப் படியால் இப்பக்கததை பயன்படுத்த முடியாது.",
        "allmessages-filter-legend": "வடிகட்டி",
        "allmessages-filter": "தனிப்பயனாக்கத்தின்படி வடிகட்டு.",
        "markaspatrolleddiff": "ரோந்திட்டதாக குறி",
        "markaspatrolledtext": "இதனை சுற்றுக்காவல் செய்ததாகக் குறி",
        "markaspatrolledtext-file": "இக்கோப்பு பதிப்பினை ரோந்திட்டதாக குறி",
-       "markedaspatrolled": "à®°à¯\8bநà¯\8dதிà®\9fà¯\8dà®\9fதாà®\95 குறிக்கப்பட்டது",
+       "markedaspatrolled": "à®\9aà¯\81à®±à¯\8dà®±à¯\81à®\95à¯\8dà®\95ாவலà¯\8d à®\9aà¯\86யà¯\8dததாà®\95à®\95à¯\8d குறிக்கப்பட்டது",
        "markedaspatrolledtext": "தெரிவு செய்யப்பட்டத் திருத்தம் [[:$1]]  பார்வையிட்டதாக குறிக்கப்பட்டுள்ளது.",
        "rcpatroldisabled": "அண்மைய மாற்றங்களின் ரோந்து முடக்கப்பட்டுள்ளது",
        "rcpatroldisabledtext": "அண்மைய மாற்றங்களின் ரோந்து தற்காலிகமாக முடக்கப்பட்டுள்ளது.",
        "mw-widgets-dateinput-no-date": "திகதி தெரிவுச் செய்யப்படவில்லை",
        "mw-widgets-titleinput-description-new-page": "இப்பக்கம் இன்னும் உருவாக்கப்படவில்லை",
        "mw-widgets-titleinput-description-redirect": "$1-க்கு வழிமாற்று",
-       "api-error-blacklisted": "தயவுகூர்ந்து வேறு, விளக்கமான தலைப்பைத் தேர்ந்தெடுக்கவும்.",
        "sessionprovider-generic": "$1 பகுதி",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "குக்கீயை அடிபடையாக்கக் கொண்ட பகுதிகள்",
        "sessionprovider-nocookies": "குக்கீசு செயலற்று இருக்கலாம். உங்களது குக்கீசு செயலில் உள்ளது என உறுதிப்படுத்திவிட்டு மீண்டும் முயல்க.",
index 583c560..8aece73 100644 (file)
        "protectedpagetext": "ಈ ಪುಟೊ ಸಂಪೊಲಿಪಂದಿನ ಲೆಕೊ ರಕ್ಸಣೆ ಆತ್ಂಡ್",
        "viewsourcetext": "ಈರ್ ಈ ಪುಟದ ಮೂಲನ್ ತೂವೊಲಿ ಬೊಕ್ಕ ನಕಲ್ ಮಲ್ಪೊಲಿ",
        "viewyourtext": "ಈರ್ ಈ ಪುಟೊದ ಮೂಲನ್ ತೂವೊಲಿ ಬೊಕ್ಕ ನಕಲ್ ಮಲ್ಪೊಲಿ <strong>ಈರೆನ ಸಂಪದನೆ</strong>",
-       "protectedinterface": "ಈ ಪುಟೊ ತಂತ್ರಾಂಸೊ ಉಪಯೋಗೊ ಮಲ್ಪುನ ಪಟ್ಯೊನ್ ಒದಗಿಸಾಪುಂಡ್. ದುರುಪಯೋಗ ಅವಂದಿಲೆಕ್ಕ ಇದೆನ್ ರಕ್ಷಣೆ ಮಲ್ಪುಲೆ.\nಮಾತ ವಿಕಿಲೆಗ್ ಬಾಸಾಂತರೊನು ಕೂಡಯೆರೆ ಅಂಚನೆ ಬದಲ್ಪೆರೆ, [//translatewiki.net/ translatewiki.net], the MediaWiki localisation ಯೋಜನೆನ್ ಉಪಯೊಗಿಸಲೆ\nಕನ್ನಡ",
+       "protectedinterface": "ಈ ಪುಟೊ ತಂತ್ರಾಂಸೊ ಉಪಯೋಗೊ ಮಲ್ಪುನ ಪಟ್ಯೊನ್ ಒದಗಿಸಾಪುಂಡ್. ದುರುಪಯೋಗ ಅವಂದಿಲೆಕ್ಕ ಇದೆನ್ ರಕ್ಷಣೆ ಮಲ್ಪುಲೆ.\nಮಾತ ವಿಕಿಲೆಗ್ ಬಾಸಾಂತರೊನು ಕೂಡಯೆರೆ ಅಂಚನೆ ಬದಲ್ಪೆರೆ, [https://translatewiki.net/ translatewiki.net], the MediaWiki localisation ಯೋಜನೆನ್ ಉಪಯೊಗಿಸಲೆ\nಕನ್ನಡ",
        "ns-specialprotected": "ವಿಶೇಷ ಪುಟ‘ಕ್‘ಲೆನ್ ಸಂಪಾದನೆ ಮಲ್ಪರೆ ಆಪುಜಿ",
        "exception-nologin": "ಲಾಗಿನ್ ಆತ್‘ಜ್ಜರ್",
        "logouttext": "<strong>ಈರ್ ಇತ್ತೆ ಲಾಗ್ ಔಟ್ ಆತರ್</strong>\nಗಮನಿಸಲೆ ಈರೆನ ಬ್ರೌಸರ್‍ದ cacheನ್ ದೆತ್ತ ಪಾಡುನೆಟ ಮುಟ್ಟೊ ಕೆಲವು ಪುಟೊಲು ಈರ್ ನಾನಲ ಲಾಗ್ ಇನ್ ಆದಿಪ್ಪುಂಚ ತೋಜುಂಡು.",
        "minoredit": "ಉಂದು ಎಲ್ಯ ಬದಲಾವಣೆ",
        "watchthis": "ಈ ಪುಟೊನು ತೂಲೆ",
        "savearticle": "ಪುಟೊನು ಒರಿಪಾಲೆ",
+       "savechanges": "ಬದಲಾವಣೆನ್ ಒರಿಪಾಲೇ",
        "publishpage": "ಪುಟೋನು ಪ್ರಕಟಿಸಲೇ",
+       "publishchanges": "ಬದಲಾವಣೆನ್ ತೋಜಾಲೇ",
        "preview": "ಮುನ್ನೋಟ",
        "showpreview": "ಮುನ್ನೋಟೊ ತೋಜಾವು",
        "showdiff": "ಬದಲಾವಣೆಲೆನ್ ತೋಜಾವ್",
index ad0cd23..86290ea 100644 (file)
        "protectedpagetext": "ఈ పేజీలో మార్పులు వగైరాలు చెయ్యకుండా ఉండేందుకు గాను, సంరక్షించబడింది.",
        "viewsourcetext": "మీరీ పేజీ సోర్సును చూడవచ్చు, కాపీ చేసుకోవచ్చు:",
        "viewyourtext": "ఈ పేజీలోని <strong>మీ మార్పుల</strong> యొక్క మూలాన్ని చూడవచ్చు, కాపీచేసుకోవచ్చు:",
-       "protectedinterface": "ఈ పేజీ, ఈ వికీ యొక్క సాఫ్టువేరు ఇంటరుఫేసుకు చెందిన టెక్స్టును అందిస్తుంది. దుశ్చర్యల నివారణ కోసమై దీన్ని సంరక్షించాం. వికీలన్నిటిలోను అనువాదాలను చేర్చాలన్నా, మార్చాలన్నా మీడియావికీ స్థానికీకరణ ప్రాజెక్టైన [//translatewiki.net/ translatewiki.net] ను వాడండి.",
+       "protectedinterface": "ఈ పేజీ, ఈ వికీ యొక్క సాఫ్టువేరు ఇంటరుఫేసుకు చెందిన టెక్స్టును అందిస్తుంది. దుశ్చర్యల నివారణ కోసమై దీన్ని సంరక్షించాం. వికీలన్నిటిలోను అనువాదాలను చేర్చాలన్నా, మార్చాలన్నా మీడియావికీ స్థానికీకరణ ప్రాజెక్టైన [https://translatewiki.net/ translatewiki.net] ను వాడండి.",
        "editinginterface": "<strong>హెచ్చరిక:</strong> సాఫ్టువేరుకు ఇంటరుఫేసు టెక్స్టును అందించేందుకు పనికొచ్చే పేజీని మీరు సరిదిద్దుతున్నారు.\nఈ పేజీలో చేసే మార్పుల వల్ల ఇతర వాడుకరులకు ఇంటరుఫేసు కనబడే విధానంలో తేడావస్తుంది.",
-       "translateinterface": "అన్ని వికీలలో కనిపించేలా అనువాదాలు చేర్చాలన్నా, మార్చాలన్నా, దయచేసి [//translatewiki.net/ translatewiki.net] ను వాడండి. ఇది మీడియావికీ స్థానికీకరణ ప్రాజెక్టు.",
+       "translateinterface": "అన్ని వికీలలో కనిపించేలా అనువాదాలు చేర్చాలన్నా, మార్చాలన్నా, దయచేసి [https://translatewiki.net/ translatewiki.net] ను వాడండి. ఇది మీడియావికీ స్థానికీకరణ ప్రాజెక్టు.",
        "cascadeprotected": "కింది {{PLURAL:$1|పేజీని|పేజీలను}} కాస్కేడింగు ఆప్షనుతో చేసి సంరక్షించారు. ప్రస్తుత పేజీ, ఈ పేజీల్లో ఇంక్లూడు అయి ఉంది కాబట్టి, దిద్దుబాటు చేసే వీలు లేకుండా ఇది కూడా రక్షణలో ఉంది.\n$2",
        "namespaceprotected": "'''$1''' నేంస్పేసులో మార్పులు చేయటానికి మీకు అనుమతి లేదు.",
        "customcssprotected": "ఈ CSS పేజీని మార్చేందుకు మీకు అనుమతి లేదు. ఎందుకంటే వేరే వాడుకరి యొక్క వ్యక్తిగత సెట్టింగులు అందులో ఉన్నాయి.",
        "resetpass-temp-password": "తాత్కాలిక సంకేతపదం:",
        "resetpass-abort-generic": "ఓ పొడిగింత (ఎక్స్టెన్‍షన్) సంకేతపదం మార్పిడిని ఆపేసింది.",
        "resetpass-expired": "మీ సంకేతపదానికి కాలం చెల్లింది. కొత్త సంకేతపదం ఇచ్చి లాగినవండి.",
-       "resetpass-expired-soft": "మీ సంకేతపదానికి కాలం చెల్లింది, కాబట్టి కొత్తది ఇవ్వాలి. కొత్తది ఇప్పుడే ఇవ్వండి లేదా \"{{int:resetpass-submit-cancel}}\" నొక్కి, తరువాత మార్చుకోండి.",
-       "resetpass-validity-soft": "మీ సంకేతపదానికి కాలం చెల్లింది:$1\nకొత్తది ఇప్పుడే ఇవ్వండి లేదా \"{{int:resetpass-submit-cancel}}\" నొక్కి, తరువాత మార్చుకోండి.",
+       "resetpass-expired-soft": "మీ సంకేతపదానికి కాలం చెల్లింది, కాబట్టి కొత్తది ఇవ్వాలి. కొత్తది ఇప్పుడే ఇవ్వండి లేదా \"{{int:authprovider-resetpass-skip-label}}\" నొక్కి, తరువాత మార్చుకోండి.",
+       "resetpass-validity-soft": "మీ సంకేతపదానికి కాలం చెల్లింది:$1\nకొత్తది ఇప్పుడే ఇవ్వండి లేదా \"{{int:authprovider-resetpass-skip-label}}\" నొక్కి, తరువాత మార్చుకోండి.",
        "passwordreset": "సంకేతపదాన్ని మార్చుకోండి",
        "passwordreset-text-one": "ఈమెయిలు ద్వారా తాత్కాలిక సంకేతపదాన్ని పొందేందుకు ఈ ఫారమును నింపండి.",
        "passwordreset-text-many": "{{PLURAL:$1|ఈమెయిలు ద్వారా తాత్కాలిక సంకేతపదాన్ని పొందేందుకు ఏదో ఒక ఫీల్డును నింపండి.Fill in one of the fields to receive a temporary password via email.}}",
        "allmessagesname": "పేరు",
        "allmessagesdefault": "అప్రమేయ సందేశపు పాఠ్యం",
        "allmessagescurrent": "ప్రస్తుత పాఠ్యం",
-       "allmessagestext": "మీడియావికీ పేరుబరిలో ఉన్న అంతరవర్తి సందేశాల జాబితా ఇది.\nసాధారణ మీడియావికీ స్థానికీకరణకి మీరు తోడ్పడాలనుకుంటే, దయచేసి [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation మీడియావికీ స్థానికీకరణ] మరియు [//translatewiki.net ట్రాన్స్&zwnj;లేట్&zwnj;వికీ.నెట్] సైట్లను చూడండి.",
+       "allmessagestext": "మీడియావికీ పేరుబరిలో ఉన్న అంతరవర్తి సందేశాల జాబితా ఇది.\nసాధారణ మీడియావికీ స్థానికీకరణకి మీరు తోడ్పడాలనుకుంటే, దయచేసి [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation మీడియావికీ స్థానికీకరణ] మరియు [https://translatewiki.net ట్రాన్స్&zwnj;లేట్&zwnj;వికీ.నెట్] సైట్లను చూడండి.",
        "allmessagesnotsupportedDB": "'''$wgUseDatabaseMessages''' అన్నది అచేతనం చేసి ఉన్నందువల్ల ఈ పేజీని వాడలేరు.",
        "allmessages-filter-legend": "వడపోత",
        "allmessages-filter": "కస్టమైజేషను స్థితిని బట్టి వడకట్టు:",
index 5687b5c..a224d42 100644 (file)
        "gotaccount": "Ó iha konta ona? '''$1'''.",
        "gotaccountlink": "Log in",
        "userexists": "Naran uza-na'in ne'e ona iha wiki.\nFavór ida lori naran seluk.",
-       "nosuchuser": "Konta uza-na'in (naran \"$1\") la iha.\nUser names are case sensitive.\nCheck your spelling, ka [[Special:UserLogin/signup|kria konta foun]].",
+       "nosuchuser": "Konta uza-na'in (naran \"$1\") la iha.\nUser names are case sensitive.\nCheck your spelling, ka [[Special:CreateAccount|kria konta foun]].",
        "nouserspecified": "Ó tenke espesífiku naran uza-na'in ida.",
        "accountcreated": "Registrar tiha uza-na'in",
        "loginlanguagelabel": "Lian: $1",
        "filedelete-reason-otherlist": "Motivu seluk",
        "filedelete-edit-reasonlist": "Edita lista motivu nian",
        "randompage": "Pájina ruma",
+       "randomincategory-submit": "Bá",
        "statistics": "Estatístika",
        "brokenredirects-edit": "edita",
        "brokenredirects-delete": "halakon",
        "allpagessubmit": "Bá",
        "allpagesprefix": "Hatudu pájina sira ho prefiksu:",
        "categories": "Kategoria sira",
-       "special-categories-sort-abc": "tau tuir alfabetu",
        "linksearch-ns": "Espasu pájina nian:",
        "linksearch-ok": "Buka",
        "listusers-submit": "Hatudu",
        "ipb_already_blocked": "Ema ruma blokeiu \"$1\" tiha ona",
        "move-page": "Book $1",
        "move-page-legend": "Book pájina",
-       "movearticle": "Book pájina:",
        "movenotallowed": "Ó la bele book pájina sira.",
        "newtitle": "Naran foun:",
        "move-watch": "Hateke pájina ne'e",
        "movetalk": "Book pájina diskusaun mós",
        "movelogpage": "Lista book",
        "movereason": "Motivu:",
-       "delete_and_move": "Halakon ho book",
        "delete_and_move_confirm": "Sin, halakon pájina",
        "export": "Esporta pájina sira",
        "export-submit": "Esporta",
index 6450ba1..f7826ab 100644 (file)
        "actionthrottledtext": "Ба манзури ҷилавгирӣ аз спам, шумо иҷоза надоред, ки чунин амалеро беш аз чанд бор дар як муддати замони кӯтоҳ анҷом бидиҳед. Лутфан пас аз чанд дақиқа дубора талош кунед.",
        "protectedpagetext": "Ин саҳифа барои ҷилавгирӣ аз вироиш ва дигар амалҳо қуфл шудааст.",
        "viewsourcetext": "Шумо метавонед матни викии ин саҳифаро назар кунед ё нусха бардоред:",
-       "protectedinterface": "Ин саҳифа ороишдиҳандаи матнӣ барои нармафзори ин вики аст, ва ба манзури пешгирӣ аз харобкорӣ қуфл шудааст.\nБарои изофа ё тағийри тарҷума барои ҳамаи викиҳо, лутфан аз [//translatewiki.net/ translatewiki.net], лоиҳаи тарҷумаи МедиаВики истифода баред.",
-       "editinginterface": "'''Огоҳӣ:''' Шумо саҳифаеро вироиш карда истодаед, ки матни интерфейс барои нармафзор мебошад. Тағйироти ин саҳифа барои намуди интерфейси дигар корбарон дар ин вики таъсир хоҳад расонид. Барои изофа ё тағийри тарҷумаҳои ҳамаи викиҳо, лутфан аз [//translatewiki.net/ translatewiki.net], лоиҳаи тарҷумаи МедиаВики истифода баред.",
+       "protectedinterface": "Ин саҳифа ороишдиҳандаи матнӣ барои нармафзори ин вики аст, ва ба манзури пешгирӣ аз харобкорӣ қуфл шудааст.\nБарои изофа ё тағийри тарҷума барои ҳамаи викиҳо, лутфан аз [https://translatewiki.net/ translatewiki.net], лоиҳаи тарҷумаи МедиаВики истифода баред.",
+       "editinginterface": "'''Огоҳӣ:''' Шумо саҳифаеро вироиш карда истодаед, ки матни интерфейс барои нармафзор мебошад. Тағйироти ин саҳифа барои намуди интерфейси дигар корбарон дар ин вики таъсир хоҳад расонид. Барои изофа ё тағийри тарҷумаҳои ҳамаи викиҳо, лутфан аз [https://translatewiki.net/ translatewiki.net], лоиҳаи тарҷумаи МедиаВики истифода баред.",
        "cascadeprotected": "Ин саҳифа аз вироиш муҳофизат шудааст, барои ин ки  дар {{PLURAL:$1|саҳифаи|саҳифаҳои}} муҳофизатшудаи зерин, ки гузаинаи \"обшорӣ\" дар {{PLURAL:$1|он|онҳо}} интихоб шудааст, фаро гирифтааст: $2",
        "namespaceprotected": "Шумо иҷозати вироиши саҳифаҳои фазоиноми '''$1'''-ро надоред.",
        "ns-specialprotected": "Саҳифаҳои вижа ғайри қобили вироиш ҳастанд.",
        "allmessagesname": "Ном",
        "allmessagesdefault": "Матни қарордодӣ",
        "allmessagescurrent": "Матни кунунӣ",
-       "allmessagestext": "Ин феҳристи паёмҳои системавии дастрас дар фазои номи MediaWiki мебошад.\nАгар майли ҳиссагузорӣ карданро ба маҳалликунонии MediaWiki доред, пас лутфан ба саҳифаҳои [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Маҳалликунонии MediaWiki] ва [//translatewiki.net translatewiki.net] гузаред.",
+       "allmessagestext": "Ин феҳристи паёмҳои системавии дастрас дар фазои номи MediaWiki мебошад.\nАгар майли ҳиссагузорӣ карданро ба маҳалликунонии MediaWiki доред, пас лутфан ба саҳифаҳои [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Маҳалликунонии MediaWiki] ва [https://translatewiki.net translatewiki.net] гузаред.",
        "allmessagesnotsupportedDB": "Аз ин саҳифа наметавон истифода бурд, чун '''$wgUseDatabaseMessages''' ғайрифаъол гардонида шудааст.",
        "allmessages-filter-legend": "Филтр",
        "allmessages-filter-unmodified": "Тағйирнаёфта",
        "expand_templates_remove_comments": "Ҳазфи тавзеҳот",
        "expand_templates_generate_xml": "Намоиши дарахти таҷзеҳи XML",
        "expand_templates_preview": "Пешнамоиш",
-       "randomrootpage": "Саҳифаи решавии тасодуфӣ"
+       "randomrootpage": "Саҳифаи решавии тасодуфӣ",
+       "changecredentials-submit": "Тағйири ҳисоби корбарӣ",
+       "removecredentials-submit": "Хориҷи эътиборнома"
 }
index d5c41c3..6340644 100644 (file)
        "allmessagesname": "Nom",
        "allmessagesdefault": "Matni qarordodī",
        "allmessagescurrent": "Matni kununī",
-       "allmessagestext": "In fehristi pajomhoi sistemaviji dastras dar fazoi nomi MediaWiki meboşad.\nAgar majli hissaguzorī kardanro ba mahallikunoniji MediaWiki dored, pas lutan sahifahoi [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Mahallikunoniji MediaWiki] va [//translatewiki.net translatewiki.net] nigared.",
+       "allmessagestext": "In fehristi pajomhoi sistemaviji dastras dar fazoi nomi MediaWiki meboşad.\nAgar majli hissaguzorī kardanro ba mahallikunoniji MediaWiki dored, pas lutan sahifahoi [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Mahallikunoniji MediaWiki] va [https://translatewiki.net translatewiki.net] nigared.",
        "allmessagesnotsupportedDB": "Az in sahifa nametavon istifoda burd, cun '''$wgUseDatabaseMessages''' ƣajrifa'ol gardonida şudaast.",
        "allmessages-filter-legend": "Filtr",
        "allmessages-filter-all": "Hama",
index 5c695df..23c10a3 100644 (file)
        "protectedpagetext": "หน้านี้ถูกล็อกเพื่อป้องกันการแก้ไขหรือปฏิบัติการอื่น",
        "viewsourcetext": "คุณสามารถดูและคัดลอกโค้ดของหน้านี้",
        "viewyourtext": "คุณสามารถดูและคัดลอกต้นฉบับ<strong>การแก้ไขของคุณ</strong>มาหน้านี้ได้",
-       "protectedinterface": "หน้านี้เป็นข้อความส่วนต่อประสานสำหรับซอฟต์แวร์บนวิกินี้ และถูกล็อกเพื่อป้องกันการกระทำผิด\nในการเพิ่มหรือเปลี่ยนแปลงการแปลสำหรับทุกวิกิ โปรดใช้ [//translatewiki.net/ translatewiki.net] โครงการแปลมีเดียวิกิเป็นภาษาถิ่น",
+       "protectedinterface": "หน้านี้เป็นข้อความส่วนต่อประสานสำหรับซอฟต์แวร์บนวิกินี้ และถูกล็อกเพื่อป้องกันการกระทำผิด\nในการเพิ่มหรือเปลี่ยนแปลงการแปลสำหรับทุกวิกิ โปรดใช้ [https://translatewiki.net/ translatewiki.net] โครงการแปลมีเดียวิกิเป็นภาษาถิ่น",
        "editinginterface": "<strong>คำเตือน:</strong> คุณกำลังแก้ไขหน้าที่ใช้จัดหาข้อความอินเตอร์เฟซให้ซอฟต์แวร์\nการเปลี่ยนแปลงหน้านี้จะมีผลต่อสภาพปรากฏของส่วนต่อประสานผู้ใช้แก่ผู้ใช้อื่นบนวิกินี้",
-       "translateinterface": "ในการเพิ่มหรือเปลี่ยนแปลงคำแปลสำหรับทุกวิกิ โปรดใช้ [//translatewiki.net/ translatewiki.net] โครงการแปลเป็นภาษาถิ่นของมีเดียวิกิ",
+       "translateinterface": "ในการเพิ่มหรือเปลี่ยนแปลงคำแปลสำหรับทุกวิกิ โปรดใช้ [https://translatewiki.net/ translatewiki.net] โครงการแปลเป็นภาษาถิ่นของมีเดียวิกิ",
        "cascadeprotected": "หน้านี้ถูกป้องกันมิให้แก้ไข เพราะถูกรวมอยู่ในหน้าต่อไปนี้ซึ่งถูกล็อกโดยเปิดตัวเลือก \"ต่อเรียง\":\n$2",
        "namespaceprotected": "คุณไม่มีสิทธิแก้ไขหน้าในเนมสเปซ <strong>$1</strong>",
        "customcssprotected": "คุณไม่มีสิทธิแก้ไขหน้า CSS นี้ เพราะมีการตั้งค่าส่วนบุคคลของผู้ใช้อื่น",
        "resetpass-temp-password": "รหัสผ่านชั่วคราว:",
        "resetpass-abort-generic": "การเปลี่ยนรหัสผ่านถูกส่วนขยายยกเลิก",
        "resetpass-expired": "รหัสผ่านของคุณหมดอายุแล้ว โปรดตั้งรหัสผ่านใหม่เพื่อล็อกอิน",
-       "resetpass-expired-soft": "รหัสผ่านของคุณหมดอายุแล้วและจำเป็นต้องตั้งใหม่ โปรดเลือกรหัสผ่านใหม่ขณะนี้ หรือคลิก \"{{int:resetpass-submit-cancel}}\" เพื่อตั้งใหม่ทีหลัง",
-       "resetpass-validity-soft": "รหัสผ่านของคุณไม่สมเหตุสมผล: $1\n\nโปรดเลือดรหัสผ่านใหม่ในขณะนี้ หรือคลิก \"{{int:resetpass-submit-cancel}}\" เพื่อตั้งใหม่ทีหลัง",
+       "resetpass-expired-soft": "รหัสผ่านของคุณหมดอายุแล้วและจำเป็นต้องตั้งใหม่ โปรดเลือกรหัสผ่านใหม่ขณะนี้ หรือคลิก \"{{int:authprovider-resetpass-skip-label}}\" เพื่อตั้งใหม่ทีหลัง",
+       "resetpass-validity-soft": "รหัสผ่านของคุณไม่สมเหตุสมผล: $1\n\nโปรดเลือดรหัสผ่านใหม่ในขณะนี้ หรือคลิก \"{{int:authprovider-resetpass-skip-label}}\" เพื่อตั้งใหม่ทีหลัง",
        "passwordreset": "ตั้งรหัสผ่านใหม่",
        "passwordreset-text-one": "กรอกแบบนี้เพื่อรับรหัสผ่านชั่วคราวโดยทางอีเมล",
        "passwordreset-text-many": "{{PLURAL:$1|กรอกเขตข้อมูลหนึ่งเพื่อรับรหัสผ่านชั่วคราวโดยทางอีเมล}}",
        "allmessagesname": "ชื่อ",
        "allmessagesdefault": "ข้อความตามค่าตั้งต้น",
        "allmessagescurrent": "ข้อความปัจจุบัน",
-       "allmessagestext": "นี่คือรายการข้อความของระบบที่อยู่ในเนมสเปซมีเดียวิกิ\nกรุณาอ่านหน้า[https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation เทศวิวัตน์ของมีเดียวิกิ] และ [//translatewiki.net translatewiki.net] ถ้าคุณอยากที่จะช่วยแปลข้อความของระบบมีเดียวิกิ",
+       "allmessagestext": "นี่คือรายการข้อความของระบบที่อยู่ในเนมสเปซมีเดียวิกิ\nกรุณาอ่านหน้า[https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation เทศวิวัตน์ของมีเดียวิกิ] และ [https://translatewiki.net translatewiki.net] ถ้าคุณอยากที่จะช่วยแปลข้อความของระบบมีเดียวิกิ",
        "allmessagesnotsupportedDB": "หน้านี้ไม่สามารถใช้งานได้เนื่องจาก '''$wgUseDatabaseMessages''' ถูกระงับการใช้งาน",
        "allmessages-filter-legend": "กรอง",
        "allmessages-filter": "กรองตามสถานะที่เลือก:",
index 7219a74..7ec316c 100644 (file)
        "protectedpagetext": "Bu sahypa redaktirlenmezligi üçin gulp astynda dur.",
        "viewsourcetext": "Bu sahypanyň çeşmesini görüp hem-de göçürip bilersiňiz:",
        "protectedinterface": "Bu sahypa programma üçin interfeýs tekstini üpjün edýär. Bet niýetli hüjümlerden goramak maksady bilen gulp astyna alnandyr.",
-       "editinginterface": "'''Duýduryş:''' Programma üçin interfeýs tekstini üpjün etmekte ulanylýan bir sahypany redaktirleýärsiňiz. Bu sahypada ediljek üýtgeşmeler beýleki ulanyjylar üçin ulanyjy interfeýsiniň daşky görnüşini üýtgedýändir. Terjimeler üçin, MediaWikiniň lokalizasiýa taslamasy bolan [//translatewiki.net/wiki/Main_Page?setlang=tr translatewiki.net]i ulanmaklygyňyzy haýyş edýäris.",
+       "editinginterface": "'''Duýduryş:''' Programma üçin interfeýs tekstini üpjün etmekte ulanylýan bir sahypany redaktirleýärsiňiz. Bu sahypada ediljek üýtgeşmeler beýleki ulanyjylar üçin ulanyjy interfeýsiniň daşky görnüşini üýtgedýändir. Terjimeler üçin, MediaWikiniň lokalizasiýa taslamasy bolan [https://translatewiki.net/wiki/Main_Page?setlang=tr translatewiki.net]i ulanmaklygyňyzy haýyş edýäris.",
        "cascadeprotected": "Bu sahypa redaktirlenmekden goralýar, sebäbi ol \"kaskadly\" opsiýasy işledilip gorag astyna alnan {{PLURAL:$1|sahypada|sahypada}} ulanylýar:\n$2",
        "namespaceprotected": "Siziň '''$1''' giňişligindäki sahypalary redaktirlemäge rugsadyňyz ýok.",
        "ns-specialprotected": "{{ns:special}} at giňişligindäki sahypalary redaktirläp bolmaýar.",
        "allmessagesname": "At",
        "allmessagesdefault": "Gaýybana habarlaşyk teksti",
        "allmessagescurrent": "Häzirki habarlaşyk teksti",
-       "allmessagestext": "Bu sanaw MediaWiki at giňişliginde bar bolan ulgam habarlaşyklarynyň sanawydyr.\nUmumy MediaWiki lokalizasiýasyna goşan goşmak isleýän bolsaňyz, [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki lokalizasiýasy] we [//translatewiki.net translatewiki.net] sahypalaryna baryp görmegiňizi haýyş edýäris.",
+       "allmessagestext": "Bu sanaw MediaWiki at giňişliginde bar bolan ulgam habarlaşyklarynyň sanawydyr.\nUmumy MediaWiki lokalizasiýasyna goşan goşmak isleýän bolsaňyz, [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki lokalizasiýasy] we [https://translatewiki.net translatewiki.net] sahypalaryna baryp görmegiňizi haýyş edýäris.",
        "allmessagesnotsupportedDB": "'''$wgUseDatabaseMessages''' ýapykdygy zerarly bu sahypany ulanyp bolmaýar.",
        "allmessages-filter-legend": "Filtr",
        "allmessages-filter": "Üýtgediş statusy boýunça filtr:",
index 670b022..115d81d 100644 (file)
        "protectedpagetext": "Kinandado ang pahinang ito upang mahadlangang ang pagbago o ibang aksyon.",
        "viewsourcetext": "Maaari mong tingnan at kopyahin ang pinagmulan ng pahinang ito:",
        "viewyourtext": "Matitingnan at makukopya mo ang pinagmulan ng '''mga pagbabago''' papunta sa pahinang ito:",
-       "protectedinterface": "Nagbibigay ang pahinang ito ng tekstong interface para sa software, at ikinandado para maiwasan ang pangaabuso.\nUpang dagdagan o baguhin ang mga salin para sa lahat ng mga wiki, pakigamit ang [//translatewiki.net/ translatewiki.net], ang proyekto para sa lokalisasyon ng MediaWiki.",
-       "editinginterface": "'''Babala:''' Binabago mo ang isang pahinang ginagamit sa pagbibigay ng tekstong panghangganan para sa sopwer.\nMakaaapekto ang mga pagbago sa pahinang ito sa anyo ng hangganang (''interface'') pantagagamit na para sa ibang mga tagagamit sa wiking ito.\nUpang magdagag o magbago ng mga salinwika, isaaalang-alang na lang po ang paggamit ng [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], ang proyekto para sa lokalisasyon ng MediaWiki.",
+       "protectedinterface": "Nagbibigay ang pahinang ito ng tekstong interface para sa software, at ikinandado para maiwasan ang pangaabuso.\nUpang dagdagan o baguhin ang mga salin para sa lahat ng mga wiki, pakigamit ang [https://translatewiki.net/ translatewiki.net], ang proyekto para sa lokalisasyon ng MediaWiki.",
+       "editinginterface": "'''Babala:''' Binabago mo ang isang pahinang ginagamit sa pagbibigay ng tekstong panghangganan para sa sopwer.\nMakaaapekto ang mga pagbago sa pahinang ito sa anyo ng hangganang (''interface'') pantagagamit na para sa ibang mga tagagamit sa wiking ito.\nUpang magdagag o magbago ng mga salinwika, isaaalang-alang na lang po ang paggamit ng [https://translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], ang proyekto para sa lokalisasyon ng MediaWiki.",
        "cascadeprotected": "Nakasanggalang ang pahinang ito mula sa mga pagbabago, dahil kabilang ito sa sumusunod na {{PLURAL:$1|pahinang|mga pahinang}} nakasanggalang sa pamamagitan ng binuhay na opsyong \"nahuhulog\" (kumakaskada):\n$2",
        "namespaceprotected": "Wala kang pahintulot na magbago ng mga pahinang nasa ngalan-espasyong '''$1'''.",
        "customcssprotected": "Wala kang pahintulot na baguhin ang pahina ng CSS na ito, dahil naglalaman ito ng mga katakdaang pansarili ng ibang tagagamit.",
        "resetpass-temp-password": "Pansamantalang password:",
        "resetpass-abort-generic": "Inuurong sa pamamagitan ng isan extensyon ang pagpalit ng password.",
        "resetpass-expired": "Paso na ang iyong password. Pakipalit ng bagong password upang maka-login.",
-       "resetpass-expired-soft": "Napaso na ang iyong password at kailangan i-reset. Pumili ng bagong password o i-klik ang \"{{int:resetpass-submit-cancel}}\" upang i-reset sa ibang pagkakataon.",
-       "resetpass-validity-soft": "Hindi matanggap ang iyong password: $1\n\nPumili ng bagong password ngayon, o i-klik ang \"{{int:resetpass-submit-cancel}}\" para i-reset ito sa ibang pagkakataon.",
+       "resetpass-expired-soft": "Napaso na ang iyong password at kailangan i-reset. Pumili ng bagong password o i-klik ang \"{{int:authprovider-resetpass-skip-label}}\" upang i-reset sa ibang pagkakataon.",
+       "resetpass-validity-soft": "Hindi matanggap ang iyong password: $1\n\nPumili ng bagong password ngayon, o i-klik ang \"{{int:authprovider-resetpass-skip-label}}\" para i-reset ito sa ibang pagkakataon.",
        "passwordreset": "Muling pagtatakda ng password",
        "passwordreset-text-one": "Ikumpleto ang form na ito upang makatanggap ng pansamantalang password sa pamamagitan ng email.",
        "passwordreset-text-many": "{{PLURAL:$1|Ipasok sa isa sa mga field upang makatanggap ng isang pansamantalang password sa pamamagitan ng email.}}",
        "querypage-disabled": "Hindi pinagagana ang natatanging pahinang ito para sa mga dahilan ng pagganap.",
        "apisandbox": "Kahong buhanginan ng API",
        "apisandbox-api-disabled": "Hindi pinagagana ang API sa sityong ito.",
-       "apisandbox-intro": "Gamitin ang pahinang ito upang mag-eksperimento sa pamamagitan ng '''Paglilingkod na pangsangkasaputan ng API ng MediaWiki'''.\nSumangguni sa [//www.mediawiki.org/wiki/API:Main_page dokumentasyon ng API] para sa karagdagan pang mga detalye sa paggamit ng API. Halimbawa: [//www.mediawiki.org/wiki/API#A_simple_example kuhanin ang nilalaman ng isang Pangunahing Pahina]. Pumili ng isang galaw upang makakita ng mas marami pang mga halimbawa.",
+       "apisandbox-intro": "Gamitin ang pahinang ito upang mag-eksperimento sa pamamagitan ng '''Paglilingkod na pangsangkasaputan ng API ng MediaWiki'''.\nSumangguni sa [https://www.mediawiki.org/wiki/API:Main_page dokumentasyon ng API] para sa karagdagan pang mga detalye sa paggamit ng API. Halimbawa: [https://www.mediawiki.org/wiki/API#A_simple_example kuhanin ang nilalaman ng isang Pangunahing Pahina]. Pumili ng isang galaw upang makakita ng mas marami pang mga halimbawa.",
        "apisandbox-submit": "Gumawa ng kahilingan",
        "apisandbox-reset": "Hawiin",
        "apisandbox-examples": "Halimbawa",
        "allmessagesname": "Pangalan",
        "allmessagesdefault": "Tinakdang teksto",
        "allmessagescurrent": "Kasalukuyang teksto",
-       "allmessagestext": "Isa itong talaan ng mga mensahe ng sistema na makukuha mula sa namespace ng MediaWiki.\nPakidalaw ang [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Lokalisasyong MediaWiki] at [//translatewiki.net translatewiki.net] kung ibig mong magambag sa heneriko o pangkalahatang lokalisasyon ng MediaWiki.",
+       "allmessagestext": "Isa itong talaan ng mga mensahe ng sistema na makukuha mula sa namespace ng MediaWiki.\nPakidalaw ang [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Lokalisasyong MediaWiki] at [https://translatewiki.net translatewiki.net] kung ibig mong magambag sa heneriko o pangkalahatang lokalisasyon ng MediaWiki.",
        "allmessagesnotsupportedDB": "Hindi magagamit ang '''{{ns:special}}:AllMessages''' dahil hindi gumagana ang '''$wgUseDatabaseMessages'''.",
        "allmessages-filter-legend": "Salain",
        "allmessages-filter": "Salain ayon sa katayuan ng pagbabagay:",
index b3bc4dc..6a78e81 100644 (file)
        "actions": "Һәрәкәтон",
        "namespaces": "Номон мәконон",
        "variants": "Вариантон",
+       "navigation-heading": "Naviqasiyə menü",
        "errorpagetitle": "Сәһв",
        "returnto": "Бә сәһифә огәрдеј $1.",
        "tagline": "Материал че {{SITENAME}}",
        "unprotectthispage": "Ын сәһифә мыдофијә дәгиш кардеј",
        "newpage": "Тожә сәһифә",
        "talkpage": "Ым сәһифә мызокирә кардеј",
-       "talkpagelinktext": "Mızokirə",
+       "talkpagelinktext": "Müzakirə",
        "specialpage": "Хысусијә сәһифә",
        "personaltools": "Шәхси диләгон",
        "articlepage": "Мәғолә дијә кардеј",
        "talk": "Mızokirə",
        "views": "Тәмшо кардеј",
-       "toolbox": "Диләгон",
+       "toolbox": "Diləqon",
        "userpage": "Иштирокәкә сәһифә дијә кардеј",
        "projectpage": "Нәхши сәһифә дијә кардеј",
        "imagepage": "Фајли сәһифә дијә кардеј",
        "copyrightpage": "{{ns:project}}:Мыәллифә һуғуғ",
        "currentevents": "Есәтнә һодисон",
        "currentevents-url": "Project: Есәтнә һодисон",
-       "disclaimers": "Çe məsuliyyətiku imtino.",
+       "disclaimers": "Çı məsuliyyətiku imtina",
        "disclaimerpage": "Project:Дејни бә гиј ныгәтеј",
        "edithelp": "Арајиш бо редактә кардеј",
-       "mainpage": "Əsosə səhifə",
+       "mainpage": "Sərlohə",
        "mainpage-description": "Әсосә сәһифә",
        "policy-url": "Project:Ғајдон",
        "portal": "Ҹәмјәт",
        "nstab-image": "Фајл",
        "nstab-template": "Ғәлиб",
        "nstab-category": "Тиспир",
+       "mainpage-nstab": "Sərlohə",
        "error": "Сәһв",
        "readonly": "Бә база нывыште блок быә.",
        "missing-article": "База мәлумотон дыләдә бә ахтар кардә быә саһифон «$1» $2 барәдә мәлумот пәјдо карде ныбе.\nЖыго вәзијјәт бе бәзне бә вахтики, ым сәһифә че рәдд кардә быә сәһифә канә рәвојәте.\nГирәм ым жыго ни, жәгәдә шымә програм тәминатијәдә сәһв пәјдо кардәјоне.\nХаһиш кардәмон че сәһифә URL-и бә [[Special:ListUsers/sysop|администратори]] бывғандәнән.",
        "createaccountreason": "Сәбәб:",
        "mailmypassword": "Нујә парол вығандеј бә Е-номә.",
        "loginlanguagelabel": "Зывон: $1",
+       "pt-login": "Dəşi",
+       "pt-createaccount": "Qeydiyyat",
        "changepassword": "Пароли дәгиш кардеј",
        "resetpass_header": "Иштирокәкә пароли дәгиш карде",
        "oldpassword": "Канә парол:",
        "preview": "Сыфтәнә нишо дој",
        "showpreview": "Сыфтәнә нишо дој",
        "showdiff": "Дәғандә быә дәгишон",
-       "anoneditwarning": "'''Дығғәт.''' Шымә ыштәни едәштәнијоне системәдә.\nШымә IP-унвон бә ым сәһифә дәгишон тарых ғејд бәбе.",
+       "anoneditwarning": "<strong>Diqqət:</strong> Şımə bə sistem dəşənin. Berdəm şımə qıli sərost bıkon çı şımə lP-ünvani harkəs bəvinde. Berdəm <strong>[$1 daxil bıbu]</strong> jaanki <strong>[$2 hesob okə]</strong>, \nşımə sərostəti bə şımə nom nıvışte bəbe, imən bə şımə co üstünlükon bədoe",
        "loginreqlink": "ыштәни едаштеј",
        "newarticle": "(Нујә)",
        "newarticletext": "Шымә давардијон де сәбони бә сәһифә, әмма жыго сәһифә ни.\nБо сәһифә офәјеј мәтн бынывыштән жиннә пенҹәдә (мыффәссәл дијә быкән [$1 араијшә сәһифә]).\nГирәм шымә ијо де сәһви бешијон, һиччекәни ыштә браузери \"думо\" егәтән.",
-       "noarticletext": "Есәт бы сәһифәдә мәтн ни.\nШымә бәзынешон [[Special:Search/{{PAGENAME}}|пәјдо кардеј конҹо ым ном һесте]] бә ҹо мәғолонәдә,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} журналон ујғунә нывыштәјон пәјдо кардеј],\nјаанки '''[{{fullurl:{{FULLPAGENAME}}|action=edit}}де жыго номи сәһифә офәјеј ]'''</span>.",
+       "noarticletext": "Isə bı səhəfədə mətn ni.\nŞımə bəzneyon [[Special:Search/{{PAGENAME}}|peydo kardey konco im nom hıste] bə co səhəfədə,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} bə jurnalon uyğunə nıvıştəyon pedo kardey],\nor [{{fullurl:{{FULLPAGENAME}}|action=edit}} create this page]</span>.",
        "noarticletext-nopermission": "Есәт бы сәһифәдә мәтн ни. \nШымә бәзынејон [[Special:Search/{{PAGENAME}}|пәјдо кардеј конҹо ым ном һесте]] бә ҹо мәғолонәдә,\nјаанки <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} журналон ујғунә нывыштәјон пәјдо кардеј].</span>, интаси шымәку изн ни ым сәһифә офәје.",
        "previewnote": "'''Јодәдә огәтән ки ым һәлә сыфтәнә нишо доје.'''\nШымә дәгишон һәлә огәтә быәнин!",
        "editing": "Редәктә кардеј $1",
        "viewpagelogs": "Бо ым сәһифә журналон нишо дој",
        "currentrev-asof": "Есәтнә рәвојәт бә $1",
        "revisionasof": "Рәвојәт $1",
-       "revision-info": "Рәвојәти мәлумот: $1; $2",
+       "revision-info": "Çı $7 $1 tarixədə kardə sərostəti",
        "previousrevision": "← Навынәни",
        "nextrevision": "Думотоно шә →",
        "currentrevisionlink": "Есәтнә рәвојәт",
        "shown-title": "Нишо дој $1 {{PLURAL:$1|нывыштәј|нывыштәјон}} сәһифәдә",
        "viewprevnext": "Дијә кардеј ($1 {{int:pipe-separator}} $2) ($3)",
        "searchmenu-exists": "'''Бы вики-нәхшәдә һесте сәһифә «[[:$1]]»'''",
-       "searchmenu-new": "'''Сәһифә офәјеј «[[:$1]]» бә ым вики-нахшәдә!'''",
+       "searchmenu-new": "<strong> im vikiədə \"[[:$1]]\" səhifə okəy!</strong> {{PLURAL:$2|0=|Həmçinin bə nəve nəticədə peydo bıə səhifon dekə.| Bə nəve nəticədə peydo bıə nəticon dekə.}}",
        "searchprofile-articles": "Әсосә сәһифон",
        "searchprofile-images": "Мултимедијә",
        "searchprofile-everything": "Һар вырәдә",
        "rclistfrom": "$3 $2 вахтику дәгишон нишо быдә",
        "rcshowhideminor": "$1 гәдәлијә дәгишон",
        "rcshowhidebots": "$1 ботон",
-       "rcshowhideliu": "$1 ыштәни едаштә иштирокәкон",
+       "rcshowhideliu": "$1 qeyd bıə iştirakəkon",
        "rcshowhideanons": "$1 әнәномә иштирокәкон",
        "rcshowhidepatr": "$1 осә кардә быә дәгишон",
        "rcshowhidemine": "$1 ыштә дәгишон",
        "filedelete-comment": "Сәбәб:",
        "filedelete-submit": "Рәдд кардеј",
        "randompage": "Рајрастә мәғолә",
+       "randomincategory-submit": "Давард",
        "statistics": "Статистика",
        "nbytes": "$1 {{PLURAL:$1|бајт|бајтон}}",
        "nmembers": "$1 {{PLURAL:$1|узв|узвон}}",
        "whatlinkshere-prev": "{{PLURAL:$1|навынәни|навынәни $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|думотоно шә|думотоно шә $1}}",
        "whatlinkshere-links": "← сәбонон",
-       "whatlinkshere-hideredirs": "$1 бә тожә унвон вығандеј",
-       "whatlinkshere-hidetrans": "$1 әловон",
-       "whatlinkshere-hidelinks": "$1 сәбонон",
+       "whatlinkshere-hideredirs": "$1 bə tojə ünvan vığande",
+       "whatlinkshere-hidetrans": "$1 əlavon",
+       "whatlinkshere-hidelinks": "$1 səbonon",
        "whatlinkshere-hideimages": "$1 фајлинә сәбонон",
        "whatlinkshere-filters": "Филтрон",
        "ipbreason": "Сәбәб:",
        "allmessages-filter-submit": "Давард",
        "thumbnail-more": "Һејве кардеј",
        "thumbnail_error": "Гәдә шикили туму кардејәдә сәһв: $1",
-       "tooltip-pt-userpage": "ШÑ\8bмÓ\99 Ð¸Ñ\88Ñ\82иÑ\80окÓ\99кÓ\99 Ñ\81Ó\99һиÑ\84Ó\99",
-       "tooltip-pt-mytalk": "ШÑ\8bмÓ\99 Ð¼Ñ\8bзокиÑ\80он Ñ\81Ó\99һиÑ\84Ó\99",
-       "tooltip-pt-preferences": "Шымә кукон",
+       "tooltip-pt-userpage": "Å\9eımÉ\99 sÉ\99hifÉ\99",
+       "tooltip-pt-mytalk": "Å\9eımÉ\99 müzakirÉ\99 sÉ\99hifÉ\99",
+       "tooltip-pt-preferences": "Şımə nizamon",
        "tooltip-pt-watchlist": "Сәһифон сијоһи, конҹо шымә де дығғәти дијә кардејдәјон бә дәгишон",
-       "tooltip-pt-mycontris": "Шымә гәнҹон сијоһи",
+       "tooltip-pt-mycontris": "Şımə səroston siyahi",
        "tooltip-pt-login": "Ијо бәбе ыштәни ғејд кардовнијеј системәдә, интаси ым һукман ни",
        "tooltip-pt-logout": "Системәдә кој орохнијеј",
+       "tooltip-pt-createaccount": "Təklif kardəmon, boştə tojə səhifə okənən və bə sistem dıştə nomi dəşənən, hərçənd ım mütləq ni",
        "tooltip-ca-talk": "Сәһифә мығдори бәрәдә мызокирә",
-       "tooltip-ca-edit": "Ым сәһифә бәбе дагиш кардеј. Быһамијән, огәтеј бә нав, \"сыфтәнә нишо дој\" истифодә быкән",
+       "tooltip-ca-edit": "İm səhifə sərost karde",
        "tooltip-ca-addsection": "Нујә ғысм офәјеј",
        "tooltip-ca-viewsource": "Ым сәһифә мыдофијә быә дагиш кардеку, әммә шымә бәзынешон дијә кардеј ијән сурәт бекардеј әчәј бешемонә мәтни",
        "tooltip-ca-history": "Сәһифә дәгишон журнал",
        "tooltip-t-whatlinkshere": "Бә ым сәһифә сәбон вардә һәммәј вики сәһифон сијоһи",
        "tooltip-t-recentchangeslinked": "Охонә дәгишон сәһифонәдә, бә ком сәһифон сәбон вардә ым сәһифә",
        "tooltip-feed-atom": "Транслјасијә кардеј бә Atom бо ым сәһифә",
-       "tooltip-t-contributions": "Че иштирок кардәкәси дагиш кардә быә сәһифон сијоһи",
+       "tooltip-t-contributions": "Çı iştirak kardəkəsi dəgiş kardə səhifon siyohi",
        "tooltip-t-emailuser": "Бы иштироәкә номә вығәнде",
        "tooltip-t-upload": "Шикилон јаанки мултимедијә фајлон бо жај",
        "tooltip-t-specialpages": "Xıdmətə səhifon siyohi",
        "tooltip-ca-nstab-main": "Мәғолә мығдор",
        "tooltip-ca-nstab-user": "Иштирок кардәкәси сәһифә",
        "tooltip-ca-nstab-media": "Медиа-фајл",
-       "tooltip-ca-nstab-special": "Ым хыдмәтә сәһифәје бычыми горә дәгиш кардеј әбыни",
+       "tooltip-ca-nstab-special": "İm xidmətə səhifəye bəçi qorşo sərost karde əbıni",
        "tooltip-ca-nstab-project": "Нәхши сәһифә",
        "tooltip-ca-nstab-image": "Фајли сәһифә",
        "tooltip-ca-nstab-template": "Ғәлиби сәһифә",
        "tooltip-summary": "Кыртә тәсвир бынывыштән",
        "pageinfo-header-edits": "Дәгиш кардә быә чијон тарых",
        "pageinfo-redirects-value": "$1",
+       "pageinfo-toolboxlink": "Səhifə həxədə məlumaton",
        "previousdiff": "← Навынәни дәгиши",
        "nextdiff": "Думотоно шә дәгиши →",
        "file-info-size": "$1 × $2 пиксел, фајли памјә: $3, MIME тип: $4",
        "file-nohires": "Ән барзә рәвојәт ни.",
        "svg-long-desc": "SVG фајл, номинәләдә $1 × $2 пиксел, фајли памјә: $3",
-       "show-big-image": "Тикәјән јолә кејфијјәтинә шикил",
+       "show-big-image": "Çı fayli əsl",
+       "show-big-image-size": "$1 × $2 piksel",
        "ilsubmit": "Нәве",
        "bad_image_list": "Формат бәпе быбу жыго:\n\nБә һисоб сә быәбен әнҹәх сијоһи әсосон (де * рәмзи бино быә сәтырон).\nСәтыри иминә сәбон бәпе быбу сәбон бә ғәдәғән кардә быә бо дәғанде шикили.\nПешонә сәбонон бә һамонә сәтырәдә бәнә истино дијә кардә бәбен, јәни мәғолон, бә коврә шикил дахыл карде бәзне бе.",
        "metadata": "Метамәлумотон",
        "specialpages": "Хысусијә сәһифон",
        "external_image_whitelist": " #Ым сәтри огәтәнән чокнәј әв һесте<pre>\n#Рә рә истифадә быә фрагментон ијо быдәнән (ә һиссә, че // мијонәдә бедә )\n#Әвон ды харичи шикили URL и дуз бәбен.\n#Дуз омә гылә бәнә шикили нишо бәбе, амандәни бәнә шикили линк нишо бәбе.\n#Сәтрон де # комментариј һисоб бедән.\n#Сәтрон бә регистри һәссос нин.\n\n#Рә рә око доә быә фрагментон че сәтри пентоно ијо быдәнән. Ым сәтри огәтәнән чокнәј һесте.</pre>",
        "tag-filter": "[[Special:Tags|нышонон]] филтр:",
-       "tags-title": "Нышонон"
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Nişon|Nişonon}}]]: $2)",
+       "tags-title": "Нышонон",
+       "logentry-newusers-create": "$1 istifadəmon hesob okarde be",
+       "searchsuggest-search": "Nəve"
 }
index 8ee0000..dd64e03 100644 (file)
        "perfcachedts": "ʻOku fafaʻo ʻa e meʻaʻilo ʻi lalo, naʻe fakaonopooni fakamuimui ia $1. A maximum of {{PLURAL:$4|one result is|$4 results are}} available in the cache.",
        "viewsource": "Vakai ki he tupunga",
        "protectedinterface": "Ko e peesi ʻeni ʻoku fakaai ia ʻa e potutohi maʻa e founga fakakomipiuta, ʻoku maluʻi ia ʻo taʻofi leakovi.",
-       "editinginterface": "'''Warning:''' You are editing a page which is used to provide interface text for the software.\nChanges to this page will affect the appearance of the user interface for other users.\nFor translations, please consider using [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], the MediaWiki localisation project.",
+       "editinginterface": "'''Warning:''' You are editing a page which is used to provide interface text for the software.\nChanges to this page will affect the appearance of the user interface for other users.\nFor translations, please consider using [https://translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], the MediaWiki localisation project.",
        "namespaceprotected": "ʻOku ʻikai ngofua ke ke fatu ʻa e ngaahi kupu ʻi he vā hingoa '''$1'''.",
        "logouttext": "'''Kuo ʻalu mamaʻo koe he taimí ni.'''\n\nE lava te ke hoko atu ʻo ngāueʻaki he {{SITENAME}} tatau mo e ʻetita taʻehingoa, pe te ke kau-ki-ai mo e hingoa tatau pe hingoa kehe.\nTokanga, mahalo pē ʻe ʻi ai ha ngaahi peesi ʻoku ʻasi ko koe kei kau-ki-ai aʻu ki he taimi te ke fakaʻatā ʻa e fafaʻo fakapalausa.",
        "yourname": "Hingoa ʻetita",
index 89f476c..0e572ce 100644 (file)
@@ -7,14 +7,15 @@
                        "Wantok",
                        "Wytukaze",
                        "לערי ריינהארט",
-                       "सरोज कुमार ढकाल"
+                       "सरोज कुमार ढकाल",
+                       "Tacsipacsi"
                ]
        },
        "tog-underline": "Putim lain ananit long ol link:",
        "tog-hideminor": "Noken soim ol liklik senis insait long ol nupela senis",
        "tog-hidepatrolled": "Noken soim ol lukluk senis insait long ol nupela senis",
        "tog-newpageshidepatrolled": "Noken soim ol lukluk senis insait long ol nupela pes",
-       "tog-extendwatchlist": " Larim lukautbuk i go longpela long soim olgeta senis, long halivim tasol bihain tru",
+       "tog-extendwatchlist": "Larim lukautbuk i go longpela long soim olgeta senis, long halivim tasol bihain tru",
        "tog-usenewrc": "Moa beta stail bilong nupela senis na lukautbuk (i nidim JavaScript)",
        "tog-numberheadings": "Putim ol namba i go long wanwan hap bilong pes",
        "tog-showtoolbar": "Soim ol liklik link long wokim senis kwiktaim (i nidim JavaScript)",
        "listgrouprights-group": "Grup",
        "listgrouprights-members": "(lista bilong ol memba)",
        "emailuser": "E-mel dispela yusa",
-       "emailpage": "E-mel yusa",
        "defemailsubject": "{{SITENAME}} e-mel",
        "noemailtitle": "Nogat e-mel",
        "emailfrom": "I kam long:",
        "blocklogpage": "Ripot long pasim ol yusa",
        "move-page": "Surikim $1",
        "move-page-legend": "Surikim pes",
-       "movearticle": "Surikim pes:",
        "newtitle": "Nupela nem bilong pes:",
        "movepagebtn": "Surikim",
        "pagemovedsub": "Pes i surik pinis",
index 76c0a1d..a4a02e3 100644 (file)
        "tog-watchdefault": "Değişiklik yaptığım sayfaları ve dosyaları izleme listeme ekle",
        "tog-watchmoves": "Taşıdığım sayfaları ve dosyaları izleme listeme ekle",
        "tog-watchdeletion": "Sildiğim sayfaları ve dosyaları izleme listeme ekle",
+       "tog-watchuploads": "Yüklediğim yeni dosyaları izleme listeme ekle",
        "tog-watchrollback": "Geridönüş yaptığım sayfaları izleme listeme ekle",
        "tog-minordefault": "Varsayılan olarak, bütün düzenlemelerimi küçük değişiklik olarak işaretle",
        "tog-previewontop": "Ön izlemeyi, düzenleme kutusunun üstünde göster",
        "tog-ccmeonemails": "Diğer kullanıcılara gönderdiğim e-postaların bir kopyasını bana da gönder",
        "tog-diffonly": "Sayfa içeriğini, sürüm farklarının altında gösterme",
        "tog-showhiddencats": "Gizli kategorileri göster",
-       "tog-norollbackdiff": "Geri döndürme uygulandıktan sonra değişiklik görünümünü es geç",
+       "tog-norollbackdiff": "Geri döndürme uygulandıktan sonra farkları gösterme",
        "tog-useeditwarning": "Yaptığım değişiklikleri kaydetmeden sayfayı kapatırken beni uyar",
        "tog-prefershttps": "Oturum açarken her zaman güvenli bağlantı kullan",
        "underline-always": "Daima",
        "protectedpagetext": "Bu sayfa değişiklik ya da diğer eylemlerin yapılmasını engellemek için koruma altına alınmıştır.",
        "viewsourcetext": "Bu sayfanın kaynağını görebilir ve kopyalayabilirsiniz.",
        "viewyourtext": "Bu sayfada <strong>yaptığınız değişikliklerin</strong> kaynağını görünteleyip kopyalayabilirsiniz.",
-       "protectedinterface": "Bu sayfa yazılım için arayüz metni sağlamaktadır ve kötüye kullanımı önlemek için korumaya alınmıştır.\nBütün vikilere dair çeviri eklemek veya bunları değiştirmek için lütfen MediaWiki yerelleştirme projesi [//translatewiki.net/ translatewiki.net]'i kullanın.",
+       "protectedinterface": "Bu sayfa yazılım için arayüz metni sağlamaktadır ve kötüye kullanımı önlemek için korumaya alınmıştır.\nBütün vikilere dair çeviri eklemek veya bunları değiştirmek için lütfen MediaWiki yerelleştirme projesi [https://translatewiki.net/ translatewiki.net]'i kullanın.",
        "editinginterface": "<strong>Uyarı:</strong> Yazılım için arayüz metni sağlayan bir sayfayı değiştiriyorsunuz.\nBu sayfada yapılacak değişiklikler diğer kullanıcıların vikilerindeki kullanıcı arayüzlerinin görünümünü de etkileyecektir.",
-       "translateinterface": "Tüm vikilerde çeviri eklemek veya çevirileri değiştirmek için lütfen MediaWiki yerelleştirme projesini [//translatewiki.net/] kullanın.",
+       "translateinterface": "Tüm vikilerde çeviri eklemek veya çevirileri değiştirmek için lütfen MediaWiki yerelleştirme projesini [https://translatewiki.net/] kullanın.",
        "cascadeprotected": "Bu sayfa değişiklik yapılması engellenmiştir, çünkü  \"kademeli\" seçeneği aktif hale getirilerek koruma altına alınan {{PLURAL:$1|sayfada|sayfada}} kullanılmaktadır:\n$2",
        "namespaceprotected": "'''$1''' alandındaki sayfaları düzenlemeye izniniz bulunmamaktadır.",
        "customcssprotected": "Bu sayfayı değiştirmeye yetkiniz bulunmamaktadır, çünkü bu sayfa başka bir kullanıcının kişisel ayarlarını içermektedir.",
        "password-change-forbidden": "Bu vikide parolanızı değiştiremezsiniz.",
        "externaldberror": "Ya doğrulama veritabanı hatası var ya da kullanıcı hesabınızı güncellemeye yetkiniz yok.",
        "login": "Oturum aç",
+       "login-security": "Kimliğinizi doğrulayın",
        "nav-login-createaccount": "Oturum aç / hesap oluştur",
        "userlogin": "Oturum aç / hesap oluştur",
        "userloginnocreate": "Giriş yap",
        "userlogin-resetpassword-link": "Parolanızı mı unuttunuz?",
        "userlogin-helplink2": "Oturum açma konusunda yardım alın",
        "userlogin-loggedin": "Zaten {{GENDER:$1|$1}} olarak oturum açtınız.\nBaşka bir kullanıcı olarak oturum açmak için aşağıdaki formu kullanın.",
+       "userlogin-reauth": "{{GENDER:$1|$1}} olduğunuzu doğrulamak için tekrar giriş yapmalısınız.",
        "userlogin-createanother": "Başka bir hesap oluşturun",
        "createacct-emailrequired": "E-posta adresi",
        "createacct-emailoptional": "E-posta adresi (isteğe bağlı)",
        "createacct-reason-ph": "Neden başka bir hesap oluşturuyorsunuz",
        "createacct-submit": "Hesabınızı oluşturun",
        "createacct-another-submit": "Hesap oluşturun",
+       "createacct-continue-submit": "Hesap oluşturmaya devam et",
+       "createacct-another-continue-submit": "Hesap oluşturmaya devam et",
        "createacct-benefit-heading": "{{SITENAME}} sizin gibi insanlar tarafından geliştirilir.",
        "createacct-benefit-body1": "{{PLURAL:$1|düzenleme|düzenleme}}",
        "createacct-benefit-body2": "{{PLURAL:$1|madde|madde}}",
        "nocookiesnew": "Kullanıcı hesabı oluşturuldu ama oturum açamadınız.\nOturum açmak için {{SITENAME}} çerezleri kullanır.\nÇerez kullanımı devredışı.\nLütfen çerez kullanımını açınız ve yeni kullanıcı adınız ve şifrenizle oturum açınız.",
        "nocookieslogin": "{{SITENAME}} sitesinde oturum açabilmek için çerezlerinizin açık olması gerekiyor. Sizin çerezleriniz kapalı. Lütfen açınız ve bir daha deneyiniz.",
        "nocookiesfornew": "Kullanıcı hesabı oluşturulamadı, sorunun kaynağını da tespit edemedik.\nÇerezlerin açık olduğundan emin olun ve bu sayfayı yeniden yükleyip tekrar deneyin.",
+       "createacct-loginerror": "Hesap başarılı şekilde oluşturuldu ancak otomatik olarak oturumunuz açılmadı. Lütfen [[Special:UserLogin|manuel giriş]] sayfasına gidin.",
        "noname": "Geçerli bir kullanıcı adı girmediniz.",
        "loginsuccesstitle": "Oturum açıldı",
        "loginsuccess": "'''{{SITENAME}} üzerinde \"$1\" kullanıcı adıyla oturum açtınız.'''",
        "noemail": "\"$1\" adlı kullanıcıya kayıtlı bir e-posta adresi yok.",
        "noemailcreate": "Geçerli bir e-posta adresi sağlamalısınız",
        "passwordsent": "\"$1\" adına kayıtlı e-posta adresine yeni bir parola gönderildi. Oturumu, lütfen, iletiyi aldıktan sonra açın.",
-       "blocked-mailpassword": "Siteye erişiminiz engellenmiş olduğundan, yeni şifre gönderilme işlemi yapılamamaktadır.",
+       "blocked-mailpassword": "IP adresiniz düzenleme yapmaya engellenmiştir. Kötüye kullanımın önüne geçmek için söz konusu IP adresinden şifre kurtarmaya izin verilmemektedir.",
        "eauthentsent": "Belirtilen e-posta adresine onay kodu içeren bir e-posta gönderildi.\nHesaba başka bir e-posta gönderilmeden önce, e-postadaki yönergeleri uygulayıp, hesabın gerçekten size ait olduğunu onaylamanız gerekir.",
        "throttled-mailpassword": "Bir parola sıfırlama e-postası son {{PLURAL:$1|bir saat|$1 saat}} içinde zaten gönderildi. Hizmeti kötüye kullanmayı önlemek için, her {{PLURAL:$1|bir saatte|$1 saatte}} sadece bir parola sıfırlama e-postası gönderilecektir.",
        "mailerror": "E-posta gönderim hatası: $1",
        "createaccount-title": "{{SITENAME}} için yeni kullanıcı hesabı oluşturulması",
        "createaccount-text": "Birisi {{SITENAME}} sitesinde ($4) sizin e-posta adresinizi kullarak, şifresi \"$3\" olan, \"$2\" isimli bir hesap oluşturdu.\n\nSiteye giriş yapmalı ve parolanızı değiştirmelisiniz.\n\nEğer kullanıcı hesabını yanlışlıkla oluşturmuş iseniz, bu mesajı yoksayabilirsiniz.",
        "login-throttled": "Çok fazla yeni oturum açma girişiminde bulundunuz.\nDevam etmeden önce $1 bekleyin.",
-       "login-abort-generic": "Girişiniz başarısız - iptal edilmiş",
+       "login-abort-generic": "Giriş başarısız - Durduruldu",
        "login-migrated-generic": "Hesabınız aktarılmış ve kullanıcı adınız artık bu vikide yok.",
        "loginlanguagelabel": "Dil: $1",
        "suspicious-userlogout": "Çıkış isteğiniz reddedildi çünkü bozuk bir tarayıcı ya da önbellekli vekil tarafından gönerilmiş gibi görünüyor.",
        "createacct-another-realname-tip": "Gerçek adınız isteğe bağlıdır.\nEğer gerçek adınızı belirtirseniz, çalışmalarınıza atıfta bulunulması için de kullanılacaktır.",
        "pt-login": "Giriş yap",
        "pt-login-button": "Oturum aç",
+       "pt-login-continue-button": "Oturum açmaya devam edin",
        "pt-createaccount": "Hesap oluştur",
        "pt-userlogout": "Oturumu kapat",
        "php-mail-error-unknown": "PHP's mail() fonksiyonunda bilinmeyen hata",
        "botpasswords-label-cancel": "İptal",
        "botpasswords-label-delete": "Sil",
        "botpasswords-label-resetpassword": "Şifreyi sıfırla",
+       "botpasswords-label-grants": "Geçerli ayrıcalıklar:",
        "botpasswords-label-restrictions": "Kullanım kısıtlamaları:",
        "botpasswords-label-grants-column": "Verilen",
        "botpasswords-bad-appid": "Bot ismi \"$1\" geçerli değil.",
        "botpasswords-insert-failed": "Bot adı \"$1\" eklenemedi. Zaten eklenmiş olmalı?",
        "botpasswords-update-failed": "Bot ismini \"$1\" olarak güncelleme başarısız oldu. Silinmiş olabilir mi?",
        "botpasswords-created-title": "Bot şifresi oluşturuldu.",
-       "botpasswords-created-body": "Bot şifresi \"$1\" başarıyla oluşturuldu.",
+       "botpasswords-created-body": "\"$2\" adlı kullanıcının \"$1\" isimli botu için şifre oluşturuldu.",
        "botpasswords-updated-title": "Bot şifresi guncellendi",
-       "botpasswords-updated-body": "Bot şifresi \"$1\" başarıyla güncellendi.",
+       "botpasswords-updated-body": "\"$2\" adlı kullanıcının \"$1\" isimli botunun şifresi güncellendi.",
        "botpasswords-deleted-title": "Bot şifresi silindi.",
-       "botpasswords-deleted-body": "Bot şifresi $1 silinmiş.",
+       "botpasswords-deleted-body": "\"$2\" adlı kullanıcının \"$1\" isimli botunun şifresi silindi.",
+       "botpasswords-newpassword": "<strong>$1</strong> ile oturum açmak için yeni şifre: <strong>$2</strong>. <em>İlerde başvurmak için lütfen kaydedin.</em>",
        "botpasswords-no-provider": "BotPasswordsSessionProvider kullanılamaz.",
+       "botpasswords-restriction-failed": "Bot şifresi sınırlamaları oturum açmayı engelledi.",
+       "botpasswords-invalid-name": "Belirtilen kullanıcı adı bot şifresi ayırıcısını içermiyor (\"$1\").",
        "resetpass_forbidden": "Parolalar değiştirilememektedir",
+       "resetpass_forbidden-reason": "Şifre değiştirilemedi: $1",
        "resetpass-no-info": "Bu sayfaya doğrudan erişmek için oturum açmanız gereklidir.",
        "resetpass-submit-loggedin": "Parolayı değiştir",
        "resetpass-submit-cancel": "İptal",
        "resetpass-temp-password": "Geçici parola:",
        "resetpass-abort-generic": "Parola değişikliği bir uzantı tarafından iptal edildi.",
        "resetpass-expired": "Parolanızın süresi bitti. Lütfen, giriş için yeni bir parola oluşturun.",
-       "resetpass-expired-soft": "Parolanızın süresi bitti ve değiştirilmesi gerekiyor. Lütfen, yeni bir parola seçin veya daha sonra oluşturmak için \"{{int:resetpass-submit-cancel}}\" butonuna tıklayın.",
-       "resetpass-validity-soft": "Parolanız geçerli değiş: $1\n\nLütfen yeni bir şifre belirleyin veya daha sonra sıfırlamak için \"{{int:resetpass-submit-cancel}}\" bağlantısını tıklayın.",
+       "resetpass-expired-soft": "Parolanızın süresi bitti ve değiştirilmesi gerekiyor. Lütfen, yeni bir parola seçin veya daha sonra oluşturmak için \"{{int:authprovider-resetpass-skip-label}}\" butonuna tıklayın.",
+       "resetpass-validity-soft": "Parolanız geçerli değil: $1\n\nLütfen yeni bir şifre belirleyin ya da daha sonra sıfırlamak için \"{{int:authprovider-resetpass-skip-label}}\" bağlantısını tıklayın.",
        "passwordreset": "Parola sıfırlama",
        "passwordreset-text-one": "Parolanızı sıfırlamak için bu formu doldurun.",
        "passwordreset-text-many": "{{PLURAL:$1|E-posta ile geçici bir parola almak için alanlardan birini doldurun.}}",
        "passwordreset-emailtext-user": "$1 adlı kullanıcı, {{SITENAME}} ($4) için hesap bilgilerinizin hatırlatılmasını istedi. Aşağıdaki kullanıcı {{PLURAL:$3|hesabı|hesapları}} bu e-posta adresiyle ilişkili:\n\n$2\n\n{{PLURAL:$3|Bu geçici şifre|Bu geçici şifreler}} {{PLURAL:$5|bir gün|$5  gün}} geçerlidir.\nBu geçici parola ile giriş yapın ve yeni bir şifre seçin. Bu talep bir başkasına aitse veya şifrenizi hatırladıysanız ve artık şifrenizi değiştirmek istemiyorsanız; bu iletiyi önemsemeyerek eski şifrenizi kullanmaya devam edebilirsiniz.",
        "passwordreset-emailelement": "Kullanıcı adı: \n$1\n\nGeçici şifre: \n$2",
        "passwordreset-emailsentemail": "Eğer bu e-posta adresi hesabınızın bağlı olduğu adres ise, bir parola sıfırlama e-postası gönderilecektir.",
+       "passwordreset-emailsentusername": "Eğer bu e-posta adresi hesabınızın bağlı olduğu adres ise, bir parola sıfırlama e-postası gönderilecektir.",
        "passwordreset-emailsent-capture": "Aşağıda gözüktüğü gibi bir parola sıfırlama e-postası gönderildi.",
        "passwordreset-emailerror-capture": "Aşağıda gözüktüğü gibi bir parola sıfırlama e-postası oluşturuldu ancak {{GENDER:$2|kullanıcıya}} gönderme işlemi başarısız oldu: $1",
+       "passwordreset-invalideamil": "Geçersiz e-posta adresi",
+       "passwordreset-nodata": "Ne bir kullanıcı adı ne de bir e-posta adresi verildi.",
        "changeemail": "E-posta adresini değiştir veya çıkar",
-       "changeemail-header": "Hesabın e-posta adresini değiştirin",
+       "changeemail-header": "E-posta adresinizi değiştirmek için bu formu doldurun. Eğer e-posta adresini hesabınızdan kaldırmak istiyorsanız formu gönderirken e-posta adresi bölümünü boş bırakın.",
        "changeemail-passwordrequired": "Bu değişikliği onaylamak için şifrenizi girmeniz gerekir.",
        "changeemail-no-info": "Bu sayfaya doğrudan erişmek için oturum açmanız gereklidir.",
        "changeemail-oldemail": "Mevcut E-posta adresi:",
        "changeemail-newemail": "Yeni E-posta adresi:",
+       "changeemail-newemail-help": "E-posta adresinizi silmek istiyorsanız bu alan boş bırakılmalıdır. E-posta adresi silindikten sonra unutulan şifreyi sıfırlayamazsınız ve bu Viki'den e-posta alamazsınız.",
        "changeemail-none": "(yok)",
        "changeemail-password": "{{SITENAME}} parolanız:",
        "changeemail-submit": "E-posta'yı değiştir",
        "minoredit": "Bu küçük bir değişiklik",
        "watchthis": "Bu sayfayı izle",
        "savearticle": "Sayfayı kaydet",
+       "savechanges": "Değişiklikleri kaydet",
+       "publishpage": "Sayfayı yayımla",
        "preview": "Önizleme",
        "showpreview": "Önizlemeyi göster",
        "showdiff": "Değişiklikleri göster",
        "accmailtext": "[[User talk:$1|$1]] için rastgele oluşturulan parola $2 adresine gönderildi.\n\nBu yeni hesap için parola, giriş yapıldıktan sonra ''[[Special:ChangePassword|parolayı değiştir]]'' bölümünde değiştirilebilir.",
        "newarticle": "(Yeni)",
        "newarticletext": "Henüz varolmayan bir sayfaya konulmuş bir bağlantıya tıkladınız.\nSayfayı oluşturmak için aşağıdaki metin kutusunu kullanın. ([$1 yardım sayfasına] bakınız).\nBuraya yanlışlıkla geldiyseniz tarayıcınızın  <strong>geri </strong> tuşuna tıklayın.",
-       "anontalkpagetext": "----''Bu sayfa henüz bir kullanıcı hesabı oluşturmamış veya hesabını kullanmayan bir anonim kullanıcının mesaj sayfasıdır. Bu nedenle bu kişiyi belirtmek için rakamsal IP adresini kullanmak zorundayız. Bu gibi IP adresleri birçok kullanıcı tarafından paylaşılabilir. Eğer siz de bir anonim kullanıcıysanız ve size sizin ilginiz olmayan iletiler geliyorsa, lütfen diğer anonim kullanıcılarla olabilecek olan karmaşayı önlemek için [[Special:CreateAccount|bir hesap edinin]] veya [[Special:UserLogin|oturum açın]].''",
+       "anontalkpagetext": "----\n<em>Bu sayfa henüz bir kullanıcı hesabı oluşturmamış veya hesabını kullanmayan bir anonim kullanıcının mesaj sayfasıdır.</em>\nBu nedenle bu kişiyi belirtmek için rakamsal IP adresini kullanmak zorundayız.\nBu gibi IP adresleri birçok kullanıcı tarafından paylaşılabilir.\nEğer siz de bir anonim kullanıcıysanız ve size sizin ilginiz olmayan iletiler geliyorsa, lütfen diğer anonim kullanıcılarla olabilecek olan karmaşayı önlemek için [[Special:CreateAccount|bir hesap edinin]] veya [[Special:UserLogin|oturum açın]].",
        "noarticletext": "Bu sayfa şu anda boştur.\nBu başlığı [[Special:Search/{{PAGENAME}}|diğer sayfalarda arayabilir]],\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ilgili kayıtları arayabilir],\nya da bu sayfayı [{{fullurl:{{FULLPAGENAME}}|action=edit}} oluşturabilirsiniz]</span>.",
        "noarticletext-nopermission": "Bu sayfa şu anda boştur. \nBu başlığı [[Special:Search/{{PAGENAME}}|diğer sayfalarda arayabilir]] ya da <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ilgili kayıtları tarayabilirsiniz]</span>, fakat sayfayı oluşturma yetkiniz bulunmamaktadır.",
        "missing-revision": "\"{{FULLPAGENAME}}\" sayfasının #$1 sürümü yok.\n\nBu duruma genellikle silinmiş bir sayfaya eski tarihli bir bağlantının takip edilmesi neden olur.\n\nDaha fazla detaylı bilgi [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} sayfasında bulunabilir].",
        "userpage-userdoesnotexist": "\"<nowiki>$1</nowiki>\" kullanıcı hesabı kayıtlı değil. Bu sayfayı oluşturmak/değiştirmek istiyorsanız lütfen kontrol edin.",
        "userpage-userdoesnotexist-view": "\"$1\" kullanıcı hesabı kayıtlı değil.",
        "blocked-notice-logextract": "Bu kullanıcı şuanda engellenmiş.\nSon engelleme günlüğü girdisi referans için aşağıda sağlanmıştır:",
-       "clearyourcache": "'''Not:''' Kaydettikten sonra değişiklikleri görmek için tarayıcınızın önbelleğini temizlemeniz gerekebilir.\n* '''Firefox / Safari:''' ''Shift'' tuşuna basılıyken \"Yeniden yükle\"'ye tıklayın ya da \"Ctrl-F5\" ya da ''Ctrl-R'' yapın (Mac için '⌘-R'').\n* '''Google Chrome:''' ''Ctrl-Shift-R'''ye basın. (Mac için ''⌘-Shift-R'')\n* '''Internet Explorer:''' ''Ctrl'' basılıyken ''Yenile'''ye tıklayın ya da ''Ctrl-F5'' yapın.\n* '''Opera:''' ''Araçlar → Tercihler'''den önbelliği temizleyin.",
+       "clearyourcache": "<strong>Note:</strong> Kaydettikten sonra değişiklikleri görmek için tarayıcınızın önbelleğini temizlemeniz gerekebilir.\n* <strong>Firefox / Safari:</strong> <em>Shift</em> tuşuna basılıyken <em>Yeniden yükle</em>'ye tıklayın ya da <em>Ctrl-F5</em> ya da <em>Ctrl-R</em> yapın (Mac için <em>⌘-R</em>).\n* <strong>Google Chrome:</strong> <em>Ctrl-Shift-R</em>'ye basın. (Mac için <em>⌘-Shift-R</em>)\n* <strong>Internet Explorer:</strong> <em>Ctrl</em> basılıyken <em>Yenile</em>'ye tıklayın ya da <em>Ctrl-F5</em> yapın.\n* <strong>Opera:</strong> <em>Araçlar → Tercihler</em>'den önbelliği temizleyin.",
        "usercssyoucanpreview": "'''İpucu:''' Kaydetmeden önce \"{{int:showpreview}}\"e tıklayarak yeni CSSinizi deneyin.",
        "userjsyoucanpreview": "'''İpucu:''' Kaydetmeden önce \"{{int:showpreview}}\"e tıklayarak yeni JavaScript'inizi test edin.",
        "usercsspreview": "'''Sadece kullanıcı CSS dosyanızın önizlemesini görüyorsun.''' '''Kullanıcı CSS dosyası henüz kaydolmadı!'''",
        "previewnote": "'''Bunun yalnızca bir ön izleme olduğunu unutmayın.'''\nYaptığınız değişiklikler henüz kaydedilmedi!",
        "continue-editing": "Düzenlemeye devam et",
        "previewconflict": "Bu önizleme metin düzenleme kutucuğunun üstünde, maddenin eğer değişikliklerinizi kaydetmeyi seçerseniz nasıl görüneceğini yansıtır.",
-       "session_fail_preview": "Özür dileriz. Oturum açılması ile ilgili veri kaybından kaynaklı değişikliğinizi kaydedemedik. Lütfen tekrar deneyiniz. Eğer bu yöntem işe yaramazsa oturumu kapatıp tekrar sisteme geri giriş yapınız.",
+       "session_fail_preview": "Özür dileriz. Oturum açılması ile ilgili veri kaybından kaynaklı değişikliğinizi kaydedemedik.\n\nLütfen tekrar deneyiniz. Eğer bu yöntem işe yaramazsa oturumu kapatıp tekrar sisteme geri giriş yapınız.",
        "session_fail_preview_html": "'''Üzgünüz! Oturum verisinin kaybolmasından dolayı düzenlemenizi işleme geçiremeyeceğiz.'''\n\n''Çünkü {{SITENAME}} sitesinde raw HTML etkindir, önizleme JavaScript saldırılarına önlem olarak gizlenmiştir.''\n\n'''Eğer bu haklı bir düzenleme girişimiyse, lütfen yeniden deneyin. Eğer hala çalışmazsa, [[Special:UserLogout|çıkış yapıp]] yeniden oturum açmayı deneyin.'''",
        "token_suffix_mismatch": "'''Değişikliğiniz geri çevrildi çünkü alıcınız düzenleme kutucuğundaki noktalama işaretlerini bozdu.\nDeğişikliğiniz, sayfa metninde bozulmayı önlemek için geri çevrildi.\nEğer sorunlu bir web-tabanlı anonim proksi servisi kullanıyorsanız bu olay bazen gerçekleşebilir.'''",
        "edit_form_incomplete": "'''Değişiklik formu için bazı sunuculara erişilemedi; yaptığınız değişiklikler bozulmamıştır, gözden geçirip tekrar deneyiniz.'''",
        "revdelete-unsuppress": "Geri döndürülmüş revizyonlardaki kısıtlamaları kaldır",
        "revdelete-log": "Neden:",
        "revdelete-submit": "Seçilen {{PLURAL:$1|sürüme|sürümlere}} uygula",
-       "revdelete-success": "'''Revizyon görünürlüğü başarıyla güncellendi.'''",
+       "revdelete-success": "Revizyon görünürlüğü güncellendi.",
        "revdelete-failure": "'''Revizyon görünürlüğü güncellenemiyor:'''\n$1",
        "logdelete-success": "Günlük görünürlüğü ayarlandı.",
        "logdelete-failure": "'''Günlük görünürlüğü ayarlanamadı:'''\n$1",
        "mergehistory-empty": "Hiçbir sürüm birleştirilemez.",
        "mergehistory-done": "$1 sayfasının $3 {{PLURAL:$3|revizyonu|revizyonu}} başarıyla [[:$2]] içine birleştirildi.",
        "mergehistory-fail": "Geçmiş birleştirmesi gerçekleştirlemiyor, lütfen sayfa ve zaman parametrelerini yeniden kontrol edin.",
+       "mergehistory-fail-bad-timestamp": "Zaman damgası geçersiz.",
+       "mergehistory-fail-invalid-source": "Kaynak sayfa geçersiz.",
        "mergehistory-fail-invalid-dest": "Hedef sayfa geçersiz.",
+       "mergehistory-fail-no-change": "Geçmiş birleştirme hiçbir sürümü birleştirmedi. Lütfen sayfa ve zaman parametrelerini bir kez daha kontrol edin.",
        "mergehistory-fail-permission": "Geçmiş birleştirmek için gerekli izinler yok.",
+       "mergehistory-fail-self-merge": "Kaynak ve hedef sayfa aynı.",
        "mergehistory-fail-toobig": "Limit olarak belirlenen $1 {{PLURAL:$1|sürümden|sürümden}} daha fazlasını taşımak gerekeceği için geçmiş birleştirme gerçekleştirilemiyor.",
        "mergehistory-no-source": "Kaynak sayfa $1 bulunmamaktadır.",
        "mergehistory-no-destination": "Hedef sayfa $1 bulunmamaktadır.",
        "prefs-help-recentchangescount": "Bu, son değişiklikleri, sayfa geçmişlerini ve günlükleri içerir.",
        "prefs-help-watchlist-token2": "Bu izleme listenizin gizli anahtarıdır. Anahtarı bilen herkes izleme listenizi görebilir. Bu nedenle kimseyle paylaşmayın. [[Special:ResetTokens|Bu anahtarı sıfırlamak isterseniz buraya tıklayın]].",
        "savedprefs": "Tercihleriniz kaydedildi.",
+       "savedrights": "{{GENDER:$1|$1}} için kullanıcı hakları kaydedildi.",
        "timezonelegend": "Zaman dilimi:",
        "localtime": "Yerel saat:",
        "timezoneuseserverdefault": "Viki varsayılanını kullanın ($1)",
        "filerevert-legend": "Dosyayı eski haline döndür",
        "filerevert-intro": "'''[[Media:$1|$1]]''' medyasının [$4 $3, $2 tarihli sürüm]ünü geri getiriyorsunuz.",
        "filerevert-comment": "Neden:",
-       "filerevert-defaultcomment": "$2, $1 tarihli sürüme geri döndürüldü",
+       "filerevert-defaultcomment": "$2, $1 ($3) tarihli sürüme geri döndürüldü",
        "filerevert-submit": "Eski haline döndür",
        "filerevert-success": "'''[[Media:$1|$1]]''' dosyası [$4 $3, $2 tarihli sürüme] geri döndürüldü.",
        "filerevert-badversion": "Bu dosyanın verilen zaman bilgisine sahip önceki bir yerel sürümü yok.",
        "protectedpages-performer": "Koruyan kullanıcı",
        "protectedpages-params": "Koruma parametreleri",
        "protectedpages-reason": "Sebep",
+       "protectedpages-submit": "Sayfaları görüntüle",
        "protectedpages-unknown-timestamp": "Bilinmiyor",
        "protectedpages-unknown-performer": "Bilinmeyen kullanıcı",
        "protectedtitles": "Korunan başlıklar",
        "protectedtitles-summary": "Bu sayfa şu anda oluşturulması korunan başlıkları listeler. Koruma altında olan mevcut sayfaların listesi için [[{{#special:ProtectedPages}}|{{int:protectedpages}}]] sayfasına bakın.",
        "protectedtitlesempty": "Şu anda, bu parametrelerle korunan hiç bir başlık yok.",
+       "protectedtitles-submit": "Başlıkları görüntüle",
        "listusers": "Kullanıcı listesi",
        "listusers-editsonly": "Sadece değişiklik yapan kullanıcıları göster",
        "listusers-creationsort": "Oluşturma tarihine göre sırala",
        "apisandbox-submit": "İstek yap",
        "apisandbox-reset": "Temizle",
        "apisandbox-retry": "Tekrar dene",
+       "apisandbox-helpurls": "Yardım bağlantıları",
        "apisandbox-examples": "Örnekler",
-       "apisandbox-results": "Sonuç",
+       "apisandbox-results": "Sonuçlar",
        "apisandbox-request-url-label": "İstek URL:",
        "apisandbox-request-time": "İstek zamanı: $1",
        "booksources": "Kaynak kitaplar",
        "sp-contributions-username": "IP adresi veya kullanıcı adı:",
        "sp-contributions-toponly": "Sadece son revizyon olan değişiklikleri göster",
        "sp-contributions-newonly": "Yalnızca yeni sayfa oluşturan değişiklikleri görüntüle",
+       "sp-contributions-hideminor": "Küçük değişiklikleri gizle",
        "sp-contributions-submit": "Ara",
        "whatlinkshere": "Sayfaya bağlantılar",
        "whatlinkshere-title": "\"$1\" maddesine bağlantı veren sayfalar",
        "cant-move-to-user-page": "Bir sayfayı, bir kullanıcı sayfasına taşımaya izniniz yok (bir kullanıcı altsayfası dışında).",
        "cant-move-category-page": "Kategori sayfalarını taşıma yetkiniz yok.",
        "cant-move-to-category-page": "Bir sayfayı, bir kategoriye taşımaya izniniz yok.",
-       "newtitle": "Yeni isim",
+       "newtitle": "Yeni başlık:",
        "move-watch": "Bu sayfayı izle",
        "movepagebtn": "İsmi değiştir",
        "pagemovedsub": "İsim değişikliği tamamlandı.",
        "movenosubpage": "Bu sayfanın altsayfası yoktur.",
        "movereason": "Neden:",
        "revertmove": "geri al",
-       "delete_and_move_text": "==Silinmesi gerekiyor==\n\n\"[[:$1]]\" isimli bir sayfa zaten mevcut. O sayfayı silerek, isim değişikliğini gerçekleştirmeye devam etmek istiyor musunuz?",
+       "delete_and_move_text": "Hedef sayfa olan \"[[:$1]]\" zaten mevcut. Taşımayı gerçekleştirebilmek için, mevcut sayfayı silmek ister misiniz?",
        "delete_and_move_confirm": "Evet, sayfayı sil",
        "delete_and_move_reason": "[[$1]] sayfasının isim değişikliğinin gerçekleşmesi için silindi.",
        "selfmove": "Olmasını istediğiniz isim ile mevcut isim aynı. Değişiklik mümkün değil.",
        "allmessagesname": "Ad",
        "allmessagesdefault": "Varsayılan mesaj metni",
        "allmessagescurrent": "Kullanımdaki metin",
-       "allmessagestext": "Bu liste  MediaWiki ad alanında mevcut olan sistem mesajlarının listesidir.\nGenel MediaWiki yerelleştirmesine katkıda bulunmak isterseniz, lütfen [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Yerelleştirmesi] ve [//translatewiki.net translatewiki.net] sayfalarını ziyaret edin.",
+       "allmessagestext": "Bu liste  MediaWiki ad alanında mevcut olan sistem mesajlarının listesidir.\nGenel MediaWiki yerelleştirmesine katkıda bulunmak isterseniz, lütfen [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Yerelleştirmesi] ve [https://translatewiki.net translatewiki.net] sayfalarını ziyaret edin.",
        "allmessagesnotsupportedDB": "'''$wgUseDatabaseMessages''' kapalı olduğu için '''{{ns:special}}:Allmessages''' kullanıma açık değil.",
        "allmessages-filter-legend": "Filtre",
        "allmessages-filter": "Özelleştirme durumuna göre filtrele:",
        "exif-compression-6": "JPEG",
        "exif-copyrighted-true": "Telif hakkı",
        "exif-copyrighted-false": "Telif Hakkı durumu belirtilmemiş",
+       "exif-photometricinterpretation-1": "Siyah ve beyaz (Siyah 0)",
        "exif-photometricinterpretation-2": "RGB",
        "exif-photometricinterpretation-6": "YCbCr",
        "exif-unknowndate": "Bilinmeyen zaman",
        "confirmemail_body_set": "Birisi, muhtemelen siz, $1 IP adresiyle {{SITENAME}} sitesinde \"$2\" kullanıcı hesabının e-posta adresi olarak bu e-posta adresini belirtti.\n\nBu hesabın gerçekten size ait olduğunu onaylamak ve {{SITENAME}} sitesindeki e-posta işlevlerini aktif etmek için alttaki bağlantıyı tarayıcınızda açmanız gerekiyor:\n\n$3\n\nEğer bu hesap size ait değilse, e-posta adresi onayını iptal etmek için alttaki bağlantıyı takip edin:\n\n$5\n\nBu onay kodu $4 tarihine kadar geçerlidir.",
        "confirmemail_invalidated": "E-posta adresi doğrulaması iptal edildi",
        "invalidateemail": "E-posta doğrulamasını iptal et",
+       "notificationemail_subject_changed": "{{SITENAME}} sitesine kayıtlı e-posta adresi değiştirildi",
        "scarytranscludedisabled": "[Vikilerarası çapraz ekleme devre dışı]",
        "scarytranscludefailed": "[$1 için şablon alımı başarısız oldu]",
        "scarytranscludefailed-httpstatus": "[$1 için şablon alımı başarısız oldu: HTTP $2]",
        "watchlistedit-raw-done": "İzleme listeniz güncellendi.",
        "watchlistedit-raw-added": "{{PLURAL:$1|1 başlık|$1 başlık}} eklendi:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|1 başlık|$1 başlık}} silindi:",
-       "watchlistedit-clear-title": "İzleme listesi temizlendi",
+       "watchlistedit-clear-title": "İzleme listesini temizle",
        "watchlistedit-clear-legend": "İzleme listesini temizle",
        "watchlistedit-clear-explain": "İzleme listenizdeki tüm başlıklar silinecek",
        "watchlistedit-clear-titles": "Başlıklar:",
        "hijri-calendar-m9": "Ramazan",
        "hijri-calendar-m10": "Şevval",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|mesaj]])",
+       "timezone-local": "Yerel",
        "duplicate-defaultsort": "'''Uyarı:''' Varsayılan \"$2\" sınıflandırma anahtarı, önceki \"$1\" sınıflandırma anahtarını geçersiz kılıyor.",
        "duplicate-displaytitle": "<strong>Uyarı:</strong> \"$2\" şeklindeki yeni başlık \"$1\" şeklindeki eski başlığın üzerine yazılacak.",
        "invalid-indicator-name": "<strong>Hata:</strong> Sayfa durum göstergelerinin <code>name</code> özelliği boş olamaz.",
        "expand_templates_preview": "Önizleme",
        "expand_templates_preview_fail_html": "<em>{{SITENAME}} işlenmemiş HTML koduna izin verdiği ve oturum verilerinde kayıp yaşandığı için, ön izleme, JavaScript saldırılarına karşı önlem olarak gizlendi.</em>\n\n<strong>Eğer meşru bir ön izleme girişimi idiyse, tekrar deneyiniz.</strong>\nYine de çalışmıyorsa, [[Special:UserLogout|oturum kapamayı]] ve tekrar açmayı deneyin.",
        "expand_templates_preview_fail_html_anon": "<em>{{SITENAME}} işlenmemiş HTML koduna izin verdiği ve oturum verilerinde kayıp yaşandığı için, ön izleme, JavaScript saldırılarına karşı önlem olarak gizlendi.</em>\n\n<strong>Eğer meşru bir ön izleme girişimi idiyse, lütfen  [[Special:UserLogin|oturum açarak]] tekrar deneyin.</strong>",
-       "pagelanguage": "Sayfa dili seçicisi",
+       "pagelanguage": "Sayfa dilini değiştir",
        "pagelang-name": "Sayfa",
        "pagelang-language": "Dil",
        "pagelang-use-default": "Varsayılan dili kullan",
        "pagelang-select-lang": "Dil seçin",
        "right-pagelang": "Sayfa dilini değiştir",
        "action-pagelang": "sayfa dilini değiştir",
-       "log-name-pagelang": "Dil günlüğünü değiştir",
+       "log-name-pagelang": "Dil değişimi günlüğü",
        "log-description-pagelang": "Bu, sayfalardaki dil değişikliklerinin kayıt günlüğüdür.",
        "logentry-pagelang-pagelang": "$1, $3 sayfasının dilini $4 dilinden $5 diline {{GENDER:$2|çevirdi}}.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (etkin)",
        "log-action-filter-delete": "Silme türü:",
        "log-action-filter-patrol": "Devriye türü:",
        "log-action-filter-protect": "Koruma tipi:",
+       "log-action-filter-rights": "Hak türü seçimi:",
+       "log-action-filter-suppress": "Kaldırma türü:",
        "log-action-filter-upload": "Yükleme türü:",
        "log-action-filter-all": "Tümü",
        "log-action-filter-block-block": "Blok",
        "log-action-filter-protect-modify": "Koruma değişikliği",
        "log-action-filter-protect-unprotect": "Korunmayan",
        "log-action-filter-upload-upload": "Yeni yükleme",
-       "log-action-filter-upload-overwrite": "Yeniden yükle"
+       "log-action-filter-upload-overwrite": "Yeniden yükle",
+       "authmanager-email-label": "E-posta",
+       "authmanager-email-help": "E-posta adresi",
+       "authmanager-realname-label": "Gerçek ad",
+       "authmanager-realname-help": "Kullanıcının gerçek adı",
+       "authmanager-provider-temporarypassword": "Geçici parola",
+       "authprovider-resetpass-skip-label": "Atla",
+       "authprovider-resetpass-skip-help": "Parola sıfırlamayı atla."
 }
index 5d532fc..702c294 100644 (file)
        "prefs-help-email": "Latat majbur dkıṭwat uEmail-Adresayḍox, elo glozam inaqla ṫo³at uQliḍayḍox u hakka dlozam dmişadar lox Qliḍo ḥaṭo.",
        "prefs-help-email-others": "Kibux mijğolat 3am Hadome ğer biFaṭo duMamlo u luglozam dumat Işmux.",
        "prefs-signature": "Imḍa",
-       "email-address-validity-valid": "uEmail-Adresayḍux m³adlo yo.",
        "group-user": "Hadome",
        "group-all": "(kulle)",
        "newuserlogpage": "User creation log",
        "allmessages-language": "Leşono",
        "allmessages-filter-submit": "Zux",
        "thumbnail-more": "Rabtır",
-       "thumbnail_error": "Error creating thumbnail: $1",
        "tooltip-pt-userpage": "iFaṭaṭyḍox",
        "tooltip-pt-mytalk": "iFaṭayḍux duDroşo",
        "tooltip-pt-preferences": "a3ayaratayḍux",
        "dberr-problems": "Şubqono! iFaṭaṭe u3do kitla Qaṫre.",
        "htmlform-submit": "Mqayad",
        "htmlform-selectorother-other": "Ḥrene",
-       "feedback-message": "Ṫebo:",
        "feedback-cancel": "Mbaṫel",
+       "feedback-message": "Ṫebo:",
        "searchsuggest-search": "Kruxyo",
        "api-error-unknownerror": "Fawdo nuxroyo: $1",
        "duration-seconds": "$1 {{PLURAL:$1|Ṥaniye|Ṥaniyat}}",
index c38423b..d41c469 100644 (file)
@@ -2,7 +2,8 @@
        "@metadata": {
                "authors": [
                        "Thuvack",
-                       "아라"
+                       "아라",
+                       "Macofe"
                ]
        },
        "tog-underline": "Hlanganisa nkhwatiheto:",
        "viewsourcetext": "Unga langutisa naswona u kopa xihlovo xa tluka leri.",
        "viewyourtext": "Unga langutisa naswona ukopa xihlovo xa \"mindzulamiso yawena\" eka tluka leri.",
        "protectedinterface": "Tluka leri rina xihlanganisi xa software, naswona risirheleriwile kusivela kuthyakisiwa.",
-       "editinginterface": "'''Tivonele:''' ulekululamiseni tlika leri tirhisiwaka ku komba matsalwa yo hlanganisa ya software.\nKucinca eka tluka leri kunga onha kulanguteka ka matluka eka vatirhisi van'wana.\nLeswaku uvona kuhundzuluxa langutisa [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], Phurojeki yo hundzuluxa tindzimi ya MediaWiki.",
+       "editinginterface": "'''Tivonele:''' ulekululamiseni tlika leri tirhisiwaka ku komba matsalwa yo hlanganisa ya software.\nKucinca eka tluka leri kunga onha kulanguteka ka matluka eka vatirhisi van'wana.\nLeswaku uvona kuhundzuluxa langutisa [https://translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], Phurojeki yo hundzuluxa tindzimi ya MediaWiki.",
        "cascadeprotected": "Tluka leri risirheleriwile eka mindzulamiso, hikwalaho kaleswi rikatsiweke eka {{PLURAL:$1|tluka, leri|matluka, lama}} sirheleriweke nswona mangana nhlawulo wo \"katsakanya\" lowu hlawuriweke:\n$2",
        "namespaceprotected": "Uhava mfumelelo wo lulamisa matluka eka maviti-vundzawu bya '''$1'''.",
        "customcssprotected": "Uhava mpfumelelo wo ulamisa tluka leri ra CSS, hikuva rina minhlawulo ya mutirhisi un'wana.",
        "customjsprotected": "Uhava mpfumelelo wolulamisa tluka-xirhumiwa xa Java, hiuva ringava rikhome minhlawulo yamutirhisi un'wana.",
        "ns-specialprotected": "Matluka yohlawuleka amalulamisiwi.",
-       "titleprotected": "Nhlokomhaka leyi yisirheleriwile ekutumbuluxiwa hi [[User:$1|$1]].\nHikwlaho ka xivangelo xa \"''$2''\".",
+       "titleprotected": "Nhlokomhaka leyi yisirheleriwile ekutumbuluxiwa hi [[User:$1|$1]].\nHikwlaho ka xivangelo xa <em>$2</em>.",
        "logouttext": "'''Uhumile eka wiki leyi.'''\n\nUngaya emahlweni utirhisa {{SITENAME}} handle ko tipaluxa, kumbe unga <span class='plainlinks'>[$1 pfula unghena nakambe]</span> tani hi mutirhisa un'wana kumbe kumbe hivuxokoxoko bya wena.\nTsundzuka leswaku matluka man'wana mangaha komba onge upfule unghena eka wiki, loko ungasi sula tluka rakhompuyuta leri tsundzukaka matluka lawa uma vhakeleke.",
        "yourname": "Vito ra vutirhisi",
        "yourpassword": "Vito-mpfungulo:",
index bf2a862..f0128f9 100644 (file)
        "protectedpagetext": "Бу бит үзгәртүләрдән һәм башка төрле гамәлләрдән якланган.",
        "viewsourcetext": "Сез бу битнең башлангыч текстын карый һәм күчерә аласыз.",
        "viewyourtext": "Сез <strong>үз төзәтмәләрегезне</strong> бу сәхифәдә карый һәм чыгарылма текстны күчермәли аласыз.",
-       "protectedinterface": "Бу биттә программа тәэминатының интерфейс хәбәрләре бар. Вандализмга каршы көрәш сәбәпле, бу битне үзгәртү тыела. Әлеге хәбәрнең тәрҗемәсен өстәү яки үзгәртү өчен, зинһар өчен, MediaWiki [//translatewiki.net/ translatewiki.net] тәрҗемәләү сайтын кулланыгыз.",
+       "protectedinterface": "Бу биттә программа тәэминатының интерфейс хәбәрләре бар. Вандализмга каршы көрәш сәбәпле, бу битне үзгәртү тыела. Әлеге хәбәрнең тәрҗемәсен өстәү яки үзгәртү өчен, зинһар өчен, MediaWiki [https://translatewiki.net/ translatewiki.net] тәрҗемәләү сайтын кулланыгыз.",
        "editinginterface": "<strong>Игътибар:</strong> Сез программа тәэминатының интерфейс тексты булган битне үзгәртәсез. Бу башка кулланучыларга да тәэсир итәчәк.",
-       "translateinterface": "Бу хәбәрнең текстын үзгәртү өчен яки өстәмәләр кертү өчен MediaWiki җирләштерү сайтын кулланыгыз [//translatewiki.net/ translatewiki.net].",
+       "translateinterface": "Бу хәбәрнең текстын үзгәртү өчен яки өстәмәләр кертү өчен MediaWiki җирләштерү сайтын кулланыгыз [https://translatewiki.net/ translatewiki.net].",
        "cascadeprotected": "Бу бит үзгәртүләрдән сакланган, чөнки ул каскадлы саклау кабул ителгән {{PLURAL:$1|1=биткә|битләргә}} өстәлгән:\n$2",
        "namespaceprotected": "'''$1''' исем киңлегендәге битләрне үзгәртү өчен сезнең рөхсәтегез юк.",
        "customcssprotected": "Сез бу CSS-сәхифәне үзгәртә алмыйсыз, чөнки монда башка кулланучының шәхси көйләнмәләре саклана",
        "rightslog": "Кулланучының хокуклары көндәлеге",
        "action-read": "бу битне укырга",
        "action-edit": "бу битне үзгәртергә",
-       "action-createpage": "битләрне язырга",
-       "action-createtalk": "бәхәс битен ясарга",
+       "action-createpage": "бу битне төзү",
+       "action-createtalk": "бу бәхәс битен төзү",
        "action-move": "бу битне күчерерге",
        "action-sendemail": "электрон хат җибәрү",
        "nchanges": "$1 {{PLURAL:$1|үзгәртү}}",
        "allmessages": "Система хәбәрләре",
        "allmessagesname": "Исем",
        "allmessagesdefault": "Баштан ук куелган текс",
-       "allmessagestext": "Бу исемлек MediaWiki исемнәр мәйданында булган система хәбәрләренең исемлеге.\nГомуми MediaWiki локализациясендә катнашырга теләсәгез, зинһар [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Локализациясе] һәм [//translatewiki.net translatewiki.net] сәхифәләрне кулланыгыз.",
+       "allmessagestext": "Бу исемлек MediaWiki исемнәр мәйданында булган система хәбәрләренең исемлеге.\nГомуми MediaWiki локализациясендә катнашырга теләсәгез, зинһар [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Локализациясе] һәм [https://translatewiki.net translatewiki.net] сәхифәләрне кулланыгыз.",
        "allmessages-filter-legend": "Фильтр",
        "allmessages-filter-unmodified": "Үзгәртелмәгән",
        "allmessages-filter-all": "Барысы",
index 8007f58..3b5ff02 100644 (file)
        "protectedpagetext": "Bu bit üzgärtü öçen yabıq.",
        "viewsourcetext": "Sez bu bitneñ başlanğıç tekstın qarıy häm küçerä alasız:",
        "protectedinterface": "Bu bittä programma interfeysı xäbärläre bar. Vandalizmğa qarşı köräş säbäple, bu bitne üzgärtü tıyıla.",
-       "editinginterface": "'''İğtibar:''' Sez MediaWiki sistemasınıñ interfeys biten üzgärtäsez. Bu başqa qullanuçılarğa da tä'sir itäçäk. Tärcemä öçen [//translatewiki.net/wiki/Main_Page?setlang=tt-latn translatewiki.net] lokalizatsiäläw proyektın qullanığız.",
+       "editinginterface": "'''İğtibar:''' Sez MediaWiki sistemasınıñ interfeys biten üzgärtäsez. Bu başqa qullanuçılarğa da tä'sir itäçäk. Tärcemä öçen [https://translatewiki.net/wiki/Main_Page?setlang=tt-latn translatewiki.net] lokalizatsiäläw proyektın qullanığız.",
        "cascadeprotected": "Bu bit üzgärtülärdän saqlanğan, çönki ul kaskadlı saqlaw qabul itelgän {{PLURAL:$1|bitkä|bitlärgä}} östälgän:\n$2",
        "namespaceprotected": "'''$1''' isem kiñlegendäge bitlärne üzgärtü öçen sezneñ röxsätegez yuq.",
        "ns-specialprotected": "Maxsus bitlärne üzgärtep bulmıy.",
        "allmessagesname": "İsem",
        "allmessagesdefault": "Töpcay yazma",
        "allmessagescurrent": "Eligi yazma",
-       "allmessagestext": "Bu isemlek MediaWiki isemnär mäydanında bulğan sistema xäbärläreneñ isemlege.\nĞomumi MediaWiki lokalizatsiäsendä qatnaşırğa teläsägez, zinhar [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Lokalizatsiäse] häm [//translatewiki.net translatewiki.net] säxifälärne qullanığız.",
+       "allmessagestext": "Bu isemlek MediaWiki isemnär mäydanında bulğan sistema xäbärläreneñ isemlege.\nĞomumi MediaWiki lokalizatsiäsendä qatnaşırğa teläsägez, zinhar [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Lokalizatsiäse] häm [https://translatewiki.net translatewiki.net] säxifälärne qullanığız.",
        "allmessages-filter-legend": "Filtr",
        "allmessages-filter-unmodified": "Üzgärtelmägän",
        "allmessages-filter-all": "Barısı",
index 91a3e3a..757e97e 100644 (file)
        "history": "Арынның төөгүзү",
        "history_short": "Төөгү",
        "printableversion": "Парлап үндүрер янзызы",
-       "permalink": "Ð\94окÑ\82аамал Ñ\88өлүлге",
+       "permalink": "Ð\94окÑ\82аамал Ñ\85евиÑ\80и",
        "print": "Саазынга үндүрер",
        "view": "Көөр",
        "view-foreign": "$1 сайттан көөр",
        "italic_sample": "курсив хевир",
        "italic_tip": "Курсив хевир",
        "link_sample": "Шөлүлгениң ады",
-       "link_tip": "Иштики шөлүлге",
+       "link_tip": "Иштики арынче айтыг",
        "extlink_sample": "http://www.example.com холбааның ады",
-       "extlink_tip": "Даштыкы шөлүлге (\"http://\" префикс дугайында утпаңар)",
+       "extlink_tip": "Даштыкы арынче айтыг (\"http://\" префикс дугайында утпаңар)",
        "headline_sample": "Эге аттың сөзүглели",
        "headline_tip": "2-ги деңнелдиң эге ады",
        "nowiki_sample": "Форматтавас сөзүглелди бээр салыңар",
        "image_sample": "Чижек.jpg",
        "image_tip": "Киирген файл",
        "media_sample": "Чижек.ogg",
-       "media_tip": "Файлче шөлүлге",
+       "media_tip": "Файлче айтыг",
        "sig_tip": "Холуңар үжүү, үе-шагы",
        "hr_tip": "Доора шугум (көвей ажыглаваңар)",
        "summary": "Түңнел:",
        "unwatchedpages": "Хайгаарабас арыннар",
        "unusedtemplates": "Ажыглаан эвес майыктар",
        "unusedtemplateswlh": "өске холбаалар",
-       "randompage": "Дужа-келби таварышкан арын",
+       "randompage": "Душ бооп таваржып келген арын",
        "statistics": "Статистика",
        "statistics-pages": "Арыннар",
        "brokenredirects-edit": "өскертири",
        "linksearch": "Даштыкы холбааларга дилээри",
        "linksearch-ns": "Аттар делгеми:",
        "linksearch-ok": "Дилээри",
-       "linksearch-line": "$1-же $2-ден шөлүлге",
+       "linksearch-line": "$2-де бижиттинген $1 деп тускай айтыг",
        "listusers-submit": "Көргүзери",
        "activeusers-hidebots": "Роботтарны чажырары",
        "activeusers-hidesysops": "Эргелекчыларны чажырары",
        "sp-contributions-username": "ИП-адрес азы ажыглачының ады:",
        "sp-contributions-toponly": "Чазалгаларның чүгле сөөлгү хевирлерин көргүзер",
        "sp-contributions-submit": "Дилээри",
-       "whatlinkshere": "ШөлүлгелеÑ\80ни Ð±Ñ\8dÑ\8dр",
-       "whatlinkshere-title": "«$1» деп арынга шөлүтген арыннар",
+       "whatlinkshere": "Ð\90Ñ\80гÑ\8bÑ\88кан Ð°Ñ\80Ñ\8bннар",
+       "whatlinkshere-title": "«$1» деп арынче айтып турар тускай арыннар",
        "whatlinkshere-page": "Арын:",
        "linkshere": "Адаандагы арыннар бээр «'''[[:$1]]'''» шөлүдүп турарлар:",
        "nolinkshere": "'''[[:$1]]''' деп арынче шөлүтткен арыннар чок.",
        "tooltip-n-portal": "Төлевилел дугайында, маңаа чүнү кылып болурул, ол ышкаш кайда чүү барыл",
        "tooltip-n-currentevents": "Амгы болуушкуннар дугайында медээ",
        "tooltip-n-recentchanges": "Викиниң сөөлгү өскерлиишкиннер даңзызы",
-       "tooltip-n-randompage": "Дужа-келби таварышкан арынны көөр",
+       "tooltip-n-randompage": "Душ бооп таваржып келген арынны ажыдып көөрү",
        "tooltip-n-help": "Шынзылга ап болур чер",
-       "tooltip-t-whatlinkshere": "Ук Ð°Ñ\80Ñ\8bнÑ\87е Ñ\88өлүлгелиг Ñ\88Ñ\83пÑ\82Ñ\83 Ð°Ñ\80Ñ\8bннаÑ\80нÑ\8bÒ£ Ð´Ð°Ò£Ð·Ñ\8bзÑ\8b",
+       "tooltip-t-whatlinkshere": "Ð\91о Ð°Ñ\80Ñ\8bн-биле Ð°Ñ\80гÑ\8bжÑ\8bп, Ñ\82Ñ\8bÑ\80Ñ\82Ñ\8bжÑ\8bп Ð°Ð»Ð³Ð°Ð½ Ñ\85амÑ\8bк Ð°Ñ\80Ñ\8bннаÑ\80 Ñ\87изези",
        "tooltip-t-recentchangeslinked": "Бо арындан шөлүлгелиг арыннарында сөөлгү өскерилгелер",
        "tooltip-feed-rss": "Бо арының РСС медээ агымы",
        "tooltip-feed-atom": "Бо арының Атом медээ агымы",
index 04f2eb2..848ba1b 100644 (file)
@@ -2,7 +2,8 @@
        "@metadata": {
                "authors": [
                        "Moha",
-                       "Tifinaghes"
+                       "Tifinaghes",
+                       "ⵕⴰⵊⵉ"
                ]
        },
        "underline-always": "ⴷⴰⵢⵎⴰⵏ",
        "protect_change": "ⴱⴷⴷⴻⵍ",
        "unprotect": "ⴱⴷⴷⴻⵍ ⵜⴰⵙⵜⴰⵏⵜ",
        "newpage": "ⵜⴰⵙⵏⴰ ⵜⴰⵎⴰⵢⵏⵓⵜ",
+       "talkpage": "ⵎⵙⴰⵡⴰⵍ ⵅⴼ ⵜⴰⵙⵏⴰ ⴰ",
        "talkpagelinktext": "ⴰⵎⵢⴰⵏⵏⴰⵏ",
        "specialpage": "ⵜⴰⵙⵏⴰ ⵉⵥⵍⵉⵏ",
        "personaltools": "ⵉⵎⴰⵙⵙⵏ ⵉⵏⵡ",
        "currentevents": "ⵉⵏⵖⵎⵉⵙⵏ ⵉⵎⴰⵢⵏⵓⵜⵏ",
        "disclaimers": "ⵡⴰⵔ ⵜⴰⵎⴰⵙⴰⵢⵜ",
        "edithelp": "ⵜⵉⵡⵉⵙⵉ ⵏ ⵓⴱⴷⴷⴻⵍ",
+       "helppage-top-gethelp": "ⵜⵉⵡⵉⵙⵉ",
        "mainpage": "ⴰⵙⵏⵓⴱⴳ",
        "mainpage-description": "ⴰⵙⵏⵓⴱⴳ",
        "policy-url": "Project:ⵜⴰⵙⵔⵜⵉⵜ",
        "pagetitle-view-mainpage": "{{SITENAME}}",
        "backlinksubtitle": "← $1",
        "youhavenewmessages": "ⵜⵍⵍⴰ ⵖⵓⵔⴽ $1 ($2).",
+       "newmessageslinkplural": "{{PLURAL:$1|ⵜⵓⵣⵓⵏⵜ ⵜⴰⵎⴰⵢⵏⵓⵜ|999=ⵜⵓⵣⵓⵏⵉⵏ ⵜⵉⵎⴰⵢⵏⵓⵜⵉⵏ}}",
+       "youhavenewmessagesmulti": "ⵉⵍⵍⴰ ⵖⵓⵔⴽ ⵜⵓⵣⵓⵏⵉⵏ ⵜⵉⵎⴰⵢⵏⵓⵜⵉⵏ ⴳ $1",
        "editsection": "ⴱⴷⴷⴻⵍ",
        "editold": "ⴱⴷⴷⴻⵍ",
        "viewsourceold": "ⵥⵕ ⴰⵖⴱⴰⵍⵓ",
        "toc": "ⴰⴳⴱⵓⵔ",
        "showtoc": "ⵥⵕ",
        "hidetoc": "ⵃⴱⵓ",
+       "confirmable-yes": "ⵢⴰⵀ",
+       "confirmable-no": "ⵓⵀⵓ",
        "viewdeleted": "ⵥⵕ $1?",
        "feedlinks": "Feed:",
        "site-rss-feed": "\"$1\" RSS feed",
        "page-rss-feed": "\"$1\" RSS feed",
        "feed-atom": "ⴰⵜⵓⵎ",
        "feed-rss": "RSS",
-       "red-link-title": "$1 (ⵜⴰⵙⵏⴰ ⵓⵔ ⵜⵍⵍⴰ)",
+       "red-link-title": "$1 (âµ\9câ´°âµ\99âµ\8fâ´° â´° âµ\93âµ\94 âµ\9câµ\8dâµ\8dâ´°)",
        "nstab-main": "ⵜⴰⵙⵏⴰ",
        "nstab-user": "ⴰⵎⴷⴰⵏ ⵏ ⵜⴰⵙⵏⴰ",
        "nstab-media": "ⵜⴰⵙⵏⴰ ⵏ ⵎⵉⴷⵢⴰ",
        "nstab-template": "ⵜⴰⵍⵖⴰ",
        "nstab-help": "ⵜⴰⵙⵏⴰ ⵏ ⵜⵡⵉⵙⵉ",
        "nstab-category": "ⵜⴰⴳⴳⴰⵢⵜ",
+       "mainpage-nstab": "ⴰⵙⵏⵓⴱⴳ",
        "error": "ⴰⵣⴳⵍ",
        "internalerror": "ⴰⵣⴳⵍ ⴰⴳⵯⵏⵙⴰⵏ",
        "internalerror_info": "ⴰⵣⴳⵍ ⴰⴳⵯⵏⵙⴰⵏ :$1",
        "viewsource": "ⵥⵕ ⴰⵖⴱⴰⵍⵓ",
        "viewsource-title": "ⵥⵕ ⴰⵖⴱⴰⵍⵓ ⵏ $1",
        "exception-nologin": "ⵓⵔ ⵜⴽⵛⵎⴷ",
+       "welcomeuser": "ⴰⵏⵙⵓⴼ, $1!",
        "userlogin-yourname": "ⴰⵙⵙⴰⵖ",
        "yourpassword": "ⵜⴰⵡⴰⵍⵜ ⵓⵙⵉⴽⵍ:",
        "yourpasswordagain": "ⴰⵍⵙ ⵜⴰⵡⴰⵍⵜ ⵓⵙⵉⴽⵍ:",
        "newpassword": "ⵜⴰⵡⴰⵍⵜ ⵓⵙⵉⴽⵍ ⵜⴰⵎⴰⵢⵏⵓⵜ:",
        "retypenew": "ⴰⵍⵙ ⵜⴰⵡⴰⵍⵜ ⵓⵙⵉⴽⵍ ⵜⴰⵎⴰⵢⵏⵓⵜ:",
        "resetpass-submit-loggedin": "ⴱⴷⴷⴻⵍ ⵜⴰⵡⴰⵍⵜ ⵓⵙⵉⴽⵍ",
+       "resetpass-submit-cancel": "ⴼⴼⵖ",
        "passwordreset": "ⴰⵍⵙ ⵜⴰⵡⴰⵍⵜ ⵓⵙⵉⴽⵍ",
        "passwordreset-username": "ⴰⵙⵙⴰⵖ ⵓⵎⴷⴰⵏ:",
        "passwordreset-domain": "ⴰⵙⵡⵉⵔ:",
        "withoutinterwiki-submit": "ⵥⵕ",
        "nbytes": "$1 {{PLURAL:$1|byte|bytes}}",
        "ncategories": "$1 {{PLURAL:$1|ⵜⴰⴳⴳⴰⵢⵜ|ⵜⴰⴳⴳⴰⵢⵉⵏ}}",
-       "nviews": "$1 {{PLURAL:$1|ⵥⵕ|ⵥⵕ ⴰⴽⴽ}}",
        "longpages": "ⵜⴰⵙⵏⵉⵡⵉⵏ ⵎⵇⵇⴰⵔⵏⵜ",
        "newpages": "ⵜⵉⵙⵏⵉⵡⵉⵏ ⵜⵉⵎⴰⵢⵏⵓⵜⵉⵏ",
        "newpages-username": "ⴰⵙⵙⴰⵖ ⵓⵎⴷⴰⵏ:",
        "tooltip-pt-mytalk": "ⵜⴰⵙⵏⴰ ⵓⵎⵙⴰⵡⴰⵍ ⵏⵏⴽ",
        "tooltip-pt-mycontris": "ⵓⵎⵓⵖ ⵏ ⵜⵡⵉⵙⵉ ⵏⵏⴽ",
        "tooltip-pt-logout": "ⵓⴼⵓⵖ",
+       "tooltip-ca-talk": "ⴰⵎⵙⴰⵡⴰⵍ ⵅⴼ ⵜⵙⵏⴰ ⴰ",
        "tooltip-search": "ⵔⵣⵣⵓ ⵅⴼ {{SITENAME}}",
        "tooltip-search-fulltext": "ⵔⵣⵣⵓ ⴷⵉ ⵜⴰⵙⵏⵉⵡⵉⵏ ⵅⴼ ⵓⴹⵕⵉⵙ ⴰⴷ",
        "tooltip-p-logo": "ⴰⵙⵏⵓⴱⴳ",
        "logentry-delete-delete": "$1 ⴽⴽⵉⵙ ⵜⴰⵙⵏⴰ $3",
        "logentry-delete-restore": "$1 ⵙⵙⴰⵖⵓⵍ ⵜⴰⵙⵏⴰ $3",
        "rightsnone": "(ⵡⴰⵔ)",
-       "feedback-subject": "ⴰⵙⵏⵜⵍ:",
-       "feedback-message": "ⵜⴰⴱⵔⴰⵜ:",
        "feedback-close": "ⵉⵣⵎⵎⴻⵎ",
+       "feedback-message": "ⵜⴰⴱⵔⴰⵜ:",
+       "feedback-subject": "ⴰⵙⵏⵜⵍ:",
        "searchsuggest-search": "ⴰⵔⵣⵣⵓ",
-       "api-error-duplicate-popup-title": "ⵣⴷⴻⵎ {{PLURAL:$1|ⴰⵙⴷⴰⵡ|ⵉⵙⴷⴰⵡⵏ}}.",
        "api-error-filename-tooshort": "ⴰⵙⵙⴰⵖ ⵓⵙⴷⴰⵡ ⵉⴳⵣⵣⵓⵍ ⵛⵉⴳⴰⵏ.",
        "duration-seconds": "$1 {{PLURAL:$1|ⵜⴰⵙⵏⴰⵜ|ⵜⵉⵙⵏⴰⵜⵉⵏ}}",
        "duration-minutes": "$1 {{PLURAL:$1|ⵜⵓⵙⴷⴰⴷⵜ|ⵜⵓⵙⴷⴰⴷⵉⵏ}}",
        "duration-weeks": "$1 {{PLURAL:$1|ⵉⵎⴰⵍⴰⵙⵙ|ⵉⵎⴰⵍⴰⵙⵙⵏ}}",
        "duration-years": "$1 {{PLURAL:$1|ⴰⵙⴳⴳⵯⴰⵙ|ⵉⵙⴳⴳⵯⴰⵙⵏ}}",
        "duration-decades": "$1 {{PLURAL:$1|ⵜⴰⵙⵓⵜ|ⵜⴰⵙⵓⵜⵉⵏ}}",
-       "duration-centuries": "$1 {{PLURAL:$1|ⵜⴰⵙⵓⵜ|ⵜⴰⵙⵓⵜⵉⵏ}}"
+       "duration-centuries": "$1 {{PLURAL:$1|ⵜⴰⵙⵓⵜ|ⵜⴰⵙⵓⵜⵉⵏ}}",
+       "special-characters-group-latin": "ⵜⴰⵍⴰⵜⵉⵏⵉⵜ",
+       "special-characters-group-ipa": "IPA",
+       "special-characters-group-greek": "ⵜⴰⵢⵓⵏⴰⵏⵉⵜ",
+       "special-characters-group-arabic": "ⵜⴰⵄⵔⴰⴱⵜ",
+       "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-thai": "ⵜⴰⵟⴰⵢⵍⴰⵏⴷⵉⵜ",
+       "special-characters-group-lao": "ⵜⵍⴰⵡⵉⵜ",
+       "special-characters-group-khmer": "ⵅⴰⵎⵉⵔ"
 }
index 3eeda7f..f6381c2 100644 (file)
        "protectedpagetext": "بۇ بەت تەھرىرلەشنىڭ ئالدىنى ئېلىش ئۈچۈن قۇلۇپلانغان.",
        "viewsourcetext": "سىز بۇ بەتنى ئەسلى كودىنى كۆرەلەيسىز ۋە كۆچۈرەلەيسىز:",
        "viewyourtext": "بۇ بەتتىكى '''تەھرىرلىگەنلىرىڭىز'''نىڭ ئەسلى كودىنى كۆرۈپ كۆچۈرەلەيسىز.",
-       "protectedinterface": "بۇ بەت يۇمشاق دېتالنىڭ كۆرۈنۈش تېكستىنى تەمىنلىگەن، خالىغانچە تەھرىرلەشتىن ساقلىنىش ئۈچۈن قۇلۇپلانغان.\nمەسىلەن ئەگەر تەرجىمە قىلسىڭىز [//translatewiki.net/wiki/Main_Page?setlang=ug translatewiki.net] ئۇنداقتا MediaWiki يەرلىكلەشتۈرۈش پىلانىنى ئىشلىتىشنى ئويلىشىڭ.",
-       "editinginterface": "'''ئاگاھلاندۇرۇش:''' سىز تەھرىرلەۋاتقان بەت يۇمشاق دېتالنىڭ كۆرۈنۈش تېكستىگە ئىشلىتىلىدۇ.\n\nبۇ بەت ئۆزگەرتىلسە باشقا ئىشلەتكۈچىلەرنىڭ كۆرۈنۈش ئۇسلۇبىغا تەسىر كۆرسىتىدۇ.\n\nمەسىلەن ئەگەر تەرجىمە قىلسىڭىز [//translatewiki.net/wiki/Main_Page?setlang=ug translatewiki.net] ئۇنداقتا MediaWiki يەرلىكلەشتۈرۈش پىلانىنى ئىشلىتىشنى ئويلىشىڭ.",
+       "protectedinterface": "بۇ بەت يۇمشاق دېتالنىڭ كۆرۈنۈش تېكستىنى تەمىنلىگەن، خالىغانچە تەھرىرلەشتىن ساقلىنىش ئۈچۈن قۇلۇپلانغان.\nمەسىلەن ئەگەر تەرجىمە قىلسىڭىز [https://translatewiki.net/wiki/Main_Page?setlang=ug translatewiki.net] ئۇنداقتا MediaWiki يەرلىكلەشتۈرۈش پىلانىنى ئىشلىتىشنى ئويلىشىڭ.",
+       "editinginterface": "'''ئاگاھلاندۇرۇش:''' سىز تەھرىرلەۋاتقان بەت يۇمشاق دېتالنىڭ كۆرۈنۈش تېكستىگە ئىشلىتىلىدۇ.\n\nبۇ بەت ئۆزگەرتىلسە باشقا ئىشلەتكۈچىلەرنىڭ كۆرۈنۈش ئۇسلۇبىغا تەسىر كۆرسىتىدۇ.\n\nمەسىلەن ئەگەر تەرجىمە قىلسىڭىز [https://translatewiki.net/wiki/Main_Page?setlang=ug translatewiki.net] ئۇنداقتا MediaWiki يەرلىكلەشتۈرۈش پىلانىنى ئىشلىتىشنى ئويلىشىڭ.",
        "cascadeprotected": "بۇ بەت قوغدالغان چۈنكى تۆۋەندىكى {{PLURAL:$1|بىر|بىر قانچە}} بەت مەزكۇر بەتنى ئۆز ئىچىگە ئېلىش بىلەن بىللە \"زەنجىرسىمان قوغداش\" قوزغىتىلغان.\n\n$2",
        "namespaceprotected": "سىزنىڭ '''$1''' ئات بوشلۇقىدىكى بەتنى تەھرىرلەش ھوقۇقىڭىز يوق.",
        "customcssprotected": "بۇ CSS بەتنى تەھرىرلەش ھوقۇقىڭىز يوق، چۈنكى ئۇ باشقا بىر ئىشلەتكۈچىنىڭ شەخسىي تەڭشىكىنى ئۆز ئىچىگە ئالغان.",
        "querypage-disabled": "بۇ ئالاھىدە بەت ئۈنۈم سەۋەبىدىن چەكلەندى.",
        "apisandbox": "API قۇم ساندۇقى",
        "apisandbox-api-disabled": "مەزكۇر بېكەتتە API چەكلەندى.",
-       "apisandbox-intro": "بۇ بەت ئارقىلىق '''MediaWiki تور مۇلازىمىتى ئەپ ئېغىزى (API)نى سىناڭ'''.\nبۇ API نى ئىشلىتىشنىڭ تەپسىلاتىنى بىلمەكچى بولسىڭىز [//www.mediawiki.org/wiki/API:Main_page the API قوللانمىسى]نى كۆرۈڭ. مەسىلەن: [//www.mediawiki.org/wiki/API#A_simple_example مەلۇم ئاساسىي بەتنىڭ مەزمۇنىغا ئېرىشىش]، ئاندىن بىر مەشغۇلاتنى تاللاپ تېخىمۇ كۆپ ئۈلگە مىسالنى كۆرۈڭ.",
+       "apisandbox-intro": "بۇ بەت ئارقىلىق '''MediaWiki تور مۇلازىمىتى ئەپ ئېغىزى (API)نى سىناڭ'''.\nبۇ API نى ئىشلىتىشنىڭ تەپسىلاتىنى بىلمەكچى بولسىڭىز [https://www.mediawiki.org/wiki/API:Main_page the API قوللانمىسى]نى كۆرۈڭ. مەسىلەن: [https://www.mediawiki.org/wiki/API#A_simple_example مەلۇم ئاساسىي بەتنىڭ مەزمۇنىغا ئېرىشىش]، ئاندىن بىر مەشغۇلاتنى تاللاپ تېخىمۇ كۆپ ئۈلگە مىسالنى كۆرۈڭ.",
        "apisandbox-submit": "ئىلتىماس يوللا",
        "apisandbox-reset": "تازىلا",
        "apisandbox-examples": "مىسال",
        "allmessagesname": "ئاتى",
        "allmessagesdefault": "كۆڭۈلدىكى ئۇچۇر تېكستى",
        "allmessagescurrent": "نۆۋەتتىكى ئۇچۇر تېكستى",
-       "allmessagestext": "بۇ جايدا تەڭشىگىلى بولىدىغان ھەممە سىستېما كۆرۈنۈش ئۇچۇرلىرى كۆرسىتىلدى.\nئەگەر ھەقىقىي يەرلەشتۈرۈلگەن MediaWiki غا تۆھپە قوشماقچى بولسىڭىز[https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki يەرلىكلەشتۈرۈش] ۋە [//translatewiki.net translatewiki.net] نى زىيارەت قىلىڭ.",
+       "allmessagestext": "بۇ جايدا تەڭشىگىلى بولىدىغان ھەممە سىستېما كۆرۈنۈش ئۇچۇرلىرى كۆرسىتىلدى.\nئەگەر ھەقىقىي يەرلەشتۈرۈلگەن MediaWiki غا تۆھپە قوشماقچى بولسىڭىز[https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki يەرلىكلەشتۈرۈش] ۋە [https://translatewiki.net translatewiki.net] نى زىيارەت قىلىڭ.",
        "allmessagesnotsupportedDB": "بۇ بەتنى ئىشلەتكىلى بولمايدۇ، سەۋەبى '''$wgUseDatabaseMessages''' چەكلەنگەن.",
        "allmessages-filter-legend": "سۈزگۈچ",
        "allmessages-filter": "ئىختىيارىچە سۈزگۈچ ھالىتى:",
index 1ae4772..fddbd5a 100644 (file)
        "protectedpagetext": "Ця сторінка захищена від редагування та інших дій.",
        "viewsourcetext": "Ви можете переглянути та скопіювати вихідний текст цієї сторінки:",
        "viewyourtext": "Ви можете переглянути та скопіювати вихідний текст <strong>Ваших редагувань</strong> на цю сторінку.",
-       "protectedinterface": "Ця сторінка містить текст інтерфейсу програмного забезпечення цієї вікі, захищений з метою запобігання зловживанням. Щоб додати або змінити переклади для всіх вікі, перейдіть на [//translatewiki.net/ translatewiki.net], проекту локалізації MediaWiki.",
+       "protectedinterface": "Ця сторінка містить текст інтерфейсу програмного забезпечення цієї вікі, захищений з метою запобігання зловживанням. Щоб додати або змінити переклади для всіх вікі, перейдіть на [https://translatewiki.net/ translatewiki.net], проекту локалізації MediaWiki.",
        "editinginterface": "'''Увага:''' Ви редагуєте сторінку, що є частиною текстового інтерфейсу програм. \nЗміни цієї сторінки спричинять зміну інтерфейсу для інших користувачів цієї Вікі.",
-       "translateinterface": "Для того, щоб додати чи змінити переклад повідомлень інтерфейсу для всіх вікі-проектів, скористайтеся будь ласка проектом локалізації MediaWiki: [//translatewiki.net/ translatewiki.net].",
+       "translateinterface": "Для того, щоб додати чи змінити переклад повідомлень інтерфейсу для всіх вікі-проектів, скористайтеся будь ласка проектом локалізації MediaWiki: [https://translatewiki.net/ translatewiki.net].",
        "cascadeprotected": "Сторінка захищена від редагувань, оскільки вона включена на {{PLURAL:$1|1=сторінці|сторінках}}, де встановлено каскадний захист: $2",
        "namespaceprotected": "У вас нема дозволу редагувати сторінки в просторі назв «$1».",
        "customcssprotected": "У вас немає дозволу на редагування цієї CSS-сторінки, бо вона містить особисті налаштування іншого користувача.",
        "resetpass-temp-password": "Тимчасовий пароль:",
        "resetpass-abort-generic": "Зміну пароля було перервано розширенням.",
        "resetpass-expired": "Термін дії вашого пароля закінчився. Будь ласка, встановіть новий пароль для входу в систему.",
-       "resetpass-expired-soft": "Термін дії вашого пароля закінчився, і тепер він повинен бути змінений. Будь ласка, виберіть новий пароль або натисніть \"{{int:resetpass-submit-cancel}}\", щоб змінити його пізніше.",
-       "resetpass-validity-soft": "Ваш пароль є некоректним: $1\n\nБудь ласка, виберіть новий пароль або натисніть «{{int:resetpass-submit-cancel}}», щоб скинути його пізніше.",
+       "resetpass-expired-soft": "Термін дії вашого пароля закінчився, і тепер він повинен бути змінений. Будь ласка, виберіть новий пароль або натисніть \"{{int:authprovider-resetpass-skip-label}}\", щоб змінити його пізніше.",
+       "resetpass-validity-soft": "Ваш пароль є некоректним: $1\n\nБудь ласка, виберіть новий пароль або натисніть «{{int:authprovider-resetpass-skip-label}}», щоб скинути його пізніше.",
        "passwordreset": "Скинути пароль",
        "passwordreset-text-one": "Заповніть цю форму, щоб отримати тимчасовий пароль електронною поштою.",
        "passwordreset-text-many": "{{PLURAL:$1|Заповніть одне з полів для отримання тимчасового пароля електронною поштою.}}",
        "rightslogtext": "Це протокол зміни прав користувачів.",
        "action-read": "перегляд цієї сторінки",
        "action-edit": "редагування цієї сторінки",
-       "action-createpage": "Ñ\81Ñ\82воÑ\80еннÑ\8f Ñ\81Ñ\82оÑ\80Ñ\96нок",
-       "action-createtalk": "Ñ\81Ñ\82воÑ\80еннÑ\8f Ñ\81Ñ\82оÑ\80Ñ\96нок Ð¾Ð±Ð³Ð¾Ð²Ð¾Ñ\80енÑ\8c",
+       "action-createpage": "Ñ\81Ñ\82воÑ\80иÑ\82и Ñ\86Ñ\8e Ñ\81Ñ\82оÑ\80Ñ\96нкÑ\83",
+       "action-createtalk": "Ñ\81Ñ\82воÑ\80иÑ\82и Ñ\86Ñ\8e Ñ\81Ñ\82оÑ\80Ñ\96нкÑ\83 Ð¾Ð±Ð³Ð¾Ð²Ð¾Ñ\80еннÑ\8f",
        "action-createaccount": "створення цього облікового запису",
        "action-autocreateaccount": "автоматичне створення цього зовнішнього облікового запису користувача",
        "action-history": "переглядати історію цієї сторінки",
        "upload-http-error": "Відбулася помилка HTTP: $1",
        "upload-copy-upload-invalid-domain": "З цього домену завантаження неможливе.",
        "upload-foreign-cant-upload": "Ця вікі не налаштована на завантаження файлів у запитаний сторонній файловий репозиторій.",
+       "upload-foreign-cant-load-config": "Завантаження конфігурації завантаження файлів на зовнішнє сховище файлів не вдалося.",
+       "upload-dialog-disabled": "Завантаження файлів з допомогою цього діалогового вікна відключені у цій вікі.",
        "upload-dialog-title": "Завантажити файл",
        "upload-dialog-button-cancel": "Скасувати",
        "upload-dialog-button-done": "Готово",
        "apisandbox": "Майданчик для тестування API",
        "apisandbox-jsonly": "Для використання API-пісочниці потрібен JavaScript.",
        "apisandbox-api-disabled": "API вимкнуто на цьому сайті.",
-       "apisandbox-intro": "Ця сторінка служить для експериментування з <strong>MediaWiki веб-API</strong>.\nЗверніться до [[mw:API:Main page|документації]] для докладнішої інформації про використання API. Приклад: [//www.mediawiki.org/wiki/API#A_simple_example як отримати вміст головної сторінки]. Виберіть дію, щоб побачити більше прикладів.\n\nЗверніть увагу, що, хоча це пісочниця, дії, виконані вами, на цій сторінці можуть змінити вікі.",
+       "apisandbox-intro": "Ця сторінка служить для експериментування з <strong>MediaWiki веб-API</strong>.\nЗверніться до [[mw:API:Main page|документації]] для докладнішої інформації про використання API. Приклад: [https://www.mediawiki.org/wiki/API#A_simple_example як отримати вміст головної сторінки]. Виберіть дію, щоб побачити більше прикладів.\n\nЗверніть увагу, що, хоча це пісочниця, дії, виконані вами, на цій сторінці можуть змінити вікі.",
        "apisandbox-fullscreen": "Розгорнути панель",
        "apisandbox-fullscreen-tooltip": "Розгорнути панель пісочниці, щоб заповнити вікно браузера.",
        "apisandbox-unfullscreen": "Показати сторінку",
        "booksources-text": "На цій сторінці наведено список посилань на сайти, де ви, можливо, знайдете додаткову інформацію про книгу. Це інтернет-магазини й системи пошуку в бібліотечних каталогах.",
        "booksources-invalid-isbn": "Вказаний номер ISBN, судячи з усього, містить помилку. Будь ласка, перевірте, що при перенесенні номера з першоджерела не виникло спотворень.",
        "specialloguserlabel": "Виконавець:",
-       "speciallogtitlelabel": "Ціль (назва сторінки або {{ns:user}}:ім'я користувача):",
+       "speciallogtitlelabel": "Ціль (назва сторінки або {{ns:user}}:Ім'я_користувача):",
        "log": "Журнали",
        "logeventslist-submit": "Показати",
        "all-logs-page": "Усі публічні журнали",
        "sp-contributions-username": "IP-адреса або ім'я користувача:",
        "sp-contributions-toponly": "Показувати тільки редагування, що є останніми версіями",
        "sp-contributions-newonly": "Показувати тільки редагування, які є створеннями сторінок",
+       "sp-contributions-hideminor": "Приховати малі правки",
        "sp-contributions-submit": "Пошук",
        "whatlinkshere": "Посилання сюди",
        "whatlinkshere-title": "Сторінки, що посилаються на «$1»",
        "allmessagesname": "Назва",
        "allmessagesdefault": "Стандартний текст",
        "allmessagescurrent": "Поточний текст",
-       "allmessagestext": "Це список усіх системних повідомлень, які доступні в просторі назв «MediaWiki».\nБудь ласка, відвідайте [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] і [//translatewiki.net translatewiki.net], якщо ви хочете зробити внесок до спільної локалізації MediaWiki.",
+       "allmessagestext": "Це список усіх системних повідомлень, які доступні в просторі назв «MediaWiki».\nБудь ласка, відвідайте [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] і [https://translatewiki.net translatewiki.net], якщо ви хочете зробити внесок до спільної локалізації MediaWiki.",
        "allmessagesnotsupportedDB": "Ця сторінка не може використовуватися, оскільки вимкнена опція '''$wgUseDatabaseMessages'''.",
        "allmessages-filter-legend": "Фільтр",
        "allmessages-filter": "Фільтр за внесеними змінами:",
        "exif-pixelydimension": "Висота зображення",
        "exif-usercomment": "Додатковий коментар",
        "exif-relatedsoundfile": "Файл звукового коментаря",
-       "exif-datetimeoriginal": "Оригинальні дата й час",
+       "exif-datetimeoriginal": "Оригінальні дата й час",
        "exif-datetimedigitized": "Дата й час оцифровки",
        "exif-subsectime": "Долі секунд часу редагування файлу",
        "exif-subsectimeoriginal": "Долі секунд оригінального часу",
        "mw-widgets-dateinput-placeholder-month": "РРРР-ММ",
        "mw-widgets-titleinput-description-new-page": "сторінка ще не існує",
        "mw-widgets-titleinput-description-redirect": "перенаправлення на $1",
-       "api-error-blacklisted": "Будь ласка, виберіть іншу, більш зрозумілу назву.",
        "sessionmanager-tie": "Не можна поєднувати кілька типів автентифікації запиту: $1.",
        "sessionprovider-generic": "сесій $1",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "сесій на основі кук",
        "log-action-filter-newusers": "Тип створення облікового запису:",
        "log-action-filter-patrol": "Тип патрулювання:",
        "log-action-filter-protect": "Тип захисту:",
-       "log-action-filter-rights": "Тип зміни прав",
-       "log-action-filter-suppress": "Тип приховування",
+       "log-action-filter-rights": "Тип зміни прав:",
+       "log-action-filter-suppress": "Тип приховування:",
        "log-action-filter-upload": "Тип завантаження:",
        "log-action-filter-all": "Усі",
        "log-action-filter-block-block": "Блокування",
        "cannotauth-not-allowed-title": "Доступ заборонено",
        "cannotauth-not-allowed": "Вам не дозволено використовувати цю сторінку",
        "changecredentials": "Зміна облікових даних",
-       "changecredentials-submit": "Змінити",
-       "changecredentials-submit-cancel": "Скасувати",
+       "changecredentials-submit": "Змінити облікові дані",
        "changecredentials-invalidsubpage": "«$1» не є коректним типом облікових даних.",
        "changecredentials-success": "Ваші облікові дані змінено.",
        "removecredentials": "Вилучити облікові дані",
-       "removecredentials-submit": "Вилучити",
-       "removecredentials-submit-cancel": "Скасувати",
+       "removecredentials-submit": "Вилучити облікові дані",
        "removecredentials-invalidsubpage": "$1 не є коректним типом облікових даних.",
        "removecredentials-success": "Ваші облікові дані вилучено.",
        "credentialsform-provider": "Тип облікових даних:",
        "linkaccounts-success-text": "Обліковий запис було пов'язано.",
        "linkaccounts-submit": "Пов'язати облікові записи",
        "unlinkaccounts": "Відв'язати облікові записи",
-       "unlinkaccounts-success": "Обліковий запис було відв'язано."
+       "unlinkaccounts-success": "Обліковий запис було відв'язано.",
+       "authenticationdatachange-ignored": "Неопрацьована зміна облікових даних. Можливо, жоден з провайдерів не був налаштований?"
 }
index 73e3d6d..630d964 100644 (file)
                        "عثمان خان شاہ",
                        "Syedalinaqinaqvi",
                        "محمد افضل",
-                       "Macofe"
+                       "Macofe",
+                       "Hindustanilanguage",
+                       "امین اکبر",
+                       "Jdforrester"
                ]
        },
        "tog-underline": "ربط کی خط کشیدگی:",
        "april-gen": "اپريل",
        "may-gen": "مئی",
        "june-gen": "جون",
-       "july-gen": "جولائ",
+       "july-gen": "جولائی",
        "august-gen": "اگست",
        "september-gen": "ستمبر",
        "october-gen": "اکتوبر",
        "protectedpagetext": "اس صفحہ کو تدوین سے محفوظ رکھنے کیلیے مقفل کر دیا گیا ہے۔",
        "viewsourcetext": "آپ صرف مسودہ دیکھ سکتے ہیں اور اسکی نقل اتار سکتے ہیں۔",
        "viewyourtext": "آپ اس مواد کو دیکھ سکتے ہیں اور اٹھا (کاپی) سکتے ہیں <strong>آپ کی ترامیم</strong> اس صفحہ پر۔",
-       "protectedinterface": "یہ صفحہ سوفٹ وئیر کے لیے انٹرفیس متن فراہم کرتا ہے، اور ناجائزاستعمال کے سدِباب کے لیے اِسے مقفل کیا گیا ہے.",
-       "editinginterface": "'''انتباہ: ''' آپ ایک ایسا صفحہ تدوین کر رہے ہیں جو سوفٹ ویئر کیلئے انٹرفیس متن فراہم کرتا ہے۔ اس صفحہ میں کی جانے والی ترمیم، دیگر صارفین کے لیے انٹرفیس کو تبدیل کردے گی۔\nبراہِ کرم، ترجمہ کے لیے [//translatewiki.net/wiki/Main_Page?setlang=en '''ٹرانسلیٹ ویکی.نیٹ'''] (میڈیا ویکی دارالترجمہ) استعمال کریں.",
-       "translateinterface": "تمام ویکیوں میں تبدیلی یا شامل کرنے کے لیے، اسے استعمال کریں [//translatewiki.net/ translatewiki.net]، میڈیا ویکی دارالترجمہ.",
+       "protectedinterface": "{{fmbox \n| type = editnotice\n| image = [[File:Namespace MediaWiki.svg|45px]]\n| text = '''اس [[mw:Manual:System message|انٹرفیس پیغام]] یا [[ویکیپیڈیا:جلد|جلد]] کی دستاویز [[mw:Manual:Interface/{{PAGENAME}}|میڈیاویکی ڈاٹ آرگ]] یا [[translatewiki:MediaWiki:{{PAGENAME}}/qqq|ٹرانسلیٹ ویکی ڈاٹ نیٹ]] پر بنائی جا سکتی ہے۔''' <br /> چونکہ یہ صفحہ میڈیاویکی سوفٹویئر کے لیے انٹرفیس متن فراہم کرتا ہے، اس لیے اس میں محض [[ویکیپیڈیا:منتظمین|منتظمین]] ہی ترمیم کر سکتے ہیں۔ البتہ اگر آپ کو اس میں کسی قسم کی ترمیم مطلوب ہو تو ذیل میں موجود بٹن پر کلک کرکے اس پیغام میں ترمیم کی درخواست کر سکتے ہیں۔\n<div class=\"center\" style=\"margin-top: 4px;\">{{درخواست ترمیم روانہ کریں|type=full}}</div>\n}}{{editnotice load\n| notice action = view \n}}",
+       "editinginterface": "<strong>انتباہ: </strong> آپ ایک ایسے صفحے میں ترمیم کر رہے ہیں جو سوفٹ ویئر کے لیے انٹرفیس متن فراہم کرتا ہے۔ اس صفحہ میں کی جانے والی تبدیلی سے اس ویکی پر دیگر صارفین کے لیے انٹرفیس متاثر ہوگی۔",
+       "translateinterface": "تمام ویکیوں میں تبدیلی یا شامل کرنے کے لیے، [https://translatewiki.net/ translatewiki.net]کو استعمال کریں ، میڈیا ویکی دارالترجمہ.",
        "namespaceprotected": "آپ کو '''$1''' فضائے نام میں صفحات تدوین کرنے کی اِجازت نہیں ہے.",
        "mycustomcssprotected": "آپ اس سی ایس ایس (CSS) صفحہ میں ترمیم کرنے کا اختیار نہیں رکھتے۔",
        "mycustomjsprotected": "آپ اس جاوا اسکپرٹ (JavaScript) صفحہ میں ترمیم کرنے کا اختیار نہیں رکھتے۔",
        "newarticle": "(نیا)",
        "newarticletext": "آپ نے ایک ایسے صفحے کے ربط کی پیروی کی ہے جو کہ ابھی موجود نہیں ہے.\nیہ صفحہ تخلیق کرنے کیلئے درج ذیل خانہ میں متن درج کیجئے (مزید معلومات کیلئے [$1 صفحۂ معاونت] ملاحظہ فرمائیے).\nاگر آپ یہاں غلطی سے پہنچے ہیں تو پچھلے صفحے پر واپس جانے کیلئے اپنے متصفح پر '''back''' کا بٹن ٹک کیجئے.",
        "anontalkpagetext": "----''یہ صفحہ ایک ایسے صارف کا ہے جنہوں نے یا تو اب تک اپنا کھاتا نہیں بنایا یا پھر وہ اسے استعمال نہیں کر رہے/ رہی ہیں۔ لہٰذا ہمیں انکی شناخت کے لئے ایک عددی آئی پی پتہ استعمال کرنا پڑرہا ہے۔ اس قسم کا آئی پی پتہ ایک سے زائد صارفین کے لئے مشترک بھی ہوسکتا ہے۔ اگر آپکی موجودہ حیثیت ایک گمنام صارف کی ہے اور آپ محسوس کریں کہ اس صفحہ پر آپکی جانب منسوب یہ بیان غیرضروری ہے تو براہ کرم [[Special:CreateAccount|کھاتہ بنائیں]] یا [[Special:UserLogin|داخلِ نوشتہ]] ہوجائیے تاکہ مستقبل میں آپکو گمنام صارفین میں شمار کرنے سے پرہیز کیا جاسکے۔\"",
-       "noarticletext": "اِس صفحہ میں فی الحال کوئی متن موجود نہیں ہے.\nآپ دیگں صفحات میں [[Special:Search/{{PAGENAME}}|اِس صفحہ کے عنوان کیلئے تلاش کرسکتے ہیں]]، <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>",
+       "noarticletext": "اِس صفحہ میں فی الحال کوئی متن موجود نہیں ہے۔\nآپ دیگر صفحات میں [[Special:Search/{{PAGENAME}}|اِس صفحہ کے عنوان کے لیے تلاش کرسکتے ہیں]]، <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>",
        "userpage-userdoesnotexist-view": "صارف کھاتہ \"$1\" مندرج نہیں ہے۔",
        "updated": "(اپ ڈیٹڈ)",
        "note": "'''نوٹ:'''",
        "defaultmessagetext": "طے شدہ پیغام کا متن",
        "content-model-text": "سادہ متن",
        "content-model-javascript": "جاوا اسکرپٹ",
+       "undo-summary": "[[Special:Contributions/$2|$2]] ([[User talk:$2|تبادلہ خیال]]) کی جانب سے کی گئی ترمیم $1 رد کردی گئی ہے۔",
        "viewpagelogs": "اس صفحہ کیلیے نوشتہ جات دیکھیے",
        "nohistory": "اِس صفحہ کیلئے کوئی تدوینی تاریخچہ موجود نہیں ہے.",
        "currentrev": "حـالیـہ تـجدید",
        "difference-multipage": "(فرق مابین صفحات)",
        "lineno": "لکیر $1:",
        "compareselectedversions": "منتخب متـن کا موازنہ",
-       "editundo": "استرجع",
+       "editundo": "رد ØªØ±Ù\85Û\8cÙ\85",
        "diff-empty": "(کوئی فرق نہیں)",
        "diff-multi-sameuser": "({{PLURAL: $1 | ایک متوسط نظرثانی | $1 کئی متوسط نظرثانیاں}}ایک ہی صارف کی جانب سے نہیں دکھائی گئی)",
        "searchresults": "تلاش کا نتیجہ",
        "sourcefilename": "اسم ملف (فائل) کا منبع:",
        "destfilename": "تعین شدہ اسم ملف:",
        "watchthisupload": "یہ صفحہ زیر نظر کریں",
+       "upload-dialog-disabled": "اس ویکی پر اس ڈائیلاگ سے فائل اپ لوڈز غیر فعال ہیںَ",
        "upload-dialog-button-cancel": "منسوخ",
        "upload-dialog-button-done": "مکمل",
        "upload-dialog-button-save": "محفوظ",
        "wlshowlast": "دکھائیں آخری $1 گھنٹے $2 دن",
        "watchlist-hide": "چھپائیں",
        "watchlist-submit": "دکھائیں",
+       "wlshowtime": "ظاہر ہونے کی مدت:",
        "wlshowhideminor": "معمولی ترامیم",
        "wlshowhidebots": "روبہ جات",
        "wlshowhideliu": "مندرج صارفین",
        "wlshowhideanons": "گمنام صارفین",
        "wlshowhidepatr": "مراجعت شدہ ترامیم",
        "wlshowhidemine": "میری ترامیم",
+       "wlshowhidecategorization": "صفحاتی زمرہ بندی",
        "watchlist-options": "اختیارات برائے زیرِنظرفہرست",
        "enotif_reset": "جملہ صفحات کو بطور زیارت شدہ نشان زد کریں",
        "enotif_subject_deleted": "{{SITENAME}} میں صفحہ $1 صارف $2 نے {{GENDER:$2|حذف کیا}}",
        "tooltip-summary": "مختصر خلاصہ درج کریں",
        "anonymous": "{{SITENAME}} گمنام صارف",
        "others": "دیگر",
+       "pageinfo-visiting-watchers": "تعداد ناظرین جنہوں نے حالیہ ترامیم کا مشاہدہ کیا",
+       "pageinfo-hidden-categories": "پوشیدہ {{PLURAL:$1|زمرہ|زمرہ جات}} ($1)",
        "pageinfo-toolboxlink": "معلومات صفحہ",
        "markaspatrolledtext": "اس صفحہ کو بطور مراجعت شدہ نشان زد کریں",
        "deletedrevision": "حذف شدہ پرانی ترمیم $1۔",
        "monthsall": "تمام",
        "deletedwhileediting": "انتباہ: آپ کے ترمیم شروع کرنے کے بعد یہ صفحہ حذف کیا جا چکا ہے!",
        "confirm_purge_button": "جی!",
+       "confirm-rollback-button": "ٹھیک ہے",
        "semicolon-separator": "؛&#32;",
        "imgmultipageprev": "← پچھلا",
        "imgmultipagenext": "اگلا →",
index 608b867..7b604e7 100644 (file)
        "actionthrottled": "Tezlik cheklovi",
        "protectedpagetext": "Bu sahifa tahrirlash va boshqa oʻzgarishlar kiritishdan himoyalangan.",
        "viewsourcetext": "Siz bu sahifaning manbasini koʻrishingiz va uni nusxasini olishingiz mumkin:",
-       "protectedinterface": "Ushbu sahifada dasturiy taʼminot interfeysi xabari mavjud. Bezoriliklardan saqlash uchun uni oʻzgartirish taʼqiqlangan.\nUshbu xabar tarjimasini qoʻshish yoki oʻzgartirish uchun, iltimos, MediaWikining [//translatewiki.net/ translatewiki.net] mahalliylashtirish saytidan foydalaning.",
+       "protectedinterface": "Ushbu sahifada dasturiy taʼminot interfeysi xabari mavjud. Bezoriliklardan saqlash uchun uni oʻzgartirish taʼqiqlangan.\nUshbu xabar tarjimasini qoʻshish yoki oʻzgartirish uchun, iltimos, MediaWikining [https://translatewiki.net/ translatewiki.net] mahalliylashtirish saytidan foydalaning.",
        "editinginterface": "<strong>Eʼtibor bering:</strong> Siz interfeys matnini aks ettiruvchi sahifani tahrirlamoqdasiz.\nUning oʻzgartirilishi boshqa foydalanuvchilar uchun ham interfeys oʻzgarishiga olib keladi.",
-       "translateinterface": "Ushbu xabar tarjimasini qoʻshish yoki oʻzgartirish uchun, iltimos, MediaWikining [//translatewiki.net/ translatewiki.net] mahalliylashtirish saytidan foydalaning.",
+       "translateinterface": "Ushbu xabar tarjimasini qoʻshish yoki oʻzgartirish uchun, iltimos, MediaWikining [https://translatewiki.net/ translatewiki.net] mahalliylashtirish saytidan foydalaning.",
        "namespaceprotected": "Sizda '''$1''' nomfazosi sahifalarini tahrirlash huquqi yoʻq",
        "customcssprotected": "Sizda uchbu CSS sahifani tahrirlash huquqi yoʻq, chunki bu yerda boshqa foydalanuvchining shaxsiy moslamalari saqlanadi.",
        "customjsprotected": "Sizda uchbu JavaScript sahifani tahrirlash huquqi yoʻq, chunki bu yerda boshqa foydalanuvchining shaxsiy moslamalari saqlanadi.",
index bc47ef1..882ea01 100644 (file)
        "protectedpagetext": "Sta pàjina ła xe stà proteta de modo che nisun posa canbiarla o far altre operasion.",
        "viewsourcetext": "Se pole vardar e copiar el testo de sta pagina:",
        "viewyourtext": "Xè posibile vedàre e copiare el codexe sorzente de le '''to modifighe''' a sta pajina:",
-       "protectedinterface": "Sta pàjina ła gà drento un testo de l'interfacia utente del software de sto sito, quindi la xe proteta parché nisuni ła strusie.\nPar xontar o modifegar tradusion par tute łe wiki doparar [//translatewiki.net/ translatewiki.net], el projeto de locałixasion de MediaWiki.",
-       "editinginterface": "'''Ocio:''' El testo de sta pàjina el fa parte de l'interfacia utente del sito. Tute łe modifeghe aportae a sta pajina se riflete so i mesaji visuałixà par tuti i utenti so sta wiki.\nPar xontare o modifegar łe tradusion vałide so tute łe wiki, considera ła posibiłità de doparar [//translatewiki.net/wiki/Main_Page?setlang=vec translatewiki.net], el projeto MediaWiki par ła localixasion.",
+       "protectedinterface": "Sta pàjina ła gà drento un testo de l'interfacia utente del software de sto sito, quindi la xe proteta parché nisuni ła strusie.\nPar xontar o modifegar tradusion par tute łe wiki doparar [https://translatewiki.net/ translatewiki.net], el projeto de locałixasion de MediaWiki.",
+       "editinginterface": "'''Ocio:''' El testo de sta pàjina el fa parte de l'interfacia utente del sito. Tute łe modifeghe aportae a sta pajina se riflete so i mesaji visuałixà par tuti i utenti so sta wiki.\nPar xontare o modifegar łe tradusion vałide so tute łe wiki, considera ła posibiłità de doparar [https://translatewiki.net/wiki/Main_Page?setlang=vec translatewiki.net], el projeto MediaWiki par ła localixasion.",
        "cascadeprotected": "So sta pajina no xè posibiłe efetuare modifeghe parché xè sta inclusa {{PLURAL:$1|ne ła pajina indicà de seguito, che xè sta proteta|ne łe pajine indicae de seguito, che e xè sta protete}} sełesionando ła protesion \"ricorsiva\":\n$2",
        "namespaceprotected": "No se dispone de i parmesi nesesari par modifegare łe pajine del namespace '''$1'''.",
        "customcssprotected": "Nò se dispone dei parmesi necesari a la modifega de sta pajina CSS, in quanto la contien le inpostasion personali de n'altro utente.",
        "allmessagesname": "Nome",
        "allmessagesdefault": "Testo predefinìo",
        "allmessagescurrent": "Testo come che el xe desso",
-       "allmessagestext": "Sta quà l'è na lista de tuti i messagi disponibili nel namespace MediaWiki.\nPar piaser visita [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] e [//translatewiki.net translatewiki.net] se te voli jutarne par la traduzion del software MediaWiki ne le varie lengue.",
+       "allmessagestext": "Sta quà l'è na lista de tuti i messagi disponibili nel namespace MediaWiki.\nPar piaser visita [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] e [https://translatewiki.net translatewiki.net] se te voli jutarne par la traduzion del software MediaWiki ne le varie lengue.",
        "allmessagesnotsupportedDB": "'''{{ns:special}}:Allmessages''' no'l xè supportà parché '''$wgUseDatabaseMessages''' no'l xè ativo.",
        "allmessages-filter-legend": "Filtro",
        "allmessages-filter": "Filtra par stato de personalixassion:",
index c8964aa..0fdce19 100644 (file)
        "protectedpagetext": "Nece lehtpol' om luklostadud, miše kaita se redaktiruindaspäi da toižis tegendoišpäi.",
        "viewsourcetext": "Sab lugeda da kopiruida necen lehtpolen augotižtekst:",
        "protectedinterface": "Necil lehtpolel om programman interfeistedotuz. Se om luklostadud, miše kaita se vandalizmaspäi.",
-       "editinginterface": "'''Homaikat:''' Tö ladit redaktiruida lehtpol't, kudambal om programman interfeistekst.\nMugoi tegend toižetab interfeisan irdnägu toižiden kävutajiden täht.\nKändmižen täht om paremb kävutada [//translatewiki.net/wiki/Main_Page?setlang=vep translatewiki.net] - MediaWikin lokalizacijan projekt.",
+       "editinginterface": "'''Homaikat:''' Tö ladit redaktiruida lehtpol't, kudambal om programman interfeistekst.\nMugoi tegend toižetab interfeisan irdnägu toižiden kävutajiden täht.\nKändmižen täht om paremb kävutada [https://translatewiki.net/wiki/Main_Page?setlang=vep translatewiki.net] - MediaWikin lokalizacijan projekt.",
        "namespaceprotected": "Teil ei ole oiktust redaktiruida lehtpolid '''$1'''-nimiavaruses.",
        "customcssprotected": "Teil ei ole oiktust redaktiruida nece CSS-lehtpol’, sikš sil oma toižen ühtnijan personaližed järgendused.",
        "customjsprotected": "Teil ei ole oiktust redaktiruida nece JavaScript-lehtpol’, sikš sil oma toižen ühtnijan personaližed järgendused.",
index 65cae9d..3715253 100644 (file)
@@ -77,7 +77,7 @@
        "tog-ccmeonemails": "Gửi bản sao cho tôi khi gửi thư điện tử cho người khác",
        "tog-diffonly": "Không hiển thị nội dung trang dưới phần so sánh phiên bản",
        "tog-showhiddencats": "Hiển thị thể loại ẩn",
-       "tog-norollbackdiff": "Không so sánh sau khi lùi sửa",
+       "tog-norollbackdiff": "Bỏ qua bản so sánh sau khi lùi sửa",
        "tog-useeditwarning": "Cảnh báo khi tôi thoát trang sửa đổi mà chưa lưu trang",
        "tog-prefershttps": "Luôn kết nối an toàn khi đăng nhập",
        "underline-always": "Luôn luôn",
        "protectedpagetext": "Trang này đã bị khóa không cho sửa đổi hoặc tác động khác.",
        "viewsourcetext": "Bạn vẫn có thể xem và chép xuống mã nguồn của trang này.",
        "viewyourtext": "Bạn vẫn có thể xem và chép xuống mã nguồn <strong>các sửa đổi của bạn</strong> tại trang này.",
-       "protectedinterface": "Trang này cung cấp một thông điệp trong giao diện phần mềm, và bị khóa để tránh phá hoại. Để bổ sung hoặc thay đổi bản dịch ở bất cứ wiki nào, xin vui lòng đóng góp vào [//translatewiki.net/wiki/Main_Page?setlang=vi translatewiki.net], dự án bản địa hóa của MediaWiki.",
+       "protectedinterface": "Trang này cung cấp một thông điệp trong giao diện phần mềm, và bị khóa để tránh phá hoại. Để bổ sung hoặc thay đổi bản dịch ở bất cứ wiki nào, xin vui lòng đóng góp vào [https://translatewiki.net/wiki/Main_Page?setlang=vi translatewiki.net], dự án bản địa hóa của MediaWiki.",
        "editinginterface": "<strong>Lưu ý:</strong> Bạn đang sửa chữa một trang dùng để cung cấp thông điệp giao diện cho phần mềm. Những thay đổi tại trang này sẽ ảnh hưởng đến giao diện của rất nhiều người dùng wiki này.",
-       "translateinterface": "Để bổ sung hoặc thay đổi bản dịch ở bất cứ wiki nào, xin vui lòng đóng góp vào [//translatewiki.net/?setlang=vi translatewiki.net], dự án bản địa hóa MediaWiki.",
+       "translateinterface": "Để bổ sung hoặc thay đổi bản dịch ở bất cứ wiki nào, xin vui lòng đóng góp vào [https://translatewiki.net/?setlang=vi translatewiki.net], dự án bản địa hóa MediaWiki.",
        "cascadeprotected": "Trang này đã bị khóa không cho sửa đổi, vì nó được nhúng vào {{PLURAL:$1|trang|những trang}} đã bị khóa với tùy chọn “khóa theo tầng” được kích hoạt:\n$2",
        "namespaceprotected": "Bạn không có quyền sửa các trang trong không gian tên '''$1'''.",
        "customcssprotected": "Bạn không có quyền sửa đổi trang CSS này vì nó chứa các tùy chọn cá nhân của một thành viên khác.",
        "password-change-forbidden": "Bạn không thể đổi mật khẩu trên wiki này.",
        "externaldberror": "Có lỗi khi xác nhận cơ sở dữ liệu bên ngoài hoặc bạn không được phép cập nhật tài khoản bên ngoài.",
        "login": "Đăng nhập",
+       "login-security": "Xác minh danh tính của bạn",
        "nav-login-createaccount": "Đăng nhập / Mở tài khoản",
        "userlogin": "Đăng nhập / Mở tài khoản",
        "userloginnocreate": "Đăng nhập",
        "userlogin-resetpassword-link": "Quên mật khẩu?",
        "userlogin-helplink2": "Trợ giúp đăng nhập",
        "userlogin-loggedin": "Bạn đã đăng nhập với tên {{GENDER:$1}}$1.\nHãy sử dụng biểu mẫu ở dưới để đăng nhập với tài khoản người dùng khác.",
+       "userlogin-reauth": "Bạn phải đăng nhập lại để xác minh rằng bạn là $1.",
        "userlogin-createanother": "Mở thêm tài khoản",
        "createacct-emailrequired": "Địa chỉ thư điện tử",
        "createacct-emailoptional": "Địa chỉ thư điện tử (tùy chọn)",
        "createacct-email-ph": "Nhập địa chỉ thư điện tử của bạn",
        "createacct-another-email-ph": "Nhập địa chỉ thư điện tử",
        "createaccountmail": "Sử dụng mật khẩu ngẫu nhiên tạm và gửi nó cho địa chỉ thư điện tử được chỉ định",
+       "createaccountmail-help": "Có thể sử dụng để tạo tài khoản cho người khác mà không được biết mật khẩu.",
        "createacct-realname": "Tên thật (tùy chọn)",
        "createaccountreason": "Lý do:",
        "createacct-reason": "Lý do",
        "createacct-reason-ph": "Nhập lý do tạo một tài khoản khác",
+       "createacct-reason-help": "Thông điệp xuất hiện trong nhật trình tạo tài khoản",
        "createacct-submit": "Tạo tài khoản",
        "createacct-another-submit": "Mở tài khoản",
+       "createacct-continue-submit": "Tiếp tục tạo tài khoản",
+       "createacct-another-continue-submit": "Tiếp tục tạo tài khoản",
        "createacct-benefit-heading": "{{SITENAME}} được xây dựng bởi những người như bạn.",
        "createacct-benefit-body1": "{{PLURAL:$1}}lần sửa đổi",
        "createacct-benefit-body2": "{{PLURAL:$1}}trang nội dung",
        "nocookiesnew": "Bạn đã tạo tài khoản thành công, nhưng bạn chưa đăng nhập. {{SITENAME}} sử dụng cookie để đăng nhập vào tài khoản. Bạn đã tắt cookie. Xin hãy bật cookie lên, rồi đăng nhập lại với tên người dùng và mật khẩu mới.",
        "nocookieslogin": "{{SITENAME}} sử dụng cookie để đăng nhập thành viên. Bạn đã tắt cookie. Xin hãy kích hoạt rồi thử lại.",
        "nocookiesfornew": "Không thể mở tài khoản vì không thể xác nhận nguồn yêu cầu nó.\nHãy chắc chắn bạn đã bật lên cookie, làm mới trang này, và thử lại.",
+       "createacct-loginerror": "Bạn đã tạo tài khoản thành công nhưng không thể tự động đăng nhập. Xin hãy [[Special:UserLogin|đăng nhập thủ công]].",
        "noname": "Chưa nhập tên.",
        "loginsuccesstitle": "Đã đăng nhập",
        "loginsuccess": "'''Bạn đã đăng nhập vào {{SITENAME}} với tên “$1”.'''",
        "createacct-another-realname-tip": "Tên thật là không bắt buộc. \n\nNếu bạn đồng ý cung cấp, nó sẽ dùng để ghi nhận công lao của bạn.",
        "pt-login": "Đăng nhập",
        "pt-login-button": "Đăng nhập",
+       "pt-login-continue-button": "Tiếp tục đăng nhập",
        "pt-createaccount": "Mở tài khoản",
        "pt-userlogout": "Đăng xuất",
        "php-mail-error-unknown": "Lỗi không rõ trong hàm PHP mail()",
        "botpasswords-invalid-name": "Tên người dùng đã chỉ định không chứa dấu tách mật khẩu bot (\"$1\").",
        "botpasswords-not-exist": "Người dùng \"$1\" không có mật khẩu bot có tên \"$2\".",
        "resetpass_forbidden": "Không được đổi mật khẩu",
+       "resetpass_forbidden-reason": "Không thể đổi mật khẩu: $1",
        "resetpass-no-info": "Bạn phải đăng nhập mới có thể truy cập trực tiếp trang này.",
        "resetpass-submit-loggedin": "Thay đổi mật khẩu",
        "resetpass-submit-cancel": "Hủy bỏ",
        "resetpass-temp-password": "Mật khẩu tạm:",
        "resetpass-abort-generic": "Một phần mở rộng đã hủy bỏ tác vụ thay đổi mật khẩu.",
        "resetpass-expired": "Mật khẩu của bạn đã hết hạn. Xin vui lòng tạo lại mật khẩu mới để đăng nhập.",
-       "resetpass-expired-soft": "Mật khẩu của bạn đã hết hạn và cần được đặt lại. Xin vui lòng chọn một mật khẩu mới lúc bây giờ hoặc bấm “{{int:resetpass-submit-cancel}}” để đặt lại sau.",
-       "resetpass-validity-soft": "Mật khẩu của bạn không hợp lệ: $1\n\nXin hãy chọn mật khẩu mới bây giờ hoặc bấm “{{int:resetpass-submit-cancel}}” để đặt lại sau.",
+       "resetpass-expired-soft": "Mật khẩu của bạn đã hết hạn và cần được đặt lại. Xin vui lòng chọn một mật khẩu mới lúc bây giờ hoặc bấm “{{int:authprovider-resetpass-skip-label}}” để đặt lại sau.",
+       "resetpass-validity-soft": "Mật khẩu của bạn không hợp lệ: $1\n\nXin hãy chọn mật khẩu mới bây giờ hoặc bấm “{{int:authprovider-resetpass-skip-label}}” để đặt lại sau.",
        "passwordreset": "Tái tạo mật khẩu",
        "passwordreset-text-one": "Hãy điền mẫu đơn này để tái tạo mật khẩu.",
        "passwordreset-text-many": "Điền vào {{PLURAL:$1}}một hộp sau để nhận một mật khẩu tạm thời qua thư điện tử.",
        "passwordreset-emailsentusername": "Nếu một địa chỉ thư điện tử đã gắn với tên người dùng này thì một thư điện tử để đặt lại mật khẩu sẽ được gửi đến.",
        "passwordreset-emailsent-capture": "Thư điện tử để tái tạo mật khẩu đã được gửi, nội dung như sau.",
        "passwordreset-emailerror-capture": "Chúng tôi đã tạo thư tái tạo mật khẩu dưới đây, nhưng không thể gửi đến {{GENDER:$2}}người dùng: $1",
+       "passwordreset-emailsent-capture2": "Đã gửi {{PLURAL:$1|thư điện tử|các thư điện tử}} để đặt lại mật khẩu. {{PLURAL:$1|Tên người dùng và mật khẩu|Các tên người dùng và mật khẩu}} được liệt kê dưới đây.",
+       "passwordreset-emailerror-capture2": "Không gửi được thư điện tử đến {{GENDER:$2}}người dùng: $1 {{PLURAL:$3|Tên người dùng và mật khẩu|Các tên người dùng và mật khẩu}} được liệt kê dưới đây.",
+       "passwordreset-nocaller": "Yêu cầu hàm gọi",
+       "passwordreset-nosuchcaller": "Hàm gọi không tồn tại: $1",
+       "passwordreset-ignored": "Tác vụ đặt lại mật khẩu không được xử lý. Có lẽ trình cung cấp chưa được cấu hình?",
+       "passwordreset-invalideamil": "Địa chỉ thư điện tử không hợp lệ",
+       "passwordreset-nodata": "Cả tên người dùng và địa chỉ thư điện tử bị thiếu",
        "changeemail": "Đổi hoặc gỡ địa chỉ thư điện tử",
        "changeemail-header": "Điền biểu mẫu này để đổi địa chỉ thư điện tử của bạn. Nếu bạn muốn gỡ địa chỉ thư điện tử nào khỏi tài khoản của bạn, để trống hộp địa chỉ thư điện tử mới và lưu biểu mẫu.",
        "changeemail-passwordrequired": "Bạn sẽ cần phải nhập mật khẩu của bạn để xác nhận thay đổi này.",
        "minoredit": "Sửa đổi nhỏ",
        "watchthis": "Theo dõi trang này",
        "savearticle": "Lưu trang",
+       "savechanges": "Lưu các thay đổi",
        "publishpage": "Xuất bản trang",
+       "publishchanges": "Xuất bản các thay đổi",
        "preview": "Xem trước",
        "showpreview": "Xem trước",
        "showdiff": "Xem thay đổi",
        "accmailtext": "Một mật khẩu được tạo ngẫu nhiên cho [[User talk:$1|$1]] đã được gửi đến $2. Có thể đổi mật khẩu tại trang ''[[Special:ChangePassword|đổi mật khẩu]]'' sau khi đã đăng nhập.",
        "newarticle": "(Mới)",
        "newarticletext": "Bạn đi đến đây từ một liên kết đến một trang chưa tồn tại. Để tạo trang, hãy bắt đầu gõ vào ô bên dưới (xem [$1 trang trợ giúp] để có thêm thông tin). Nếu bạn đến đây do nhầm lẫn, chỉ cần nhấn vào nút '''Lùi''' (hoặc Trở lại, Quay lại, Back) trong trình duyệt của bạn.",
-       "anontalkpagetext": "----''Đây là trang thảo luận của một người dùng vô danh chưa tạo tài khoản hoặc có tài khoản nhưng không đăng nhập.\nDo đó chúng ta phải dùng một dãy số gọi là địa chỉ IP để xác định anh/chị ta.\nMột địa chỉ IP như vậy có thể có nhiều người cùng dùng chung.\nNếu bạn là một thành viên vô danh và cảm thấy rằng có những lời bàn luận không thích hợp đang nhắm vào bạn, xin hãy [[Special:CreateAccount|tạo tài khoản]] hoặc [[Special:UserLogin|đăng nhập]] để tránh sự nhầm lẫn về sau với những thành viên vô danh khác.''",
+       "anontalkpagetext": "----\n<em>Đây là trang thảo luận của một người dùng vô danh chưa tạo tài khoản hoặc có tài khoản nhưng không đăng nhập.</em>\nDo đó chúng ta phải dùng một dãy số gọi là địa chỉ IP để xác định anh/chị ta.\nMột địa chỉ IP như vậy có thể có nhiều người cùng dùng chung.\nNếu bạn là một thành viên vô danh và cảm thấy rằng có những lời bàn luận không thích hợp đang nhắm vào bạn, xin hãy [[Special:CreateAccount|tạo tài khoản]] hoặc [[Special:UserLogin|đăng nhập]] để tránh sự nhầm lẫn về sau với những thành viên vô danh khác.",
        "noarticletext": "Trang này hiện chưa có nội dung.\nBạn có thể [[Special:Search/{{PAGENAME}}|tìm kiếm tựa trang này]] trong các trang khác, <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} tìm trong các nhật trình liên quan],\nhoặc [{{fullurl:{{FULLPAGENAME}}|action=edit}} tạo mới trang này]</span>.",
        "noarticletext-nopermission": "Trang này hiện đang trống.\nBạn có thể [[Special:Search/{{PAGENAME}}|tìm kiếm tựa trang này]] tại các trang khác, hoặc <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} tìm kiếm các nhật trình liên quan]</span>, nhưng bạn không được phép tạo trang này.",
        "missing-revision": "Phiên bản #$1 của trang có tên “{{FULLPAGENAME}}” không tồn tại.\n\nLỗi này thường xuất hiện đối khi theo dõi liên kết lỗi thời đến phiên bản cũ của một trang đã bị xóa.\nXem chi tiết trong [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} nhật trình xóa].",
        "content-model-css": "CSS",
        "content-json-empty-object": "Đối tượng trống",
        "content-json-empty-array": "Mảng trống",
+       "deprecated-self-close-category": "Trang có thẻ HTML tự đóng không hợp lệ",
        "duplicate-args-warning": "<strong>Cảnh báo:</strong> [[:$1]] đang gọi  [[:$2]] với nhiều hơn một giá trị cho thông số “$3”. Chỉ giá trị cuối cùng mới được sử dụng.",
        "duplicate-args-category": "Trang đưa đối số thừa vào bản mẫu",
        "duplicate-args-category-desc": "Trang đưa một đối số nhiều lần vào một bản mẫu được nhúng, thí dụ <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> hoặc <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "undo-failure": "Sửa đổi không thể phục hồi vì đã có những sửa đổi mới ở sau.",
        "undo-norev": "Sửa đổi không thể hồi phục vì nó không tồn tại hoặc đã bị xóa.",
        "undo-nochange": "Hình như sửa đổi này đã được lùi lại rồi.",
-       "undo-summary": "Đã lùi lại sửa đổi $1 của [[Special:Contributions/$2|$2]] ([[User talk:$2|Thảo luận]])",
+       "undo-summary": "Đã lùi lại sửa đổi $1 của [[Special:Contributions/$2|$2]] ([[User talk:$2|thảo luận]])",
        "undo-summary-username-hidden": "Đã lùi lại sửa đổi $1 của một người dùng ẩn",
        "cantcreateaccounttitle": "Không thể mở tài khoản",
        "cantcreateaccount-text": "Chức năng tài tạo khoản từ địa chỉ IP này ('''$1''') đã bị [[User:$3|$3]] cấm.\n\nLý do được $3 đưa ra là ''$2''",
        "prefs-watchlist-days-max": "Tối đa $1 ngày",
        "prefs-watchlist-edits": "Số lần sửa đổi tối đa trong danh sách theo dõi mở rộng:",
        "prefs-watchlist-edits-max": "Con số tối đa: 1.000",
-       "prefs-watchlist-token": "Số thẻ Danh sách theo dõi:",
+       "prefs-watchlist-token": "Dấu hiệu cho danh sách theo dõi:",
        "prefs-misc": "Linh tinh",
        "prefs-resetpass": "Thay đổi mật khẩu",
        "prefs-changeemail": "Đổi hoặc gỡ địa chỉ thư điện tử",
        "right-override-export-depth": "Xuất trang kèm theo các trang được liên kết đến với độ sâu tối đa là 5",
        "right-sendemail": "Gửi thư điện tử cho thành viên khác",
        "right-passwordreset": "Xem các thư điện tử đặt lại mật khẩu",
-       "right-managechangetags": "Tạo và xóa [[Special:Tags|thẻ]] từ cơ sở dữ liệu",
+       "right-managechangetags": "Tạo và bật/tắt [[Special:Tags|thẻ]]",
        "right-applychangetags": "Áp dụng [[Special:Tags|thẻ]], cùng với những thay đổi của một người",
        "right-changetags": "Thêm và loại bỏ tùy ý các [[Special:Tags|thẻ]] vào các phiên bản riêng và các mục nhật trình",
+       "right-deletechangetags": "Xóa [[Special:Tags|thẻ]] khỏi cơ sở dữ liệu",
        "grant-generic": "Gói quyền “$1”",
        "grant-group-page-interaction": "Tương tác với trang",
        "grant-group-file-interaction": "Tương tác với tập tin",
        "rightslogtext": "Đây là nhật trình lưu những thay đổi đối với các quyền hạn thành viên.",
        "action-read": "đọc trang này",
        "action-edit": "sửa đổi trang này",
-       "action-createpage": "tạo trang",
-       "action-createtalk": "tạo trang thảo luận",
+       "action-createpage": "tạo trang này",
+       "action-createtalk": "tạo trang thảo luận này",
        "action-createaccount": "mở tài khoản này",
        "action-autocreateaccount": "tự động tạo tài khoản người dùng bên ngoài này",
        "action-history": "xem lịch sử của trang này",
        "action-viewmyprivateinfo": "xem thông tin cá nhân của bạn",
        "action-editmyprivateinfo": "sửa đổi thông tin cá nhân của bạn",
        "action-editcontentmodel": "sửa kiểu nội dung của trang",
-       "action-managechangetags": "tạo và xóa các thẻ từ cơ sở dữ liệu",
+       "action-managechangetags": "tạo và bật/tắt thẻ",
        "action-applychangetags": "áp dụng các thẻ cùng với những thay đổi của bạn",
        "action-changetags": "thêm và loại bỏ các thẻ tùy ý trên các phiên bản riêng và các mục nhật trình",
+       "action-deletechangetags": "xóa thẻ khỏi cơ sở dữ liệu",
        "nchanges": "$1 thay đổi",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|sau lần truy cập vừa rồi}}",
        "enhancedrc-history": "lịch sử",
        "upload-http-error": "Xảy ra lỗi HTTP: $1",
        "upload-copy-upload-invalid-domain": "Không có sẵn các bản sao tải lên tại tên miền này.",
        "upload-foreign-cant-upload": "Wiki này không được thiết lập để tải tập tin lên kho tập tin chung bên ngoài được chỉ định.",
+       "upload-foreign-cant-load-config": "Thất bại khi tải cấu hình cho tập tin tải lên kho tập tin bên ngoài.",
+       "upload-dialog-disabled": "Chức năng tải lên tập tin qua hộp thoại này bị tắt trong wiki này.",
        "upload-dialog-title": "Tải tập tin lên",
        "upload-dialog-button-cancel": "Hủy bỏ",
        "upload-dialog-button-done": "Xong",
        "apisandbox": "Chỗ thử API",
        "apisandbox-jsonly": "Cần phải có JavaScript để sử dụng API sandbox.",
        "apisandbox-api-disabled": "API đã bị vô hiệu hóa trên trang web này.",
-       "apisandbox-intro": "Trang này dùng để thử nghiệm với <strong>API dịch vụ Web của MediaWiki</strong>.\nHãy tra cứu [[mw:API:Main page|tài liệu API]] để biết chi tiết về cách sử dụng API. Ví dụ: [//www.mediawiki.org/wiki/API#A_simple_example lấy nội dung của Trang Chính]. Chọn một tác vụ để xem thêm ví dụ.\n\nLưu ý rằng, mặc dù đây là một chỗ thử, nhưng các tác vụ của bạn tại trang này có thể thực hiện các thay đổi trên wiki.",
+       "apisandbox-intro": "Trang này dùng để thử nghiệm với <strong>API dịch vụ Web của MediaWiki</strong>.\nHãy tra cứu [[mw:API:Main page|tài liệu API]] để biết chi tiết về cách sử dụng API. Ví dụ: [https://www.mediawiki.org/wiki/API#A_simple_example lấy nội dung của Trang Chính]. Chọn một tác vụ để xem thêm ví dụ.\n\nLưu ý rằng, mặc dù đây là một chỗ thử, nhưng các tác vụ của bạn tại trang này có thể thực hiện các thay đổi trên wiki.",
        "apisandbox-fullscreen": "Mở rộng bảng điều khiển",
        "apisandbox-fullscreen-tooltip": "Mở rộng bảng sandbox để điền vào cửa sổ trình duyệt.",
        "apisandbox-unfullscreen": "Hiển thị trang",
        "trackingcategories-msg": "Thể loại phần mềm",
        "trackingcategories-name": "Tên thông điệp",
        "trackingcategories-desc": "Tiêu chuẩn xếp thể loại",
+       "restricted-displaytitle-ignored": "Trang có tên hiển thị được bỏ qua",
+       "restricted-displaytitle-ignored-desc": "Trang có <code><nowiki>{{TÊN_HIỂN_THỊ}}</nowiki></code>, <code><nowiki>{{TÊNHIỂNTHỊ}}</nowiki></code>, hoặc <code><nowiki>{{DISPLAYTITLE}}</nowiki></code> được bỏ qua vì nó không tương đương với tên thật của trang.",
        "noindex-category-desc": "Trang này không được các robot đánh chỉ mục vì trang có từ thần chú <code><nowiki>__NOINDEX__</nowiki></code> và nằm trong không gian tên cho phép từ thần chú này.",
        "index-category-desc": "Trang này có từ thần chú <code><nowiki>__INDEX__</nowiki></code> và nằm trong một không gian tên cho phép từ thần chú này, nên được các robot đánh chỉ mục, trong khi bình thường nó không được đánh chỉ mục.",
        "post-expand-template-inclusion-category-desc": "Kích thước trang sẽ vượt quá <code>$wgMaxArticleSize</code> nếu bung hết toàn bộ bản mẫu, nên một số bản mẫu không được bung.",
        "rollbacklinkcount": "lùi tất cả $1 sửa đổi",
        "rollbacklinkcount-morethan": "lùi tất cả hơn $1 sửa đổi",
        "rollbackfailed": "Lùi sửa đổi không thành công",
+       "rollback-missingparam": "Yêu cầu thiếu những tham số bắt buộc.",
        "cantrollback": "Không lùi sửa đổi được;\nngười viết trang cuối cùng cũng là tác giả duy nhất của trang này.",
        "alreadyrolled": "Không thể lùi tất cả sửa đổi cuối của [[User:$2|$2]] ([[User talk:$2|thảo luận]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) tại [[:$1]]; ai đó đã thực hiện sửa đổi hoặc thực hiện lùi tất cả rồi.\n\nSửa đổi cuối cùng tại trang do [[User:$3|$3]] ([[User talk:$3|thảo luận]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]) thực hiện.",
        "editcomment": "Tóm lược sửa đổi: <em>$1</em>.",
        "revertpage": "Đã lùi lại sửa đổi của [[Special:Contributions/$2|$2]] ([[User talk:$2|Thảo luận]]) quay về phiên bản cuối của [[User:$1|$1]]",
        "revertpage-nouser": "Đã lùi lại sửa đổi của người dùng ẩn quay về phiên bản cuối của {{GENDER:$1}}[[User:$1|$1]]",
        "rollback-success": "Đã hủy sửa đổi của $1;\nquay về phiên bản cuối của $2.",
+       "rollback-success-notify": "Đã hủy sửa đổi của $1;\nquay về phiên bản cuối của $2. [$3 Xem thay đổi]",
        "sessionfailure-title": "Phiên thất bại",
        "sessionfailure": "Dường như có trục trặc với phiên đăng nhập của bạn; thao tác này đã bị hủy để tránh việc cướp quyền đăng nhập. Xin hãy nhấn nút “Back”, tải lại trang đó, rồi thử lại.",
        "changecontentmodel": "Thay đổi kiểu nội dung của một trang",
        "changecontentmodel-success-text": "Kiểu nội dung của [[:$1]] đã được thay đổi.",
        "changecontentmodel-cannot-convert": "Không thể chuyển đổi nội dung [[:$1]] thành nội dung dưới dạng $2.",
        "changecontentmodel-nodirectediting": "Kiểu nội dung $1 không hỗ trợ sửa đổi trực tiếp",
+       "changecontentmodel-emptymodels-title": "Không có sẵn kiểu nội dung nào",
+       "changecontentmodel-emptymodels-text": "Không thể chuyển đổi nội dung tại [[:$1]] thành nội dung dưới định dạng nào.",
        "log-name-contentmodel": "Nhật trình thay đổi kiểu nội dung",
        "log-description-contentmodel": "Sự kiện có liên quan đến kiểu nội dung của trang.",
        "logentry-contentmodel-new": "$1 {{GENDER:$2}}đã tạo trang $3 với kiểu nội dung không mặc định “$5”",
        "sp-contributions-username": "Địa chỉ IP hay tên thành viên:",
        "sp-contributions-toponly": "Chỉ hiện các phiên bản mới nhất",
        "sp-contributions-newonly": "Chỉ hiện các sửa đổi tạo trang",
+       "sp-contributions-hideminor": "Ẩn các sửa đổi nhỏ",
        "sp-contributions-submit": "Tìm kiếm",
        "whatlinkshere": "Các liên kết đến đây",
        "whatlinkshere-title": "Các trang liên kết đến “$1”",
        "unblock": "Bỏ cấm người dùng",
        "blockip": "Cấm {{GENDER:$1}}người dùng",
        "blockip-legend": "Cấm người dùng",
-       "blockiptext": "Dùng mẫu dưới để cấm một địa chỉ IP hoặc thành viên không được viết trang.\nĐiều này chỉ nên làm để tránh phá hoại, và phải theo [[{{MediaWiki:Policy-url}}|quy định]].\nĐiền vào lý do cụ thể ở dưới (ví dụ, chỉ ra trang nào bị phá hoại). \nBạn có thể cấm một dãy IP bằng cách dùng cú pháp [//en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR]; giới hạn cho phép tối đa là /$1 đối với IPv4 và /$2 đối với IPv6.",
+       "blockiptext": "Dùng mẫu dưới để cấm một địa chỉ IP hoặc thành viên không được viết trang.\nĐiều này chỉ nên làm để tránh phá hoại, và phải theo [[{{MediaWiki:Policy-url}}|quy định]].\nĐiền vào lý do cụ thể ở dưới (ví dụ, chỉ ra trang nào bị phá hoại). \nBạn có thể cấm một dãy IP bằng cách dùng cú pháp [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR]; giới hạn cho phép tối đa là /$1 đối với IPv4 và /$2 đối với IPv6.",
        "ipaddressorusername": "Địa chỉ IP hay tên thành viên:",
        "ipbexpiry": "Thời hạn:",
        "ipbreason": "Lý do:",
        "lockdbsuccesstext": "Cơ sở dữ liệu đã bị khóa.\n<br />Nhớ [[Special:UnlockDB|mở khóa]] sau khi bảo trì xong.",
        "unlockdbsuccesstext": "Cơ sở dữ liệu đã được mở khóa.",
        "lockfilenotwritable": "Tập tin khóa của cơ sở dữ liệu không cho phép ghi. Để khóa hay mở khóa cơ sở dữ liệu, máy chủ web phải có khả năng ghi tập tin.",
+       "databaselocked": "Cơ sở dữ liệu đã được khóa rồi.",
        "databasenotlocked": "Cơ sở dữ liệu không bị khóa.",
        "lockedbyandtime": "($1 khóa vào $2 lúc $3)",
        "move-page": "Di chuyển $1",
        "allmessagesname": "Tên thông điệp",
        "allmessagesdefault": "Nội dung mặc định",
        "allmessagescurrent": "Nội dung hiện thời",
-       "allmessagestext": "Đây là toàn bộ thông điệp hệ thống có trong không gian tên MediaWiki.\nMời vào [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation?uselang=vi Địa phương hóa MediaWiki] và [//translatewiki.net/wiki/?uselang=vi translatewiki.net] nếu bạn muốn đóng góp dịch chung cả MediaWiki.",
+       "allmessagestext": "Đây là toàn bộ thông điệp hệ thống có trong không gian tên MediaWiki.\nMời vào [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation?uselang=vi Địa phương hóa MediaWiki] và [https://translatewiki.net/wiki/?uselang=vi translatewiki.net] nếu bạn muốn đóng góp dịch chung cả MediaWiki.",
        "allmessagesnotsupportedDB": "Trang này không dùng được vì biến '''$wgUseDatabaseMessages''' đã bị tắt.",
        "allmessages-filter-legend": "Bộ lọc",
        "allmessages-filter": "Lọc theo tình trạng sửa đổi:",
        "pageinfo-category-files": "Số tập tin",
        "markaspatrolleddiff": "Đánh dấu tuần tra",
        "markaspatrolledtext": "Đánh dấu tuần tra trang này",
-       "markaspatrolledtext-file": "Đánh dấu phiên bản fiel này là đã kiểm tra",
+       "markaspatrolledtext-file": "Đánh dấu đã tuần tra phiên bản file này",
        "markedaspatrolled": "Đã đánh dấu tuần tra",
        "markedaspatrolledtext": "Phiên bản được chọn của [[:$1]] đã được đánh dấu tuần tra.",
        "rcpatroldisabled": "“Thay đổi gần đây” của các trang tuần tra không bật",
        "confirm-watch-top": "Bạn có muốn thêm trang này vào danh sách theo dõi của bạn?",
        "confirm-unwatch-button": "Ngừng theo dõi",
        "confirm-unwatch-top": "Bạn có muốn gỡ trang này khỏi danh sách theo dõi của bạn?",
+       "confirm-rollback-button": "OK",
+       "confirm-rollback-top": "Có muốn lùi lại các sửa đổi trong trang này?",
        "ellipsis": "…",
        "quotation-marks": "“$1”",
        "imgmultipageprev": "← trang trước",
        "timezone-local": "Địa phương",
        "duplicate-defaultsort": "Cảnh báo: Từ khóa xếp mặc định “$2” ghi đè từ khóa trước, “$1”.",
        "duplicate-displaytitle": "<strong>Cảnh báo:</strong> Tên hiển thị “$2” ghi đè tên hiển thị “$1” bên trên.",
+       "restricted-displaytitle": "<strong>Chú ý:</strong> Tên hiển thị “$1” được bỏ qua vì nó không tương đương với tên thật của trang.",
        "invalid-indicator-name": "<strong>Lỗi:</strong> Không thể để trống thuộc tính <code>name</code> của cái chỉ trạng thái trang.",
        "version": "Phiên bản",
        "version-extensions": "Các phần mở rộng được cài đặt",
        "tags-delete-not-found": "Thẻ “$1” không tồn tại.",
        "tags-delete-too-many-uses": "Thẻ “$1” được áp dụng cho hơn $2 phiên bản, có nghĩa là nó không thể bị xóa.",
        "tags-delete-warnings-after-delete": "Thẻ “$1” đã được xóa thành công, nhưng gặp phải {{PLURAL:$2|cảnh báo|các cảnh báo}} sau:",
+       "tags-delete-no-permission": "Bạn không có quyền hạn để xóa các thẻ thay đổi.",
        "tags-activate-title": "Kích hoạt thẻ",
        "tags-activate-question": "Bạn sắp sửa kích hoạt thẻ “$1”.",
        "tags-activate-reason": "Lý do:",
        "mw-widgets-dateinput-placeholder-month": "YYYY-MM (năm-tháng)",
        "mw-widgets-titleinput-description-new-page": "trang này chưa tồn tại",
        "mw-widgets-titleinput-description-redirect": "đổi hướng đến $1",
-       "api-error-blacklisted": "Xin vui lòng chọn một tên khác miêu tả đầy đủ.",
        "sessionmanager-tie": "Không thể kết hợp nhiều yêu cầu xác thực loại: $1.",
        "sessionprovider-generic": "phiên $1",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "phiên dựa trên cookie",
        "log-action-filter-suppress-block": "Ẩn giấu người dùng bằng cách cấm",
        "log-action-filter-suppress-reblock": "Ẩn giấu người dùng bằng cách cấm lại",
        "log-action-filter-upload-upload": "Tải lên mới",
-       "log-action-filter-upload-overwrite": "Tải lên lại"
+       "log-action-filter-upload-overwrite": "Tải lên lại",
+       "authmanager-authn-not-in-progress": "Không phải đang xác thực, hoặc dữ liệu phiên làm việc bị mất. Xin hãy thử lại từ đầu.",
+       "authmanager-authn-no-primary": "Không thể xác thực định danh được cung cấp.",
+       "authmanager-authn-no-local-user": "Định danh được cung cấp không ứng với người dùng nào trên wiki này.",
+       "authmanager-authn-no-local-user-link": "Định danh được cung cấp có hợp lệ nhưng không ứng với người dùng nào trên wiki này. Hãy đăng nhập một cách khác hoặc tạo tài khoản mới; bạn sẽ có cơ hội để liên kết định danh cũ với tài khoản mới.",
+       "authmanager-authn-autocreate-failed": "Thất bại khi tự động tạo tài khoản địa phương: $1",
+       "authmanager-change-not-supported": "Không thể thay đổi định danh được cung cấp, vì sẽ không có gì sử dụng nó.",
+       "authmanager-create-disabled": "Chứng năng tạo tài khoản được tắt.",
+       "authmanager-create-from-login": "Để tạo tài khoản của mình, xin hãy điền vào các thông tin bên dưới.",
+       "authmanager-create-not-in-progress": "Không phải đang tạo tài khoản, hoặc dữ liệu phiên làm việc bị mất. Xin hãy thử lại từ đầu.",
+       "authmanager-create-no-primary": "Không thể sử dụng định danh được cung cấp để tạo tài khoản.",
+       "authmanager-link-no-primary": "Không thể sử dụng định danh được cung cấp để liên kết tài khoản.",
+       "authmanager-link-not-in-progress": "Không phải đang liên kết tài khoản, hoặc dữ liệu phiên làm việc bị mất. Xin hãy thử lại từ đầu.",
+       "authmanager-authplugin-setpass-failed-title": "Thay đổi mật khẩu bị thất bại",
+       "authmanager-authplugin-setpass-failed-message": "Phần bổ trợ xác thực đã từ chối việc đổi mật khẩu.",
+       "authmanager-authplugin-create-fail": "Phần bổ trợ xác thực đã từ chối việc tạo tài khoản.",
+       "authmanager-authplugin-setpass-denied": "Phần bổ trợ xác thực không cho phép đổi mật khẩu.",
+       "authmanager-authplugin-setpass-bad-domain": "Tên miền không hợp lệ.",
+       "authmanager-autocreate-noperm": "Không cho phép tự động tạo tài khoản.",
+       "authmanager-autocreate-exception": "Tạm thời không cho phép tự động tạo tài khoản vì các lỗi trước đây.",
+       "authmanager-userdoesnotexist": "Chưa có tài khoản với tên “$1”.",
+       "authmanager-userlogin-remembermypassword-help": "Mật khẩu có nên được duy trì sau phiên làm việc hay không.",
+       "authmanager-username-help": "Tên người dùng để xác thực.",
+       "authmanager-password-help": "Mật khẩu để xác thực.",
+       "authmanager-domain-help": "Tên miền để xác thực bên ngoài.",
+       "authmanager-retype-help": "Mật khẩu lần nữa để xác nhận.",
+       "authmanager-email-label": "Thư điện tử",
+       "authmanager-email-help": "Địa chỉ thư điện tử",
+       "authmanager-realname-label": "Tên thật",
+       "authmanager-realname-help": "Tên thật của người dùng",
+       "authmanager-provider-password": "Xác thực qua mật khẩu",
+       "authmanager-provider-password-domain": "Xác thực qua mật khẩu và tên miền",
+       "authmanager-provider-temporarypassword": "Mật khẩu tạm",
+       "authprovider-confirmlink-message": "Dựa trên các lần bạn thử đăng nhập gần đây, có thể liên kết các tài khoản bên dưới với tài khoản wiki của bạn. Sau khi liên kết các tài khoản này, bạn có thể đăng nhập qua chúng. Xin hãy chọn các tài khoản để liên kết.",
+       "authprovider-confirmlink-request-label": "Các tài khoản để liên kết",
+       "authprovider-confirmlink-success-line": "$1: Đã liên kết thành công.",
+       "authprovider-confirmlink-failed": "Việc liên kết tài khoản không hoàn toàn thành công: $1",
+       "authprovider-confirmlink-ok-help": "Tiếp tục sau khi hiển thị các thông báo liên kết thất bại.",
+       "authprovider-resetpass-skip-label": "Bỏ qua",
+       "authprovider-resetpass-skip-help": "Bỏ qua việc đặt lại mật khẩu.",
+       "authform-nosession-login": "Đã xác thực thành công, nhưng trình duyệt của bạn không thể duy trì đăng nhập.\n\n$1",
+       "authform-nosession-signup": "Đã tạo tài khoản thành công, nhưng trình duyệt của bạn không thể duy trì đăng nhập.\n\n$1",
+       "authform-newtoken": "Dấu hiệu bị mất. $1",
+       "authform-notoken": "Dấu hiệu bị mất",
+       "authform-wrongtoken": "Dấu hiệu sai",
+       "specialpage-securitylevel-not-allowed-title": "Không được phép",
+       "specialpage-securitylevel-not-allowed": "Rất tiếc, bạn không được phép sử dụng trang này vì không thể xác nhận danh tính của bạn.",
+       "authpage-cannot-login": "Không thể tiến hành đăng nhập.",
+       "authpage-cannot-login-continue": "Không thể tiếp tục đăng nhập. Có lẽ phiên làm việc của bạn đã hết hạn.",
+       "authpage-cannot-create": "Không thể tiến hành tạo tài khoản.",
+       "authpage-cannot-create-continue": "Không thể tiếp tục tạo tài khoản. Có lẽ phiên làm việc của bạn đã hết hạn.",
+       "authpage-cannot-link": "Không thể tiến hành liên kết tài khoản.",
+       "authpage-cannot-link-continue": "Không thể tiếp tục liên kết tài khoản. Có lẽ phiên làm việc của bạn đã hết hạn.",
+       "cannotauth-not-allowed-title": "Không cho phép",
+       "cannotauth-not-allowed": "Bạn không có quyền sử dụng trang này.",
+       "changecredentials": "Thay đổi định danh",
+       "changecredentials-submit": "Thay đổi định danh",
+       "changecredentials-invalidsubpage": "$1 không phải là kiểu định danh hợp lệ.",
+       "changecredentials-success": "Đã thay đổi định danh của bạn.",
+       "removecredentials": "Xóa định danh",
+       "removecredentials-submit": "Xóa định danh",
+       "removecredentials-invalidsubpage": "$1 không phải là kiểu định danh hợp lệ.",
+       "removecredentials-success": "Đã xóa định danh của bạn.",
+       "credentialsform-provider": "Kiểu định danh:",
+       "credentialsform-account": "Tên tài khoản:",
+       "cannotlink-no-provider-title": "Không có tài khoản liên kết được",
+       "cannotlink-no-provider": "Không có tài khoản liên kết được.",
+       "linkaccounts": "Liên kết tài khoản",
+       "linkaccounts-success-text": "Đã liên kết tài khoản.",
+       "linkaccounts-submit": "Liên kết tài khoản",
+       "unlinkaccounts": "Gỡ liên kết tài khoản",
+       "unlinkaccounts-success": "Đã gỡ liên kết tài khoản.",
+       "authenticationdatachange-ignored": "Tác vụ thay đổi dữ liệu xác thực không được xử lý. Có lẽ nhà cung cấp chưa được cấu hình?"
 }
index 3e055ed..0f2b80e 100644 (file)
        "unwatch": "Nimmä beoobachdn",
        "watchlist-details": "Duu häldsch {{PLURAL:$1|1 sajdn|$1 sajdn}} undâr beoobachdung.",
        "wlshowlast": "Dsajch dii ändrunga fo di ledsdn $1 schdundn, $2 dooch odär",
-       "watchlistall2": "ale",
        "watchlist-options": "Was un wii alles af Dajnâr beobachdungslisdn dsajchd wärn sol",
        "watching": "Ghumd undâr beoobachdung ...",
        "unwatching": "Beobachdn ajschränggn",
index c2aef82..fa7133a 100644 (file)
        "protectedpagetext": "Pad at pejelon ad neletön redakami u dunotis votik.",
        "viewsourcetext": "Kanol logön e kopiedön fonätakoti pada at:",
        "protectedinterface": "Pad at jafon vödemis sitanünas, ed anu pelökofärmükon ad vitön migebis.",
-       "editinginterface": "'''Nuned:''' redakol padi, kel labükon vödemis bevüik pro programem.\nVotükams pada at oflunons logoti gebanasita pro gebans votik.\nAd läükön u votükön tradutodis pro els wiki valik, demolös gebi ela [//translatewiki.net/?setlang=vo translatewiki.net]: topükamaproyeg ela MediaWiki.",
+       "editinginterface": "'''Nuned:''' redakol padi, kel labükon vödemis bevüik pro programem.\nVotükams pada at oflunons logoti gebanasita pro gebans votik.\nAd läükön u votükön tradutodis pro els wiki valik, demolös gebi ela [https://translatewiki.net/?setlang=vo translatewiki.net]: topükamaproyeg ela MediaWiki.",
        "cascadeprotected": "Pad at pejelon ta redakam, bi pakeninükon fa {{PLURAL:$1|pad|pads}} sököl, kels pejelons ma „jänajel“: $2",
        "namespaceprotected": "No dalol redakön padis in nemaspad: '''$1'''.",
        "mycustomcssprotected": "No dalol redakön padi: CSS at.",
        "allmessagesname": "Nem",
        "allmessagesdefault": "Vödem rigädik",
        "allmessagescurrent": "Vödem nuik",
-       "allmessagestext": "Is binon lised sitanunas valik lonöföl in nemaspad: Sitanuns.\nGebolös [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Topükami ela MediaWiki] ed el [//translatewiki.net translatewiki.net] if vilol keblünön topükame valemik ela MediaWiki.",
+       "allmessagestext": "Is binon lised sitanunas valik lonöföl in nemaspad: Sitanuns.\nGebolös [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Topükami ela MediaWiki] ed el [https://translatewiki.net translatewiki.net] if vilol keblünön topükame valemik ela MediaWiki.",
        "allmessagesnotsupportedDB": "Pad at no kanon pagebön bi el '''$wgUseDatabaseMessages''' penemögükon.",
        "allmessages-filter-legend": "Sul",
        "allmessages-filter-unmodified": "Penevotüköl",
index 1fcb1d9..ef9200d 100644 (file)
        "deletecomment": "Süü",
        "deleteotherreason": "Muu vai lisä süü",
        "deletereasonotherlist": "Muu süü",
-       "rollback_short": "Vääntega",
        "rollbacklink": "vääntega",
        "protectlogpage": "Varjõtud cüľľed",
        "protectedarticle": "\"[[$1]]\" on nüd varjõttu",
        "block-log-flags-nocreate": "lukuloomin piäteltü",
        "movepagetext": "Alla õlõvall ruumõll võitta anta cüľľelle uutt nimiä; kõik cüľľee istori leeb liikutõttu uuvvõ nimee alle.\nVanass cüľľess nõizõb tulõma mešaituzcülci, kumpa näütteeb uuvvõsõ cülcese.\nVõitta obnovoittaa cülcese silmell lüüvvävä mešaituhsõd avtomaattisessi uuvõllõ nimelle.\nKui että taho sitä tehävää avtomaattisessi, mälehtega ettsiää [[Special:DoubleRedirects|kahskõrtaissit]] vai [[Special:BrokenRedirects|katciit]] mešaituhsiit.\nÕlõtta vastuussa sihee, jot linkid näütteeväd sinne, kuhõõ ned pitäiziväd näütellää.\n\nCülciä '''eb''' nõizõ liikuttama, kui uusi nimi on jo cäütennü, muut kuiva kui cülci on tühjä vai on mešaituz, kummall ebõõ muutuzistoria.\nSee täheteb sitä, jot võitta liikuttaa cüľľee takaz vanalle nimelle kui öhsünettä, mutta että või cirjuttaa eloz õlõvaa cüľľee päälle.\n\nSee saattab õlla suuri ja oottõmizõtoi muutuz populaarnoille cüľľelle. Õlka nii üvä, obespecoittõga, jot saatta arvoa sledstvijäd ennee kui liikutta cüľľee.",
        "movepagetalktext": "Cülci ja sene juttucülci leeväd liikutõtud ühez, '''va kui''':\n*Tseeľicüľľell on eloz juttucülci, kumpa ebõõ tühjä, vai\n*Jätättä all õlõvaa ruuoo merkkittämättä.\n\nNeill kõhtoill piättä liikuttaa vai ühissää cüľľee cäzi.",
-       "movearticle": "Liikut cülci",
        "newtitle": "Uusi nimi cüľľelee",
        "move-watch": "Katso sitä cülciä",
        "movepagebtn": "Liikut cülci",
        "tags-edit": "muuttaa",
        "htmlform-selectorother-other": "Muu",
        "rightsnone": "(eb õõ)",
-       "feedback-message": "Ilmottamin:",
        "feedback-cancel": "Otmeńoit",
-       "feedback-close": "On tehtü"
+       "feedback-close": "On tehtü",
+       "feedback-message": "Ilmottamin:"
 }
index b98a327..d11a639 100644 (file)
        "protectedpagetext": "Taa lehekülg om kirotuskaidsõt, taad saa-ai muutaq.",
        "viewsourcetext": "Võit kaiaq ja kopidaq taa lehe lättekoodi:",
        "viewyourtext": "Saat kaiaq ja kopidaq noidõ muutmiisi lätteteksti, miä sa seo lehe pääle '''esiq''' tennüq olõt:",
-       "protectedinterface": "Taa lehe pääl om tarkvara pruukjapalgõ tekst. Leht om lukku pant, et taad saasi-i ärq ts'urkiq. \nKu tahat tetäq ümbrepandmiisi (midä pruukvaq kõik vikiq) pruugiq tuus MediaWiki ümbrepandmisõ tüükeskkunda [//translatewiki.net/ translatewiki.net].",
+       "protectedinterface": "Taa lehe pääl om tarkvara pruukjapalgõ tekst. Leht om lukku pant, et taad saasi-i ärq ts'urkiq. \nKu tahat tetäq ümbrepandmiisi (midä pruukvaq kõik vikiq) pruugiq tuus MediaWiki ümbrepandmisõ tüükeskkunda [https://translatewiki.net/ translatewiki.net].",
        "editinginterface": "<strong>Hoiatus:</strong> Sa toimõndat tarkvara pruukjapalgõ tekstiga lehte. \nKu siin midä muudat, mõotas tuu pruukjapalõt.",
-       "translateinterface": "Et tetäq vai muutaq ümbrepandmiisi ütskõik määntse viki jaos, pruugiq MediaWiki ümbrepandmiskeskkunda [//translatewiki.net/ translatewiki.net].",
+       "translateinterface": "Et tetäq vai muutaq ümbrepandmiisi ütskõik määntse viki jaos, pruugiq MediaWiki ümbrepandmiskeskkunda [https://translatewiki.net/ translatewiki.net].",
        "cascadeprotected": "Taa leht om kirotuskaidsõt, selle et taa {{PLURAL:$1|kuulus alanolõvidõ kaidsõtuidõ lehti hulka|kuulus alanolõvidõ kaidsõtuidõ lehti hulka}}:\n$2",
        "namespaceprotected": "Sul olõ-i lubat toimõndaq nimeruumi '''$1''' lehti.",
        "myprivateinfoprotected": "Sul olõ-õi lubat ummi eräandmit muutaq.",
        "allmessagesname": "Nimi",
        "allmessagesdefault": "Vaikimiisi tekst",
        "allmessagescurrent": "Parhillanõ tekst",
-       "allmessagestext": "Taan nimekirän ommaq kõik MediaWiki nimeruumi tallitusteedüseq.\nPlease visit [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] and [//translatewiki.net translatewiki.net] if you wish to contribute to the generic MediaWiki localisation.",
+       "allmessagestext": "Taan nimekirän ommaq kõik MediaWiki nimeruumi tallitusteedüseq.\nPlease visit [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] and [https://translatewiki.net translatewiki.net] if you wish to contribute to the generic MediaWiki localisation.",
        "allmessagesnotsupportedDB": "Taad lehte saa-i pruukiq, selle et '''$wgUseDatabaseMessages'''-säädmine om välän.",
        "thumbnail-more": "Suurõndaq",
        "filemissing": "Olõ-i teedüstüt",
index eb0577b..a977529 100644 (file)
        "allmessagesname": "No del variåve",
        "allmessagesdefault": "Tecse prémetou",
        "allmessagescurrent": "Tecse pol moumint",
-       "allmessagestext": "Çouchal est ene djivêye des messaedjes sistinme k' i gn a dins l' espåce di lomaedje ''MediaWiki:''.\nLoukîz les pådjes sol [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Locålijhaedje di MediaWiki] et \n[//translatewiki.net/ translatewiki.net] si vos vloz pårticiper avou l' ratournaeje djenerike di MediaWiki.",
+       "allmessagestext": "Çouchal est ene djivêye des messaedjes sistinme k' i gn a dins l' espåce di lomaedje ''MediaWiki:''.\nLoukîz les pådjes sol [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Locålijhaedje di MediaWiki] et \n[https://translatewiki.net/ translatewiki.net] si vos vloz pårticiper avou l' ratournaeje djenerike di MediaWiki.",
        "allmessagesnotsupportedDB": "'''{{ns:special}}:AllMessages''' n' est nén sopoirté paski '''$wgUseDatabaseMessages''' est dismetou.",
        "allmessages-filter-legend": "Passete",
        "allmessages-filter": "Sorlon l' estat d' candjaedje:",
index 6a3f2cd..9f36244 100644 (file)
        "protectedpagetext": "Ginpanalipdan ini nga pakli basi mapugngan an pagliwat o iba pa nga mga maburuhat.",
        "viewsourcetext": "Puydi ka kumita ngan kumopya han gintikangan han pakli.",
        "viewyourtext": "Puydi nim makit-an ngan makopya an tinikangan <strong>imo mga pagliwat</strong> dinhi nga pakli:",
-       "protectedinterface": "Ini nga pakli in nahatag hin teksto hit interface para han software han hin nga wiki, ngan in pinasasaliporan para makalikay hit pag-abuso.\nPara makadugang o makaliwat hin mga paghubad para han tanan nga mga wiki, alayon paggamit han [//translatewiki.net/ translatewiki.net], an kanan MediaWiki proyekto hin lokalisasyon.",
+       "protectedinterface": "Ini nga pakli in nahatag hin teksto hit interface para han software han hin nga wiki, ngan in pinasasaliporan para makalikay hit pag-abuso.\nPara makadugang o makaliwat hin mga paghubad para han tanan nga mga wiki, alayon paggamit han [https://translatewiki.net/ translatewiki.net], an kanan MediaWiki proyekto hin lokalisasyon.",
        "editinginterface": "'''Pahimatngon:''' Imo ginliliwat an pakli nga gingagamit paghatag hin interface text para han software.\nAn mga pagbag-o hinin nga pakli in makakaapekto han itsura han user interface han iba nga mga gumaramit hini nga wiki.",
-       "translateinterface": "Para han pagdugang o pagbag-o han mga paghubad han ngatanan nga mga wiki, alayon paggamit han [//translatewiki.net/ translatewiki.net], an MediaWiki lokalisasyon nga proyekto.",
+       "translateinterface": "Para han pagdugang o pagbag-o han mga paghubad han ngatanan nga mga wiki, alayon paggamit han [https://translatewiki.net/ translatewiki.net], an MediaWiki lokalisasyon nga proyekto.",
        "cascadeprotected": "Ini nga pakli in pinapasaliporan tikang ha pagliwat tungod ini in naka-transclude ha masunod nga {{PLURAL:$1|pakli, kun diin |mga pakli, kun diin}} pinapasaliporan hit \"cascading\" nga pagpili nga pinaandar:\n$2",
        "namespaceprotected": "Diri ka gintutugutan pagliwat han mga pakli ha ngaran-lat'ang nga '''$1'''.",
        "customcssprotected": "Diri ka gintutugotan pagliwat hini nga CSS nga pakli, tungod nga nagsusulod ini hin kanan iba nga tawo personal nga karuyagon.",
        "resetpass-temp-password": "Temporaryo nga tigaman-pagsakob:",
        "resetpass-abort-generic": "Ginpugong an pagbal-iw hin tigaman-panakob hin uska ekstensyon.",
        "resetpass-expired": "Naubosan na hin panahon an im tigaman-pansakob.  Alayon paghimo hin bag-o nga tigaman-pansakob basi ka makasakob.",
-       "resetpass-expired-soft": "An imo password in nag-expire ngan kinahanglan ig-reset. Alayon pagpili hin bag-o nga password yana, kun diri pidlita an \"{{int:resetpass-submit-cancel}}\" para ig-reset nuruniyan.",
-       "resetpass-validity-soft": "Diri puydi gamiton an imo password nga: $1\n\nAlayon pagpili hin bag-o nga password yana, kun diri pidlita an \"{{int:resetpass-submit-cancel}}\" para ig-reset nuruniyan.",
+       "resetpass-expired-soft": "An imo password in nag-expire ngan kinahanglan ig-reset. Alayon pagpili hin bag-o nga password yana, kun diri pidlita an \"{{int:authprovider-resetpass-skip-label}}\" para ig-reset nuruniyan.",
+       "resetpass-validity-soft": "Diri puydi gamiton an imo password nga: $1\n\nAlayon pagpili hin bag-o nga password yana, kun diri pidlita an \"{{int:authprovider-resetpass-skip-label}}\" para ig-reset nuruniyan.",
        "passwordreset": "igreset an tigaman-hit-pagsulod",
        "passwordreset-text-one": "Kompletoha ini nga porma paramakareset hin imo tigaman-panakob.",
        "passwordreset-text-many": "{{PLURAL:$1|Butanga it usa nga mga surodlan basi makakarawat ko hin temporaryo nga tigaman-pansulod pinaagi ha email.}}",
index 36cf7d0..575f5a9 100644 (file)
        "protectedpagetext": "Wii xët dañ koo aar ngir bañ ag coppiteem.",
        "viewsourcetext": "Man ngaa xool te duppi li nekk ci bii jukki ngir man cee liggéey :",
        "protectedinterface": "Xët wii dafa am ay mbind yu bokk ci jokkalekaayu tëriin wi, moo tax ñu caabi ko ngir bañ ku ci ëppal.",
-       "editinginterface": "'''Moytul''': mbindu xët wii dafa bokk ci jokkalekaayu tëriin bi. Bépp coppite boo ci def day feeñ ci bataaxal yi yeneen jëfandikukat yi di gis. Ngir tekki yi ñu lay ñaan nga dem ci   [//translatewiki.net/wiki/Main_Page?setlang=wo translatewiki.net] di am sémb ngir bennal bataaxal yi.",
+       "editinginterface": "'''Moytul''': mbindu xët wii dafa bokk ci jokkalekaayu tëriin bi. Bépp coppite boo ci def day feeñ ci bataaxal yi yeneen jëfandikukat yi di gis. Ngir tekki yi ñu lay ñaan nga dem ci   [https://translatewiki.net/wiki/Main_Page?setlang=wo translatewiki.net] di am sémb ngir bennal bataaxal yi.",
        "cascadeprotected": "Xët wii dañ kaa aar ndaxte daa ëmbu ci {{PLURAL:$1|xët wi toftal|xët yi toftal}}, di yu ñu aar :\n$2",
        "namespaceprotected": "Amoo sañ-sañu soppi xët yi ne ci bii barabu tur « '''$1''' ».",
        "ns-specialprotected": "Xët yi ne ci bii barabu tur « {{ns:special}} » kenn maneesu leen a soppi.",
        "categories": "Wàll",
        "categoriespagetext": "{{PLURAL:$1|Wàll wiy|Wàll yiy}} toftal {{PLURAL:$1|dafa ëmb |dañoo ëmb}} ay xët walla xibaarukaay.\n[[Special:UnusedCategories|Wáll yu këmm]] yi wonewuñu leen fi.\nXoolal itam [[Special:WantedCategories|wàll yi ñuy laaj]].",
        "categoriesfrom": "Wone wàll yi dalee ko ci :",
-       "special-categories-sort-count": "nosee lim",
-       "special-categories-sort-abc": "nosee abajada",
        "deletedcontributions": "Cëru yees far",
        "deletedcontributions-title": "Cëru yees far",
        "sp-deletedcontributions-contribs": "cëru",
index 01d980f..3c01f7e 100644 (file)
@@ -50,7 +50,7 @@
        "tog-enotifminoredits": "頁搭文件細編也用電子信通知我",
        "tog-enotifrevealaddr": "電子信通知單裏顯示我個電子信地址",
        "tog-shownumberswatching": "顯示關注人數",
-       "tog-oldsig": "生个签名:",
+       "tog-oldsig": "生个签名:",
        "tog-fancysig": "拿签名当成维基文本(弗自动链接)",
        "tog-uselivepreview": "使用实时预览",
        "tog-forceeditsummary": "朆写编辑摘要个辰光提醒我",
        "protectedpagetext": "箇页锁牢定,防编搭各许操作。",
        "viewsourcetext": "侬可以查看搭仔复制箇只页面个源码。",
        "viewyourtext": "侬好望搭著复制<strong>侬编辑箇页后</strong>个源码。",
-       "protectedinterface": "箇页为箇维基个软件提供界面文本,锁牢定防乱用。\n加改全部维基个译文,用[//translatewiki.net/ translatewiki.net],MediaWiki软件个本地化计划。",
+       "protectedinterface": "本页为箇维基个软件提供界面文本,锁牢定防乱用。要增加或修改所有维基个译文,用[https://translatewiki.net/ translatewiki.net],MediaWiki软件个本地化计划。",
        "editinginterface": "<strong>警告:</strong>侬来里编写个页面是畀软件用个界面文本。箇页变化会影响各许人个界面样子。",
-       "translateinterface": "要添加或者更改所有wiki个翻译,请侬访问MediaWiki本地化项目个网站[//translatewiki.net/ translatewiki.net]。",
+       "translateinterface": "要添加或者更改所有wiki个翻译,请侬访问MediaWiki本地化项目个网站[https://translatewiki.net/ translatewiki.net]。",
        "cascadeprotected": "箇只页面畀保护拉许,因为渠已嵌入到下底已经标注“级联保护”个{{PLURAL:$1|一只|多只}}畀保护页面:\n$2",
        "namespaceprotected": "侬无没编辑'''$1'''名字空间里向页面个权限。",
        "customcssprotected": "箇CSS页你呒处编,箇页有各许用户个私人设置。",
        "noname": "用户名无效。",
        "loginsuccesstitle": "登录哉",
        "loginsuccess": "<strong>侬现在以“$1”个身份登录到{{SITENAME}}。</strong>",
-       "nosuchuser": "寻弗着用户“$1”。用户名是大小写敏感外加区分繁简体个。请检查拼写,或者[[Special:CreateAccount|开只新账æ\88·]]ã\80\82",
+       "nosuchuser": "寻弗着用户“$1”。用户名是大小写敏感外加区分繁简体个。请检查拼写,或者[[Special:CreateAccount|开只新账å\8f·]]ã\80\82",
        "nosuchusershort": "无没叫“$1”个用户。请检查侬个输入。",
        "nouserspecified": "侬必须选个用户名。",
        "login-userblocked": "箇个用户拨封锁拉许。弗允许登录。",
        "password-name-match": "密码弗好搭户名一样。",
        "password-login-forbidden": "用箇名字搭密码是弗准个。",
        "mailmypassword": "重置密码",
-       "passwordremindertitle": "{{SITENAME}} 个临时新密码",
+       "passwordremindertitle": "{{SITENAME}}个新临时密码",
        "passwordremindertext": "有人(作兴是侬,来自IP地址$1)已经请求{{SITENAME}}个新密码($4)。\n用户“$2”个一只新临时密码现在已经设置好为“$3”。\n假使箇只动作是侬发起个,侬需要立即登录并选择一只新个密码。\n侬个临时密码会得垃拉$5日里向过期。\n\n假使箇只请求弗是侬发起个,或者侬已经拿密码想起来外加弗准备改脱渠,\n侬可以忽略此消息并继续使用侬个旧密码。",
        "noemail": "用户\"$1\"弗曾登记电子邮件地址。",
        "noemailcreate": "侬要提供只有效个电子邮件地址",
        "passwordsent": "用户\"$1\"个新密码已经寄往登记个电子邮件地址。\n请收着仔再登录。",
-       "blocked-mailpassword": "侬个IP地址处于查封状态,弗允许编辑,为仔安全起见,密码恢复功能已经禁用。",
+       "blocked-mailpassword": "侬个IP地址处于查封状态,弗允许编辑。为仔防止乱用,箇只IP地址个密码恢复功能已经禁用。",
        "eauthentsent": "一封确认信已经发送到指定个电子邮箱地址。垃拉其他邮件发送到本账号之前,侬必须首先按照箇封信里向个指示,确认箇只邮箱真实有效。",
        "throttled-mailpassword": "密码转设电子信徕最近$1个钟头里发畀你侬哉。保险点,密码转设电子信$1个钟头只一垡好发。",
        "mailerror": "发送邮件错误:$1",
        "createaccount-title": "垃拉{{SITENAME}}里向创建新账户",
        "createaccount-text": "有人垃拉{{SITENAME}}里向利用侬个邮箱创建仔一只叫 \"$2\" 个新帐户($4),密码是 \"$3\" 。侬应该立即登录并更改密码。\n\n如果箇个账户创建错误个说话,侬可以忽略此信息。",
        "login-throttled": "你侬试登忒多次哉。\n等 $1 再试试凑相。",
-       "login-abort-generic": "登录弗成功 - 已终止",
+       "login-abort-generic": "侬登录失败 - 中止哉",
        "login-migrated-generic": "侬个账号已经畀移脱哉,并且侬个用户名来箇wiki弗再存在。",
        "loginlanguagelabel": "闲话:$1",
        "suspicious-userlogout": "侬登出个要求已经拨回头脱,因为渠可能是由已损坏个浏览器或者缓存代理传送个。",
        "resettokens-resetbutton": "重置选中个密钥",
        "bold_sample": "粗体文字",
        "bold_tip": "粗体文字",
-       "italic_sample": "斜体文",
-       "italic_tip": "斜体文",
+       "italic_sample": "斜体文",
+       "italic_tip": "斜体文",
        "link_sample": "链接标题",
        "link_tip": "内部链接",
        "extlink_sample": "http://www.example.com 链接标题",
        "showpreview": "显示预览",
        "showdiff": "显示变化",
        "blankarticle": "<strong>警告:</strong>侬要创建个页面是空白个。如果侬再次点击“{{int:savearticle}}”,一只呒不任何内容个页面会畀创建。",
-       "anoneditwarning": "<strong>警告:</strong>侬弗曾登录。如果侬做仔啥编辑,箇么侬个IP地址会公开可见。如果侬<strong>[$1 登录]</strong>或<strong>[$2 创建一只账号]</strong>,侬个编辑会归功于侬用户名下底,而且会有其他优点。",
+       "anoneditwarning": "<strong>警告:</strong>侬弗曾登录。如果侬做仔啥编辑,箇么侬个IP地址会公开可见。如果侬<strong>[$1 登录]</strong>或者<strong>[$2 建立只账号]</strong>,侬个编辑会归功到侬用户名下底,而且有其他优点。",
        "anonpreviewwarning": "''侬弗曾登录。侬个IP位址会得记录拉此页个编辑历史里向。''",
        "missingsummary": "'''提示:''' 侬弗曾提供编辑摘要。假使侬再次单击保存,侬个编辑将弗带编辑摘要保存。",
        "selfredirect": "<strong>警告:</strong>侬来上拿本页面重定向到它自家。侬可能搞错著重定向个目标,或者侬来上编辑错个页面。如果侬再次点击“{{int:savearticle}}”,重定向弗管哪亨会畀创建。",
        "missingcommentheader": "<strong>提示:</strong>侬弗曾为此评论提供标题。如果侬再次单击“{{int:savearticle}}”,侬个编辑将弗带标题保存。",
        "summary-preview": "摘要预览:",
        "subject-preview": "主题预览:",
-       "blockedtitle": "用户查封",
+       "blockedtitle": "用户查封",
        "blockedtext": "<strong>侬个用户名或IP地址已经畀查封。</strong>\n\n由$1查封。畀出个原因是<em>$2</em>。\n\n* 查封开始辰光:$8\n* 查封到期辰光:$6\n* 目标查封对象:$7\n\n侬可以联络$1或者其他个[[{{MediaWiki:Grouppage-sysop}}|管理员]],讨论箇趟查封。侬弗好使用“电邮联系箇位用户”功能,除非侬已经垃侬个[[Special:Preferences|账号设置]]里向指定仔一只有效个电邮地址并且朆畀禁止使用箇只功能。侬当前个IP地址是$3,而该查封ID是#$5。请垃拉侬个查询里向注明以上所有资料。",
        "autoblockedtext": "侬个IP地址已经畀自动查封,因为之前另一位畀$1查封个用户搭侬用一样个IP地址。查封个原因是:\n\n:<em>$2</em>\n\n* 查封开始辰光:$8\n* 查封到期辰光:$6\n* 目标查封对象:$7\n\n侬可以联络$1或者其他个[[{{MediaWiki:Grouppage-sysop}}|管理员]],讨论箇趟查封。\n\n注意侬弗好使用“电邮联系箇位用户”功能,除非侬已经垃侬个[[Special:Preferences|账号设置]]里向指定仔一只有效个电邮地址并且朆畀禁止使用箇只功能。\n\n侬当前个IP地址是$3,而该查封ID是#$5。请垃拉侬个查询里向注明以上所有资料。",
        "blockednoreason": "朆畀出原因",
        "previewnote": "<strong>该个还只是预览。</strong>倷个修改还朆保存!",
        "continue-editing": "到编辑区去",
        "previewconflict": "箇个预览显示了上头文字编辑区里向个内容。渠会得垃拉侬保存之后出现。",
-       "session_fail_preview": "'''弗好意思!由于会话数据落失,我伲弗好处理侬个编辑。'''请重试。如果再次失败,请尝试[[Special:UserLogout|登出]]之后重新登录。",
+       "session_fail_preview": "弗好意思!由于会话数据落失,我伲弗好处理侬个编辑。\n\n侬作兴已经登出哉。<strong>请核实侬啊曾登录勒上,再试一遍</strong>。如果仍旧弗来事,请[[Special:UserLogout|登出]]著再重新登录,并确保侬个浏览器允许本站个cookie。",
        "session_fail_preview_html": "弗好意思!因为会话数据落失,我伲弗好处理侬个编辑。\n\n<em>由于{{SITENAME}}允许使用原始个HTML,为著防范JavaScript攻击,预览已经囥脱。</em>\n\n<strong>如果箇是一趟合法个编辑,请再试一遍。</strong>如果仍旧弗来事,请[[Special:UserLogout|登出]]著再重新登录,并确保侬个浏览器允许本站个cookie。",
        "token_suffix_mismatch": "<strong>由于侬用户端里向个编辑令牌毁损仔一些标点符号字元,为防止编辑个文字损坏,侬个编辑已经畀回头。</strong>箇种情况通常出现垃拉使用含有交关bug、以网络为主个匿名代理服务个辰光。",
        "editing": "来里编写$1",
        "yourtext": "侬个文字",
        "storedversion": "已保存版本",
        "nonunicodebrowser": "'''警告:侬个浏览器弗兼容Unicode编码。'''箇搭有一只工作区将使侬可以安全编辑页面:非ASCII字符将以十六进制编码方式出现垃拉编辑框里向。",
-       "editingold": "''' 注意:倷勒里改动一只已经过期个页面修改。 如果倷保存俚个说话,勒拉该个修改之后个亨白浪当个修改侪会呒拨个。'''",
+       "editingold": "<strong>警告:倷勒里编辑该只页面个旧版本。</strong>如果倷保存俚个说话,勒拉该个版本之后个亨白浪当个修改侪会呒不个。",
        "yourdiff": "两样",
        "copyrightwarning": "请注意侬对{{SITENAME}}个所有贡献侪必须垃拉$2下头发布(请查看垃拉$1个细节)。假使侬弗希望侬个文字畀任意修改搭再发布,请弗要提交。<br />\n侬同时也要向阿拉保证侬所提交个内容是侬自家所作,或得自一个弗受版权保护或相似自由个来源。<strong>弗要垃拉弗曾获得授权个情况下头发表!</strong>",
        "copyrightwarning2": "请注意侬对{{SITENAME}}个所有贡献\n侪可能畀别个贡献者编辑,修改或删除。\n假使侬弗希望侬个文字畀任意修改搭仔再发布,请弗要提交。<br />\n侬同时也要向我伲保证侬提交个内容是侬自家所作,或得自一个弗受版权保护或相似自由个来源(参阅$1个细节)。\n''' 弗要垃拉弗曾获得授权个情况下头发表!'''",
        "postedit-confirmation-created": "页面已创建。",
        "postedit-confirmation-restored": "页面已恢复。",
        "postedit-confirmation-saved": "倷个编辑已保存。",
-       "edit-already-exists": "弗好创建新页面。\n已经有垃许。",
+       "edit-already-exists": "弗好创建新页面。已经有垃许。",
        "defaultmessagetext": "默认消息文本",
        "invalid-content-data": "无效内容数据",
        "content-not-allowed-here": "[[$2]]页面上弗允许“$1”内容",
        "cantcreateaccounttitle": "弗好开户",
        "cantcreateaccount-text": "从箇只IP地址 (<b>$1</b>) 创建账户已经畀[[User:$3|$3]]禁止。\n\n$3封禁个原因是''$2''",
        "viewpagelogs": "望箇页日志",
-       "nohistory": "该只页面呒编辑历史。",
-       "currentrev": "最版本",
+       "nohistory": "该只页面呒编辑历史。",
+       "currentrev": "最版本",
        "currentrev-asof": "$1个最新修订版",
        "revisionasof": "垃拉$1所作出个修订版",
        "revision-info": "{{GENDER:$6|$2}}$1个版本$7",
        "historysize": "($1字节)",
        "historyempty": "(空)",
        "history-feed-title": "校订历史",
-       "history-feed-description": "wiki里向本页个修订历史",
+       "history-feed-description": "本wiki里向该只页面个修订历史",
        "history-feed-item-nocomment": "$1垃拉$2",
        "history-feed-empty": "请求个页面弗存在。渠作兴已畀删除或重命名。\n尝试[[Special:Search|搜索本站]]获得相关新建页面。",
        "history-edit-tags": "编辑选中修订版本个标签",
-       "rev-deleted-comment": "(编辑摘要畀删脱)",
-       "rev-deleted-user": "ï¼\88ç\94¨æ\88·å\90\8då·²å\88 é\99¤)",
-       "rev-deleted-event": "(日志细节畀删脱)",
+       "rev-deleted-comment": "(编辑摘要删脱哉)",
+       "rev-deleted-user": "ï¼\88ç\94¨æ\88·å\90\8då\88 è\84±å\93\89)",
+       "rev-deleted-event": "(日志细节删脱哉)",
        "rev-deleted-user-contribs": "[用户名或IP地址已删除 - 垃贡献里向囥脱编辑]",
        "rev-deleted-text-permission": "箇只页面版本已畀'''删除'''。\n垃拉[{{fullurl:{{#Special:Log}}/delete|page={{PAGENAMEE}}}} 删除日志]里向可以寻着详细信息。",
        "rev-deleted-text-unhide": "箇只页面修订已经畀<strong>删脱</strong>。\n垃拉[{{fullurl:{{#Special:Log}}/delete|page={{PAGENAMEE}}}} 删除日志]里向可以寻着详细信息。\n如果侬想继续个说话,侬仍旧好[$1 查看箇趟修订]。",
        "revdelete-unsuppress": "垃拉已恢复个修订里向移除限制",
        "revdelete-log": "理由:",
        "revdelete-submit": "应用于拣中个{{PLURAL:$1|修订}}",
-       "revdelete-success": "'''修订个可见性已经成功更新。'''",
+       "revdelete-success": "修订个可见性已经更新哉。",
        "revdelete-failure": "版本个可见性无法更新:$1",
        "logdelete-success": "日志个可见性设置好哉。",
        "logdelete-failure": "'''事件个可见性无法设置:'''\n$1",
        "prefsnologintext2": "请登录来更改侬个用户设置。",
        "prefs-skin": "皮肤",
        "skin-preview": "预览",
-       "datedefault": "呒偏好",
+       "datedefault": "呒偏好",
        "prefs-labs": "实验性特色",
        "prefs-user-pages": "用户页",
        "prefs-personal": "用户档案",
        "rightslog": "用户权限日志",
        "action-read": "讀箇頁",
        "action-edit": "编辑箇只页面",
-       "action-createpage": "å\81\9aæ\96°é \81",
-       "action-createtalk": "å\81\9aè¨\8eè«\96é \81",
+       "action-createpage": "建ç«\8b该å\8fªé¡µé\9d¢",
+       "action-createtalk": "建ç«\8b该å\8fªè®¨è®ºé¡µ",
        "action-minoredit": "標小編寫",
        "action-move": "移箇頁",
        "action-move-subpages": "移箇頁搭兒頁",
        "sp-contributions-talk": "讲张",
        "sp-contributions-search": "寻贡献记录",
        "sp-contributions-username": "IP地址要勿用户名:",
+       "sp-contributions-toponly": "只显示阿末只版本个编辑",
        "sp-contributions-submit": "搜寻",
        "whatlinkshere": "有啥链到箇里",
        "whatlinkshere-title": "链接到“$1”个页面",
        "allmessagesname": "名字",
        "allmessagesdefault": "默认文本",
        "allmessagescurrent": "当前文本",
-       "allmessagestext": "该个是MediaWiki名字空间里可用个系统消息列表。如果想搭MediaWiki个本地化贡献翻译,请访问[https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki本地化]搭[//translatewiki.net translatewiki.net]。",
+       "allmessagestext": "该个是MediaWiki名字空间里可用个系统消息列表。如果想搭MediaWiki个本地化贡献翻译,请访问[https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki本地化]搭[https://translatewiki.net translatewiki.net]。",
        "allmessagesnotsupportedDB": "'''{{ns:special}}:Allmessages''' 呒处显示,因为 '''$wgUseDatabaseMessages''' 关勒浪。",
        "thumbnail-more": "放大",
        "filemissing": "文件寻弗着哉",
        "logentry-newusers-create": "用户账号$1畀{{GENDER:$2|创建}}",
        "logentry-newusers-create2": "用户账号$3畀$1{{GENDER:$2|创建}}",
        "logentry-newusers-autocreate": "用户账号$1畀自动{{GENDER:$2|创建}}",
-       "logentry-rights-rights": "$1{{GENDER:$2|更改}}$3个用户组从$4到$5",
+       "logentry-rights-rights": "$1{{GENDER:$2|更改}}{{GENDER:$6|$3}}个用户组从$4到$5",
        "logentry-upload-upload": "$1{{GENDER:$2|上传}}$3",
        "rightsnone": "(呒)",
        "revdelete-summary": "编辑摘要",
+       "feedback-thanks-title": "谢谢侬!",
        "searchsuggest-search": "搜寻",
        "pagelang-language": "闲话"
 }
index f227aaa..d67a289 100644 (file)
        "viewyourtext": "თქვა შეილებუნა ქოძირათ '''თქვანი რედაქტირაფეფიშ''' დაჭყაფური ტექსტი თე ხასჷლას დო გეჭოფათ თიშ ანგი.",
        "protectedinterface": "ეს გვერდი წარმოადგენს ტექსტურ ინტერფეისს პროგრამული უზრუნველყოფისათვის და დაცულია ვანდალიზმის აღკვეთის მიზნით.",
        "editinginterface": "<strong>ყურადღება:</strong> თქვენ არედაქტირებთ გვერდს, რომელიც პროგრამის ინტერფეისის ტექსტს შეიცავს. \nამ გვერდზე განხორციელებული რედაქტირება გამოიწვევს ამ ვიკის სხვა მომხმარებელთა სამუშაო ინტერფეისის შეცვლასაც.",
-       "translateinterface": "თარგმანების ყველა ვიკიში დასამატებლად ან შესაცვლელად, გთხოვთ გამოიყენოთ მედიავიკებისლოკალიზაციის პროექტი [//translatewiki.net/ translatewiki.net].",
+       "translateinterface": "თარგმანების ყველა ვიკიში დასამატებლად ან შესაცვლელად, გთხოვთ გამოიყენოთ მედიავიკებისლოკალიზაციის პროექტი [https://translatewiki.net/ translatewiki.net].",
        "cascadeprotected": "ეს გვერდი რედაქტირებისგან დაცულია, რადგან იგი ჩართულია შემდეგ {{PLURAL:$1|გვერდში, რომლის |გვერდებში, რომელთა}} დასაცავადაც ჩართულია პარამეტრი \"იერარქიული\":\n$2",
        "namespaceprotected": "თქვენ არ გაქვთ '''$1''' სახელთა სივრცეში გვერდების რედაქტირების უფლება.",
        "customcssprotected": "თქვენ არ გაქვთ ამ CSS გვერდის რედაქტირების უფლება, ვინაიდან ის სხვა მომხმარებლის პირად კონფიგურაციას შეიცავს.",
        "resetpass-temp-password": "დროებითი პაროლი:",
        "resetpass-abort-generic": "პაროლის შეცვლა შეჩერდა გაფართოების მიერ.",
        "resetpass-expired": "თქვენს პაროლს ვადა გაუვიდა. გთხოვთ, დააყენოთ ახალი.",
-       "resetpass-expired-soft": "თქვენი პაროლის მოქმედების ვადა ამოწურულია და ახლა ის შეცვლილი უნდა იყოს. გთხოვთ, აირჩიეთ ახალი პაროლი ან დააჭირეთ \"{{int:resetpass-submit-cancel}}\", რათა იგი მოგვიანებით შეცვალოთ.",
-       "resetpass-validity-soft": "თქვენი პაროლი არაკორექტულია: $1\n\nგთხოვთ, აირჩიეთ ახალი პაროლი ან დააჭირეთ \"{{int:resetpass-submit-cancel}}\", რათა იგი მოგვიანებით ჩამოყაროთ.",
+       "resetpass-expired-soft": "თქვენი პაროლის მოქმედების ვადა ამოწურულია და ახლა ის შეცვლილი უნდა იყოს. გთხოვთ, აირჩიეთ ახალი პაროლი ან დააჭირეთ \"{{int:authprovider-resetpass-skip-label}}\", რათა იგი მოგვიანებით შეცვალოთ.",
+       "resetpass-validity-soft": "თქვენი პაროლი არაკორექტულია: $1\n\nგთხოვთ, აირჩიეთ ახალი პაროლი ან დააჭირეთ \"{{int:authprovider-resetpass-skip-label}}\", რათა იგი მოგვიანებით ჩამოყაროთ.",
        "passwordreset": "პაროლიშ ახლშო ეიონწყუალა",
        "passwordreset-text-one": "შეავსეთ ეს ფორმა, რათა კვლავ დააყენოთ თქვენი პაროლი.",
        "passwordreset-text-many": "{{PLURAL:$1|ელ.ფოსტაზე დროებითი პაროლის მისაღებად შეავსეთ ერთ-ერთი ველი.}}",
index 34249d8..8f2c434 100644 (file)
        "protectedpagetext": "דער בלאט איז געשיצט צו פארמיידן רעדאקטירן און אנדערע פעולות.",
        "viewsourcetext": "איר קענט זען און קאפירן דעם מקור פון דעם בלאַט.",
        "viewyourtext": "איר קענט באקוקן דעם מקור פון <strong>אייערע רעדאקטירונגען</strong> צו דעם בלאט.",
-       "protectedinterface": "דער בלאַט שטעלט צו באניצער־אויבערפלאך טעקסט פֿאַרן װײכװאַרג אויף דער דאזיקער וויקי, און איז פֿאַרשפּאַרט כּדי צו פֿאַרמײַדן װאַנדאַליזם.\nכדי צולייגן אדער ענדערן איבערזעצונגען פאר אלע וויקיס, זייט אזוי גוט ניצן [//translatewiki.net/ translatewiki.net], דער מעדיעוויקי לאקאליזאציע פראיעקט.",
+       "protectedinterface": "דער בלאַט שטעלט צו באניצער־אויבערפלאך טעקסט פֿאַרן װײכװאַרג אויף דער דאזיקער וויקי, און איז פֿאַרשפּאַרט כּדי צו פֿאַרמײַדן װאַנדאַליזם.\nכדי צולייגן אדער ענדערן איבערזעצונגען פאר אלע וויקיס, זייט אזוי גוט ניצן [https://translatewiki.net/ translatewiki.net], דער מעדיעוויקי לאקאליזאציע פראיעקט.",
        "editinginterface": "<strong>ווארענונג:</strong> איר באַאַרבעט א בלאט וואס ווערט געניצט צוצושטעלן אינטערפֿייס טעקסט פאר דער ווייכווארג.\nענדערונגען אין דעם בלאַט וועלן טוישן דאס אויסזען פון די סיסטעם מודעות פאר אנדערע באניצער אויף דער וויקי.",
-       "translateinterface": "כדי צו צולייגן איבערזעצונגען פאר אלע וויקיס, זײַט אזוי גוט און ניצט [//translatewiki.net/ translatewiki.net], דער מעדיעוויקי לאקאליזירונג פראיעקט.",
+       "translateinterface": "כדי צו צולייגן איבערזעצונגען פאר אלע וויקיס, זײַט אזוי גוט און ניצט [https://translatewiki.net/ translatewiki.net], דער מעדיעוויקי לאקאליזירונג פראיעקט.",
        "cascadeprotected": "דער בלאט איז געווארן באשיצט פון רעדאקטירן וויבאלד ער איז איינגעשלאסן אין {{PLURAL:$1|דעם פאלגנדן בלאט, וואס איז|די פאלגנדע בלעטער, וואס זענען}} באשיצט מיט דער קאסקאד אפציע:\n\n$2",
        "namespaceprotected": "איר זענט נישט ערלויבט צו רעדאקטירן בלעטער אינעם '''$1''' נאמענטייל.",
        "customcssprotected": "איר האט נישט רשות צו רעדאַקטירן דעם CSS בלאַט, ווײַל ער אַנטהאַלט די פערזענלעכע באַשטימונגען פון אַן אַנדער באַניצער.",
        "createacct-another-realname-tip": "עכטער נאמען איז אפציאנאל.\nאויב איר וויילט אויס צוצושטעלן אים, וועט דאס גענוצט ווערן צו געבן אטריבוציע פאר זייער ארבעט.",
        "pt-login": "אריינלאגירן",
        "pt-login-button": "אַרײַנלאָגירן",
+       "pt-login-continue-button": "פארטזעצן אריינלאגירן",
        "pt-createaccount": "שאַפֿן אַ קאנטע",
        "pt-userlogout": "אַרויסלאָגירן",
        "php-mail-error-unknown": "אומבאַקאַנט טעות אין()mail פֿונקציע פֿון PHP.",
        "botpasswords-updated-body": "דאס באט פאסווארט פאר באט־נאמען \"$1\" פון באניצער \"$2\" איז דערהיינטיקט געווארן.",
        "botpasswords-deleted-title": "באט פאסווארט אויסגעמעקט",
        "resetpass_forbidden": "פאסווערטער קענען נישט ווערן געטוישט",
+       "resetpass_forbidden-reason": "פאסווערטער קענען נישט ווערן געטוישט: $1",
        "resetpass-no-info": "איר דארפֿט זיין אריינלאגירט צוצוקומען גלייך צו דעם דאזיגן בלאט.",
        "resetpass-submit-loggedin": "טוישן פאסווארט",
        "resetpass-submit-cancel": "אַנולירן",
        "resetpass-temp-password": "צײַטווייליק פאַסווארט:",
        "resetpass-abort-generic": "פאסווארט ענדערונג איז מבוטל געווארן דורך א פארברייטערונג.",
        "resetpass-expired": "אירע פאסווארט איז אויסגעגאנגען. זײַט אזוי גוט שטעלט א נײַ פאסווארט כדי ארײַנלאגירן.",
-       "resetpass-expired-soft": "אײַער פאסווארט איז אויסגעגאנגען און דארף ווערן צוריקגעשטעלט. זײַט אזוי גוט קלויבט א נײַ פאסווארט אצינד, אדער קליקט \"{{int:resetpass-submit-cancel}}\" כדי עס צוריקשטעלן שפעטער.",
-       "resetpass-validity-soft": "אײַער פאסווארט איז נישט גילטיק: $1\n\nזײַט אזוי גוט קלויבט א נײַ פאסווארט אצינד, אדער קליקט \"{{int:resetpass-submit-cancel}}\" כדי עס צוריקשטעלן שפעטער.",
+       "resetpass-expired-soft": "אײַער פאסווארט איז אויסגעגאנגען און דארף ווערן צוריקגעשטעלט. זײַט אזוי גוט קלויבט א נײַ פאסווארט אצינד, אדער קליקט \"{{int:authprovider-resetpass-skip-label}}\" כדי עס צוריקשטעלן שפעטער.",
+       "resetpass-validity-soft": "אײַער פאסווארט איז נישט גילטיק: $1\n\nזײַט אזוי גוט קלויבט א נײַ פאסווארט אצינד, אדער קליקט \"{{int:authprovider-resetpass-skip-label}}\" כדי עס צוריקשטעלן שפעטער.",
        "passwordreset": "צוריקשטעלן פאַסווארט",
        "passwordreset-text-one": "דערגאַנצט די פאָרעם צוריקצושטעלן אײַער פאַסווארט.",
        "passwordreset-text-many": "{{PLURAL:$1|דערגאַנצט איינע פֿון די פֿעלדער כדי צו באקומען א פראוויזאריש פאַסווארט דור כן פאסט.}}",
        "passwordreset-emailsentusername": "טאמער איז פאראן אן ע־פאסט אדרעס פארקניפט מיט דעם באניצער־נאמען, וועט מען שיקן א פאסווארט צוריקשטעלן ע-פּאָסט.",
        "passwordreset-emailsent-capture": "מען האט געשיקט א פאסווארט צוריקשטעלן בליצבריוו, וואס ווערט געוויזן אונטן.",
        "passwordreset-emailerror-capture": "מען האט געשאפן א פאסווארט צוריקשטעלן בליצבריוו, וואס ווערט געוויזן אונטן, אבער שיקן צום {{GENDER:$2|באניצער}}איז דורכגעפאלן: $1",
+       "passwordreset-nocaller": "מען דארף פֿארזארגן א רופֿער",
+       "passwordreset-invalideamil": "אומגילטיקער ע־פאסט אדרעס",
        "changeemail": "ענדערן אדער אראפנעמען ע-פּאָסט אַדרעס",
        "changeemail-header": "דערגאַנצט די פֿאָרעם צו ענדערן אייער ע-פּאָסט אַדרעס .\nטאמער ווילט איר אראפנעמען די צוארדנונג פון איינעם פון אייערע ע־פאסט אדרעסן פו אייער קאנטע, לאזט ליידיג דעם נייעם ע־פאסט אדרעס ווען איר גיט איין די פֿארעם.",
        "changeemail-passwordrequired": "איר וועט דארפן איינגעבן אייער פאסווארט צו באשטעטיגן די ענדערונג.",
        "right-override-export-depth": "עקספארטירן בלעטער כולל געלינקטע בלעטער ביז א טיף פון 5",
        "right-sendemail": "שיקן ע-פאסט צו אנדערע באניצער",
        "right-passwordreset": "באַקוקן פאַסווארט צוריקשטעלן ע־בריוו",
-       "right-managechangetags": " [[Special:Tags|טאגן]] פון דעם שאפן און אויסמעקן",
+       "right-managechangetags": "שאפן און (אומ)אקטיווירן [[Special:Tags|טאגן]]",
        "right-applychangetags": "אנווענדן [[Special:Tags|טאגן]] צוזאמען מיט ענדערונגען",
        "grant-group-page-interaction": "אינטעראגירן מיט בלעטער",
        "grant-group-file-interaction": "אינטעראגירן מיט מעדיע",
        "grant-group-email": "שיקן ע־פאסט",
        "grant-createaccount": "שאַפֿן קאנטעס",
+       "grant-editmywatchlist": "רעדאקטירן אײַער אויפֿפאסונג ליסטע",
+       "grant-editpage": "רעדאקטירן עקזיסטירנדע בלעטער",
+       "grant-editprotected": "רעדאקטירן געשיצטע בלעטער",
        "grant-uploadfile": "אַרויפֿלאָדן נייע טעקעס",
        "grant-basic": "בעיסיק רעכטן",
        "grant-viewmywatchlist": "קוקט אייער אויפפאסונג ליסטע",
        "rightslogtext": "דאָס איז אַ לאג פֿון ענדערונגען צו באַניצער רעכטן.",
        "action-read": "ליינען דעם בלאַט",
        "action-edit": "רעדאקטירן דעם בלאַט",
-       "action-createpage": "ש×\90ַפֿ×\9f ×\91×\9c×¢×\98ער",
-       "action-createtalk": "ש×\90ַפֿ×\9f ×©×\9e×\95עס ×\91×\9c×¢×\98ער",
+       "action-createpage": "ש×\90ַפֿ×\9f ×\93×¢×\9d ×\91×\9c×\90Ö·×\98",
+       "action-createtalk": "ש×\90ַפֿ×\9f ×\93×¢×\9d ×©×\9e×\95עס ×\91×\9c×\90×\98",
        "action-createaccount": "שאַפֿן די באַניצער קאנטע",
        "action-history": "באקוקן רעדאקטירן היסטאריע פון דעם בלאט.",
        "action-minoredit": "באַצייכענען די רעדאַקטירונג ווי מינערדיק",
        "action-viewmyprivateinfo": "באקוקן אײַער פריוואטע אינפארמאציע",
        "action-editmyprivateinfo": "רעדאקטירן אײַער פריוואטע אינפארמאציע",
        "action-editcontentmodel": "רעדאקטירן אינהאלט־מאדעל פון א בלאט",
-       "action-managechangetags": "שאפן און אויסמעקן טאגן פון דער דאטנבאזע",
+       "action-managechangetags": "שאפן און (אומ)אקטיווירן טאגן פון דער דאטנבאזע",
        "action-applychangetags": "אנווענדן טאגן צוזאמען מיט אייערע ענדערונגען",
        "nchanges": "{{PLURAL:$1|ענדערונג|$1 ענדערונגען}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|זײַט לעצטן וויזיט}}",
        "sp-contributions-username": "באניצער נאמען אדער IP אדרעס:",
        "sp-contributions-toponly": "בלויז ווײַזן רעדאַקטירונגען וואָס זענען די לעצטיקע רעוויזיעס",
        "sp-contributions-newonly": "בלויז ווײַזן רעדאקטירונגען וואס זענען נײַ־געשאפענע בלעטער",
+       "sp-contributions-hideminor": "באהאלטן מינערדיגע ענדערונגען",
        "sp-contributions-submit": "זוכן",
        "whatlinkshere": "װאָס פֿאַרבינדט אַהער",
        "whatlinkshere-title": "בלעטער וואס פֿארבינדן צו $1",
        "move-page": "באַוועגן $1",
        "move-page-legend": "באַוועגן בלאַט",
        "movepagetext": "זיך באניצן מיט דעם פֿארעם וועט פֿארענדערן דעם נאמען פֿון דעם בלאט, און וועט אריבערפֿירן זיין געשיכטע צום נייעם נאמען.\nדאס אלטע קעפל וועט ווערן א ווייטערפֿירונג בלאט צום נייעם קעפל.\n\nאיר קענט דערהיינטיגן ווייטערפֿירונגען צום אלטן נאמען אויטאמאטיש.\n\nטאמער נישט, טוט פֿארזיכערן אז עס איז נישטא קיין [[Special:DoubleRedirects|געטאפלטע]] אדער [[Special:BrokenRedirects|צעבראכענע ווייטערפֿירונגען]].\n\nאיר זענט פֿאראנטווארטלעך זיכער מאכן אז אלע פֿארבינדונגען ווערן געריכטעט צום געהעריגן ציל.\n\nדער בלאט וועט <strong> נישט</strong> ווערן אריבערגעפֿירט אויב עס איז שוין דא א בלאט אונטער דעם נייעם נאמען, אחוץ ווען ער איז א ווייטערפֿירונג בלאט, און ער האט נישט קיין געשיכטע פון ענדערונגען.\nפשט דערפֿון, אז איר קענט איבערקערן א ווייטערפֿירונג וואס איר האט אט געמאכט בטעות, און איר קענט נישט אריבערשרייבן אן עקסיסטירנדן בלאט.\n\n<strong>הערה:</strong>\n אזא ענדערונג קען זיין דראסטיש און נישט געווינטשען פאר א פאפולערן בלאט;\nביטע פֿארזיכערט אז איר פֿארשטייט די ווייטגרייכנדע קאנסקווענסן צו דער אקציע בעפֿאר איר פֿירט דאס אויס.",
-       "movepagetext-noredirectfixer": "זיך באניצן מיט דעם פֿארעם אונטן וועט פֿארענדערן דעם נאמען פֿון דעם בלאט, און וועט אריבערפֿירן זיין געשיכטע צום נייעם נאמען.\n\nדאס אלטע קעפל וועט ווערן א ווייטערפֿירן בלאט צום נײַעם נאמען.\n\nטוט פֿארזיכערן אז עס בלײַבן נישט קיין [[Special:DoubleRedirects|געטאפלטע]] אדער [[Special:BrokenRedirects|צעבראכענע]] ווייטערפֿירונגען.\n\nאיר זענט פֿאראנטווארטלעך זיכער מאכן אז אלע פֿארבינדונגען ווערן געריכטעט צו דער געהעריגער ריכטונג.\n\nאַכטונג: דער בלאַט וועט <strong>נישט</strong> ווערן אַריבערגעפֿירט אויב עס איז שוין דאָ א בלאט אונטער דעם נײַעם נאמען, אחוץ ווען ער איז א ווײַטערפֿירונג בלאט, און ער האט נישט קיין געשיכטע פון ענדערונגען.\nפשט דערפֿון, אז איר קענט איבערקערן א ווייטערפֿירונג וואס איר האט אט געמאכט בטעות, און איר קענט נישט אריבערשרײַבן אַן עקסיסטירנדן בלאט.\n\n<strong>הערה:</strong> אזא ענדערונג קען זיין דראַסטיש און נישט געוואונטשן פֿאַר א פאפולערן בלאַט; ביטע פֿאַזיכערט אז איר פֿאַרשטייט די ווײַטגרייכנדע קאנסעקווענסן צו דער אַקציע בעפֿאַר איר גייט ווײַטער.",
+       "movepagetext-noredirectfixer": "×\96×\99×\9a ×\91×\90× ×\99צ×\9f ×\9e×\99×\98 ×\93×¢×\9d ×¤Ö¿×\90רע×\9d ×\90×\95× ×\98×\9f ×\95×\95×¢×\98 ×¤Ö¿×\90רענ×\93ער×\9f ×\93×¢×\9d × ×\90×\9e×¢×\9f ×¤Ö¿×\95×\9f ×\93×¢×\9d ×\91×\9c×\90×\98, ×\90×\95×\9f ×\95×\95×¢×\98 ×\90ר×\99×\91ערפֿ×\99ר×\9f ×\96×\99×\99×\9f ×\92עש×\99×\9b×\98×¢ ×¦×\95×\9d × ×\99×\99×¢×\9d × ×\90×\9e×¢×\9f.\n\n×\93×\90ס ×\90×\9c×\98×¢ ×§×¢×¤×\9c ×\95×\95×¢×\98 ×\95×\95ער×\9f ×\90 ×\95×\95×\99×\99×\98ערפֿ×\99ר×\9f ×\91×\9c×\90×\98 ×¦×\95×\9d × ×²Ö·×¢×\9d × ×\90×\9e×¢×\9f.\n\n×\98×\95×\98 ×¤Ö¿×\90ר×\96×\99×\9bער×\9f ×\90×\96 ×¢×¡ ×\91×\9cײַ×\91×\9f × ×\99ש×\98 ×§×\99×\99×\9f [[Special:DoubleRedirects|×\92×¢×\98×\90פ×\9c×\98×¢]] ×\90×\93ער [[Special:BrokenRedirects|צע×\91ר×\90×\9b×¢× ×¢]] ×\95×\95×\99×\99×\98ערפֿ×\99ר×\95× ×\92×¢×\9f.\n\n×\90×\99ר ×\96×¢× ×\98 ×¤Ö¿×\90ר×\90× ×\98×\95×\95×\90ר×\98×\9c×¢×\9a ×\96×\99×\9bער ×\9e×\90×\9b×\9f ×\90×\96 ×\90×\9c×¢ ×¤Ö¿×\90ר×\91×\99× ×\93×\95× ×\92×¢×\9f ×\95×\95ער×\9f ×\92ער×\99×\9b×\98×¢×\98 ×¦×\95 ×\93ער ×\92×¢×\94ער×\99×\92ער ×¨×\99×\9b×\98×\95× ×\92.\n\n×\90Ö·×\9b×\98×\95× ×\92: ×\93ער ×\91×\9c×\90Ö·×\98 ×\95×\95×¢×\98 <strong>× ×\99ש×\98</strong> ×\95×\95ער×\9f ×\90ַר×\99×\91ער×\92עפֿ×\99ר×\98 ×\90×\95×\99×\91 ×¢×¡ ×\90×\99×\96 ×©×\95×\99×\9f ×\93×\90Ö¸ ×\90 ×\91×\9c×\90×\98 ×\90×\95× ×\98ער ×\93×¢×\9d × ×²Ö·×¢×\9d × ×\90×\9e×¢×\9f, ×\90×\97×\95×¥ ×\95×\95×¢×\9f ×¢×¨ ×\90×\99×\96 ×\90 ×\95×\95ײַ×\98ערפֿ×\99ר×\95× ×\92 ×\91×\9c×\90×\98, ×\90×\95×\9f ×¢×¨ ×\94×\90×\98 × ×\99ש×\98 ×§×\99×\99×\9f ×\92עש×\99×\9b×\98×¢ ×¤×\95×\9f ×¢× ×\93ער×\95× ×\92×¢×\9f.\nפש×\98 ×\93ערפֿ×\95×\9f, ×\90×\96 ×\90×\99ר ×§×¢× ×\98 ×\90×\99×\91ערקער×\9f ×\90 ×\95×\95×\99×\99×\98ערפֿ×\99ר×\95× ×\92 ×\95×\95×\90ס ×\90×\99ר ×\94×\90×\98 ×\90×\98 ×\92×¢×\9e×\90×\9b×\98 ×\91×\98×¢×\95ת, ×\90×\95×\9f ×\90×\99ר ×§×¢× ×\98 × ×\99ש×\98 ×\90ר×\99×\91ערשרײַ×\91×\9f ×\90Ö·×\9f ×¢×§×¡×\99ס×\98×\99רנ×\93×\9f ×\91×\9c×\90×\98.\n\n<strong>×\94ער×\94:</strong> ×\90×\96×\90 ×¢× ×\93ער×\95× ×\92 ×§×¢×\9f ×\96×\99×\99×\9f ×\93ר×\90ַס×\98×\99ש ×\90×\95×\9f × ×\99ש×\98 ×\92×¢×\95×\95×\90×\95× ×\98ש×\9f ×¤Ö¿×\90ַר ×\90 ×¤×\90פ×\95×\9cער×\9f ×\91×\9c×\90Ö·×\98; ×\91×\99×\98×¢ ×¤Ö¿×\90ַר×\96×\99×\9bער×\98 ×\90×\96 ×\90×\99ר ×¤Ö¿×\90ַרש×\98×\99×\99×\98 ×\93×\99 ×\95×\95ײַ×\98×\92ר×\99×\99×\9b× ×\93×¢ ×§×\90נסעק×\95×\95ענס×\9f ×¦×\95 ×\93ער ×\90ַקצ×\99×¢ ×\91עפֿ×\90ַר ×\90×\99ר ×\92×\99×\99×\98 ×\95×\95ײַ×\98ער.",
        "movepagetalktext": "טאמער צייכנס איר דאס קעסטל, וועט דער אסאסיציאירטער רעדן בלאט ווערן באַוועגט אויטאמאֵטיש צום נײַעם קעפל, אחוץ ווען ס'איז שוין דא א נישט-ליידיגער רעדן־בלאט.\n\nאין דעם פֿאל, וועט איר דארפֿן באַוועגן אדער צונויפֿגיסן דעם בלאט האַנטלעך, ווען איר ווילט.",
        "moveuserpage-warning": "'''ווארענונג:''' איר האלט ביי באוועגן א באניצער בלאט. ביטע באמערקט אז נאר דער בלאט ווערט באוועגט אבער דער באניצער נאמען ווערט ''נישט'' געענדערט.",
        "movecategorypage-warning": "<strong>ווארענונג:</strong> איר האלט ביי באוועגן א קאטעגאריע בלאט. גיט אכט אז נאר דער בלאט וועט ווערן באוועגט, אבער די בלעטער אין דער אלטער קאטעגאריע וועט מען <em>נישט</em> be ארײַנשטעלן אין דער נייער קאטעגאריע.",
        "allmessagesname": "נאָמען",
        "allmessagesdefault": "גרונטלעכער טעקסט",
        "allmessagescurrent": "איצטיגער טעקסט",
-       "allmessagestext": "אט דאס איז א ליסטע פון אלע סיסטעם מעלדונגען וואס זענען פאראן אין דעם  {{ns:mediawiki}}  נאמענטייל, וואס באדינען דעם אויפהאלט פונעם סייט.\n\nסיסאפן קענען ענדערן די מעלדונגען דורך דרוקן אויפן נאמען פון דער מעלדונג.\n\nביטע באזוכט [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation מעדיעוויקי לאקאליזאציע] און [//translatewiki.net בעטאוויקי] אויב איר ווילט ביישטייערן צו דער גענערישער מעדיעוויקי לאקאליזאציע.",
+       "allmessagestext": "אט דאס איז א ליסטע פון אלע סיסטעם מעלדונגען וואס זענען פאראן אין דעם  {{ns:mediawiki}}  נאמענטייל, וואס באדינען דעם אויפהאלט פונעם סייט.\n\nסיסאפן קענען ענדערן די מעלדונגען דורך דרוקן אויפן נאמען פון דער מעלדונג.\n\nביטע באזוכט [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation מעדיעוויקי לאקאליזאציע] און [https://translatewiki.net בעטאוויקי] אויב איר ווילט ביישטייערן צו דער גענערישער מעדיעוויקי לאקאליזאציע.",
        "allmessagesnotsupportedDB": "מען קען זיך נישט באניצן מיט דעם בלאט וויבאלד די $wgUseDatabseMessages איז געווארן בטל.",
        "allmessages-filter-legend": "פילטער",
        "allmessages-filter": "פֿילטערן לויטן סטאטוס פון מעלדונג:",
        "hebrew-calendar-m12-gen": "אלול",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|רעדן]])",
        "duplicate-defaultsort": "'''ווארענונג:''' גרונט סארטשליסל \"$2\" פֿאָרט איבערן פֿריערדיגן גרונט סארטשליסל \"$1\".",
+       "duplicate-displaytitle": "<strong>ווארענונג:</strong> דער אויסשטעלונג־טיטל \"$2\" שרייבט איבער דעם פריערדיקן אויסשטעלונג־טיטל \"$1\".",
+       "restricted-displaytitle": "<strong>ווארענונג:</strong> דער אויסשטעלונג־טיטל \"$1\" איז געווארן איגנארירט ווייל ער שטימט נישט מיטן עכטן טיטל פונעם בלאַט.",
        "version": "ווערסיע",
        "version-extensions": "אינסטאלירטע פארברייטערונגען",
        "version-skins": "אינסטאלירטע באניצער־אייבערפלאכן",
        "special-characters-title-endash": "ען טירע",
        "special-characters-title-emdash": "עם טירע",
        "special-characters-title-minus": "מינוס",
+       "mw-widgets-titleinput-description-new-page": "דער בלאט עקזיסטירט נאך נישט",
        "log-action-filter-upload": "טיפ ארויפֿלאד:",
        "log-action-filter-all": "אַלע",
        "log-action-filter-delete-delete": "אויסמעקן בלאט",
index b12aac5..d65b7c8 100644 (file)
        "viewsourcetext": "Ẹ lè wo ati ẹ lè se àwòkọ ọ̀rọ̀àmì ojúewé yi:",
        "viewyourtext": "Ẹ le wò bẹ́ẹ̀sìni ẹ le ṣe àwòkọ orísun '''àwọn àtúnṣe yín''' sí ojúewé yìí:",
        "protectedinterface": "Ojúewé yìí únpèsè ìfojúkojú ìkọ̀wé fún atòlànà, ó ti jẹ́ dídáàbòbò láti dínà ìlòkulò.",
-       "editinginterface": "'''Ìkìlọ̀:''' Ẹ ún ṣàtúnṣe ojúewé tó jẹ́ lílò láti pèsè ìkọ ìfojúkojú fún àtòlànà kọ̀mpútà.\nÀwọn ìyípadà sí ojúewé yìí yíò kan ìhànsí ìfojúkojú oníṣe fún àwọn oníṣe míràn lọ́rí wiki yìí.\nLáti ṣ'àfikún tàbí ṣ'àyípadà àwọn ìyédèpadà fún gbogbo àwọn wiki, ẹ jọ̀wọ́ ẹ lo [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], iṣẹ́-ọwọ́ ìṣọdìbílẹ̀ MediaWiki.",
+       "editinginterface": "'''Ìkìlọ̀:''' Ẹ ún ṣàtúnṣe ojúewé tó jẹ́ lílò láti pèsè ìkọ ìfojúkojú fún àtòlànà kọ̀mpútà.\nÀwọn ìyípadà sí ojúewé yìí yíò kan ìhànsí ìfojúkojú oníṣe fún àwọn oníṣe míràn lọ́rí wiki yìí.\nLáti ṣ'àfikún tàbí ṣ'àyípadà àwọn ìyédèpadà fún gbogbo àwọn wiki, ẹ jọ̀wọ́ ẹ lo [https://translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], iṣẹ́-ọwọ́ ìṣọdìbílẹ̀ MediaWiki.",
        "cascadeprotected": "Ojúewé yìí ti jẹ́ dídáàbòbò sí àtùnṣe, nítorípé ó wà nínú {{PLURAL:$1|ojúewé ìsàlẹ̀ yìí, tó jẹ́|àwọn ojúewé ìsàlẹ̀ wọ̀nyí, tí wọ́n jẹ́}} dídáàbòbò pẹ̀lú ìyàn \"ajámọ́ra\" ní títàn: $2",
        "namespaceprotected": "A kò gbàyín ní ààyè láti ṣ'àtúnṣe àwọn ojúewé tó wà nínú orúkọàyè '''$1'''.",
        "customcssprotected": "Ẹ kò ní ìyọ̀nda láti ṣàtúnṣe ojúewé CSS yìí nítorípé ó ní àwọn ìtòjọ oníṣe ẹlòmíràn.",
        "allmessagesname": "Orúkọ",
        "allmessagesdefault": "Ìkọ ìránṣẹ́ àtìbẹ̀rẹ̀",
        "allmessagescurrent": "Ìkọ ìránṣẹ́ lọ́wọ́",
-       "allmessagestext": "Èyí ni àtòjọ àwọn ìránṣẹ́ sístẹ́mù tó wà nínú orúkọàyè MediaWiki.\nẸ lọ sí [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] àti [//translatewiki.net translatewiki.net] tí ẹ bá fẹ́ kópa nínú ìyèdèpadà ìsiṣẹ́ MediaWiki.",
+       "allmessagestext": "Èyí ni àtòjọ àwọn ìránṣẹ́ sístẹ́mù tó wà nínú orúkọàyè MediaWiki.\nẸ lọ sí [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] àti [https://translatewiki.net translatewiki.net] tí ẹ bá fẹ́ kópa nínú ìyèdèpadà ìsiṣẹ́ MediaWiki.",
        "allmessagesnotsupportedDB": "Ojúewé yìí kò ṣe é lò nítorípé '''$wgUseDatabaseMessages''' ti jẹ́ dídálẹkun.",
        "allmessages-filter-legend": "Ajọ̀",
        "allmessages-filter": "Ajọ̀ gẹ́gẹ́bí ipò ìṣàyàn:",
index 925e37f..61bf918 100644 (file)
        "protectedpagetext": "呢一版已經保護咗唔畀改或者做其他動作。",
        "viewsourcetext": "你可以睇吓或者複製呢一頁嘅原始碼。",
        "viewyourtext": "你可以睇同複製呢版入面<strong>由你改</strong>嘅原碼。",
-       "protectedinterface": "呢一頁提供軟件嘅介面文字,呢一頁已經保護咗以預防濫用。\n要加或者改所有維基站嘅翻譯,請去 [//translatewiki.net/ translatewiki.net]嘅  MediaWiki 本地化項目。",
+       "protectedinterface": "呢一頁提供軟件嘅介面文字,呢一頁已經保護咗以預防濫用。\n要加或者改所有維基站嘅翻譯,請去 [https://translatewiki.net/ translatewiki.net]嘅  MediaWiki 本地化項目。",
        "editinginterface": "'''警告''':閣下而家編輯緊嘅係為爾隻軟件提供介面文字嘅版。\n改爾一版會自動改埋爾個維基嘅其他用戶用緊嘅介面嘅文字。",
-       "translateinterface": "要加或者改所有維基項目嘅翻譯,請去MediaWiki嘅本地化項目:[//translatewiki.net/ translatewiki.net]。",
+       "translateinterface": "要加或者改所有維基項目嘅翻譯,請去MediaWiki嘅本地化項目:[https://translatewiki.net/ translatewiki.net]。",
        "cascadeprotected": "呢一版已經保護咗唔能夠編輯,因為佢係響以下嘅{{PLURAL:$1|一|幾}}頁度包含咗,當中啟用咗\"連串\"保護選項來保護嗰一版: $2",
        "namespaceprotected": "你無權編輯響'''$1'''空間名裏面嘅呢一版。",
        "customcssprotected": "你無權改呢版CSS,因為佢包含其他用戶嘅個人設定。",
        "resetpass-temp-password": "臨時密碼:",
        "resetpass-abort-generic": "改密碼嘅動作已經畀擴充套件停咗。",
        "resetpass-expired": "你個密碼經已過期。請設過個新密碼。",
-       "resetpass-expired-soft": "你個密碼經已過期要設過。請揀個新密碼,或者去\"{{int:resetpass-submit-cancel}}\" 轉頭再設過。",
-       "resetpass-validity-soft": "你個密碼無效: $1\n\n請揀個新密碼,或者去\"{{int:resetpass-submit-cancel}}\" 轉頭再設過。",
+       "resetpass-expired-soft": "你個密碼經已過期要設過。請揀個新密碼,或者去\"{{int:authprovider-resetpass-skip-label}}\" 轉頭再設過。",
+       "resetpass-validity-soft": "你個密碼無效: $1\n\n請揀個新密碼,或者去\"{{int:authprovider-resetpass-skip-label}}\" 轉頭再設過。",
        "passwordreset": "密碼重設",
        "passwordreset-text-one": "填好呢份表格去申請將臨時密碼經電郵送畀你。",
        "passwordreset-text-many": "{{PLURAL:$1|填其中一欄去申請將臨時密碼經電郵送畀你。}}",
        "allmessagesname": "名稱",
        "allmessagesdefault": "預設訊息文字",
        "allmessagescurrent": "現時訊息文字",
-       "allmessagestext": "以下係 MediaWiki 空間名入邊現有系統信息嘅清單。\n如果想貢獻正宗嘅MediaWiki本地化嘅話,請參閱[https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki本地化]同埋[//translatewiki.net translatewiki.net]。",
+       "allmessagestext": "以下係 MediaWiki 空間名入邊現有系統信息嘅清單。\n如果想貢獻正宗嘅MediaWiki本地化嘅話,請參閱[https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki本地化]同埋[https://translatewiki.net translatewiki.net]。",
        "allmessagesnotsupportedDB": "呢一版唔可以用,因為'''$wgUseDatabaseMessages'''已經閂咗。",
        "allmessages-filter-legend": "過濾",
        "allmessages-filter": "以自定狀況過濾:",
index f29afc7..b3838a7 100644 (file)
        "protectedpagetext": "Deêze pagina is beveiligd. Bewerken is nie meuhlijk.",
        "viewsourcetext": "Je kan de brontekst van deêze pagina bekieken en kopiëren:",
        "protectedinterface": "Deêze pagina bevat tekst voe berichen van de software en is beveiligd om misbruuk te voorkomm'n.",
-       "editinginterface": "'''Waerschuwienge:''' Je bewerk een pagina die a gebruukt wor deur de software. Bewerkiengen op deêze pagina beïnvloeden de gebrukersinterface van iedereên. Overweeg voe vertaeliengen om [//translatewiki.net/wiki/Main_Page?setlang=zea translatewiki.net] te gebruken, 't vertaeliengsproject voe MediaWiki.",
+       "editinginterface": "'''Waerschuwienge:''' Je bewerk een pagina die a gebruukt wor deur de software. Bewerkiengen op deêze pagina beïnvloeden de gebrukersinterface van iedereên. Overweeg voe vertaeliengen om [https://translatewiki.net/wiki/Main_Page?setlang=zea translatewiki.net] te gebruken, 't vertaeliengsproject voe MediaWiki.",
        "cascadeprotected": "Deêze pagina kan nie bewerkt worn, omda 't een is openomen in de volhende {{PLURAL:$1|pagina|pagina's}} die beveiligd {{PLURAL:$1|is|zien}} mie de cascaode-optie:\n$2",
        "namespaceprotected": "Je ei hin rechen om pagina's in de naemruumte '''$1''' te bewerken.",
        "ns-specialprotected": "Pagina's in de naemruumte \"{{ns:special}}\" kunn'n nie bewerkt worn.",
index db0fc48..dddae77 100644 (file)
        "protectedpagetext": "该页面已被保护以防止编辑和其他操作。",
        "viewsourcetext": "您可以查看与复制此页面的源代码。",
        "viewyourtext": "您可以查看与复制<strong>您对此页面作出编辑后</strong>的源代码。",
-       "protectedinterface": "该页提供此wiki软件的界面文字,它已被保护以防止恶意修改。\n如欲修改所有wiki的翻译,请到[//translatewiki.net/ translatewiki.net]上的MediaWiki本地化计划。",
+       "protectedinterface": "该页提供此wiki软件的界面文字,它已被保护以防止恶意修改。如欲修改所有wiki的翻译,请到[https://translatewiki.net/ translatewiki.net]上的MediaWiki本地化计划。",
        "editinginterface": "<strong>警告:</strong>您正在编辑用于提供软件的界面文字的页面。改变此页将影响其他在此wiki上其他用户的用户界面外观。",
-       "translateinterface": "要加入或更改所有wiki的翻译,请访问MediaWiki本地化项目网站[//translatewiki.net/ translatewiki.net]。",
+       "translateinterface": "要加入或更改所有wiki的翻译,请访问MediaWiki本地化项目网站[https://translatewiki.net/ translatewiki.net]。",
        "cascadeprotected": "本页面已经受到保护,不能编辑,因为它被嵌入于以下被“连锁保护”的{{PLURAL:$1|页面}}:\n$2",
        "namespaceprotected": "您没有权限编辑<strong>$1</strong>名字空间内的页面。",
        "customcssprotected": "您没有权限编辑此CSS页面,因为它包含另一位用户的个人设置。",
        "resetpass-temp-password": "临时密码:",
        "resetpass-abort-generic": "密码更改已经被扩展程序中止。",
        "resetpass-expired": "你的密码已经到期。请设置新登录密码。",
-       "resetpass-expired-soft": "你的密码已经到期,需要重置。请现在更换新密码,或单击“{{int:resetpass-submit-cancel}}”以稍后重置。",
-       "resetpass-validity-soft": "您的密码无效:$1\n请选择一个新密码,或单击“{{int:resetpass-submit-cancel}}”以稍后重置。",
+       "resetpass-expired-soft": "您的密码已经到期,需要重置。请现在更换新密码,或单击“{{int:authprovider-resetpass-skip-label}}”以稍后重置。",
+       "resetpass-validity-soft": "您的密码无效:$1\n\n请选择一个新密码,或单击“{{int:authprovider-resetpass-skip-label}}”以稍后重置。",
        "passwordreset": "重置密码",
        "passwordreset-text-one": "请输入你要重置的用户名。",
        "passwordreset-text-many": "{{PLURAL:$1|在此键入您希望接收临时密码的邮件地址。}}",
        "minoredit": "标记为小编辑",
        "watchthis": "监视本页",
        "savearticle": "保存页面",
+       "savechanges": "保存更改",
        "publishpage": "发布页面",
+       "publishchanges": "发布更改",
        "preview": "预览",
        "showpreview": "显示预览",
        "showdiff": "显示更改",
        "content-model-css": "CSS",
        "content-json-empty-object": "空的对象",
        "content-json-empty-array": "空的数组",
+       "deprecated-self-close-category": "使用无效自封闭HTML标签的页面",
+       "deprecated-self-close-category-desc": "页面包含无效的自封闭HTML标签,例如<code>&lt;b/></code>或<code>&lt;span/></code>。这些标签的行为将很快被更改以与HTML5规格相一致,所以它们在wiki文本中的使用已弃用。",
        "duplicate-args-warning": "<strong>警告:</strong>[[:$1]]正在调用超过一个[[:$2]]中“$3”参数的值。只有最后提供的值会被使用。",
        "duplicate-args-category": "调用重复模板参数的页面",
        "duplicate-args-category-desc": "页面包含调用了重复参数的模板,例如<code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code>或<code><nowiki>{{foo|bar|1=baz}}</nowiki></code>。",
        "rev-deleted-comment": "(编辑摘要被移除)",
        "rev-deleted-user": "(用户名被删除)",
        "rev-deleted-event": "(日志详情已移除)",
-       "rev-deleted-user-contribs": "[用户名或IP地址被除 - 编辑在贡献中隐藏]",
+       "rev-deleted-user-contribs": "[用户名或IP地址被除 - 编辑在贡献中隐藏]",
        "rev-deleted-text-permission": "本页面版本已被<strong>删除</strong>。详情请见[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 删除日志]。",
        "rev-suppressed-text-permission": "此页面修订已经被<strong>监督隐藏</strong>。详细信息可在[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 监督日志]中找到。",
        "rev-deleted-text-unhide": "本页面版本已被<strong>删除</strong>。详情请见[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 删除日志]。如果您想继续操作,您仍然可以[$1 查看本版本]。",
        "rightslogtext": "这是用户权限更改的日志。",
        "action-read": "阅读本页",
        "action-edit": "编辑本页",
-       "action-createpage": "创建页面",
-       "action-createtalk": "创建讨论页面",
+       "action-createpage": "创建页面",
+       "action-createtalk": "创建讨论页面",
        "action-createaccount": "创建该用户账户",
        "action-autocreateaccount": "自动创建该外部用户账户",
        "action-history": "查看此页历史",
        "upload-http-error": "发生HTTP错误:$1",
        "upload-copy-upload-invalid-domain": "不能从该域名上载文件副本。",
        "upload-foreign-cant-upload": "此wiki未配置为上传文件至请求的外部文件存储库。",
+       "upload-foreign-cant-load-config": "未能加载用于上传至外部文件存储库的文件配置。",
+       "upload-dialog-disabled": "使用此对话框的文件上传在此wiki已禁用。",
        "upload-dialog-title": "上传文件",
        "upload-dialog-button-cancel": "取消",
        "upload-dialog-button-done": "完成",
        "apisandbox": "API 沙盒",
        "apisandbox-jsonly": "需要JavaScript以使用API沙盒。",
        "apisandbox-api-disabled": "API在该网站停用。",
-       "apisandbox-intro": "使用这个页面来试验<strong>MediaWiki Web 服务应用程序接口(API)</strong>。\n欲知API使用详情,请参阅[[mw:API:Main page|API文档]]。\n例如:[//www.mediawiki.org/wiki/API#A_simple_example 取得某个主页的内容],然后选择一个操作来看更多范例。\n\n请注意,虽然这是一个沙盒,但是你在这个页面上的改动可能会修改维基。",
+       "apisandbox-intro": "使用这个页面来试验<strong>MediaWiki Web 服务应用程序接口(API)</strong>。\n欲知API使用详情,请参阅[[mw:API:Main page|API文档]]。\n例如:[https://www.mediawiki.org/wiki/API#A_simple_example 取得某个主页的内容],然后选择一个操作来看更多范例。\n\n请注意,虽然这是一个沙盒,但是您在这个页面上的改动可能会修改维基。",
        "apisandbox-fullscreen": "展开面板",
        "apisandbox-fullscreen-tooltip": "展开沙盒面板以填充浏览器窗口。",
        "apisandbox-unfullscreen": "显示页面",
        "sp-contributions-username": "IP地址或用户名:",
        "sp-contributions-toponly": "仅显示最后版本的编辑",
        "sp-contributions-newonly": "仅显示创建页面的编辑",
+       "sp-contributions-hideminor": "隐藏小编辑",
        "sp-contributions-submit": "搜索",
        "whatlinkshere": "链入页面",
        "whatlinkshere-title": "链接至“$1”的页面",
        "lockedbyandtime": "(由 {{GENDER:$1|$1}} 于$2 $3执行)",
        "move-page": "移动$1",
        "move-page-legend": "移动页面",
-       "movepagetext": "您可以使用下面的表单来重命名一个页面,同时将其版本历史移动到新页面。同时老的条目将会被重定向到新条目。您可以自动地将重定向更新到原条目。如果您不选择这样做的话,请检查[[Special:DoubleRedirects|双重]]或[[Special:BrokenRedirects|损坏重定向]]链接。您有责任确保链接会被正确指向他们应该被指向的地方。\n\n注意:即使新条目已经有对应页面,此页面也<strong>不会</strong>被移动,除非新页面无任何编辑历史或是重定向页。这意味着您可在误操作后将页面移回原处,同时,您也无法覆盖现有页面。\n\n<strong>注意:</strong>\n对这样一个经常被访问的页面而言这可能是一个重大且唐突的更改;请在行动前先了解您的修改可能带来的一切后果。",
-       "movepagetext-noredirectfixer": "用下面的表单来重命名一个页面,并将其版本历史同时移动到新页面。\n老的页面将成为新页面的重定向页。\n请检查[[Special:DoubleRedirects|双重重定向]]或[[Special:BrokenRedirects|损坏重定向]]链接。\n您应当负责确定所有链接依然会链到指定的页面。\n\n注意如果新页面已经有内容的话,页面将<strong>不会</strong>被移动,\n除非新页面无内容或是重定向页,而且没有版本历史。\n这意味着您再必要时可以在移动到新页面后再移回老的页面,\n同时您也无法覆盖现有页面。\n\n<strong>注意:</strong>\n对一个经常被访问的页面而言这可能是一个重大与唐突的更改;\n请在行动前先确定您了解其所可能带来的后果。",
+       "movepagetext": "您可以使用下面的表单来重命名一个页面,同时将其版本历史移动到新页面。同时老的条目将会被重定向到新条目。您可以自动地将重定向更新到原条目。如果您不选择这样做的话,请检查[[Special:DoubleRedirects|双重]]或[[Special:BrokenRedirects|损坏重定向]]链接。您有责任确保链接会被正确指向他们应该被指向的地方。\n\n注意:即使新条目已经有对应页面,此页面也<strong>不会</strong>被移动,除非新页面无任何编辑历史或是重定向页。这意味着您可在误操作后将页面移回原处,同时,您也无法覆盖现有页面。\n\n<strong>注意:</strong>对这样一个经常被访问的页面而言这可能是一个重大且唐突的更改;请在行动前先了解您的修改可能带来的一切后果。",
+       "movepagetext-noredirectfixer": "用下面的表单来重命名一个页面,并将其版本历史同时移动到新页面。老的页面将成为新页面的重定向页。请检查[[Special:DoubleRedirects|双重重定向]]或[[Special:BrokenRedirects|损坏重定向]]链接。您应当负责确定所有链接依然会链到指定的页面。\n\n注意如果新页面已经有内容的话,页面将<strong>不会</strong>被移动,除非新页面无内容或是重定向页,而且没有版本历史。这意味着您再必要时可以在移动到新页面后再移回老的页面,同时您也无法覆盖现有页面。\n\n<strong>注意:</strong>对一个经常被访问的页面而言这可能是一个重大与唐突的更改;请在行动前先确定您了解其所可能带来的后果。",
        "movepagetalktext": "如果您勾选此框,相关联的讨论页将被自动移动到新的标题,除非这里已经有了一个非空讨论页。\n\n在这种情况下,如有需要,您将不得不手动移动或合并页面。",
        "moveuserpage-warning": "'''警告:'''你将移动一个用户页面。请注意,只有该页面会被移动,该用户''不''会被更名。",
        "movecategorypage-warning": "<strong>警告:</strong>您将移动分类页面。请注意只有此页面将会移动,旧有分类的任何页面将<em>不会</em>同步移动。",
        "allmessagesname": "名称",
        "allmessagesdefault": "默认信息文字",
        "allmessagescurrent": "当前信息文字",
-       "allmessagestext": "此处列出了MediaWiki名字空间下的所有有效系统消息。\n如果想为MediaWiki的本地化贡献翻译,请访问[https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki本地化]和[//translatewiki.net translatewiki.net]。",
+       "allmessagestext": "此处列出了MediaWiki名字空间下的所有有效系统消息。如果想为MediaWiki的本地化贡献翻译,请访问[https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki本地化]和[https://translatewiki.net translatewiki.net]。",
        "allmessagesnotsupportedDB": "此页面无法使用,因为'''$wgUseDatabaseMessages'''已被设置关闭。",
        "allmessages-filter-legend": "过滤",
        "allmessages-filter": "按自定义状态过滤:",
        "filedelete-archive-read-only": "存档目录“$1”在网页服务器中不可写。",
        "previousdiff": "←上一编辑",
        "nextdiff": "下一编辑→",
-       "mediawarning": "'''警告''':该文件类型可能含有恶意代码。执行后你的系统可能受损。",
+       "mediawarning": "<strong>警告:</strong>该文件类型可能含有恶意代码。执行后您的系统可能受损。",
        "imagemaxsize": "图像尺寸限制:<br />''(文件说明页面)''",
        "thumbsize": "缩略图尺寸:",
        "widthheightpage": "$1×$2,$3页",
        "mw-widgets-dateinput-no-date": "没有选定日期",
        "mw-widgets-titleinput-description-new-page": "页面不存在",
        "mw-widgets-titleinput-description-redirect": "重定向至$1",
-       "api-error-blacklisted": "请选择其他描述性的标题。",
        "sessionmanager-tie": "不能结合多个请求的身份验证类型:$1。",
        "sessionprovider-generic": "$1会话",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "基于cookie的会话",
        "log-action-filter-newusers": "账户创建的类型:",
        "log-action-filter-patrol": "巡查类型:",
        "log-action-filter-protect": "保护类型:",
-       "log-action-filter-rights": "权限更改的类型",
-       "log-action-filter-suppress": "屏蔽的类型",
+       "log-action-filter-rights": "权限更改的类型",
+       "log-action-filter-suppress": "屏蔽的类型",
        "log-action-filter-upload": "上传类型:",
        "log-action-filter-all": "全部",
        "log-action-filter-block-block": "封禁",
        "cannotauth-not-allowed-title": "权限被拒绝",
        "cannotauth-not-allowed": "您不被允许使用此页面",
        "changecredentials": "更改证书",
-       "changecredentials-submit": "更改",
-       "changecredentials-submit-cancel": "取消",
+       "changecredentials-submit": "更改证书",
        "changecredentials-invalidsubpage": "$1不是有效的证书类型。",
        "changecredentials-success": "您的证书已被更改。",
        "removecredentials": "移除证书",
-       "removecredentials-submit": "移除",
-       "removecredentials-submit-cancel": "取消",
+       "removecredentials-submit": "移除证书",
        "removecredentials-invalidsubpage": "$1不是有效的证书类型。",
        "removecredentials-success": "您的证书已被移除。",
        "credentialsform-provider": "证书类型:",
        "linkaccounts-success-text": "账户已链接。",
        "linkaccounts-submit": "链接帐户",
        "unlinkaccounts": "取消链接账户",
-       "unlinkaccounts-success": "账户已取消链接。"
+       "unlinkaccounts-success": "账户已取消链接。",
+       "authenticationdatachange-ignored": "身份验证数据更改未处理。也许没有配置的提供者?"
 }
index 9a52c63..dab710e 100644 (file)
@@ -72,7 +72,8 @@
                        "Bbslam",
                        "Zerng07",
                        "Reke",
-                       "Kly"
+                       "Kly",
+                       "Cosine02"
                ]
        },
        "tog-underline": "底線標示連結:",
        "protectedpagetext": "此頁面已設為保護防止編輯或其他操作。",
        "viewsourcetext": "您可以檢視並複製此頁面的原始碼。",
        "viewyourtext": "您可以檢視並複製此頁面中<strong>您編輯</strong>的原始碼。",
-       "protectedinterface": "本頁用來提供此 Wiki 軟體介面上的文字,並且已被設為保護以防止惡意修改。\n如欲增加或修改 Wiki 的翻譯,請至 [//translatewiki.net/ translatewiki.net] 上的 MediaWiki 在地化專案。",
+       "protectedinterface": "本頁用來提供此 Wiki 軟體介面上的文字,並且已被設為保護以防止惡意修改。\n如欲增加或修改 Wiki 的翻譯,請至 [https://translatewiki.net/ translatewiki.net] 上的 MediaWiki 在地化專案。",
        "editinginterface": "<strong>警告:</strong>您正在編輯的頁面文字是用來作為軟體介面使用。\n變更此頁面將會影響其他使用者在此 Wiki 上看到的使用者介面。",
-       "translateinterface": "如欲修改 Wiki 的翻譯,請至 [//translatewiki.net/ translatewiki.net] 上的 MediaWiki 在地化專案。",
+       "translateinterface": "如欲修改 Wiki 的翻譯,請至 [https://translatewiki.net/ translatewiki.net] 上的 MediaWiki 在地化專案。",
        "cascadeprotected": "此頁面被保護無法編輯,因為此頁面被以下開啟 \"連鎖保護\" 選項的{{PLURAL:$1|一頁|數頁}}保護頁面引用:\n$2",
        "namespaceprotected": "您沒有權限編輯 <strong>$1</strong> 命名空間的頁面。",
        "customcssprotected": "您並沒有權限編輯此 CSS 頁面,因為此頁面包含了其他使用者的個人設定。",
        "createacct-email-ph": "輸入您的電子郵件地址",
        "createacct-another-email-ph": "輸入電子郵件地址",
        "createaccountmail": "使用臨時的隨機密碼,並將它寄至指定的電子郵件地址",
+       "createaccountmail-help": "可用來建立其他人的帳號 (不需要知道密碼)。",
        "createacct-realname": "真實姓名 (選填)",
        "createaccountreason": "原因:",
        "createacct-reason": "原因",
        "resetpass-temp-password": "臨時密碼:",
        "resetpass-abort-generic": "擴充套件已中止了變更密碼的操作。",
        "resetpass-expired": "您的密碼已過期。請設定一個新的密碼以登入。",
-       "resetpass-expired-soft": "您的密碼已過期,需要重新設定。請現在設定您的新密碼,或點選 \"{{int:resetpass-submit-cancel}}\" 稍後再重設。",
-       "resetpass-validity-soft": "您的密碼無效:$1 \n\n請現在設定您的新密碼,或點選 \"{{int:resetpass-submit-cancel}}\" 稍後再重設。",
+       "resetpass-expired-soft": "您的密碼已過期,需要重新設定。請現在設定您的新密碼,或點選 \"{{int:authprovider-resetpass-skip-label}}\" 稍後再重設。",
+       "resetpass-validity-soft": "您的密碼無效:$1 \n\n請現在設定您的新密碼,或點選 \"{{int:authprovider-resetpass-skip-label}}\" 稍後再重設。",
        "passwordreset": "重新設定密碼",
        "passwordreset-text-one": "完成此表單,透過電子郵件傳送臨時密碼以重新設定您的密碼。",
        "passwordreset-text-many": "{{PLURAL:$1|請完成此表單以透過電子郵件接收臨時密碼。}}",
        "passwordreset-emailsentusername": "若此確實為您使用者名稱所登記的電子郵件地址,將會寄出重設密碼的信件給您。",
        "passwordreset-emailsent-capture": "已寄出重設密碼的電子郵件,並於下方顯示。",
        "passwordreset-emailerror-capture": "下列為重設密碼的電子郵件內容,傳送給{{GENDER:$2|使用者}}失敗:$1",
+       "passwordreset-emailsent-capture2": "密碼重設{{PLURAL:$1|郵件|郵件}}已寄出,{{PLURAL:$1|使用者名稱與密碼|使用者名稱與密碼}}如下顯示。",
+       "passwordreset-emailerror-capture2": "寄發電子郵件給{{GENDER:$2|使用者}}失敗:$1,{{PLURAL:$3|使用者名稱與密碼|使用者名稱與密碼}}如下顯示。",
+       "passwordreset-nocaller": "必須提供 caller",
+       "passwordreset-nosuchcaller": "Caller 不存在:$1",
+       "passwordreset-ignored": "未處理密碼重設動作,可能尚未設定提供者?",
+       "passwordreset-invalideamil": "無效的電子郵件地址",
+       "passwordreset-nodata": "未提供使用者名稱或是電子郵件地址",
        "changeemail": "變更或移除電子郵件地址",
        "changeemail-header": "請填寫此表單來變更您的電子郵件地址,若您想要移除您帳號所連結的所有電子郵件地址,請於新電子郵件地址欄位留空。",
        "changeemail-passwordrequired": "您須要輸入您的密碼來確認此次變更。",
        "minoredit": "這是一個小修訂",
        "watchthis": "監視此頁面",
        "savearticle": "儲存頁面",
-       "publishpage": "發布頁面",
+       "savechanges": "儲存變更",
+       "publishpage": "發佈頁面",
+       "publishchanges": "發布變更",
        "preview": "預覽",
        "showpreview": "顯示預覽",
        "showdiff": "顯示變更",
        "userpage-userdoesnotexist": "使用者帳號 \"$1\" 尚未註冊。\n若您要建立/編輯此頁面,請先檢查是否正確。",
        "userpage-userdoesnotexist-view": "使用者帳號 \"$1\" 尚未註冊。",
        "blocked-notice-logextract": "此使用者目前已被封鎖。\n以下為最近的封鎖紀錄以供參考:",
-       "clearyourcache": "<strong>注意:</strong>在您儲存之後您必須清除瀏覽器快取才可看到最新的變更。\n* <strong>Firefox / Safari:</strong>按住 <em>Shift</em> 時點選 <em>重新整理</em>,或按 <em>Ctrl-F5</em> 或 <em>Ctrl-R</em> (Mac 則為 <em>⌘-R</em>) \n* <strong>Google Chrome:</strong>按 <em>Ctrl-Shift-R</em> (Mac 則為 <em>⌘-Shift-R</em>) \n* <strong>Internet Explorer:</strong>按住 <em>Ctrl</em> 時點選 <em>重新整理</em>,或按 <em>Ctrl-F5</em>\n* <strong>Opera:</strong>進入 <em>工具 → 偏好設定</em> 中清除快取。",
+       "clearyourcache": "<strong>注意:</strong>在您儲存之後您必須清除瀏覽器快取才可看到最新的變更。\n* <strong>Firefox / Safari:</strong>按住 <em>Shift</em> 時點選 <em>重新整理</em>,或按 <em>Ctrl-F5</em> 或 <em>Ctrl-R</em> (Mac 則為 <em>⌘-R</em>) \n* <strong>Google Chrome:</strong>按 <em>Ctrl-Shift-R</em> (Mac 則為 <em>⌘-Shift-R</em>) \n* <strong>Internet Explorer:</strong>按住 <em>Ctrl</em> 時點選 <em>重新整理</em>,或按 <em>Ctrl-F5</em>\n* <strong>Opera:</strong>前往 <em>選單 → 設定</em> (在 Mac 為 <em>Opera → 偏好設定</em>) 然後再到 <em>隱私 & 安全性 → 清除瀏覽資料 → 已快取的圖片與檔案</em>。",
        "usercssyoucanpreview": "<strong>提示:</strong>在儲存之前使用 \"{{int:showpreview}}\" 按鈕來測試您的新 CSS 。",
        "userjsyoucanpreview": "<strong>提示:</strong>在儲存之前使用 \"{{int:showpreview}}\" 按鈕來測試您的新 JavaScript 。",
        "usercsspreview": "<strong>您目前正預覽您的使用者 CSS,CSS 還尚未儲存!</strong>",
        "previewnote": "<strong>您目前正在預覽,您的變更還尚未儲存!</strong>",
        "continue-editing": "前往編輯框",
        "previewconflict": "此預覽顯示了您於上方文字編輯框中的內容儲存之後將會顯示的結果。",
-       "session_fail_preview": "很抱歉!由於連線階段的資料遺失,以至於我們無法處理您的編輯動作。\n您可能已經登出了。<strong>請您確認您仍然在登入狀態,並請再試一次<strong/>。\n請再試一次。\n如果仍然失敗,請 [[Special:UserLogout|登出]] 後重新登入,並請您確認您的瀏覽器允許此網站的Cookie。",
+       "session_fail_preview": "很抱歉!由於連線階段的資料遺失,以至於我們無法處理您的編輯動作。\n您可能已經登出了。<strong>請您確認您仍然在登入狀態,並請再試一次</strong>。\n請再試一次。\n如果仍然失敗,請 [[Special:UserLogout|登出]] 後重新登入,並請您確認您的瀏覽器允許此網站的 Cookie。",
        "session_fail_preview_html": "<strong>抱歉!由於是次登入時段出現資料遺失,我們無法處理您所作出的編輯。</strong>\n\n<em> {{SITENAME}} 已開啟了原始 HTML 模式,故此預覽畫面將不會顯示以避免 JavaScript 攻擊。</em>\n\n<strong>如您希望真正能夠作出這次編輯,請再試一次。</strong>\n如果仍不成功,請 [[Special:UserLogout|登出]] 後再重新登入,並確保瀏覽器設定為「允許這個網域的cookie」。",
        "token_suffix_mismatch": "<strong>因您使用的瀏覽器破壞了編輯密鑰中的特殊符號,您的編輯已被拒絕。</strong>\n為了避免破壞頁面內容,已拒絕此次編輯動作,\n會發生這個問題通常是因為您使用了有問題的匿名網頁代理伺服器。",
        "edit_form_incomplete": "<strong>部份編輯的內容未送至伺服器,請檢查您的編輯內容是否完整並再試一次。</strong>",
        "saveprefs": "儲存",
        "restoreprefs": "還原所有預設設定 (所有項目)",
        "prefs-editing": "編輯",
-       "rows": "數:",
-       "columns": "數:",
+       "rows": "橫行數:",
+       "columns": "直行數:",
        "searchresultshead": "搜尋",
        "stub-threshold": "短頁面連結格式門檻值 ($1):",
        "stub-threshold-sample-link": "樣本",
        "right-override-export-depth": "匯出頁面包含連結內容,深度上限為 5 層",
        "right-sendemail": "傳送電子郵件聯絡其他使用者",
        "right-passwordreset": "檢視重設密碼電子郵件",
-       "right-managechangetags": "建立並自資料庫移除[[Special:Tags|標籤]]",
+       "right-managechangetags": "建立並自資料庫 (取消) 啟用 [[Special:Tags|標籤]]",
        "right-applychangetags": "連同某個人的變更一起套用[[Special:Tags|標籤]]",
        "right-changetags": "加入與移除任何於各別修訂與日誌項目的[[Special:Tags|標籤]]",
+       "right-deletechangetags": "從資料庫刪除 [[Special:Tags|標籤]]",
        "grant-generic": "\"$1\" 權限組合",
        "grant-group-page-interaction": "與頁面互動",
        "grant-group-file-interaction": "與媒體互動",
        "rightslogtext": "此為變更使用者權限的日誌。",
        "action-read": "閱讀此頁面",
        "action-edit": "編輯此頁面",
-       "action-createpage": "建立頁面",
-       "action-createtalk": "建立討論頁面",
+       "action-createpage": "建立頁面",
+       "action-createtalk": "建立討論頁面",
        "action-createaccount": "建立此使用者帳號",
        "action-autocreateaccount": "自動建立此外部使用者帳號",
        "action-history": "檢視此頁面歷史",
        "action-viewmyprivateinfo": "檢視您的個人資訊",
        "action-editmyprivateinfo": "編輯您的個人資訊",
        "action-editcontentmodel": "編輯頁面的內容模型",
-       "action-managechangetags": "建立並自資料庫移除標籤",
+       "action-managechangetags": "建立與 (取消) 啟用標籤",
        "action-applychangetags": "連同您的變更一起套用標籤",
        "action-changetags": "加入與移除任何於各別修訂與日誌項目的標籤",
+       "action-deletechangetags": "從資料庫刪除標籤",
        "nchanges": "$1 次變更",
        "enhancedrc-since-last-visit": "{{PLURAL:$1|自上次拜訪}}已有 $1",
        "enhancedrc-history": "歷史",
        "upload-http-error": "發生 HTTP 錯誤:$1",
        "upload-copy-upload-invalid-domain": "此網域不允許複製上傳的檔案。",
        "upload-foreign-cant-upload": "此 wiki 未設定可上傳來自遠端檔案庫的請求的檔案。",
+       "upload-foreign-cant-load-config": "載入要上傳檔案到遠端檔案儲存庫的設定失敗。",
+       "upload-dialog-disabled": "此 wiki 已關閉使用此對話框上傳檔案的功能。",
        "upload-dialog-title": "上傳檔案",
        "upload-dialog-button-cancel": "取消",
        "upload-dialog-button-done": "完成",
        "apisandbox": "API 沙盒",
        "apisandbox-jsonly": "需要 JavaScript 才能使用 API 沙箱。",
        "apisandbox-api-disabled": "此網站已關閉 API。",
-       "apisandbox-intro": "使用此頁面可測試 <strong>MediaWiki web service API</strong>。\n請參考 [[mw:API:Main page|API 說明文件]] 以取得詳細資訊。例:[//www.mediawiki.org/wiki/API#A_simple_example 取得主頁的內容]。 請選擇動作以取得更多範例。\n\n請注意,雖然此為沙盒,您在此頁所執行的動作仍有可能會修改到 Wiki。",
+       "apisandbox-intro": "使用此頁面可測試 <strong>MediaWiki web service API</strong>。\n請參考 [[mw:API:Main page|API 說明文件]] 以取得詳細資訊。例:[https://www.mediawiki.org/wiki/API#A_simple_example 取得主頁的內容]。 請選擇動作以取得更多範例。\n\n請注意,雖然此為沙盒,您在此頁所執行的動作仍有可能會修改到 Wiki。",
        "apisandbox-fullscreen": "展開面板",
        "apisandbox-fullscreen-tooltip": "展開沙盒面板來填滿瀏覽器視窗。",
        "apisandbox-unfullscreen": "顯示頁面",
        "trackingcategories-msg": "追蹤分類",
        "trackingcategories-name": "訊息名稱",
        "trackingcategories-desc": "分類收錄標準",
+       "restricted-displaytitle-ignored": "已忽略顯示標題的頁面",
+       "restricted-displaytitle-ignored-desc": "頁面已忽略 <code><nowiki>{{DISPLAYTITLE}}</nowiki></code>,因該標題於頁面實際標題不相同。",
        "noindex-category-desc": "命名空間允許,且含有魔術字 <code><nowiki>__NOINDEX__</nowiki></code> 未被機器人列入索引的頁面。",
        "index-category-desc": "命名空間允許,且含有魔術字 <code><nowiki>__INDEX__</nowiki></code> 被機器人列入索引的頁面。",
        "post-expand-template-inclusion-category-desc": "展開模板後大小超過 <code>$wgMaxArticleSize</code> 導致部份模板未正常展開的頁面。",
        "rollbacklinkcount": "還原 $1 次編輯",
        "rollbacklinkcount-morethan": "還原超過 $1 次{{PLURAL:$1|編輯}}",
        "rollbackfailed": "還原失敗",
+       "rollback-missingparam": "請求缺少必要參數。",
        "cantrollback": "無法還原編輯;\n此頁面的最後貢獻者是唯一的作者。",
        "alreadyrolled": "無法還原由 [[User:$2|$2]] ([[User talk:$2|對話]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]] 所作的最後一次編輯 [[:$1]],已有其他人編輯或還原了該頁面。\n\n最後一次編輯該頁面的使用者是 [[User:$3|$3]] ([[User talk:$3|對話]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]])。",
        "editcomment": "編輯摘要為:<em>$1</em>。",
        "revertpage": "已還原 [[Special:Contributions/$2|$2]] ([[User talk:$2|對話]]) 的編輯為最後由 [[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": "變更頁面的內容模型",
        "sp-contributions-username": "IP 位址或使用者名稱:",
        "sp-contributions-toponly": "只顯示最新修訂的編輯",
        "sp-contributions-newonly": "只顯示建立頁面的編輯",
+       "sp-contributions-hideminor": "隱藏小修訂",
        "sp-contributions-submit": "搜尋",
        "whatlinkshere": "連結至此的頁面",
        "whatlinkshere-title": "連結至 \"$1\" 的頁面",
        "allmessagesname": "名稱",
        "allmessagesdefault": "預設的訊息文字",
        "allmessagescurrent": "目前的訊息文字",
-       "allmessagestext": "此處列出所有在 MediaWiki 命名空間中系統訊息。\n若您想參與官方的 MediaWiki 在地化,請參考 [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki 在地化] 與 [//translatewiki.net translatewiki.net]。",
+       "allmessagestext": "此處列出所有在 MediaWiki 命名空間中系統訊息。\n若您想參與官方的 MediaWiki 在地化,請參考 [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki 在地化] 與 [https://translatewiki.net translatewiki.net]。",
        "allmessagesnotsupportedDB": "已停用 <strong>$wgUseDatabaseMessages</strong> 設定,無法使用此頁面。",
        "allmessages-filter-legend": "搜尋",
        "allmessages-filter": "依修改狀況搜尋:",
        "confirm-watch-top": "新增此頁面至您的監視清單?",
        "confirm-unwatch-button": "確定",
        "confirm-unwatch-top": "從您的監視清單中移除此頁面?",
+       "confirm-rollback-button": "確定",
+       "confirm-rollback-top": "還原編輯到此頁面?",
        "semicolon-separator": ";",
        "comma-separator": "、",
        "colon-separator": ":",
        "timezone-local": "當地",
        "duplicate-defaultsort": "<strong>警告:</strong>預設的排序鍵 \"$2\" 會覆蓋先前預設的排序鍵 \"$1\"。",
        "duplicate-displaytitle": "<strong>警告:</strong> 顯示標題 \"$2\" 覆蓋之前的顯示標題 \"$1\"。",
+       "restricted-displaytitle": "<strong>警告:</strong> 由於顯示標題與頁面實際標題不哃,已忽略顯示標題 \"$1\"。",
        "invalid-indicator-name": "<strong>錯誤:</strong>頁面狀態指示的 <code>name</code> 屬性不能為空。",
        "version": "版本",
        "version-extensions": "已安裝的擴充套件",
        "tags-delete-not-found": "標籤 \"$1\" 不存在。",
        "tags-delete-too-many-uses": "標籤 \"$1\" 會套用至 $2 筆以上的{{PLURAL:$2|修訂|修訂}},這代表該標籤將無法刪除。",
        "tags-delete-warnings-after-delete": "標籤 \"$1\" 已刪除,但發生下列{{PLURAL:$2|警告|警告}}:",
+       "tags-delete-no-permission": "您沒有權限刪除標籤。",
        "tags-activate-title": "啟動標籤",
        "tags-activate-question": "您正要啟動標籤 \"$1\"。",
        "tags-activate-reason": "原因:",
        "api-error-autoblocked": "您的IP位址已經被自動封禁,因為它曾經被一名已封禁的使用者使用過。",
        "api-error-badaccess-groups": "您沒有權限在此 Wiki 上傳檔案。",
        "api-error-badtoken": "內部錯誤:密鑰錯誤。",
-       "api-error-blocked": "您已被封,無法編輯。",
+       "api-error-blocked": "您已被封,無法編輯。",
        "api-error-copyuploaddisabled": "此伺服器已停用使用 URL 上傳檔案的功能。",
        "api-error-duplicate": "在網站上已有相同內容的{{PLURAL:$1|其他檔案|其他檔案}}。",
        "api-error-duplicate-archive": "在網站上曾有相同內容的{{PLURAL:$1|其他檔案|其他檔案}},但已被刪除。",
        "limitreport-cputime-value": "$1 秒",
        "limitreport-walltime": "實際使用時間",
        "limitreport-walltime-value": "$1 秒",
-       "limitreport-ppvisitednodes": "預處理器已訪問節點計數",
+       "limitreport-ppvisitednodes": "前置處理器造訪節點計數",
        "limitreport-ppgeneratednodes": "預處理器產生節點次數",
        "limitreport-postexpandincludesize": "展開後的引用大小",
        "limitreport-postexpandincludesize-value": "$1/$2 個{{PLURAL:$2|位元組}}",
        "mw-widgets-dateinput-no-date": "未選擇日期",
        "mw-widgets-titleinput-description-new-page": "頁面不存在",
        "mw-widgets-titleinput-description-redirect": "重新導向至 $1",
-       "api-error-blacklisted": "請選擇另一個更具描述性的標題。",
        "sessionmanager-tie": "無法合併多個請求認証類型:$1。",
        "sessionprovider-generic": "$1 連線階段",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "以 cookie 為基礎的連線階段",
        "log-action-filter-suppress-reblock": "由重新封鎖禁止顯示使用者",
        "log-action-filter-upload-upload": "新上傳",
        "log-action-filter-upload-overwrite": "重新上傳",
+       "authmanager-authn-not-in-progress": "認証尚未進行或連線階段資料已遺失,請重頭再開始。",
+       "authmanager-authn-no-primary": "提供的憑證無法用來認証。",
+       "authmanager-authn-no-local-user": "提供的憑證沒有與任何在此 wiki 上的使用者相關聯。",
+       "authmanager-authn-no-local-user-link": "提供的憑證有效但沒有與任何在此 wiki 上的使用者相關聯。請採用其他方式登入,或建立新使用者,您將會有選項可以連結您先前的憑證到新帳號。",
+       "authmanager-authn-autocreate-failed": "自動建立本地帳號失敗:$1",
+       "authmanager-change-not-supported": "提供的憑證無法變更,因為尚無法使用。",
+       "authmanager-create-disabled": "已關閉帳號自動建立。",
+       "authmanager-create-from-login": "要建立您的帳號,請先填寫以下欄位。",
+       "authmanager-create-not-in-progress": "帳號建立尚未進行或連線階段資料已遺失,請重頭再開始。",
+       "authmanager-create-no-primary": "提供的憑證無使用在帳號建立。",
+       "authmanager-link-no-primary": "提供的憑證無使用在帳號連結。",
+       "authmanager-link-not-in-progress": "帳號連結尚未進行或連線階段資料已遺失,請重頭再開始。",
+       "authmanager-authplugin-setpass-failed-title": "密碼變更失敗",
+       "authmanager-authplugin-setpass-failed-message": "認証外掛已拒絕密碼變更。",
+       "authmanager-authplugin-create-fail": "認証外掛已拒絕帳號建立。",
+       "authmanager-authplugin-setpass-denied": "認証外掛不允許更改密碼。",
+       "authmanager-authplugin-setpass-bad-domain": "無效網域。",
+       "authmanager-autocreate-noperm": "不允許自動帳號建立。",
+       "authmanager-autocreate-exception": "自動帳號建立因發生錯誤臨時關閉。",
        "authmanager-userdoesnotexist": "使用者帳號 \"$1\" 尚未註冊。",
+       "authmanager-userlogin-remembermypassword-help": "是否要記住密碼來取得更長的連線階段時間。",
        "authmanager-username-help": "認証用的使用者名稱。",
        "authmanager-password-help": "認証用的密碼。",
        "authmanager-domain-help": "外部認証用的網域。",
        "authmanager-provider-password": "Password-based 認証",
        "authmanager-provider-password-domain": "Password- 及 domain-based 認証",
        "authmanager-provider-temporarypassword": "臨時密碼",
+       "authprovider-confirmlink-message": "根據您最近的登入嘗試次數,以下帳號可以被連結至您的 wiki 帳號。連結帳號可以讓您使用這些帳號登入。請選擇一個您想連結的帳號。",
+       "authprovider-confirmlink-request-label": "應連結的帳號",
+       "authprovider-confirmlink-success-line": "$1:已成功連結。",
+       "authprovider-confirmlink-failed": "帳號連結未完全成功:$1",
+       "authprovider-confirmlink-ok-help": "顯示連結失敗訊息後繼續。",
        "authprovider-resetpass-skip-label": "略過",
        "authprovider-resetpass-skip-help": "略過重設密碼。",
+       "authform-nosession-login": "已成功認証,但您的瀏覽器無法 \"記住\" 登入資訊。\n\n$1",
+       "authform-nosession-signup": "已建立帳號,但您的瀏覽器無法 \"記住\" 登入資訊。\n\n$1",
+       "authform-newtoken": "缺少密鑰。$1",
+       "authform-notoken": "缺少密鑰",
+       "authform-wrongtoken": "密鑰錯誤",
        "specialpage-securitylevel-not-allowed-title": "不允許",
+       "specialpage-securitylevel-not-allowed": "抱歉,您不被允許使用此頁面,由於您的身份尚無法被驗証。",
+       "authpage-cannot-login": "無法開始登入。",
+       "authpage-cannot-login-continue": "無法繼續登入,您的連線階段似乎已逾時。",
+       "authpage-cannot-create": "無法開始帳號建立。",
+       "authpage-cannot-create-continue": "無法繼續帳號建立,您的連線階段似乎已逾時。",
+       "authpage-cannot-link": "無法開始帳號連結。",
+       "authpage-cannot-link-continue": "無法繼續帳號連結,您的連線階段似乎已逾時。",
        "cannotauth-not-allowed-title": "權限不足",
        "cannotauth-not-allowed": "您不被允許使用此頁面",
        "changecredentials": "更改憑證",
-       "changecredentials-submit": "更改",
-       "changecredentials-submit-cancel": "取消",
+       "changecredentials-submit": "更改憑證",
        "changecredentials-invalidsubpage": "$1 不是有效的憑証類型。",
        "changecredentials-success": "已更改您的憑證。",
        "removecredentials": "移除憑證",
-       "removecredentials-submit": "移除",
-       "removecredentials-submit-cancel": "取消",
+       "removecredentials-submit": "移除憑證",
        "removecredentials-invalidsubpage": "$1 不是有效的憑証類型。",
        "removecredentials-success": "已移除您的憑證。",
        "credentialsform-provider": "憑證類型:",
        "linkaccounts-success-text": "已連結帳號。",
        "linkaccounts-submit": "連結帳號",
        "unlinkaccounts": "取消連結帳號",
-       "unlinkaccounts-success": "已取消連結帳號。"
+       "unlinkaccounts-success": "已取消連結帳號。",
+       "authenticationdatachange-ignored": "認証資料變更未被處理,可能未設定提供者?"
 }
diff --git a/languages/messages/MessagesBan.php b/languages/messages/MessagesBan.php
new file mode 100644 (file)
index 0000000..79d9d1c
--- /dev/null
@@ -0,0 +1,12 @@
+<?php
+/** Basa Bali (Basa Bali)
+ *
+ * To improve a translation please visit https://translatewiki.net
+ *
+ * @ingroup Language
+ * @file
+ *
+ */
+
+$fallback = 'id';
+
index fc65e58..1cf80ce 100644 (file)
@@ -7,16 +7,17 @@
  * @file
  *
  * @author Darshan kandolkar
+ * @author The Discoverer
  */
 
 $fallback = 'hi';
 
 $namespaceNames = [
-       NS_MEDIA            => 'मिडिया',
+       NS_MEDIA            => 'माधà¥\8dयम',
        NS_SPECIAL          => 'विशेश',
        NS_TALK             => 'चर्चा',
-       NS_USER             => 'à¤\89पà¥\87à¤\97à¤\95रà¥\8dतà¥\8b',
-       NS_USER_TALK        => 'à¤\89पà¥\87à¤\97à¤\95रà¥\8dतà¥\8b_चर्चा',
+       NS_USER             => 'वापरपà¥\80',
+       NS_USER_TALK        => 'वापरपà¥\80_चर्चा',
        NS_PROJECT_TALK     => '$1_चर्चा',
        NS_FILE             => 'फायल',
        NS_FILE_TALK        => 'फायल_चर्चा',
@@ -24,8 +25,18 @@ $namespaceNames = [
        NS_MEDIAWIKI_TALK   => 'मिडियाविकी_चर्चा',
        NS_TEMPLATE         => 'प्रारूप',
        NS_TEMPLATE_TALK    => 'प्रारूप_चर्चा',
-       NS_HELP             => 'मजत',
-       NS_HELP_TALK        => 'मजत_चर्चा',
-       NS_CATEGORY         => 'श्रेणी',
-       NS_CATEGORY_TALK    => 'श्रेणी_चर्चा',
+       NS_HELP             => 'आदार',
+       NS_HELP_TALK        => 'आदार_चर्चा',
+       NS_CATEGORY         => 'वर्ग',
+       NS_CATEGORY_TALK    => 'वर्ग_चर्चा',
+];
+
+$namespaceAliases = [
+       'मजत' => NS_HELP,
+       'मजत_चर्चा' => NS_HELP_TALK,
+       'श्रेणी' => NS_CATEGORY,
+       'श्रेणी_चर्चा' => NS_CATEGORY_TALK,
+       'मिडिया' => NS_MEDIA,
+       'उपेगकर्तो' => NS_USER,
+       'उपेगकर्तो चर्चा' => NS_USER_TALK
 ];
index a8e6c77..b79f9d8 100644 (file)
@@ -183,3 +183,4 @@ $dateFormats = [
        'ISO 8601 both' => 'xnY-xnm-xnd"T"xnH:xni:xns',
 ];
 
+$linkTrail = '/^([a-ząčęėįšųūž]+)(.*)$/sDu';
index 18c115b..cc555b6 100644 (file)
@@ -15,7 +15,7 @@ $rtl = true;
 
 $namespaceNames = [
        NS_MEDIA            => 'رسنۍ',
-       NS_SPECIAL          => 'Ú\81اÙ\86Ú«ړی',
+       NS_SPECIAL          => 'Ú\81اÙ\86Ú¯ړی',
        NS_TALK             => 'خبرې_اترې',
        NS_USER             => 'کارن',
        NS_USER_TALK        => 'د_کارن_خبرې_اترې',
@@ -33,6 +33,7 @@ $namespaceNames = [
 ];
 
 $namespaceAliases = [
+       'ځﺎﻧګړی' => NS_SPECIAL,
        'کارونکی' => NS_USER,
        'د_کارونکي_خبرې_اترې' => NS_USER_TALK,
        'انځور' => NS_FILE,
index a08297a..27d8161 100644 (file)
  */
 
 // Bail on old versions of PHP, or if composer has not been run yet to install
-// dependencies. Using dirname( __FILE__ ) here because __DIR__ is PHP5.3+.
-// @codingStandardsIgnoreStart MediaWiki.Usage.DirUsage.FunctionFound
-require_once dirname( __FILE__ ) . '/../includes/PHPVersionCheck.php';
-// @codingStandardsIgnoreEnd
+// dependencies.
+require_once __DIR__ . '/../includes/PHPVersionCheck.php';
 wfEntryPointCheck( 'cli' );
 
 /**
index 3271fd6..db3af92 100644 (file)
@@ -41,6 +41,7 @@ class BackupDumper extends Maintenance {
        public $revEndId = 0;
        public $dumpUploads = false;
        public $dumpUploadFileContents = false;
+       public $orderRevs = false;
 
        protected $reportingInterval = 100;
        protected $pageCount = 0;
@@ -271,7 +272,7 @@ class BackupDumper extends Maintenance {
                } elseif ( is_null( $this->pages ) ) {
                        # Page dumps: all or by page ID range
                        if ( $this->startId || $this->endId ) {
-                               $exporter->pagesByRange( $this->startId, $this->endId );
+                               $exporter->pagesByRange( $this->startId, $this->endId, $this->orderRevs );
                        } elseif ( $this->revStartId || $this->revEndId ) {
                                $exporter->revsByRange( $this->revStartId, $this->revEndId );
                        } else {
index 8687f81..a550d12 100644 (file)
@@ -41,6 +41,8 @@ class ChangePassword extends Maintenance {
        }
 
        public function execute() {
+               global $wgDisableAuthManager;
+
                if ( $this->hasOption( "user" ) ) {
                        $user = User::newFromName( $this->getOption( 'user' ) );
                } elseif ( $this->hasOption( "userid" ) ) {
@@ -51,8 +53,20 @@ class ChangePassword extends Maintenance {
                if ( !$user || !$user->getId() ) {
                        $this->error( "No such user: " . $this->getOption( 'user' ), true );
                }
+               $password = $this->getOption( 'password' );
                try {
-                       $user->setPassword( $this->getOption( 'password' ) );
+                       if ( $wgDisableAuthManager ) {
+                               $user->setPassword( $password );
+                       } else {
+                               $status = $user->changeAuthenticationData( [
+                                       'username' => $user->getName(),
+                                       'password' => $password,
+                                       'retype' => $password,
+                               ] );
+                               if ( !$status->isGood() ) {
+                                       throw new PasswordError( $status->getWikiText( null, null, 'en' ) );
+                               }
+                       }
                        $user->saveSettings();
                        $this->output( "Password set for " . $user->getName() . "\n" );
                } catch ( PasswordError $pwe ) {
index 7b92f89..4f625fc 100644 (file)
@@ -62,10 +62,6 @@ class CopyFileBackend extends Maintenance {
 
                $rateFile = $this->getOption( 'ratefile' );
 
-               if ( $this->hasOption( 'utf8only' ) && !extension_loaded( 'mbstring' ) ) {
-                       $this->error( "Cannot check for UTF-8, mbstring extension missing.", 1 ); // die
-               }
-
                foreach ( $containers as $container ) {
                        if ( $subDir != '' ) {
                                $backendRel = "$container/$subDir";
index 848c2f7..3591b9c 100644 (file)
@@ -56,6 +56,8 @@ class CreateAndPromote extends Maintenance {
        }
 
        public function execute() {
+               global $wgDisableAuthManager;
+
                $username = $this->getArg( 0 );
                $password = $this->getArg( 1 );
                $force = $this->hasOption( 'force' );
@@ -120,7 +122,18 @@ class CreateAndPromote extends Maintenance {
                if ( $password ) {
                        # Try to set the password
                        try {
-                               $user->setPassword( $password );
+                               if ( $wgDisableAuthManager ) {
+                                       $user->setPassword( $password );
+                               } else {
+                                       $status = $user->changeAuthenticationData( [
+                                               'username' => $user->getName(),
+                                               'password' => $password,
+                                               'retype' => $password,
+                                       ] );
+                                       if ( !$status->isGood() ) {
+                                               throw new PasswordError( $status->getWikiText( null, null, 'en' ) );
+                                       }
+                               }
                                if ( $exists ) {
                                        $this->output( "Password set.\n" );
                                        $user->saveSettings();
index d4255a0..9bf1222 100644 (file)
@@ -50,6 +50,8 @@ TEXT
                $this->addOption( 'stable', 'Dump stable versions of pages' );
                $this->addOption( 'revrange', 'Dump range of revisions specified by revstart and ' .
                        'revend parameters' );
+               $this->addOption( 'orderrevs', 'Dump revisions in ascending revision order ' .
+                       '(implies dump of a range of pages)' );
                $this->addOption( 'pagelist',
                        'Dump only pages included in the file', false, true );
                // Options
@@ -127,6 +129,7 @@ TEXT
                $this->skipFooter = $this->hasOption( 'skip-footer' );
                $this->dumpUploads = $this->hasOption( 'uploads' );
                $this->dumpUploadFileContents = $this->hasOption( 'include-files' );
+               $this->orderRevs = $this->hasOption( 'orderrevs' );
        }
 }
 
index 6d5a0e9..cfb59c6 100644 (file)
@@ -74,6 +74,9 @@ class TextPassDumper extends BackupDumper {
         */
        protected $spawnErr = false;
 
+       /**
+        * @var bool|XmlDumpWriter
+        */
        protected $xmlwriterobj = false;
 
        protected $timeExceeded = false;
index ec276c1..5b446d8 100644 (file)
@@ -111,7 +111,7 @@ By default, outputs relative paths against the parent directory of $wgUploadDire
        function outputItem( $name, $shared ) {
                $file = wfFindFile( $name );
                if ( $file && $this->filterItem( $file, $shared ) ) {
-                       $filename = $file->getPath();
+                       $filename = $file->getLocalRefPath();
                        $rel = wfRelativePath( $filename, $this->mBasePath );
                        $this->output( "$rel\n" );
                } else {
index 92547ca..4b6c619 100644 (file)
@@ -42,8 +42,6 @@ class TestFileOpPerformance extends Maintenance {
        }
 
        public function execute() {
-               Profiler::setInstance( new ProfilerSimpleText( [] ) ); // clear
-
                $backend = FileBackendGroup::singleton()->get( $this->getOption( 'b1' ) );
                $this->doPerfTest( $backend );
 
@@ -51,9 +49,6 @@ class TestFileOpPerformance extends Maintenance {
                        $backend = FileBackendGroup::singleton()->get( $this->getOption( 'b2' ) );
                        $this->doPerfTest( $backend );
                }
-
-               Profiler::instance()->setTemplated( true );
-               // NOTE: as of MW1.21, $profiler->logData() is called implicitly by doMaintenance.php.
        }
 
        protected function doPerfTest( FileBackend $backend ) {
index d44581c..c91d824 100644 (file)
@@ -244,11 +244,11 @@ class FindHooks extends Maintenance {
                                // Comma for second argument
                                '(?:\s*(,))?' .
                                // Second argument must start with array to be processed
-                               '(?:\s*array\s*\(' .
+                               '(?:\s*(?:array\s*\(|\[)' .
                                // Matching inside array - allows one deep of brackets
-                               '((?:[^\(\)]|\([^\(\)]*\))*)' .
+                               '((?:[^\(\)\[\]]|\((?-1)\)|\[(?-1)\])*)' .
                                // End
-                               '\))?/',
+                               '[\)\]])?/',
                        $content,
                        $m,
                        PREG_SET_ORDER
@@ -305,17 +305,16 @@ class FindHooks extends Maintenance {
 
                if ( $recurse === self::FIND_RECURSIVE ) {
                        $iterator = new RecursiveIteratorIterator(
-                               new RecursiveDirectoryIterator( $dir ),
-                               RecursiveIteratorIterator::SELF_FIRST | RecursiveDirectoryIterator::SKIP_DOTS
+                               new RecursiveDirectoryIterator( $dir, RecursiveDirectoryIterator::SKIP_DOTS ),
+                               RecursiveIteratorIterator::SELF_FIRST
                        );
                } else {
                        $iterator = new DirectoryIterator( $dir );
                }
 
                foreach ( $iterator as $info ) {
-                       // Ignore directories, ignore json (installer and api i18n),
-                       // ignore extension-less files like HISTORY
-                       if ( $info->isFile() && $info->getExtension() !== 'json' && $info->getExtension()
+                       // Ignore directories, work only on php files,
+                       if ( $info->isFile() && in_array( $info->getExtension(), [ 'php', 'inc' ] )
                                // Skip this file as it contains text that looks like a bad wfRunHooks() call
                                && $info->getRealPath() !== __FILE__
                        ) {
@@ -328,15 +327,12 @@ class FindHooks extends Maintenance {
        }
 
        /**
-        * Nicely output the array
+        * Nicely sort an print an array
         * @param string $msg A message to show before the value
         * @param array $arr
-        * @param bool $sort Whether to sort the array (Default: true)
         */
-       private function printArray( $msg, $arr, $sort = true ) {
-               if ( $sort ) {
-                       asort( $arr );
-               }
+       private function printArray( $msg, $arr ) {
+               asort( $arr );
 
                foreach ( $arr as $v ) {
                        $this->output( "$msg: $v\n" );
index 0d04c41..8b1d86d 100644 (file)
@@ -17,8 +17,5 @@ foreach ( glob( $base . '/*.php' ) as $file ) {
        $generator->readFile( $file );
 }
 
-// This class is not defined, but might be added by the installer
-$generator->forceClassPath( 'MyLocalSettingsGenerator', "$base/mw-config/overrides.php" );
-
 // Write out the autoload
 $generator->generateAutoload( 'maintenance/generateLocalAutoload.php' );
index e926cfd..88ee9d7 100644 (file)
@@ -56,7 +56,7 @@ class ImportTextFiles extends Maintenance {
                $prefix = $this->getOption( 'prefix', '' );
 
                // Get all the arguments. A loop is required since Maintenance doesn't
-               // suppport an arbitrary number of arguments.
+               // support an arbitrary number of arguments.
                $files = [];
                $i = 0;
                while ( $arg = $this->getArg( $i++ ) ) {
index ae3074a..3e632f0 100644 (file)
  * @ingroup Maintenance
  */
 
-// Checking for old versions of PHP is done in Maintenance.php
-// We need to use dirname( __FILE__ ) here cause __DIR__ is PHP5.3+
-// @codingStandardsIgnoreStart MediaWiki.Usage.DirUsage.FunctionFound
-require_once dirname( __FILE__ ) . '/Maintenance.php';
-// @codingStandardsIgnoreEnd
+require_once __DIR__ . '/Maintenance.php';
 
 define( 'MW_CONFIG_CALLBACK', 'Installer::overrideConfig' );
 define( 'MEDIAWIKI_INSTALL', true );
index 4899143..9104fd7 100644 (file)
@@ -26,7 +26,7 @@ imdb|http://www.imdb.com/find?q=$1&tt=on|0|
 jargonfile|http://sunir.org/apps/meta.pl?wiki=JargonFile&redirect=$1|0|
 kmwiki|http://kmwiki.wikispaces.com/$1|0|
 linuxwiki|http://linuxwiki.de/$1|0|
-lojban|http://www.lojban.org/tiki/tiki-index.php?page=$1|0|
+lojban|http://mw.lojban.org/papri/$1|0|
 lqwiki|http://wiki.linuxquestions.org/wiki/$1|0|
 lugkr|http://www.lug-kr.de/wiki/$1|0|
 meatball|http://www.usemod.com/cgi-bin/mb.pl?$1|0|
diff --git a/maintenance/invalidateUserSessions.php b/maintenance/invalidateUserSessions.php
new file mode 100644 (file)
index 0000000..11e3372
--- /dev/null
@@ -0,0 +1,94 @@
+<?php
+/**
+ * Invalidate the sessions of certain users on the wiki.
+ * If you want to invalidate all sessions, use $wgAuthenticationTokenVersion instead.
+ *
+ * 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 Maintenance
+ */
+
+use MediaWiki\MediaWikiServices;
+use MediaWiki\Session\SessionManager;
+
+require_once __DIR__ . '/Maintenance.php';
+
+/**
+ * Invalidate the sessions of certain users on the wiki.
+ * If you want to invalidate all sessions, use $wgAuthenticationTokenVersion instead.
+ *
+ * @ingroup Maintenance
+ */
+class InvalidateUserSesssions extends Maintenance {
+       public function __construct() {
+               parent::__construct();
+               $this->addDescription(
+                       'Invalidate the sessions of certain users on the wiki.'
+               );
+               $this->addOption( 'user', 'Username', false, true, 'u' );
+               $this->addOption( 'file', 'File with one username per line', false, true, 'f' );
+               $this->setBatchSize( 1000 );
+       }
+
+       public function execute() {
+               $username = $this->getOption( 'user' );
+               $file = $this->getOption( 'file' );
+
+               if ( $username === null && $file === null ) {
+                       $this->error( 'Either --user or --file is required', 1 );
+               } elseif ( $username !== null && $file !== null ) {
+                       $this->error( 'Cannot use both --user and --file', 1 );
+               }
+
+               if ( $username !== null ) {
+                       $usernames = [ $username ];
+               } else {
+                       $usernames = is_readable( $file ) ?
+                               file( $file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES ) : false;
+                       if ( $usernames === false ) {
+                               $this->error( "Could not open $file", 2 );
+                       }
+               }
+
+               $i = 0;
+               $lbFactory = MediaWikiServices::getInstance()->getDBLoadBalancerFactory();
+               $sessionManager = SessionManager::singleton();
+               foreach ( $usernames as $username ) {
+                       $i++;
+                       $user = User::newFromName( $username );
+                       try {
+                               $sessionManager->invalidateSessionsForUser( $user );
+                               if ( $user->getId() ) {
+                                       $this->output( "Invalidated sessions for user $username\n" );
+                               } else {
+                                       # session invalidation might still work if there is a central identity provider
+                                       $this->output( "Could not find user $username, tried to invalidate anyway\n" );
+                               }
+                       } catch ( Exception $e ) {
+                               $this->output( "Failed to invalidate sessions for user $username | "
+                                       . str_replace( [ "\r", "\n" ], ' ', $e->getMessage() ) . "\n" );
+                       }
+
+                       if ( $i % $this->mBatchSize ) {
+                               $lbFactory->waitForReplication();
+                       }
+               }
+       }
+}
+
+$maintClass = "InvalidateUserSesssions";
+require_once RUN_MAINTENANCE_IF_MAIN;
index d9e2c50..068ee8c 100644 (file)
@@ -64,7 +64,8 @@
                                        "mw.Feedback*",
                                        "mw.Upload*",
                                        "mw.ForeignUpload",
-                                       "mw.ForeignStructuredUpload*"
+                                       "mw.ForeignStructuredUpload*",
+                                       "mw.GallerySlideshow"
                                ]
                        },
                        {
index 5434735..2b59735 100644 (file)
        <script src="modules/src/mediawiki/mediawiki.errorLogger.js"></script>
        <script src="modules/src/mediawiki/mediawiki.startUp.js"></script>
        <script src="modules/lib/oojs/oojs.jquery.js"></script>
-       <script src="modules/lib/oojs-ui/oojs-ui.js"></script>
+       <script src="modules/lib/oojs-ui/oojs-ui-core.js"></script>
+       <script src="modules/lib/oojs-ui/oojs-ui-widgets.js"></script>
+       <script src="modules/lib/oojs-ui/oojs-ui-toolbars.js"></script>
+       <script src="modules/lib/oojs-ui/oojs-ui-windows.js"></script>
        <script src="modules/lib/oojs-ui/oojs-ui-mediawiki.js"></script>
        <style>
                body {
                        background: #fff;
                }
        </style>
-       <link rel="stylesheet" href="modules/lib/oojs-ui/oojs-ui-local.css">
-       <link rel="stylesheet" href="modules/lib/oojs-ui/oojs-ui-mediawiki-noimages.css">
+       <link rel="stylesheet" href="modules/src/oojs-ui/oojs-ui-local.css">
+       <link rel="stylesheet" href="modules/lib/oojs-ui/oojs-ui-core-mediawiki.css">
+       <link rel="stylesheet" href="modules/lib/oojs-ui/oojs-ui-widgets-mediawiki.css">
+       <link rel="stylesheet" href="modules/lib/oojs-ui/oojs-ui-toolbars-mediawiki.css">
+       <link rel="stylesheet" href="modules/lib/oojs-ui/oojs-ui-windows-mediawiki.css">
 </head>
 <body>
 <script>
index 05f091f..bced265 100644 (file)
@@ -201,7 +201,7 @@ U+090C1郁|U+090C1郁|U+09B31鬱|
 U+0915D酝|U+0919E醞|U+09196醖|
 U+09170酰|U+09170酰|U+091AF醯|
 U+09178酸|U+09178酸|U+075E0痠|
-U+091C7采|U+091C7采|U+063A1採|U+057F0埰|
+U+091C7采|U+091C7采|U+063A1採|U+05BC0寀|
 U+091CC里|U+091CC里|U+088E1裡|U+088CF裏|
 U+0949F钟|U+0937E鍾|U+09418鐘|
 U+094A9钩|U+0920E鈎|U+09264鉤|
index fe99d8e..bae5fd8 100644 (file)
@@ -64,6 +64,7 @@
 澈底 彻底
 仲介 中介
 卯足 铆足
+保鑣 保镖
 逕庭 径庭
 逕到 径到
 逕取 径取
 伏著 伏着
 視著 视着
 視著名      视著名
+視著作      视著作
+視著者      视著者
+視著稱      视著称
 蓋著 盖着
 蓋著名      盖著名
 蓋著稱      盖著称
 記錄著      记录着
 紀錄著      纪录着
 收錄著      收录着
+促著 促着
+咬著 咬着
 三十六著   三十六着
 走為上著   走为上着
 記憶體      内存
 功能變數名稱     域名
 音效卡      声卡
 字型大小   字号
-字型檔      字库
 欄位 字段
 非同步      异步
 匯流排      总线
 模里西斯   毛里求斯
 沙地阿拉伯        沙特阿拉伯
 沙烏地阿拉伯     沙特阿拉伯
-波士尼äº\9e赫å¡\9eå\93¥ç¶­ç´\8d    波斯尼亚和黑塞哥维那
+波士尼äº\9eè\88\87赫å¡\9eå\93¥ç¶­ç´\8d 波斯尼亚和黑塞哥维那
 辛巴威      津巴布韦
 宏都拉斯   洪都拉斯
 千里達托貝哥     特立尼达和托巴哥
@@ -2665,3 +2670,4 @@ A型肝炎        甲型肝炎
 行人路權   行人路权
 行人路权   行人路权
 塑膠袋      塑料袋
+烏龍麵      乌冬面
index 997acfc..5ec6e34 100644 (file)
 暗沟里      暗溝裏
 暗里 暗裏
 会里 會裏
-村里 村裏
+村里的      村裏的
+村里有      村裏有
 森林里      森林裏
 棺材里      棺材裏
 树林里      樹林裏
 电视里      電視裏
 公寓里      公寓裏
 窝里斗      窩裏鬥
+镇里 鎮裏
 苑裡 苑裡
 霄裡 霄裡
 岸裡 岸裡
 伏著 伏着
 視著 視着
 視著名      視著名
+視著作      視著作
+視著者      視著者
+視著稱      視著稱
 蓋著 蓋着
 蓋著名      蓋著名
 蓋著稱      蓋著稱
 記錄著      記錄着
 紀錄著      紀錄着
 收錄著      收錄着
+咬著 咬着
 三十六著   三十六着
 走為上著   走為上着
 鬧著 鬧着
 包著 包着
 系着 繫着
 颳著 颳着
+促著 促着
 榴莲 榴槤
 榴蓮 榴槤
 叱吒 叱咤
 模里西斯   毛里裘斯
 沙地阿拉伯        沙特阿拉伯
 沙烏地阿拉伯     沙特阿拉伯
-波士尼亞赫塞哥維納    波斯尼亞黑塞哥維那
 辛巴威      津巴布韋
 宏都拉斯   洪都拉斯
 千里達托貝哥     特立尼達和多巴哥
 冰淇淋      雪糕
 賓士 平治
 捷豹 積架
-雪铁龙      先進
-雪鐵龍      先進
 沃尓沃      富豪
 马自达      萬事得
 馬自達      萬事得
 塞拉耶佛   薩拉熱窩
 波士尼亞   波斯尼亞
 塞爾維亞與蒙特內哥羅 塞爾維亞和黑山
+波士尼亞與赫塞哥維納 波斯尼亞和黑塞哥維那
 卢塞恩      琉森
 亞斯文      阿斯旺
 奈及利亞   尼日利亞
@@ -3026,3 +3031,4 @@ IP地址  IP位址
 獨立國家國協     獨立國家聯合體
 人行道      行人路
 塑料袋      膠袋
+烏龍麵      烏冬麵
index 9674aae..8618a93 100644 (file)
 偵蒐 侦搜
 情蒐 情搜
 蘋果 苹果
+蘋婆 苹婆
 於之莹      於之莹
 陆徵祥      陆徵祥
 瞭臺 瞭台
index 271a055..59219ae 100644 (file)
 划着竹筏   划著竹筏
 划着独木舟        划著獨木舟
 着眼于      著眼於
+桃金娘      桃金孃
 缺省 預設
 以太网      乙太網
 光盘 光碟
 光驱 光碟機
 声卡 音效卡
-字库 字型檔
 字段 欄位
 存盘 存檔
 控件 控制項
 毛里裘斯   模里西斯
 沙特阿拉伯        沙烏地阿拉伯
 沙地阿拉伯        沙烏地阿拉伯
-波斯尼亚和黑塞哥维那 波士尼亞赫塞哥維納
-波斯尼亞黑塞哥維那    波士尼亞赫塞哥維納
+æ³¢æ\96¯å°¼äº\9aå\92\8cé»\91å¡\9eå\93¥ç»´é\82£ æ³¢å£«å°¼äº\9eè\88\87赫å¡\9eå\93¥ç¶­ç´\8d
+波斯尼亞和黑塞哥維那 波士尼亞與赫塞哥維納
 津巴布韦   辛巴威
 津巴布韋   辛巴威
 洪都拉斯   宏都拉斯
@@ -777,4 +777,5 @@ IP地址    IP位址
 行人路權   行人路權
 行人路权   行人路權
 塑料袋      塑膠袋
-桃金娘      桃金孃
+触摸屏      觸控螢幕
+乌冬面      烏龍麵
index a9e8f3b..8fb4198 100644 (file)
 楊雅筑      楊雅筑
 尸羅精舍   尸羅精舍
 騰格里      騰格里
-村里長      村里長
 進制 進制
+強制 強制
 總裁制      總裁制
 獨裁制      獨裁制
 模范三軍   模范三軍
 复苏 復甦
 苹果 蘋果
 苹果干      蘋果乾
+苹婆 蘋婆
 龜山庄      龜山庄
 寶山庄      寶山庄
 員山庄      員山庄
index c9d78b7..e5b05ff 100644 (file)
@@ -135,6 +135,7 @@ U+056D9囙|U+056E0因|
 U+05705圅|U+051FD函|
 U+0577F坿|U+09644附|
 U+0579C垜|U+0579B垛|
+U+0585A塚|U+051A2冢|
 U+0585F塟|U+0846C葬|
 U+05872塲|U+0573A场|
 U+05896墖|U+05854塔|
@@ -200,7 +201,6 @@ U+05ED5廕|U+0836B荫|
 U+05EF5廵|U+05DE1巡|
 U+05EF9廹|U+08FEB迫|
 U+05EFB廻|U+056DE回|
-U+05EFC廼|U+04E43乃|
 U+05F14弔|U+0540A吊|
 U+05F46彆|U+0522B别|
 U+05F6B彫|U+096D5雕|
index 94756f0..463c126 100644 (file)
 皺彆
 一彆頭
 并州
+併力
 ,並力
-,并力攻
 ,并力討
+兼併
 併兼
 併骨
 併網
 水併流
 逼併
 併名
-併火
 併肩子
 併疊
 簡併
 櫛髮工
 鬒髮
 人髮指
-爆發指數
+爆發 #分詞
+引發
 開發
 剪其髮
 吐哺捉髮
 錢穀
 息穀
 殖穀
-川穀
 曬穀
 臧穀亡羊
 種穀
+陽穀
+布穀鳥
+穀祿
+穀城縣
 颳雪
 广部
 亂鬨鬨
 薑母
 薑湯
 薑桂
-薑是老的辣
+薑是老的辣
 吃薑
 薑老辣
 野薑
 言大而夸
 睏覺
 愛睏
-睏了
 纍堆
 纍紲
 纍臣
 麵製品
 乾脆麵
 磨麵
+莜麵
+雲吞麵
 冷面相
 糞穢衊面
 僕僕
 乾姐
 乾紅葡萄酒
 乾白葡萄酒
+抽乾
+排乾
+排幹部
+吸乾
 楨幹
 新幹縣
 誰幹的
 鍥而不捨
 稜登
 繃扒弔拷
-不弔
+不弔
 不通弔慶
 陪弔
 盆弔
 桌几
 每每只
 法自制
-洒滌
 洒淅
 洒濯
 洒然
 心繫沈
 心繫唐
 心繫黃
-心繫
+心繫
 心繫阮
 心繫父
 心繫母
 西西里
 騰格里
 阿里
-村里長
 峇里海
 里海崖
 里海茨
 電視裡
 公寓裡
 公寓里弄
+村裡的
+村裡有
+鎮裡
 裏白 #植物常用名
 烏蘇里 #分詞用
 首發
 會干擾
 高清愿
 瓷製
+陶製
 竹製
 絲製
-莜麵
 簡筑翎
 楊雅筑
 彭于晏
 于寶軒
 于承惠
 于震
+于建嶸
 於震前
 於震後
 於震中
 沖天
 豐臺
 煙臺
-陽穀
 太醜
 御製
 聖人曆
 自誇
 誇稱
 誇讚
-布穀鳥
 黎克特制
 筆桿
 袋桿
 衝着
 確係
 乃係
-穀祿
 製衣
 巨製
 不捲
index 69cda7c..ae6b672 100644 (file)
 腳鍊
 託人
 鬥口
+噴洒
+洒掃
+洒水
+洒洒
+洒脫
+瀟洒
+村裡
+振蕩
+重摺
+兼并
+并力
+弔死
+弔帶
index 10408ec..dcb9933 100644 (file)
@@ -1,7 +1,6 @@
 <?php
 /**
- * Populates the rev_len and ar_len fields for old revisions created
- * before MW 1.10.
+ * Populates the rev_len and ar_len fields when they are NULL.
  *
  * 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
@@ -25,8 +24,9 @@
 require_once __DIR__ . '/Maintenance.php';
 
 /**
- * Maintenance script that populates the rev_len and ar_len fields
- * for old revisions created before MW 1.10.
+ * Maintenance script that populates the rev_len and ar_len fields when they are NULL.
+ * This is the case for all revisions created before MW 1.10, as well as those affected
+ * by T18748 (MW 1.10-1.13) and those affected by T135414 (MW 1.21-1.24).
  *
  * @ingroup Maintenance
  */
@@ -42,12 +42,12 @@ class PopulateRevisionLength extends LoggedUpdateMaintenance {
        }
 
        public function doDBUpdates() {
-               $db = $this->getDB( DB_MASTER );
-               if ( !$db->tableExists( 'revision' ) ) {
+               $dbw = $this->getDB( DB_MASTER );
+               if ( !$dbw->tableExists( 'revision' ) ) {
                        $this->error( "revision table does not exist", true );
-               } elseif ( !$db->tableExists( 'archive' ) ) {
+               } elseif ( !$dbw->tableExists( 'archive' ) ) {
                        $this->error( "archive table does not exist", true );
-               } elseif ( !$db->fieldExists( 'revision', 'rev_len', __METHOD__ ) ) {
+               } elseif ( !$dbw->fieldExists( 'revision', 'rev_len', __METHOD__ ) ) {
                        $this->output( "rev_len column does not exist\n\n", true );
 
                        return false;
@@ -73,9 +73,10 @@ class PopulateRevisionLength extends LoggedUpdateMaintenance {
         * @return int
         */
        protected function doLenUpdates( $table, $idCol, $prefix, $fields ) {
-               $db = $this->getDB( DB_MASTER );
-               $start = $db->selectField( $table, "MIN($idCol)", false, __METHOD__ );
-               $end = $db->selectField( $table, "MAX($idCol)", false, __METHOD__ );
+               $dbr = $this->getDB( DB_SLAVE );
+               $dbw = $this->getDB( DB_MASTER );
+               $start = $dbw->selectField( $table, "MIN($idCol)", false, __METHOD__ );
+               $end = $dbw->selectField( $table, "MAX($idCol)", false, __METHOD__ );
                if ( !$start || !$end ) {
                        $this->output( "...$table table seems to be empty.\n" );
 
@@ -89,7 +90,7 @@ class PopulateRevisionLength extends LoggedUpdateMaintenance {
 
                while ( $blockStart <= $end ) {
                        $this->output( "...doing $idCol from $blockStart to $blockEnd\n" );
-                       $res = $db->select(
+                       $res = $dbr->select(
                                $table,
                                $fields,
                                [
@@ -100,14 +101,16 @@ class PopulateRevisionLength extends LoggedUpdateMaintenance {
                                __METHOD__
                        );
 
-                       $this->beginTransaction( $db, __METHOD__ );
-                       # Go through and update rev_len from these rows.
-                       foreach ( $res as $row ) {
-                               if ( $this->upgradeRow( $row, $table, $idCol, $prefix ) ) {
-                                       $count++;
+                       if ( $res->numRows() > 0 ) {
+                               $this->beginTransaction( $dbw, __METHOD__ );
+                               # Go through and update rev_len from these rows.
+                               foreach ( $res as $row ) {
+                                       if ( $this->upgradeRow( $row, $table, $idCol, $prefix ) ) {
+                                               $count++;
+                                       }
                                }
+                               $this->commitTransaction( $dbw, __METHOD__ );
                        }
-                       $this->commitTransaction( $db, __METHOD__ );
 
                        $blockStart += $this->mBatchSize;
                        $blockEnd += $this->mBatchSize;
@@ -125,7 +128,7 @@ class PopulateRevisionLength extends LoggedUpdateMaintenance {
         * @return bool
         */
        protected function upgradeRow( $row, $table, $idCol, $prefix ) {
-               $db = $this->getDB( DB_MASTER );
+               $dbw = $this->getDB( DB_MASTER );
 
                $rev = ( $table === 'archive' )
                        ? Revision::newFromArchiveRow( $row )
@@ -141,7 +144,7 @@ class PopulateRevisionLength extends LoggedUpdateMaintenance {
                }
 
                # Update the row...
-               $db->update( $table,
+               $dbw->update( $table,
                        [ "{$prefix}_len" => $content->getSize() ],
                        [ $idCol => $row->$idCol ],
                        __METHOD__
index aa5d69d..d102e08 100644 (file)
@@ -47,6 +47,9 @@ class PPFuzzTester {
        public $entryPoints = [ 'testSrvus', 'testPst', 'testPreprocess' ];
        public $verbose = false;
 
+       /**
+        * @var bool|PPFuzzTest
+        */
        private static $currentTest = false;
 
        function execute() {
index b67bc36..38556ed 100644 (file)
@@ -48,7 +48,7 @@ class RebuildFileCache extends Maintenance {
        }
 
        public function execute() {
-               global $wgUseFileCache, $wgReadOnly, $wgContentNamespaces, $wgRequestTime;
+               global $wgUseFileCache, $wgReadOnly, $wgRequestTime;
                global $wgOut;
                if ( !$wgUseFileCache ) {
                        $this->error( "Nothing to do -- \$wgUseFileCache is disabled.", true );
@@ -94,7 +94,7 @@ class RebuildFileCache extends Maintenance {
                while ( $blockEnd <= $end ) {
                        // Get the pages
                        $res = $dbr->select( 'page', [ 'page_namespace', 'page_title', 'page_id' ],
-                               [ 'page_namespace' => $wgContentNamespaces,
+                               [ 'page_namespace' => MWNamespace::getContentNamespaces(),
                                        "page_id BETWEEN $blockStart AND $blockEnd" ],
                                [ 'ORDER BY' => 'page_id ASC', 'USE INDEX' => 'PRIMARY' ]
                        );
index 837f304..131a569 100644 (file)
@@ -30,12 +30,14 @@ require_once __DIR__ . '/Maintenance.php';
  * Maintenance script to reset the user_token for all users on the wiki.
  *
  * @ingroup Maintenance
+ * @deprecated since 1.27, use $wgAuthenticationTokenVersion instead.
  */
 class ResetUserTokens extends Maintenance {
        public function __construct() {
                parent::__construct();
                $this->addDescription(
-                       'Reset the user_token of all users on the wiki. Note that this may log some of them out.'
+                       "Reset the user_token of all users on the wiki. Note that this may log some of them out.\n"
+                       . "Deprecated, use \$wgAuthenticationTokenVersion instead."
                );
                $this->addOption( 'nowarn', "Hides the 5 seconds warning", false, false );
                $this->addOption(
index 775fa7b..b96e7eb 100755 (executable)
@@ -25,7 +25,6 @@
  * @ingroup Maintenance
  */
 
-$wgUseMasterForMaintenance = true;
 require_once __DIR__ . '/Maintenance.php';
 
 /**
@@ -83,13 +82,6 @@ class UpdateMediaWiki extends Maintenance {
                                "ABORTING (see https://bugs.php.net/bug.php?id=45996).\n",
                                true );
                }
-
-               if ( !function_exists( 'mb_strlen' ) ) {
-                       $this->error(
-                               "MediaWiki now requires the mbstring PHP extension, your system doesn't have it.\n"
-                               . "ABORTING.\n",
-                               true );
-               }
        }
 
        function execute() {
diff --git a/maintenance/updateExtensionJsonSchema.php b/maintenance/updateExtensionJsonSchema.php
new file mode 100644 (file)
index 0000000..427769f
--- /dev/null
@@ -0,0 +1,69 @@
+<?php
+
+require_once __DIR__ . '/Maintenance.php';
+
+class UpdateExtensionJsonSchema extends Maintenance {
+
+       public function __construct() {
+               parent::__construct();
+               $this->addDescription( 'Updates extension.json files to the latest manifest_version' );
+               $this->addArg( 'path', 'Location to the extension.json or skin.json you wish to convert',
+                       /* $required = */ true );
+       }
+
+       public function execute() {
+               $filename = $this->getArg( 0 );
+               if ( !is_readable( $filename ) ) {
+                       $this->error( "Error: Unable to read $filename", 1 );
+               }
+
+               $json = FormatJson::decode( file_get_contents( $filename ), true );
+               if ( $json === null ) {
+                       $this->error( "Error: Invalid JSON", 1 );
+               }
+
+               if ( !isset( $json['manifest_version'] ) ) {
+                       $json['manifest_version'] = 1;
+               }
+
+               if ( $json['manifest_version'] == ExtensionRegistry::MANIFEST_VERSION ) {
+                       $this->output( "Already at the latest version: {$json['manifest_version']}\n" );
+                       return;
+               }
+
+               while ( $json['manifest_version'] !== ExtensionRegistry::MANIFEST_VERSION ) {
+                       $json['manifest_version'] += 1;
+                       $func = "updateTo{$json['manifest_version']}";
+                       $this->$func( $json );
+               }
+
+               file_put_contents( $filename, FormatJson::encode( $json, "\t", FormatJson::ALL_OK ) . "\n" );
+               $this->output( "Updated to {$json['manifest_version']}...\n" );
+       }
+
+       protected function updateTo2( &$json ) {
+               if ( isset( $json['config'] ) ) {
+                       $config = $json['config'];
+                       $json['config'] = [];
+                       if ( isset( $config['_prefix'] ) ) {
+                               $json = wfArrayInsertAfter( $json, [
+                                       'config_prefix' => $config['_prefix']
+                               ], 'config' );
+                               unset( $config['_prefix'] );
+                       }
+
+                       foreach ( $config as $name => $value ) {
+                               if ( $name[0] !== '@' ) {
+                                       $json['config'][$name] = [ 'value' => $value ];
+                                       if ( isset( $value[ExtensionRegistry::MERGE_STRATEGY] ) ) {
+                                               $json['config'][$name]['merge_strategy'] = $value[ExtensionRegistry::MERGE_STRATEGY];
+                                               unset( $value[ExtensionRegistry::MERGE_STRATEGY] );
+                                       }
+                               }
+                       }
+               }
+       }
+}
+
+$maintClass = 'UpdateExtensionJsonSchema';
+require_once RUN_MAINTENANCE_IF_MAIN;
diff --git a/mw-config/overrides.php b/mw-config/overrides.php
deleted file mode 100644 (file)
index 3dfecaa..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-<?php
-/**
- * MediaWiki installer overrides.
- * Modify this file if you are a packager who needs to modify the behavior of
- * the MediaWiki installer. Altering it is preferred over changing anything in
- * /includes.
- *
- * Note: this file doesn't gets included from a global scope, don't use globals directly.
- *
- * 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
- */
-
-/*
-
-Example of modifications:
-
-       public static function getLocalSettingsGenerator( Installer $installer ) {
-               return new MyLocalSettingsGenerator( $installer );
-       }
-
-Then add the following to the bottom of this file:
-
-class MyLocalSettingsGenerator extends LocalSettingsGenerator {
-       function getText() {
-               // Modify an existing setting
-               $this->values['wgDefaultSkin'] = 'vector';
-               // add a new setting
-               $ls = parent::getText();
-               return $ls . "\n\$wgUseTex = true;\n";
-       }
-}
-*/
-
-/**
- * @since 1.20
- */
-class InstallerOverrides {
-       /**
-        * Instantiates and returns an instance of LocalSettingsGenerator or its descendant classes
-        * @param Installer $installer
-        * @return LocalSettingsGenerator
-        */
-       public static function getLocalSettingsGenerator( Installer $installer ) {
-               return new LocalSettingsGenerator( $installer );
-       }
-
-       /**
-        * Instantiates and returns an instance of WebInstaller or its descendant classes
-        * @param WebRequest $request
-        * @return WebInstaller
-        */
-       public static function getWebInstaller( WebRequest $request ) {
-               return new WebInstaller( $request );
-       }
-
-       /**
-        * Instantiates and returns an instance of CliInstaller or its descendant classes
-        * @param string $siteName
-        * @param string|null $admin
-        * @param array $options
-        * @return CliInstaller
-        */
-       public static function getCliInstaller( $siteName, $admin = null, array $options = [] ) {
-               return new CliInstaller( $siteName, $admin, $options );
-       }
-}
diff --git a/mw-config/overrides/README b/mw-config/overrides/README
new file mode 100644 (file)
index 0000000..68e0fad
--- /dev/null
@@ -0,0 +1,22 @@
+Don't modify the installer if you want to alter its behavior, including
+the contents of generated LocalSettings.php in your package. Instead,
+you can override classes used by the installer.
+
+You can override 3 classes:
+* LocalSettingsGenerator - generates LocalSettings.php
+* WebInstaller - web installer UI
+* CliInstaller - command line installer
+
+Example override:
+
+$overrides['LocalSettingsGenerator'] = 'MyLocalSettingsGenerator';
+
+class MyLocalSettingsGenerator extends LocalSettingsGenerator {
+       function getText() {
+               // Modify an existing setting
+               $this->values['wgDefaultSkin'] = 'vector';
+               // add a new setting
+               $ls = parent::getText();
+               return $ls . "\n\$wgMiserMode = true;\n";
+       }
+}
index 6fde2e0..780e049 100644 (file)
     "grunt-contrib-watch": "1.0.0",
     "grunt-jscs": "2.8.0",
     "grunt-jsonlint": "1.0.7",
-    "grunt-karma": "0.12.2",
-    "grunt-stylelint": "0.3.0",
-    "karma": "0.13.22",
-    "karma-chrome-launcher": "0.2.2",
-    "karma-firefox-launcher": "0.1.7",
-    "karma-qunit": "0.1.9",
+    "grunt-karma": "2.0.0",
+    "grunt-stylelint": "0.4.0",
+    "karma": "1.1.0",
+    "karma-chrome-launcher": "1.0.1",
+    "karma-firefox-launcher": "1.0.0",
+    "karma-qunit": "1.0.0",
     "qunitjs": "1.22.0",
-    "stylelint-config-wikimedia": "0.1.0"
+    "stylelint-config-wikimedia": "0.2.2"
   }
 }
index 2d1e921..e35c3d7 100644 (file)
@@ -33,6 +33,7 @@ return [
 
        // Scripts managed by the local wiki (stored in the MediaWiki namespace)
        'site' => [ 'class' => 'ResourceLoaderSiteModule' ],
+       'site.styles' => [ 'class' => 'ResourceLoaderSiteStylesModule' ],
        'noscript' => [
                'class' => 'ResourceLoaderWikiModule',
                'styles' => [ 'MediaWiki:Noscript.css' ],
@@ -828,6 +829,9 @@ return [
                                'resources/src/moment-locale-overrides.js',
                        ],
                ],
+               'dependencies' => [
+                       'mediawiki.language',
+               ],
                'targets' => [ 'desktop', 'mobile' ],
        ],
 
@@ -837,7 +841,6 @@ return [
                'class' => 'ResourceLoaderRawFileModule',
                // Keep in sync with maintenance/jsduck/eg-iframe.html
                'scripts' => [
-                       'resources/lib/phpjs-sha1/sha1.js',
                        'resources/src/mediawiki/mediawiki.js',
                        'resources/src/mediawiki/mediawiki.requestIdleCallback.js',
                        'resources/src/mediawiki/mediawiki.errorLogger.js',
@@ -1180,6 +1183,7 @@ return [
                ],
                'messages' => [
                        'uploaddisabledtext',
+                       'upload-dialog-disabled',
                        'upload-foreign-cant-upload',
                ]
        ],
@@ -1192,6 +1196,9 @@ return [
                        'mediawiki.ForeignUpload',
                        'mediawiki.ForeignStructuredUpload.config',
                ],
+               'messages' => [
+                       'upload-foreign-cant-load-config',
+               ],
        ],
        'mediawiki.Upload.Dialog' => [
                'scripts' => [
@@ -1290,7 +1297,6 @@ return [
                        'filename-thumb-name',
                        'badfilename',
                        'protectedpagetext',
-                       'api-error-blacklisted', // HACK
                ],
        ],
        'mediawiki.ForeignStructuredUpload.BookletLayout' => [
@@ -1373,11 +1379,9 @@ return [
        ],
        'mediawiki.checkboxtoggle' => [
                'scripts' => 'resources/src/mediawiki/mediawiki.checkboxtoggle.js',
-               'position' => 'top',
        ],
        'mediawiki.checkboxtoggle.styles' => [
                'styles' => 'resources/src/mediawiki/mediawiki.checkboxtoggle.css',
-               'position' => 'top',
        ],
        'mediawiki.cookie' => [
                'scripts' => 'resources/src/mediawiki/mediawiki.cookie.js',
@@ -1402,12 +1406,16 @@ return [
        /* MediaWiki Action */
 
        'mediawiki.action.edit' => [
-               'scripts' => 'resources/src/mediawiki.action/mediawiki.action.edit.js',
+               'scripts' => [
+                       'resources/src/mediawiki.action/mediawiki.action.edit.js',
+                       'resources/src/mediawiki.action/mediawiki.action.edit.stash.js',
+               ],
                'styles' => 'resources/src/mediawiki.action/mediawiki.action.edit.css',
                'dependencies' => [
                        'mediawiki.action.edit.styles',
                        'jquery.textSelection',
                        'jquery.byteLimit',
+                       'mediawiki.api',
                ],
                'position' => 'top',
        ],
@@ -1450,18 +1458,14 @@ return [
                        'previewerrortext',
                ],
        ],
-       'mediawiki.action.edit.stash' => [
-               'scripts' => 'resources/src/mediawiki.action/mediawiki.action.edit.stash.js',
-               'dependencies' => [
-                       'jquery.getAttrs',
-                       'mediawiki.api',
-               ],
-       ],
        'mediawiki.action.history' => [
-               'position' => 'top',
                'scripts' => 'resources/src/mediawiki.action/mediawiki.action.history.js',
                'styles' => 'resources/src/mediawiki.action/mediawiki.action.history.css',
        ],
+       'mediawiki.action.history.styles' => [
+               'position' => 'top',
+               'styles' => 'resources/src/mediawiki.action/mediawiki.action.history.styles.css',
+       ],
        'mediawiki.action.history.diff' => [
                'position' => 'top',
                'styles' => [
@@ -1651,6 +1655,18 @@ return [
                'position' => 'top',
                'targets' => [ 'desktop', 'mobile' ],
        ],
+       'mediawiki.page.gallery.slideshow' => [
+               'scripts' => 'resources/src/mediawiki/page/gallery-slideshow.js',
+               'position' => 'top',
+               'dependencies' => [
+                       'mediawiki.api',
+                       'mediawiki.Title',
+                       'oojs',
+                       'oojs-ui-core',
+                       'oojs-ui-widgets',
+                       'oojs-ui.styles.icons-media'
+               ]
+       ],
        'mediawiki.page.ready' => [
                'scripts' => 'resources/src/mediawiki/page/ready.js',
                'dependencies' => [
@@ -1791,10 +1807,6 @@ return [
                'styles' => 'resources/src/mediawiki.special/mediawiki.special.block.css',
                'dependencies' => 'mediawiki.util',
        ],
-       'mediawiki.special.blocklist' => [
-               'styles' => 'resources/src/mediawiki.special/mediawiki.special.blocklist.css',
-               'position' => 'top',
-       ],
        'mediawiki.special.changeslist' => [
                'position' => 'top',
                'styles' => 'resources/src/mediawiki.special/mediawiki.special.changeslist.css',
@@ -1894,6 +1906,10 @@ return [
                        'powersearch-togglenone',
                ],
        ],
+       'mediawiki.special.search.styles' => [
+               'styles' => 'resources/src/mediawiki.special/mediawiki.special.search.styles.css',
+               'targets' => [ 'desktop', 'mobile' ],
+       ],
        'mediawiki.special.undelete' => [
                'scripts' => 'resources/src/mediawiki.special/mediawiki.special.undelete.js',
        ],
@@ -1902,7 +1918,6 @@ return [
                        'thumbnail.html' => 'resources/src/mediawiki.special/templates/thumbnail.html',
                ],
                'scripts' => 'resources/src/mediawiki.special/mediawiki.special.upload.js',
-               'styles' => 'resources/src/mediawiki.special/mediawiki.special.upload.css',
                'messages' => [
                        'widthheight',
                        'size-bytes',
@@ -1915,6 +1930,7 @@ return [
                        'prefs-editing',
                ],
                'dependencies' => [
+                       'mediawiki.special.upload.styles',
                        'jquery.spinner',
                        'mediawiki.jqueryMsg',
                        'mediawiki.api',
@@ -1925,6 +1941,9 @@ return [
                        'user.options',
                ],
        ],
+       'mediawiki.special.upload.styles' => [
+               'styles' => 'resources/src/mediawiki.special/mediawiki.special.upload.styles.css',
+       ],
        'mediawiki.special.userlogin.common.styles' => [
                'styles' => [
                        'resources/src/mediawiki.special/mediawiki.special.userlogin.common.css',
@@ -2343,7 +2362,5 @@ return [
        ],
 
        /* OOjs UI */
-       // WARNING: OOjs-UI is NOT TESTED with older browsers and is likely to break
-       // if loaded in browsers that don't support ES5
        // @see ResourcesOOUI.php
 ];
index 400a432..ac7f6c6 100644 (file)
@@ -8,7 +8,8 @@
                        "Kenrick95",
                        "McDutchie",
                        "Rv77ax",
-                       "William Surya Permana"
+                       "William Surya Permana",
+                       "Rachmat.Wahidi"
                ]
        },
        "ooui-outline-control-move-down": "Pindahkan butir ke bawah",
@@ -23,6 +24,8 @@
        "ooui-dialog-process-dismiss": "Tutup",
        "ooui-dialog-process-retry": "Coba lagi",
        "ooui-dialog-process-continue": "Lanjutkan",
+       "ooui-selectfile-button-select": "Pilih berkas",
        "ooui-selectfile-not-supported": "Peilihan berkas tidak didukung",
-       "ooui-selectfile-placeholder": "Tidak ada berkas yang terpilih"
+       "ooui-selectfile-placeholder": "Tidak ada berkas yang terpilih",
+       "ooui-selectfile-dragdrop-placeholder": "Letakkan berkas di sini"
 }
diff --git a/resources/lib/oojs-ui/i18n/inh.json b/resources/lib/oojs-ui/i18n/inh.json
new file mode 100644 (file)
index 0000000..a897ed5
--- /dev/null
@@ -0,0 +1,24 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Adam-Yourist",
+                       "ElizaMag"
+               ]
+       },
+       "ooui-outline-control-move-down": "Элемент Iолохеяккха",
+       "ooui-outline-control-move-up": "Элемент Iолакхеяккха",
+       "ooui-outline-control-remove": "ДIаяккха пункт",
+       "ooui-toolbar-more": "Кхы а",
+       "ooui-toolgroup-expand": "Дукха",
+       "ooui-toolgroup-collapse": "КӀезига",
+       "ooui-dialog-message-accept": "ОК",
+       "ooui-dialog-message-reject": "Эшац",
+       "ooui-dialog-process-error": "Харцахь хилар цхьа хIама",
+       "ooui-dialog-process-dismiss": "ДIакъовла",
+       "ooui-dialog-process-retry": "Кхы цкъа де гIорта",
+       "ooui-dialog-process-continue": "ДIаьхде",
+       "ooui-selectfile-button-select": "Файл хьахаржа",
+       "ooui-selectfile-not-supported": "Файл харжа вIаштаь дац",
+       "ooui-selectfile-placeholder": "Файл хержа яц",
+       "ooui-selectfile-dragdrop-placeholder": "Хьадехьаяккха файл укхаз"
+}
index 1024d2a..8da8ef1 100644 (file)
@@ -8,18 +8,20 @@
                        "Meursault2004"
                ]
        },
-       "ooui-outline-control-move-down": "Pindhahaken butir mangandhap",
-       "ooui-outline-control-move-up": "Pindhah kara menyang dhuwur",
-       "ooui-outline-control-remove": "Busak kara",
-       "ooui-toolbar-more": "Manèh",
-       "ooui-toolgroup-expand": "Manèh",
-       "ooui-toolgroup-collapse": "Suda",
-       "ooui-dialog-message-accept": "Oké",
-       "ooui-dialog-message-reject": "Batal",
+       "ooui-outline-control-move-down": "Lih barang mangisor",
+       "ooui-outline-control-move-up": "Lih barang mandhuwur",
+       "ooui-outline-control-remove": "Buwang barang",
+       "ooui-toolbar-more": "Liyané",
+       "ooui-toolgroup-expand": "Liyané",
+       "ooui-toolgroup-collapse": "Sacukupé",
+       "ooui-dialog-message-accept": "Ha'a",
+       "ooui-dialog-message-reject": "Wurungaké",
        "ooui-dialog-process-error": "Ana sing klèru",
        "ooui-dialog-process-dismiss": "Tutup",
        "ooui-dialog-process-retry": "Jajal manèh",
-       "ooui-dialog-process-continue": "Tutug",
-       "ooui-selectfile-not-supported": "Pilihan berkas ora disokong",
-       "ooui-selectfile-placeholder": "Ora ana berkas sing kapilih"
+       "ooui-dialog-process-continue": "Banjuraké",
+       "ooui-selectfile-button-select": "Pilih barkas",
+       "ooui-selectfile-not-supported": "Barkas pilihan ora disengkuyung",
+       "ooui-selectfile-placeholder": "Ora ana barkas sing dipilih",
+       "ooui-selectfile-dragdrop-placeholder": "Dèkèk barkas ing kéné"
 }
index 94b4687..9954744 100644 (file)
@@ -12,5 +12,6 @@
        "ooui-dialog-message-reject": "Betal bike",
        "ooui-dialog-process-retry": "Dîsa hewl bide",
        "ooui-dialog-process-continue": "Bidomîne",
+       "ooui-selectfile-button-select": "Dosyeyekê hilbijêre",
        "ooui-selectfile-placeholder": "Ti dosye nehatiye hilbijartin"
 }
diff --git a/resources/lib/oojs-ui/i18n/pnb.json b/resources/lib/oojs-ui/i18n/pnb.json
new file mode 100644 (file)
index 0000000..8bd4be8
--- /dev/null
@@ -0,0 +1,21 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Saanvel"
+               ]
+       },
+       "ooui-outline-control-move-down": "شیہ تھلے کرو",
+       "ooui-outline-control-move-up": "شیہ اتے کرو",
+       "ooui-outline-control-remove": "شیہ مٹاؤ",
+       "ooui-toolbar-more": "ہور",
+       "ooui-toolgroup-expand": "ہور",
+       "ooui-dialog-message-accept": "OK",
+       "ooui-dialog-message-reject": "مکاؤ",
+       "ooui-dialog-process-error": "کوئی رپھڑ پے گیا اے۔",
+       "ooui-dialog-process-dismiss": "مکاؤ",
+       "ooui-dialog-process-retry": "فیر کرو",
+       "ooui-dialog-process-continue": "چلاؤ",
+       "ooui-selectfile-button-select": "فائل چنو",
+       "ooui-selectfile-placeholder": "کوئی فائل نئی چنی ہوئی",
+       "ooui-selectfile-dragdrop-placeholder": "فائل ایتھے پاؤ"
+}
index 510e468..598acbc 100644 (file)
@@ -2,7 +2,8 @@
        "@metadata": {
                "authors": [
                        "Lloffiwr",
-                       "Muddyb Blast Producer"
+                       "Muddyb Blast Producer",
+                       "Muddyb"
                ]
        },
        "ooui-outline-control-move-down": "Sogeza kipengee chini",
index 637f4c9..a34432f 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.17.3
+ * OOjs UI v0.17.6
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2016 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2016-05-24T22:46:32Z
+ * Date: 2016-07-12T20:26:03Z
  */
 ( function ( OO ) {
 
@@ -27,6 +27,15 @@ OO.ui.ApexTheme = function OoUiApexTheme() {
 
 OO.inheritClass( OO.ui.ApexTheme, OO.ui.Theme );
 
+/* Methods */
+
+/**
+ * @inheritdoc
+ */
+OO.ui.ApexTheme.prototype.getDialogTransitionDuration = function () {
+       return 250;
+};
+
 /* Instantiation */
 
 OO.ui.theme = new OO.ui.ApexTheme();
index 0b9b2b9..152d444 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.17.3
+ * OOjs UI v0.17.6
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2016 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2016-05-24T22:46:36Z
+ * Date: 2016-07-12T20:26:07Z
  */
 .oo-ui-element-hidden {
        display: none !important;
@@ -16,6 +16,7 @@
        display: inline-block;
        vertical-align: middle;
        font: inherit;
+       line-height: normal;
        white-space: nowrap;
        -webkit-touch-callout: none;
        -webkit-user-select: none;
 .oo-ui-buttonElement.oo-ui-widget-disabled > .oo-ui-buttonElement-button {
        cursor: default;
 }
+.oo-ui-buttonElement.oo-ui-widget-enabled > .oo-ui-buttonElement-button:hover,
+.oo-ui-buttonElement.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active,
+.oo-ui-buttonElement.oo-ui-widget-enabled > .oo-ui-buttonElement-button:focus {
+       z-index: 2;
+}
 .oo-ui-buttonElement.oo-ui-indicatorElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator,
 .oo-ui-buttonElement.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon,
 .oo-ui-buttonElement.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
        vertical-align: middle;
 }
 .oo-ui-buttonElement-frameless {
-       display: inline-block;
        position: relative;
 }
 .oo-ui-buttonElement-framed > .oo-ui-buttonElement-button {
        vertical-align: top;
        text-align: center;
 }
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-       cursor: default;
-}
 .oo-ui-buttonElement > .oo-ui-buttonElement-button {
        color: #333333;
 }
 }
 .oo-ui-fieldLayout > .oo-ui-fieldLayout-help .oo-ui-fieldLayout-help-content {
        padding: 0.5em 0.75em;
-       line-height: 1.5em;
+       line-height: 1.5;
 }
 .oo-ui-fieldLayout:last-child {
        margin-bottom: 0;
 }
 .oo-ui-fieldsetLayout > .oo-ui-fieldsetLayout-help .oo-ui-fieldsetLayout-help-content {
        padding: 0.5em 0.75em;
-       line-height: 1.5em;
+       line-height: 1.5;
 }
 .oo-ui-fieldsetLayout + .oo-ui-fieldsetLayout,
 .oo-ui-fieldsetLayout + .oo-ui-formLayout {
        padding: 0;
        background-color: transparent;
 }
+.oo-ui-checkboxMultiselectInputWidget .oo-ui-fieldLayout {
+       margin-bottom: 0;
+}
 .oo-ui-dropdownInputWidget {
        position: relative;
        vertical-align: middle;
 .oo-ui-textInputWidget textarea {
        display: block;
        width: 100%;
-       resize: none;
        -webkit-box-sizing: border-box;
           -moz-box-sizing: border-box;
                box-sizing: border-box;
 }
 .oo-ui-textInputWidget textarea {
        overflow: auto;
+       resize: none;
 }
 .oo-ui-textInputWidget [type="search"] {
        -webkit-appearance: textfield;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
+       cursor: default;
        -webkit-touch-callout: none;
        -webkit-user-select: none;
           -moz-user-select: none;
 .oo-ui-dropdownWidget-handle .oo-ui-iconElement-icon {
        position: absolute;
 }
+.oo-ui-dropdownWidget.oo-ui-widget-enabled .oo-ui-dropdownWidget-handle {
+       cursor: pointer;
+}
 .oo-ui-dropdownWidget > .oo-ui-menuSelectWidget {
        z-index: 1;
        width: 100%;
 }
-.oo-ui-dropdownWidget.oo-ui-widget-enabled .oo-ui-dropdownWidget-handle {
-       cursor: pointer;
-}
 .oo-ui-dropdownWidget:last-child {
        margin-right: 0;
 }
        cursor: default;
        opacity: 0.2;
 }
+.oo-ui-multioptionWidget {
+       position: relative;
+       display: block;
+}
+.oo-ui-multioptionWidget.oo-ui-widget-enabled {
+       cursor: pointer;
+}
+.oo-ui-multioptionWidget.oo-ui-widget-disabled {
+       cursor: default;
+}
+.oo-ui-multioptionWidget.oo-ui-labelElement .oo-ui-labelElement-label {
+       display: block;
+       white-space: nowrap;
+       text-overflow: ellipsis;
+       overflow: hidden;
+}
+.oo-ui-multioptionWidget .oo-ui-labelElement-label {
+       line-height: 1.5em;
+}
+.oo-ui-multioptionWidget.oo-ui-widget-disabled {
+       color: #cccccc;
+}
+.oo-ui-checkboxMultioptionWidget {
+       cursor: default;
+       padding: 0;
+}
+.oo-ui-checkboxMultioptionWidget .oo-ui-checkboxInputWidget,
+.oo-ui-checkboxMultioptionWidget.oo-ui-labelElement .oo-ui-labelElement-label {
+       display: inline-block;
+       vertical-align: middle;
+}
+.oo-ui-checkboxMultioptionWidget.oo-ui-labelElement .oo-ui-labelElement-label {
+       padding-left: 0.5em;
+}
+.oo-ui-checkboxMultioptionWidget .oo-ui-checkboxInputWidget {
+       margin-right: 0;
+}
index 46e3f01..a191804 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.17.3
+ * OOjs UI v0.17.6
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2016 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2016-05-24T22:46:36Z
+ * Date: 2016-07-12T20:26:07Z
  */
 .oo-ui-element-hidden {
        display: none !important;
@@ -16,6 +16,7 @@
        display: inline-block;
        vertical-align: middle;
        font: inherit;
+       line-height: normal;
        white-space: nowrap;
        -webkit-touch-callout: none;
        -webkit-user-select: none;
 .oo-ui-buttonElement.oo-ui-widget-disabled > .oo-ui-buttonElement-button {
        cursor: default;
 }
+.oo-ui-buttonElement.oo-ui-widget-enabled > .oo-ui-buttonElement-button:hover,
+.oo-ui-buttonElement.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active,
+.oo-ui-buttonElement.oo-ui-widget-enabled > .oo-ui-buttonElement-button:focus {
+       z-index: 2;
+}
 .oo-ui-buttonElement.oo-ui-indicatorElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator,
 .oo-ui-buttonElement.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon,
 .oo-ui-buttonElement.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
        vertical-align: middle;
 }
 .oo-ui-buttonElement-frameless {
-       display: inline-block;
        position: relative;
 }
 .oo-ui-buttonElement-framed > .oo-ui-buttonElement-button {
        vertical-align: top;
        text-align: center;
 }
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-       cursor: default;
-}
 .oo-ui-buttonElement > .oo-ui-buttonElement-button {
        font-weight: bold;
        text-decoration: none;
 }
 .oo-ui-buttonElement > .oo-ui-buttonElement-button:focus {
+       border-radius: 2px;
        outline: 0;
 }
 .oo-ui-buttonElement.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
@@ -71,7 +73,6 @@
 .oo-ui-buttonElement-frameless > input.oo-ui-buttonElement-button {
        padding-left: 0.25em;
        padding-right: 0.25em;
-       color: #333333;
 }
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled > .oo-ui-buttonElement-button:focus {
        box-shadow: inset 0 0 0 1px #347bff, 0 0 0 1px #347bff;
 }
 .oo-ui-buttonElement-framed > input.oo-ui-buttonElement-button,
 .oo-ui-buttonElement-framed.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-       line-height: 1.2em;
+       line-height: 1.2;
 }
 .oo-ui-buttonElement-framed.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
        position: absolute;
        color: #ffffff;
        border: 1px solid #dddddd;
 }
+.oo-ui-buttonElement-framed.oo-ui-widget-disabled + .oo-ui-widget-disabled > .oo-ui-buttonElement-button {
+       border-left-color: #ffffff;
+}
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button {
        color: #555555;
        background-color: #ffffff;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:focus {
        border-color: #347bff;
-       box-shadow: inset 0 0 0 1px #ffffff;
+       box-shadow: inset 0 0 0 1px #347bff, inset 0 0 0 2px #ffffff;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button {
        color: #ffffff;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:focus {
        border-color: #347bff;
-       box-shadow: inset 0 0 0 1px #ffffff;
+       box-shadow: inset 0 0 0 1px #347bff, inset 0 0 0 2px #ffffff;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button {
        color: #ffffff;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:focus {
        border-color: #d11d13;
-       box-shadow: inset 0 0 0 1px #ffffff;
+       box-shadow: inset 0 0 0 1px #d11d13, inset 0 0 0 2px #ffffff;
 }
 .oo-ui-clippableElement-clippable {
        -webkit-box-sizing: border-box;
 }
 .oo-ui-fieldLayout > .oo-ui-fieldLayout-help .oo-ui-fieldLayout-help-content {
        padding: 0.5em 0.75em;
-       line-height: 1.5em;
+       line-height: 1.5;
 }
 .oo-ui-fieldLayout:last-child {
        margin-bottom: 0;
 .oo-ui-fieldLayout-messages .oo-ui-labelWidget {
        display: table-cell;
        padding: 0;
-       line-height: 1.875em;
+       line-height: 1.875;
        vertical-align: middle;
 }
 .oo-ui-actionFieldLayout {
 }
 .oo-ui-fieldsetLayout > .oo-ui-fieldsetLayout-help .oo-ui-fieldsetLayout-help-content {
        padding: 0.5em 0.75em;
-       line-height: 1.5em;
+       line-height: 1.5;
 }
 .oo-ui-fieldsetLayout + .oo-ui-fieldsetLayout,
 .oo-ui-fieldsetLayout + .oo-ui-formLayout {
 }
 .oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-labelElement-label {
        padding-left: 2em;
-       line-height: 1.8em;
+       line-height: 1.8;
 }
 .oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-iconElement-icon {
        left: 0;
        background-color: #eeeeee;
 }
 .oo-ui-optionWidget .oo-ui-labelElement-label {
-       line-height: 1.5em;
+       line-height: 1.5;
 }
 .oo-ui-selectWidget-depressed .oo-ui-optionWidget-selected,
 .oo-ui-selectWidget-pressed .oo-ui-optionWidget-pressed,
 .oo-ui-iconWidget {
        display: inline-block;
        vertical-align: middle;
-       line-height: 2.5em;
+       line-height: 2.5;
 }
 .oo-ui-iconWidget.oo-ui-widget-disabled {
        opacity: 0.2;
 .oo-ui-indicatorWidget {
        display: inline-block;
        vertical-align: middle;
-       line-height: 2.5em;
+       line-height: 2.5;
        margin: 0.46875em;
 }
 .oo-ui-indicatorWidget.oo-ui-widget-disabled {
        border-radius: 0;
        margin-left: -1px;
 }
-.oo-ui-buttonGroupWidget .oo-ui-buttonElement-framed .oo-ui-buttonElement-button:focus {
-       z-index: 2;
-}
 .oo-ui-buttonGroupWidget .oo-ui-buttonElement-framed:first-child .oo-ui-buttonElement-button {
        border-bottom-left-radius: 2px;
        border-top-left-radius: 2px;
        background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/check-invert.svg");
        background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/check-invert.png");
 }
+.oo-ui-checkboxMultiselectInputWidget .oo-ui-fieldLayout {
+       margin-bottom: 0;
+}
+.oo-ui-checkboxMultiselectInputWidget .oo-ui-fieldLayout .oo-ui-fieldLayout-body {
+       padding: 0.25em 0;
+}
+.oo-ui-checkboxMultiselectInputWidget .oo-ui-fieldLayout .oo-ui-fieldLayout-body .oo-ui-labelElement-label {
+       line-height: 1.5;
+}
 .oo-ui-dropdownInputWidget {
        position: relative;
        vertical-align: middle;
        padding: 0.25em 0;
 }
 .oo-ui-radioSelectInputWidget .oo-ui-fieldLayout .oo-ui-fieldLayout-body .oo-ui-labelElement-label {
-       line-height: 1.5em;
+       line-height: 1.5;
 }
 .oo-ui-textInputWidget {
        position: relative;
 .oo-ui-textInputWidget textarea {
        display: block;
        width: 100%;
-       resize: none;
        -webkit-box-sizing: border-box;
           -moz-box-sizing: border-box;
                box-sizing: border-box;
 }
 .oo-ui-textInputWidget textarea {
        overflow: auto;
+       resize: none;
 }
 .oo-ui-textInputWidget [type="search"] {
        -webkit-appearance: textfield;
 .oo-ui-textInputWidget input,
 .oo-ui-textInputWidget textarea {
        padding: 0.5em;
-       line-height: 1.275em;
        margin: 0;
        font-size: inherit;
        font-family: inherit;
        color: #000000;
        border: 1px solid #cccccc;
        border-radius: 2px;
-       -webkit-box-sizing: border-box;
-          -moz-box-sizing: border-box;
-               box-sizing: border-box;
+}
+.oo-ui-textInputWidget textarea {
+       line-height: 1.275;
 }
 .oo-ui-textInputWidget .oo-ui-pendingElement-pending {
        background-color: transparent;
        border-color: #cccccc;
        box-shadow: inset 0 0 0 0.1em #cccccc;
 }
+.oo-ui-textInputWidget.oo-ui-widget-enabled :-moz-placeholder {
+       color: #595959;
+       opacity: 1;
+}
+.oo-ui-textInputWidget.oo-ui-widget-enabled ::-moz-placeholder {
+       color: #595959;
+       opacity: 1;
+}
+.oo-ui-textInputWidget.oo-ui-widget-enabled :-ms-input-placeholder {
+       color: #595959;
+}
+.oo-ui-textInputWidget.oo-ui-widget-enabled ::-webkit-input-placeholder {
+       color: #595959;
+}
 .oo-ui-textInputWidget.oo-ui-widget-enabled.oo-ui-flaggedElement-invalid input,
 .oo-ui-textInputWidget.oo-ui-widget-enabled.oo-ui-flaggedElement-invalid textarea {
        border-color: #ff0000;
 }
 .oo-ui-textInputWidget > .oo-ui-labelElement-label {
        padding: 0.4em;
-       line-height: 1.5em;
+       line-height: 1.5;
        color: #888888;
 }
 .oo-ui-textInputWidget-labelPosition-after.oo-ui-indicatorElement > .oo-ui-labelElement-label {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
+       cursor: default;
        -webkit-touch-callout: none;
        -webkit-user-select: none;
           -moz-user-select: none;
 .oo-ui-dropdownWidget-handle .oo-ui-iconElement-icon {
        position: absolute;
 }
+.oo-ui-dropdownWidget.oo-ui-widget-enabled .oo-ui-dropdownWidget-handle {
+       cursor: pointer;
+}
 .oo-ui-dropdownWidget > .oo-ui-menuSelectWidget {
        z-index: 1;
        width: 100%;
 }
-.oo-ui-dropdownWidget.oo-ui-widget-enabled .oo-ui-dropdownWidget-handle {
-       cursor: pointer;
-}
 .oo-ui-dropdownWidget:last-child {
        margin-right: 0;
 }
 .oo-ui-comboBoxInputWidget textarea {
        height: 2.35em;
 }
+.oo-ui-multioptionWidget {
+       position: relative;
+       display: block;
+}
+.oo-ui-multioptionWidget.oo-ui-widget-enabled {
+       cursor: pointer;
+}
+.oo-ui-multioptionWidget.oo-ui-widget-disabled {
+       cursor: default;
+}
+.oo-ui-multioptionWidget.oo-ui-labelElement .oo-ui-labelElement-label {
+       display: block;
+       white-space: nowrap;
+       text-overflow: ellipsis;
+       overflow: hidden;
+}
+.oo-ui-multioptionWidget .oo-ui-labelElement-label {
+       line-height: 1.5;
+}
+.oo-ui-multioptionWidget.oo-ui-widget-disabled {
+       color: #cccccc;
+}
+.oo-ui-checkboxMultioptionWidget {
+       cursor: default;
+       padding: 0.25em 0;
+}
+.oo-ui-checkboxMultioptionWidget .oo-ui-checkboxInputWidget,
+.oo-ui-checkboxMultioptionWidget.oo-ui-labelElement .oo-ui-labelElement-label {
+       display: inline-block;
+       vertical-align: middle;
+}
+.oo-ui-checkboxMultioptionWidget.oo-ui-labelElement .oo-ui-labelElement-label {
+       padding: 0.25em 0.25em 0.25em 1em;
+}
+.oo-ui-checkboxMultioptionWidget .oo-ui-checkboxInputWidget {
+       margin-right: 0;
+}
index efed6b2..2a1427b 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.17.3
+ * OOjs UI v0.17.6
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2016 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2016-05-24T22:46:32Z
+ * Date: 2016-07-12T20:26:03Z
  */
 ( function ( OO ) {
 
@@ -1634,6 +1634,18 @@ OO.ui.Theme.prototype.updateElementClasses = function ( element ) {
                .addClass( classes.on.join( ' ' ) );
 };
 
+/**
+ * Get the transition duration in milliseconds for dialogs opening/closing
+ *
+ * The dialog should be fully rendered this many milliseconds after the
+ * ready process has executed.
+ *
+ * @return {number} Transition duration in milliseconds
+ */
+OO.ui.Theme.prototype.getDialogTransitionDuration = function () {
+       return 0;
+};
+
 /**
  * The TabIndexedElement class is an attribute mixin used to add additional functionality to an
  * element created by another class. The mixin provides a ‘tabIndex’ property, which specifies the
@@ -2219,7 +2231,7 @@ OO.ui.mixin.GroupElement.prototype.aggregate = function ( events ) {
  * @chainable
  */
 OO.ui.mixin.GroupElement.prototype.addItems = function ( items, index ) {
-       var i, len, item, event, events, currentIndex,
+       var i, len, item, itemEvent, events, currentIndex,
                itemElements = [];
 
        for ( i = 0, len = items.length; i < len; i++ ) {
@@ -2237,8 +2249,8 @@ OO.ui.mixin.GroupElement.prototype.addItems = function ( items, index ) {
                // Add the item
                if ( item.connect && item.disconnect && !$.isEmptyObject( this.aggregateItemEvents ) ) {
                        events = {};
-                       for ( event in this.aggregateItemEvents ) {
-                               events[ event ] = [ 'emit', this.aggregateItemEvents[ event ], item ];
+                       for ( itemEvent in this.aggregateItemEvents ) {
+                               events[ itemEvent ] = [ 'emit', this.aggregateItemEvents[ itemEvent ], item ];
                        }
                        item.connect( this, events );
                }
@@ -2271,22 +2283,19 @@ OO.ui.mixin.GroupElement.prototype.addItems = function ( items, index ) {
  * @chainable
  */
 OO.ui.mixin.GroupElement.prototype.removeItems = function ( items ) {
-       var i, len, item, index, remove, itemEvent;
+       var i, len, item, index, events, itemEvent;
 
        // Remove specific items
        for ( i = 0, len = items.length; i < len; i++ ) {
                item = items[ i ];
                index = this.items.indexOf( item );
                if ( index !== -1 ) {
-                       if (
-                               item.connect && item.disconnect &&
-                               !$.isEmptyObject( this.aggregateItemEvents )
-                       ) {
-                               remove = {};
-                               if ( Object.prototype.hasOwnProperty.call( this.aggregateItemEvents, itemEvent ) ) {
-                                       remove[ itemEvent ] = [ 'emit', this.aggregateItemEvents[ itemEvent ], item ];
+                       if ( item.connect && item.disconnect && !$.isEmptyObject( this.aggregateItemEvents ) ) {
+                               events = {};
+                               for ( itemEvent in this.aggregateItemEvents ) {
+                                       events[ itemEvent ] = [ 'emit', this.aggregateItemEvents[ itemEvent ], item ];
                                }
-                               item.disconnect( this, remove );
+                               item.disconnect( this, events );
                        }
                        item.setElementGroup( null );
                        this.items.splice( index, 1 );
@@ -3730,6 +3739,7 @@ OO.ui.IndicatorWidget.static.tagName = 'span';
  * @class
  * @extends OO.ui.Widget
  * @mixins OO.ui.mixin.LabelElement
+ * @mixins OO.ui.mixin.TitledElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
@@ -4697,19 +4707,19 @@ OO.ui.PopupButtonWidget.prototype.onAction = function () {
  * @private
  * @abstract
  * @class
- * @extends OO.ui.mixin.GroupElement
+ * @mixins OO.ui.mixin.GroupElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
  */
 OO.ui.mixin.GroupWidget = function OoUiMixinGroupWidget( config ) {
-       // Parent constructor
-       OO.ui.mixin.GroupWidget.parent.call( this, config );
+       // Mixin constructors
+       OO.ui.mixin.GroupElement.call( this, config );
 };
 
 /* Setup */
 
-OO.inheritClass( OO.ui.mixin.GroupWidget, OO.ui.mixin.GroupElement );
+OO.mixinClass( OO.ui.mixin.GroupWidget, OO.ui.mixin.GroupElement );
 
 /* Methods */
 
@@ -5059,16 +5069,8 @@ OO.ui.SelectWidget = function OoUiSelectWidget( config ) {
 /* Setup */
 
 OO.inheritClass( OO.ui.SelectWidget, OO.ui.Widget );
-
-// Need to mixin base class as well
-OO.mixinClass( OO.ui.SelectWidget, OO.ui.mixin.GroupElement );
 OO.mixinClass( OO.ui.SelectWidget, OO.ui.mixin.GroupWidget );
 
-/* Static */
-OO.ui.SelectWidget.static.passAllFilter = function () {
-       return true;
-};
-
 /* Events */
 
 /**
@@ -5129,16 +5131,28 @@ OO.ui.SelectWidget.static.passAllFilter = function () {
  * @param {jQuery.Event} event
  */
 OO.ui.SelectWidget.prototype.onFocus = function ( event ) {
+       var item;
        if ( event.target === this.$element[ 0 ] ) {
                // This widget was focussed, e.g. by the user tabbing to it.
                // The styles for focus state depend on one of the items being selected.
                if ( !this.getSelectedItem() ) {
-                       this.selectItem( this.getFirstSelectableItem() );
+                       item = this.getFirstSelectableItem();
                }
        } else {
                // One of the options got focussed (and the event bubbled up here).
                // They can't be tabbed to, but they can be activated using accesskeys.
-               this.selectItem( this.getTargetItem( event ) );
+               item = this.getTargetItem( event );
+       }
+
+       if ( item ) {
+               if ( item.constructor.static.highlightable ) {
+                       this.highlightItem( item );
+               } else {
+                       this.selectItem( item );
+               }
+       }
+
+       if ( event.target !== this.$element[ 0 ] ) {
                this.$element.focus();
        }
 };
@@ -5394,7 +5408,7 @@ OO.ui.SelectWidget.prototype.onKeyPress = function ( e ) {
                item = this.getRelativeSelectableItem( item, 1, filter );
        }
        if ( item ) {
-               if ( item.constructor.static.highlightable ) {
+               if ( this.isVisible() && item.constructor.static.highlightable ) {
                        this.highlightItem( item );
                } else {
                        this.chooseItem( item );
@@ -5720,7 +5734,7 @@ OO.ui.SelectWidget.prototype.chooseItem = function ( item ) {
  *
  * @param {OO.ui.OptionWidget|null} item Item to describe the start position, or `null` to start at the beginning of the array.
  * @param {number} direction Direction to move in: -1 to move backward, 1 to move forward
- * @param {Function} filter Only consider items for which this function returns
+ * @param {Function} [filter] Only consider items for which this function returns
  *  true. Function takes an OO.ui.OptionWidget and returns a boolean.
  * @return {OO.ui.OptionWidget|null} Item at position, `null` if there are no items in the select
  */
@@ -5729,10 +5743,6 @@ OO.ui.SelectWidget.prototype.getRelativeSelectableItem = function ( item, direct
                increase = direction > 0 ? 1 : -1,
                len = this.items.length;
 
-       if ( !$.isFunction( filter ) ) {
-               filter = OO.ui.SelectWidget.static.passAllFilter;
-       }
-
        if ( item instanceof OO.ui.OptionWidget ) {
                currentIndex = this.items.indexOf( item );
                nextIndex = ( currentIndex + increase + len ) % len;
@@ -5744,7 +5754,10 @@ OO.ui.SelectWidget.prototype.getRelativeSelectableItem = function ( item, direct
 
        for ( i = 0; i < len; i++ ) {
                item = this.items[ nextIndex ];
-               if ( item instanceof OO.ui.OptionWidget && item.isSelectable() && filter( item ) ) {
+               if (
+                       item instanceof OO.ui.OptionWidget && item.isSelectable() &&
+                       ( !filter || filter( item ) )
+               ) {
                        return item;
                }
                nextIndex = ( nextIndex + increase + len ) % len;
@@ -5759,16 +5772,7 @@ OO.ui.SelectWidget.prototype.getRelativeSelectableItem = function ( item, direct
  * @return {OO.ui.OptionWidget|null} Item, `null` if there aren't any selectable items
  */
 OO.ui.SelectWidget.prototype.getFirstSelectableItem = function () {
-       var i, len, item;
-
-       for ( i = 0, len = this.items.length; i < len; i++ ) {
-               item = this.items[ i ];
-               if ( item instanceof OO.ui.OptionWidget && item.isSelectable() ) {
-                       return item;
-               }
-       }
-
-       return null;
+       return this.getRelativeSelectableItem( null, 1 );
 };
 
 /**
@@ -6357,7 +6361,10 @@ OO.ui.DropdownWidget = function OoUiDropdownWidget( config ) {
        // Events
        this.$handle.on( {
                click: this.onClick.bind( this ),
-               keydown: this.onKeyDown.bind( this )
+               keydown: this.onKeyDown.bind( this ),
+               // Hack? Handle type-to-search when menu is not expanded and not handling its own events
+               keypress: this.menu.onKeyPressHandler,
+               blur: this.menu.clearKeyPressBuffer.bind( this.menu )
        } );
        this.menu.connect( this, { select: 'onMenuSelect' } );
 
@@ -6593,6 +6600,428 @@ OO.ui.RadioSelectWidget = function OoUiRadioSelectWidget( config ) {
 OO.inheritClass( OO.ui.RadioSelectWidget, OO.ui.SelectWidget );
 OO.mixinClass( OO.ui.RadioSelectWidget, OO.ui.mixin.TabIndexedElement );
 
+/**
+ * MultioptionWidgets are special elements that can be selected and configured with data. The
+ * data is often unique for each option, but it does not have to be. MultioptionWidgets are used
+ * with OO.ui.SelectWidget to create a selection of mutually exclusive options. For more information
+ * and examples, please see the [OOjs UI documentation on MediaWiki][1].
+ *
+ * [1]: https://www.mediawiki.org/wiki/OOjs_UI/Widgets/Selects_and_Multioptions
+ *
+ * @class
+ * @extends OO.ui.Widget
+ * @mixins OO.ui.mixin.ItemWidget
+ * @mixins OO.ui.mixin.LabelElement
+ *
+ * @constructor
+ * @param {Object} [config] Configuration options
+ * @cfg {boolean} [selected=false] Whether the option is initially selected
+ */
+OO.ui.MultioptionWidget = function OoUiMultioptionWidget( config ) {
+       // Configuration initialization
+       config = config || {};
+
+       // Parent constructor
+       OO.ui.MultioptionWidget.parent.call( this, config );
+
+       // Mixin constructors
+       OO.ui.mixin.ItemWidget.call( this );
+       OO.ui.mixin.LabelElement.call( this, config );
+
+       // Properties
+       this.selected = null;
+
+       // Initialization
+       this.$element
+               .addClass( 'oo-ui-multioptionWidget' )
+               .append( this.$label );
+       this.setSelected( config.selected );
+};
+
+/* Setup */
+
+OO.inheritClass( OO.ui.MultioptionWidget, OO.ui.Widget );
+OO.mixinClass( OO.ui.MultioptionWidget, OO.ui.mixin.ItemWidget );
+OO.mixinClass( OO.ui.MultioptionWidget, OO.ui.mixin.LabelElement );
+
+/* Events */
+
+/**
+ * @event change
+ *
+ * A change event is emitted when the selected state of the option changes.
+ *
+ * @param {boolean} selected Whether the option is now selected
+ */
+
+/* Methods */
+
+/**
+ * Check if the option is selected.
+ *
+ * @return {boolean} Item is selected
+ */
+OO.ui.MultioptionWidget.prototype.isSelected = function () {
+       return this.selected;
+};
+
+/**
+ * Set the option’s selected state. In general, all modifications to the selection
+ * should be handled by the SelectWidget’s {@link OO.ui.SelectWidget#selectItem selectItem( [item] )}
+ * method instead of this method.
+ *
+ * @param {boolean} [state=false] Select option
+ * @chainable
+ */
+OO.ui.MultioptionWidget.prototype.setSelected = function ( state ) {
+       state = !!state;
+       if ( this.selected !== state ) {
+               this.selected = state;
+               this.emit( 'change', state );
+               this.$element.toggleClass( 'oo-ui-multioptionWidget-selected', state );
+       }
+       return this;
+};
+
+/**
+ * MultiselectWidget allows selecting multiple options from a list.
+ *
+ * For more information about menus and options, please see the [OOjs UI documentation on MediaWiki][1].
+ *
+ * [1]: https://www.mediawiki.org/wiki/OOjs_UI/Widgets/Selects_and_Options#Menu_selects_and_options
+ *
+ * @class
+ * @abstract
+ * @extends OO.ui.Widget
+ * @mixins OO.ui.mixin.GroupWidget
+ *
+ * @constructor
+ * @param {Object} [config] Configuration options
+ * @cfg {OO.ui.MultioptionWidget[]} [items] An array of options to add to the multiselect.
+ */
+OO.ui.MultiselectWidget = function OoUiMultiselectWidget( config ) {
+       // Parent constructor
+       OO.ui.MultiselectWidget.parent.call( this, config );
+
+       // Configuration initialization
+       config = config || {};
+
+       // Mixin constructors
+       OO.ui.mixin.GroupWidget.call( this, config );
+
+       // Events
+       this.aggregate( { change: 'select' } );
+       // This is mostly for compatibility with CapsuleMultiselectWidget... normally, 'change' is emitted
+       // by GroupElement only when items are added/removed
+       this.connect( this, { select: [ 'emit', 'change' ] } );
+
+       // Initialization
+       if ( config.items ) {
+               this.addItems( config.items );
+       }
+       this.$group.addClass( 'oo-ui-multiselectWidget-group' );
+       this.$element.addClass( 'oo-ui-multiselectWidget' )
+               .append( this.$group );
+};
+
+/* Setup */
+
+OO.inheritClass( OO.ui.MultiselectWidget, OO.ui.Widget );
+OO.mixinClass( OO.ui.MultiselectWidget, OO.ui.mixin.GroupWidget );
+
+/* Events */
+
+/**
+ * @event change
+ *
+ * A change event is emitted when the set of items changes, or an item is selected or deselected.
+ */
+
+/**
+ * @event select
+ *
+ * A select event is emitted when an item is selected or deselected.
+ */
+
+/* Methods */
+
+/**
+ * Get options that are selected.
+ *
+ * @return {OO.ui.MultioptionWidget[]} Selected options
+ */
+OO.ui.MultiselectWidget.prototype.getSelectedItems = function () {
+       return this.items.filter( function ( item ) {
+               return item.isSelected();
+       } );
+};
+
+/**
+ * Get the data of options that are selected.
+ *
+ * @return {Object[]|string[]} Values of selected options
+ */
+OO.ui.MultiselectWidget.prototype.getSelectedItemsData = function () {
+       return this.getSelectedItems().map( function ( item ) {
+               return item.data;
+       } );
+};
+
+/**
+ * Select options by reference. Options not mentioned in the `items` array will be deselected.
+ *
+ * @param {OO.ui.MultioptionWidget[]} items Items to select
+ * @chainable
+ */
+OO.ui.MultiselectWidget.prototype.selectItems = function ( items ) {
+       this.items.forEach( function ( item ) {
+               var selected = items.indexOf( item ) !== -1;
+               item.setSelected( selected );
+       } );
+       return this;
+};
+
+/**
+ * Select items by their data. Options not mentioned in the `datas` array will be deselected.
+ *
+ * @param {Object[]|string[]} datas Values of items to select
+ * @chainable
+ */
+OO.ui.MultiselectWidget.prototype.selectItemsByData = function ( datas ) {
+       var items,
+               widget = this;
+       items = datas.map( function ( data ) {
+               return widget.getItemFromData( data );
+       } );
+       this.selectItems( items );
+       return this;
+};
+
+/**
+ * CheckboxMultioptionWidget is an option widget that looks like a checkbox.
+ * The class is used with OO.ui.CheckboxMultiselectWidget to create a selection of checkbox options.
+ * Please see the [OOjs UI documentation on MediaWiki] [1] for more information.
+ *
+ * [1]: https://www.mediawiki.org/wiki/OOjs_UI/Widgets/Selects_and_Options#Button_selects_and_option
+ *
+ * @class
+ * @extends OO.ui.MultioptionWidget
+ *
+ * @constructor
+ * @param {Object} [config] Configuration options
+ */
+OO.ui.CheckboxMultioptionWidget = function OoUiCheckboxMultioptionWidget( config ) {
+       // Configuration initialization
+       config = config || {};
+
+       // Properties (must be done before parent constructor which calls #setDisabled)
+       this.checkbox = new OO.ui.CheckboxInputWidget();
+
+       // Parent constructor
+       OO.ui.CheckboxMultioptionWidget.parent.call( this, config );
+
+       // Events
+       this.checkbox.on( 'change', this.onCheckboxChange.bind( this ) );
+       this.$element.on( 'keydown', this.onKeyDown.bind( this ) );
+
+       // Initialization
+       this.$element
+               .addClass( 'oo-ui-checkboxMultioptionWidget' )
+               .prepend( this.checkbox.$element );
+};
+
+/* Setup */
+
+OO.inheritClass( OO.ui.CheckboxMultioptionWidget, OO.ui.MultioptionWidget );
+
+/* Static Properties */
+
+OO.ui.CheckboxMultioptionWidget.static.tagName = 'label';
+
+/* Methods */
+
+/**
+ * Handle checkbox selected state change.
+ *
+ * @private
+ */
+OO.ui.CheckboxMultioptionWidget.prototype.onCheckboxChange = function () {
+       this.setSelected( this.checkbox.isSelected() );
+};
+
+/**
+ * @inheritdoc
+ */
+OO.ui.CheckboxMultioptionWidget.prototype.setSelected = function ( state ) {
+       OO.ui.CheckboxMultioptionWidget.parent.prototype.setSelected.call( this, state );
+       this.checkbox.setSelected( state );
+       return this;
+};
+
+/**
+ * @inheritdoc
+ */
+OO.ui.CheckboxMultioptionWidget.prototype.setDisabled = function ( disabled ) {
+       OO.ui.CheckboxMultioptionWidget.parent.prototype.setDisabled.call( this, disabled );
+       this.checkbox.setDisabled( this.isDisabled() );
+       return this;
+};
+
+/**
+ * Focus the widget.
+ */
+OO.ui.CheckboxMultioptionWidget.prototype.focus = function () {
+       this.checkbox.focus();
+};
+
+/**
+ * Handle key down events.
+ *
+ * @protected
+ * @param {jQuery.Event} e
+ */
+OO.ui.CheckboxMultioptionWidget.prototype.onKeyDown = function ( e ) {
+       var
+               element = this.getElementGroup(),
+               nextItem;
+
+       if ( e.keyCode === OO.ui.Keys.LEFT || e.keyCode === OO.ui.Keys.UP ) {
+               nextItem = element.getRelativeFocusableItem( this, -1 );
+       } else if ( e.keyCode === OO.ui.Keys.RIGHT || e.keyCode === OO.ui.Keys.DOWN ) {
+               nextItem = element.getRelativeFocusableItem( this, 1 );
+       }
+
+       if ( nextItem ) {
+               e.preventDefault();
+               nextItem.focus();
+       }
+};
+
+/**
+ * CheckboxMultiselectWidget is a {@link OO.ui.MultiselectWidget multiselect widget} that contains
+ * checkboxes and is used together with OO.ui.CheckboxMultioptionWidget. The
+ * CheckboxMultiselectWidget provides an interface for adding, removing and selecting options.
+ * Please see the [OOjs UI documentation on MediaWiki][1] for more information.
+ *
+ * If you want to use this within a HTML form, such as a OO.ui.FormLayout, use
+ * OO.ui.CheckboxMultiselectInputWidget instead.
+ *
+ *     @example
+ *     // A CheckboxMultiselectWidget with CheckboxMultioptions.
+ *     var option1 = new OO.ui.CheckboxMultioptionWidget( {
+ *         data: 'a',
+ *         selected: true,
+ *         label: 'Selected checkbox'
+ *     } );
+ *
+ *     var option2 = new OO.ui.CheckboxMultioptionWidget( {
+ *         data: 'b',
+ *         label: 'Unselected checkbox'
+ *     } );
+ *
+ *     var multiselect=new OO.ui.CheckboxMultiselectWidget( {
+ *         items: [ option1, option2 ]
+ *      } );
+ *
+ *     $( 'body' ).append( multiselect.$element );
+ *
+ * [1]: https://www.mediawiki.org/wiki/OOjs_UI/Widgets/Selects_and_Options
+ *
+ * @class
+ * @extends OO.ui.MultiselectWidget
+ *
+ * @constructor
+ * @param {Object} [config] Configuration options
+ */
+OO.ui.CheckboxMultiselectWidget = function OoUiCheckboxMultiselectWidget( config ) {
+       // Parent constructor
+       OO.ui.CheckboxMultiselectWidget.parent.call( this, config );
+
+       // Properties
+       this.$lastClicked = null;
+
+       // Events
+       this.$group.on( 'click', this.onClick.bind( this ) );
+
+       // Initialization
+       this.$element
+               .addClass( 'oo-ui-checkboxMultiselectWidget' );
+};
+
+/* Setup */
+
+OO.inheritClass( OO.ui.CheckboxMultiselectWidget, OO.ui.MultiselectWidget );
+
+/* Methods */
+
+/**
+ * Get an option by its position relative to the specified item (or to the start of the option array,
+ * if item is `null`). The direction in which to search through the option array is specified with a
+ * number: -1 for reverse (the default) or 1 for forward. The method will return an option, or
+ * `null` if there are no options in the array.
+ *
+ * @param {OO.ui.CheckboxMultioptionWidget|null} item Item to describe the start position, or `null` to start at the beginning of the array.
+ * @param {number} direction Direction to move in: -1 to move backward, 1 to move forward
+ * @return {OO.ui.CheckboxMultioptionWidget|null} Item at position, `null` if there are no items in the select
+ */
+OO.ui.CheckboxMultiselectWidget.prototype.getRelativeFocusableItem = function ( item, direction ) {
+       var currentIndex, nextIndex, i,
+               increase = direction > 0 ? 1 : -1,
+               len = this.items.length;
+
+       if ( item ) {
+               currentIndex = this.items.indexOf( item );
+               nextIndex = ( currentIndex + increase + len ) % len;
+       } else {
+               // If no item is selected and moving forward, start at the beginning.
+               // If moving backward, start at the end.
+               nextIndex = direction > 0 ? 0 : len - 1;
+       }
+
+       for ( i = 0; i < len; i++ ) {
+               item = this.items[ nextIndex ];
+               if ( item && !item.isDisabled() ) {
+                       return item;
+               }
+               nextIndex = ( nextIndex + increase + len ) % len;
+       }
+       return null;
+};
+
+/**
+ * Handle click events on checkboxes.
+ *
+ * @param {jQuery.Event} e
+ */
+OO.ui.CheckboxMultiselectWidget.prototype.onClick = function ( e ) {
+       var $options, checked,
+               $lastClicked = this.$lastClicked,
+               $nowClicked = $( e.target ).closest( '.oo-ui-checkboxMultioptionWidget' )
+                       .not( '.oo-ui-widget-disabled' );
+
+       // Allow selecting multiple options at once by Shift-clicking them
+       if ( $lastClicked && $nowClicked.length && e.shiftKey ) {
+               $options = this.$group.find( '.oo-ui-checkboxMultioptionWidget' );
+               checked = $nowClicked.find( 'input' ).prop( 'checked' );
+
+               $options
+                       .slice(
+                               Math.min( $options.index( $lastClicked ), $options.index( $nowClicked ) ),
+                               Math.max( $options.index( $lastClicked ), $options.index( $nowClicked ) ) + 1
+                       )
+                       .find( 'input' )
+                       .filter( function () {
+                               return !this.disabled;
+                       } )
+                       .prop( 'checked', checked )
+                       .trigger( 'change' );
+       }
+
+       if ( $nowClicked.length ) {
+               this.$lastClicked = $nowClicked;
+       }
+};
+
 /**
  * Element that will stick under a specified container, even when it is inserted elsewhere in the
  * document (for example, in a OO.ui.Window's $overlay).
@@ -7164,7 +7593,7 @@ OO.ui.InputWidget.prototype.restorePreInfuseState = function ( state ) {
  * ButtonInputWidget is used to submit HTML forms and is intended to be used within
  * a OO.ui.FormLayout. If you do not need the button to work with HTML forms, you probably
  * want to use OO.ui.ButtonWidget instead. Button input widgets can be rendered as either an
- * HTML `<button/>` (the default) or an HTML `<input/>` tags. See the
+ * HTML `<button>` (the default) or an HTML `<input>` tags. See the
  * [OOjs UI documentation on MediaWiki] [1] for more information.
  *
  *     @example
@@ -7189,8 +7618,8 @@ OO.ui.InputWidget.prototype.restorePreInfuseState = function ( state ) {
  * @constructor
  * @param {Object} [config] Configuration options
  * @cfg {string} [type='button'] The value of the HTML `'type'` attribute: 'button', 'submit' or 'reset'.
- * @cfg {boolean} [useInputTag=false] Use an `<input/>` tag instead of a `<button/>` tag, the default.
- *  Widgets configured to be an `<input/>` do not support {@link #icon icons} and {@link #indicator indicators},
+ * @cfg {boolean} [useInputTag=false] Use an `<input>` tag instead of a `<button>` tag, the default.
+ *  Widgets configured to be an `<input>` do not support {@link #icon icons} and {@link #indicator indicators},
  *  non-plaintext {@link #label labels}, or {@link #value values}. In general, useInputTag should only
  *  be set to `true` when there’s need to support IE 6 in a form with multiple buttons.
  */
@@ -7255,7 +7684,7 @@ OO.ui.ButtonInputWidget.prototype.getInputElement = function ( config ) {
 /**
  * Set label value.
  *
- * If #useInputTag is `true`, the label is set as the `value` of the `<input/>` tag.
+ * If #useInputTag is `true`, the label is set as the `value` of the `<input>` tag.
  *
  * @param {jQuery|string|Function|null} label Label nodes, text, a function that returns nodes or
  *  text, or `null` for no label
@@ -7281,7 +7710,7 @@ OO.ui.ButtonInputWidget.prototype.setLabel = function ( label ) {
 /**
  * Set the value of the input.
  *
- * This method is disabled for button inputs configured as {@link #useInputTag <input/> tags}, as
+ * This method is disabled for button inputs configured as {@link #useInputTag <input> tags}, as
  * they do not support {@link #value values}.
  *
  * @param {string} value New value
@@ -7858,6 +8287,186 @@ OO.ui.RadioSelectInputWidget.prototype.setOptions = function ( options ) {
        return this;
 };
 
+/**
+ * CheckboxMultiselectInputWidget is a
+ * {@link OO.ui.CheckboxMultiselectWidget CheckboxMultiselectWidget} intended to be used within a
+ * HTML form, such as a OO.ui.FormLayout. The selected values are synchronized with the value of
+ * HTML `<input type=checkbox>` tags. Please see the [OOjs UI documentation on MediaWiki][1] for
+ * more information about input widgets.
+ *
+ *     @example
+ *     // Example: A CheckboxMultiselectInputWidget with three options
+ *     var multiselectInput = new OO.ui.CheckboxMultiselectInputWidget( {
+ *         options: [
+ *             { data: 'a', label: 'First' },
+ *             { data: 'b', label: 'Second'},
+ *             { data: 'c', label: 'Third' }
+ *         ]
+ *     } );
+ *     $( 'body' ).append( multiselectInput.$element );
+ *
+ * [1]: https://www.mediawiki.org/wiki/OOjs_UI/Widgets/Inputs
+ *
+ * @class
+ * @extends OO.ui.InputWidget
+ *
+ * @constructor
+ * @param {Object} [config] Configuration options
+ * @cfg {Object[]} [options=[]] Array of menu options in the format `{ data: …, label: … }`
+ */
+OO.ui.CheckboxMultiselectInputWidget = function OoUiCheckboxMultiselectInputWidget( config ) {
+       // Configuration initialization
+       config = config || {};
+
+       // Properties (must be done before parent constructor which calls #setDisabled)
+       this.checkboxMultiselectWidget = new OO.ui.CheckboxMultiselectWidget();
+
+       // Parent constructor
+       OO.ui.CheckboxMultiselectInputWidget.parent.call( this, config );
+
+       // Properties
+       this.inputName = config.name;
+
+       // Initialization
+       this.$element
+               .addClass( 'oo-ui-checkboxMultiselectInputWidget' )
+               .append( this.checkboxMultiselectWidget.$element );
+       // We don't use this.$input, but rather the CheckboxInputWidgets inside each option
+       this.$input.detach();
+       this.setOptions( config.options || [] );
+       // Have to repeat this from parent, as we need options to be set up for this to make sense
+       this.setValue( config.value );
+};
+
+/* Setup */
+
+OO.inheritClass( OO.ui.CheckboxMultiselectInputWidget, OO.ui.InputWidget );
+
+/* Static Properties */
+
+OO.ui.CheckboxMultiselectInputWidget.static.supportsSimpleLabel = false;
+
+/* Static Methods */
+
+/**
+ * @inheritdoc
+ */
+OO.ui.CheckboxMultiselectInputWidget.static.gatherPreInfuseState = function ( node, config ) {
+       var state = OO.ui.CheckboxMultiselectInputWidget.parent.static.gatherPreInfuseState( node, config );
+       state.value = $( node ).find( '.oo-ui-checkboxInputWidget .oo-ui-inputWidget-input:checked' )
+               .toArray().map( function ( el ) { return el.value; } );
+       return state;
+};
+
+/**
+ * @inheritdoc
+ */
+OO.ui.CheckboxMultiselectInputWidget.static.reusePreInfuseDOM = function ( node, config ) {
+       config = OO.ui.CheckboxMultiselectInputWidget.parent.static.reusePreInfuseDOM( node, config );
+       // Cannot reuse the `<input type=checkbox>` set
+       delete config.$input;
+       return config;
+};
+
+/* Methods */
+
+/**
+ * @inheritdoc
+ * @protected
+ */
+OO.ui.CheckboxMultiselectInputWidget.prototype.getInputElement = function () {
+       // Actually unused
+       return $( '<div>' );
+};
+
+/**
+ * @inheritdoc
+ */
+OO.ui.CheckboxMultiselectInputWidget.prototype.getValue = function () {
+       var value = this.$element.find( '.oo-ui-checkboxInputWidget .oo-ui-inputWidget-input:checked' )
+               .toArray().map( function ( el ) { return el.value; } );
+       if ( this.value !== value ) {
+               this.setValue( value );
+       }
+       return this.value;
+};
+
+/**
+ * @inheritdoc
+ */
+OO.ui.CheckboxMultiselectInputWidget.prototype.setValue = function ( value ) {
+       value = this.cleanUpValue( value );
+       this.checkboxMultiselectWidget.selectItemsByData( value );
+       OO.ui.CheckboxMultiselectInputWidget.parent.prototype.setValue.call( this, value );
+       return this;
+};
+
+/**
+ * Clean up incoming value.
+ *
+ * @param {string[]} value Original value
+ * @return {string[]} Cleaned up value
+ */
+OO.ui.CheckboxMultiselectInputWidget.prototype.cleanUpValue = function ( value ) {
+       var i, singleValue,
+               cleanValue = [];
+       if ( !Array.isArray( value ) ) {
+               return cleanValue;
+       }
+       for ( i = 0; i < value.length; i++ ) {
+               singleValue =
+                       OO.ui.CheckboxMultiselectInputWidget.parent.prototype.cleanUpValue.call( this, value[ i ] );
+               // Remove options that we don't have here
+               if ( !this.checkboxMultiselectWidget.getItemFromData( singleValue ) ) {
+                       continue;
+               }
+               cleanValue.push( singleValue );
+       }
+       return cleanValue;
+};
+
+/**
+ * @inheritdoc
+ */
+OO.ui.CheckboxMultiselectInputWidget.prototype.setDisabled = function ( state ) {
+       this.checkboxMultiselectWidget.setDisabled( state );
+       OO.ui.CheckboxMultiselectInputWidget.parent.prototype.setDisabled.call( this, state );
+       return this;
+};
+
+/**
+ * Set the options available for this input.
+ *
+ * @param {Object[]} options Array of menu options in the format `{ data: …, label: … }`
+ * @chainable
+ */
+OO.ui.CheckboxMultiselectInputWidget.prototype.setOptions = function ( options ) {
+       var widget = this;
+
+       // Rebuild the checkboxMultiselectWidget menu
+       this.checkboxMultiselectWidget
+               .clearItems()
+               .addItems( options.map( function ( opt ) {
+                       var optValue, item;
+                       optValue =
+                               OO.ui.CheckboxMultiselectInputWidget.parent.prototype.cleanUpValue.call( widget, opt.data );
+                       item = new OO.ui.CheckboxMultioptionWidget( {
+                               data: optValue,
+                               label: opt.label !== undefined ? opt.label : optValue
+                       } );
+                       // Set the 'name' and 'value' for form submission
+                       item.checkbox.$input.attr( 'name', widget.inputName );
+                       item.checkbox.setValue( optValue );
+                       return item;
+               } ) );
+
+       // Re-set the value, checking the checkboxes as needed.
+       // This will also get rid of any stale options that we just removed.
+       this.setValue( this.getValue() );
+
+       return this;
+};
+
 /**
  * TextInputWidgets, like HTML text inputs, can be configured with options that customize the
  * size of the field as well as its presentation. In addition, these widgets can be configured
index 581c512..d0de9df 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.17.3
+ * OOjs UI v0.17.6
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2016 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2016-05-24T22:46:32Z
+ * Date: 2016-07-12T20:26:03Z
  */
 ( function ( OO ) {
 
@@ -72,6 +72,13 @@ OO.ui.MediaWikiTheme.prototype.getElementClasses = function ( element ) {
        return classes;
 };
 
+/**
+ * @inheritdoc
+ */
+OO.ui.MediaWikiTheme.prototype.getDialogTransitionDuration = function () {
+       return 250;
+};
+
 /* Instantiation */
 
 OO.ui.theme = new OO.ui.MediaWikiTheme();
index 338ed31..e758f82 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.17.3
+ * OOjs UI v0.17.6
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2016 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2016-05-24T22:46:36Z
+ * Date: 2016-07-12T20:26:07Z
  */
 .oo-ui-popupTool .oo-ui-popupWidget-popup,
 .oo-ui-popupTool .oo-ui-popupWidget-anchor {
 }
 .oo-ui-toolGroup .oo-ui-tool-link {
        text-decoration: none;
+       cursor: pointer;
+}
+.oo-ui-toolGroup.oo-ui-widget-disabled .oo-ui-tool-link,
+.oo-ui-toolGroup .oo-ui-widget-disabled > .oo-ui-tool-link {
+       outline: 0;
+       cursor: default;
 }
 .oo-ui-toolbar-narrow .oo-ui-toolGroup + .oo-ui-toolGroup {
        margin-left: 0;
@@ -69,9 +75,6 @@
 .oo-ui-barToolGroup > .oo-ui-labelElement-label {
        display: none;
 }
-.oo-ui-barToolGroup.oo-ui-widget-enabled > .oo-ui-toolGroup-tools > .oo-ui-tool > .oo-ui-tool-link {
-       cursor: pointer;
-}
 .oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool {
        display: inline-block;
        position: relative;
 .oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool.oo-ui-iconElement.oo-ui-tool-with-label > .oo-ui-tool-link .oo-ui-tool-title {
        display: inline;
 }
-.oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool.oo-ui-widget-disabled > .oo-ui-tool-link {
-       outline: 0;
-       cursor: default;
-}
 .oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool {
        margin: -1px 0 -1px -1px;
        border: 1px solid transparent;
 .oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-accel {
        text-align: right;
 }
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-accel:not(:empty) {
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-accel:not( :empty ) {
        padding-left: 3em;
 }
 .oo-ui-toolbar-narrow .oo-ui-popupToolGroup {
           -moz-box-sizing: border-box;
                box-sizing: border-box;
 }
-.oo-ui-listToolGroup .oo-ui-tool-link {
-       cursor: pointer;
-}
-.oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link {
-       cursor: default;
-}
 .oo-ui-listToolGroup .oo-ui-toolGroup-tools {
        padding: 0.3125em;
 }
 .oo-ui-menuToolGroup .oo-ui-tool {
        display: block;
 }
-.oo-ui-menuToolGroup .oo-ui-tool-link {
-       cursor: pointer;
-}
-.oo-ui-menuToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link {
-       cursor: default;
-}
 .oo-ui-menuToolGroup .oo-ui-popupToolGroup-handle {
        min-width: 10em;
 }
        clear: both;
 }
 .oo-ui-toolbar-bar {
-       line-height: 1em;
+       line-height: 1;
        position: relative;
 }
 .oo-ui-toolbar-actions {
index c54e833..0c007bb 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.17.3
+ * OOjs UI v0.17.6
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2016 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2016-05-24T22:46:36Z
+ * Date: 2016-07-12T20:26:07Z
  */
 .oo-ui-popupTool .oo-ui-popupWidget-popup,
 .oo-ui-popupTool .oo-ui-popupWidget-anchor {
@@ -33,7 +33,7 @@
        width: 1.875em;
 }
 .oo-ui-toolGroupTool > .oo-ui-popupToolGroup.oo-ui-labelElement > .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
-       line-height: 2.1em;
+       line-height: 2.1;
 }
 .oo-ui-toolGroup {
        display: inline-block;
 }
 .oo-ui-toolGroup .oo-ui-tool-link {
        text-decoration: none;
+       cursor: pointer;
+}
+.oo-ui-toolGroup.oo-ui-widget-disabled .oo-ui-tool-link,
+.oo-ui-toolGroup .oo-ui-widget-disabled > .oo-ui-tool-link {
+       outline: 0;
+       cursor: default;
 }
 .oo-ui-toolbar-narrow .oo-ui-toolGroup + .oo-ui-toolGroup {
        margin-left: 0;
@@ -57,9 +63,6 @@
 .oo-ui-barToolGroup > .oo-ui-labelElement-label {
        display: none;
 }
-.oo-ui-barToolGroup.oo-ui-widget-enabled > .oo-ui-toolGroup-tools > .oo-ui-tool > .oo-ui-tool-link {
-       cursor: pointer;
-}
 .oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool {
        display: inline-block;
        position: relative;
 .oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool.oo-ui-iconElement.oo-ui-tool-with-label > .oo-ui-tool-link .oo-ui-tool-title {
        display: inline;
 }
-.oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool.oo-ui-widget-disabled > .oo-ui-tool-link {
-       outline: 0;
-       cursor: default;
-}
 .oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool > .oo-ui-tool-link {
        height: 1.875em;
        padding: 0.625em;
@@ -94,7 +93,7 @@
        width: 1.875em;
 }
 .oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool > .oo-ui-tool-link .oo-ui-tool-title {
-       line-height: 2.1em;
+       line-height: 2.1;
        padding: 0 0.4em;
 }
 .oo-ui-barToolGroup.oo-ui-widget-enabled > .oo-ui-toolGroup-tools > .oo-ui-tool.oo-ui-widget-enabled:hover {
 .oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-accel {
        text-align: right;
 }
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-accel:not(:empty) {
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-accel:not( :empty ) {
        padding-left: 3em;
 }
 .oo-ui-toolbar-narrow .oo-ui-popupToolGroup {
        min-width: 3.75em;
 }
 .oo-ui-popupToolGroup.oo-ui-labelElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
-       line-height: 2.6em;
+       line-height: 2.6;
        margin: 0 1em;
 }
 .oo-ui-toolbar-narrow .oo-ui-popupToolGroup.oo-ui-labelElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
        left: 0;
 }
 .oo-ui-popupToolGroup-header {
-       line-height: 2.6em;
+       line-height: 2.6;
        margin: 0 0.6em;
        font-weight: bold;
 }
 }
 .oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-accel,
 .oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title {
-       line-height: 2em;
+       line-height: 2;
 }
 .oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-accel {
        color: #888888;
           -moz-box-sizing: border-box;
                box-sizing: border-box;
 }
-.oo-ui-listToolGroup .oo-ui-tool-link {
-       cursor: pointer;
-}
-.oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link {
-       cursor: default;
-}
 .oo-ui-listToolGroup.oo-ui-popupToolGroup-active {
        border-color: rgba(0, 0, 0, 0.2);
 }
 .oo-ui-menuToolGroup .oo-ui-tool {
        display: block;
 }
-.oo-ui-menuToolGroup .oo-ui-tool-link {
-       cursor: pointer;
-}
-.oo-ui-menuToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link {
-       cursor: default;
-}
 .oo-ui-menuToolGroup .oo-ui-popupToolGroup-handle {
        min-width: 10em;
 }
        clear: both;
 }
 .oo-ui-toolbar-bar {
-       line-height: 1em;
+       line-height: 1;
        position: relative;
 }
 .oo-ui-toolbar-actions {
index ea919df..66473ff 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.17.3
+ * OOjs UI v0.17.6
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2016 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2016-05-24T22:46:32Z
+ * Date: 2016-07-12T20:26:03Z
  */
 ( function ( OO ) {
 
@@ -1292,24 +1292,26 @@ OO.ui.ToolFactory.prototype.extract = function ( collection, used ) {
        var i, len, item, name, tool,
                names = [];
 
-       if ( collection === '*' ) {
-               for ( name in this.registry ) {
-                       tool = this.registry[ name ];
-                       if (
-                               // Only add tools by group name when auto-add is enabled
-                               tool.static.autoAddToCatchall &&
-                               // Exclude already used tools
-                               ( !used || !used[ name ] )
-                       ) {
-                               names.push( name );
-                               if ( used ) {
-                                       used[ name ] = true;
+       collection = !Array.isArray( collection ) ? [ collection ] : collection;
+
+       for ( i = 0, len = collection.length; i < len; i++ ) {
+               item = collection[ i ];
+               if ( item === '*' ) {
+                       for ( name in this.registry ) {
+                               tool = this.registry[ name ];
+                               if (
+                                       // Only add tools by group name when auto-add is enabled
+                                       tool.static.autoAddToCatchall &&
+                                       // Exclude already used tools
+                                       ( !used || !used[ name ] )
+                               ) {
+                                       names.push( name );
+                                       if ( used ) {
+                                               used[ name ] = true;
+                                       }
                                }
                        }
-               }
-       } else if ( Array.isArray( collection ) ) {
-               for ( i = 0, len = collection.length; i < len; i++ ) {
-                       item = collection[ i ];
+               } else {
                        // Allow plain strings as shorthand for named tools
                        if ( typeof item === 'string' ) {
                                item = { name: item };
index e268f7e..e83cce5 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.17.3
+ * OOjs UI v0.17.6
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2016 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2016-05-24T22:46:36Z
+ * Date: 2016-07-12T20:26:07Z
  */
 .oo-ui-draggableElement-handle,
 .oo-ui-draggableElement-handle.oo-ui-widget {
@@ -17,7 +17,6 @@
        cursor:         grab;
 }
 .oo-ui-draggableElement-handle:active {
-       cursor: move;
        cursor: url(images/grabbing.cur );
        cursor: -webkit-grabbing;
        cursor:    -moz-grabbing;
           -moz-box-sizing: border-box;
                box-sizing: border-box;
 }
-.oo-ui-toggleSwitchWidget .oo-ui-toggleSwitchWidget-glow {
-       position: absolute;
-       top: 0;
-       bottom: 0;
-       right: 0;
-       left: 0;
-       -webkit-touch-callout: none;
-       -webkit-user-select: none;
-          -moz-user-select: none;
-           -ms-user-select: none;
-               user-select: none;
-}
-.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-glow {
-       display: none;
-}
 .oo-ui-toggleSwitchWidget:last-child {
        margin-right: 0;
 }
 .oo-ui-toggleSwitchWidget.oo-ui-widget-disabled {
        opacity: 0.5;
 }
+.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:hover,
+.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:hover .oo-ui-toggleSwitchWidget-grip {
+       border-color: #aaaaaa;
+}
 .oo-ui-toggleSwitchWidget-grip {
        top: 0.25em;
        left: 0.25em;
        background-image:         linear-gradient(to bottom, #ffffff 0, #dddddd 100%);
        -ms-filter: "progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffffff', endColorstr='#ffdddddd' )";
 }
-.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:hover,
-.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:hover .oo-ui-toggleSwitchWidget-grip {
-       border-color: #aaaaaa;
-}
-.oo-ui-toggleSwitchWidget .oo-ui-toggleSwitchWidget-glow {
+.oo-ui-toggleSwitchWidget-glow {
+       position: absolute;
+       top: 0;
+       bottom: 0;
+       right: 0;
+       left: 0;
        border-radius: 1em;
        box-shadow: inset 0 1px 4px 0 rgba(0, 0, 0, 0.07);
        -webkit-transition: opacity 250ms ease;
        background-image:    -moz-linear-gradient(top, #b0d9ee 0, #eaf4fa 100%);
        background-image:         linear-gradient(to bottom, #b0d9ee 0, #eaf4fa 100%);
        -ms-filter: "progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffb0d9ee', endColorstr='#ffeaf4fa' )";
-}
-.oo-ui-toggleWidget-on .oo-ui-toggleSwitchWidget-glow {
-       opacity: 1;
-}
-.oo-ui-toggleWidget-on .oo-ui-toggleSwitchWidget-grip {
-       left: 2.25em;
-       margin-left: -2px;
+       -webkit-touch-callout: none;
+       -webkit-user-select: none;
+          -moz-user-select: none;
+           -ms-user-select: none;
+               user-select: none;
 }
 .oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-glow {
-       display: block;
        opacity: 0;
 }
 .oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-grip {
        left: 0.25em;
        margin-left: 0;
 }
+.oo-ui-toggleWidget-on .oo-ui-toggleSwitchWidget-glow {
+       opacity: 1;
+}
+.oo-ui-toggleWidget-on .oo-ui-toggleSwitchWidget-grip {
+       left: 2.25em;
+       margin-left: -2px;
+}
 .oo-ui-progressBarWidget {
        max-width: 50em;
        background-color: #ffffff;
 .oo-ui-selectFileWidget-info > .oo-ui-selectFileWidget-clearButton {
        position: absolute;
 }
+.oo-ui-widget-disabled .oo-ui-selectFileWidget-info {
+       cursor: default;
+       -webkit-touch-callout: none;
+       -webkit-user-select: none;
+          -moz-user-select: none;
+           -ms-user-select: none;
+               user-select: none;
+}
 .oo-ui-selectFileWidget .oo-ui-selectFileWidget-clearButton {
        z-index: 2;
 }
        display: block;
 }
 .oo-ui-selectFileWidget-empty.oo-ui-widget-disabled .oo-ui-selectFileWidget-dropTarget,
+.oo-ui-selectFileWidget-notsupported .oo-ui-selectFileWidget-dropTarget {
+       -webkit-touch-callout: none;
+       -webkit-user-select: none;
+          -moz-user-select: none;
+           -ms-user-select: none;
+               user-select: none;
+}
+.oo-ui-selectFileWidget-empty.oo-ui-widget-disabled .oo-ui-selectFileWidget-dropTarget,
 .oo-ui-selectFileWidget-notsupported .oo-ui-selectFileWidget-dropTarget,
 .oo-ui-selectFileWidget-empty.oo-ui-widget-disabled .oo-ui-selectFileWidget-dropTarget .oo-ui-buttonElement-button,
 .oo-ui-selectFileWidget-notsupported .oo-ui-selectFileWidget-dropTarget .oo-ui-buttonElement-button {
index c21539c..375a478 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.17.3
+ * OOjs UI v0.17.6
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2016 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2016-05-24T22:46:36Z
+ * Date: 2016-07-12T20:26:07Z
  */
 .oo-ui-draggableElement-handle,
 .oo-ui-draggableElement-handle.oo-ui-widget {
@@ -17,7 +17,6 @@
        cursor:         grab;
 }
 .oo-ui-draggableElement-handle:active {
-       cursor: move;
        cursor: url(images/grabbing.cur );
        cursor: -webkit-grabbing;
        cursor:    -moz-grabbing;
 .oo-ui-buttonOptionWidget {
        display: inline-block;
        padding: 0;
-       background-color: transparent;
 }
 .oo-ui-buttonOptionWidget .oo-ui-buttonElement-button {
        position: relative;
           -moz-box-sizing: border-box;
                box-sizing: border-box;
 }
-.oo-ui-toggleSwitchWidget .oo-ui-toggleSwitchWidget-glow {
-       position: absolute;
-       top: 0;
-       bottom: 0;
-       right: 0;
-       left: 0;
-       -webkit-touch-callout: none;
-       -webkit-user-select: none;
-          -moz-user-select: none;
-           -ms-user-select: none;
-               user-select: none;
-}
-.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-glow {
-       display: none;
-}
 .oo-ui-toggleSwitchWidget:last-child {
        margin-right: 0;
 }
        content: "";
        display: block;
        position: absolute;
-       top: 0;
-       left: 0;
-       bottom: 0;
-       right: 0;
+       top: 1px;
+       left: 1px;
+       bottom: 1px;
+       right: 1px;
        border: 1px solid transparent;
        border-radius: 1em;
        z-index: 1;
+       -webkit-transition: border-color 100ms;
+          -moz-transition: border-color 100ms;
+               transition: border-color 100ms;
 }
 .oo-ui-toggleSwitchWidget-grip {
        top: 0.35em;
+       min-width: 16px;
        width: 1.2em;
+       min-height: 16px;
        height: 1.2em;
        border-radius: 1.2em;
        background-color: #555555;
 .oo-ui-toggleSwitchWidget-glow {
        display: none;
 }
-.oo-ui-toggleSwitchWidget.oo-ui-toggleWidget-on .oo-ui-toggleSwitchWidget-grip {
-       left: 1.9em;
-       margin-left: -2px;
-}
 .oo-ui-toggleSwitchWidget.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-grip {
        left: 0.4em;
        margin-left: 0;
 }
+.oo-ui-toggleSwitchWidget.oo-ui-toggleWidget-on .oo-ui-toggleSwitchWidget-grip {
+       left: 1.9em;
+       margin-left: -2px;
+}
 .oo-ui-toggleSwitchWidget.oo-ui-widget-enabled.oo-ui-toggleWidget-on {
        background-color: #347bff;
        border-color: #347bff;
 .oo-ui-selectFileWidget-info > .oo-ui-selectFileWidget-clearButton {
        position: absolute;
 }
+.oo-ui-widget-disabled .oo-ui-selectFileWidget-info {
+       cursor: default;
+       -webkit-touch-callout: none;
+       -webkit-user-select: none;
+          -moz-user-select: none;
+           -ms-user-select: none;
+               user-select: none;
+}
 .oo-ui-selectFileWidget .oo-ui-selectFileWidget-clearButton {
        z-index: 2;
 }
        display: block;
 }
 .oo-ui-selectFileWidget-empty.oo-ui-widget-disabled .oo-ui-selectFileWidget-dropTarget,
+.oo-ui-selectFileWidget-notsupported .oo-ui-selectFileWidget-dropTarget {
+       -webkit-touch-callout: none;
+       -webkit-user-select: none;
+          -moz-user-select: none;
+           -ms-user-select: none;
+               user-select: none;
+}
+.oo-ui-selectFileWidget-empty.oo-ui-widget-disabled .oo-ui-selectFileWidget-dropTarget,
 .oo-ui-selectFileWidget-notsupported .oo-ui-selectFileWidget-dropTarget,
 .oo-ui-selectFileWidget-empty.oo-ui-widget-disabled .oo-ui-selectFileWidget-dropTarget .oo-ui-buttonElement-button,
 .oo-ui-selectFileWidget-notsupported .oo-ui-selectFileWidget-dropTarget .oo-ui-buttonElement-button {
           -moz-box-sizing: border-box;
                box-sizing: border-box;
        display: block;
-       line-height: 2.3em;
+       line-height: 2.3;
        margin: 0;
        overflow: hidden;
        white-space: nowrap;
 }
 .oo-ui-capsuleMultiselectWidget-handle > .oo-ui-capsuleMultiselectWidget-content > input {
        border: 0;
-       line-height: 1.675em;
+       line-height: 1.675;
        margin: 0 0 0 0.2em;
        padding: 0;
        font-size: inherit;
                box-sizing: border-box;
        vertical-align: middle;
        height: 1.7em;
-       line-height: 1.7em;
+       line-height: 1.7;
        background-color: #eeeeee;
        color: #555555;
        margin: 0.1em;
index 31c0a45..8d93b80 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.17.3
+ * OOjs UI v0.17.6
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2016 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2016-05-24T22:46:32Z
+ * Date: 2016-07-12T20:26:03Z
  */
 ( function ( OO ) {
 
@@ -374,18 +374,22 @@ OO.ui.mixin.DraggableGroupElement.prototype.reorder = function ( item, newIndex
  * @param {OO.ui.mixin.DraggableElement} item Dragged item
  */
 OO.ui.mixin.DraggableGroupElement.prototype.setDragItem = function ( item ) {
-       this.dragItem = item;
-       this.$element.on( 'dragover', this.onDragOver.bind( this ) );
-       this.$element.addClass( 'oo-ui-draggableGroupElement-dragging' );
+       if ( this.dragItem !== item ) {
+               this.dragItem = item;
+               this.$element.on( 'dragover', this.onDragOver.bind( this ) );
+               this.$element.addClass( 'oo-ui-draggableGroupElement-dragging' );
+       }
 };
 
 /**
  * Unset the current dragged item
  */
 OO.ui.mixin.DraggableGroupElement.prototype.unsetDragItem = function () {
-       this.dragItem = null;
-       this.$element.off( 'dragover' );
-       this.$element.removeClass( 'oo-ui-draggableGroupElement-dragging' );
+       if ( this.dragItem ) {
+               this.dragItem = null;
+               this.$element.off( 'dragover' );
+               this.$element.removeClass( 'oo-ui-draggableGroupElement-dragging' );
+       }
 };
 
 /**
@@ -539,6 +543,7 @@ OO.ui.mixin.RequestManager.prototype.getRequestCacheDataFromResponse = null;
  *
  * @class
  * @abstract
+ * @mixins OO.ui.mixin.RequestManager
  *
  * @constructor
  * @param {Object} [config] Configuration options
@@ -1421,10 +1426,12 @@ OO.ui.StackLayout.prototype.updateHiddenState = function ( items, selectedItem )
                for ( i = 0, len = items.length; i < len; i++ ) {
                        if ( !selectedItem || selectedItem !== items[ i ] ) {
                                items[ i ].$element.addClass( 'oo-ui-element-hidden' );
+                               items[ i ].$element.attr( 'aria-hidden', 'true' );
                        }
                }
                if ( selectedItem ) {
                        selectedItem.$element.removeClass( 'oo-ui-element-hidden' );
+                       selectedItem.$element.removeAttr( 'aria-hidden' );
                }
        }
 };
@@ -1548,6 +1555,7 @@ OO.ui.MenuLayout.prototype.toggleMenu = function ( showMenu ) {
                this.$element
                        .toggleClass( 'oo-ui-menuLayout-showMenu', this.showMenu )
                        .toggleClass( 'oo-ui-menuLayout-hideMenu', !this.showMenu );
+               this.$menu.attr( 'aria-hidden', this.showMenu ? 'false' : 'true' );
        }
 
        return this;
@@ -1769,11 +1777,13 @@ OO.ui.BookletLayout.prototype.onStackLayoutVisibleItemChange = function ( page )
 OO.ui.BookletLayout.prototype.onStackLayoutSet = function ( page ) {
        var layout = this;
        if ( !this.scrolling && page ) {
-               page.scrollElementIntoView( { complete: function () {
-                       if ( layout.autoFocus ) {
-                               layout.focus();
+               page.scrollElementIntoView( {
+                       complete: function () {
+                               if ( layout.autoFocus ) {
+                                       layout.focus();
+                               }
                        }
-               } );
+               } );
        }
 };
 
@@ -2277,11 +2287,13 @@ OO.ui.IndexLayout.prototype.onStackLayoutFocus = function ( e ) {
 OO.ui.IndexLayout.prototype.onStackLayoutSet = function ( card ) {
        var layout = this;
        if ( card ) {
-               card.scrollElementIntoView( { complete: function () {
-                       if ( layout.autoFocus ) {
-                               layout.focus();
+               card.scrollElementIntoView( {
+                       complete: function () {
+                               if ( layout.autoFocus ) {
+                                       layout.focus();
+                               }
                        }
-               } );
+               } );
        }
 };
 
@@ -3683,13 +3695,17 @@ OO.mixinClass( OO.ui.CapsuleMultiselectWidget, OO.ui.mixin.IconElement );
 
 /**
  * Construct a OO.ui.CapsuleItemWidget (or a subclass thereof) from given label and data.
+ * May return `null` if the given label and data are not valid.
  *
  * @protected
  * @param {Mixed} data Custom data of any type.
  * @param {string} label The label text.
- * @return {OO.ui.CapsuleItemWidget}
+ * @return {OO.ui.CapsuleItemWidget|null}
  */
 OO.ui.CapsuleMultiselectWidget.prototype.createItemWidget = function ( data, label ) {
+       if ( label === '' ) {
+               return null;
+       }
        return new OO.ui.CapsuleItemWidget( { data: data, label: label } );
 };
 
@@ -3739,7 +3755,9 @@ OO.ui.CapsuleMultiselectWidget.prototype.setItemsFromData = function ( datas ) {
                if ( !item ) {
                        item = widget.createItemWidget( data, label );
                }
-               widget.addItems( [ item ], i );
+               if ( item ) {
+                       widget.addItems( [ item ], i );
+               }
        } );
 
        if ( items.length ) {
@@ -3767,9 +3785,12 @@ OO.ui.CapsuleMultiselectWidget.prototype.addItemsFromData = function ( datas ) {
                if ( !widget.getItemFromData( data ) ) {
                        item = menu.getItemFromData( data );
                        if ( item ) {
-                               items.push( widget.createItemWidget( data, item.label ) );
+                               item = widget.createItemWidget( data, item.label );
                        } else if ( widget.allowArbitrary ) {
-                               items.push( widget.createItemWidget( data, String( data ) ) );
+                               item = widget.createItemWidget( data, String( data ) );
+                       }
+                       if ( item ) {
+                               items.push( item );
                        }
                }
        } );
@@ -3788,13 +3809,15 @@ OO.ui.CapsuleMultiselectWidget.prototype.addItemsFromData = function ( datas ) {
  * @return {boolean} Whether the item was added or not
  */
 OO.ui.CapsuleMultiselectWidget.prototype.addItemFromLabel = function ( label ) {
-       var item = this.menu.getItemFromLabel( label, true );
+       var item, items;
+       item = this.menu.getItemFromLabel( label, true );
        if ( item ) {
                this.addItemsFromData( [ item.data ] );
                return true;
-       } else if ( this.allowArbitrary && this.$input.val().trim() !== '' ) {
+       } else if ( this.allowArbitrary ) {
+               items = this.getItems();
                this.addItemsFromData( [ label ] );
-               return true;
+               return !OO.compare( this.getItems(), items );
        }
        return false;
 };
index 1c17426..66cd523 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.17.3
+ * OOjs UI v0.17.6
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2016 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2016-05-24T22:46:36Z
+ * Date: 2016-07-12T20:26:07Z
  */
 .oo-ui-actionWidget.oo-ui-pendingElement-pending {
        background-image: /* @embed */ url(themes/apex/images/textures/pending.gif);
@@ -64,8 +64,7 @@
        bottom: 0;
 }
 .oo-ui-dialog-content > .oo-ui-window-foot {
-       overflow: hidden;
-       z-index: 1;
+       z-index: 3;
        bottom: 0;
 }
 .oo-ui-dialog-content > .oo-ui-window-body {
index 9bc76d8..30bf1c4 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.17.3
+ * OOjs UI v0.17.6
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2016 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2016-05-24T22:46:36Z
+ * Date: 2016-07-12T20:26:07Z
  */
 .oo-ui-window {
        background: transparent;
        bottom: 0;
 }
 .oo-ui-dialog-content > .oo-ui-window-foot {
-       overflow: hidden;
-       z-index: 1;
+       z-index: 3;
        bottom: 0;
 }
-.oo-ui-dialog-content > .oo-ui-window-body {
-       outline: 1px solid #aaaaaa;
-}
 .oo-ui-messageDialog-actions-horizontal {
        display: table;
        table-layout: fixed;
@@ -98,6 +94,9 @@
        display: inline;
        white-space: nowrap;
 }
+.oo-ui-messageDialog-content > .oo-ui-window-foot {
+       outline: 1px solid #aaaaaa;
+}
 .oo-ui-messageDialog-title,
 .oo-ui-messageDialog-message {
        display: block;
 }
 .oo-ui-messageDialog-title {
        font-size: 1.5em;
-       line-height: 1em;
+       line-height: 1;
        color: #000000;
 }
 .oo-ui-messageDialog-message {
        font-size: 0.9em;
-       line-height: 1.25em;
+       line-height: 1.25;
        color: #555555;
 }
 .oo-ui-messageDialog-message-verbose {
        font-size: 1.1em;
-       line-height: 1.5em;
+       line-height: 1.5;
        text-align: left;
 }
 .oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget {
        border-bottom-width: 0;
 }
 .oo-ui-messageDialog-actions .oo-ui-actionWidget {
-       height: 3.4em;
+       min-height: 3.4em;
        margin-right: 0;
 }
 .oo-ui-messageDialog-actions .oo-ui-actionWidget:last-child {
        margin-right: 0;
 }
 .oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-labelElement .oo-ui-labelElement-label {
+       line-height: 3.4;
        text-align: center;
-       line-height: 3.4em;
 }
 .oo-ui-messageDialog-actions .oo-ui-actionWidget:hover {
        background-color: rgba(0, 0, 0, 0.05);
index 7c95f92..6446302 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.17.3
+ * OOjs UI v0.17.6
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2016 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2016-05-24T22:46:32Z
+ * Date: 2016-07-12T20:26:03Z
  */
 ( function ( OO ) {
 
@@ -2135,10 +2135,18 @@ OO.ui.Window.prototype.initialize = function () {
  * @param {jQuery.Event} event Focus event
  */
 OO.ui.Window.prototype.onFocusTrapFocused = function ( event ) {
-       if ( this.$focusTrapBefore.is( event.target ) ) {
-               OO.ui.findFocusable( this.$content, true ).focus();
+       var backwards = this.$focusTrapBefore.is( event.target ),
+               element = OO.ui.findFocusable( this.$content, backwards );
+       if ( element ) {
+               // There's a focusable element inside the content, at the front or
+               // back depending on which focus trap we hit; select it.
+               element.focus();
        } else {
-               // this.$content is the part of the focus cycle, and is the first focusable element
+               // There's nothing focusable inside the content. As a fallback,
+               // this.$content is focusable, and focusing it will keep our focus
+               // properly trapped. It's not a *meaningful* focus, since it's just
+               // the content-div for the Window, but it's better than letting focus
+               // escape into the page.
                this.$content.focus();
        }
 };
@@ -2512,11 +2520,10 @@ OO.ui.Dialog.prototype.getSetupProcess = function ( data ) {
        return OO.ui.Dialog.parent.prototype.getSetupProcess.call( this, data )
                .next( function () {
                        var config = this.constructor.static,
-                               actions = data.actions !== undefined ? data.actions : config.actions;
+                               actions = data.actions !== undefined ? data.actions : config.actions,
+                               title = data.title !== undefined ? data.title : config.title;
 
-                       this.title.setLabel(
-                               data.title !== undefined ? data.title : this.constructor.static.title
-                       );
+                       this.title.setLabel( title ).setTitle( title );
                        this.actions.add( this.getActionWidgets( actions ) );
 
                        this.$element.on( 'keydown', this.onDialogKeyDownHandler );
@@ -3114,7 +3121,11 @@ OO.ui.ProcessDialog.prototype.initialize = function () {
                .append( this.$errors );
        this.$navigation
                .addClass( 'oo-ui-processDialog-navigation' )
-               .append( this.$safeActions, this.$location, this.$primaryActions );
+               // Note: Order of appends below is important. These are in the order
+               // we want tab to go through them. Display-order is handled entirely
+               // by CSS absolute-positioning. As such, primary actions like "done"
+               // should go first.
+               .append( this.$primaryActions, this.$location, this.$safeActions );
        this.$head.append( this.$navigation );
        this.$foot.append( this.$otherActions );
 };
index bd26399..5b35e74 100644 (file)
@@ -23,7 +23,7 @@
                        "lang": {
                                "ar": "images/icons/bold-arab-ain.svg",
                                "be": "images/icons/bold-cyrl-te.svg",
-                               "cs,en,he,ml,pl,sco": "images/icons/bold-b.svg",
+                               "cs,en,en-ca,en-gb,he,ml,pl,sco": "images/icons/bold-b.svg",
                                "da,de,hu,ksh,nn,no,sv": "images/icons/bold-f.svg",
                                "es,gl,pt": "images/icons/bold-n.svg",
                                "eu,fi": "images/icons/bold-l.svg",
@@ -40,7 +40,7 @@
                        "default": "images/icons/italic-a.svg",
                        "lang": {
                                        "ar": "images/icons/italic-arab-meem.svg",
-                                       "cs,en,fr,he,ml,pl,pt,sco": "images/icons/italic-i.svg",
+                                       "cs,en,en-ca,en-gb,fr,he,ml,pl,pt,sco": "images/icons/italic-i.svg",
                                        "be,da,de,fi,ky,nn,no,os,sv,ru,uk": "images/icons/italic-k.svg",
                                        "es,gl,it,nl": "images/icons/italic-c.svg",
                                        "eu": "images/icons/italic-e.svg",
                "strikethrough": { "file": {
                        "default": "images/icons/strikethrough-a.svg",
                        "lang": {
-                               "en": "images/icons/strikethrough-s.svg",
+                               "en,en-ca,en-gb": "images/icons/strikethrough-s.svg",
                                "fi": "images/icons/strikethrough-y.svg"
                        }
                } },
                "underline": { "file": {
                        "default": "images/icons/underline-a.svg",
                        "lang": {
-                               "en": "images/icons/underline-u.svg"
+                               "en,en-ca,en-gb": "images/icons/underline-u.svg"
                        }
                } },
                "textLanguage": { "file": {
index e881d7c..a9943cc 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/apex/images/icons/flag-rtl.png and b/resources/lib/oojs-ui/themes/apex/images/icons/flag-rtl.png differ
index 0f7e7ce..397a3da 100644 (file)
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-    <path d="M11 6.5V5c1.4-1.5 5.2-1.2 6 0V4h1v15h-1v-7c-.8-.8-3.4-.9-5-.5V13c-1.2 1.5-4.3 1.2-5 0V6c.7.7 2.7.9 4 .5z"/>
-</svg>
+       <path d="M10.3 7.5V6c1.4-1.5 5.2-1.2 6 0V5h1v15h-1v-7c-.8-.8-3.4-.9-5-.5V14c-1.2 1.5-4.3 1.2-5 0V7c.7.7 2.7.9 4 .5z"/>
+</svg>
\ No newline at end of file
index 033adde..780cb87 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/apex/images/icons/flagUndo-ltr.png and b/resources/lib/oojs-ui/themes/apex/images/icons/flagUndo-ltr.png differ
index 516a3ea..4bbd61c 100644 (file)
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-    <path d="M18 2L2.03 17.97l.97 1 4-4V19h1v-5.03l2.688-2.69c.81-.02 1.645.053 2.312.22V13c1.2 1.5 4.3 1.2 5 0V6c-.493.493-1.635.725-2.72.688L19 2.968zM7 4v7.03l6.438-6.436C11.778 3.61 8.71 3.934 8 5V4z"/>
-</svg>
+       <path d="M19.9 19.6l-16-16-1.1 1.1L6 7.9V20h1v-7c.6-.6 2-.8 3.4-.7l8.4 8.4 1.1-1.1zM17 14V7c-.7.7-2.7.9-4 .5V6c-1.2-1.3-3.9-1.3-5.4-.5l8.9 9c.3-.2.4-.3.5-.5z"/>
+</svg>
\ No newline at end of file
index fca73fd..fa3696a 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/apex/images/icons/flagUndo-rtl.png and b/resources/lib/oojs-ui/themes/apex/images/icons/flagUndo-rtl.png differ
index 8ed159e..5d94425 100644 (file)
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-    <path d="M7 2l-1 .97 3.72 3.717C8.634 6.727 7.492 6.494 7 6v7c.7 1.2 3.8 1.5 5 0v-1.5c.667-.167 1.5-.24 2.313-.22L17 13.97V19h1v-4.03l4 4 .97-1zm7.22 2c-.952-.03-1.932.163-2.658.594L18 11.03V4h-1v1c-.4-.6-1.556-.963-2.78-1z"/>
-</svg>
+       <path d="M3.5 19.6l16-16 1.1 1.1-3.2 3.2V20h-1v-7c-.6-.6-2-.8-3.4-.7l-8.4 8.4-1.1-1.1zM6.3 14V7c.7.7 2.7.9 4 .5V6c1.2-1.3 3.9-1.3 5.4-.5l-8.9 9c-.3-.2-.4-.3-.5-.5z"/>
+</svg>
\ No newline at end of file
index 45c6a64..5c3d03a 100644 (file)
@@ -30,7 +30,7 @@
                        "lang": {
                                "ar": "images/icons/bold-arab-ain.svg",
                                "be": "images/icons/bold-cyrl-te.svg",
-                               "cs,en,he,ml,pl,sco": "images/icons/bold-b.svg",
+                               "cs,en,en-ca,en-gb,he,ml,pl,sco": "images/icons/bold-b.svg",
                                "da,de,hu,ksh,nn,no,sv": "images/icons/bold-f.svg",
                                "es,gl,pt": "images/icons/bold-n.svg",
                                "eu,fi": "images/icons/bold-l.svg",
@@ -47,7 +47,7 @@
                        "default": "images/icons/italic-a.svg",
                        "lang": {
                                        "ar": "images/icons/italic-arab-meem.svg",
-                                       "cs,en,fr,he,ml,pl,pt,sco": "images/icons/italic-i.svg",
+                                       "cs,en,en-ca,en-gb,fr,he,ml,pl,pt,sco": "images/icons/italic-i.svg",
                                        "be,da,de,fi,ky,nn,no,os,sv,ru,uk": "images/icons/italic-k.svg",
                                        "es,gl,it,nl": "images/icons/italic-c.svg",
                                        "eu": "images/icons/italic-e.svg",
                "strikethrough": { "file": {
                        "default": "images/icons/strikethrough-a.svg",
                        "lang": {
-                               "en": "images/icons/strikethrough-s.svg",
+                               "en,en-ca,en-gb": "images/icons/strikethrough-s.svg",
                                "fi": "images/icons/strikethrough-y.svg"
                        }
                } },
                "underline": { "file": {
                        "default": "images/icons/underline-a.svg",
                        "lang": {
-                               "en": "images/icons/underline-u.svg"
+                               "en,en-ca,en-gb": "images/icons/underline-u.svg"
                        }
                } },
                "textLanguage": { "file": {
index e0b8859..159bdb9 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-rtl-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-rtl-invert.png differ
index 3946c4a..dbc78c6 100644 (file)
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #ffffff }</style>
-    <path d="M11 6.5V5c1.4-1.5 5.2-1.2 6 0V4h1v15h-1v-7c-.8-.8-3.4-.9-5-.5V13c-1.2 1.5-4.3 1.2-5 0V6c.7.7 2.7.9 4 .5z"/>
-</svg>
+       <path d="M10.3 7.5V6c1.4-1.5 5.2-1.2 6 0V5h1v15h-1v-7c-.8-.8-3.4-.9-5-.5V14c-1.2 1.5-4.3 1.2-5 0V7c.7.7 2.7.9 4 .5z"/>
+</svg>
\ No newline at end of file
index e881d7c..a9943cc 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-rtl.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-rtl.png differ
index 0f7e7ce..397a3da 100644 (file)
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-    <path d="M11 6.5V5c1.4-1.5 5.2-1.2 6 0V4h1v15h-1v-7c-.8-.8-3.4-.9-5-.5V13c-1.2 1.5-4.3 1.2-5 0V6c.7.7 2.7.9 4 .5z"/>
-</svg>
+       <path d="M10.3 7.5V6c1.4-1.5 5.2-1.2 6 0V5h1v15h-1v-7c-.8-.8-3.4-.9-5-.5V14c-1.2 1.5-4.3 1.2-5 0V7c.7.7 2.7.9 4 .5z"/>
+</svg>
\ No newline at end of file
index 4985911..8338017 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr-invert.png differ
index 0d074de..0614672 100644 (file)
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #ffffff }</style>
-    <path d="M18 2L2.03 17.97l.97 1 4-4V19h1v-5.03l2.688-2.69c.81-.02 1.645.053 2.312.22V13c1.2 1.5 4.3 1.2 5 0V6c-.493.493-1.635.725-2.72.688L19 2.968zM7 4v7.03l6.438-6.436C11.778 3.61 8.71 3.934 8 5V4z"/>
-</svg>
+       <path d="M19.9 19.6l-16-16-1.1 1.1L6 7.9V20h1v-7c.6-.6 2-.8 3.4-.7l8.4 8.4 1.1-1.1zM17 14V7c-.7.7-2.7.9-4 .5V6c-1.2-1.3-3.9-1.3-5.4-.5l8.9 9c.3-.2.4-.3.5-.5z"/>
+</svg>
\ No newline at end of file
index 033adde..780cb87 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr.png differ
index 516a3ea..4bbd61c 100644 (file)
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-    <path d="M18 2L2.03 17.97l.97 1 4-4V19h1v-5.03l2.688-2.69c.81-.02 1.645.053 2.312.22V13c1.2 1.5 4.3 1.2 5 0V6c-.493.493-1.635.725-2.72.688L19 2.968zM7 4v7.03l6.438-6.436C11.778 3.61 8.71 3.934 8 5V4z"/>
-</svg>
+       <path d="M19.9 19.6l-16-16-1.1 1.1L6 7.9V20h1v-7c.6-.6 2-.8 3.4-.7l8.4 8.4 1.1-1.1zM17 14V7c-.7.7-2.7.9-4 .5V6c-1.2-1.3-3.9-1.3-5.4-.5l8.9 9c.3-.2.4-.3.5-.5z"/>
+</svg>
\ No newline at end of file
index 4e1a6d1..4f9c3ad 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl-invert.png differ
index 0653df3..66a0c05 100644 (file)
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #ffffff }</style>
-    <path d="M7 2l-1 .97 3.72 3.717C8.634 6.727 7.492 6.494 7 6v7c.7 1.2 3.8 1.5 5 0v-1.5c.667-.167 1.5-.24 2.313-.22L17 13.97V19h1v-4.03l4 4 .97-1zm7.22 2c-.952-.03-1.932.163-2.658.594L18 11.03V4h-1v1c-.4-.6-1.556-.963-2.78-1z"/>
-</svg>
+       <path d="M3.5 19.6l16-16 1.1 1.1-3.2 3.2V20h-1v-7c-.6-.6-2-.8-3.4-.7l-8.4 8.4-1.1-1.1zM6.3 14V7c.7.7 2.7.9 4 .5V6c1.2-1.3 3.9-1.3 5.4-.5l-8.9 9c-.3-.2-.4-.3-.5-.5z"/>
+</svg>
\ No newline at end of file
index fca73fd..fa3696a 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl.png differ
index 8ed159e..5d94425 100644 (file)
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-    <path d="M7 2l-1 .97 3.72 3.717C8.634 6.727 7.492 6.494 7 6v7c.7 1.2 3.8 1.5 5 0v-1.5c.667-.167 1.5-.24 2.313-.22L17 13.97V19h1v-4.03l4 4 .97-1zm7.22 2c-.952-.03-1.932.163-2.658.594L18 11.03V4h-1v1c-.4-.6-1.556-.963-2.78-1z"/>
-</svg>
+       <path d="M3.5 19.6l16-16 1.1 1.1-3.2 3.2V20h-1v-7c-.6-.6-2-.8-3.4-.7l-8.4 8.4-1.1-1.1zM6.3 14V7c.7.7 2.7.9 4 .5V6c1.2-1.3 3.9-1.3 5.4-.5l-8.9 9c-.3-.2-.4-.3-.5-.5z"/>
+</svg>
\ No newline at end of file
index 4c74c3e..9cd13be 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/stop-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stop-invert.png differ
index 8b49792..2d060f3 100644 (file)
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #ffffff }</style>
-    <path d="M12 6c3.9 0 7 3.1 7 7s-3.1 7-7 7-7-3.1-7-7 3.1-7 7-7m0-1c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm-3 5h6v6H9z"/>
+       <path d="M12 5c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm3 11.1H9v-6h6v6z"/>
 </svg>
index 12a1912..77dd75f 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/stop.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stop.png differ
index aa25e3d..4631b85 100644 (file)
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-    <path d="M12 6c3.9 0 7 3.1 7 7s-3.1 7-7 7-7-3.1-7-7 3.1-7 7-7m0-1c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm-3 5h6v6H9z"/>
+       <path d="M12 5c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm3 11.1H9v-6h6v6z"/>
 </svg>
diff --git a/resources/lib/phpjs-sha1/sha1.js b/resources/lib/phpjs-sha1/sha1.js
deleted file mode 100644 (file)
index 93c533d..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-function sha1(str) {
-  //  discuss at: http://phpjs.org/functions/sha1/
-  // original by: Webtoolkit.info (http://www.webtoolkit.info/)
-  // improved by: Michael White (http://getsprink.com)
-  // improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
-  //    input by: Brett Zamir (http://brett-zamir.me)
-  //   example 1: sha1('Kevin van Zonneveld');
-  //   returns 1: '54916d2e62f65b3afa6e192e6a601cdbe5cb5897'
-
-  var rotate_left = function (n, s) {
-    var t4 = (n << s) | (n >>> (32 - s));
-    return t4;
-  };
-
-  /*var lsb_hex = function (val) {
-   // Not in use; needed?
-    var str="";
-    var i;
-    var vh;
-    var vl;
-
-    for ( i=0; i<=6; i+=2 ) {
-      vh = (val>>>(i*4+4))&0x0f;
-      vl = (val>>>(i*4))&0x0f;
-      str += vh.toString(16) + vl.toString(16);
-    }
-    return str;
-  };*/
-
-  var cvt_hex = function (val) {
-    var str = '';
-    var i;
-    var v;
-
-    for (i = 7; i >= 0; i--) {
-      v = (val >>> (i * 4)) & 0x0f;
-      str += v.toString(16);
-    }
-    return str;
-  };
-
-  var blockstart;
-  var i, j;
-  var W = new Array(80);
-  var H0 = 0x67452301;
-  var H1 = 0xEFCDAB89;
-  var H2 = 0x98BADCFE;
-  var H3 = 0x10325476;
-  var H4 = 0xC3D2E1F0;
-  var A, B, C, D, E;
-  var temp;
-
-  // utf8_encode
-  str = unescape(encodeURIComponent(str));
-  var str_len = str.length;
-
-  var word_array = [];
-  for (i = 0; i < str_len - 3; i += 4) {
-    j = str.charCodeAt(i) << 24 | str.charCodeAt(i + 1) << 16 | str.charCodeAt(i + 2) << 8 | str.charCodeAt(i + 3);
-    word_array.push(j);
-  }
-
-  switch (str_len % 4) {
-  case 0:
-    i = 0x080000000;
-    break;
-  case 1:
-    i = str.charCodeAt(str_len - 1) << 24 | 0x0800000;
-    break;
-  case 2:
-    i = str.charCodeAt(str_len - 2) << 24 | str.charCodeAt(str_len - 1) << 16 | 0x08000;
-    break;
-  case 3:
-    i = str.charCodeAt(str_len - 3) << 24 | str.charCodeAt(str_len - 2) << 16 | str.charCodeAt(str_len - 1) <<
-      8 | 0x80;
-    break;
-  }
-
-  word_array.push(i);
-
-  while ((word_array.length % 16) != 14) {
-    word_array.push(0);
-  }
-
-  word_array.push(str_len >>> 29);
-  word_array.push((str_len << 3) & 0x0ffffffff);
-
-  for (blockstart = 0; blockstart < word_array.length; blockstart += 16) {
-    for (i = 0; i < 16; i++) {
-      W[i] = word_array[blockstart + i];
-    }
-    for (i = 16; i <= 79; i++) {
-      W[i] = rotate_left(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);
-    }
-
-    A = H0;
-    B = H1;
-    C = H2;
-    D = H3;
-    E = H4;
-
-    for (i = 0; i <= 19; i++) {
-      temp = (rotate_left(A, 5) + ((B & C) | (~B & D)) + E + W[i] + 0x5A827999) & 0x0ffffffff;
-      E = D;
-      D = C;
-      C = rotate_left(B, 30);
-      B = A;
-      A = temp;
-    }
-
-    for (i = 20; i <= 39; i++) {
-      temp = (rotate_left(A, 5) + (B ^ C ^ D) + E + W[i] + 0x6ED9EBA1) & 0x0ffffffff;
-      E = D;
-      D = C;
-      C = rotate_left(B, 30);
-      B = A;
-      A = temp;
-    }
-
-    for (i = 40; i <= 59; i++) {
-      temp = (rotate_left(A, 5) + ((B & C) | (B & D) | (C & D)) + E + W[i] + 0x8F1BBCDC) & 0x0ffffffff;
-      E = D;
-      D = C;
-      C = rotate_left(B, 30);
-      B = A;
-      A = temp;
-    }
-
-    for (i = 60; i <= 79; i++) {
-      temp = (rotate_left(A, 5) + (B ^ C ^ D) + E + W[i] + 0xCA62C1D6) & 0x0ffffffff;
-      E = D;
-      D = C;
-      C = rotate_left(B, 30);
-      B = A;
-      A = temp;
-    }
-
-    H0 = (H0 + A) & 0x0ffffffff;
-    H1 = (H1 + B) & 0x0ffffffff;
-    H2 = (H2 + C) & 0x0ffffffff;
-    H3 = (H3 + D) & 0x0ffffffff;
-    H4 = (H4 + E) & 0x0ffffffff;
-  }
-
-  temp = cvt_hex(H0) + cvt_hex(H1) + cvt_hex(H2) + cvt_hex(H3) + cvt_hex(H4);
-  return temp.toLowerCase();
-}
index 519e39b..6ff2e01 100644 (file)
@@ -113,18 +113,19 @@ function getAccessKeyLabel( element ) {
  * @param {HTMLElement} titleElement Element with the title to update (may be the same as `element`)
  */
 function updateTooltipOnElement( element, titleElement ) {
-       var array = ( mw.msg( 'word-separator' ) + mw.msg( 'brackets' ) ).split( '$1' ),
-               regexp = new RegExp( $.map( array, mw.RegExp.escape ).join( '.*?' ) + '$' ),
-               oldTitle = titleElement.title,
-               rawTitle = oldTitle.replace( regexp, '' ),
-               newTitle = rawTitle,
-               accessKeyLabel = getAccessKeyLabel( element );
-
-       // don't add a title if the element didn't have one before
+       var oldTitle, parts, regexp, newTitle, accessKeyLabel;
+
+       oldTitle = titleElement.title;
        if ( !oldTitle ) {
+               // don't add a title if the element didn't have one before
                return;
        }
 
+       parts = ( mw.msg( 'word-separator' ) + mw.msg( 'brackets' ) ).split( '$1' );
+       regexp = new RegExp( $.map( parts, mw.RegExp.escape ).join( '.*?' ) + '$' );
+       newTitle = oldTitle.replace( regexp, '' );
+       accessKeyLabel = getAccessKeyLabel( element );
+
        if ( accessKeyLabel ) {
                // Should be build the same as in Linker::titleAttrib
                newTitle += mw.msg( 'word-separator' ) + mw.msg( 'brackets', accessKeyLabel );
index bdb5ce8..501e898 100644 (file)
                                // If this is not a custom case, do the default: wrap the
                                // contents and add the toggle link. Different elements are
                                // treated differently.
+
                                if ( $collapsible.is( 'table' ) ) {
 
                                        // If the table has a caption, collapse to the caption
                                                }
                                        }
 
+                               } else if ( $collapsible.parent().is( 'li' ) &&
+                                       $collapsible.parent().children( '.mw-collapsible' ).size() === 1
+                               ) {
+                                       // special case of one collapsible in <li> tag
+                                       $toggleLink = buildDefaultToggleLink();
+                                       $collapsible.before( $toggleLink );
                                } else if ( $collapsible.is( 'ul' ) || $collapsible.is( 'ol' ) ) {
                                        // The toggle-link will be in the first list-item
                                        $firstItem = $collapsible.find( 'li:first' );
index 38e5a1f..884ecb6 100644 (file)
                                        } else if ( selected.is( '.suggestions-special' ) ) {
                                                if ( typeof context.config.special.select === 'function' ) {
                                                        // Allow the callback to decide whether to prevent default or not
-                                                       if ( context.config.special.select.call( selected, context.data.$textbox ) === true ) {
+                                                       if ( context.config.special.select.call( selected, context.data.$textbox, 'keyboard' ) === true ) {
                                                                preventDefault = false;
                                                        }
                                                }
                                        } else {
                                                if ( typeof context.config.result.select === 'function' ) {
                                                        // Allow the callback to decide whether to prevent default or not
-                                                       if ( context.config.result.select.call( selected, context.data.$textbox ) === true ) {
+                                                       if ( context.config.result.select.call( selected, context.data.$textbox, 'keyboard' ) === true ) {
                                                                preventDefault = false;
                                                        }
                                                }
                                                                if ( $result.get( 0 ) !== $other.get( 0 ) ) {
                                                                        return;
                                                                }
+                                                               $.suggestions.highlight( context, $result, true );
+                                                               if ( typeof context.config.result.select === 'function' ) {
+                                                                       context.config.result.select.call( $result, context.data.$textbox, 'mouse' );
+                                                               }
                                                                // Don't interfere with special clicks (e.g. to open in new tab)
                                                                if ( !( e.which !== 1 || e.altKey || e.ctrlKey || e.shiftKey || e.metaKey ) ) {
-                                                                       $.suggestions.highlight( context, $result, true );
-                                                                       if ( typeof context.config.result.select === 'function' ) {
-                                                                               context.config.result.select.call( $result, context.data.$textbox );
-                                                                       }
                                                                        // This will hide the link we're just clicking on, which causes problems
                                                                        // when done synchronously in at least Firefox 3.6 (bug 62858).
                                                                        setTimeout( function () {
                                                                if ( $special.get( 0 ) !== $other.get( 0 ) ) {
                                                                        return;
                                                                }
+                                                               if ( typeof context.config.special.select === 'function' ) {
+                                                                       context.config.special.select.call( $special, context.data.$textbox, 'mouse' );
+                                                               }
                                                                // Don't interfere with special clicks (e.g. to open in new tab)
                                                                if ( !( e.which !== 1 || e.altKey || e.ctrlKey || e.shiftKey || e.metaKey ) ) {
-                                                                       if ( typeof context.config.special.select === 'function' ) {
-                                                                               context.config.special.select.call( $special, context.data.$textbox );
-                                                                       }
                                                                        // This will hide the link we're just clicking on, which causes problems
                                                                        // when done synchronously in at least Firefox 3.6 (bug 62858).
                                                                        setTimeout( function () {
                                                $.suggestions.keypress( e, context, context.data.keypressed );
                                        } )
                                        .keyup( function ( e ) {
-                                               // Some browsers won't throw keypress() for arrow keys. If we got a keydown and a keyup without a
-                                               // keypress in between, solve it
-                                               if ( context.data.keypressedCount === 0 ) {
+                                               // The keypress event is fired when a key is pressed down and that key normally
+                                               // produces a character value. We also want to handle some keys that don't
+                                               // produce a character value so we also attach to the keydown/keyup events.
+                                               // List of codes sourced from
+                                               // https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode
+                                               var allowed = [
+                                                       40, // up arrow
+                                                       38, // down arrow
+                                                       27, // escape
+                                                       13, // enter
+                                                       46, // delete
+                                                       8   // backspace
+                                               ];
+                                               if ( context.data.keypressedCount === 0
+                                                       && e.which === context.data.keypressed
+                                                       && $.inArray( e.which, allowed ) !== -1
+                                               ) {
                                                        $.suggestions.keypress( e, context, context.data.keypressed );
                                                }
                                        } )
index 20bfa0e..07c7d76 100644 (file)
@@ -2,65 +2,91 @@
  * Scripts for pre-emptive edit preparing on action=edit
  */
 ( function ( mw, $ ) {
+       if ( !mw.config.get( 'wgAjaxEditStash' ) ) {
+               return;
+       }
+
        $( function () {
                var idleTimeout = 3000,
                        api = new mw.Api(),
                        pending = null,
                        $form = $( '#editform' ),
                        $text = $form.find( '#wpTextbox1' ),
-                       data = {},
+                       $summary = $form.find( '#wpSummary' ),
+                       section = $form.find( '[name=wpSection]' ).val(),
+                       model = $form.find( '[name=model]' ).val(),
+                       format = $form.find( '[name=format]' ).val(),
+                       revId = $form.find( '[name=parentRevId]' ).val(),
+                       lastText = $text.textSelection( 'getContents' ),
                        timer = null;
 
-               function stashEdit( token ) {
-                       data = $form.serializeObject();
+               // Send a request to stash the edit to the API.
+               // If a request is in progress, abort it since its payload is stale and the API
+               // may limit concurrent stash parses.
+               function stashEdit() {
+                       if ( pending ) {
+                               pending.abort();
+                       }
 
-                       pending = api.post( {
-                               action: 'stashedit',
-                               token: token,
-                               title: mw.config.get( 'wgPageName' ),
-                               section: data.wpSection,
-                               sectiontitle: '',
-                               text: data.wpTextbox1,
-                               contentmodel: data.model,
-                               contentformat: data.format,
-                               baserevid: data.parentRevId
+                       api.getToken( 'csrf' ).then( function ( token ) {
+                               lastText = $text.textSelection( 'getContents' );
+
+                               pending = api.post( {
+                                       action: 'stashedit',
+                                       token: token,
+                                       title: mw.config.get( 'wgPageName' ),
+                                       section: section,
+                                       sectiontitle: '',
+                                       text: lastText,
+                                       summary: $summary.textSelection( 'getContents' ),
+                                       contentmodel: model,
+                                       contentformat: format,
+                                       baserevid: revId
+                               } );
                        } );
                }
 
-               /* Has the edit body text changed since the last stashEdit() call? */
+               // Check if edit body text changed since the last stashEdit() call or if no edit
+               // stash calls have yet been made
                function isChanged() {
-                       // Normalize line endings to CRLF, like $.fn.serializeObject does.
-                       var newText = $text.val().replace( /\r?\n/g, '\r\n' );
-                       return newText !== data.wpTextbox1;
+                       var newText = $text.textSelection( 'getContents' );
+                       return newText !== lastText;
                }
 
-               function onEditChanged() {
+               function onEditorIdle() {
                        if ( !isChanged() ) {
                                return;
                        }
 
-                       // If a request is in progress, abort it; its payload is stale.
-                       if ( pending ) {
-                               pending.abort();
-                       }
-
-                       api.getToken( 'csrf' ).then( stashEdit );
+                       stashEdit();
                }
 
-               function onKeyPress( e ) {
+               function onTextKeyUp( e ) {
                        // Ignore keystrokes that don't modify text, like cursor movements.
-                       // See <http://stackoverflow.com/q/2284844>.
-                       if ( e.which === 0 ) {
+                       // See <http://www.javascripter.net/faq/keycodes.htm> and
+                       // <http://www.quirksmode.org/js/keys.html>. We don't have to be exhaustive,
+                       // because the cost of misfiring is low.
+                       // * Key code 33-40: Page Up/Down, End, Home, arrow keys.
+                       // * Key code 16-18: Shift, Ctrl, Alt.
+                       if ( ( e.which >= 33 && e.which <= 40 ) || ( e.which >= 16 && e.which <= 18 ) ) {
                                return;
                        }
 
                        clearTimeout( timer );
+                       timer = setTimeout( onEditorIdle, idleTimeout );
+               }
 
-                       if ( pending ) {
-                               pending.abort();
+               function onFormLoaded() {
+                       if (
+                               // Reverts may involve use (undo) links; stash as they review the diff.
+                               // Since the form has a pre-filled summary, stash the edit immediately.
+                               mw.util.getParamValue( 'undo' ) !== null
+                               // Pressing "show changes" and "preview" also signify that the user will
+                               // probably save the page soon
+                               || $.inArray( $form.find( '#mw-edit-mode' ).val(), [ 'preview', 'diff' ] ) > -1
+                       ) {
+                               stashEdit();
                        }
-
-                       timer = setTimeout( onEditChanged, idleTimeout );
                }
 
                // We don't attempt to stash new section edits because in such cases
@@ -70,7 +96,9 @@
                        return;
                }
 
-               $text.on( { change: onEditChanged, keypress: onKeyPress } );
+               $text.on( { change: onEditorIdle, keyup: onTextKeyUp } );
+               $summary.on( { focus: onEditorIdle } );
+               onFormLoaded();
 
        } );
 }( mediaWiki, jQuery ) );
index 835383e..fd5dbc9 100644 (file)
@@ -1,9 +1,6 @@
+/* Styles for the JavaScript enhancements of the history page */
+
 #pagehistory li.before input[name="oldid"],
 #pagehistory li.after input[name="diff"] {
        visibility: hidden;
 }
-
-span.updatedmarker {
-       color: #000;
-       background-color: #0f0;
-}
index 9db6777..327c9c8 100644 (file)
@@ -93,3 +93,28 @@ td.diff-addedline .diffchange {
 td.diff-deletedline .diffchange {
        background: #feeec8;
 }
+
+/* Correct user & content directionality when viewing a diff */
+.diff-currentversion-title,
+.diff {
+       direction: ltr;
+       unicode-bidi: embed;
+}
+
+/* @noflip */ .diff-contentalign-right td {
+       direction: rtl;
+       unicode-bidi: embed;
+}
+
+/* @noflip */ .diff-contentalign-left td {
+       direction: ltr;
+       unicode-bidi: embed;
+}
+
+.diff-multi,
+.diff-otitle,
+.diff-ntitle,
+.diff-lineno {
+       direction: ltr !important;
+       unicode-bidi: embed;
+}
diff --git a/resources/src/mediawiki.action/mediawiki.action.history.styles.css b/resources/src/mediawiki.action/mediawiki.action.history.styles.css
new file mode 100644 (file)
index 0000000..5b08f95
--- /dev/null
@@ -0,0 +1,23 @@
+/* Basic styles for the history page */
+
+#pagehistory .history-user {
+       margin-left: 0.4em;
+       margin-right: 0.2em;
+}
+
+#pagehistory li {
+       border: 1px solid #fff;
+}
+
+#pagehistory li.selected {
+       background-color: #f9f9f9;
+       border: 1px dashed #aaa;
+}
+
+.mw-history-revisionactions {
+       float: right;
+}
+
+.updatedmarker {
+       background-color: #b7f430;
+}
index 99982e3..d5520a1 100644 (file)
@@ -2,32 +2,32 @@
  * File description page
  */
 
-div.mw-filepage-resolutioninfo {
+.mw-filepage-resolutioninfo {
        font-size: smaller;
 }
 
 /*
  * File histories
  */
-h2#filehistory {
+#filehistory {
        clear: both;
 }
 
-table.filehistory th,
-table.filehistory td {
+.filehistory th,
+.filehistory td {
        vertical-align: top;
 }
 
-table.filehistory th {
+.filehistory th {
        text-align: left;
 }
 
-table.filehistory td.mw-imagepage-filesize,
-table.filehistory th.mw-imagepage-filesize {
+.filehistory td.mw-imagepage-filesize,
+.filehistory th.mw-imagepage-filesize {
        white-space: nowrap;
 }
 
-table.filehistory td.filehistory-selected {
+.filehistory td.filehistory-selected {
        font-weight: bold;
 }
 
@@ -44,7 +44,7 @@ table.filehistory td.filehistory-selected {
 /*
  * filetoc
  */
-ul#filetoc {
+#filetoc {
        text-align: center;
        border: 1px solid #aaa;
        background-color: #f9f9f9;
@@ -68,3 +68,54 @@ ul#filetoc {
 #shared-image-conflict {
        font-style: italic;
 }
+
+/*
+ * Classes for Exif data display
+ */
+.mw_metadata {
+       font-size: 0.8em;
+       margin-left: 0.5em;
+       margin-bottom: 0.5em;
+       width: 400px;
+}
+
+.mw_metadata caption {
+       font-weight: bold;
+}
+
+.mw_metadata th {
+       font-weight: normal;
+       text-align: center;
+}
+
+.mw_metadata td {
+       padding: 0.1em;
+}
+
+.mw_metadata {
+       border: none;
+       border-collapse: collapse;
+}
+
+.mw_metadata td,
+.mw_metadata th {
+       border: 1px solid #aaa;
+       padding-left: 5px;
+       padding-right: 5px;
+}
+
+.mw_metadata th {
+       background-color: #f9f9f9;
+}
+
+.mw_metadata td {
+       background-color: #fcfcfc;
+}
+
+.mw_metadata ul.metadata-langlist {
+       list-style-type: none;
+       list-style-image: none;
+       padding-right: 5px;
+       padding-left: 5px;
+       margin: 0;
+}
index f6c3cdb..7ccf59e 100644 (file)
@@ -294,10 +294,6 @@ span.unpatrolled {
        color: #f00;
 }
 
-.updatedmarker {
-       background-color: #b7f430;
-}
-
 div.gallerybox {
        width: 150px;
 }
index 4ff403a..fc16377 100644 (file)
@@ -91,30 +91,6 @@ abbr[title],
        }
 }
 
-/* Colored watchlist and recent changes numbers */
-.mw-plusminus-pos {
-       color: #006400; /* dark green */
-}
-
-.mw-plusminus-neg {
-       color: #8b0000; /* dark red */
-}
-
-.mw-plusminus-null {
-       color: #aaa; /* gray */
-}
-
-/*
- * Bidi-isolate these numbers.
- * See https://phabricator.wikimedia.org/T93484
- */
-.mw-plusminus-pos,
-.mw-plusminus-neg,
-.mw-plusminus-null {
-       unicode-bidi: -moz-isolate;
-       unicode-bidi: isolate;
-}
-
 /* Comment portions of RC entries */
 span.comment {
        font-style: italic;
@@ -284,31 +260,11 @@ p.mw-delete-editreasons {
        text-align: right;
 }
 
-/* Page history styling */
-
 /* The auto-generated edit comments */
 .autocomment {
        color: #808080;
 }
 
-#pagehistory .history-user {
-       margin-left: 0.4em;
-       margin-right: 0.2em;
-}
-
-#pagehistory li {
-       border: 1px solid #fff;
-}
-
-#pagehistory li.selected {
-       background-color: #f9f9f9;
-       border: 1px dashed #aaa;
-}
-
-.mw-history-revisionactions {
-       float: right;
-}
-
 /** Generic minor/bot/newpage styling (recent changes) */
 .newpage,
 .minoredit,
@@ -520,55 +476,6 @@ table.wikitable > caption {
        background-color: #eef;
 }
 
-/* Classes for Exif data display */
-table.mw_metadata {
-       font-size: 0.8em;
-       margin-left: 0.5em;
-       margin-bottom: 0.5em;
-       width: 400px;
-}
-
-table.mw_metadata caption {
-       font-weight: bold;
-}
-
-table.mw_metadata th {
-       font-weight: normal;
-       text-align: center;
-}
-
-table.mw_metadata td {
-       padding: 0.1em;
-}
-
-table.mw_metadata {
-       border: none;
-       border-collapse: collapse;
-}
-
-table.mw_metadata td,
-table.mw_metadata th {
-       border: 1px solid #aaa;
-       padding-left: 5px;
-       padding-right: 5px;
-}
-
-table.mw_metadata th {
-       background-color: #f9f9f9;
-}
-
-table.mw_metadata td {
-       background-color: #fcfcfc;
-}
-
-table.mw_metadata ul.metadata-langlist {
-       list-style-type: none;
-       list-style-image: none;
-       padding-right: 5px;
-       padding-left: 5px;
-       margin: 0;
-}
-
 /* Correct directionality when page dir is different from site/user dir */
 .mw-content-ltr ul,
 .mw-content-rtl .mw-content-ltr ul {
@@ -793,31 +700,6 @@ ol:lang(or) li {
        unicode-bidi: embed;
 }
 
-/* Correct user & content directionality when viewing a diff */
-.diff-currentversion-title,
-.diff {
-       direction: ltr;
-       unicode-bidi: embed;
-}
-
-/* @noflip */ .diff-contentalign-right td {
-       direction: rtl;
-       unicode-bidi: embed;
-}
-
-/* @noflip */ .diff-contentalign-left td {
-       direction: ltr;
-       unicode-bidi: embed;
-}
-
-.diff-multi,
-.diff-otitle,
-.diff-ntitle,
-.diff-lineno {
-       direction: ltr !important;
-       unicode-bidi: embed;
-}
-
 #mw-revision-info,
 #mw-revision-info-current,
 #mw-revision-nav {
index 12825de..f29897c 100644 (file)
@@ -15,7 +15,6 @@
        cursor: pointer;
        vertical-align: bottom;
        line-height: normal;
-
        font-weight: normal;
 
        & > input[type="checkbox"],
        background: @bgColor;
 
        &:hover {
-               // The inner bottom bevel should match the active background color.
                background-color: @highlightColor;
        }
 
        &:focus {
                border-color: @colorWhite;
-               box-shadow: 0 0 0 1px @highlightColor;
+               box-shadow: inset 0 0 0 1px @bgColor, inset 0 0 0 2px @colorWhite;
+               outline-width: 0;
 
-               outline: none;
-               // remove outline in Firefox
+               // Remove the inner border and padding in Firefox.
                &::-moz-focus-inner {
                        border-color: transparent;
+                       padding: 0;
                }
        }
 
        &:active,
        &.is-on,
        &.mw-ui-checked {
-               background: @activeColor;
+               background-color: @activeColor;
                box-shadow: none;
        }
 }
@@ -95,7 +94,7 @@
        text-shadow: 0 1px rgba(0, 0, 0, .1);
 
        &:disabled {
-               background: @colorGray13;
+               background-color: @colorGray13;
                border-color: @colorGray13;
 
                // make sure disabled buttons don't have hover and active states
 
        &:hover,
        &:focus {
-               background: transparent;
+               background-color: transparent;
                color: @textColor;
        }
 
index 85bf9f6..563db00 100644 (file)
@@ -253,3 +253,9 @@ div.tright {
 div.tleft {
        margin: .5em 1.4em 1.3em 0;
 }
+
+/* Hide elements that are marked as "empty" according to legacy Tidy rules
+ */
+.mw-empty-elt, .mw-empty-li {
+       display: none;
+}
diff --git a/resources/src/mediawiki.skinning/images/external link icons.svg b/resources/src/mediawiki.skinning/images/external link icons.svg
deleted file mode 100644 (file)
index 6a67993..0000000
+++ /dev/null
@@ -1,697 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="13"
-   height="110"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.48.5 r10040"
-   sodipodi:docname="external link icons.svg">
-  <defs
-     id="defs4" />
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="15.999999"
-     inkscape:cx="10.40536"
-     inkscape:cy="65.686256"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer5"
-     showgrid="true"
-     fit-margin-top="0"
-     fit-margin-left="0"
-     fit-margin-right="0"
-     fit-margin-bottom="0"
-     inkscape:window-width="1283"
-     inkscape:window-height="711"
-     inkscape:window-x="1790"
-     inkscape:window-y="-6"
-     inkscape:window-maximized="0">
-    <inkscape:grid
-       type="xygrid"
-       id="grid3246"
-       empspacing="4"
-       visible="true"
-       enabled="true"
-       snapvisiblegridlinesonly="true"
-       originx="0px"
-       originy="-27.999997px" />
-  </sodipodi:namedview>
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:groupmode="layer"
-     id="layer2"
-     inkscape:label="base"
-     style="display:none"
-     transform="translate(-505,-869.36218)">
-    <rect
-       style="fill:#b3b3b3;fill-opacity:1;fill-rule:evenodd;stroke:none"
-       id="rect4646"
-       width="13"
-       height="12.999996"
-       x="505"
-       y="885.36218" />
-    <rect
-       style="fill:#b3b3b3;fill-opacity:1;fill-rule:evenodd;stroke:none"
-       id="rect4646-4"
-       width="13"
-       height="12.999998"
-       x="505"
-       y="901.36218" />
-    <rect
-       style="fill:#b3b3b3;fill-opacity:1;fill-rule:evenodd;stroke:none"
-       id="rect4646-4-6"
-       width="13"
-       height="12.999996"
-       x="505"
-       y="917.36218"
-       inkscape:export-filename="/home/rahah/elvidishu/steak/unreal/dev/skins/external link icons/mail.png"
-       inkscape:export-xdpi="90"
-       inkscape:export-ydpi="90" />
-    <rect
-       style="fill:#b3b3b3;fill-opacity:1;fill-rule:evenodd;stroke:none"
-       id="rect4646-4-6-9"
-       width="13"
-       height="12.999996"
-       x="505"
-       y="933.36218" />
-    <rect
-       style="fill:#b3b3b3;fill-opacity:1;fill-rule:evenodd;stroke:none"
-       id="rect4646-4-6-6"
-       width="13"
-       height="12.999996"
-       x="505"
-       y="950.36218" />
-    <rect
-       style="fill:#b3b3b3;fill-opacity:1;fill-rule:evenodd;stroke:none"
-       id="rect4646-4-6-2"
-       width="13"
-       height="12.999998"
-       x="505"
-       y="966.36218" />
-    <rect
-       style="fill:#b3b3b3;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline"
-       id="rect4646-44"
-       width="13"
-       height="12.999996"
-       x="505"
-       y="869.36218" />
-  </g>
-  <g
-     inkscape:label="sketch 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(-505,-869.36218)"
-     style="display:none"
-     sodipodi:insensitive="true">
-    <path
-       style="fill:none;stroke:#0066ff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       d="m 507,870.36218 0,5 3,0 4,4 0,-13 -4,4 z"
-       id="path3194"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccccccc" />
-    <path
-       style="fill:none;stroke:#5b9dff;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       d="m 517,869.36218 c 1,2 1,5 0,7"
-       id="path3196"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;stroke:#5b9dff;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       d="m 520,867.36218 c 2,2 2,9 0,11"
-       id="path3198"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;stroke:#0066ff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       d="m 507.93861,989.90562 0,15.99988 13,0 0,-10.99988 -5,-5 z"
-       id="path3200"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cccccc" />
-    <path
-       style="fill:none;stroke:#0066ff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       d="m 506.93861,918.90546 0,11.5 15,0 0,-11.5 z"
-       id="path3202"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccccc" />
-    <path
-       style="fill:none;stroke:#0066ff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       d="m 506.93861,918.90546 7.5,6 7.5,-6"
-       id="path3204"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccc" />
-    <path
-       style="fill:none;stroke:#5b9dff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       d="m 507.93861,890.90546 3,0"
-       id="path3212"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;stroke:#5b9dff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       d="m 507.93861,893.90546 3,0"
-       id="path3214"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;stroke:#5b9dff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       d="m 507.93861,899.90546 3,0"
-       id="path3218"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;stroke:#5b9dff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       d="m 507.93861,902.90546 3,0"
-       id="path3220"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;stroke:#5b9dff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       d="m 517.93861,890.90546 3,0"
-       id="path3222"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;stroke:#5b9dff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       d="m 507.93861,896.90546 13,0"
-       id="path3224"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;stroke:#5b9dff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       d="m 517.93861,893.90546 3,0"
-       id="path3226"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;stroke:#5b9dff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       d="m 517.93861,899.90546 3,0"
-       id="path3230"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;stroke:#5b9dff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       d="m 517.93861,902.90546 3,0"
-       id="path3232"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;stroke:#0066ff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       d="m 510.93861,890.90546 0,12 7,0 0,-12 z"
-       id="path3206"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccccc" />
-    <path
-       style="fill:none;stroke:#0066ff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       d="m 507.93861,888.90546 0,16"
-       id="path3208"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;stroke:#0066ff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       d="m 520.93861,888.90546 0,16"
-       id="path3210"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;stroke:#0066ff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       d="m 515.93861,989.90562 0,5 5,0"
-       id="path3234"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccc" />
-    <path
-       style="fill:none;stroke:#0066ff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       d="m 513.93861,969.40546 c -2,0 -5,0 -7,0 l 0,10.99995 11,5e-5 c 0,-2.33332 0,-4.66668 0,-7"
-       id="path3236"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccccc" />
-    <path
-       style="fill:none;stroke:#0066ff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:none"
-       d="m 513.93861,976.40546 5,-4 3,3 0,-10 -10,0 3,3 -4,5"
-       id="path3242"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccccccc" />
-    <path
-       style="fill:none;stroke:#0066ff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       d="m 506.93861,940.40546 15,0 0,10 -6,0 -6,4 1,-4 -4,0 z"
-       id="path3244"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cccccccc" />
-    <path
-       style="fill:none;stroke:#5b9dff;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       d="m 509.93861,972.40546 c 2,1 4,3 5,5"
-       id="path4641"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer4"
-     inkscape:label="sketch 2"
-     style="display:none"
-     transform="translate(0,-6.0000106)">
-    <path
-       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
-       d="m 8.4921988,1.0623917 -4.0641234,4.064123 -3.2512987,0 0,5.6897733 3.2512987,0 4.0641234,4.064124 z m -1.6256494,4.064124 0,5.6897733 -1.6256493,-1.6256493 -2.438474,-1e-6 0,-2.438474 2.438474,1e-6 z"
-       id="path4755-9"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cccccccccccccc" />
-    <path
-       style="fill:#15a5ea;fill-opacity:1;stroke:none;display:inline"
-       d="m 9.3050235,5.1265157 c 0,-0.812824 0.8128245,-1.625649 1.6256495,-0.812824 0,0 0.812825,0.812824 0.812825,3.251298 0,2.4384743 -0.812825,3.2512993 -0.812825,3.2512993 -0.812825,0.812825 -1.6256495,0 -1.6256495,-0.812825 0,0 0.8128245,-0.8128243 0.8128245,-2.4384743 0,-1.625649 -0.8128245,-2.438474 -0.8128245,-2.438474 z"
-       id="path4760-1"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccsccsc" />
-    <path
-       style="fill:#15a5ea;fill-opacity:1;stroke:none;display:inline"
-       d="m 11.743498,3.5008667 c 0,-0.812825 0.812824,-1.625649 1.625649,-0.812825 0,0 1.625649,1.62565 1.625649,4.876948 0,3.2512993 -1.625649,4.8769483 -1.625649,4.8769483 -0.812825,0.812825 -1.625649,0 -1.625649,-0.812824 0,0 1.625649,-1.62565 1.625649,-4.0641243 0,-2.438474 -1.625649,-4.064123 -1.625649,-4.064123 z"
-       id="path4762-8"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccsccsc" />
-    <path
-       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
-       d="m 2.8024261,23.008658 0,0.812825 10.5667209,0 0,-0.812825 z"
-       id="path4772"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccccc" />
-    <path
-       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
-       d="m 2.8024261,33.575379 10.5667209,0 0,-0.812825 -10.5667209,0 z"
-       id="path4774"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccccc" />
-    <path
-       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
-       d="m 2.8024261,25.447132 0,0.812824 2.438474,0 0,-0.812824 z m 8.1282469,0 0,0.812824 2.438474,0 0,-0.812824 z"
-       id="path4782"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cccccccccc" />
-    <path
-       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
-       d="m 2.8024261,30.32408 0,0.812824 2.438474,0 0,-0.812824 z m 8.1282469,0 0,0.812824 2.438474,0 0,-0.812824 z"
-       id="path4778"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cccccccccc" />
-    <path
-       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
-       d="m 2.8024261,28.698431 10.5667209,0 0,-0.812825 -10.5667209,0 z"
-       id="path4780"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccccc" />
-    <path
-       style="fill:#15a5ea;fill-opacity:1;stroke:none;display:inline"
-       d="m 5.2409001,27.479194 0,1.625649 5.6897729,0 0,-1.625649 z"
-       id="path4793"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccccc" />
-    <path
-       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
-       d="m 4.4280754,23.008658 0,10.56672 7.3154226,0 0,-10.56672 z m 1.6256494,1.625649 4.0641232,0 0,7.315422 -4.0641232,0 z"
-       id="path4768"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cccccccccc" />
-    <path
-       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
-       d="m 1.9896014,21.383009 1.6256493,0 0,13.818019 -1.6256493,0 z"
-       id="path4764"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccccc" />
-    <path
-       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
-       d="m 12.556322,21.383009 1.62565,0 0,13.818019 -1.62565,0 z"
-       id="path4766"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccccc" />
-    <path
-       style="fill:#15a5ea;fill-opacity:1;stroke:none;display:inline"
-       d="m 1.9896014,44.954923 6.096185,5.689773 6.0961856,-5.689773 -0.812825,-0.812825 -1.625649,0.813196 -3.6577116,3.251298 -3.657711,-3.251298 -1.6256493,-0.813196 z"
-       id="path4800-4"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccccccccc" />
-    <path
-       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
-       d="m 1.1767767,43.329273 0,11.379545 13.8180193,0 0,-11.379545 z m 1.6256494,1.625649 10.5667209,0 0,8.128247 -10.5667209,0 z"
-       id="path4795-8"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cccccccccc" />
-    <path
-       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
-       d="m 1.9896014,62.024243 -0.8128247,0.812824 0,8.128247 0.8128247,0.812825 2.438474,0 -0.8128247,3.251297 5.6897728,-3.251297 4.8769485,0 0.812824,-0.812825 0,-8.128247 -0.812824,-0.812824 z m 0.8128247,1.625649 10.5667209,0 0,6.502598 -4.0641235,0 -3.5815088,2.133664 0.9144278,-2.133664 -3.8355164,0 z"
-       id="path4802-8"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cccccccccccccccccccc" />
-    <path
-       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
-       d="m 4.4280754,82.344856 10.5667206,0 0,10.56672 -3.251298,-3.25129 -3.2512992,2.43847 -0.8128247,-0.81282 4.0641239,-3.2513 1.625649,1.62565 0,-5.68978 -5.6897729,0 1.6256494,1.62565 -3.2512987,4.06413 -0.8128247,-0.81283 2.438474,-3.2513 z"
-       id="path4807-5"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccccccccccccccc" />
-    <path
-       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
-       d="m 8.4921988,85.596156 -7.3154221,0 0,10.56672 10.5667213,0 0,-7.31542 -1.62565,0.81283 0,4.87694 -7.3154219,0 0,-7.31542 4.876948,0 z"
-       id="path4809-7"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccccccccccc" />
-    <path
-       style="fill:#15a5ea;fill-opacity:1;stroke:none;display:inline"
-       d="m 8.4921988,103.47831 0,4.87694 4.8769482,0 0,-1.62565 -3.251299,0 0,-3.25129 z"
-       id="path4818-67"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccccccc" />
-    <path
-       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
-       d="m 1.9896014,102.66548 0,13.81802 12.1923706,0 0,-10.13799 -3.657711,-3.68003 z m 1.6256493,1.62565 6.5025973,0 2.438474,2.43847 0,8.12825 -8.9410713,0 z"
-       id="path4813-2"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cccccccccccc" />
-    <path
-       style="fill:#15a5ea;fill-opacity:1;stroke:none;display:inline"
-       d="m 3.6152507,88.847456 c 0,-0.81282 0.8128247,-0.81282 0.8128247,-0.81282 2.438474,0.81282 4.0641234,2.43847 4.8769481,4.87694 0,0 0,0.81283 -0.8128247,0.81283 -1.6256494,-2.43847 -2.438474,-3.2513 -4.8769481,-4.87695 z"
-       id="path4822-8"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccccc" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer3"
-     inkscape:label="Layer"
-     style="display:none"
-     transform="translate(-10,-26.000007)">
-    <path
-       style="fill:#3366bb;fill-opacity:1;stroke:none"
-       d="m 19,20.999995 -4,4 -3,0 0,6 3,0 4,4 z m -1,2.5 0,9 -2.6,-2.5 -2.4,0 0,-4 2.5,0 z"
-       id="path4755"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cccccccccccccc" />
-    <path
-       style="fill:#15a5ea;fill-opacity:1;stroke:none"
-       d="m 19.75,24.999995 c 0,-1 0.75,-1 0.75,-1 0,0 1.5,1.029412 1.5,3.5 0,2.470588 -1.5,3.5 -1.5,3.5 0,0 -0.75,0 -0.75,-1 0,0 1,-0.852941 1,-2.5 0,-1.647059 -1,-2.5 -1,-2.5 z"
-       id="path4760"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccsccsc" />
-    <path
-       style="fill:#15a5ea;fill-opacity:1;stroke:none"
-       d="m 22.25,23.999995 c 0,-1 0.75,-1 0.75,-1 0,0 2,1.205882 2,4.5 0,3.294118 -2,4.5 -2,4.5 0,0 -0.75,0 -0.75,-1 0,0 1.5,-1.029412 1.5,-3.5 0,-2.470588 -1.5,-3.5 -1.5,-3.5 z"
-       id="path4762"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccsccsc" />
-    <path
-       style="fill:#3366bb;fill-opacity:1;stroke:none"
-       d="m 31.4375,79.875 -1,1 0,10 1,1 3,0 -1,4 7,-4 6,0 1,-1 0,-10 -1,-1 z m 1,2 13,0 0,8 -5,0 -4.40625,2.625 1.125,-2.625 -4.71875,0 z"
-       id="path4802"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cccccccccccccccccccc" />
-    <path
-       style="fill:#3366bb;fill-opacity:1;stroke:none"
-       d="m 35.125,98.8125 13,0 0,13 -4,-4 -4,3 -1,-1 5,-4 2,2 0,-7 -7,0 2,2 -4,5 -1,-1 3,-4 z"
-       id="path4807"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#3366bb;fill-opacity:1;stroke:none"
-       d="m 40.125,102.8125 -9,0 0,13 13,0 0,-9 -2,1 0,6 -9,0 0,-9 6,0 z"
-       id="path4809"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#15a5ea;fill-opacity:1;stroke:none"
-       d="m 34.125,106.8125 c 0,-1 1,-1 1,-1 3,1 5,3 6,6 0,0 0,1 -1,1 -2,-3 -3,-4 -6,-6 z"
-       id="path4822"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccccc" />
-    <path
-       style="fill:#15a5ea;fill-opacity:1;fill-rule:evenodd;stroke:none"
-       d="m 12,50.499995 0,1 3,0 0,-1 -3,0 z m 9,0 0,1 3,0 0,-1 -3,0 z"
-       id="rect4841"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#15a5ea;fill-opacity:1;fill-rule:evenodd;stroke:none"
-       d="m 12,44.499995 0,1 3,0 0,-1 -3,0 z m 9,0 0,1 3,0 0,-1 -3,0 z"
-       id="rect4843"
-       inkscape:connector-curvature="0" />
-    <path
-       inkscape:connector-curvature="0"
-       style="fill:#15a5ea;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline"
-       d="m 12,52.999995 0,1 3,0 0,-1 z m 9,0 0,1 3,0 0,-1 z"
-       id="rect4843-1"
-       sodipodi:nodetypes="cccccccccc" />
-    <path
-       inkscape:connector-curvature="0"
-       style="fill:#15a5ea;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline"
-       d="m 12,41.999995 0,1 3,0 0,-1 z m 9,0 0,1 3,0 0,-1 z"
-       id="rect4843-17"
-       sodipodi:nodetypes="cccccccccc" />
-    <path
-       style="fill:#15a5ea;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline"
-       d="m 12,47.499995 0,1 3,0 0,-1 z m 9,0 0,1 3,0 0,-1 z"
-       id="rect4841-9"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cccccccccc" />
-    <rect
-       style="fill:#15a5ea;fill-opacity:1;fill-rule:evenodd;stroke:none"
-       id="rect4835"
-       width="7"
-       height="2"
-       x="4"
-       y="27"
-       transform="translate(10,19.999995)" />
-    <path
-       style="fill:#3366bb;fill-opacity:1;stroke:none"
-       d="m 2,21 1,0 0,14 -1,0 z"
-       id="path4826"
-       inkscape:connector-curvature="0"
-       transform="translate(10,19.999995)"
-       sodipodi:nodetypes="ccccc" />
-    <path
-       style="fill:#3366bb;fill-opacity:1;stroke:none"
-       d="m 13,21 1,0 0,14 -1,0 z"
-       id="path4828"
-       inkscape:connector-curvature="0"
-       transform="translate(10,19.999995)"
-       sodipodi:nodetypes="ccccc" />
-    <path
-       style="fill:#3366bb;fill-opacity:1;stroke:none"
-       d="m 4,22 0,12 8,0 0,-12 z m 1,1 6,0 0,10 -6,0 z"
-       transform="translate(10,19.999995)"
-       id="path4830"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cccccccccc" />
-    <rect
-       style="fill:#3366bb;fill-opacity:1;fill-rule:evenodd;stroke:none"
-       id="rect4837"
-       width="8"
-       height="1"
-       x="4"
-       y="22"
-       transform="translate(10,19.999995)" />
-    <rect
-       style="fill:#3366bb;fill-opacity:1;fill-rule:evenodd;stroke:none"
-       id="rect4839"
-       width="8"
-       height="1"
-       x="4"
-       y="33"
-       transform="translate(10,19.999995)" />
-    <path
-       style="fill:#15a5ea;fill-opacity:1;stroke:none"
-       d="m 12,64.999995 6,5 6,-5 0.53033,-1.45299 -1.28033,0.45299 -5.25,4.5 -5.25,-4.5 -1.236136,-0.53033 z"
-       id="path4910"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccccccccc" />
-    <path
-       style="fill:#3366bb;fill-opacity:1;stroke:none"
-       d="m 11,62.999995 0,10 14,0 0,-10 z m 1,1 12,0 0,8 -12,0 z"
-       id="path4905"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cccccccccc" />
-    <path
-       style="fill:#15a5ea;fill-opacity:1;stroke:none;display:inline"
-       d="m 19,121 0,5 5,0 -1,-1 -3,0 0,-3 z"
-       id="path4818-6"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccccccc" />
-    <path
-       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
-       d="m 12,121 0,14 12,0 0,-10 -4,-4 z m 1,1 6.5,0 3.5,3.5 0,8.5 -10,0 z"
-       id="path4813-3"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cccccccccccc" />
-  </g>
-  <g
-     inkscape:groupmode="layer"
-     id="layer5"
-     inkscape:label="Layer#1"
-     style="opacity:0.98999999"
-     transform="translate(0,-6.0000106)">
-    <path
-       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
-       d="m 7,23.000004 -3,3 -3,0 0,4 3,0 3,3 z m -1,2.500001 0,5 -1.5,-1.500001 -2.5,0 0,-2 2.5,0 z"
-       id="path4755-9-5"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cccccccccccccc" />
-    <path
-       style="fill:#15a5ea;fill-opacity:1;stroke:none;display:inline"
-       d="m 7.4319858,26.075368 c 0,-0.621323 0.6213237,-1.242647 1.2426477,-0.621323 0,0 0.6213228,0.621323 0.6213228,2.485294 0,1.863971 -0.6213228,2.485294 -0.6213228,2.485294 -0.621324,0.621324 -1.2426477,0 -1.2426477,-0.621323 0,0 0.6213237,-0.621324 0.6213237,-1.863971 0,-1.242648 -0.6213237,-1.863971 -0.6213237,-1.863971 z"
-       id="path4760-1-7"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccsccsc" />
-    <path
-       style="fill:#15a5ea;fill-opacity:1;stroke:none;display:inline"
-       d="m 9.2959563,24.832721 c 0,-0.621324 0.6213228,-1.242647 1.2426477,-0.621324 0,0 1.242646,1.242648 1.242646,3.727942 0,2.485294 -1.242646,3.727941 -1.242646,3.727941 -0.6213249,0.621324 -1.2426477,0 -1.2426477,-0.621323 0,0 1.2426477,-1.242647 1.2426477,-3.106618 0,-1.863971 -1.2426477,-3.106618 -1.2426477,-3.106618 z"
-       id="path4762-8-3"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccsccsc" />
-    <path
-       style="fill:#15a5ea;fill-opacity:0.99215686;stroke:none;display:inline"
-       d="m 2.4916056,40.000004 0,0.621323 8.0979164,0 0,-0.621323 z"
-       id="path4772-4"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccccc" />
-    <path
-       style="fill:#15a5ea;fill-opacity:0.99215686;stroke:none;display:inline"
-       d="m 2.4916056,48.000004 8.0979164,0 0,-0.621324 -8.0979164,0 z"
-       id="path4774-6"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccccc" />
-    <path
-       style="fill:#15a5ea;fill-opacity:0.99215686;stroke:none;display:inline"
-       d="m 2.4916056,41.919118 0,0.621323 1.8687499,0 0,-0.621323 z m 6.2291665,0 0,0.621323 1.8687499,0 0,-0.621323 z"
-       id="path4782-3"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cccccccccc" />
-    <path
-       style="fill:#15a5ea;fill-opacity:0.99215686;stroke:none;display:inline"
-       d="m 2.4916056,45.589344 0,0.621322 1.8687499,0 0,-0.621322 z m 6.2291665,0 0,0.621322 1.8687499,0 0,-0.621322 z"
-       id="path4778-9"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cccccccccc" />
-    <path
-       style="fill:#15a5ea;fill-opacity:0.99215686;stroke:none;display:inline"
-       d="m 2.4916056,44.404412 8.0979164,0 0,-0.621323 -8.0979164,0 z"
-       id="path4780-0"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccccc" />
-    <path
-       style="fill:#15a5ea;fill-opacity:1;stroke:none;display:inline"
-       d="m 4.3603555,43.472427 0,1.242647 4.3604166,0 0,-1.242647 z"
-       id="path4793-0"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccccc" />
-    <path
-       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
-       d="m 4,40.000004 0,8 5,0 0,-8 z m 1,1 3,0 0,6 -3,0 z"
-       id="path4768-5"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cccccccccc" />
-    <path
-       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
-       d="m 2,39.000004 1,0 0,10 -1,0 z"
-       id="path4764-1"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccccc" />
-    <path
-       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
-       d="m 10,39.000004 1,0 0,10 -1,0 z"
-       id="path4766-6"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccccc" />
-    <path
-       style="fill:#15a5ea;fill-opacity:1;stroke:none;display:inline"
-       d="M 1.8400738,58.055766 6.5000005,62.405031 11.159927,58.055766 10.538604,57.434442 9.2959563,58.056049 6.5000005,60.541343 3.7040445,58.056049 2.4613977,57.434442 z"
-       id="path4800-4-9"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccccccccc"
-       inkscape:export-filename="/home/rahah/elvidishu/steak/unreal/dev/skins/external link icons/mail.png"
-       inkscape:export-xdpi="90"
-       inkscape:export-ydpi="90" />
-    <path
-       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
-       d="m 1,57.000008 0,8 11,0 0,-8 z m 1,1 9,0 0,6 -9,0 z"
-       id="path4795-8-2"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cccccccccc"
-       inkscape:export-filename="/home/rahah/elvidishu/steak/unreal/dev/skins/external link icons/mail.png"
-       inkscape:export-xdpi="90"
-       inkscape:export-ydpi="90" />
-    <path
-       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
-       d="M 1.6213238,72.000004 1,72.621328 l 0,5.757352 0.6213238,0.621324 1.6894529,0 L 2.6894528,81.727943 7,79.000004 l 4.378677,0 L 12,78.37868 12,72.621328 11.378677,72.000004 z m 0.3786762,1 9,0 0,5 -4,0 L 4.0978858,79.896603 5,78.000004 l -3,0 z"
-       id="path4802-8-9"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cccccccccccccccccccc" />
-    <path
-       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
-       d="m 5,88.000004 7,0 0,7 -2,-2 -3,2 0,-1 3,-2.249999 1,1 0,-3.750001 -3.75,0 1,1 -2.25,3 -1,0 2,-3 z"
-       id="path4807-5-6"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccccccccccccccc" />
-    <path
-       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
-       d="m 7,90.000004 -5,0 0,8 8,0 0,-5 -1,0 0,4 -6,0 0,-6 4,0 z"
-       id="path4809-7-3"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccccccccccc" />
-    <path
-       style="fill:#15a5ea;fill-opacity:1;stroke:none;display:inline"
-       d="m 7.5,105.00001 0,3 2.5,0 1,-1 -2.5,0 0,-3 z"
-       id="path4818-67-7"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccccccc" />
-    <path
-       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
-       d="m 3,104 0,10 8,1e-5 0,-7 -2.5,-3 z m 1,1 4,1e-5 2,2.50001 0,5.49999 -6,0 z"
-       id="path4813-2-2"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cccccccccccc" />
-    <path
-       style="fill:#15a5ea;fill-opacity:1;stroke:none;display:inline"
-       d="m 4.0827206,92.533089 c 0,-0.621319 0.6213239,-0.621319 0.6213239,-0.621319 1.8639706,0.621319 3.1066175,1.863968 3.7279413,3.727935 0,0 0,0.621328 -0.6213238,0.621328 C 6.5680151,94.397065 5.9466913,93.775738 4.0827206,92.533089 z"
-       id="path4822-8-2"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccccc" />
-    <path
-       style="fill:#3465ba;fill-opacity:1;stroke:none;display:inline"
-       d="m 1,8.500006 0,7.5001 1,-0.9872 0,-6.0129 2,0 2,1 4,-2e-4 0,2.0002 1,0 0,-2.5 -0.5,-0.5002 -4.5,2e-4 -2,-1 -2.5,0 z"
-       id="path3209"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccccccccccccccc" />
-    <path
-       style="fill:#16a4e8;fill-opacity:1;stroke:none;display:inline"
-       d="m 6,11.000106 -1,-10e-5 -2.5,0 -0.5,0.5 -1,4.5001 10,-10e-5 0,-4.4998 -0.5,-0.5 z m 0,1 4,-10e-5 0,3 -7.75,-1e-4 0.75,-3.0001 2,0 z"
-       id="path3215"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cccccccccccccccc" />
-    <path
-       style="fill:#3465ba;fill-opacity:1;stroke:none;display:inline"
-       d="m 2,17.000006 0,1 8,0 0,-1 z"
-       id="path3247"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccccc" />
-    <path
-       style="fill:#3465ba;fill-opacity:1;stroke:none;display:inline"
-       d="m 5,15.500006 0,2 2,0 0,-2 c 0,-0.5 -2,-0.5 -2,0 z"
-       id="path3249"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccccc" />
-  </g>
-</svg>
diff --git a/resources/src/mediawiki.skinning/images/external-link-icons.svg b/resources/src/mediawiki.skinning/images/external-link-icons.svg
new file mode 100644 (file)
index 0000000..6a67993
--- /dev/null
@@ -0,0 +1,697 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="13"
+   height="110"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.48.5 r10040"
+   sodipodi:docname="external link icons.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="15.999999"
+     inkscape:cx="10.40536"
+     inkscape:cy="65.686256"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer5"
+     showgrid="true"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-width="1283"
+     inkscape:window-height="711"
+     inkscape:window-x="1790"
+     inkscape:window-y="-6"
+     inkscape:window-maximized="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid3246"
+       empspacing="4"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true"
+       originx="0px"
+       originy="-27.999997px" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="base"
+     style="display:none"
+     transform="translate(-505,-869.36218)">
+    <rect
+       style="fill:#b3b3b3;fill-opacity:1;fill-rule:evenodd;stroke:none"
+       id="rect4646"
+       width="13"
+       height="12.999996"
+       x="505"
+       y="885.36218" />
+    <rect
+       style="fill:#b3b3b3;fill-opacity:1;fill-rule:evenodd;stroke:none"
+       id="rect4646-4"
+       width="13"
+       height="12.999998"
+       x="505"
+       y="901.36218" />
+    <rect
+       style="fill:#b3b3b3;fill-opacity:1;fill-rule:evenodd;stroke:none"
+       id="rect4646-4-6"
+       width="13"
+       height="12.999996"
+       x="505"
+       y="917.36218"
+       inkscape:export-filename="/home/rahah/elvidishu/steak/unreal/dev/skins/external link icons/mail.png"
+       inkscape:export-xdpi="90"
+       inkscape:export-ydpi="90" />
+    <rect
+       style="fill:#b3b3b3;fill-opacity:1;fill-rule:evenodd;stroke:none"
+       id="rect4646-4-6-9"
+       width="13"
+       height="12.999996"
+       x="505"
+       y="933.36218" />
+    <rect
+       style="fill:#b3b3b3;fill-opacity:1;fill-rule:evenodd;stroke:none"
+       id="rect4646-4-6-6"
+       width="13"
+       height="12.999996"
+       x="505"
+       y="950.36218" />
+    <rect
+       style="fill:#b3b3b3;fill-opacity:1;fill-rule:evenodd;stroke:none"
+       id="rect4646-4-6-2"
+       width="13"
+       height="12.999998"
+       x="505"
+       y="966.36218" />
+    <rect
+       style="fill:#b3b3b3;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline"
+       id="rect4646-44"
+       width="13"
+       height="12.999996"
+       x="505"
+       y="869.36218" />
+  </g>
+  <g
+     inkscape:label="sketch 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-505,-869.36218)"
+     style="display:none"
+     sodipodi:insensitive="true">
+    <path
+       style="fill:none;stroke:#0066ff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m 507,870.36218 0,5 3,0 4,4 0,-13 -4,4 z"
+       id="path3194"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccccc" />
+    <path
+       style="fill:none;stroke:#5b9dff;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m 517,869.36218 c 1,2 1,5 0,7"
+       id="path3196"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#5b9dff;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m 520,867.36218 c 2,2 2,9 0,11"
+       id="path3198"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#0066ff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m 507.93861,989.90562 0,15.99988 13,0 0,-10.99988 -5,-5 z"
+       id="path3200"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccc" />
+    <path
+       style="fill:none;stroke:#0066ff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m 506.93861,918.90546 0,11.5 15,0 0,-11.5 z"
+       id="path3202"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:none;stroke:#0066ff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m 506.93861,918.90546 7.5,6 7.5,-6"
+       id="path3204"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccc" />
+    <path
+       style="fill:none;stroke:#5b9dff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m 507.93861,890.90546 3,0"
+       id="path3212"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#5b9dff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m 507.93861,893.90546 3,0"
+       id="path3214"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#5b9dff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m 507.93861,899.90546 3,0"
+       id="path3218"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#5b9dff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m 507.93861,902.90546 3,0"
+       id="path3220"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#5b9dff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m 517.93861,890.90546 3,0"
+       id="path3222"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#5b9dff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m 507.93861,896.90546 13,0"
+       id="path3224"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#5b9dff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m 517.93861,893.90546 3,0"
+       id="path3226"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#5b9dff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m 517.93861,899.90546 3,0"
+       id="path3230"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#5b9dff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m 517.93861,902.90546 3,0"
+       id="path3232"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#0066ff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m 510.93861,890.90546 0,12 7,0 0,-12 z"
+       id="path3206"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:none;stroke:#0066ff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m 507.93861,888.90546 0,16"
+       id="path3208"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#0066ff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m 520.93861,888.90546 0,16"
+       id="path3210"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#0066ff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m 515.93861,989.90562 0,5 5,0"
+       id="path3234"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccc" />
+    <path
+       style="fill:none;stroke:#0066ff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m 513.93861,969.40546 c -2,0 -5,0 -7,0 l 0,10.99995 11,5e-5 c 0,-2.33332 0,-4.66668 0,-7"
+       id="path3236"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:none;stroke:#0066ff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:none"
+       d="m 513.93861,976.40546 5,-4 3,3 0,-10 -10,0 3,3 -4,5"
+       id="path3242"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccccc" />
+    <path
+       style="fill:none;stroke:#0066ff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m 506.93861,940.40546 15,0 0,10 -6,0 -6,4 1,-4 -4,0 z"
+       id="path3244"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccc" />
+    <path
+       style="fill:none;stroke:#5b9dff;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m 509.93861,972.40546 c 2,1 4,3 5,5"
+       id="path4641"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer4"
+     inkscape:label="sketch 2"
+     style="display:none"
+     transform="translate(0,-6.0000106)">
+    <path
+       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
+       d="m 8.4921988,1.0623917 -4.0641234,4.064123 -3.2512987,0 0,5.6897733 3.2512987,0 4.0641234,4.064124 z m -1.6256494,4.064124 0,5.6897733 -1.6256493,-1.6256493 -2.438474,-1e-6 0,-2.438474 2.438474,1e-6 z"
+       id="path4755-9"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccccccccc" />
+    <path
+       style="fill:#15a5ea;fill-opacity:1;stroke:none;display:inline"
+       d="m 9.3050235,5.1265157 c 0,-0.812824 0.8128245,-1.625649 1.6256495,-0.812824 0,0 0.812825,0.812824 0.812825,3.251298 0,2.4384743 -0.812825,3.2512993 -0.812825,3.2512993 -0.812825,0.812825 -1.6256495,0 -1.6256495,-0.812825 0,0 0.8128245,-0.8128243 0.8128245,-2.4384743 0,-1.625649 -0.8128245,-2.438474 -0.8128245,-2.438474 z"
+       id="path4760-1"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccsccsc" />
+    <path
+       style="fill:#15a5ea;fill-opacity:1;stroke:none;display:inline"
+       d="m 11.743498,3.5008667 c 0,-0.812825 0.812824,-1.625649 1.625649,-0.812825 0,0 1.625649,1.62565 1.625649,4.876948 0,3.2512993 -1.625649,4.8769483 -1.625649,4.8769483 -0.812825,0.812825 -1.625649,0 -1.625649,-0.812824 0,0 1.625649,-1.62565 1.625649,-4.0641243 0,-2.438474 -1.625649,-4.064123 -1.625649,-4.064123 z"
+       id="path4762-8"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccsccsc" />
+    <path
+       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
+       d="m 2.8024261,23.008658 0,0.812825 10.5667209,0 0,-0.812825 z"
+       id="path4772"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
+       d="m 2.8024261,33.575379 10.5667209,0 0,-0.812825 -10.5667209,0 z"
+       id="path4774"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
+       d="m 2.8024261,25.447132 0,0.812824 2.438474,0 0,-0.812824 z m 8.1282469,0 0,0.812824 2.438474,0 0,-0.812824 z"
+       id="path4782"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccccc" />
+    <path
+       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
+       d="m 2.8024261,30.32408 0,0.812824 2.438474,0 0,-0.812824 z m 8.1282469,0 0,0.812824 2.438474,0 0,-0.812824 z"
+       id="path4778"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccccc" />
+    <path
+       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
+       d="m 2.8024261,28.698431 10.5667209,0 0,-0.812825 -10.5667209,0 z"
+       id="path4780"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#15a5ea;fill-opacity:1;stroke:none;display:inline"
+       d="m 5.2409001,27.479194 0,1.625649 5.6897729,0 0,-1.625649 z"
+       id="path4793"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
+       d="m 4.4280754,23.008658 0,10.56672 7.3154226,0 0,-10.56672 z m 1.6256494,1.625649 4.0641232,0 0,7.315422 -4.0641232,0 z"
+       id="path4768"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccccc" />
+    <path
+       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
+       d="m 1.9896014,21.383009 1.6256493,0 0,13.818019 -1.6256493,0 z"
+       id="path4764"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
+       d="m 12.556322,21.383009 1.62565,0 0,13.818019 -1.62565,0 z"
+       id="path4766"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#15a5ea;fill-opacity:1;stroke:none;display:inline"
+       d="m 1.9896014,44.954923 6.096185,5.689773 6.0961856,-5.689773 -0.812825,-0.812825 -1.625649,0.813196 -3.6577116,3.251298 -3.657711,-3.251298 -1.6256493,-0.813196 z"
+       id="path4800-4"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccccccc" />
+    <path
+       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
+       d="m 1.1767767,43.329273 0,11.379545 13.8180193,0 0,-11.379545 z m 1.6256494,1.625649 10.5667209,0 0,8.128247 -10.5667209,0 z"
+       id="path4795-8"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccccc" />
+    <path
+       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
+       d="m 1.9896014,62.024243 -0.8128247,0.812824 0,8.128247 0.8128247,0.812825 2.438474,0 -0.8128247,3.251297 5.6897728,-3.251297 4.8769485,0 0.812824,-0.812825 0,-8.128247 -0.812824,-0.812824 z m 0.8128247,1.625649 10.5667209,0 0,6.502598 -4.0641235,0 -3.5815088,2.133664 0.9144278,-2.133664 -3.8355164,0 z"
+       id="path4802-8"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccccccccccccccc" />
+    <path
+       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
+       d="m 4.4280754,82.344856 10.5667206,0 0,10.56672 -3.251298,-3.25129 -3.2512992,2.43847 -0.8128247,-0.81282 4.0641239,-3.2513 1.625649,1.62565 0,-5.68978 -5.6897729,0 1.6256494,1.62565 -3.2512987,4.06413 -0.8128247,-0.81283 2.438474,-3.2513 z"
+       id="path4807-5"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccccccccccccc" />
+    <path
+       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
+       d="m 8.4921988,85.596156 -7.3154221,0 0,10.56672 10.5667213,0 0,-7.31542 -1.62565,0.81283 0,4.87694 -7.3154219,0 0,-7.31542 4.876948,0 z"
+       id="path4809-7"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccccccccc" />
+    <path
+       style="fill:#15a5ea;fill-opacity:1;stroke:none;display:inline"
+       d="m 8.4921988,103.47831 0,4.87694 4.8769482,0 0,-1.62565 -3.251299,0 0,-3.25129 z"
+       id="path4818-67"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccccc" />
+    <path
+       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
+       d="m 1.9896014,102.66548 0,13.81802 12.1923706,0 0,-10.13799 -3.657711,-3.68003 z m 1.6256493,1.62565 6.5025973,0 2.438474,2.43847 0,8.12825 -8.9410713,0 z"
+       id="path4813-2"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccccccc" />
+    <path
+       style="fill:#15a5ea;fill-opacity:1;stroke:none;display:inline"
+       d="m 3.6152507,88.847456 c 0,-0.81282 0.8128247,-0.81282 0.8128247,-0.81282 2.438474,0.81282 4.0641234,2.43847 4.8769481,4.87694 0,0 0,0.81283 -0.8128247,0.81283 -1.6256494,-2.43847 -2.438474,-3.2513 -4.8769481,-4.87695 z"
+       id="path4822-8"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccc" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer3"
+     inkscape:label="Layer"
+     style="display:none"
+     transform="translate(-10,-26.000007)">
+    <path
+       style="fill:#3366bb;fill-opacity:1;stroke:none"
+       d="m 19,20.999995 -4,4 -3,0 0,6 3,0 4,4 z m -1,2.5 0,9 -2.6,-2.5 -2.4,0 0,-4 2.5,0 z"
+       id="path4755"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccccccccc" />
+    <path
+       style="fill:#15a5ea;fill-opacity:1;stroke:none"
+       d="m 19.75,24.999995 c 0,-1 0.75,-1 0.75,-1 0,0 1.5,1.029412 1.5,3.5 0,2.470588 -1.5,3.5 -1.5,3.5 0,0 -0.75,0 -0.75,-1 0,0 1,-0.852941 1,-2.5 0,-1.647059 -1,-2.5 -1,-2.5 z"
+       id="path4760"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccsccsc" />
+    <path
+       style="fill:#15a5ea;fill-opacity:1;stroke:none"
+       d="m 22.25,23.999995 c 0,-1 0.75,-1 0.75,-1 0,0 2,1.205882 2,4.5 0,3.294118 -2,4.5 -2,4.5 0,0 -0.75,0 -0.75,-1 0,0 1.5,-1.029412 1.5,-3.5 0,-2.470588 -1.5,-3.5 -1.5,-3.5 z"
+       id="path4762"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccsccsc" />
+    <path
+       style="fill:#3366bb;fill-opacity:1;stroke:none"
+       d="m 31.4375,79.875 -1,1 0,10 1,1 3,0 -1,4 7,-4 6,0 1,-1 0,-10 -1,-1 z m 1,2 13,0 0,8 -5,0 -4.40625,2.625 1.125,-2.625 -4.71875,0 z"
+       id="path4802"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccccccccccccccc" />
+    <path
+       style="fill:#3366bb;fill-opacity:1;stroke:none"
+       d="m 35.125,98.8125 13,0 0,13 -4,-4 -4,3 -1,-1 5,-4 2,2 0,-7 -7,0 2,2 -4,5 -1,-1 3,-4 z"
+       id="path4807"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#3366bb;fill-opacity:1;stroke:none"
+       d="m 40.125,102.8125 -9,0 0,13 13,0 0,-9 -2,1 0,6 -9,0 0,-9 6,0 z"
+       id="path4809"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#15a5ea;fill-opacity:1;stroke:none"
+       d="m 34.125,106.8125 c 0,-1 1,-1 1,-1 3,1 5,3 6,6 0,0 0,1 -1,1 -2,-3 -3,-4 -6,-6 z"
+       id="path4822"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#15a5ea;fill-opacity:1;fill-rule:evenodd;stroke:none"
+       d="m 12,50.499995 0,1 3,0 0,-1 -3,0 z m 9,0 0,1 3,0 0,-1 -3,0 z"
+       id="rect4841"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#15a5ea;fill-opacity:1;fill-rule:evenodd;stroke:none"
+       d="m 12,44.499995 0,1 3,0 0,-1 -3,0 z m 9,0 0,1 3,0 0,-1 -3,0 z"
+       id="rect4843"
+       inkscape:connector-curvature="0" />
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:#15a5ea;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline"
+       d="m 12,52.999995 0,1 3,0 0,-1 z m 9,0 0,1 3,0 0,-1 z"
+       id="rect4843-1"
+       sodipodi:nodetypes="cccccccccc" />
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:#15a5ea;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline"
+       d="m 12,41.999995 0,1 3,0 0,-1 z m 9,0 0,1 3,0 0,-1 z"
+       id="rect4843-17"
+       sodipodi:nodetypes="cccccccccc" />
+    <path
+       style="fill:#15a5ea;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline"
+       d="m 12,47.499995 0,1 3,0 0,-1 z m 9,0 0,1 3,0 0,-1 z"
+       id="rect4841-9"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccccc" />
+    <rect
+       style="fill:#15a5ea;fill-opacity:1;fill-rule:evenodd;stroke:none"
+       id="rect4835"
+       width="7"
+       height="2"
+       x="4"
+       y="27"
+       transform="translate(10,19.999995)" />
+    <path
+       style="fill:#3366bb;fill-opacity:1;stroke:none"
+       d="m 2,21 1,0 0,14 -1,0 z"
+       id="path4826"
+       inkscape:connector-curvature="0"
+       transform="translate(10,19.999995)"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#3366bb;fill-opacity:1;stroke:none"
+       d="m 13,21 1,0 0,14 -1,0 z"
+       id="path4828"
+       inkscape:connector-curvature="0"
+       transform="translate(10,19.999995)"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#3366bb;fill-opacity:1;stroke:none"
+       d="m 4,22 0,12 8,0 0,-12 z m 1,1 6,0 0,10 -6,0 z"
+       transform="translate(10,19.999995)"
+       id="path4830"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccccc" />
+    <rect
+       style="fill:#3366bb;fill-opacity:1;fill-rule:evenodd;stroke:none"
+       id="rect4837"
+       width="8"
+       height="1"
+       x="4"
+       y="22"
+       transform="translate(10,19.999995)" />
+    <rect
+       style="fill:#3366bb;fill-opacity:1;fill-rule:evenodd;stroke:none"
+       id="rect4839"
+       width="8"
+       height="1"
+       x="4"
+       y="33"
+       transform="translate(10,19.999995)" />
+    <path
+       style="fill:#15a5ea;fill-opacity:1;stroke:none"
+       d="m 12,64.999995 6,5 6,-5 0.53033,-1.45299 -1.28033,0.45299 -5.25,4.5 -5.25,-4.5 -1.236136,-0.53033 z"
+       id="path4910"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccccccc" />
+    <path
+       style="fill:#3366bb;fill-opacity:1;stroke:none"
+       d="m 11,62.999995 0,10 14,0 0,-10 z m 1,1 12,0 0,8 -12,0 z"
+       id="path4905"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccccc" />
+    <path
+       style="fill:#15a5ea;fill-opacity:1;stroke:none;display:inline"
+       d="m 19,121 0,5 5,0 -1,-1 -3,0 0,-3 z"
+       id="path4818-6"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccccc" />
+    <path
+       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
+       d="m 12,121 0,14 12,0 0,-10 -4,-4 z m 1,1 6.5,0 3.5,3.5 0,8.5 -10,0 z"
+       id="path4813-3"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccccccc" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer5"
+     inkscape:label="Layer#1"
+     style="opacity:0.98999999"
+     transform="translate(0,-6.0000106)">
+    <path
+       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
+       d="m 7,23.000004 -3,3 -3,0 0,4 3,0 3,3 z m -1,2.500001 0,5 -1.5,-1.500001 -2.5,0 0,-2 2.5,0 z"
+       id="path4755-9-5"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccccccccc" />
+    <path
+       style="fill:#15a5ea;fill-opacity:1;stroke:none;display:inline"
+       d="m 7.4319858,26.075368 c 0,-0.621323 0.6213237,-1.242647 1.2426477,-0.621323 0,0 0.6213228,0.621323 0.6213228,2.485294 0,1.863971 -0.6213228,2.485294 -0.6213228,2.485294 -0.621324,0.621324 -1.2426477,0 -1.2426477,-0.621323 0,0 0.6213237,-0.621324 0.6213237,-1.863971 0,-1.242648 -0.6213237,-1.863971 -0.6213237,-1.863971 z"
+       id="path4760-1-7"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccsccsc" />
+    <path
+       style="fill:#15a5ea;fill-opacity:1;stroke:none;display:inline"
+       d="m 9.2959563,24.832721 c 0,-0.621324 0.6213228,-1.242647 1.2426477,-0.621324 0,0 1.242646,1.242648 1.242646,3.727942 0,2.485294 -1.242646,3.727941 -1.242646,3.727941 -0.6213249,0.621324 -1.2426477,0 -1.2426477,-0.621323 0,0 1.2426477,-1.242647 1.2426477,-3.106618 0,-1.863971 -1.2426477,-3.106618 -1.2426477,-3.106618 z"
+       id="path4762-8-3"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccsccsc" />
+    <path
+       style="fill:#15a5ea;fill-opacity:0.99215686;stroke:none;display:inline"
+       d="m 2.4916056,40.000004 0,0.621323 8.0979164,0 0,-0.621323 z"
+       id="path4772-4"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#15a5ea;fill-opacity:0.99215686;stroke:none;display:inline"
+       d="m 2.4916056,48.000004 8.0979164,0 0,-0.621324 -8.0979164,0 z"
+       id="path4774-6"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#15a5ea;fill-opacity:0.99215686;stroke:none;display:inline"
+       d="m 2.4916056,41.919118 0,0.621323 1.8687499,0 0,-0.621323 z m 6.2291665,0 0,0.621323 1.8687499,0 0,-0.621323 z"
+       id="path4782-3"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccccc" />
+    <path
+       style="fill:#15a5ea;fill-opacity:0.99215686;stroke:none;display:inline"
+       d="m 2.4916056,45.589344 0,0.621322 1.8687499,0 0,-0.621322 z m 6.2291665,0 0,0.621322 1.8687499,0 0,-0.621322 z"
+       id="path4778-9"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccccc" />
+    <path
+       style="fill:#15a5ea;fill-opacity:0.99215686;stroke:none;display:inline"
+       d="m 2.4916056,44.404412 8.0979164,0 0,-0.621323 -8.0979164,0 z"
+       id="path4780-0"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#15a5ea;fill-opacity:1;stroke:none;display:inline"
+       d="m 4.3603555,43.472427 0,1.242647 4.3604166,0 0,-1.242647 z"
+       id="path4793-0"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
+       d="m 4,40.000004 0,8 5,0 0,-8 z m 1,1 3,0 0,6 -3,0 z"
+       id="path4768-5"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccccc" />
+    <path
+       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
+       d="m 2,39.000004 1,0 0,10 -1,0 z"
+       id="path4764-1"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
+       d="m 10,39.000004 1,0 0,10 -1,0 z"
+       id="path4766-6"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#15a5ea;fill-opacity:1;stroke:none;display:inline"
+       d="M 1.8400738,58.055766 6.5000005,62.405031 11.159927,58.055766 10.538604,57.434442 9.2959563,58.056049 6.5000005,60.541343 3.7040445,58.056049 2.4613977,57.434442 z"
+       id="path4800-4-9"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccccccc"
+       inkscape:export-filename="/home/rahah/elvidishu/steak/unreal/dev/skins/external link icons/mail.png"
+       inkscape:export-xdpi="90"
+       inkscape:export-ydpi="90" />
+    <path
+       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
+       d="m 1,57.000008 0,8 11,0 0,-8 z m 1,1 9,0 0,6 -9,0 z"
+       id="path4795-8-2"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccccc"
+       inkscape:export-filename="/home/rahah/elvidishu/steak/unreal/dev/skins/external link icons/mail.png"
+       inkscape:export-xdpi="90"
+       inkscape:export-ydpi="90" />
+    <path
+       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
+       d="M 1.6213238,72.000004 1,72.621328 l 0,5.757352 0.6213238,0.621324 1.6894529,0 L 2.6894528,81.727943 7,79.000004 l 4.378677,0 L 12,78.37868 12,72.621328 11.378677,72.000004 z m 0.3786762,1 9,0 0,5 -4,0 L 4.0978858,79.896603 5,78.000004 l -3,0 z"
+       id="path4802-8-9"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccccccccccccccc" />
+    <path
+       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
+       d="m 5,88.000004 7,0 0,7 -2,-2 -3,2 0,-1 3,-2.249999 1,1 0,-3.750001 -3.75,0 1,1 -2.25,3 -1,0 2,-3 z"
+       id="path4807-5-6"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccccccccccccc" />
+    <path
+       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
+       d="m 7,90.000004 -5,0 0,8 8,0 0,-5 -1,0 0,4 -6,0 0,-6 4,0 z"
+       id="path4809-7-3"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccccccccc" />
+    <path
+       style="fill:#15a5ea;fill-opacity:1;stroke:none;display:inline"
+       d="m 7.5,105.00001 0,3 2.5,0 1,-1 -2.5,0 0,-3 z"
+       id="path4818-67-7"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccccc" />
+    <path
+       style="fill:#3366bb;fill-opacity:1;stroke:none;display:inline"
+       d="m 3,104 0,10 8,1e-5 0,-7 -2.5,-3 z m 1,1 4,1e-5 2,2.50001 0,5.49999 -6,0 z"
+       id="path4813-2-2"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccccccc" />
+    <path
+       style="fill:#15a5ea;fill-opacity:1;stroke:none;display:inline"
+       d="m 4.0827206,92.533089 c 0,-0.621319 0.6213239,-0.621319 0.6213239,-0.621319 1.8639706,0.621319 3.1066175,1.863968 3.7279413,3.727935 0,0 0,0.621328 -0.6213238,0.621328 C 6.5680151,94.397065 5.9466913,93.775738 4.0827206,92.533089 z"
+       id="path4822-8-2"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#3465ba;fill-opacity:1;stroke:none;display:inline"
+       d="m 1,8.500006 0,7.5001 1,-0.9872 0,-6.0129 2,0 2,1 4,-2e-4 0,2.0002 1,0 0,-2.5 -0.5,-0.5002 -4.5,2e-4 -2,-1 -2.5,0 z"
+       id="path3209"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccccccccccccc" />
+    <path
+       style="fill:#16a4e8;fill-opacity:1;stroke:none;display:inline"
+       d="m 6,11.000106 -1,-10e-5 -2.5,0 -0.5,0.5 -1,4.5001 10,-10e-5 0,-4.4998 -0.5,-0.5 z m 0,1 4,-10e-5 0,3 -7.75,-1e-4 0.75,-3.0001 2,0 z"
+       id="path3215"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccccccccccc" />
+    <path
+       style="fill:#3465ba;fill-opacity:1;stroke:none;display:inline"
+       d="m 2,17.000006 0,1 8,0 0,-1 z"
+       id="path3247"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#3465ba;fill-opacity:1;stroke:none;display:inline"
+       d="m 5,15.500006 0,2 2,0 0,-2 c 0,-0.5 -2,-0.5 -2,0 z"
+       id="path3249"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccc" />
+  </g>
+</svg>
index afad5c6..2704514 100644 (file)
Binary files a/resources/src/mediawiki.skinning/images/magnify-clip-ltr.png and b/resources/src/mediawiki.skinning/images/magnify-clip-ltr.png differ
index 4ccc943..c8b2645 100644 (file)
Binary files a/resources/src/mediawiki.skinning/images/magnify-clip-rtl.png and b/resources/src/mediawiki.skinning/images/magnify-clip-rtl.png differ
index 8b07721..4ca2096 100644 (file)
        clear: both;
 }
 
+textarea {
+       /* Support Firefox: Border rule required to override system appearance on Linux */
+       border: 1px solid #c0c0c0;
+}
+
 .editOptions {
        background-color: #f0f0f0;
        border: 1px solid #c0c0c0;
diff --git a/resources/src/mediawiki.special/mediawiki.special.blocklist.css b/resources/src/mediawiki.special/mediawiki.special.blocklist.css
deleted file mode 100644 (file)
index b7513b6..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-.mw-htmlform-flatlist-item {\r
-       /* FIXME: There should be an option in OOUI to do that */\r
-       display: inline-block !important;\r
-}
\ No newline at end of file
index bdae0dd..a06aa95 100644 (file)
 .mw-changeslist .mw-title {
        unicode-bidi: embed;
 }
+
+/* Colored watchlist and recent changes numbers */
+.mw-plusminus-pos {
+       color: #006400; /* dark green */
+}
+
+.mw-plusminus-neg {
+       color: #8b0000; /* dark red */
+}
+
+.mw-plusminus-null {
+       color: #aaa; /* gray */
+}
+
+/*
+ * Bidi-isolate these numbers.
+ * See https://phabricator.wikimedia.org/T93484
+ */
+.mw-plusminus-pos,
+.mw-plusminus-neg,
+.mw-plusminus-null {
+       unicode-bidi: -moz-isolate;
+       unicode-bidi: isolate;
+}
index 850957e..aad784e 100644 (file)
@@ -1,181 +1,9 @@
-/* Special:Search */
-
-/*
- * Fixes sister projects box moving down the extract
- * of the first result (bug #16886).
- * It only happens when the window is small and
- * This changes slightly the layout for big screens
- * where there was space for the extracts and the
- * sister projects and thus it showed like in any
- * other browser.
- *
- * This will only affect IE 7 and lower
- */
-.searchresult {
-       display: inline !ie;
-}
-.searchresults {
-       margin: 1em 0 1em .4em;
-}
-/* needs extra specificity to override `.mw-body p` selector */
-.mw-body p.mw-search-nonefound {
-       margin: 0;
-}
-.mw-search-interwiki-header {
-       font-weight: bold;
-}
-.mw-search-nonefound + .mw-search-interwiki-header {
-       margin-top: 0;
-}
-div.searchresult {
-       font-size: 95%;
-       width: 38em;
-}
-.mw-search-results {
-       margin-left: 0;
-       float: left;
-}
-.mw-search-results li {
-       padding-bottom: 1.2em;
-       list-style: none;
-       list-style-image: none;
-}
-.mw-search-results li a {
-       font-size: 108%;
-}
-.mw-search-result-data {
-       color: #008000;
-       font-size: 97%;
-}
-.mw-search-profile-tabs {
-       background-color: #f3f3f3;
-       margin-top: 1em;
-       border: 1px solid #c0c0c0;
-}
-.mw-search-profile-tabs div.search-types {
-       float: left;
-       padding-left: 0.25em;
-}
-.mw-search-profile-tabs div.search-types ul {
-       margin: 0;
-       padding: 0;
-       list-style: none;
-}
-.mw-search-profile-tabs div.search-types ul li {
-       float: left;
-       margin: 0;
-       padding: 0;
-}
-.mw-search-profile-tabs div.search-types ul li a {
-       display: block;
-       padding: 0.5em;
-}
-.mw-search-profile-tabs div.search-types ul li.current a {
-       color: #333;
-       cursor: default;
-}
-.mw-search-profile-tabs div.search-types ul li.current a:hover {
-       text-decoration: none;
-}
-#mw-search-top-table div.results-info {
-       float: right;
-       padding: 0.5em;
-       padding-right: 0.75em;
-       color: #666;
-       font-size: 95%;
-}
-
-fieldset#mw-searchoptions {
-       margin: 0;
-       padding: 0.5em 0.75em 0.75em 0.75em;
-       border: none;
-       background-color: #f9f9f9;
-       border: 1px solid #c0c0c0;
-       border-top-width: 0;
-}
-fieldset#mw-searchoptions legend {
-       display: none;
-}
-fieldset#mw-searchoptions h4 {
-       padding: 0;
-       margin: 0;
-       float: left;
-}
-fieldset#mw-searchoptions div#mw-search-togglebox {
+#mw-search-togglebox {
        float: right;
 }
-fieldset#mw-searchoptions div#mw-search-togglebox label {
+#mw-search-togglebox label {
        margin-right: 0.25em;
 }
-fieldset#mw-searchoptions div#mw-search-togglebox input {
+#mw-search-togglebox input {
        margin-left: 0.25em;
 }
-fieldset#mw-searchoptions table {
-       float: left;
-       margin-right: 3em;
-       border-collapse: collapse;
-}
-fieldset#mw-searchoptions table td {
-       padding: 0 1em 0 0;
-       white-space: nowrap;
-}
-fieldset#mw-searchoptions div.divider {
-       clear: both;
-       border-bottom: 1px solid #ddd;
-       padding-top: 0.5em;
-       margin-bottom: 0.5em;
-}
-td#mw-search-menu {
-       padding-left: 6em;
-       font-size: 85%;
-}
-div#mw-search-interwiki {
-       float: right;
-       width: 18em;
-       border: 1px solid #aaa;
-       margin-top: 2ex;
-}
-div#mw-search-interwiki li {
-       font-size: 95%;
-}
-.mw-search-interwiki-more {
-       float: right;
-       font-size: 90%;
-}
-div#mw-search-interwiki-caption {
-       text-align: center;
-       font-weight: bold;
-       font-size: 95%;
-}
-.mw-search-interwiki-project {
-       font-size: 97%;
-       text-align: left;
-       padding: 0.15em 0.15em 0.2em 0.2em;
-       background-color: #ececec;
-       border-top: 1px solid #bbb;
-}
-span.searchalttitle {
-       font-size: 95%;
-}
-div.searchdidyoumean {
-       font-size: 127%;
-       margin-top: 0.8em;
-       /* Note that this color won't affect the link, as desired. */
-       color: #c00;
-}
-div.searchdidyoumean em {
-       font-weight: bold;
-}
-.searchmatch {
-       font-weight: bold;
-}
-/* Advanced PowerSearch box */
-td#mw-search-togglebox {
-       text-align: right;
-}
-table#mw-search-powertable {
-       width: 100%;
-}
-form#powersearch {
-       clear: both;
-}
diff --git a/resources/src/mediawiki.special/mediawiki.special.search.styles.css b/resources/src/mediawiki.special/mediawiki.special.search.styles.css
new file mode 100644 (file)
index 0000000..e7a5865
--- /dev/null
@@ -0,0 +1,161 @@
+/* Special:Search */
+
+/*
+ * Fixes sister projects box moving down the extract
+ * of the first result (bug #16886).
+ * It only happens when the window is small and
+ * This changes slightly the layout for big screens
+ * where there was space for the extracts and the
+ * sister projects and thus it showed like in any
+ * other browser.
+ *
+ * This will only affect IE 7 and lower
+ */
+.searchresult {
+       display: inline !ie;
+}
+.searchresults {
+       margin: 1em 0 1em .4em;
+}
+/* needs extra specificity to override `.mw-body p` selector */
+.mw-body .mw-search-nonefound {
+       margin: 0;
+}
+.mw-search-interwiki-header,
+.searchdidyoumean em,
+.searchmatch {
+       font-weight: bold;
+}
+.mw-search-nonefound + .mw-search-interwiki-header {
+       margin-top: 0;
+}
+.searchresult {
+       font-size: 95%;
+       width: 38em;
+}
+.mw-search-results {
+       margin-left: 0;
+       float: left;
+}
+.mw-search-interwiki-header {
+       clear: both;
+}
+.mw-search-results li {
+       padding-bottom: 1.2em;
+       list-style: none;
+       list-style-image: none;
+}
+.mw-search-results li a {
+       font-size: 108%;
+}
+.mw-search-result-data {
+       color: #008000;
+       font-size: 97%;
+}
+.mw-search-profile-tabs {
+       background-color: #f3f3f3;
+       margin-top: 1em;
+       border: 1px solid #c0c0c0;
+}
+.search-types {
+       float: left;
+       padding-left: 0.25em;
+}
+.search-types ul {
+       margin: 0;
+       padding: 0;
+       list-style: none;
+}
+.search-types li {
+       float: left;
+       margin: 0;
+       padding: 0;
+}
+.search-types a {
+       display: block;
+       padding: 0.5em;
+}
+.search-types .current a {
+       color: #333;
+       cursor: default;
+}
+.search-types .current a:hover {
+       text-decoration: none;
+}
+.results-info {
+       float: right;
+       padding: 0.5em;
+       padding-right: 0.75em;
+       color: #666;
+       font-size: 95%;
+}
+#mw-search-top-table div.oo-ui-actionFieldLayout {
+       float: left;
+       width: 100%;
+}
+#mw-searchoptions {
+       margin: 0;
+       padding: 0.5em 0.75em 0.75em 0.75em;
+       background-color: #f9f9f9;
+       border: 1px solid #c0c0c0;
+       border-top-width: 0;
+}
+#mw-searchoptions legend {
+       display: none;
+}
+#mw-searchoptions h4 {
+       padding: 0;
+       margin: 0;
+       float: left;
+}
+#mw-searchoptions table {
+       float: left;
+       margin-right: 3em;
+       border-collapse: collapse;
+}
+#mw-searchoptions table td {
+       padding: 0 1em 0 0;
+       white-space: nowrap;
+}
+#mw-searchoptions .divider {
+       clear: both;
+       border-bottom: 1px solid #ddd;
+       padding-top: 0.5em;
+       margin-bottom: 0.5em;
+}
+#mw-search-menu {
+       padding-left: 6em;
+       font-size: 85%;
+}
+#mw-search-interwiki {
+       float: right;
+       width: 18em;
+       border: 1px solid #aaa;
+       margin-top: 2ex;
+}
+.searchalttitle,
+#mw-search-interwiki li {
+       font-size: 95%;
+}
+.mw-search-interwiki-more {
+       float: right;
+       font-size: 90%;
+}
+#mw-search-interwiki-caption {
+       text-align: center;
+       font-weight: bold;
+       font-size: 95%;
+}
+.mw-search-interwiki-project {
+       font-size: 97%;
+       text-align: left;
+       padding: 0.15em 0.15em 0.2em 0.2em;
+       background-color: #ececec;
+       border-top: 1px solid #bbb;
+}
+.searchdidyoumean {
+       font-size: 127%;
+       margin-top: 0.8em;
+       /* Note that this color won't affect the link, as desired. */
+       color: #c00;
+}
diff --git a/resources/src/mediawiki.special/mediawiki.special.upload.css b/resources/src/mediawiki.special/mediawiki.special.upload.css
deleted file mode 100644 (file)
index b916248..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-/*!
- * Styling for Special:Upload
- */
-.mw-destfile-warning {
-       border: 1px solid #fde29b;
-       padding: .5em 1em;
-       margin-bottom: 1em;
-       color: #705000;
-       background-color: #fdf1d1;
-}
diff --git a/resources/src/mediawiki.special/mediawiki.special.upload.styles.css b/resources/src/mediawiki.special/mediawiki.special.upload.styles.css
new file mode 100644 (file)
index 0000000..b916248
--- /dev/null
@@ -0,0 +1,10 @@
+/*!
+ * Styling for Special:Upload
+ */
+.mw-destfile-warning {
+       border: 1px solid #fde29b;
+       padding: .5em 1em;
+       margin-bottom: 1em;
+       color: #705000;
+       background-color: #fdf1d1;
+}
index ceb93c2..d65b284 100644 (file)
@@ -40,8 +40,3 @@
 #mw-editbutton-hr {
        .background-image("images/@{button-hr}");
 }
-
-// Awful workaround for T113868, while it awaits a better fix.
-#mw-t113868 {
-       background-image: url( images/ar/button_bold.png ), url( images/ar/button_headline.png ), url( images/ar/button_italic.png ), url( images/ar/button_link.png ), url( images/ar/button_nowiki.png ), url( images/be-tarask/button_bold.png ), url( images/be-tarask/button_italic.png ), url( images/be-tarask/button_link.png ), url( images/de/button_bold.png ), url( images/de/button_italic.png ), url( images/en/button_bold.png ), url( images/en/button_extlink.png ), url( images/en/button_headline.png ), url( images/en/button_hr.png ), url( images/en/button_image.png ), url( images/en/button_italic.png ), url( images/en/button_link.png ), url( images/en/button_media.png ), url( images/en/button_nowiki.png ), url( images/en/button_sig.png ), url( images/fa/button_bold.png ), url( images/fa/button_headline.png ), url( images/fa/button_italic.png ), url( images/fa/button_link.png ), url( images/fa/button_nowiki.png ), url( images/ksh/button_italic.png ), url( images/ru/button_bold.png ), url( images/ru/button_italic.png ), url( images/ru/button_link.png );
-}
index 579bd5f..76fee23 100644 (file)
        }
 
        &:focus {
-               box-shadow: inset 0 0 0 2px @colorProgressive;
-               // Color being used to match inset shadow, not semantic reasons
                border-color: @colorProgressive;
-               // Remove focus glow on input[type="search"]
+               box-shadow: inset 0 0 0 1px @colorProgressive;
                outline: 0;
        }
 
@@ -108,6 +106,9 @@ input[type="number"],
 .mw-ui-input-inline {
        display: inline-block;
        width: auto;
+       // Make sure we limit `width` to parent element because
+       // in case of text `input` fields, `width: auto;` equals `size` attribute.
+       max-width: 100%;
 }
 
 // mw-ui-input-large
index 45f52b7..ffb7736 100644 (file)
         * @inheritdoc
         */
        CSP.createItemWidget = function ( data ) {
+               var title = mw.Title.makeTitle( NS_CATEGORY, data );
+               if ( !title ) {
+                       return null;
+               }
                return new mw.widgets.CategoryCapsuleItemWidget( {
                        apiUrl: this.api.apiUrl || undefined,
-                       title: mw.Title.makeTitle( NS_CATEGORY, data )
+                       title: title
                } );
        };
 
        CSP.getItemFromData = function ( data ) {
                // This is a bit of a hack... We have to canonicalize the data in the same way that
                // #createItemWidget and CategoryCapsuleItemWidget will do, otherwise we won't find duplicates.
-               data = mw.Title.makeTitle( NS_CATEGORY, data ).getMainText();
-               return OO.ui.mixin.GroupElement.prototype.getItemFromData.call( this, data );
+               var title = mw.Title.makeTitle( NS_CATEGORY, data );
+               if ( !title ) {
+                       return null;
+               }
+               return OO.ui.mixin.GroupElement.prototype.getItemFromData.call( this, title.getMainText() );
        };
 
        /**
index df03679..d816335 100755 (executable)
         *  used (header or content).
         */
        mw.widgets.SearchInputWidget = function MwWidgetsSearchInputWidget( config ) {
+               // The parent constructors will detach this from the DOM, and won't
+               // be reattached until after this function is completed. As such
+               // grab a handle here. If no config.$input is passed tracking of
+               // form submissions won't work.
+               var $form = config.$input ? config.$input.closest( 'form' ) : $();
+
                config = $.extend( {
                        type: 'search',
                        icon: 'search',
@@ -36,6 +42,7 @@
                // Initialization
                this.$element.addClass( 'mw-widget-searchInputWidget' );
                this.lookupMenu.$element.addClass( 'mw-widget-searchWidget-menu' );
+               this.lastLookupItems = [];
                if ( !config.pushPending ) {
                        this.pushPending = false;
                }
                        this.performSearchOnClick = config.performSearchOnClick;
                }
                this.setLookupsDisabled( !this.suggestions );
+
+               $form.on( 'submit', function () {
+                       mw.track( 'mw.widgets.SearchInputWidget', {
+                               action: 'submit-form',
+                               numberOfResults: this.lastLookupItems.length,
+                               $form: $form,
+                               inputLocation: this.dataLocation || 'header',
+                               index: this.lastLookupItems.indexOf(
+                                       this.$input.val()
+                               )
+                       } );
+               }.bind( this ) );
        };
 
        /* Setup */
        /**
         * @inheritdoc
         */
-       mw.widgets.SearchInputWidget.prototype.onLookupMenuItemChoose = function ( item ) {
-               var items;
-
-               // get items which was suggested before the input changes
-               items = this.lookupMenu.items;
-
+       mw.widgets.SearchInputWidget.prototype.onLookupMenuItemChoose = function () {
                mw.widgets.SearchInputWidget.parent.prototype.onLookupMenuItemChoose.apply( this, arguments );
 
-               mw.track( 'mw.widgets.SearchInputWidget', {
-                       action: 'click-result',
-                       numberOfResults: items.length,
-                       clickIndex: items.indexOf( item ) + 1
-               } );
-
                if ( this.performSearchOnClick ) {
                        this.$element.closest( 'form' ).submit();
                }
        };
 
+       /**
+        * @inheritdoc
+        */
+       mw.widgets.SearchInputWidget.prototype.getLookupMenuOptionsFromData = function () {
+               var items = mw.widgets.SearchInputWidget.parent.prototype.getLookupMenuOptionsFromData.apply(
+                       this, arguments
+               );
+
+               this.lastLookupItems = items.map( function ( item ) {
+                       return item.data;
+               } );
+
+               return items;
+       };
+
 }( jQuery, mediaWiki ) );
index 84533aa..37e6e1a 100644 (file)
                this.$label.attr( 'href', config.url );
                this.$element.addClass( 'mw-widget-titleOptionWidget' );
 
+               // OOUI OptionWidgets make an effort to not be tab accessible, but
+               // adding a link inside them would undo that. So, explicitly make it
+               // not tabbable.
+               this.$label.attr( 'tabindex', '-1' );
+
                // Allow opening the link in new tab, but not regular navigation.
                this.$label.on( 'click', function ( e ) {
                        // Don't interfere with special clicks (e.g. to open in new tab)
index fdd4a8a..1732407 100644 (file)
@@ -96,6 +96,8 @@
        /**
         * Get a promise which resolves with an API repsonse for suggested
         * links for the current query.
+        *
+        * @return {jQuery.Promise} Suggestions promise
         */
        mw.widgets.TitleWidget.prototype.getSuggestionsPromise = function () {
                var req,
index 3e010d0..a8ee4c7 100644 (file)
                 */
                postWithToken: function ( tokenType, params, ajaxOptions ) {
                        var api = this,
-                               abortable;
+                               abortedPromise = $.Deferred().reject( 'http',
+                                       { textStatus: 'abort', exception: 'abort' } ).promise(),
+                               abortable,
+                               aborted;
 
-                       return ( abortable = api.getToken( tokenType, params.assert ) ).then( function ( token ) {
+                       return api.getToken( tokenType, params.assert ).then( function ( token ) {
                                params.token = token;
+                               // Request was aborted while token request was running, but we
+                               // don't want to unnecessarily abort token requests, so abort
+                               // a fake request instead
+                               if ( aborted ) {
+                                       return abortedPromise;
+                               }
+
                                return ( abortable = api.post( params, ajaxOptions ) ).then(
                                        // If no error, return to caller as-is
                                        null,
                                                        api.badToken( tokenType );
                                                        // Try again, once
                                                        params.token = undefined;
-                                                       return ( abortable = api.getToken( tokenType, params.assert ) ).then( function ( token ) {
+                                                       abortable = null;
+                                                       return api.getToken( tokenType, params.assert ).then( function ( token ) {
                                                                params.token = token;
-                                                               return ( abortable = api.post( params, ajaxOptions ) ).promise();
+                                                               if ( aborted ) {
+                                                                       return abortedPromise;
+                                                               }
+
+                                                               return ( abortable = api.post( params, ajaxOptions ) );
                                                        } );
                                                }
 
                                        }
                                );
                        } ).promise( { abort: function () {
-                               abortable.abort();
+                               if ( abortable ) {
+                                       abortable.abort();
+                               } else {
+                                       aborted = true;
+                               }
                        } } );
                },
 
index 60276cd..bb3a913 100644 (file)
                /**
                 * API helper to grab a csrf token.
                 *
-                * @return {jQuery.Promise}
-                * @return {Function} return.done
-                * @return {string} return.done.token Received token.
+                * @return {jQuery.Promise} Received token.
                 */
                getEditToken: function () {
                        return this.getToken( 'csrf' );
                },
 
+               /**
+                * Create a new page.
+                *
+                * Example:
+                *
+                *     new mw.Api().create( 'Sandbox',
+                *         { summary: 'Load sand particles.' },
+                *         'Sand.'
+                *     );
+                *
+                * @since 1.28
+                * @param {mw.Title|string} title Page title
+                * @param {Object} params Edit API parameters
+                * @param {string} params.summary Edit summary
+                * @param {string} content
+                * @return {jQuery.Promise} API response
+                */
+               create: function ( title, params, content ) {
+                       return this.postWithEditToken( $.extend( {
+                               action: 'edit',
+                               title: String( title ),
+                               text: content,
+                               formatversion: '2',
+
+                               // Protect against errors and conflicts
+                               assert: mw.user.isAnon() ? undefined : 'user',
+                               createonly: true
+                       }, params ) ).then( function ( data ) {
+                               return data.edit;
+                       } );
+               },
+
+               /**
+                * Edit an existing page.
+                *
+                * To create a new page, use #create() instead.
+                *
+                * Simple transformation:
+                *
+                *     new mw.Api()
+                *         .edit( 'Sandbox', function ( revision ) {
+                *             return revision.content.replace( 'foo', 'bar' );
+                *         } )
+                *         .then( function () {
+                *             console.log( 'Saved! ');
+                *         } );
+                *
+                * Set save parameters by returning an object instead of a string:
+                *
+                *     new mw.Api().edit(
+                *         'Sandbox',
+                *         function ( revision ) {
+                *             return {
+                *                 text: revision.content.replace( 'foo', 'bar' ),
+                *                 summary: 'Replace "foo" with "bar".',
+                *                 assert: 'bot',
+                *                 minor: true
+                *             };
+                *         }
+                *     )
+                *     .then( function () {
+                *         console.log( 'Saved! ');
+                *     } );
+                *
+                * Transform asynchronously by returning a promise.
+                *
+                *     new mw.Api()
+                *         .edit( 'Sandbox', function ( revision ) {
+                *             return Spelling
+                *                 .corrections( revision.content )
+                *                 .then( function ( report ) {
+                *                     return {
+                *                         text: report.output,
+                *                         summary: report.changelog
+                *                     };
+                *                 } );
+                *         } )
+                *         .then( function () {
+                *             console.log( 'Saved! ');
+                *         } );
+                *
+                * @since 1.28
+                * @param {mw.Title|string} title Page title
+                * @param {Function} transform Callback that prepares the edit
+                * @param {Object} transform.revision Current revision
+                * @param {string} transform.revision.content Current revision content
+                * @param {string|Object|jQuery.Promise} transform.return New content, object with edit
+                *  API parameters, or promise providing one of those.
+                * @return {jQuery.Promise} Edit API response
+                */
+               edit: function ( title, transform ) {
+                       var basetimestamp, curtimestamp,
+                               api = this;
+                       return api.get( {
+                                       action: 'query',
+                                       prop: 'revisions',
+                                       rvprop: [ 'content', 'timestamp' ],
+                                       titles: String( title ),
+                                       formatversion: '2',
+                                       curtimestamp: true
+                               } )
+                               .then( function ( data ) {
+                                       var page, revision;
+                                       if ( !data.query || !data.query.pages ) {
+                                               return $.Deferred().reject( 'unknown' );
+                                       }
+                                       page = data.query.pages[ 0 ];
+                                       if ( !page || page.missing ) {
+                                               return $.Deferred().reject( 'nocreate-missing' );
+                                       }
+                                       revision = page.revisions[ 0 ];
+                                       basetimestamp = revision.timestamp;
+                                       curtimestamp = data.curtimestamp;
+                                       return transform( {
+                                               timestamp: revision.timestamp,
+                                               content: revision.content
+                                       } );
+                               } )
+                               .then( function ( params ) {
+                                       var editParams = typeof params === 'object' ? params : { text: String( params ) };
+                                       return api.postWithEditToken( $.extend( {
+                                               action: 'edit',
+                                               title: title,
+                                               formatversion: '2',
+
+                                               // Protect against errors and conflicts
+                                               assert: mw.user.isAnon() ? undefined : 'user',
+                                               basetimestamp: basetimestamp,
+                                               starttimestamp: curtimestamp,
+                                               nocreate: true
+                                       }, editParams ) );
+                               } )
+                               .then( function ( data ) {
+                                       return data.edit;
+                               } );
+               },
+
                /**
                 * Post a new section to the page.
                 *
index df21eb2..9ba562e 100644 (file)
                 */
                loadMessages: function ( messages ) {
                        return this.getMessages( messages ).then( $.proxy( mw.messages, 'set' ) );
+               },
+
+               /**
+                * Loads a set of mesages and add them to mw.messages. Only messages that are not already known
+                * are loaded. If all messages are known, the returned promise is resolved immediately.
+                *
+                * @param {Array} messages Messages to retrieve
+                * @return {jQuery.Promise}
+                */
+               loadMessagesIfMissing: function ( messages ) {
+                       var missing = messages.filter( function ( msg ) {
+                               return !mw.message( msg ).exists();
+                       } );
+
+                       if ( missing.length === 0 ) {
+                               return $.Deferred().resolve();
+                       }
+
+                       return this.getMessages( missing ).then( $.proxy( mw.messages, 'set' ) );
                }
        } );
 
index 16fec73..0f61d97 100644 (file)
 
                                                // Update license messages
                                                return msgPromise.then( function () {
-                                                       booklet.$ownWorkMessage
-                                                               .msg( 'upload-form-label-own-work-message-' + msgs )
-                                                               .find( 'a' ).attr( 'target', '_blank' );
-                                                       booklet.$notOwnWorkMessage
-                                                               .msg( 'upload-form-label-not-own-work-message-' + msgs )
-                                                               .find( 'a' ).attr( 'target', '_blank' );
-                                                       booklet.$notOwnWorkLocal
-                                                               .msg( 'upload-form-label-not-own-work-local-' + msgs )
-                                                               .find( 'a' ).attr( 'target', '_blank' );
+                                                       var $labels;
+                                                       booklet.$ownWorkMessage.msg( 'upload-form-label-own-work-message-' + msgs );
+                                                       booklet.$notOwnWorkMessage.msg( 'upload-form-label-not-own-work-message-' + msgs );
+                                                       booklet.$notOwnWorkLocal.msg( 'upload-form-label-not-own-work-local-' + msgs );
+
+                                                       $labels = $( [
+                                                               booklet.$ownWorkMessage[ 0 ],
+                                                               booklet.$notOwnWorkMessage[ 0 ],
+                                                               booklet.$notOwnWorkLocal[ 0 ]
+                                                       ] );
+
+                                                       // Improve the behavior of links inside these labels, which may point to important
+                                                       // things like licensing requirements or terms of use
+                                                       $labels.find( 'a' )
+                                                               .attr( 'target', '_blank' )
+                                                               .on( 'click', function ( e ) {
+                                                                       // OO.ui.FieldLayout#onLabelClick is trying to prevent default on all clicks,
+                                                                       // which causes the links to not be openable. Don't let it do that.
+                                                                       e.stopPropagation();
+                                                               } );
                                                } );
                                        } )
                                );
index 4a0366a..3a0a94b 100644 (file)
                                        // Foreign wiki might be running a pre-1.27 MediaWiki, without support for this
                                        if ( resp.query && resp.query.uploaddialog ) {
                                                upload.config = resp.query.uploaddialog;
+                                               return upload.config;
+                                       } else {
+                                               return $.Deferred().reject( 'upload-foreign-cant-load-config' );
                                        }
-                                       return upload.config;
+                               }, function () {
+                                       return $.Deferred().reject( 'upload-foreign-cant-load-config' );
                                } );
                        } );
                }
         */
        ForeignStructuredUpload.prototype.getText = function () {
                return this.config.format.filepage
-                       // Replace "numbered parameters" with the given information
+                       // Replace "named parameters" with the given information
                        .replace( '$DESCRIPTION', this.getDescriptions() )
                        .replace( '$DATE', this.getDate() )
                        .replace( '$SOURCE', this.getSource() )
         * @inheritdoc
         */
        ForeignStructuredUpload.prototype.getComment = function () {
-               return this.config.comment
+               var
+                       isLocal = this.target === 'local',
+                       comment = typeof this.config.comment === 'string' ?
+                               this.config.comment :
+                               this.config.comment[ isLocal ? 'local' : 'foreign' ];
+               return comment
                        .replace( '$PAGENAME', mw.config.get( 'wgPageName' ) )
                        .replace( '$HOST', location.host );
        };
index eeeab68..781c1df 100644 (file)
@@ -43,7 +43,9 @@
                // However, if the target is a remote wiki, we must check the API
                // to confirm that the target is one that this site is configured to
                // support.
-               if ( this.target === 'local' ) {
+               if ( validTargets.length === 0 ) {
+                       this.apiPromise = $.Deferred().reject( 'upload-dialog-disabled' );
+               } else if ( this.target === 'local' ) {
                        // If local uploads were requested, but they are disabled, fail.
                        if ( !mw.config.get( 'wgEnableUploads' ) ) {
                                this.apiPromise = $.Deferred().reject( 'uploaddisabledtext' );
index 6859592..ff4d1c2 100644 (file)
                                // Thumbnails
                                /\/[a-f0-9]\/[a-f0-9]{2}\/([^\s\/]+)\/[^\s\/]+-[^\s\/]*$/,
 
-                               // Thumbnails in non-hashed upload directories
-                               /\/([^\s\/]+)\/[^\s\/]+-(?:\1|thumbnail)[^\s\/]*$/,
-
                                // Full size images
                                /\/[a-f0-9]\/[a-f0-9]{2}\/([^\s\/]+)$/,
 
+                               // Thumbnails in non-hashed upload directories
+                               /\/([^\s\/]+)\/[^\s\/]+-(?:\1|thumbnail)[^\s\/]*$/,
+
                                // Full-size images in non-hashed upload directories
                                /\/([^\s\/]+)$/
                        ],
index 7a7469a..31e4492 100644 (file)
                return this.upload.getApi().then(
                        function ( api ) {
                                return $.when(
-                                       booklet.upload.loadConfig(),
+                                       booklet.upload.loadConfig().then(
+                                               null,
+                                               function ( errorMsg ) {
+                                                       booklet.getPage( 'upload' ).$element.msg( errorMsg );
+                                                       return $.Deferred().resolve();
+                                               }
+                                       ),
                                        // If the user can't upload anything, don't give them the option to.
                                        api.getUserInfo().then( function ( userInfo ) {
                                                if ( userInfo.rights.indexOf( 'upload' ) === -1 ) {
                        layout.emit( 'fileUploaded' );
                }, function () {
                        // These errors will be thrown while the user is on the info page.
-                       // Pretty sure it's impossible to get a warning other than 'stashfailed' here, which should
-                       // really be an error...
-                       var errorMessage = layout.getErrorMessageForStateDetails();
-                       deferred.reject( errorMessage );
+                       layout.getErrorMessageForStateDetails().then( function ( errorMessage ) {
+                               deferred.reject( errorMessage );
+                       } );
                }, function ( progress ) {
                        var elapsedTime = new Date() - startTime,
                                estimatedTotalTime = ( 1 / progress ) * elapsedTime,
                                deferred.resolve();
                                layout.emit( 'fileSaved', layout.upload.getImageInfo() );
                        }, function () {
-                               var errorMessage = layout.getErrorMessageForStateDetails();
-                               deferred.reject( errorMessage );
+                               layout.getErrorMessageForStateDetails().then( function ( errorMessage ) {
+                                       deferred.reject( errorMessage );
+                               } );
                        } );
                } );
 
         * state and state details.
         *
         * @protected
-        * @return {OO.ui.Error} Error to display for given state and details.
+        * @return {jQuery.Promise} A Promise that will be resolved with an OO.ui.Error.
         */
        mw.Upload.BookletLayout.prototype.getErrorMessageForStateDetails = function () {
                var message,
                if ( state === mw.Upload.State.ERROR ) {
                        if ( !error ) {
                                // If there's an 'exception' key, this might be a timeout, or other connection problem
-                               return new OO.ui.Error(
+                               return $.Deferred().resolve( new OO.ui.Error(
                                        $( '<p>' ).msg( 'api-error-unknownerror', JSON.stringify( stateDetails ) ),
                                        { recoverable: false }
-                               );
+                               ) );
                        }
 
-                       // HACK We should either have a hook here to allow TitleBlacklist to handle this, or just have
-                       // TitleBlacklist produce sane error messages that can be displayed without arcane knowledge
-                       if ( error.info === 'TitleBlacklist prevents this title from being created' ) {
-                               // HACK Apparently the only reliable way to determine whether TitleBlacklist was involved
-                               return new OO.ui.Error(
-                                       // HACK TitleBlacklist doesn't have a sensible message, this one is from UploadWizard
-                                       $( '<p>' ).msg( 'api-error-blacklisted' ),
-                                       { recoverable: false }
-                               );
+                       // Errors in this format are produced by TitleBlacklist and AbuseFilter. Perhaps other
+                       // extensions will follow this format in the future.
+                       if ( error.message ) {
+                               return this.upload.getApi()
+                                       .then( function ( api ) {
+                                               return api.loadMessagesIfMissing( [ error.message.key ] ).then( function () {
+                                                       if ( !mw.message( error.message.key ).exists() ) {
+                                                               return $.Deferred().reject();
+                                                       }
+                                                       return new OO.ui.Error(
+                                                               $( '<p>' ).msg( error.message.key, error.message.params || [] ),
+                                                               { recoverable: false }
+                                                       );
+                                               } );
+                                       } )
+                                       .then( null, function () {
+                                               // We failed when loading the error message, or it doesn't actually exist, fall back
+                                               return $.Deferred().resolve( new OO.ui.Error(
+                                                       $( '<p>' ).msg( 'api-error-unknownerror', JSON.stringify( stateDetails ) ),
+                                                       { recoverable: false }
+                                               ) );
+                                       } );
                        }
 
                        if ( error.code === 'protectedpage' ) {
                                        message = mw.message( 'api-error-unknownerror', JSON.stringify( stateDetails ) );
                                }
                        }
-                       return new OO.ui.Error(
+                       return $.Deferred().resolve( new OO.ui.Error(
                                $( '<p>' ).append( message.parseDom() ),
                                { recoverable: false }
-                       );
+                       ) );
                }
 
                if ( state === mw.Upload.State.WARNING ) {
                        // of importance. For example fixing the thumbnail like file name
                        // won't help the fact that the file already exists.
                        if ( warnings.stashfailed !== undefined ) {
-                               return new OO.ui.Error(
+                               return $.Deferred().resolve( new OO.ui.Error(
                                        $( '<p>' ).msg( 'api-error-stashfailed' ),
                                        { recoverable: false }
-                               );
+                               ) );
                        } else if ( warnings.exists !== undefined ) {
-                               return new OO.ui.Error(
+                               return $.Deferred().resolve( new OO.ui.Error(
                                        $( '<p>' ).msg( 'fileexists', 'File:' + warnings.exists ),
                                        { recoverable: false }
-                               );
+                               ) );
                        } else if ( warnings[ 'exists-normalized' ] !== undefined ) {
-                               return new OO.ui.Error(
+                               return $.Deferred().resolve( new OO.ui.Error(
                                        $( '<p>' ).msg( 'fileexists', 'File:' + warnings[ 'exists-normalized' ] ),
                                        { recoverable: false }
-                               );
+                               ) );
                        } else if ( warnings[ 'page-exists' ] !== undefined ) {
-                               return new OO.ui.Error(
+                               return $.Deferred().resolve( new OO.ui.Error(
                                        $( '<p>' ).msg( 'filepageexists', 'File:' + warnings[ 'page-exists' ] ),
                                        { recoverable: false }
-                               );
+                               ) );
                        } else if ( warnings.duplicate !== undefined ) {
-                               return new OO.ui.Error(
+                               return $.Deferred().resolve( new OO.ui.Error(
                                        $( '<p>' ).msg( 'api-error-duplicate', warnings.duplicate.length ),
                                        { recoverable: false }
-                               );
+                               ) );
                        } else if ( warnings[ 'thumb-name' ] !== undefined ) {
-                               return new OO.ui.Error(
+                               return $.Deferred().resolve( new OO.ui.Error(
                                        $( '<p>' ).msg( 'filename-thumb-name' ),
                                        { recoverable: false }
-                               );
+                               ) );
                        } else if ( warnings[ 'bad-prefix' ] !== undefined ) {
-                               return new OO.ui.Error(
+                               return $.Deferred().resolve( new OO.ui.Error(
                                        $( '<p>' ).msg( 'filename-bad-prefix', warnings[ 'bad-prefix' ] ),
                                        { recoverable: false }
-                               );
+                               ) );
                        } else if ( warnings[ 'duplicate-archive' ] !== undefined ) {
-                               return new OO.ui.Error(
+                               return $.Deferred().resolve( new OO.ui.Error(
                                        $( '<p>' ).msg( 'api-error-duplicate-archive', 1 ),
                                        { recoverable: false }
-                               );
+                               ) );
                        } else if ( warnings[ 'was-deleted' ] !== undefined ) {
-                               return new OO.ui.Error(
+                               return $.Deferred().resolve( new OO.ui.Error(
                                        $( '<p>' ).msg( 'api-error-was-deleted' ),
                                        { recoverable: false }
-                               );
+                               ) );
                        } else if ( warnings.badfilename !== undefined ) {
                                // Change the name if the current name isn't acceptable
                                // TODO This might not really be the best place to do this
                                this.setFilename( warnings.badfilename );
-                               return new OO.ui.Error(
+                               return $.Deferred().resolve( new OO.ui.Error(
                                        $( '<p>' ).msg( 'badfilename', warnings.badfilename )
-                               );
+                               ) );
                        } else {
-                               return new OO.ui.Error(
+                               return $.Deferred().resolve( new OO.ui.Error(
                                        // Let's get all the help we can if we can't pin point the error
                                        $( '<p>' ).msg( 'api-error-unknown-warning', JSON.stringify( stateDetails ) ),
                                        { recoverable: false }
-                               );
+                               ) );
                        }
                }
        };
index a2386b3..ab7a74e 100644 (file)
 ( function ( mw, $ ) {
        'use strict';
 
-       var $checkboxes = $( 'li input[type=checkbox]' );
+       $( function () {
+               // FIXME: This shouldn't be a global selector to avoid conflicts
+               // with unrelated content on the same page. (T131318)
+               var $checkboxes = $( 'li input[type="checkbox"]' );
 
-       function selectAll( check ) {
-               $checkboxes.prop( 'checked', check );
-       }
+               function selectAll( check ) {
+                       $checkboxes.prop( 'checked', check );
+               }
 
-       $( '.mw-checkbox-all' ).click( function ( e ) {
-               selectAll( true );
-               e.preventDefault();
-       } );
-       $( '.mw-checkbox-none' ).click( function ( e ) {
-               selectAll( false );
-               e.preventDefault();
-       } );
-       $( '.mw-checkbox-invert' ).click( function ( e ) {
-               $checkboxes.each( function () {
-                       $( this ).prop( 'checked', !$( this ).is( ':checked' ) );
+               $( '.mw-checkbox-all' ).click( function ( e ) {
+                       e.preventDefault();
+                       selectAll( true );
+               } );
+               $( '.mw-checkbox-none' ).click( function ( e ) {
+                       e.preventDefault();
+                       selectAll( false );
                } );
-               e.preventDefault();
+               $( '.mw-checkbox-invert' ).click( function ( e ) {
+                       e.preventDefault();
+                       $checkboxes.prop( 'checked', function ( i, val ) {
+                               return !val;
+                       } );
+               } );
+
        } );
 
 }( mediaWiki, jQuery ) );
index 54620f4..3cca6eb 100644 (file)
@@ -95,6 +95,7 @@ a.mw-debug-panelabel:visited {
        height: 300px;
        overflow: scroll;
        display: none;
+       font-family: monospace;
        font-size: 11px;
        background-color: #e1eff2;
        box-sizing: border-box;
index 8f0ad6b..5b9d88c 100644 (file)
@@ -19,6 +19,8 @@
        width: 39%;
 }
 
-.oo-ui-fieldLayout .oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline {
-  margin-bottom: 0;
+.mw-htmlform-flatlist .oo-ui-optionWidget,
+.mw-htmlform-flatlist .oo-ui-multioptionWidget {
+       display: inline-block;
+       margin-right: 1em;
 }
index b8d0b09..44b9117 100644 (file)
@@ -15,6 +15,8 @@
                slice = Array.prototype.slice,
                parserDefaults = {
                        magic: {
+                               PAGENAME: mw.config.get( 'wgPageName' ),
+                               PAGENAMEE: mw.util.wikiUrlencode( mw.config.get( 'wgPageName' ) ),
                                SITENAME: mw.config.get( 'wgSiteName' )
                        },
                        // Whitelist for allowed HTML elements in wikitext.
         *
         * This method is only available when jqueryMsg is loaded.
         *
+        * @since 1.27
         * @method parseDom
         * @member mw.Message
         * @return {jQuery}
index 1203b6a..942f4ae 100644 (file)
@@ -8,7 +8,6 @@
  * @singleton
  */
 /*jshint latedef:false */
-/*global sha1 */
 ( function ( $ ) {
        'use strict';
 
                trackHandlers = [],
                trackQueue = [];
 
+       /**
+        * FNV132 hash function
+        *
+        * This function implements the 32-bit version of FNV-1.
+        * It is equivalent to hash( 'fnv132', ... ) in PHP, except
+        * its output is base 36 rather than hex.
+        * See <https://en.wikipedia.org/wiki/FNV_hash_function>
+        *
+        * @private
+        * @param {string} str String to hash
+        * @return {string} hash as an seven-character base 36 string
+        */
+       function fnv132( str ) {
+               /*jshint bitwise:false */
+               var hash = 0x811C9DC5,
+                       i;
+
+               for ( i = 0; i < str.length; i++ ) {
+                       hash += ( hash << 1 ) + ( hash << 4 ) + ( hash << 7 ) + ( hash << 8 ) + ( hash << 24 );
+                       hash ^= str.charCodeAt( i );
+               }
+
+               hash = ( hash >>> 0 ).toString( 36 );
+               while ( hash.length < 7 ) {
+                       hash = '0' + hash;
+               }
+
+               return hash;
+       }
+
        /**
         * Create an object that can be read from or written to from methods that allow
         * interaction both with single and multiple properties at once.
                },
 
                /**
-                * Add (does not replace) parameters for `N$` placeholder values.
+                * Add (does not replace) parameters for `$N` placeholder values.
                 *
                 * @param {Array} parameters
                 * @chainable
                                cssBuffer = '',
                                cssBufferTimer = null,
                                cssCallbacks = $.Callbacks(),
-                               isIEto9 = 'documentMode' in document && document.documentMode <= 9,
                                isIE9 = document.documentMode === 9;
 
                        function getMarker() {
                         */
                        function newStyleTag( text, nextNode ) {
                                var s = document.createElement( 'style' );
-                               // Support: IE
-                               // Must attach style element to the document before setting cssText (T35305)
+
+                               s.appendChild( document.createTextNode( text ) );
                                if ( nextNode && nextNode.parentNode ) {
                                        nextNode.parentNode.insertBefore( s, nextNode );
                                } else {
                                        document.getElementsByTagName( 'head' )[ 0 ].appendChild( s );
                                }
-                               if ( s.styleSheet ) {
-                                       // Support: IE6-10
-                                       // Old IE ignores appended text nodes, access stylesheet directly.
-                                       s.styleSheet.cssText = text;
-                               } else {
-                                       // Standard behaviour
-                                       s.appendChild( document.createTextNode( text ) );
-                               }
+
                                return s;
                        }
 
                         * @param {Function} [callback]
                         */
                        function addEmbeddedCSS( cssText, callback ) {
-                               var $style, styleEl, newCssText;
+                               var $style, styleEl;
 
                                function fireCallbacks() {
                                        var oldCallbacks = cssCallbacks;
                                //
                                // Support: IE 6-9
                                // Try to re-use existing <style> tags due to the IE stylesheet limit (T33676).
-                               if ( isIEto9 ) {
+                               if ( isIE9 ) {
                                        $style = $( getMarker() ).prev();
                                        // Verify that the element before the marker actually is a <style> tag created
                                        // by mw.loader (not some other style tag, or e.g. a <meta> tag).
                                        if ( $style.data( 'ResourceLoaderDynamicStyleTag' ) ) {
                                                styleEl = $style[ 0 ];
-                                               // Support: IE 6-10
-                                               if ( styleEl.styleSheet ) {
-                                                       try {
-                                                               // Support: IE 9
-                                                               // We can't do styleSheet.cssText += cssText in IE9 because it mangles cssText on
-                                                               // write (removes @media queries). If we read it and used its value, we'd
-                                                               // accidentally apply @media-specific styles to all media. (T108727)
-                                                               if ( isIE9 ) {
-                                                                       newCssText = $style.data( 'ResourceLoaderDynamicStyleTag' ) + cssText;
-                                                                       styleEl.styleSheet.cssText = newCssText;
-                                                                       $style.data( 'ResourceLoaderDynamicStyleTag', newCssText );
-                                                               } else {
-                                                                       styleEl.styleSheet.cssText += cssText;
-                                                               }
-                                                       } catch ( e ) {
-                                                               mw.track( 'resourceloader.exception', { exception: e, source: 'stylesheet' } );
-                                                       }
-                                               } else {
-                                                       styleEl.appendChild( document.createTextNode( cssText ) );
-                                               }
+                                               styleEl.appendChild( document.createTextNode( cssText ) );
                                                fireCallbacks();
                                                return;
                                        }
 
                                $style = $( newStyleTag( cssText, getMarker() ) );
 
-                               if ( isIEto9 ) {
-                                       if ( isIE9 ) {
-                                               $style.data( 'ResourceLoaderDynamicStyleTag', cssText );
-                                       } else {
-                                               $style.data( 'ResourceLoaderDynamicStyleTag', true );
-                                       }
+                               if ( isIE9 ) {
+                                       $style.data( 'ResourceLoaderDynamicStyleTag', true );
                                }
 
                                fireCallbacks();
                                var hashes = $.map( modules, function ( module ) {
                                        return registry[ module ].version;
                                } );
-                               // Trim for consistency with server-side ResourceLoader::makeHash. It also helps
-                               // save precious space in the limited query string. Otherwise modules are more
-                               // likely to require multiple HTTP requests.
-                               return sha1( hashes.join( '' ) ).slice( 0, 12 );
+                               return fnv132( hashes.join( '' ) );
                        }
 
                        /**
                         */
                        function addLink( media, url ) {
                                var el = document.createElement( 'link' );
-                               // Support: IE
-                               // Insert in document *before* setting href
-                               $( getMarker() ).before( el );
+
                                el.rel = 'stylesheet';
                                if ( media && media !== 'all' ) {
                                        el.media = media;
                                // If you end up here from an IE exception "SCRIPT: Invalid property value.",
                                // see #addEmbeddedCSS, bug 31676, and bug 47277 for details.
                                el.href = url;
+
+                               $( getMarker() ).before( el );
                        }
 
                        /**
                                                }
                                                return;
                                        }
-                                       // Validate input
-                                       if ( typeof module !== 'string' ) {
-                                               throw new Error( 'module must be a string, not a ' + typeof module );
-                                       }
                                        if ( hasOwn.call( registry, module ) ) {
                                                throw new Error( 'module already registered: ' + module );
                                        }
                                 * @param {Object} [templates] List of key/value pairs to be added to mw#templates.
                                 */
                                implement: function ( module, script, style, messages, templates ) {
-                                       // Validate input
-                                       if ( typeof module !== 'string' ) {
-                                               throw new Error( 'module must be of type string, not ' + typeof module );
-                                       }
-                                       if ( script && !$.isFunction( script ) && !$.isArray( script ) && typeof script !== 'string' ) {
-                                               throw new Error( 'script must be of type function, array, or script; not ' + typeof script );
-                                       }
-                                       if ( style && !$.isPlainObject( style ) ) {
-                                               throw new Error( 'style must be of type object, not ' + typeof style );
-                                       }
-                                       if ( messages && !$.isPlainObject( messages ) ) {
-                                               throw new Error( 'messages must be of type object, not a ' + typeof messages );
-                                       }
-                                       if ( templates && !$.isPlainObject( templates ) ) {
-                                               throw new Error( 'templates must be of type object, not a ' + typeof templates );
-                                       }
                                        // Automatically register module
                                        if ( !hasOwn.call( registry, module ) ) {
                                                mw.loader.register( module );
                                 *         OO.compare( [ 1 ], [ 1 ] );
                                 *     } );
                                 *
-                                * @param {string|Array} dependencies Module name or array of modules names the callback
-                                *  dependends on to be ready before executing
+                                * @param {string|Array} dependencies Module name or array of modules names the
+                                *  callback depends on to be ready before executing
                                 * @param {Function} [ready] Callback to execute when all dependencies are ready
                                 * @param {Function} [error] Callback to execute if one or more dependencies failed
                                 * @return {jQuery.Promise}
                                        // Allow calling with a single dependency as a string
                                        if ( typeof dependencies === 'string' ) {
                                                dependencies = [ dependencies ];
-                                       } else if ( !$.isArray( dependencies ) ) {
-                                               // Invalid input
-                                               throw new Error( 'Dependencies must be a string or an array' );
                                        }
 
                                        if ( ready ) {
                                load: function ( modules, type ) {
                                        var filtered, l;
 
-                                       // Validate input
-                                       if ( typeof modules !== 'object' && typeof modules !== 'string' ) {
-                                               throw new Error( 'modules must be a string or an array, not a ' + typeof modules );
-                                       }
                                        // Allow calling with a url or single dependency as a string
                                        if ( typeof modules === 'string' ) {
                                                // "https://example.org/x.js", "http://example.org/x.js", "//example.org/x.js", "/x.js"
                                require: function ( moduleName ) {
                                        var state = mw.loader.getState( moduleName );
 
-                                       // Only ready mudules can be required
+                                       // Only ready modules can be required
                                        if ( state !== 'ready' ) {
                                                // Module may've forgotten to declare a dependency
                                                throw new Error( 'Module "' + moduleName + '" is not loaded.' );
index 129262c..e69de29 100644 (file)
@@ -1,6 +0,0 @@
-.mw-empty-li {
-       display: none;
-}
-.mw-empty-elt {
-       display: none;
-}
index 2d603bf..7c7aca3 100644 (file)
                        mw.track( 'mediawiki.searchSuggest', {
                                action: 'render-one',
                                formData: formData,
-                               index: context.config.suggestions.indexOf( text ) + 1
+                               index: context.config.suggestions.indexOf( text )
                        } );
 
                        // this is the container <div>, jQueryfied
                }
 
                // The function used when the user makes a selection
-               function selectFunction( $input ) {
+               function selectFunction( $input, source ) {
                        var context = $input.data( 'suggestionsContext' ),
                                text = $input.val();
 
-                       mw.track( 'mediawiki.searchSuggest', {
-                               action: 'click-result',
-                               numberOfResults: context.config.suggestions.length,
-                               clickIndex: context.config.suggestions.indexOf( text ) + 1
-                       } );
+                       // Selecting via keyboard triggers a form submission. That will fire
+                       // the submit-form event in addition to this click-result event.
+                       if ( source !== 'keyboard' ) {
+                               mw.track( 'mediawiki.searchSuggest', {
+                                       action: 'click-result',
+                                       numberOfResults: context.config.suggestions.length,
+                                       index: context.config.suggestions.indexOf( text )
+                               } );
+                       }
 
                        // allow the form to be submitted
                        return true;
                        // linkParams object is modified and reused
                        formData.linkParams[ formData.textParam ] = query;
 
+                       mw.track( 'mediawiki.searchSuggest', {
+                               action: 'render-one',
+                               formData: formData,
+                               index: context.config.suggestions.indexOf( query )
+                       } );
+
                        if ( $el.children().length === 0 ) {
                                $el
                                        .append(
                        },
                        special: {
                                render: specialRenderFunction,
-                               select: function ( $input ) {
-                                       $input.closest( 'form' )
-                                               .append( $( '<input type="hidden" name="fulltext" value="1"/>' ) );
+                               select: function ( $input, source ) {
+                                       var context = $input.data( 'suggestionsContext' ),
+                                               text = $input.val();
+                                       if ( source === 'mouse' ) {
+                                               // mouse click won't trigger form submission, so we need to send a click event
+                                               mw.track( 'mediawiki.searchSuggest', {
+                                                       action: 'click-result',
+                                                       numberOfResults: context.config.suggestions.length,
+                                                       index: context.config.suggestions.indexOf( text )
+                                               } );
+                                       } else {
+                                               $input.closest( 'form' )
+                                                       .append( $( '<input type="hidden" name="fulltext" value="1"/>' ) );
+                                       }
                                        return true; // allow the form to be submitted
                                }
                        },
                                        action: 'submit-form',
                                        numberOfResults: context.config.suggestions.length,
                                        $form: context.config.$region.closest( 'form' ),
-                                       inputLocation: getInputLocation( context )
+                                       inputLocation: getInputLocation( context ),
+                                       index: context.config.suggestions.indexOf(
+                                               context.data.$textbox.val()
+                                       )
                                } );
                        } )
                        // If the form includes any fallback fulltext search buttons, remove them
diff --git a/resources/src/mediawiki/page/gallery-slideshow.js b/resources/src/mediawiki/page/gallery-slideshow.js
new file mode 100644 (file)
index 0000000..85ded44
--- /dev/null
@@ -0,0 +1,453 @@
+/*!
+ * mw.GallerySlideshow: Interface controls for the slideshow gallery
+ */
+( function ( mw, $, OO ) {
+       /**
+        * mw.GallerySlideshow encapsulates the user interface of the slideshow
+        * galleries. An object is instantiated for each `.mw-gallery-slideshow`
+        * element.
+        *
+        * @class mw.GallerySlideshow
+        * @uses mw.Title
+        * @uses mw.Api
+        * @param {jQuery} gallery The `<ul>` element of the gallery.
+        */
+       mw.GallerySlideshow = function ( gallery ) {
+               // Properties
+               this.$gallery = $( gallery );
+               this.$galleryCaption = this.$gallery.find( '.gallerycaption' );
+               this.$galleryBox = this.$gallery.find( '.gallerybox' );
+               this.$currentImage = null;
+               this.imageInfoCache = {};
+               if ( this.$gallery.parent().attr( 'id' ) !== 'mw-content-text' ) {
+                       this.$container = this.$gallery.parent();
+               }
+
+               // Initialize
+               this.drawCarousel();
+               this.setSizeRequirement();
+               this.toggleThumbnails( false );
+               this.showCurrentImage();
+
+               // Events
+               $( window ).on(
+                       'resize',
+                       OO.ui.debounce(
+                               this.setSizeRequirement.bind( this ),
+                               100
+                       )
+               );
+
+               // Disable thumbnails' link, instead show the image in the carousel
+               this.$galleryBox.on( 'click', function ( e ) {
+                       this.$currentImage = $( e.currentTarget );
+                       this.showCurrentImage();
+                       return false;
+               }.bind( this ) );
+       };
+
+       /* Properties */
+       /**
+        * @property {jQuery} $gallery The `<ul>` element of the gallery.
+        */
+
+       /**
+        * @property {jQuery} $galleryCaption The `<li>` that has the gallery caption.
+        */
+
+       /**
+        * @property {jQuery} $galleryBox Selection of `<li>` elements that have thumbnails.
+        */
+
+       /**
+        * @property {jQuery} $carousel The `<li>` elements that contains the carousel.
+        */
+
+       /**
+        * @property {jQuery} $interface The `<div>` elements that contains the interface buttons.
+        */
+
+       /**
+        * @property {jQuery} $img The `<img>` element that'll display the current image.
+        */
+
+       /**
+        * @property {jQuery} $imgLink The `<a>` element that links to the image's File page.
+        */
+
+       /**
+        * @property {jQuery} $imgCaption The `<p>` element that holds the image caption.
+        */
+
+       /**
+        * @property {jQuery} $imgContainer The `<div>` element that contains the image.
+        */
+
+       /**
+        * @property {jQuery} $currentImage The `<li>` element of the current image.
+        */
+
+       /**
+        * @property {jQuery} $container If the gallery contained in an element that is
+        *      not the main content element, then it stores that element.
+        */
+
+       /**
+        * @property {Object} imageInfoCache A key value pair of thumbnail URLs and image info.
+        */
+
+       /**
+        * @property {number} imageWidth Width of the image based on viewport size
+        */
+
+       /**
+        * @property {number} imageHeight Height of the image based on viewport size
+        *      the URLs in the required size.
+        */
+
+       /* Setup */
+       OO.initClass( mw.GallerySlideshow );
+
+       /* Methods */
+       /**
+        * Draws the carousel and the interface around it.
+        */
+       mw.GallerySlideshow.prototype.drawCarousel = function () {
+               var next, prev, toggle, interfaceElements, carouselStack;
+
+               this.$carousel = $( '<li>' ).addClass( 'gallerycarousel' );
+
+               // Buttons for the interface
+               prev = new OO.ui.ButtonWidget( {
+                       framed: false,
+                       icon: 'previous'
+               } ).on( 'click', this.prevImage.bind( this ) );
+
+               next = new OO.ui.ButtonWidget( {
+                       framed: false,
+                       icon: 'next'
+               } ).on( 'click', this.nextImage.bind( this ) );
+
+               toggle = new OO.ui.ButtonWidget( {
+                       framed: false,
+                       icon: 'imageGallery'
+               } ).on( 'click', this.toggleThumbnails.bind( this ) );
+
+               interfaceElements = new OO.ui.PanelLayout( {
+                       expanded: false,
+                       classes: [ 'mw-gallery-slideshow-buttons' ],
+                       $content: $( '<div>' ).append(
+                               prev.$element,
+                               toggle.$element,
+                               next.$element
+                       )
+               } );
+               this.$interface = interfaceElements.$element;
+
+               // Containers for the current image, caption etc.
+               this.$img = $( '<img>' );
+               this.$imgLink = $( '<a>' ).append( this.$img );
+               this.$imgCaption = $( '<p>' ).attr( 'class', 'mw-gallery-slideshow-caption' );
+               this.$imgContainer = $( '<div>' )
+                       .attr( 'class', 'mw-gallery-slideshow-img-container' )
+                       .append( this.$imgLink );
+
+               carouselStack = new OO.ui.StackLayout( {
+                       continuous: true,
+                       expanded: false,
+                       items: [
+                               interfaceElements,
+                               new OO.ui.PanelLayout( {
+                                       expanded: false,
+                                       $content: this.$imgContainer
+                               } ),
+                               new OO.ui.PanelLayout( {
+                                       expanded: false,
+                                       $content: this.$imgCaption
+                               } )
+                       ]
+               } );
+               this.$carousel.append( carouselStack.$element );
+
+               // Append below the caption or as the first element in the gallery
+               if ( this.$galleryCaption.length !== 0 ) {
+                       this.$galleryCaption.after( this.$carousel );
+               } else {
+                       this.$gallery.prepend( this.$carousel );
+               }
+       };
+
+       /**
+        * Sets the {@link #imageWidth} and {@link #imageHeight} properties
+        * based on the size of the window. Also flushes the
+        * {@link #imageInfoCache} as we'll now need URLs for a different
+        * size.
+        */
+       mw.GallerySlideshow.prototype.setSizeRequirement = function () {
+               var w, h;
+
+               if ( this.$container !== undefined ) {
+                       w = this.$container.width() * 0.9;
+                       h = ( this.$container.height() - this.getChromeHeight() ) * 0.9;
+               } else {
+                       w = this.$imgContainer.width();
+                       h = Math.min( $( window ).height() * ( 3 / 4 ), this.$imgContainer.width() ) - this.getChromeHeight();
+               }
+
+               // Only update and flush the cache if the size changed
+               if ( w !== this.imageWidth || h !== this.imageHeight ) {
+                       this.imageWidth = w;
+                       this.imageHeight = h;
+                       this.imageInfoCache = {};
+                       this.setImageSize();
+               }
+       };
+
+       /**
+        * Gets the height of the interface elements and the
+        * gallery's caption.
+        */
+       mw.GallerySlideshow.prototype.getChromeHeight = function () {
+               return this.$interface.outerHeight() + this.$galleryCaption.outerHeight();
+       };
+
+       /**
+        * Sets the height and width of {@link #$img} based on the
+        * proportion of the image and the values generated by
+        * {@link #setSizeRequirement}.
+        *
+        * @return {boolean} Whether or not the image was sized.
+        */
+       mw.GallerySlideshow.prototype.setImageSize = function () {
+               if ( this.$img === undefined || this.$thumbnail === undefined ) {
+                       return false;
+               }
+
+               // Reset height and width
+               this.$img
+                       .removeAttr( 'width' )
+                       .removeAttr( 'height' );
+
+               // Stretch image to take up the required size
+               if ( this.$thumbnail.width() > this.$thumbnail.height() ) {
+                       this.$img.attr( 'width', this.imageWidth + 'px' );
+               } else {
+                       this.$img.attr( 'height', this.imageHeight + 'px' );
+               }
+
+               // Make the image smaller in case the current image
+               // size is larger than the original file size.
+               this.getImageInfo( this.$thumbnail ).done( function ( info ) {
+                       // NOTE: There will be a jump when resizing the window
+                       // because the cache is cleared and this a new network request.
+                       if (
+                               info.thumbwidth < this.$img.width() ||
+                               info.thumbheight < this.$img.height()
+                       ) {
+                               this.$img.attr( 'width', info.thumbwidth + 'px' );
+                               this.$img.attr( 'height', info.thumbheight + 'px' );
+                       }
+               }.bind( this ) );
+
+               return true;
+       };
+
+       /**
+        * Displays the image set as {@link #$currentImage} in the carousel.
+        */
+       mw.GallerySlideshow.prototype.showCurrentImage = function () {
+               var imageLi = this.getCurrentImage(),
+                       caption = imageLi.find( '.gallerytext' );
+
+               // Highlight current thumbnail
+               this.$gallery
+                       .find( '.gallerybox.slideshow-current' )
+                       .removeClass( 'slideshow-current' );
+               imageLi.addClass( 'slideshow-current' );
+
+               // Show thumbnail stretched to the right size while the image loads
+               this.$thumbnail = imageLi.find( 'img' );
+               this.$img.attr( 'src', this.$thumbnail.attr( 'src' ) );
+               this.$imgLink.attr( 'href', imageLi.find( 'a' ).eq( 0 ).attr( 'href' ) );
+               this.setImageSize();
+
+               // Copy caption
+               this.$imgCaption
+                       .empty()
+                       .append( caption.clone() );
+
+               // Load image at the required size
+               this.loadImage( this.$thumbnail ).done( function ( info, $img ) {
+                       // Show this image to the user only if its still the current one
+                       if ( this.$thumbnail.attr( 'src' ) === $img.attr( 'src' ) ) {
+                               this.$img.attr( 'src', info.thumburl );
+                               this.setImageSize();
+
+                               // Keep the next image ready
+                               this.loadImage( this.getNextImage().find( 'img' ) );
+                       }
+               }.bind( this ) );
+       };
+
+       /**
+        * Loads the full image given the `<img>` element of the thumbnail.
+        *
+        * @param {Object} $img
+        * @return {jQuery.Promise} Resolves with the images URL and original
+        *      element once the image has loaded.
+        */
+       mw.GallerySlideshow.prototype.loadImage = function ( $img ) {
+               var img, d = $.Deferred();
+
+               this.getImageInfo( $img ).done( function ( info ) {
+                       img = new Image();
+                       img.src = info.thumburl;
+                       img.onload = function () {
+                               d.resolve( info, $img );
+                       };
+                       img.onerror = function () {
+                               d.reject();
+                       };
+               } ).fail( function () {
+                       d.reject();
+               } );
+
+               return d.promise();
+       };
+
+       /**
+        * Gets the image's info given an `<img>` element.
+        *
+        * @param {Object} $img
+        * @return {jQuery.Promise} Resolves with the image's info.
+        */
+       mw.GallerySlideshow.prototype.getImageInfo = function ( $img ) {
+               var api, title, params,
+                       imageSrc = $img.attr( 'src' );
+
+               if ( this.imageInfoCache[ imageSrc ] === undefined ) {
+                       api = new mw.Api();
+                       // TODO: This supports only gallery of images
+                       title = new mw.Title.newFromImg( $img );
+                       params = {
+                               action: 'query',
+                               formatversion: 2,
+                               titles: title.toString(),
+                               prop: 'imageinfo',
+                               iiprop: 'url'
+                       };
+
+                       // Check which dimension we need to request, based on
+                       // image and container proportions.
+                       if ( this.getDimensionToRequest( $img ) === 'height' ) {
+                               params.iiurlheight = this.imageHeight;
+                       } else {
+                               params.iiurlwidth = this.imageWidth;
+                       }
+
+                       this.imageInfoCache[ imageSrc ] = api.get( params ).then( function ( data ) {
+                               if ( OO.getProp( data, 'query', 'pages', 0, 'imageinfo', 0, 'thumburl' ) !== undefined ) {
+                                       return data.query.pages[ 0 ].imageinfo[ 0 ];
+                               } else {
+                                       return $.Deferred().reject();
+                               }
+                       } );
+               }
+
+               return this.imageInfoCache[ imageSrc ];
+       };
+
+       /**
+        * Given an image, the method checks whether to use the height
+        * or the width to request the larger image.
+        *
+        * @param {jQuery} $img
+        * @return {string}
+        */
+       mw.GallerySlideshow.prototype.getDimensionToRequest = function ( $img ) {
+               var ratio = $img.width() / $img.height();
+
+               if ( this.imageHeight * ratio <= this.imageWidth ) {
+                       return 'height';
+               } else {
+                       return 'width';
+               }
+       };
+
+       /**
+        * Toggles visibility of the thumbnails.
+        *
+        * @param {boolean} show Optional argument to control the state
+        */
+       mw.GallerySlideshow.prototype.toggleThumbnails = function ( show ) {
+               this.$galleryBox.toggle( show );
+               this.$carousel.toggleClass( 'mw-gallery-slideshow-thumbnails-toggled', show );
+       };
+
+       /**
+        * Getter method for {@link #$currentImage}
+        *
+        * @return {jQuery}
+        */
+       mw.GallerySlideshow.prototype.getCurrentImage = function () {
+               this.$currentImage = this.$currentImage || this.$galleryBox.eq( 0 );
+               return this.$currentImage;
+       };
+
+       /**
+        * Gets the image after the current one. Returns the first image if
+        * the current one is the last.
+        *
+        * @return {jQuery}
+        */
+       mw.GallerySlideshow.prototype.getNextImage = function () {
+               // Not the last image in the gallery
+               if ( this.$currentImage.next( '.gallerybox' )[ 0 ] !== undefined ) {
+                       return this.$currentImage.next( '.gallerybox' );
+               } else {
+                       return this.$galleryBox.eq( 0 );
+               }
+       };
+
+       /**
+        * Gets the image before the current one. Returns the last image if
+        * the current one is the first.
+        *
+        * @return {jQuery}
+        */
+       mw.GallerySlideshow.prototype.getPrevImage = function () {
+               // Not the first image in the gallery
+               if ( this.$currentImage.prev( '.gallerybox' )[ 0 ] !== undefined ) {
+                       return this.$currentImage.prev( '.gallerybox' );
+               } else {
+                       return this.$galleryBox.last();
+               }
+       };
+
+       /**
+        * Sets the {@link #$currentImage} to the next one and shows
+        * it in the carousel
+        */
+       mw.GallerySlideshow.prototype.nextImage = function () {
+               this.$currentImage = this.getNextImage();
+               this.showCurrentImage();
+       };
+
+       /**
+        * Sets the {@link #$currentImage} to the previous one and shows
+        * it in the carousel
+        */
+       mw.GallerySlideshow.prototype.prevImage = function () {
+               this.$currentImage = this.getPrevImage();
+               this.showCurrentImage();
+       };
+
+       // Bootstrap all slideshow galleries
+       $( function () {
+               $( '.mw-gallery-slideshow' ).each( function () {
+                       /*jshint -W031 */
+                       new mw.GallerySlideshow( this );
+                       /*jshint +W031 */
+               } );
+       } );
+}( mediaWiki, jQuery, OO ) );
index 4d43e6a..26463fd 100644 (file)
@@ -90,12 +90,83 @@ ul.mw-gallery-packed-hover li.gallerybox.mw-gallery-focused div.gallerytextwrapp
        bottom: 0;
        left: 0; /* Needed for IE */
        height: auto;
+       max-height: 40%;
+       overflow: hidden;
        font-weight: bold;
        margin: 2px; /* correspond to style on div.thumb */
 }
 
+ul.mw-gallery-packed-hover li.gallerybox:hover div.gallerytextwrapper p,
+ul.mw-gallery-packed-overlay li.gallerybox div.gallerytextwrapper p,
+ul.mw-gallery-packed-hover li.gallerybox.mw-gallery-focused div.gallerytextwrapper p {
+       text-overflow: ellipsis;
+       white-space: nowrap;
+       overflow: hidden;
+}
+
+ul.mw-gallery-packed-hover li.gallerybox div.gallerytextwrapper:hover,
+ul.mw-gallery-packed-overlay li.gallerybox div.gallerytextwrapper:hover,
+ul.mw-gallery-packed-hover li.gallerybox.mw-gallery-focused div.gallerytextwrapper:hover {
+       overflow: visible;
+       max-height: none;
+}
+
+ul.mw-gallery-packed-hover li.gallerybox div.gallerytextwrapper:hover p,
+ul.mw-gallery-packed-overlay li.gallerybox div.gallerytextwrapper:hover p,
+ul.mw-gallery-packed-hover li.gallerybox.mw-gallery-focused div.gallerytextwrapper:hover p {
+       text-overflow: clip;
+       white-space: normal;
+       overflow: visible;
+}
+
 ul.mw-gallery-packed-hover,
 ul.mw-gallery-packed-overlay,
 ul.mw-gallery-packed {
        text-align: center;
 }
+
+/* Slideshow */
+ul.gallery.mw-gallery-slideshow {
+       display: block;
+       margin: 4em 0;
+}
+
+ul.gallery.mw-gallery-slideshow .gallerycaption {
+       font-size: 1.3em;
+       margin: 0;
+}
+
+ul.gallery.mw-gallery-slideshow .gallerycarousel.mw-gallery-slideshow-thumbnails-toggled {
+       margin-bottom: 1.3em;
+}
+
+ul.gallery.mw-gallery-slideshow .mw-gallery-slideshow-buttons {
+       opacity: 0.5;
+       padding: 1.3em 0;
+}
+
+ul.gallery.mw-gallery-slideshow .mw-gallery-slideshow-buttons .oo-ui-buttonElement {
+       margin: 0 2em;
+}
+
+.mw-gallery-slideshow li.gallerybox.slideshow-current {
+       background: #efefef;
+}
+
+.mw-gallery-slideshow .gallerybox > div {
+       max-width: 120px;
+}
+
+ul.mw-gallery-slideshow li.gallerybox div.thumb {
+       border: none;
+       background: transparent;
+}
+
+ul.mw-gallery-slideshow li.gallerycarousel {
+       display: block;
+       text-align: center;
+}
+
+.mw-gallery-slideshow-img-container a {
+       display: block;
+}
\ No newline at end of file
index 9af0598..dd33b00 100644 (file)
@@ -27,7 +27,7 @@ moment.locale( moment.locale(), {
                if ( mw.config.get( 'wgTranslateNumerals' ) ) {
                        for ( i = 0; i < 10; i++ ) {
                                if ( table[ i ] !== undefined ) {
-                                       s = s.replace( new RegExp( mw.RegExp.escape( i ), 'g' ), table[ i ] );
+                                       s = s.replace( new RegExp( i, 'g' ), table[ i ] );
                                }
                        }
                }
index 312e745..62ee94e 100644 (file)
@@ -3,7 +3,7 @@
  *
  * This file is where we decide whether to initialise the modern run-time.
  */
-/*jshint unused: false, evil: true */
+/*jshint unused: false */
 /*globals mw, RLQ: true, NORLQ: true, $VARS, $CODE, performance */
 
 var mediaWikiLoadStart = ( new Date() ).getTime(),
index 8b100a2..2bb1d2e 100644 (file)
@@ -143,6 +143,7 @@ $wgAutoloadClasses += [
        'NewParserTest' => "$testDir/phpunit/includes/parser/NewParserTest.php",
        'MediaWikiParserTest' => "$testDir/phpunit/includes/parser/MediaWikiParserTest.php",
        'ParserTest' => "$testDir/parser/parserTest.inc",
+       'ParserTestResultNormalizer' => "$testDir/parser/parserTest.inc",
        'ParserTestParserHook' => "$testDir/parser/parserTestsParserHook.php",
 
        # tests/phpunit/includes/site
index fa0570c..d9b4f52 100644 (file)
@@ -11,5 +11,5 @@ When(/^I submit the form$/) do
 end
 
 Then(/^an error message is displayed$/) do
-  expect(on(CreateAccountPage).error_message_element.class_name).to eq 'errorbox'
+  expect(on(CreateAccountPage).error_message_element).to exist
 end
index bda0faa..9b35e99 100644 (file)
@@ -23,11 +23,11 @@ When(/^I log in without entering password$/) do
 end
 
 Then(/^error box should be visible$/) do
-  expect(on(LoginErrorPage).error_box_element).to be_visible
+  expect(on(LoginPage).error_message_element).to exist
 end
 
 Then(/^error box should not be visible$/) do
-  expect(on(LoginErrorPage).error_box_element).not_to be_visible
+  expect(on(LoginPage).error_message_element).not_to exist
 end
 
 Then(/^feedback should be (.+)$/) do |feedback|
index 9c1c3ba..20e2744 100644 (file)
@@ -4,5 +4,5 @@ class CreateAccountPage
   page_url '<%=params[:page_title]%>'
 
   button(:create_account, id: 'wpCreateaccount')
-  div(:error_message, id: 'mw-createacct-status-area')
+  element(:error_message, css: 'div#userloginForm div.error')
 end
diff --git a/tests/browser/features/support/pages/login_error_page.rb b/tests/browser/features/support/pages/login_error_page.rb
deleted file mode 100644 (file)
index 9a1805f..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-class LoginErrorPage
-  include PageObject
-
-  div(:error_box, class: 'errorbox')
-end
index 8ef1e44..4727318 100644 (file)
@@ -5,6 +5,7 @@ class LoginPage
 
   page_url 'Special:UserLogin'
 
+  element(:error_message, css: 'div#userloginForm div.error')
   div(:feedback, class: 'errorbox')
   button(:login, id: 'wpLoginAttempt')
   li(:logout, id: 'pt-logout')
index c2bb78d..9adc3e6 100644 (file)
@@ -82,6 +82,9 @@ class ParserTest {
 
        public $regex = "";
        private $savedGlobals = [];
+       private $useDwdiff = false;
+       private $markWhitespace = false;
+       private $normalizationFunctions = [];
 
        /**
         * Sets terminal colorization and diff/quick modes depending on OS and
@@ -116,6 +119,18 @@ class ParserTest {
                                || isset( $options['compare'] ) ) ); // redundant output
 
                $this->showOutput = isset( $options['show-output'] );
+               $this->useDwdiff = isset( $options['dwdiff'] );
+               $this->markWhitespace = isset( $options['mark-ws'] );
+
+               if ( isset( $options['norm'] ) ) {
+                       foreach ( explode( ',', $options['norm'] ) as $func ) {
+                               if ( in_array( $func, [ 'removeTbody', 'trimWhitespace' ] ) ) {
+                                       $this->normalizationFunctions[] = $func;
+                               } else {
+                                       echo "Warning: unknown normalization option \"$func\"\n";
+                               }
+                       }
+               }
 
                if ( isset( $options['filter'] ) ) {
                        $options['regex'] = $options['filter'];
@@ -149,7 +164,7 @@ class ParserTest {
                $this->runParsoid = isset( $options['run-parsoid'] );
 
                $this->djVuSupport = new DjVuSupport();
-               $this->tidySupport = new TidySupport();
+               $this->tidySupport = new TidySupport( isset( $options['use-tidy-config'] ) );
                if ( !$this->tidySupport->isEnabled() ) {
                        echo "Warning: tidy is not installed, skipping some tests\n";
                }
@@ -700,6 +715,11 @@ class ParserTest {
 
                $this->teardownGlobals();
 
+               if ( count( $this->normalizationFunctions ) ) {
+                       $result = ParserTestResultNormalizer::normalize( $result, $this->normalizationFunctions );
+                       $out = ParserTestResultNormalizer::normalize( $out, $this->normalizationFunctions );
+               }
+
                $testResult = new ParserTestResult( $desc );
                $testResult->expected = $result;
                $testResult->actual = $out;
@@ -834,8 +854,6 @@ class ParserTest {
         * @return RequestContext
         */
        private function setupGlobals( $opts = '', $config = '' ) {
-               global $IP;
-
                # Find out values for some special options.
                $lang =
                        self::getOptionValue( 'language', $opts, 'en' );
@@ -891,7 +909,7 @@ class ParserTest {
                        'wgMaxTocLevel' => $maxtoclevel,
                        'wgCapitalLinks' => true,
                        'wgNoFollowLinks' => true,
-                       'wgNoFollowDomainExceptions' => [],
+                       'wgNoFollowDomainExceptions' => [ 'no-nofollow.org' ],
                        'wgThumbnailScriptPath' => false,
                        'wgUseImageResize' => true,
                        'wgSVGConverter' => 'null',
@@ -919,12 +937,8 @@ class ParserTest {
                        'wgDisableLangConversion' => false,
                        'wgDisableTitleConversion' => false,
                        // Tidy options.
-                       'wgUseTidy' => isset( $opts['tidy'] ),
-                       'wgTidyConfig' => null,
-                       'wgDebugTidy' => false,
-                       'wgTidyConf' => $IP . '/includes/tidy/tidy.conf',
-                       'wgTidyOpts' => '',
-                       'wgTidyInternal' => $this->tidySupport->isInternal(),
+                       'wgUseTidy' => false,
+                       'wgTidyConfig' => isset( $opts['tidy'] ) ? $this->tidySupport->getConfig() : null
                ];
 
                if ( $config ) {
@@ -1137,6 +1151,19 @@ class ParserTest {
                        'fileExists' => true
                ], $this->db->timestamp( '20010115123500' ), $user );
 
+               $image = wfLocalFile( Title::makeTitle( NS_FILE, 'Audio.oga' ) );
+               $image->recordUpload2( '', 'An awesome hitsong', 'Will it play', [
+                       'size' => 12345,
+                       'width' => 0,
+                       'height' => 0,
+                       'bits' => 0,
+                       'media_type' => MEDIATYPE_AUDIO,
+                       'mime' => 'application/ogg',
+                       'metadata' => serialize( [] ),
+                       'sha1' => Wikimedia\base_convert( '', 16, 36, 31 ),
+                       'fileExists' => true
+               ], $this->db->timestamp( '20010115123500' ), $user );
+
                # A DjVu file
                $image = wfLocalFile( Title::makeTitle( NS_FILE, 'LoremIpsum.djvu' ) );
                $image->recordUpload2( '', 'Upload a DjVu', 'A DjVu', [
@@ -1252,6 +1279,8 @@ class ParserTest {
                copy( "$IP/tests/phpunit/data/parser/LoremIpsum.djvu", "$dir/5/5f/LoremIpsum.djvu" );
                wfMkdirParents( $dir . '/0/00', null, __METHOD__ );
                copy( "$IP/tests/phpunit/data/parser/320x240.ogv", "$dir/0/00/Video.ogv" );
+               wfMkdirParents( $dir . '/4/41', null, __METHOD__ );
+               copy( "$IP/tests/phpunit/data/media/say-test.ogg", "$dir/4/41/Audio.oga" );
 
                return;
        }
@@ -1301,6 +1330,7 @@ class ParserTest {
                                "$dir/thumb/0/00/Video.ogv/270px--Video.ogv.jpg",
                                "$dir/thumb/0/00/Video.ogv/320px-seek=2-Video.ogv.jpg",
                                "$dir/thumb/0/00/Video.ogv/320px-seek=3.3666666666667-Video.ogv.jpg",
+                               "$dir/4/41/Audio.oga",
                        ]
                );
 
@@ -1330,6 +1360,8 @@ class ParserTest {
                                "$dir/thumb/5/5f",
                                "$dir/thumb/5",
                                "$dir/thumb",
+                               "$dir/4/41",
+                               "$dir/4",
                                "$dir/math/f/a/5",
                                "$dir/math/f/a",
                                "$dir/math/f",
@@ -1451,6 +1483,16 @@ class ParserTest {
        protected function quickDiff( $input, $output,
                $inFileTail = 'expected', $outFileTail = 'actual'
        ) {
+               if ( $this->markWhitespace ) {
+                       $pairs = [
+                               "\n" => '¶',
+                               ' ' => '·',
+                               "\t" => '→'
+                       ];
+                       $input = strtr( $input, $pairs );
+                       $output = strtr( $output, $pairs );
+               }
+
                # Windows, or at least the fc utility, is retarded
                $slash = wfIsWindows() ? '\\' : '/';
                $prefix = wfTempDir() . "{$slash}mwParser-" . mt_rand();
@@ -1466,14 +1508,22 @@ class ParserTest {
 
                global $wgDiff3;
                // we assume that people with diff3 also have usual diff
-               $shellCommand = ( wfIsWindows() && !$wgDiff3 ) ? 'fc' : 'diff -au';
+               if ( $this->useDwdiff ) {
+                       $shellCommand = 'dwdiff -Pc';
+               } else {
+                       $shellCommand = ( wfIsWindows() && !$wgDiff3 ) ? 'fc' : 'diff -au';
+               }
 
                $diff = wfShellExec( "$shellCommand $shellInfile $shellOutfile" );
 
                unlink( $infile );
                unlink( $outfile );
 
-               return $this->colorDiff( $diff );
+               if ( $this->useDwdiff ) {
+                       return $diff;
+               } else {
+                       return $this->colorDiff( $diff );
+               }
        }
 
        /**
@@ -1681,3 +1731,84 @@ class ParserTest {
                return true;
        }
 }
+
+class ParserTestResultNormalizer {
+       protected $doc, $xpath, $invalid;
+
+       public static function normalize( $text, $funcs ) {
+               $norm = new self( $text );
+               if ( $norm->invalid ) {
+                       return $text;
+               }
+               foreach ( $funcs as $func ) {
+                       $norm->$func();
+               }
+               return $norm->serialize();
+       }
+
+       protected function __construct( $text ) {
+               $this->doc = new DOMDocument( '1.0', 'utf-8' );
+
+               // Note: parsing a supposedly XHTML document with an XML parser is not
+               // guaranteed to give accurate results. For example, it may introduce
+               // differences in the number of line breaks in <pre> tags.
+
+               MediaWiki\suppressWarnings();
+               if ( !$this->doc->loadXML( '<html><body>' . $text . '</body></html>' ) ) {
+                       $this->invalid = true;
+               }
+               MediaWiki\restoreWarnings();
+               $this->xpath = new DOMXPath( $this->doc );
+               $this->body = $this->xpath->query( '//body' )->item( 0 );
+       }
+
+       protected function removeTbody() {
+               foreach ( $this->xpath->query( '//tbody' ) as $tbody ) {
+                       while ( $tbody->firstChild ) {
+                               $child = $tbody->firstChild;
+                               $tbody->removeChild( $child );
+                               $tbody->parentNode->insertBefore( $child, $tbody );
+                       }
+                       $tbody->parentNode->removeChild( $tbody );
+               }
+       }
+
+       /**
+        * The point of this function is to produce a normalized DOM in which
+        * Tidy's output matches the output of html5depurate. Tidy both trims
+        * and pretty-prints, so this requires fairly aggressive treatment.
+        *
+        * In particular, note that Tidy converts <pre>x</pre> to <pre>\nx\n</pre>,
+        * which theoretically affects display since the second line break is not
+        * ignored by compliant HTML parsers.
+        *
+        * This function also removes empty elements, as does Tidy.
+        */
+       protected function trimWhitespace() {
+               foreach ( $this->xpath->query( '//text()' ) as $child ) {
+                       if ( strtolower( $child->parentNode->nodeName ) === 'pre' ) {
+                               // Just trim one line break from the start and end
+                               if ( substr_compare( $child->data, "\n", 0 ) === 0 ) {
+                                       $child->data = substr( $child->data, 1 );
+                               }
+                               if ( substr_compare( $child->data, "\n", -1 ) === 0 ) {
+                                       $child->data = substr( $child->data, 0, -1 );
+                               }
+                       } else {
+                               // Trim all whitespace
+                               $child->data = trim( $child->data );
+                       }
+                       if ( $child->data === '' ) {
+                               $child->parentNode->removeChild( $child );
+                       }
+               }
+       }
+
+       /**
+        * Serialize the XML DOM for comparison purposes. This does not generate HTML.
+        */
+       protected function serialize() {
+               return strtr( $this->doc->saveXML( $this->body ),
+                       [ '<body>' => '', '</body>' => '' ] );
+       }
+}
index 523953c..dd50607 100644 (file)
@@ -4782,6 +4782,15 @@ ok-<a rel="nofollow" class="external free" href="http://example.com">http://exam
 </p>
 !! end
 
+!! test
+External links: nofollow domain exception
+!! wikitext
+A [https://no-nofollow.org/foobar link], and another [https://example.org link].
+!! html
+<p>A <a class="external text" href="https://no-nofollow.org/foobar">link</a>, and another <a rel="nofollow" class="external text" href="https://example.org">link</a>.
+</p>
+!!end
+
 !! test
 External image
 !! wikitext
@@ -6563,13 +6572,15 @@ T107652: <ref>s in templates that also generate table cell attributes should be
 
 !! test
 Table with row followed by newlines and table heading
+!! options
+parsoid=wt2html,html2html
 !! wikitext
 {|
 |-
 
 ! foo
 |}
-!! html
+!! html/*
 <table>
 
 
@@ -6581,13 +6592,15 @@ Table with row followed by newlines and table heading
 
 !! test
 Table with empty line following the start tag
+!! options
+parsoid=wt2html,html2html
 !! wikitext
 {|
 
 |-
 | foo
 |}
-!! html
+!! html/*
 <table>
 
 
@@ -7073,12 +7086,14 @@ parsoid=wt2html
 </tbody></table>
 !! end
 
+# T137406: Whitespace in the HTML
 !! test
-Strip unsupported table tags
+1. Generate correct wikitext for tables with thead/tbody/tfoot
 !! options
 parsoid=html2wt
 !! html/parsoid
 <table>
+<caption>Test</caption>
 <thead>
 <tr>
 <th>Month</th>
@@ -7104,20 +7119,53 @@ parsoid=html2wt
 </table>
 !! wikitext
 {|
-
+|+Test
 !Month
 !Savings
-
+|-
 |January
 |$100
-
 |-
 |February
 |$80
-
+|-
 |Sum
 |$180
+|}
+!! html/php+tidy
+<table>
+<caption>Test</caption>
+<tr>
+<th>Month</th>
+<th>Savings</th>
+</tr>
+<tr>
+<td>January</td>
+<td>$100</td>
+</tr>
+<tr>
+<td>February</td>
+<td>$80</td>
+</tr>
+<tr>
+<td>Sum</td>
+<td>$180</td>
+</tr>
+</table>
+!! end
 
+# T137406: No whitespace in the HTML
+!! test
+2. Generate correct wikitext for tables with thead/tbody/tfoot
+!! options
+parsoid=html2wt
+!! html/parsoid
+<table><thead><tr><th>heading</th></tr></thead><tbody><tr><td>foo</td></tr></tbody></table>
+!! wikitext
+{|
+!heading
+|-
+|foo
 |}
 !! end
 
@@ -7161,6 +7209,129 @@ parsoid={
 |}
 !!end
 
+!! test
+Testing selser after addition of new row before first row (T125419)
+!! options
+parsoid={
+  "modes": ["wt2wt", "selser"],
+  "changes": [
+    [ "tr", "before", "<tr><td>X</td></tr>" ]
+  ]
+}
+!! wikitext
+{|
+|a
+|}
+!! wikitext/edited
+{|
+|X
+|-
+|a
+|}
+!! end
+
+!! test
+Serialize new table rows in a HTML table using HTML tags
+!! options
+parsoid={
+  "modes": ["wt2wt", "selser"],
+  "changes": [
+    [ "tr", "before", "<tr><td>X</td></tr>" ]
+  ]
+}
+!! wikitext
+<table><tr><td>a</td></tr></table>
+!! wikitext/edited
+<table><tr><td>X</td></tr><tr><td>a</td></tr></table>
+!! end
+
+!! test
+Serialize new table cells in a HTML row using HTML tags
+!! options
+parsoid={
+  "modes": ["wt2wt", "selser"],
+  "changes": [
+    [ "td", "before", "<td>X</td>" ]
+  ]
+}
+!! wikitext
+<table><tr><td>a</td></tr></table>
+!! wikitext/edited
+<table><tr><td>X</td><td>a</td></tr></table>
+!! end
+
+!! test
+Wikitext tables can be nested inside HTML tables
+!! options
+parsoid=html2wt
+!! html
+<table data-parsoid='{"stx":"html"}'>
+<tr><td>
+<table>
+<tr><td>foo</td></tr>
+</table>
+</td></tr>
+</table>
+!! wikitext
+<table>
+<tr><td>
+{|
+|foo
+|}
+</td></tr>
+</table>
+!! end
+
+!! test
+Serialize wikitext list items as HTML list items when embedded in a HTML list
+!! options
+parsoid=html2wt
+!! html
+<ul data-parsoid='{"stx": "html"}'>
+<li data-parsoid='{}'>a</li>
+<li>b</li>
+</ul>
+!! wikitext
+<ul>
+<li>a</li>
+<li>b</li>
+</ul>
+!! end
+
+# SSS FIXME: Is this actually a good thing given the
+# odd nested list output that is generated by MW?
+# <ul><li>foo<ul>..</ul></li></ul> instead of
+# <ul><li>foo</li><ul>..</ul></ul>
+!! test
+Wikitext lists can be nested inside HTML lists
+!! options
+parsoid=html2wt
+!! html
+<ul data-parsoid='{"stx": "html"}'>
+<li data-parsoid='{"stx": "html"}'>a
+<ul><li>b</li></ul>
+</li>
+</ul>
+
+<ul data-parsoid='{"stx": "html"}'>
+<li>x
+<ul><li>y</li></ul>
+</li>
+</ul>
+!! wikitext
+<ul>
+<li>a
+* b
+</li>
+</ul>
+
+<ul>
+<li>x
+* y
+</li>
+</ul>
+!! end
+
 ###
 ### Internal links
 ###
@@ -8179,8 +8350,6 @@ parsoid=wt2html,wt2wt,html2html
 
 !! test
 Interlanguage link
-!! options
-parsoid=wt2html,wt2wt,html2html
 !! wikitext
 Blah blah blah
 [[zh:Chinese]]
@@ -8209,8 +8378,6 @@ Blah blah blah
 
 !! test
 Double interlanguage link
-!! options
-parsoid=wt2html,wt2wt,html2html
 !! wikitext
 Blah blah blah
 [[es:Spanish]]
@@ -9788,7 +9955,7 @@ Magic Word: {{NUMBEROFFILES}}
 !! wikitext
 {{NUMBEROFFILES}}
 !! html
-<p>6
+<p>7
 </p>
 !! end
 
@@ -10857,7 +11024,7 @@ int keyword - non-existing message
 !! wikitext
 {{int:var}}
 !! html
-<p>&lt;var&gt;
+<p>⧼var⧽
 </p>
 !! end
 
@@ -20657,7 +20824,6 @@ this is not the the title
 !! html/php
 Screen
 <p>this is not the the title
-<span class="error"><strong>Warning:</strong> Display title "whatever" was ignored since it is not equivalent to the page's actual title.</span>
 </p>
 !! end
 
@@ -23010,14 +23176,12 @@ Tables: 2c. Nested in td -- no escaping needed
 parsoid=html2wt
 !! html/*
 <table>
-
 <tr>
 <td>foo!!bar
 </td></tr></table>
 
 !! wikitext
 {|
-
 |foo!!bar
 |}
 !! end
@@ -23028,14 +23192,12 @@ Tables: 3a. Nested in th
 parsoid=html2wt
 !! html/*
 <table>
-
 <tr>
 <th>foo!bar
 </th></tr></table>
 
 !! wikitext
 {|
-
 !foo!bar
 |}
 !! end
@@ -23102,7 +23264,6 @@ Tables: 4a. Escape -
 parsoid=html2wt
 !! html/*
 <table>
-
 <tr>
 <th>-bar
 </th></tr>
@@ -23112,9 +23273,7 @@ parsoid=html2wt
 
 !! wikitext
 {|
-
 !-bar
-
 |-
 |<nowiki>-bar</nowiki>
 |}
@@ -23126,7 +23285,6 @@ Tables: 4b. Escape +
 parsoid=html2wt
 !! html/*
 <table>
-
 <tr>
 <th>+bar
 </th></tr>
@@ -23136,9 +23294,7 @@ parsoid=html2wt
 
 !! wikitext
 {|
-
 !+bar
-
 |-
 |<nowiki>+bar</nowiki>
 |}
@@ -26919,8 +27075,8 @@ Empty LI (T49673)
 !! html/php+tidy
 <ul>
 <li>a</li>
-<li class="mw-empty-li"></li>
-<li class="mw-empty-li"></li>
+<li class="mw-empty-elt"></li>
+<li class="mw-empty-elt"></li>
 <li>b</li>
 </ul>
 !! end
index b3cb89a..f961dd4 100644 (file)
@@ -27,8 +27,8 @@
 define( 'MW_PARSER_TEST', true );
 
 $options = [ 'quick', 'color', 'quiet', 'help', 'show-output',
-       'record', 'run-disabled', 'run-parsoid' ];
-$optionsWithArgs = [ 'regex', 'filter', 'seed', 'setversion', 'file' ];
+       'record', 'run-disabled', 'run-parsoid', 'dwdiff', 'mark-ws' ];
+$optionsWithArgs = [ 'regex', 'filter', 'seed', 'setversion', 'file', 'norm' ];
 
 require_once __DIR__ . '/../maintenance/commandLine.inc';
 require_once __DIR__ . '/TestsAutoLoader.php';
@@ -54,9 +54,18 @@ Options:
   --keep-uploads   Re-use the same upload directory for each test, don't delete it
   --fuzz           Do a fuzz test instead of a normal test
   --seed <n>       Start the fuzz test from the specified seed
-  --help           Show this help message
   --run-disabled   run disabled tests
   --run-parsoid    run parsoid tests (normally disabled)
+  --dwdiff         Use dwdiff to display diff output
+  --mark-ws        Mark whitespace in diffs by replacing it with symbols
+  --norm=<funcs>   Apply a comma-separated list of normalization functions to
+                   both the expected and actual output in order to resolve
+                   irrelevant differences. The accepted normalization functions
+                   are: removeTbody to remove <tbody> tags; and trimWhitespace
+                   to trim whitespace from the start and end of text nodes.
+  --use-tidy-config Use the wiki's Tidy configuration instead of known-good
+                   defaults.
+  --help           Show this help message
 
 ENDS;
        exit( 0 );
index 47d96e1..8dfe628 100644 (file)
@@ -1215,12 +1215,6 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
                        // If any of the user tables were marked as used, we should clear all of them.
                        if ( array_intersect( $tablesUsed, $userTables ) ) {
                                $tablesUsed = array_unique( array_merge( $tablesUsed, $userTables ) );
-
-                               // Totally clear User class in-process cache to avoid CAS errors
-                               TestingAccessWrapper::newFromClass( 'User' )
-                                       ->getInProcessCache()
-                                       ->clear();
-
                                TestUserRegistry::clear();
                        }
 
@@ -1656,32 +1650,6 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
                }
        }
 
-       /**
-        * Check whether we have the 'gzip' commandline utility, will skip
-        * the test whenever "gzip -V" fails.
-        *
-        * Result is cached at the process level.
-        *
-        * @return bool
-        *
-        * @since 1.21
-        */
-       protected function checkHasGzip() {
-               static $haveGzip;
-
-               if ( $haveGzip === null ) {
-                       $retval = null;
-                       wfShellExec( 'gzip -V', $retval );
-                       $haveGzip = ( $retval === 0 );
-               }
-
-               if ( !$haveGzip ) {
-                       $this->markTestSkipped( "Skip test, requires the gzip utility in PATH" );
-               }
-
-               return $haveGzip;
-       }
-
        /**
         * Check if $extName is a loaded PHP extension, will skip the
         * test whenever it is not loaded.
diff --git a/tests/phpunit/data/css/bom.css b/tests/phpunit/data/css/bom.css
new file mode 100644 (file)
index 0000000..3382ea4
--- /dev/null
@@ -0,0 +1 @@
+.efbbbf_bom_char_at_start_of_file {}
index a2bb97a..a5d3570 100644 (file)
@@ -30,14 +30,14 @@ class ExportTest extends MediaWikiLangTestCase {
 
                $title = Title::newFromText( $pageTitle );
 
-               ob_start();
+               $sink = new DumpStringOutput;
+               $exporter->setOutputSink( $sink );
                $exporter->openStream();
                $exporter->pageByTitle( $title );
                $exporter->closeStream();
-               $xmlString = ob_get_clean();
 
                // This throws error if invalid xml output
-               $xmlObject = simplexml_load_string( $xmlString );
+               $xmlObject = simplexml_load_string( $sink );
 
                /**
                 * Check namespaces match xml
index 9f2fdfe..1d48d08 100644 (file)
@@ -413,8 +413,8 @@ class GlobalTest extends MediaWikiTestCase {
                );
        }
 
-       /** array( shorthand, expected integer ) */
        public static function provideShorthand() {
+               // Syntax: [ shorthand, expected integer ]
                return [
                        # Null, empty ...
                        [ '', -1 ],
index 082fe22..c76666d 100644 (file)
@@ -97,7 +97,7 @@ class WfBCP47Test extends MediaWikiTestCase {
                         *  az-Arab-x-AZE-derbend
                         * AZE being private, it should be lower case, hence the test above
                         * should probably be:
-                        *  array( 'az-arab-x-aze-derbend', 'az-Arab-x-AZE-derbend' ),
+                        * [ 'az-arab-x-aze-derbend', 'az-Arab-x-AZE-derbend' ],
                         */
 
                        # Private use registry values:
index 1f1c9be..cbe2e2f 100644 (file)
@@ -80,12 +80,12 @@ class WfUrlencodeTest extends MediaWikiTestCase {
 
        /**
         * Format is either:
-        *   array( 'input', 'expected' );
+        *   [ 'input', 'expected' ];
         * Or:
-        *   array( 'input',
-        *       array( 'Apache', 'expected' ),
-        *       array( 'Microsoft-IIS/7', 'expected' ),
-        *    ),
+        *   [ 'input',
+        *       [ 'Apache', 'expected' ],
+        *       [ 'Microsoft-IIS/7', 'expected' ],
+        *   ],
         * If you want to add other HTTP server name, you will have to add a new
         * testing method much like the testEncodingUrlWith() method above.
         */
index 4c2e02b..ae0b4be 100644 (file)
@@ -106,8 +106,8 @@ class HttpTest extends MediaWikiTestCase {
                        # (\S+) - host part is made of anything not whitespaces
                        // commented these out in order to remove @group Broken
                        // @todo are these valid tests? if so, fix Http::isValidURI so it can handle them
-                       // array( false, 'http://!"èèè¿¿¿~~\'', 'hostname is made of any non whitespace' ),
-                       // array( false, 'http://exam:ple.org/', 'hostname can not use colons!' ),
+                       // [ false, 'http://!"èèè¿¿¿~~\'', 'hostname is made of any non whitespace' ],
+                       // [ false, 'http://exam:ple.org/', 'hostname can not use colons!' ],
 
                        # (:[0-9]+)? - port number
                        [ true, 'http://example.org:80/' ],
@@ -212,11 +212,11 @@ class HttpTest extends MediaWikiTestCase {
                        [ 'CURLAUTH_DIGEST' ],
                        [ 'CURLAUTH_GSSNEGOTIATE' ],
                        [ 'CURLAUTH_NTLM' ],
-                       // array( 'CURLCLOSEPOLICY_CALLBACK' ), // removed in PHP 5.6.0
-                       // array( 'CURLCLOSEPOLICY_LEAST_RECENTLY_USED' ), // removed in PHP 5.6.0
-                       // array( 'CURLCLOSEPOLICY_LEAST_TRAFFIC' ), // removed in PHP 5.6.0
-                       // array( 'CURLCLOSEPOLICY_OLDEST' ), // removed in PHP 5.6.0
-                       // array( 'CURLCLOSEPOLICY_SLOWEST' ), // removed in PHP 5.6.0
+                       // [ 'CURLCLOSEPOLICY_CALLBACK' ], // removed in PHP 5.6.0
+                       // [ 'CURLCLOSEPOLICY_LEAST_RECENTLY_USED' ], // removed in PHP 5.6.0
+                       // [ 'CURLCLOSEPOLICY_LEAST_TRAFFIC' ], // removed in PHP 5.6.0
+                       // [ 'CURLCLOSEPOLICY_OLDEST' ], // removed in PHP 5.6.0
+                       // [ 'CURLCLOSEPOLICY_SLOWEST' ], // removed in PHP 5.6.0
                        [ 'CURLE_ABORTED_BY_CALLBACK' ],
                        [ 'CURLE_BAD_CALLING_ORDER' ],
                        [ 'CURLE_BAD_CONTENT_ENCODING' ],
@@ -268,7 +268,7 @@ class HttpTest extends MediaWikiTestCase {
                        [ 'CURLE_RECV_ERROR' ],
                        [ 'CURLE_SEND_ERROR' ],
                        [ 'CURLE_SHARE_IN_USE' ],
-                       // array( 'CURLE_SSH' ), // not present in HHVM 3.3.0-dev
+                       // [ 'CURLE_SSH' ], // not present in HHVM 3.3.0-dev
                        [ 'CURLE_SSL_CACERT' ],
                        [ 'CURLE_SSL_CERTPROBLEM' ],
                        [ 'CURLE_SSL_CIPHER' ],
@@ -286,14 +286,14 @@ class HttpTest extends MediaWikiTestCase {
                        [ 'CURLFTPAUTH_DEFAULT' ],
                        [ 'CURLFTPAUTH_SSL' ],
                        [ 'CURLFTPAUTH_TLS' ],
-                       // array( 'CURLFTPMETHOD_MULTICWD' ), // not present in HHVM 3.3.0-dev
-                       // array( 'CURLFTPMETHOD_NOCWD' ), // not present in HHVM 3.3.0-dev
-                       // array( 'CURLFTPMETHOD_SINGLECWD' ), // not present in HHVM 3.3.0-dev
+                       // [ 'CURLFTPMETHOD_MULTICWD' ], // not present in HHVM 3.3.0-dev
+                       // [ 'CURLFTPMETHOD_NOCWD' ], // not present in HHVM 3.3.0-dev
+                       // [ 'CURLFTPMETHOD_SINGLECWD' ], // not present in HHVM 3.3.0-dev
                        [ 'CURLFTPSSL_ALL' ],
                        [ 'CURLFTPSSL_CONTROL' ],
                        [ 'CURLFTPSSL_NONE' ],
                        [ 'CURLFTPSSL_TRY' ],
-                       // array( 'CURLINFO_CERTINFO' ), // not present in HHVM 3.3.0-dev
+                       // [ 'CURLINFO_CERTINFO' ], // not present in HHVM 3.3.0-dev
                        [ 'CURLINFO_CONNECT_TIME' ],
                        [ 'CURLINFO_CONTENT_LENGTH_DOWNLOAD' ],
                        [ 'CURLINFO_CONTENT_LENGTH_UPLOAD' ],
@@ -308,7 +308,7 @@ class HttpTest extends MediaWikiTestCase {
                        [ 'CURLINFO_PRIVATE' ],
                        [ 'CURLINFO_REDIRECT_COUNT' ],
                        [ 'CURLINFO_REDIRECT_TIME' ],
-                       // array( 'CURLINFO_REDIRECT_URL' ), // not present in HHVM 3.3.0-dev
+                       // [ 'CURLINFO_REDIRECT_URL' ], // not present in HHVM 3.3.0-dev
                        [ 'CURLINFO_REQUEST_SIZE' ],
                        [ 'CURLINFO_SIZE_DOWNLOAD' ],
                        [ 'CURLINFO_SIZE_UPLOAD' ],
@@ -329,8 +329,8 @@ class HttpTest extends MediaWikiTestCase {
                        [ 'CURLOPT_BUFFERSIZE' ],
                        [ 'CURLOPT_CAINFO' ],
                        [ 'CURLOPT_CAPATH' ],
-                       // array( 'CURLOPT_CERTINFO' ), // not present in HHVM 3.3.0-dev
-                       // array( 'CURLOPT_CLOSEPOLICY' ), // removed in PHP 5.6.0
+                       // [ 'CURLOPT_CERTINFO' ], // not present in HHVM 3.3.0-dev
+                       // [ 'CURLOPT_CLOSEPOLICY' ], // removed in PHP 5.6.0
                        [ 'CURLOPT_CONNECTTIMEOUT' ],
                        [ 'CURLOPT_CONNECTTIMEOUT_MS' ],
                        [ 'CURLOPT_COOKIE' ],
@@ -354,8 +354,8 @@ class HttpTest extends MediaWikiTestCase {
                        [ 'CURLOPT_FTPPORT' ],
                        [ 'CURLOPT_FTPSSLAUTH' ],
                        [ 'CURLOPT_FTP_CREATE_MISSING_DIRS' ],
-                       // array( 'CURLOPT_FTP_FILEMETHOD' ), // not present in HHVM 3.3.0-dev
-                       // array( 'CURLOPT_FTP_SKIP_PASV_IP' ), // not present in HHVM 3.3.0-dev
+                       // [ 'CURLOPT_FTP_FILEMETHOD' ], // not present in HHVM 3.3.0-dev
+                       // [ 'CURLOPT_FTP_SKIP_PASV_IP' ], // not present in HHVM 3.3.0-dev
                        [ 'CURLOPT_FTP_SSL' ],
                        [ 'CURLOPT_FTP_USE_EPRT' ],
                        [ 'CURLOPT_FTP_USE_EPSV' ],
@@ -371,14 +371,14 @@ class HttpTest extends MediaWikiTestCase {
                        [ 'CURLOPT_INFILESIZE' ],
                        [ 'CURLOPT_INTERFACE' ],
                        [ 'CURLOPT_IPRESOLVE' ],
-                       // array( 'CURLOPT_KEYPASSWD' ), // not present in HHVM 3.3.0-dev
+                       // [ 'CURLOPT_KEYPASSWD' ], // not present in HHVM 3.3.0-dev
                        [ 'CURLOPT_KRB4LEVEL' ],
                        [ 'CURLOPT_LOW_SPEED_LIMIT' ],
                        [ 'CURLOPT_LOW_SPEED_TIME' ],
                        [ 'CURLOPT_MAXCONNECTS' ],
                        [ 'CURLOPT_MAXREDIRS' ],
-                       // array( 'CURLOPT_MAX_RECV_SPEED_LARGE' ), // not present in HHVM 3.3.0-dev
-                       // array( 'CURLOPT_MAX_SEND_SPEED_LARGE' ), // not present in HHVM 3.3.0-dev
+                       // [ 'CURLOPT_MAX_RECV_SPEED_LARGE' ], // not present in HHVM 3.3.0-dev
+                       // [ 'CURLOPT_MAX_SEND_SPEED_LARGE' ], // not present in HHVM 3.3.0-dev
                        [ 'CURLOPT_NETRC' ],
                        [ 'CURLOPT_NOBODY' ],
                        [ 'CURLOPT_NOPROGRESS' ],
@@ -390,7 +390,7 @@ class HttpTest extends MediaWikiTestCase {
                        [ 'CURLOPT_POSTREDIR' ],
                        [ 'CURLOPT_PRIVATE' ],
                        [ 'CURLOPT_PROGRESSFUNCTION' ],
-                       // array( 'CURLOPT_PROTOCOLS' ), // not present in HHVM 3.3.0-dev
+                       // [ 'CURLOPT_PROTOCOLS' ], // not present in HHVM 3.3.0-dev
                        [ 'CURLOPT_PROXY' ],
                        [ 'CURLOPT_PROXYAUTH' ],
                        [ 'CURLOPT_PROXYPORT' ],
@@ -402,14 +402,14 @@ class HttpTest extends MediaWikiTestCase {
                        [ 'CURLOPT_RANGE' ],
                        [ 'CURLOPT_READDATA' ],
                        [ 'CURLOPT_READFUNCTION' ],
-                       // array( 'CURLOPT_REDIR_PROTOCOLS' ), // not present in HHVM 3.3.0-dev
+                       // [ 'CURLOPT_REDIR_PROTOCOLS' ], // not present in HHVM 3.3.0-dev
                        [ 'CURLOPT_REFERER' ],
                        [ 'CURLOPT_RESUME_FROM' ],
                        [ 'CURLOPT_RETURNTRANSFER' ],
-                       // array( 'CURLOPT_SSH_AUTH_TYPES' ), // not present in HHVM 3.3.0-dev
-                       // array( 'CURLOPT_SSH_HOST_PUBLIC_KEY_MD5' ), // not present in HHVM 3.3.0-dev
-                       // array( 'CURLOPT_SSH_PRIVATE_KEYFILE' ), // not present in HHVM 3.3.0-dev
-                       // array( 'CURLOPT_SSH_PUBLIC_KEYFILE' ), // not present in HHVM 3.3.0-dev
+                       // [ 'CURLOPT_SSH_AUTH_TYPES' ], // not present in HHVM 3.3.0-dev
+                       // [ 'CURLOPT_SSH_HOST_PUBLIC_KEY_MD5' ], // not present in HHVM 3.3.0-dev
+                       // [ 'CURLOPT_SSH_PRIVATE_KEYFILE' ], // not present in HHVM 3.3.0-dev
+                       // [ 'CURLOPT_SSH_PUBLIC_KEYFILE' ], // not present in HHVM 3.3.0-dev
                        [ 'CURLOPT_SSLCERT' ],
                        [ 'CURLOPT_SSLCERTPASSWD' ],
                        [ 'CURLOPT_SSLCERTTYPE' ],
@@ -437,28 +437,28 @@ class HttpTest extends MediaWikiTestCase {
                        [ 'CURLOPT_VERBOSE' ],
                        [ 'CURLOPT_WRITEFUNCTION' ],
                        [ 'CURLOPT_WRITEHEADER' ],
-                       // array( 'CURLPROTO_ALL' ), // not present in HHVM 3.3.0-dev
-                       // array( 'CURLPROTO_DICT' ), // not present in HHVM 3.3.0-dev
-                       // array( 'CURLPROTO_FILE' ), // not present in HHVM 3.3.0-dev
-                       // array( 'CURLPROTO_FTP' ), // not present in HHVM 3.3.0-dev
-                       // array( 'CURLPROTO_FTPS' ), // not present in HHVM 3.3.0-dev
-                       // array( 'CURLPROTO_HTTP' ), // not present in HHVM 3.3.0-dev
-                       // array( 'CURLPROTO_HTTPS' ), // not present in HHVM 3.3.0-dev
-                       // array( 'CURLPROTO_LDAP' ), // not present in HHVM 3.3.0-dev
-                       // array( 'CURLPROTO_LDAPS' ), // not present in HHVM 3.3.0-dev
-                       // array( 'CURLPROTO_SCP' ), // not present in HHVM 3.3.0-dev
-                       // array( 'CURLPROTO_SFTP' ), // not present in HHVM 3.3.0-dev
-                       // array( 'CURLPROTO_TELNET' ), // not present in HHVM 3.3.0-dev
-                       // array( 'CURLPROTO_TFTP' ), // not present in HHVM 3.3.0-dev
+                       // [ 'CURLPROTO_ALL' ], // not present in HHVM 3.3.0-dev
+                       // [ 'CURLPROTO_DICT' ], // not present in HHVM 3.3.0-dev
+                       // [ 'CURLPROTO_FILE' ], // not present in HHVM 3.3.0-dev
+                       // [ 'CURLPROTO_FTP' ], // not present in HHVM 3.3.0-dev
+                       // [ 'CURLPROTO_FTPS' ], // not present in HHVM 3.3.0-dev
+                       // [ 'CURLPROTO_HTTP' ], // not present in HHVM 3.3.0-dev
+                       // [ 'CURLPROTO_HTTPS' ], // not present in HHVM 3.3.0-dev
+                       // [ 'CURLPROTO_LDAP' ], // not present in HHVM 3.3.0-dev
+                       // [ 'CURLPROTO_LDAPS' ], // not present in HHVM 3.3.0-dev
+                       // [ 'CURLPROTO_SCP' ], // not present in HHVM 3.3.0-dev
+                       // [ 'CURLPROTO_SFTP' ], // not present in HHVM 3.3.0-dev
+                       // [ 'CURLPROTO_TELNET' ], // not present in HHVM 3.3.0-dev
+                       // [ 'CURLPROTO_TFTP' ], // not present in HHVM 3.3.0-dev
                        [ 'CURLPROXY_HTTP' ],
-                       // array( 'CURLPROXY_SOCKS4' ), // not present in HHVM 3.3.0-dev
+                       // [ 'CURLPROXY_SOCKS4' ], // not present in HHVM 3.3.0-dev
                        [ 'CURLPROXY_SOCKS5' ],
-                       // array( 'CURLSSH_AUTH_DEFAULT' ), // not present in HHVM 3.3.0-dev
-                       // array( 'CURLSSH_AUTH_HOST' ), // not present in HHVM 3.3.0-dev
-                       // array( 'CURLSSH_AUTH_KEYBOARD' ), // not present in HHVM 3.3.0-dev
-                       // array( 'CURLSSH_AUTH_NONE' ), // not present in HHVM 3.3.0-dev
-                       // array( 'CURLSSH_AUTH_PASSWORD' ), // not present in HHVM 3.3.0-dev
-                       // array( 'CURLSSH_AUTH_PUBLICKEY' ), // not present in HHVM 3.3.0-dev
+                       // [ 'CURLSSH_AUTH_DEFAULT' ], // not present in HHVM 3.3.0-dev
+                       // [ 'CURLSSH_AUTH_HOST' ], // not present in HHVM 3.3.0-dev
+                       // [ 'CURLSSH_AUTH_KEYBOARD' ], // not present in HHVM 3.3.0-dev
+                       // [ 'CURLSSH_AUTH_NONE' ], // not present in HHVM 3.3.0-dev
+                       // [ 'CURLSSH_AUTH_PASSWORD' ], // not present in HHVM 3.3.0-dev
+                       // [ 'CURLSSH_AUTH_PUBLICKEY' ], // not present in HHVM 3.3.0-dev
                        [ 'CURLVERSION_NOW' ],
                        [ 'CURL_HTTP_VERSION_1_0' ],
                        [ 'CURL_HTTP_VERSION_1_1' ],
index 1126afe..63753f9 100644 (file)
@@ -363,6 +363,7 @@ class LinkerTest extends MediaWikiLangTestCase {
        }
 
        /**
+        * @covers MediaWiki\Linker\LinkRenderer::runLegacyBeginHook
         * @dataProvider provideLinkBeginHook
         */
        public function testLinkBeginHook( $callback, $expected ) {
@@ -409,6 +410,7 @@ class LinkerTest extends MediaWikiLangTestCase {
        }
 
        /**
+        * @covers MediaWiki\Linker\LinkRenderer::buildAElement
         * @dataProvider provideLinkEndHook
         */
        public function testLinkEndHook( $callback, $expected ) {
index ca01aef..24db445 100644 (file)
@@ -387,7 +387,7 @@ class MWNamespaceTest extends MediaWikiTestCase {
                $wgContentNamespaces = 5;
                $this->assertEquals( [ NS_MAIN ], MWNamespace::getContentNamespaces() );
 
-               # test $wgContentNamespaces === array()
+               # test $wgContentNamespaces === []
                $wgContentNamespaces = [];
                $this->assertEquals( [ NS_MAIN ], MWNamespace::getContentNamespaces() );
 
@@ -474,7 +474,7 @@ class MWNamespaceTest extends MediaWikiTestCase {
         * global $wgCapitalLink setting to have extended coverage.
         *
         * MWNamespace::isCapitalized() rely on two global settings:
-        *   $wgCapitalLinkOverrides = array(); by default
+        *   $wgCapitalLinkOverrides = []; by default
         *   $wgCapitalLinks = true; by default
         * This function test $wgCapitalLinks
         *
index bca3982..70e4aea 100644 (file)
@@ -102,7 +102,7 @@ class MWTimestampTest extends MediaWikiLangTestCase {
 
        /**
         * Returns a list of valid timestamps in the format:
-        * array( type, timestamp_of_type, timestamp_in_MW )
+        * [ type, timestamp_of_type, timestamp_in_MW ]
         */
        public static function provideValidTimestamps() {
                return [
@@ -124,7 +124,7 @@ class MWTimestampTest extends MediaWikiLangTestCase {
 
        /**
         * Returns a list of out of range timestamps in the format:
-        * array( type, timestamp_of_type )
+        * [ type, timestamp_of_type ]
         */
        public static function provideOutOfRangeTimestamps() {
                return [
index 0e13721..d20344d 100644 (file)
@@ -315,6 +315,7 @@ class MediaWikiServicesTest extends MediaWikiTestCase {
                        'DBLoadBalancerFactory' => [ 'DBLoadBalancerFactory', 'LBFactory' ],
                        'DBLoadBalancer' => [ 'DBLoadBalancer', 'LoadBalancer' ],
                        'WatchedItemStore' => [ 'WatchedItemStore', WatchedItemStore::class ],
+                       'WatchedItemQueryService' => [ 'WatchedItemQueryService', WatchedItemQueryService::class ],
                        'GenderCache' => [ 'GenderCache', GenderCache::class ],
                        'LinkCache' => [ 'LinkCache', LinkCache::class ],
                        'LinkRenderer' => [ 'LinkRenderer', LinkRenderer::class ],
index 224b0cb..4c689ab 100644 (file)
@@ -223,13 +223,13 @@ class MessageTest extends MediaWikiLangTestCase {
         */
        public function testToStringKey() {
                $this->assertEquals( 'Main Page', wfMessage( 'mainpage' )->text() );
-               $this->assertEquals( '<i-dont-exist-evar>', wfMessage( 'i-dont-exist-evar' )->text() );
-               $this->assertEquals( '<i<dont>exist-evar>', wfMessage( 'i<dont>exist-evar' )->text() );
-               $this->assertEquals( '<i-dont-exist-evar>', wfMessage( 'i-dont-exist-evar' )->plain() );
-               $this->assertEquals( '<i<dont>exist-evar>', wfMessage( 'i<dont>exist-evar' )->plain() );
-               $this->assertEquals( '&lt;i-dont-exist-evar&gt;', wfMessage( 'i-dont-exist-evar' )->escaped() );
+               $this->assertEquals( '⧼i-dont-exist-evar⧽', wfMessage( 'i-dont-exist-evar' )->text() );
+               $this->assertEquals( '⧼i&lt;dont&gt;exist-evar⧽', wfMessage( 'i<dont>exist-evar' )->text() );
+               $this->assertEquals( '⧼i-dont-exist-evar⧽', wfMessage( 'i-dont-exist-evar' )->plain() );
+               $this->assertEquals( '⧼i&lt;dont&gt;exist-evar⧽', wfMessage( 'i<dont>exist-evar' )->plain() );
+               $this->assertEquals( '⧼i-dont-exist-evar⧽', wfMessage( 'i-dont-exist-evar' )->escaped() );
                $this->assertEquals(
-                       '&lt;i&lt;dont&gt;exist-evar&gt;',
+                       '⧼i&lt;dont&gt;exist-evar⧽',
                        wfMessage( 'i<dont>exist-evar' )->escaped()
                );
        }
@@ -237,8 +237,10 @@ class MessageTest extends MediaWikiLangTestCase {
        public static function provideToString() {
                return [
                        [ 'mainpage', 'Main Page' ],
-                       [ 'i-dont-exist-evar', '<i-dont-exist-evar>' ],
-                       [ 'i-dont-exist-evar', '&lt;i-dont-exist-evar&gt;', 'escaped' ],
+                       [ 'i-dont-exist-evar', '⧼i-dont-exist-evar⧽' ],
+                       [ 'i-dont-exist-evar', '⧼i-dont-exist-evar⧽', 'escaped' ],
+                       [ 'script>alert(1)</script', '⧼script&gt;alert(1)&lt;/script⧽', 'escaped' ],
+                       [ 'script>alert(1)</script', '⧼script&gt;alert(1)&lt;/script⧽' ],
                ];
        }
 
@@ -589,6 +591,10 @@ class MessageTest extends MediaWikiLangTestCase {
        public function testNewFromSpecifier( $value, $expectedText ) {
                $message = Message::newFromSpecifier( $value );
                $this->assertInstanceOf( Message::class, $message );
+               if ( $value instanceof Message ) {
+                       $this->assertInstanceOf( get_class( $value ), $message );
+                       $this->assertEquals( $value, $message );
+               }
                $this->assertSame( $expectedText, $message->text() );
        }
 
@@ -602,7 +608,9 @@ class MessageTest extends MediaWikiLangTestCase {
                        'array' => [ [ 'youhavenewmessages', 'foo', 'bar' ], 'You have foo (bar).' ],
                        'Message' => [ new Message( 'youhavenewmessages', [ 'foo', 'bar' ] ), 'You have foo (bar).' ],
                        'RawMessage' => [ new RawMessage( 'foo ($1)', [ 'bar' ] ), 'foo (bar)' ],
+                       'ApiMessage' => [ new ApiMessage( [ 'mainpage' ], 'code', [ 'data' ] ), 'Main Page' ],
                        'MessageSpecifier' => [ $messageSpecifier, 'Main Page' ],
+                       'nested RawMessage' => [ [ new RawMessage( 'foo ($1)', [ 'bar' ] ) ], 'foo (bar)' ],
                ];
        }
 }
index 72d7166..26529e8 100644 (file)
@@ -248,7 +248,7 @@ class SanitizerTest extends MediaWikiTestCase {
        }
 
        public static function provideDeprecatedAttributes() {
-               /** array( <attribute>, <element>, [message] ) */
+               /** [ <attribute>, <element>, [message] ] */
                return [
                        [ 'clear="left"', 'br' ],
                        [ 'clear="all"', 'br' ],
@@ -276,7 +276,7 @@ class SanitizerTest extends MediaWikiTestCase {
        }
 
        public static function provideCssCommentsFixtures() {
-               /** array( <expected>, <css>, [message] ) */
+               /** [ <expected>, <css>, [message] ] */
                return [
                        // Valid comments spanning entire input
                        [ '/**/', '/**/' ],
@@ -353,7 +353,7 @@ class SanitizerTest extends MediaWikiTestCase {
        }
 
        public static function provideEscapeIdReferenceList() {
-               /** array( <reference list>, <individual id 1>, <individual id 2> ) */
+               /** [ <reference list>, <individual id 1>, <individual id 2> ] */
                return [
                        [ 'foo bar', 'foo', 'bar' ],
                        [ '#1 #2', '#1', '#2' ],
index 782fab0..474a481 100644 (file)
@@ -376,9 +376,9 @@ class StatusTest extends MediaWikiLangTestCase {
                $status->warning( 'fooBar!' );
                $testCases['1StringWarning'] = [
                        $status,
-                       "<fooBar!>",
+                       "⧼fooBar!⧽",
                        "(wrap-short: (fooBar!))",
-                       "<p>&lt;fooBar!&gt;\n</p>",
+                       "<p>⧼fooBar!⧽\n</p>",
                        "<p>(wrap-short: (fooBar!))\n</p>",
                ];
 
@@ -387,9 +387,9 @@ class StatusTest extends MediaWikiLangTestCase {
                $status->warning( 'fooBar2!' );
                $testCases['2StringWarnings'] = [
                        $status,
-                       "* <fooBar!>\n* <fooBar2!>\n",
+                       "* ⧼fooBar!⧽\n* ⧼fooBar2!⧽\n",
                        "(wrap-long: * (fooBar!)\n* (fooBar2!)\n)",
-                       "<ul><li> &lt;fooBar!&gt;</li>\n<li> &lt;fooBar2!&gt;</li></ul>\n",
+                       "<ul><li> ⧼fooBar!⧽</li>\n<li> ⧼fooBar2!⧽</li></ul>\n",
                        "<p>(wrap-long: * (fooBar!)\n</p>\n<ul><li> (fooBar2!)</li></ul>\n<p>)\n</p>",
                ];
 
@@ -397,9 +397,9 @@ class StatusTest extends MediaWikiLangTestCase {
                $status->warning( new Message( 'fooBar!', [ 'foo', 'bar' ] ) );
                $testCases['1MessageWarning'] = [
                        $status,
-                       "<fooBar!>",
+                       "⧼fooBar!⧽",
                        "(wrap-short: (fooBar!: foo, bar))",
-                       "<p>&lt;fooBar!&gt;\n</p>",
+                       "<p>⧼fooBar!⧽\n</p>",
                        "<p>(wrap-short: (fooBar!: foo, bar))\n</p>",
                ];
 
@@ -408,9 +408,9 @@ class StatusTest extends MediaWikiLangTestCase {
                $status->warning( new Message( 'fooBar2!' ) );
                $testCases['2MessageWarnings'] = [
                        $status,
-                       "* <fooBar!>\n* <fooBar2!>\n",
+                       "* ⧼fooBar!⧽\n* ⧼fooBar2!⧽\n",
                        "(wrap-long: * (fooBar!: foo, bar)\n* (fooBar2!)\n)",
-                       "<ul><li> &lt;fooBar!&gt;</li>\n<li> &lt;fooBar2!&gt;</li></ul>\n",
+                       "<ul><li> ⧼fooBar!⧽</li>\n<li> ⧼fooBar2!⧽</li></ul>\n",
                        "<p>(wrap-long: * (fooBar!: foo, bar)\n</p>\n<ul><li> (fooBar2!)</li></ul>\n<p>)\n</p>",
                ];
 
index 8b8cbcd..86f4ae7 100644 (file)
@@ -6,25 +6,19 @@
  */
 class TestUser {
        /**
-        * @deprecated Since 1.25. Use TestUser::getUser()->getName()
-        * @private
         * @var string
         */
-       public $username;
+       private $username;
 
        /**
-        * @deprecated Since 1.25. Use TestUser::getPassword()
-        * @private
         * @var string
         */
-       public $password;
+       private $password;
 
        /**
-        * @deprecated Since 1.25. Use TestUser::getUser()
-        * @private
         * @var User
         */
-       public $user;
+       private $user;
 
        private function assertNotReal() {
                global $wgDBprefix;
diff --git a/tests/phpunit/includes/WatchedItemQueryServiceUnitTest.php b/tests/phpunit/includes/WatchedItemQueryServiceUnitTest.php
new file mode 100644 (file)
index 0000000..1d232fe
--- /dev/null
@@ -0,0 +1,1312 @@
+<?php
+
+/**
+ * @covers WatchedItemQueryService
+ */
+class WatchedItemQueryServiceUnitTest extends PHPUnit_Framework_TestCase {
+
+       /**
+        * @return PHPUnit_Framework_MockObject_MockObject|DatabaseBase
+        */
+       private function getMockDb() {
+               $mock = $this->getMockBuilder( DatabaseBase::class )
+                       ->disableOriginalConstructor()
+                       ->getMock();
+
+               $mock->expects( $this->any() )
+                       ->method( 'makeList' )
+                       ->with(
+                               $this->isType( 'array' ),
+                               $this->isType( 'int' )
+                       )
+                       ->will( $this->returnCallback( function( $a, $conj ) {
+                               $sqlConj = $conj === LIST_AND ? ' AND ' : ' OR ';
+                               return join( $sqlConj, array_map( function( $s ) {
+                                       return '(' . $s . ')';
+                               }, $a
+                               ) );
+                       } ) );
+
+               $mock->expects( $this->any() )
+                       ->method( 'addQuotes' )
+                       ->will( $this->returnCallback( function( $value ) {
+                               return "'$value'";
+                       } ) );
+
+               $mock->expects( $this->any() )
+                       ->method( 'timestamp' )
+                       ->will( $this->returnArgument( 0 ) );
+
+               $mock->expects( $this->any() )
+                       ->method( 'bitAnd' )
+                       ->willReturnCallback( function( $a, $b ) {
+                               return "($a & $b)";
+                       } );
+
+               return $mock;
+       }
+
+       /**
+        * @param $mockDb
+        * @return PHPUnit_Framework_MockObject_MockObject|LoadBalancer
+        */
+       private function getMockLoadBalancer( $mockDb ) {
+               $mock = $this->getMockBuilder( LoadBalancer::class )
+                       ->disableOriginalConstructor()
+                       ->getMock();
+               $mock->expects( $this->any() )
+                       ->method( 'getConnection' )
+                       ->with( DB_SLAVE )
+                       ->will( $this->returnValue( $mockDb ) );
+               return $mock;
+       }
+
+       /**
+        * @param int $id
+        * @return PHPUnit_Framework_MockObject_MockObject|User
+        */
+       private function getMockNonAnonUserWithId( $id ) {
+               $mock = $this->getMock( User::class );
+               $mock->expects( $this->any() )
+                       ->method( 'isAnon' )
+                       ->will( $this->returnValue( false ) );
+               $mock->expects( $this->any() )
+                       ->method( 'getId' )
+                       ->will( $this->returnValue( $id ) );
+               return $mock;
+       }
+
+       /**
+        * @param int $id
+        * @return PHPUnit_Framework_MockObject_MockObject|User
+        */
+       private function getMockUnrestrictedNonAnonUserWithId( $id ) {
+               $mock = $this->getMockNonAnonUserWithId( $id );
+               $mock->expects( $this->any() )
+                       ->method( 'isAllowed' )
+                       ->will( $this->returnValue( true ) );
+               $mock->expects( $this->any() )
+                       ->method( 'isAllowedAny' )
+                       ->will( $this->returnValue( true ) );
+               $mock->expects( $this->any() )
+                       ->method( 'useRCPatrol' )
+                       ->will( $this->returnValue( true ) );
+               return $mock;
+       }
+
+       /**
+        * @param int $id
+        * @param string $notAllowedAction
+        * @return PHPUnit_Framework_MockObject_MockObject|User
+        */
+       private function getMockNonAnonUserWithIdAndRestrictedPermissions( $id, $notAllowedAction ) {
+               $mock = $this->getMockNonAnonUserWithId( $id );
+
+               $mock->expects( $this->any() )
+                       ->method( 'isAllowed' )
+                       ->will( $this->returnCallback( function( $action ) use ( $notAllowedAction ) {
+                               return $action !== $notAllowedAction;
+                       } ) );
+               $mock->expects( $this->any() )
+                       ->method( 'isAllowedAny' )
+                       ->will( $this->returnCallback( function() use ( $notAllowedAction ) {
+                               $actions = func_get_args();
+                               return !in_array( $notAllowedAction, $actions );
+                       } ) );
+
+               return $mock;
+       }
+
+       /**
+        * @param int $id
+        * @return PHPUnit_Framework_MockObject_MockObject|User
+        */
+       private function getMockNonAnonUserWithIdAndNoPatrolRights( $id ) {
+               $mock = $this->getMockNonAnonUserWithId( $id );
+
+               $mock->expects( $this->any() )
+                       ->method( 'isAllowed' )
+                       ->will( $this->returnValue( true ) );
+               $mock->expects( $this->any() )
+                       ->method( 'isAllowedAny' )
+                       ->will( $this->returnValue( true ) );
+
+               $mock->expects( $this->any() )
+                       ->method( 'useRCPatrol' )
+                       ->will( $this->returnValue( false ) );
+               $mock->expects( $this->any() )
+                       ->method( 'useNPPatrol' )
+                       ->will( $this->returnValue( false ) );
+
+               return $mock;
+       }
+
+       private function getMockAnonUser() {
+               $mock = $this->getMock( User::class );
+               $mock->expects( $this->any() )
+                       ->method( 'isAnon' )
+                       ->will( $this->returnValue( true ) );
+               return $mock;
+       }
+
+       private function getFakeRow( array $rowValues ) {
+               $fakeRow = new stdClass();
+               foreach ( $rowValues as $valueName => $value ) {
+                       $fakeRow->$valueName = $value;
+               }
+               return $fakeRow;
+       }
+
+       public function testGetWatchedItemsWithRecentChangeInfo() {
+               $mockDb = $this->getMockDb();
+               $mockDb->expects( $this->once() )
+                       ->method( 'select' )
+                       ->with(
+                               [ 'recentchanges', 'watchlist', 'page' ],
+                               [
+                                       'rc_id',
+                                       'rc_namespace',
+                                       'rc_title',
+                                       'rc_timestamp',
+                                       'rc_type',
+                                       'rc_deleted',
+                                       'wl_notificationtimestamp',
+                                       'rc_cur_id',
+                                       'rc_this_oldid',
+                                       'rc_last_oldid',
+                               ],
+                               [
+                                       'wl_user' => 1,
+                                       '(rc_this_oldid=page_latest) OR (rc_type=3)',
+                               ],
+                               $this->isType( 'string' ),
+                               [],
+                               [
+                                       'watchlist' => [
+                                               'INNER JOIN',
+                                               [
+                                                       'wl_namespace=rc_namespace',
+                                                       'wl_title=rc_title'
+                                               ]
+                                       ],
+                                       'page' => [
+                                               'LEFT JOIN',
+                                               'rc_cur_id=page_id',
+                                       ],
+                               ]
+                       )
+                       ->will( $this->returnValue( [
+                               $this->getFakeRow( [
+                                       'rc_id' => 1,
+                                       'rc_namespace' => 0,
+                                       'rc_title' => 'Foo1',
+                                       'rc_timestamp' => '20151212010101',
+                                       'rc_type' => RC_NEW,
+                                       'rc_deleted' => 0,
+                                       'wl_notificationtimestamp' => '20151212010101',
+                               ] ),
+                               $this->getFakeRow( [
+                                       'rc_id' => 2,
+                                       'rc_namespace' => 1,
+                                       'rc_title' => 'Foo2',
+                                       'rc_timestamp' => '20151212010102',
+                                       'rc_type' => RC_NEW,
+                                       'rc_deleted' => 0,
+                                       'wl_notificationtimestamp' => null,
+                               ] ),
+                       ] ) );
+
+               $queryService = new WatchedItemQueryService( $this->getMockLoadBalancer( $mockDb ) );
+               $user = $this->getMockUnrestrictedNonAnonUserWithId( 1 );
+
+               $items = $queryService->getWatchedItemsWithRecentChangeInfo( $user );
+
+               $this->assertInternalType( 'array', $items );
+               $this->assertCount( 2, $items );
+
+               foreach ( $items as list( $watchedItem, $recentChangeInfo ) ) {
+                       $this->assertInstanceOf( WatchedItem::class, $watchedItem );
+                       $this->assertInternalType( 'array', $recentChangeInfo );
+               }
+
+               $this->assertEquals(
+                       new WatchedItem( $user, new TitleValue( 0, 'Foo1' ), '20151212010101' ),
+                       $items[0][0]
+               );
+               $this->assertEquals(
+                       [
+                               'rc_id' => 1,
+                               'rc_namespace' => 0,
+                               'rc_title' => 'Foo1',
+                               'rc_timestamp' => '20151212010101',
+                               'rc_type' => RC_NEW,
+                               'rc_deleted' => 0,
+                       ],
+                       $items[0][1]
+               );
+
+               $this->assertEquals(
+                       new WatchedItem( $user, new TitleValue( 1, 'Foo2' ), null ),
+                       $items[1][0]
+               );
+               $this->assertEquals(
+                       [
+                               'rc_id' => 2,
+                               'rc_namespace' => 1,
+                               'rc_title' => 'Foo2',
+                               'rc_timestamp' => '20151212010102',
+                               'rc_type' => RC_NEW,
+                               'rc_deleted' => 0,
+                       ],
+                       $items[1][1]
+               );
+       }
+
+       public function getWatchedItemsWithRecentChangeInfoOptionsProvider() {
+               return [
+                       [
+                               [ 'includeFields' => [ WatchedItemQueryService::INCLUDE_FLAGS ] ],
+                               [ 'rc_type', 'rc_minor', 'rc_bot' ],
+                               [],
+                               [],
+                       ],
+                       [
+                               [ 'includeFields' => [ WatchedItemQueryService::INCLUDE_USER ] ],
+                               [ 'rc_user_text' ],
+                               [],
+                               [],
+                       ],
+                       [
+                               [ 'includeFields' => [ WatchedItemQueryService::INCLUDE_USER_ID ] ],
+                               [ 'rc_user' ],
+                               [],
+                               [],
+                       ],
+                       [
+                               [ 'includeFields' => [ WatchedItemQueryService::INCLUDE_COMMENT ] ],
+                               [ 'rc_comment' ],
+                               [],
+                               [],
+                       ],
+                       [
+                               [ 'includeFields' => [ WatchedItemQueryService::INCLUDE_PATROL_INFO ] ],
+                               [ 'rc_patrolled', 'rc_log_type' ],
+                               [],
+                               [],
+                       ],
+                       [
+                               [ 'includeFields' => [ WatchedItemQueryService::INCLUDE_SIZES ] ],
+                               [ 'rc_old_len', 'rc_new_len' ],
+                               [],
+                               [],
+                       ],
+                       [
+                               [ 'includeFields' => [ WatchedItemQueryService::INCLUDE_LOG_INFO ] ],
+                               [ 'rc_logid', 'rc_log_type', 'rc_log_action', 'rc_params' ],
+                               [],
+                               [],
+                       ],
+                       [
+                               [ 'namespaceIds' => [ 0, 1 ] ],
+                               [],
+                               [ 'wl_namespace' => [ 0, 1 ] ],
+                               [],
+                       ],
+                       [
+                               [ 'namespaceIds' => [ 0, "1; DROP TABLE watchlist;\n--" ] ],
+                               [],
+                               [ 'wl_namespace' => [ 0, 1 ] ],
+                               [],
+                       ],
+                       [
+                               [ 'rcTypes' => [ RC_EDIT, RC_NEW ] ],
+                               [],
+                               [ 'rc_type' => [ RC_EDIT, RC_NEW ] ],
+                               [],
+                       ],
+                       [
+                               [ 'dir' => WatchedItemQueryService::DIR_OLDER ],
+                               [],
+                               [],
+                               [ 'ORDER BY' => [ 'rc_timestamp DESC', 'rc_id DESC' ] ]
+                       ],
+                       [
+                               [ 'dir' => WatchedItemQueryService::DIR_NEWER ],
+                               [],
+                               [],
+                               [ 'ORDER BY' => [ 'rc_timestamp', 'rc_id' ] ]
+                       ],
+                       [
+                               [ 'dir' => WatchedItemQueryService::DIR_OLDER, 'start' => '20151212010101' ],
+                               [],
+                               [ "rc_timestamp <= '20151212010101'" ],
+                               [ 'ORDER BY' => [ 'rc_timestamp DESC', 'rc_id DESC' ] ]
+                       ],
+                       [
+                               [ 'dir' => WatchedItemQueryService::DIR_OLDER, 'end' => '20151212010101' ],
+                               [],
+                               [ "rc_timestamp >= '20151212010101'" ],
+                               [ 'ORDER BY' => [ 'rc_timestamp DESC', 'rc_id DESC' ] ]
+                       ],
+                       [
+                               [
+                                       'dir' => WatchedItemQueryService::DIR_OLDER,
+                                       'start' => '20151212020101',
+                                       'end' => '20151212010101'
+                               ],
+                               [],
+                               [ "rc_timestamp <= '20151212020101'", "rc_timestamp >= '20151212010101'" ],
+                               [ 'ORDER BY' => [ 'rc_timestamp DESC', 'rc_id DESC' ] ]
+                       ],
+                       [
+                               [ 'dir' => WatchedItemQueryService::DIR_NEWER, 'start' => '20151212010101' ],
+                               [],
+                               [ "rc_timestamp >= '20151212010101'" ],
+                               [ 'ORDER BY' => [ 'rc_timestamp', 'rc_id' ] ]
+                       ],
+                       [
+                               [ 'dir' => WatchedItemQueryService::DIR_NEWER, 'end' => '20151212010101' ],
+                               [],
+                               [ "rc_timestamp <= '20151212010101'" ],
+                               [ 'ORDER BY' => [ 'rc_timestamp', 'rc_id' ] ]
+                       ],
+                       [
+                               [
+                                       'dir' => WatchedItemQueryService::DIR_NEWER,
+                                       'start' => '20151212010101',
+                                       'end' => '20151212020101'
+                               ],
+                               [],
+                               [ "rc_timestamp >= '20151212010101'", "rc_timestamp <= '20151212020101'" ],
+                               [ 'ORDER BY' => [ 'rc_timestamp', 'rc_id' ] ]
+                       ],
+                       [
+                               [ 'limit' => 10 ],
+                               [],
+                               [],
+                               [ 'LIMIT' => 10 ],
+                       ],
+                       [
+                               [ 'limit' => "10; DROP TABLE watchlist;\n--" ],
+                               [],
+                               [],
+                               [ 'LIMIT' => 10 ],
+                       ],
+                       [
+                               [ 'filters' => [ WatchedItemQueryService::FILTER_MINOR ] ],
+                               [],
+                               [ 'rc_minor != 0' ],
+                               [],
+                       ],
+                       [
+                               [ 'filters' => [ WatchedItemQueryService::FILTER_NOT_MINOR ] ],
+                               [],
+                               [ 'rc_minor = 0' ],
+                               [],
+                       ],
+                       [
+                               [ 'filters' => [ WatchedItemQueryService::FILTER_BOT ] ],
+                               [],
+                               [ 'rc_bot != 0' ],
+                               [],
+                       ],
+                       [
+                               [ 'filters' => [ WatchedItemQueryService::FILTER_NOT_BOT ] ],
+                               [],
+                               [ 'rc_bot = 0' ],
+                               [],
+                       ],
+                       [
+                               [ 'filters' => [ WatchedItemQueryService::FILTER_ANON ] ],
+                               [],
+                               [ 'rc_user = 0' ],
+                               [],
+                       ],
+                       [
+                               [ 'filters' => [ WatchedItemQueryService::FILTER_NOT_ANON ] ],
+                               [],
+                               [ 'rc_user != 0' ],
+                               [],
+                       ],
+                       [
+                               [ 'filters' => [ WatchedItemQueryService::FILTER_PATROLLED ] ],
+                               [],
+                               [ 'rc_patrolled != 0' ],
+                               [],
+                       ],
+                       [
+                               [ 'filters' => [ WatchedItemQueryService::FILTER_NOT_PATROLLED ] ],
+                               [],
+                               [ 'rc_patrolled = 0' ],
+                               [],
+                       ],
+                       [
+                               [ 'filters' => [ WatchedItemQueryService::FILTER_UNREAD ] ],
+                               [],
+                               [ 'rc_timestamp >= wl_notificationtimestamp' ],
+                               [],
+                       ],
+                       [
+                               [ 'filters' => [ WatchedItemQueryService::FILTER_NOT_UNREAD ] ],
+                               [],
+                               [ 'wl_notificationtimestamp IS NULL OR rc_timestamp < wl_notificationtimestamp' ],
+                               [],
+                       ],
+                       [
+                               [ 'onlyByUser' => 'SomeOtherUser' ],
+                               [],
+                               [ 'rc_user_text' => 'SomeOtherUser' ],
+                               [],
+                       ],
+                       [
+                               [ 'notByUser' => 'SomeOtherUser' ],
+                               [],
+                               [ "rc_user_text != 'SomeOtherUser'" ],
+                               [],
+                       ],
+                       [
+                               [ 'startFrom' => [ '20151212010101', 123 ], 'dir' => WatchedItemQueryService::DIR_OLDER ],
+                               [],
+                               [
+                                       "(rc_timestamp < '20151212010101') OR ((rc_timestamp = '20151212010101') AND (rc_id <= 123))"
+                               ],
+                               [ 'ORDER BY' => [ 'rc_timestamp DESC', 'rc_id DESC' ] ],
+                       ],
+                       [
+                               [ 'startFrom' => [ '20151212010101', 123 ], 'dir' => WatchedItemQueryService::DIR_NEWER ],
+                               [],
+                               [
+                                       "(rc_timestamp > '20151212010101') OR ((rc_timestamp = '20151212010101') AND (rc_id >= 123))"
+                               ],
+                               [ 'ORDER BY' => [ 'rc_timestamp', 'rc_id' ] ],
+                       ],
+                       [
+                               [
+                                       'startFrom' => [ '20151212010101', "123; DROP TABLE watchlist;\n--" ],
+                                       'dir' => WatchedItemQueryService::DIR_OLDER
+                               ],
+                               [],
+                               [
+                                       "(rc_timestamp < '20151212010101') OR ((rc_timestamp = '20151212010101') AND (rc_id <= 123))"
+                               ],
+                               [ 'ORDER BY' => [ 'rc_timestamp DESC', 'rc_id DESC' ] ],
+                       ],
+               ];
+       }
+
+       /**
+        * @dataProvider getWatchedItemsWithRecentChangeInfoOptionsProvider
+        */
+       public function testGetWatchedItemsWithRecentChangeInfo_optionsAndEmptyResult(
+               array $options,
+               array $expectedExtraFields,
+               array $expectedExtraConds,
+               array $expectedDbOptions
+       ) {
+               $expectedFields = array_merge(
+                       [
+                               'rc_id',
+                               'rc_namespace',
+                               'rc_title',
+                               'rc_timestamp',
+                               'rc_type',
+                               'rc_deleted',
+                               'wl_notificationtimestamp',
+
+                               'rc_cur_id',
+                               'rc_this_oldid',
+                               'rc_last_oldid',
+                       ],
+                       $expectedExtraFields
+               );
+               $expectedConds = array_merge(
+                       [ 'wl_user' => 1, '(rc_this_oldid=page_latest) OR (rc_type=3)', ],
+                       $expectedExtraConds
+               );
+
+               $mockDb = $this->getMockDb();
+               $mockDb->expects( $this->once() )
+                       ->method( 'select' )
+                       ->with(
+                               [ 'recentchanges', 'watchlist', 'page' ],
+                               $expectedFields,
+                               $expectedConds,
+                               $this->isType( 'string' ),
+                               $expectedDbOptions,
+                               [
+                                       'watchlist' => [
+                                               'INNER JOIN',
+                                               [
+                                                       'wl_namespace=rc_namespace',
+                                                       'wl_title=rc_title'
+                                               ]
+                                       ],
+                                       'page' => [
+                                               'LEFT JOIN',
+                                               'rc_cur_id=page_id',
+                                       ],
+                               ]
+                       )
+                       ->will( $this->returnValue( [] ) );
+
+               $queryService = new WatchedItemQueryService( $this->getMockLoadBalancer( $mockDb ) );
+               $user = $this->getMockUnrestrictedNonAnonUserWithId( 1 );
+
+               $items = $queryService->getWatchedItemsWithRecentChangeInfo( $user, $options );
+
+               $this->assertEmpty( $items );
+       }
+
+       public function filterPatrolledOptionProvider() {
+               return [
+                       [ WatchedItemQueryService::FILTER_PATROLLED ],
+                       [ WatchedItemQueryService::FILTER_NOT_PATROLLED ],
+               ];
+       }
+
+       /**
+        * @dataProvider filterPatrolledOptionProvider
+        */
+       public function testGetWatchedItemsWithRecentChangeInfo_filterPatrolledAndUserWithNoPatrolRights(
+               $filtersOption
+       ) {
+               $mockDb = $this->getMockDb();
+               $mockDb->expects( $this->once() )
+                       ->method( 'select' )
+                       ->with(
+                               [ 'recentchanges', 'watchlist', 'page' ],
+                               $this->isType( 'array' ),
+                               [ 'wl_user' => 1, '(rc_this_oldid=page_latest) OR (rc_type=3)' ],
+                               $this->isType( 'string' ),
+                               $this->isType( 'array' ),
+                               $this->isType( 'array' )
+                       )
+                       ->will( $this->returnValue( [] ) );
+
+               $user = $this->getMockNonAnonUserWithIdAndNoPatrolRights( 1 );
+
+               $queryService = new WatchedItemQueryService( $this->getMockLoadBalancer( $mockDb ) );
+               $items = $queryService->getWatchedItemsWithRecentChangeInfo(
+                       $user,
+                       [ 'filters' => [ $filtersOption ] ]
+               );
+
+               $this->assertEmpty( $items );
+       }
+
+       public function mysqlIndexOptimizationProvider() {
+               return [
+                       [
+                               'mysql',
+                               [],
+                               [ "rc_timestamp > ''" ],
+                       ],
+                       [
+                               'mysql',
+                               [ 'start' => '20151212010101', 'dir' => WatchedItemQueryService::DIR_OLDER ],
+                               [ "rc_timestamp <= '20151212010101'" ],
+                       ],
+                       [
+                               'mysql',
+                               [ 'end' => '20151212010101', 'dir' => WatchedItemQueryService::DIR_OLDER ],
+                               [ "rc_timestamp >= '20151212010101'" ],
+                       ],
+                       [
+                               'postgres',
+                               [],
+                               [],
+                       ],
+               ];
+       }
+
+       /**
+        * @dataProvider mysqlIndexOptimizationProvider
+        */
+       public function testGetWatchedItemsWithRecentChangeInfo_mysqlIndexOptimization(
+               $dbType,
+               array $options,
+               array $expectedExtraConds
+       ) {
+               $commonConds = [ 'wl_user' => 1, '(rc_this_oldid=page_latest) OR (rc_type=3)' ];
+               $conds = array_merge( $commonConds, $expectedExtraConds );
+
+               $mockDb = $this->getMockDb();
+               $mockDb->expects( $this->once() )
+                       ->method( 'select' )
+                       ->with(
+                               [ 'recentchanges', 'watchlist', 'page' ],
+                               $this->isType( 'array' ),
+                               $conds,
+                               $this->isType( 'string' ),
+                               $this->isType( 'array' ),
+                               $this->isType( 'array' )
+                       )
+                       ->will( $this->returnValue( [] ) );
+               $mockDb->expects( $this->any() )
+                       ->method( 'getType' )
+                       ->will( $this->returnValue( $dbType ) );
+
+               $queryService = new WatchedItemQueryService( $this->getMockLoadBalancer( $mockDb ) );
+               $user = $this->getMockUnrestrictedNonAnonUserWithId( 1 );
+
+               $items = $queryService->getWatchedItemsWithRecentChangeInfo( $user, $options );
+
+               $this->assertEmpty( $items );
+       }
+
+       public function userPermissionRelatedExtraChecksProvider() {
+               return [
+                       [
+                               [],
+                               'deletedhistory',
+                               [
+                                       '(rc_type != ' . RC_LOG . ') OR ((rc_deleted & ' . LogPage::DELETED_ACTION . ') != ' .
+                                               LogPage::DELETED_ACTION . ')'
+                               ],
+                       ],
+                       [
+                               [],
+                               'suppressrevision',
+                               [
+                                       '(rc_type != ' . RC_LOG . ') OR (' .
+                                               '(rc_deleted & ' . ( LogPage::DELETED_ACTION | LogPage::DELETED_RESTRICTED ) . ') != ' .
+                                               ( LogPage::DELETED_ACTION | LogPage::DELETED_RESTRICTED ) . ')'
+                               ],
+                       ],
+                       [
+                               [],
+                               'viewsuppressed',
+                               [
+                                       '(rc_type != ' . RC_LOG . ') OR (' .
+                                               '(rc_deleted & ' . ( LogPage::DELETED_ACTION | LogPage::DELETED_RESTRICTED ) . ') != ' .
+                                               ( LogPage::DELETED_ACTION | LogPage::DELETED_RESTRICTED ) . ')'
+                               ],
+                       ],
+                       [
+                               [ 'onlyByUser' => 'SomeOtherUser' ],
+                               'deletedhistory',
+                               [
+                                       'rc_user_text' => 'SomeOtherUser',
+                                       '(rc_deleted & ' . Revision::DELETED_USER . ') != ' . Revision::DELETED_USER,
+                                       '(rc_type != ' . RC_LOG . ') OR ((rc_deleted & ' . LogPage::DELETED_ACTION . ') != ' .
+                                               LogPage::DELETED_ACTION . ')'
+                               ],
+                       ],
+                       [
+                               [ 'onlyByUser' => 'SomeOtherUser' ],
+                               'suppressrevision',
+                               [
+                                       'rc_user_text' => 'SomeOtherUser',
+                                       '(rc_deleted & ' . ( Revision::DELETED_USER | Revision::DELETED_RESTRICTED ) . ') != ' .
+                                               ( Revision::DELETED_USER | Revision::DELETED_RESTRICTED ),
+                                       '(rc_type != ' . RC_LOG . ') OR (' .
+                                               '(rc_deleted & ' . ( LogPage::DELETED_ACTION | LogPage::DELETED_RESTRICTED ) . ') != ' .
+                                               ( LogPage::DELETED_ACTION | LogPage::DELETED_RESTRICTED ) . ')'
+                               ],
+                       ],
+                       [
+                               [ 'onlyByUser' => 'SomeOtherUser' ],
+                               'viewsuppressed',
+                               [
+                                       'rc_user_text' => 'SomeOtherUser',
+                                       '(rc_deleted & ' . ( Revision::DELETED_USER | Revision::DELETED_RESTRICTED ) . ') != ' .
+                                               ( Revision::DELETED_USER | Revision::DELETED_RESTRICTED ),
+                                       '(rc_type != ' . RC_LOG . ') OR (' .
+                                               '(rc_deleted & ' . ( LogPage::DELETED_ACTION | LogPage::DELETED_RESTRICTED ) . ') != ' .
+                                               ( LogPage::DELETED_ACTION | LogPage::DELETED_RESTRICTED ) . ')'
+                               ],
+                       ],
+               ];
+       }
+
+       /**
+        * @dataProvider userPermissionRelatedExtraChecksProvider
+        */
+       public function testGetWatchedItemsWithRecentChangeInfo_userPermissionRelatedExtraChecks(
+               array $options,
+               $notAllowedAction,
+               array $expectedExtraConds
+       ) {
+               $commonConds = [ 'wl_user' => 1, '(rc_this_oldid=page_latest) OR (rc_type=3)' ];
+               $conds = array_merge( $commonConds, $expectedExtraConds );
+
+               $mockDb = $this->getMockDb();
+               $mockDb->expects( $this->once() )
+                       ->method( 'select' )
+                       ->with(
+                               [ 'recentchanges', 'watchlist', 'page' ],
+                               $this->isType( 'array' ),
+                               $conds,
+                               $this->isType( 'string' ),
+                               $this->isType( 'array' ),
+                               $this->isType( 'array' )
+                       )
+                       ->will( $this->returnValue( [] ) );
+
+               $user = $this->getMockNonAnonUserWithIdAndRestrictedPermissions( 1, $notAllowedAction );
+
+               $queryService = new WatchedItemQueryService( $this->getMockLoadBalancer( $mockDb ) );
+               $items = $queryService->getWatchedItemsWithRecentChangeInfo( $user, $options );
+
+               $this->assertEmpty( $items );
+       }
+
+       public function testGetWatchedItemsWithRecentChangeInfo_allRevisionsOptionAndEmptyResult() {
+               $mockDb = $this->getMockDb();
+               $mockDb->expects( $this->once() )
+                       ->method( 'select' )
+                       ->with(
+                               [ 'recentchanges', 'watchlist' ],
+                               [
+                                       'rc_id',
+                                       'rc_namespace',
+                                       'rc_title',
+                                       'rc_timestamp',
+                                       'rc_type',
+                                       'rc_deleted',
+                                       'wl_notificationtimestamp',
+
+                                       'rc_cur_id',
+                                       'rc_this_oldid',
+                                       'rc_last_oldid',
+                               ],
+                               [ 'wl_user' => 1, ],
+                               $this->isType( 'string' ),
+                               [],
+                               [
+                                       'watchlist' => [
+                                               'INNER JOIN',
+                                               [
+                                                       'wl_namespace=rc_namespace',
+                                                       'wl_title=rc_title'
+                                               ]
+                                       ],
+                               ]
+                       )
+                       ->will( $this->returnValue( [] ) );
+
+               $queryService = new WatchedItemQueryService( $this->getMockLoadBalancer( $mockDb ) );
+               $user = $this->getMockUnrestrictedNonAnonUserWithId( 1 );
+
+               $items = $queryService->getWatchedItemsWithRecentChangeInfo( $user, [ 'allRevisions' => true ] );
+
+               $this->assertEmpty( $items );
+       }
+
+       public function getWatchedItemsWithRecentChangeInfoInvalidOptionsProvider() {
+               return [
+                       [
+                               [ 'rcTypes' => [ 1337 ] ],
+                               'Bad value for parameter $options[\'rcTypes\']',
+                       ],
+                       [
+                               [ 'rcTypes' => [ 'edit' ] ],
+                               'Bad value for parameter $options[\'rcTypes\']',
+                       ],
+                       [
+                               [ 'rcTypes' => [ RC_EDIT, 1337 ] ],
+                               'Bad value for parameter $options[\'rcTypes\']',
+                       ],
+                       [
+                               [ 'dir' => 'foo' ],
+                               'Bad value for parameter $options[\'dir\']',
+                       ],
+                       [
+                               [ 'start' => '20151212010101' ],
+                               'Bad value for parameter $options[\'dir\']: must be provided',
+                       ],
+                       [
+                               [ 'end' => '20151212010101' ],
+                               'Bad value for parameter $options[\'dir\']: must be provided',
+                       ],
+                       [
+                               [ 'startFrom' => [ '20151212010101', 123 ] ],
+                               'Bad value for parameter $options[\'dir\']: must be provided',
+                       ],
+                       [
+                               [ 'dir' => WatchedItemQueryService::DIR_OLDER, 'startFrom' => '20151212010101' ],
+                               'Bad value for parameter $options[\'startFrom\']: must be a two-element array',
+                       ],
+                       [
+                               [ 'dir' => WatchedItemQueryService::DIR_OLDER, 'startFrom' => [ '20151212010101' ] ],
+                               'Bad value for parameter $options[\'startFrom\']: must be a two-element array',
+                       ],
+                       [
+                               [
+                                       'dir' => WatchedItemQueryService::DIR_OLDER,
+                                       'startFrom' => [ '20151212010101', 123, 'foo' ]
+                               ],
+                               'Bad value for parameter $options[\'startFrom\']: must be a two-element array',
+                       ],
+                       [
+                               [ 'watchlistOwner' => $this->getMockUnrestrictedNonAnonUserWithId( 2 ) ],
+                               'Bad value for parameter $options[\'watchlistOwnerToken\']',
+                       ],
+                       [
+                               [ 'watchlistOwner' => 'Other User', 'watchlistOwnerToken' => 'some-token' ],
+                               'Bad value for parameter $options[\'watchlistOwner\']',
+                       ],
+               ];
+       }
+
+       /**
+        * @dataProvider getWatchedItemsWithRecentChangeInfoInvalidOptionsProvider
+        */
+       public function testGetWatchedItemsWithRecentChangeInfo_invalidOptions(
+               array $options,
+               $expectedInExceptionMessage
+       ) {
+               $mockDb = $this->getMockDb();
+               $mockDb->expects( $this->never() )
+                       ->method( $this->anything() );
+
+               $queryService = new WatchedItemQueryService( $this->getMockLoadBalancer( $mockDb ) );
+               $user = $this->getMockUnrestrictedNonAnonUserWithId( 1 );
+
+               $this->setExpectedException( InvalidArgumentException::class, $expectedInExceptionMessage );
+               $queryService->getWatchedItemsWithRecentChangeInfo( $user, $options );
+       }
+
+       public function testGetWatchedItemsWithRecentChangeInfo_usedInGeneratorOptionAndEmptyResult() {
+               $mockDb = $this->getMockDb();
+               $mockDb->expects( $this->once() )
+                       ->method( 'select' )
+                       ->with(
+                               [ 'recentchanges', 'watchlist', 'page' ],
+                               [
+                                       'rc_id',
+                                       'rc_namespace',
+                                       'rc_title',
+                                       'rc_timestamp',
+                                       'rc_type',
+                                       'rc_deleted',
+                                       'wl_notificationtimestamp',
+                                       'rc_cur_id',
+                               ],
+                               [ 'wl_user' => 1, '(rc_this_oldid=page_latest) OR (rc_type=3)' ],
+                               $this->isType( 'string' ),
+                               [],
+                               [
+                                       'watchlist' => [
+                                               'INNER JOIN',
+                                               [
+                                                       'wl_namespace=rc_namespace',
+                                                       'wl_title=rc_title'
+                                               ]
+                                       ],
+                                       'page' => [
+                                               'LEFT JOIN',
+                                               'rc_cur_id=page_id',
+                                       ],
+                               ]
+                       )
+                       ->will( $this->returnValue( [] ) );
+
+               $queryService = new WatchedItemQueryService( $this->getMockLoadBalancer( $mockDb ) );
+               $user = $this->getMockUnrestrictedNonAnonUserWithId( 1 );
+
+               $items = $queryService->getWatchedItemsWithRecentChangeInfo(
+                       $user,
+                       [ 'usedInGenerator' => true ]
+               );
+
+               $this->assertEmpty( $items );
+       }
+
+       public function testGetWatchedItemsWithRecentChangeInfo_usedInGeneratorAllRevisionsOptions() {
+               $mockDb = $this->getMockDb();
+               $mockDb->expects( $this->once() )
+                       ->method( 'select' )
+                       ->with(
+                               [ 'recentchanges', 'watchlist' ],
+                               [
+                                       'rc_id',
+                                       'rc_namespace',
+                                       'rc_title',
+                                       'rc_timestamp',
+                                       'rc_type',
+                                       'rc_deleted',
+                                       'wl_notificationtimestamp',
+                                       'rc_this_oldid',
+                               ],
+                               [ 'wl_user' => 1 ],
+                               $this->isType( 'string' ),
+                               [],
+                               [
+                                       'watchlist' => [
+                                               'INNER JOIN',
+                                               [
+                                                       'wl_namespace=rc_namespace',
+                                                       'wl_title=rc_title'
+                                               ]
+                                       ],
+                               ]
+                       )
+                       ->will( $this->returnValue( [] ) );
+
+               $queryService = new WatchedItemQueryService( $this->getMockLoadBalancer( $mockDb ) );
+               $user = $this->getMockUnrestrictedNonAnonUserWithId( 1 );
+
+               $items = $queryService->getWatchedItemsWithRecentChangeInfo(
+                       $user,
+                       [ 'usedInGenerator' => true, 'allRevisions' => true, ]
+               );
+
+               $this->assertEmpty( $items );
+       }
+
+       public function testGetWatchedItemsWithRecentChangeInfo_watchlistOwnerOptionAndEmptyResult() {
+               $mockDb = $this->getMockDb();
+               $mockDb->expects( $this->once() )
+                       ->method( 'select' )
+                       ->with(
+                               $this->isType( 'array' ),
+                               $this->isType( 'array' ),
+                               [
+                                       'wl_user' => 2,
+                                       '(rc_this_oldid=page_latest) OR (rc_type=3)',
+                               ],
+                               $this->isType( 'string' ),
+                               $this->isType( 'array' ),
+                               $this->isType( 'array' )
+                       )
+                       ->will( $this->returnValue( [] ) );
+
+               $queryService = new WatchedItemQueryService( $this->getMockLoadBalancer( $mockDb ) );
+               $user = $this->getMockUnrestrictedNonAnonUserWithId( 1 );
+               $otherUser = $this->getMockUnrestrictedNonAnonUserWithId( 2 );
+               $otherUser->expects( $this->once() )
+                       ->method( 'getOption' )
+                       ->with( 'watchlisttoken' )
+                       ->willReturn( '0123456789abcdef' );
+
+               $items = $queryService->getWatchedItemsWithRecentChangeInfo(
+                       $user,
+                       [ 'watchlistOwner' => $otherUser, 'watchlistOwnerToken' => '0123456789abcdef' ]
+               );
+
+               $this->assertEmpty( $items );
+       }
+
+       public function invalidWatchlistTokenProvider() {
+               return [
+                       [ 'wrongToken' ],
+                       [ '' ],
+               ];
+       }
+
+       /**
+        * @dataProvider invalidWatchlistTokenProvider
+        */
+       public function testGetWatchedItemsWithRecentChangeInfo_watchlistOwnerAndInvalidToken( $token ) {
+               $mockDb = $this->getMockDb();
+               $mockDb->expects( $this->never() )
+                       ->method( $this->anything() );
+
+               $queryService = new WatchedItemQueryService( $this->getMockLoadBalancer( $mockDb ) );
+               $user = $this->getMockUnrestrictedNonAnonUserWithId( 1 );
+               $otherUser = $this->getMockUnrestrictedNonAnonUserWithId( 2 );
+               $otherUser->expects( $this->once() )
+                       ->method( 'getOption' )
+                       ->with( 'watchlisttoken' )
+                       ->willReturn( '0123456789abcdef' );
+
+               $this->setExpectedException( UsageException::class, 'Incorrect watchlist token provided' );
+               $queryService->getWatchedItemsWithRecentChangeInfo(
+                       $user,
+                       [ 'watchlistOwner' => $otherUser, 'watchlistOwnerToken' => $token ]
+               );
+       }
+
+       public function testGetWatchedItemsForUser() {
+               $mockDb = $this->getMockDb();
+               $mockDb->expects( $this->once() )
+                       ->method( 'select' )
+                       ->with(
+                               'watchlist',
+                               [ 'wl_namespace', 'wl_title', 'wl_notificationtimestamp' ],
+                               [ 'wl_user' => 1 ]
+                       )
+                       ->will( $this->returnValue( [
+                               $this->getFakeRow( [
+                                       'wl_namespace' => 0,
+                                       'wl_title' => 'Foo1',
+                                       'wl_notificationtimestamp' => '20151212010101',
+                               ] ),
+                               $this->getFakeRow( [
+                                       'wl_namespace' => 1,
+                                       'wl_title' => 'Foo2',
+                                       'wl_notificationtimestamp' => null,
+                               ] ),
+                       ] ) );
+
+               $queryService = new WatchedItemQueryService( $this->getMockLoadBalancer( $mockDb ) );
+               $user = $this->getMockNonAnonUserWithId( 1 );
+
+               $items = $queryService->getWatchedItemsForUser( $user );
+
+               $this->assertInternalType( 'array', $items );
+               $this->assertCount( 2, $items );
+               $this->assertContainsOnlyInstancesOf( WatchedItem::class, $items );
+               $this->assertEquals(
+                       new WatchedItem( $user, new TitleValue( 0, 'Foo1' ), '20151212010101' ),
+                       $items[0]
+               );
+               $this->assertEquals(
+                       new WatchedItem( $user, new TitleValue( 1, 'Foo2' ), null ),
+                       $items[1]
+               );
+       }
+
+       public function provideGetWatchedItemsForUserOptions() {
+               return [
+                       [
+                               [ 'namespaceIds' => [ 0, 1 ], ],
+                               [ 'wl_namespace' => [ 0, 1 ], ],
+                               []
+                       ],
+                       [
+                               [ 'sort' => WatchedItemQueryService::SORT_ASC, ],
+                               [],
+                               [ 'ORDER BY' => [ 'wl_namespace ASC', 'wl_title ASC' ] ]
+                       ],
+                       [
+                               [
+                                       'namespaceIds' => [ 0 ],
+                                       'sort' => WatchedItemQueryService::SORT_ASC,
+                               ],
+                               [ 'wl_namespace' => [ 0 ], ],
+                               [ 'ORDER BY' => 'wl_title ASC' ]
+                       ],
+                       [
+                               [ 'limit' => 10 ],
+                               [],
+                               [ 'LIMIT' => 10 ]
+                       ],
+                       [
+                               [
+                                       'namespaceIds' => [ 0, "1; DROP TABLE watchlist;\n--" ],
+                                       'limit' => "10; DROP TABLE watchlist;\n--",
+                               ],
+                               [ 'wl_namespace' => [ 0, 1 ], ],
+                               [ 'LIMIT' => 10 ]
+                       ],
+                       [
+                               [ 'filter' => WatchedItemQueryService::FILTER_CHANGED ],
+                               [ 'wl_notificationtimestamp IS NOT NULL' ],
+                               []
+                       ],
+                       [
+                               [ 'filter' => WatchedItemQueryService::FILTER_NOT_CHANGED ],
+                               [ 'wl_notificationtimestamp IS NULL' ],
+                               []
+                       ],
+                       [
+                               [ 'sort' => WatchedItemQueryService::SORT_DESC, ],
+                               [],
+                               [ 'ORDER BY' => [ 'wl_namespace DESC', 'wl_title DESC' ] ]
+                       ],
+                       [
+                               [
+                                       'namespaceIds' => [ 0 ],
+                                       'sort' => WatchedItemQueryService::SORT_DESC,
+                               ],
+                               [ 'wl_namespace' => [ 0 ], ],
+                               [ 'ORDER BY' => 'wl_title DESC' ]
+                       ],
+               ];
+       }
+
+       /**
+        * @dataProvider provideGetWatchedItemsForUserOptions
+        */
+       public function testGetWatchedItemsForUser_optionsAndEmptyResult(
+               array $options,
+               array $expectedConds,
+               array $expectedDbOptions
+       ) {
+               $mockDb = $this->getMockDb();
+               $user = $this->getMockNonAnonUserWithId( 1 );
+
+               $expectedConds = array_merge( [ 'wl_user' => 1 ], $expectedConds );
+               $mockDb->expects( $this->once() )
+                       ->method( 'select' )
+                       ->with(
+                               'watchlist',
+                               [ 'wl_namespace', 'wl_title', 'wl_notificationtimestamp' ],
+                               $expectedConds,
+                               $this->isType( 'string' ),
+                               $expectedDbOptions
+                       )
+                       ->will( $this->returnValue( [] ) );
+
+               $queryService = new WatchedItemQueryService( $this->getMockLoadBalancer( $mockDb ) );
+
+               $items = $queryService->getWatchedItemsForUser( $user, $options );
+               $this->assertEmpty( $items );
+       }
+
+       public function provideGetWatchedItemsForUser_fromUntilStartFromOptions() {
+               return [
+                       [
+                               [
+                                       'from' => new TitleValue( 0, 'SomeDbKey' ),
+                                       'sort' => WatchedItemQueryService::SORT_ASC
+                               ],
+                               [ "(wl_namespace > 0) OR ((wl_namespace = 0) AND (wl_title >= 'SomeDbKey'))", ],
+                               [ 'ORDER BY' => [ 'wl_namespace ASC', 'wl_title ASC' ] ]
+                       ],
+                       [
+                               [
+                                       'from' => new TitleValue( 0, 'SomeDbKey' ),
+                                       'sort' => WatchedItemQueryService::SORT_DESC,
+                               ],
+                               [ "(wl_namespace < 0) OR ((wl_namespace = 0) AND (wl_title <= 'SomeDbKey'))", ],
+                               [ 'ORDER BY' => [ 'wl_namespace DESC', 'wl_title DESC' ] ]
+                       ],
+                       [
+                               [
+                                       'until' => new TitleValue( 0, 'SomeDbKey' ),
+                                       'sort' => WatchedItemQueryService::SORT_ASC
+                               ],
+                               [ "(wl_namespace < 0) OR ((wl_namespace = 0) AND (wl_title <= 'SomeDbKey'))", ],
+                               [ 'ORDER BY' => [ 'wl_namespace ASC', 'wl_title ASC' ] ]
+                       ],
+                       [
+                               [
+                                       'until' => new TitleValue( 0, 'SomeDbKey' ),
+                                       'sort' => WatchedItemQueryService::SORT_DESC
+                               ],
+                               [ "(wl_namespace > 0) OR ((wl_namespace = 0) AND (wl_title >= 'SomeDbKey'))", ],
+                               [ 'ORDER BY' => [ 'wl_namespace DESC', 'wl_title DESC' ] ]
+                       ],
+                       [
+                               [
+                                       'from' => new TitleValue( 0, 'AnotherDbKey' ),
+                                       'until' => new TitleValue( 0, 'SomeOtherDbKey' ),
+                                       'startFrom' => new TitleValue( 0, 'SomeDbKey' ),
+                                       'sort' => WatchedItemQueryService::SORT_ASC
+                               ],
+                               [
+                                       "(wl_namespace > 0) OR ((wl_namespace = 0) AND (wl_title >= 'AnotherDbKey'))",
+                                       "(wl_namespace < 0) OR ((wl_namespace = 0) AND (wl_title <= 'SomeOtherDbKey'))",
+                                       "(wl_namespace > 0) OR ((wl_namespace = 0) AND (wl_title >= 'SomeDbKey'))",
+                               ],
+                               [ 'ORDER BY' => [ 'wl_namespace ASC', 'wl_title ASC' ] ]
+                       ],
+                       [
+                               [
+                                       'from' => new TitleValue( 0, 'SomeOtherDbKey' ),
+                                       'until' => new TitleValue( 0, 'AnotherDbKey' ),
+                                       'startFrom' => new TitleValue( 0, 'SomeDbKey' ),
+                                       'sort' => WatchedItemQueryService::SORT_DESC
+                               ],
+                               [
+                                       "(wl_namespace < 0) OR ((wl_namespace = 0) AND (wl_title <= 'SomeOtherDbKey'))",
+                                       "(wl_namespace > 0) OR ((wl_namespace = 0) AND (wl_title >= 'AnotherDbKey'))",
+                                       "(wl_namespace < 0) OR ((wl_namespace = 0) AND (wl_title <= 'SomeDbKey'))",
+                               ],
+                               [ 'ORDER BY' => [ 'wl_namespace DESC', 'wl_title DESC' ] ]
+                       ],
+               ];
+       }
+
+       /**
+        * @dataProvider provideGetWatchedItemsForUser_fromUntilStartFromOptions
+        */
+       public function testGetWatchedItemsForUser_fromUntilStartFromOptions(
+               array $options,
+               array $expectedConds,
+               array $expectedDbOptions
+       ) {
+               $user = $this->getMockNonAnonUserWithId( 1 );
+
+               $expectedConds = array_merge( [ 'wl_user' => 1 ], $expectedConds );
+
+               $mockDb = $this->getMockDb();
+               $mockDb->expects( $this->any() )
+                       ->method( 'addQuotes' )
+                       ->will( $this->returnCallback( function( $value ) {
+                               return "'$value'";
+                       } ) );
+               $mockDb->expects( $this->any() )
+                       ->method( 'makeList' )
+                       ->with(
+                               $this->isType( 'array' ),
+                               $this->isType( 'int' )
+                       )
+                       ->will( $this->returnCallback( function( $a, $conj ) {
+                               $sqlConj = $conj === LIST_AND ? ' AND ' : ' OR ';
+                               return join( $sqlConj, array_map( function( $s ) {
+                                       return '(' . $s . ')';
+                               }, $a
+                               ) );
+                       } ) );
+               $mockDb->expects( $this->once() )
+                       ->method( 'select' )
+                       ->with(
+                               'watchlist',
+                               [ 'wl_namespace', 'wl_title', 'wl_notificationtimestamp' ],
+                               $expectedConds,
+                               $this->isType( 'string' ),
+                               $expectedDbOptions
+                       )
+                       ->will( $this->returnValue( [] ) );
+
+               $queryService = new WatchedItemQueryService( $this->getMockLoadBalancer( $mockDb ) );
+
+               $items = $queryService->getWatchedItemsForUser( $user, $options );
+               $this->assertEmpty( $items );
+       }
+
+       public function getWatchedItemsForUserInvalidOptionsProvider() {
+               return [
+                       [
+                               [ 'sort' => 'foo' ],
+                               'Bad value for parameter $options[\'sort\']'
+                       ],
+                       [
+                               [ 'filter' => 'foo' ],
+                               'Bad value for parameter $options[\'filter\']'
+                       ],
+                       [
+                               [ 'from' => new TitleValue( 0, 'SomeDbKey' ), ],
+                               'Bad value for parameter $options[\'sort\']: must be provided'
+                       ],
+                       [
+                               [ 'until' => new TitleValue( 0, 'SomeDbKey' ), ],
+                               'Bad value for parameter $options[\'sort\']: must be provided'
+                       ],
+                       [
+                               [ 'startFrom' => new TitleValue( 0, 'SomeDbKey' ), ],
+                               'Bad value for parameter $options[\'sort\']: must be provided'
+                       ],
+               ];
+       }
+
+       /**
+        * @dataProvider getWatchedItemsForUserInvalidOptionsProvider
+        */
+       public function testGetWatchedItemsForUser_invalidOptionThrowsException(
+               array $options,
+               $expectedInExceptionMessage
+       ) {
+               $queryService = new WatchedItemQueryService( $this->getMockLoadBalancer( $this->getMockDb() ) );
+
+               $this->setExpectedException( InvalidArgumentException::class, $expectedInExceptionMessage );
+               $queryService->getWatchedItemsForUser( $this->getMockNonAnonUserWithId( 1 ), $options );
+       }
+
+       public function testGetWatchedItemsForUser_userNotAllowedToViewWatchlist() {
+               $mockDb = $this->getMockDb();
+
+               $mockDb->expects( $this->never() )
+                       ->method( $this->anything() );
+
+               $queryService = new WatchedItemQueryService( $this->getMockLoadBalancer( $mockDb ) );
+
+               $items = $queryService->getWatchedItemsForUser( $this->getMockAnonUser() );
+               $this->assertEmpty( $items );
+       }
+
+}
index 2f8ffcc..155a9dd 100644 (file)
@@ -19,7 +19,7 @@ class ApiLoginTest extends ApiTestCase {
                        'wsTokenSecrets' => [ 'login' => 'foobar' ],
                ];
                $data = $this->doApiRequest( [ 'action' => 'login',
-                       'lgname' => '', 'lgpassword' => self::$users['sysop']->password,
+                       'lgname' => '', 'lgpassword' => self::$users['sysop']->getPassword(),
                        'lgtoken' => (string)( new MediaWiki\Session\Token( 'foobar', '' ) )
                ], $session );
                $this->assertEquals( $wgDisableAuthManager ? 'NoName' : 'Failed', $data[0]['login']['result'] );
@@ -29,6 +29,7 @@ class ApiLoginTest extends ApiTestCase {
                global $wgServer, $wgDisableAuthManager;
 
                $user = self::$users['sysop'];
+               $userName = $user->getUser()->getName();
                $user->getUser()->logout();
 
                if ( !isset( $wgServer ) ) {
@@ -36,7 +37,7 @@ class ApiLoginTest extends ApiTestCase {
                }
                $ret = $this->doApiRequest( [
                        "action" => "login",
-                       "lgname" => $user->username,
+                       "lgname" => $userName,
                        "lgpassword" => "bad",
                ] );
 
@@ -52,7 +53,7 @@ class ApiLoginTest extends ApiTestCase {
                        [
                                "action" => "login",
                                "lgtoken" => $token,
-                               "lgname" => $user->username,
+                               "lgname" => $userName,
                                "lgpassword" => "badnowayinhell",
                        ],
                        $ret[2]
@@ -74,12 +75,14 @@ class ApiLoginTest extends ApiTestCase {
                }
 
                $user = self::$users['sysop'];
+               $userName = $user->getUser()->getName();
+               $password = $user->getPassword();
                $user->getUser()->logout();
 
                $ret = $this->doApiRequest( [
                                "action" => "login",
-                               "lgname" => $user->username,
-                               "lgpassword" => $user->password,
+                               "lgname" => $userName,
+                               "lgpassword" => $password,
                        ]
                );
 
@@ -95,8 +98,8 @@ class ApiLoginTest extends ApiTestCase {
                        [
                                "action" => "login",
                                "lgtoken" => $token,
-                               "lgname" => $user->username,
-                               "lgpassword" => $user->password,
+                               "lgname" => $userName,
+                               "lgpassword" => $password,
                        ],
                        $ret[2]
                );
@@ -122,12 +125,14 @@ class ApiLoginTest extends ApiTestCase {
                        $this->markTestIncomplete( 'This test needs $wgServer to be set in LocalSettings.php' );
                }
                $user = self::$users['sysop'];
+               $userName = $user->getUser()->getName();
+               $password = $user->getPassword();
 
                $req = MWHttpRequest::factory( self::$apiUrl . "?action=login&format=xml",
                        [ "method" => "POST",
                                "postData" => [
-                                       "lgname" => $user->username,
-                                       "lgpassword" => $user->password
+                                       "lgname" => $userName,
+                                       "lgpassword" => $password
                                ]
                        ],
                        __METHOD__
@@ -146,8 +151,8 @@ class ApiLoginTest extends ApiTestCase {
 
                $req->setData( [
                        "lgtoken" => $token,
-                       "lgname" => $user->username,
-                       "lgpassword" => $user->password ] );
+                       "lgname" => $userName,
+                       "lgpassword" => $password ] );
                $req->execute();
 
                $cj = $req->getCookieJar();
@@ -162,11 +167,14 @@ class ApiLoginTest extends ApiTestCase {
        }
 
        public function testRunLogin() {
-               $sysopUser = self::$users['sysop'];
+               $user = self::$users['sysop'];
+               $userName = $user->getUser()->getName();
+               $password = $user->getPassword();
+
                $data = $this->doApiRequest( [
                        'action' => 'login',
-                       'lgname' => $sysopUser->username,
-                       'lgpassword' => $sysopUser->password ] );
+                       'lgname' => $userName,
+                       'lgpassword' => $password ] );
 
                $this->assertArrayHasKey( "login", $data[0] );
                $this->assertArrayHasKey( "result", $data[0]['login'] );
@@ -176,8 +184,8 @@ class ApiLoginTest extends ApiTestCase {
                $data = $this->doApiRequest( [
                        'action' => 'login',
                        "lgtoken" => $token,
-                       "lgname" => $sysopUser->username,
-                       "lgpassword" => $sysopUser->password ], $data[2] );
+                       "lgname" => $userName,
+                       "lgpassword" => $password ], $data[2] );
 
                $this->assertArrayHasKey( "login", $data[0] );
                $this->assertArrayHasKey( "result", $data[0]['login'] );
@@ -244,7 +252,7 @@ class ApiLoginTest extends ApiTestCase {
                        __METHOD__
                );
 
-               $lgName = $user->username . BotPassword::getSeparator() . 'foo';
+               $lgName = $user->getUser()->getName() . BotPassword::getSeparator() . 'foo';
 
                $ret = $this->doApiRequest( [
                        'action' => 'login',
index def9c5d..eaeb3ae 100644 (file)
@@ -229,7 +229,10 @@ class ApiQueryWatchlistIntegrationTest extends ApiTestCase {
        }
 
        private function getTitleFormatter() {
-               return new MediaWikiTitleCodec( Language::factory( 'en' ), GenderCache::singleton() );
+               return new MediaWikiTitleCodec(
+                       Language::factory( 'en' ),
+                       MediaWikiServices::getInstance()->getGenderCache()
+               );
        }
 
        private function getPrefixedText( LinkTarget $target ) {
@@ -818,8 +821,13 @@ class ApiQueryWatchlistIntegrationTest extends ApiTestCase {
                );
                $this->watchPages( $user, [ $target ] );
 
-               $resultMinor = $this->doListWatchlistRequest( [ 'wlshow' => 'minor', 'wlprop' => 'flags' ] );
-               $resultNotMinor = $this->doListWatchlistRequest( [ 'wlshow' => '!minor', 'wlprop' => 'flags' ] );
+               $resultMinor = $this->doListWatchlistRequest( [
+                       'wlshow' => WatchedItemQueryService::FILTER_MINOR,
+                       'wlprop' => 'flags'
+               ] );
+               $resultNotMinor = $this->doListWatchlistRequest( [
+                       'wlshow' => WatchedItemQueryService::FILTER_NOT_MINOR, 'wlprop' => 'flags'
+               ] );
 
                $this->assertArraySubsetsEqual(
                        $this->getItemsFromApiResponse( $resultMinor ),
@@ -842,8 +850,12 @@ class ApiQueryWatchlistIntegrationTest extends ApiTestCase {
                );
                $this->watchPages( $user, [ $target ] );
 
-               $resultBot = $this->doListWatchlistRequest( [ 'wlshow' => 'bot' ] );
-               $resultNotBot = $this->doListWatchlistRequest( [ 'wlshow' => '!bot' ] );
+               $resultBot = $this->doListWatchlistRequest( [
+                       'wlshow' => WatchedItemQueryService::FILTER_BOT
+               ] );
+               $resultNotBot = $this->doListWatchlistRequest( [
+                       'wlshow' => WatchedItemQueryService::FILTER_NOT_BOT
+               ] );
 
                $this->assertArraySubsetsEqual(
                        $this->getItemsFromApiResponse( $resultBot ),
@@ -867,11 +879,11 @@ class ApiQueryWatchlistIntegrationTest extends ApiTestCase {
 
                $resultAnon = $this->doListWatchlistRequest( [
                        'wlprop' => 'user',
-                       'wlshow' => 'anon'
+                       'wlshow' => WatchedItemQueryService::FILTER_ANON
                ] );
                $resultNotAnon = $this->doListWatchlistRequest( [
                        'wlprop' => 'user',
-                       'wlshow' => '!anon'
+                       'wlshow' => WatchedItemQueryService::FILTER_NOT_ANON
                ] );
 
                $this->assertArraySubsetsEqual(
@@ -911,11 +923,11 @@ class ApiQueryWatchlistIntegrationTest extends ApiTestCase {
 
                $resultUnread = $this->doListWatchlistRequest( [
                        'wlprop' => 'notificationtimestamp|title',
-                       'wlshow' => 'unread'
+                       'wlshow' => WatchedItemQueryService::FILTER_UNREAD
                ] );
                $resultNotUnread = $this->doListWatchlistRequest( [
                        'wlprop' => 'notificationtimestamp|title',
-                       'wlshow' => '!unread'
+                       'wlshow' => WatchedItemQueryService::FILTER_NOT_UNREAD
                ] );
 
                $this->assertEquals(
@@ -948,11 +960,11 @@ class ApiQueryWatchlistIntegrationTest extends ApiTestCase {
 
                $resultPatrolled = $this->doListWatchlistRequest( [
                        'wlprop' => 'patrol',
-                       'wlshow' => 'patrolled'
+                       'wlshow' => WatchedItemQueryService::FILTER_PATROLLED
                ], $user );
                $resultNotPatrolled = $this->doListWatchlistRequest( [
                        'wlprop' => 'patrol',
-                       'wlshow' => '!patrolled'
+                       'wlshow' => WatchedItemQueryService::FILTER_NOT_PATROLLED
                ], $user );
 
                $this->assertEquals(
diff --git a/tests/phpunit/includes/api/ApiQueryWatchlistRawIntegrationTest.php b/tests/phpunit/includes/api/ApiQueryWatchlistRawIntegrationTest.php
new file mode 100644 (file)
index 0000000..582c076
--- /dev/null
@@ -0,0 +1,542 @@
+<?php
+
+use MediaWiki\MediaWikiServices;
+
+/**
+ * @group API
+ * @group Database
+ * @group medium
+ *
+ * @covers ApiQueryWatchlistRaw
+ */
+class ApiQueryWatchlistRawIntegrationTest extends ApiTestCase {
+
+       protected function setUp() {
+               parent::setUp();
+               self::$users['ApiQueryWatchlistRawIntegrationTestUser']
+                       = $this->getMutableTestUser();
+               self::$users['ApiQueryWatchlistRawIntegrationTestUser2']
+                       = $this->getMutableTestUser();
+               $this->doLogin( 'ApiQueryWatchlistRawIntegrationTestUser' );
+       }
+
+       private function getLoggedInTestUser() {
+               return self::$users['ApiQueryWatchlistRawIntegrationTestUser']->getUser();
+       }
+
+       private function getNotLoggedInTestUser() {
+               return self::$users['ApiQueryWatchlistRawIntegrationTestUser2']->getUser();
+       }
+
+       private function getWatchedItemStore() {
+               return MediaWikiServices::getInstance()->getWatchedItemStore();
+       }
+
+       private function doListWatchlistRawRequest( array $params = [] ) {
+               return $this->doApiRequest( array_merge(
+                       [ 'action' => 'query', 'list' => 'watchlistraw' ],
+                       $params
+               ) );
+       }
+
+       private function doGeneratorWatchlistRawRequest( array $params = [] ) {
+               return $this->doApiRequest( array_merge(
+                       [ 'action' => 'query', 'generator' => 'watchlistraw' ],
+                       $params
+               ) );
+       }
+
+       private function getItemsFromApiResponse( array $response ) {
+               return $response[0]['watchlistraw'];
+       }
+
+       public function testListWatchlistRaw_returnsWatchedItems() {
+               $store = $this->getWatchedItemStore();
+               $store->addWatch(
+                       $this->getLoggedInTestUser(),
+                       new TitleValue( 0, 'ApiQueryWatchlistRawIntegrationTestPage' )
+               );
+
+               $result = $this->doListWatchlistRawRequest();
+
+               $this->assertArrayHasKey( 'watchlistraw', $result[0] );
+
+               $this->assertEquals(
+                       [
+                               [
+                                       'ns' => 0,
+                                       'title' => 'ApiQueryWatchlistRawIntegrationTestPage',
+                               ],
+                       ],
+                       $this->getItemsFromApiResponse( $result )
+               );
+       }
+
+       public function testPropChanged_addsNotificationTimestamp() {
+               $target = new TitleValue( 0, 'ApiQueryWatchlistRawIntegrationTestPage' );
+               $otherUser = $this->getNotLoggedInTestUser();
+
+               $store = $this->getWatchedItemStore();
+
+               $store->addWatch( $this->getLoggedInTestUser(), $target );
+               $store->updateNotificationTimestamp(
+                       $otherUser,
+                       $target,
+                       '20151212010101'
+               );
+
+               $result = $this->doListWatchlistRawRequest( [ 'wrprop' => 'changed' ] );
+
+               $this->assertEquals(
+                       [
+                               [
+                                       'ns' => 0,
+                                       'title' => 'ApiQueryWatchlistRawIntegrationTestPage',
+                                       'changed' => '2015-12-12T01:01:01Z',
+                               ],
+                       ],
+                       $this->getItemsFromApiResponse( $result )
+               );
+       }
+
+       public function testNamespaceParam() {
+               $store = $this->getWatchedItemStore();
+
+               $store->addWatchBatchForUser( $this->getLoggedInTestUser(), [
+                       new TitleValue( 0, 'ApiQueryWatchlistRawIntegrationTestPage' ),
+                       new TitleValue( 1, 'ApiQueryWatchlistRawIntegrationTestPage' ),
+               ] );
+
+               $result = $this->doListWatchlistRawRequest( [ 'wrnamespace' => '0' ] );
+
+               $this->assertEquals(
+                       [
+                               [
+                                       'ns' => 0,
+                                       'title' => 'ApiQueryWatchlistRawIntegrationTestPage',
+                               ],
+                       ],
+                       $this->getItemsFromApiResponse( $result )
+               );
+       }
+
+       public function testShowChangedParams() {
+               $subjectTarget = new TitleValue( 0, 'ApiQueryWatchlistRawIntegrationTestPage' );
+               $talkTarget = new TitleValue( 1, 'ApiQueryWatchlistRawIntegrationTestPage' );
+               $otherUser = $this->getNotLoggedInTestUser();
+
+               $store = $this->getWatchedItemStore();
+
+               $store->addWatchBatchForUser( $this->getLoggedInTestUser(), [
+                       $subjectTarget,
+                       $talkTarget,
+               ] );
+               $store->updateNotificationTimestamp(
+                       $otherUser,
+                       $subjectTarget,
+                       '20151212010101'
+               );
+
+               $resultChanged = $this->doListWatchlistRawRequest(
+                       [ 'wrprop' => 'changed', 'wrshow' => WatchedItemQueryService::FILTER_CHANGED ]
+               );
+               $resultNotChanged = $this->doListWatchlistRawRequest(
+                       [ 'wrprop' => 'changed', 'wrshow' => WatchedItemQueryService::FILTER_NOT_CHANGED ]
+               );
+
+               $this->assertEquals(
+                       [
+                               [
+                                       'ns' => 0,
+                                       'title' => 'ApiQueryWatchlistRawIntegrationTestPage',
+                                       'changed' => '2015-12-12T01:01:01Z',
+                               ],
+                       ],
+                       $this->getItemsFromApiResponse( $resultChanged )
+               );
+
+               $this->assertEquals(
+                       [
+                               [
+                                       'ns' => 1,
+                                       'title' => 'Talk:ApiQueryWatchlistRawIntegrationTestPage',
+                               ],
+                       ],
+                       $this->getItemsFromApiResponse( $resultNotChanged )
+               );
+       }
+
+       public function testLimitParam() {
+               $store = $this->getWatchedItemStore();
+
+               $store->addWatchBatchForUser( $this->getLoggedInTestUser(), [
+                       new TitleValue( 0, 'ApiQueryWatchlistRawIntegrationTestPage1' ),
+                       new TitleValue( 1, 'ApiQueryWatchlistRawIntegrationTestPage1' ),
+                       new TitleValue( 0, 'ApiQueryWatchlistRawIntegrationTestPage2' ),
+               ] );
+
+               $resultWithoutLimit = $this->doListWatchlistRawRequest();
+               $resultWithLimit = $this->doListWatchlistRawRequest( [ 'wrlimit' => 2 ] );
+
+               $this->assertEquals(
+                       [
+                               [
+                                       'ns' => 0,
+                                       'title' => 'ApiQueryWatchlistRawIntegrationTestPage1',
+                               ],
+                               [
+                                       'ns' => 0,
+                                       'title' => 'ApiQueryWatchlistRawIntegrationTestPage2',
+                               ],
+                               [
+                                       'ns' => 1,
+                                       'title' => 'Talk:ApiQueryWatchlistRawIntegrationTestPage1',
+                               ],
+                       ],
+                       $this->getItemsFromApiResponse( $resultWithoutLimit )
+               );
+               $this->assertEquals(
+                       [
+                               [
+                                       'ns' => 0,
+                                       'title' => 'ApiQueryWatchlistRawIntegrationTestPage1',
+                               ],
+                               [
+                                       'ns' => 0,
+                                       'title' => 'ApiQueryWatchlistRawIntegrationTestPage2',
+                               ],
+                       ],
+                       $this->getItemsFromApiResponse( $resultWithLimit )
+               );
+
+               $this->assertArrayNotHasKey( 'continue', $resultWithoutLimit[0] );
+               $this->assertArrayHasKey( 'continue', $resultWithLimit[0] );
+               $this->assertArrayHasKey( 'wrcontinue', $resultWithLimit[0]['continue'] );
+       }
+
+       public function testDirParams() {
+               $store = $this->getWatchedItemStore();
+
+               $store->addWatchBatchForUser( $this->getLoggedInTestUser(), [
+                       new TitleValue( 0, 'ApiQueryWatchlistRawIntegrationTestPage1' ),
+                       new TitleValue( 1, 'ApiQueryWatchlistRawIntegrationTestPage1' ),
+                       new TitleValue( 0, 'ApiQueryWatchlistRawIntegrationTestPage2' ),
+               ] );
+
+               $resultDirAsc = $this->doListWatchlistRawRequest( [ 'wrdir' => 'ascending' ] );
+               $resultDirDesc = $this->doListWatchlistRawRequest( [ 'wrdir' => 'descending' ] );
+
+               $this->assertEquals(
+                       [
+                               [
+                                       'ns' => 0,
+                                       'title' => 'ApiQueryWatchlistRawIntegrationTestPage1',
+                               ],
+                               [
+                                       'ns' => 0,
+                                       'title' => 'ApiQueryWatchlistRawIntegrationTestPage2',
+                               ],
+                               [
+                                       'ns' => 1,
+                                       'title' => 'Talk:ApiQueryWatchlistRawIntegrationTestPage1',
+                               ],
+                       ],
+                       $this->getItemsFromApiResponse( $resultDirAsc )
+               );
+
+               $this->assertEquals(
+                       [
+                               [
+                                       'ns' => 1,
+                                       'title' => 'Talk:ApiQueryWatchlistRawIntegrationTestPage1',
+                               ],
+                               [
+                                       'ns' => 0,
+                                       'title' => 'ApiQueryWatchlistRawIntegrationTestPage2',
+                               ],
+                               [
+                                       'ns' => 0,
+                                       'title' => 'ApiQueryWatchlistRawIntegrationTestPage1',
+                               ],
+                       ],
+                       $this->getItemsFromApiResponse( $resultDirDesc )
+               );
+       }
+
+       public function testAscendingIsDefaultOrder() {
+               $store = $this->getWatchedItemStore();
+
+               $store->addWatchBatchForUser( $this->getLoggedInTestUser(), [
+                       new TitleValue( 0, 'ApiQueryWatchlistRawIntegrationTestPage1' ),
+                       new TitleValue( 1, 'ApiQueryWatchlistRawIntegrationTestPage1' ),
+                       new TitleValue( 0, 'ApiQueryWatchlistRawIntegrationTestPage2' ),
+               ] );
+
+               $resultNoDir = $this->doListWatchlistRawRequest();
+               $resultAscDir = $this->doListWatchlistRawRequest( [ 'wrdir' => 'ascending' ] );
+
+               $this->assertEquals(
+                       $this->getItemsFromApiResponse( $resultNoDir ),
+                       $this->getItemsFromApiResponse( $resultAscDir )
+               );
+       }
+
+       public function testFromTitleParam() {
+               $store = $this->getWatchedItemStore();
+
+               $store->addWatchBatchForUser( $this->getLoggedInTestUser(), [
+                       new TitleValue( 0, 'ApiQueryWatchlistRawIntegrationTestPage1' ),
+                       new TitleValue( 0, 'ApiQueryWatchlistRawIntegrationTestPage2' ),
+                       new TitleValue( 0, 'ApiQueryWatchlistRawIntegrationTestPage3' ),
+               ] );
+
+               $result = $this->doListWatchlistRawRequest( [
+                       'wrfromtitle' => 'ApiQueryWatchlistRawIntegrationTestPage2',
+               ] );
+
+               $this->assertEquals(
+                       [
+                               [
+                                       'ns' => 0,
+                                       'title' => 'ApiQueryWatchlistRawIntegrationTestPage2',
+                               ],
+                               [
+                                       'ns' => 0,
+                                       'title' => 'ApiQueryWatchlistRawIntegrationTestPage3',
+                               ],
+                       ],
+                       $this->getItemsFromApiResponse( $result )
+               );
+       }
+
+       public function testToTitleParam() {
+               $store = $this->getWatchedItemStore();
+
+               $store->addWatchBatchForUser( $this->getLoggedInTestUser(), [
+                       new TitleValue( 0, 'ApiQueryWatchlistRawIntegrationTestPage1' ),
+                       new TitleValue( 0, 'ApiQueryWatchlistRawIntegrationTestPage2' ),
+                       new TitleValue( 0, 'ApiQueryWatchlistRawIntegrationTestPage3' ),
+               ] );
+
+               $result = $this->doListWatchlistRawRequest( [
+                       'wrtotitle' => 'ApiQueryWatchlistRawIntegrationTestPage2',
+               ] );
+
+               $this->assertEquals(
+                       [
+                               [
+                                       'ns' => 0,
+                                       'title' => 'ApiQueryWatchlistRawIntegrationTestPage1',
+                               ],
+                               [
+                                       'ns' => 0,
+                                       'title' => 'ApiQueryWatchlistRawIntegrationTestPage2',
+                               ],
+                       ],
+                       $this->getItemsFromApiResponse( $result )
+               );
+       }
+
+       public function testContinueParam() {
+               $store = $this->getWatchedItemStore();
+
+               $store->addWatchBatchForUser( $this->getLoggedInTestUser(), [
+                       new TitleValue( 0, 'ApiQueryWatchlistRawIntegrationTestPage1' ),
+                       new TitleValue( 0, 'ApiQueryWatchlistRawIntegrationTestPage2' ),
+                       new TitleValue( 0, 'ApiQueryWatchlistRawIntegrationTestPage3' ),
+               ] );
+
+               $firstResult = $this->doListWatchlistRawRequest( [ 'wrlimit' => 2 ] );
+               $continuationParam = $firstResult[0]['continue']['wrcontinue'];
+
+               $this->assertEquals( '0|ApiQueryWatchlistRawIntegrationTestPage3', $continuationParam );
+
+               $continuedResult = $this->doListWatchlistRawRequest( [ 'wrcontinue' => $continuationParam ] );
+
+               $this->assertEquals(
+                       [
+                               [
+                                       'ns' => 0,
+                                       'title' => 'ApiQueryWatchlistRawIntegrationTestPage3',
+                               ]
+                       ],
+                       $this->getItemsFromApiResponse( $continuedResult )
+               );
+       }
+
+       public function fromTitleToTitleContinueComboProvider() {
+               return [
+                       [
+                               [
+                                       'wrfromtitle' => 'ApiQueryWatchlistRawIntegrationTestPage1',
+                                       'wrtotitle' => 'ApiQueryWatchlistRawIntegrationTestPage2',
+                               ],
+                               [
+                                       [ 'ns' => 0, 'title' => 'ApiQueryWatchlistRawIntegrationTestPage1' ],
+                                       [ 'ns' => 0, 'title' => 'ApiQueryWatchlistRawIntegrationTestPage2' ],
+                               ],
+                       ],
+                       [
+                               [
+                                       'wrfromtitle' => 'ApiQueryWatchlistRawIntegrationTestPage1',
+                                       'wrcontinue' => '0|ApiQueryWatchlistRawIntegrationTestPage3',
+                               ],
+                               [
+                                       [ 'ns' => 0, 'title' => 'ApiQueryWatchlistRawIntegrationTestPage3' ],
+                               ],
+                       ],
+                       [
+                               [
+                                       'wrtotitle' => 'ApiQueryWatchlistRawIntegrationTestPage3',
+                                       'wrcontinue' => '0|ApiQueryWatchlistRawIntegrationTestPage2',
+                               ],
+                               [
+                                       [ 'ns' => 0, 'title' => 'ApiQueryWatchlistRawIntegrationTestPage2' ],
+                                       [ 'ns' => 0, 'title' => 'ApiQueryWatchlistRawIntegrationTestPage3' ],
+                               ],
+                       ],
+                       [
+                               [
+                                       'wrfromtitle' => 'ApiQueryWatchlistRawIntegrationTestPage1',
+                                       'wrtotitle' => 'ApiQueryWatchlistRawIntegrationTestPage3',
+                                       'wrcontinue' => '0|ApiQueryWatchlistRawIntegrationTestPage3',
+                               ],
+                               [
+                                       [ 'ns' => 0, 'title' => 'ApiQueryWatchlistRawIntegrationTestPage3' ],
+                               ],
+                       ],
+               ];
+       }
+
+       /**
+        * @dataProvider fromTitleToTitleContinueComboProvider
+        */
+       public function testFromTitleToTitleContinueCombo( array $params, array $expectedItems ) {
+               $store = $this->getWatchedItemStore();
+
+               $store->addWatchBatchForUser( $this->getLoggedInTestUser(), [
+                       new TitleValue( 0, 'ApiQueryWatchlistRawIntegrationTestPage1' ),
+                       new TitleValue( 0, 'ApiQueryWatchlistRawIntegrationTestPage2' ),
+                       new TitleValue( 0, 'ApiQueryWatchlistRawIntegrationTestPage3' ),
+               ] );
+
+               $result = $this->doListWatchlistRawRequest( $params );
+
+               $this->assertEquals( $expectedItems, $this->getItemsFromApiResponse( $result ) );
+       }
+
+       public function fromTitleToTitleContinueSelfContradictoryComboProvider() {
+               return [
+                       [
+                               [
+                                       'wrfromtitle' => 'ApiQueryWatchlistRawIntegrationTestPage2',
+                                       'wrtotitle' => 'ApiQueryWatchlistRawIntegrationTestPage1',
+                               ]
+                       ],
+                       [
+                               [
+                                       'wrfromtitle' => 'ApiQueryWatchlistRawIntegrationTestPage1',
+                                       'wrtotitle' => 'ApiQueryWatchlistRawIntegrationTestPage2',
+                                       'wrdir' => 'descending',
+                               ]
+                       ],
+                       [
+                               [
+                                       'wrtotitle' => 'ApiQueryWatchlistRawIntegrationTestPage1',
+                                       'wrcontinue' => '0|ApiQueryWatchlistRawIntegrationTestPage2',
+                               ]
+                       ],
+               ];
+       }
+
+       /**
+        * @dataProvider fromTitleToTitleContinueSelfContradictoryComboProvider
+        */
+       public function testFromTitleToTitleContinueSelfContradictoryCombo( array $params ) {
+               $store = $this->getWatchedItemStore();
+
+               $store->addWatchBatchForUser( $this->getLoggedInTestUser(), [
+                       new TitleValue( 0, 'ApiQueryWatchlistRawIntegrationTestPage1' ),
+                       new TitleValue( 0, 'ApiQueryWatchlistRawIntegrationTestPage2' ),
+               ] );
+
+               $result = $this->doListWatchlistRawRequest( $params );
+
+               $this->assertEmpty( $this->getItemsFromApiResponse( $result ) );
+               $this->assertArrayNotHasKey( 'continue', $result[0] );
+       }
+
+       public function testOwnerAndTokenParams() {
+               $otherUser = $this->getNotLoggedInTestUser();
+               $otherUser->setOption( 'watchlisttoken', '1234567890' );
+               $otherUser->saveSettings();
+
+               $store = $this->getWatchedItemStore();
+               $store->addWatchBatchForUser( $otherUser, [
+                       new TitleValue( 0, 'ApiQueryWatchlistRawIntegrationTestPage1' ),
+                       new TitleValue( 1, 'ApiQueryWatchlistRawIntegrationTestPage1' ),
+               ] );
+
+               $result = $this->doListWatchlistRawRequest( [
+                       'wrowner' => $otherUser->getName(),
+                       'wrtoken' => '1234567890',
+               ] );
+
+               $this->assertEquals(
+                       [
+                               [
+                                       'ns' => 0,
+                                       'title' => 'ApiQueryWatchlistRawIntegrationTestPage1',
+                               ],
+                               [
+                                       'ns' => 1,
+                                       'title' => 'Talk:ApiQueryWatchlistRawIntegrationTestPage1',
+                               ],
+                       ],
+                       $this->getItemsFromApiResponse( $result )
+               );
+       }
+
+       public function testOwnerAndTokenParams_wrongToken() {
+               $otherUser = $this->getNotLoggedInTestUser();
+               $otherUser->setOption( 'watchlisttoken', '1234567890' );
+               $otherUser->saveSettings();
+
+               $this->setExpectedException( UsageException::class, 'Incorrect watchlist token provided' );
+
+               $this->doListWatchlistRawRequest( [
+                       'wrowner' => $otherUser->getName(),
+                       'wrtoken' => 'wrong-token',
+               ] );
+       }
+
+       public function testOwnerAndTokenParams_userHasNoWatchlistToken() {
+               $this->setExpectedException( UsageException::class, 'Incorrect watchlist token provided' );
+
+               $this->doListWatchlistRawRequest( [
+                       'wrowner' => $this->getNotLoggedInTestUser()->getName(),
+                       'wrtoken' => 'some-watchlist-token',
+               ] );
+       }
+
+       public function testGeneratorWatchlistRawPropInfo_returnsWatchedItems() {
+               $store = $this->getWatchedItemStore();
+               $store->addWatch(
+                       $this->getLoggedInTestUser(),
+                       new TitleValue( 0, 'ApiQueryWatchlistRawIntegrationTestPage' )
+               );
+
+               $result = $this->doGeneratorWatchlistRawRequest( [ 'prop' => 'info' ] );
+
+               $this->assertArrayHasKey( 'query', $result[0] );
+               $this->assertArrayHasKey( 'pages', $result[0]['query'] );
+               $this->assertCount( 1, $result[0]['query']['pages'] );
+
+               // $result[0]['query']['pages'] uses page ids as keys
+               $item = array_values( $result[0]['query']['pages'] )[0];
+
+               $this->assertEquals( 0, $item['ns'] );
+               $this->assertEquals( 'ApiQueryWatchlistRawIntegrationTestPage', $item['title'] );
+       }
+
+}
diff --git a/tests/phpunit/includes/api/ApiStashEditTest.php b/tests/phpunit/includes/api/ApiStashEditTest.php
new file mode 100644 (file)
index 0000000..e2462c6
--- /dev/null
@@ -0,0 +1,28 @@
+<?php
+
+/**
+ * @covers ApiStashEdit
+ * @group API
+ * @group medium
+ * @group Database
+ */
+class ApiStashEditTest extends ApiTestCase {
+
+       public function testBasicEdit() {
+               $this->doLogin();
+               $apiResult = $this->doApiRequestWithToken(
+                       [
+                               'action' => 'stashedit',
+                               'title' => 'ApistashEdit_Page',
+                               'contentmodel' => 'wikitext',
+                               'contentformat' => 'text/x-wiki',
+                               'text' => 'Text for ' . __METHOD__ . ' page',
+                               'baserevid' => 0,
+                       ]
+               );
+               $apiResult = $apiResult[0];
+               $this->assertArrayHasKey( 'stashedit', $apiResult );
+               $this->assertEquals( 'stashed', $apiResult['stashedit']['status'] );
+       }
+
+}
index e90b46f..ac4d2c9 100644 (file)
@@ -24,7 +24,7 @@ abstract class ApiTestCase extends MediaWikiLangTestCase {
                $this->setMwGlobals( [
                        'wgAuth' => $wgDisableAuthManager ? new AuthPlugin : new MediaWiki\Auth\AuthManagerAuthPlugin,
                        'wgRequest' => new FauxRequest( [] ),
-                       'wgUser' => self::$users['sysop']->user,
+                       'wgUser' => self::$users['sysop']->getUser(),
                ] );
 
                $this->apiContext = new ApiTestContext();
@@ -158,8 +158,8 @@ abstract class ApiTestCase extends MediaWikiLangTestCase {
 
                $data = $this->doApiRequest( [
                        'action' => 'login',
-                       'lgname' => $testUser->username,
-                       'lgpassword' => $testUser->password ] );
+                       'lgname' => $testUser->getUser()->getName(),
+                       'lgpassword' => $testUser->getPassword() ] );
 
                $token = $data[0]['login']['token'];
 
@@ -167,8 +167,8 @@ abstract class ApiTestCase extends MediaWikiLangTestCase {
                        [
                                'action' => 'login',
                                'lgtoken' => $token,
-                               'lgname' => $testUser->username,
-                               'lgpassword' => $testUser->password,
+                               'lgname' => $testUser->getUser()->getName(),
+                               'lgpassword' => $testUser->getPassword(),
                        ],
                        $data[2]
                );
@@ -183,11 +183,11 @@ abstract class ApiTestCase extends MediaWikiLangTestCase {
                return $data;
        }
 
-       protected function getTokenList( $user, $session = null ) {
+       protected function getTokenList( TestUser $user, $session = null ) {
                $data = $this->doApiRequest( [
                        'action' => 'tokens',
                        'type' => 'edit|delete|protect|move|block|unblock|watch'
-               ], $session, false, $user->user );
+               ], $session, false, $user->getUser() );
 
                if ( !array_key_exists( 'tokens', $data[0] ) ) {
                        throw new MWException( 'Api failed to return a token list' );
index fbe9789..1f7c00b 100644 (file)
@@ -15,10 +15,10 @@ class ApiTokensTest extends ApiTestCase {
                }
        }
 
-       protected function runTokenTest( $user ) {
+       protected function runTokenTest( TestUser $user ) {
                $tokens = $this->getTokenList( $user );
 
-               $rights = $user->user->getRights();
+               $rights = $user->getUser()->getRights();
 
                $this->assertArrayHasKey( 'edittoken', $tokens );
                $this->assertArrayHasKey( 'movetoken', $tokens );
index 873917e..de2b56b 100644 (file)
@@ -27,11 +27,13 @@ class ApiUploadTest extends ApiTestCaseUpload {
         */
        public function testLogin() {
                $user = self::$users['uploader'];
+               $userName = $user->getUser()->getName();
+               $password = $user->getPassword();
 
                $params = [
                        'action' => 'login',
-                       'lgname' => $user->username,
-                       'lgpassword' => $user->password
+                       'lgname' => $userName,
+                       'lgpassword' => $password
                ];
                list( $result, , $session ) = $this->doApiRequest( $params );
                $this->assertArrayHasKey( "login", $result );
@@ -42,8 +44,8 @@ class ApiUploadTest extends ApiTestCaseUpload {
                $params = [
                        'action' => 'login',
                        'lgtoken' => $token,
-                       'lgname' => $user->username,
-                       'lgpassword' => $user->password
+                       'lgname' => $userName,
+                       'lgpassword' => $password
                ];
                list( $result, , $session ) = $this->doApiRequest( $params, $session );
                $this->assertArrayHasKey( "login", $result );
index 377abe2..82608b0 100644 (file)
@@ -781,6 +781,12 @@ class AuthManagerTest extends \MediaWikiTestCase {
                $userReq = new UsernameAuthenticationRequest;
                $userReq->username = 'UTDummy';
 
+               $req1->returnToUrl = 'http://localhost/';
+               $req2->returnToUrl = 'http://localhost/';
+               $req3->returnToUrl = 'http://localhost/';
+               $req3->username = 'UTDummy';
+               $userReq->returnToUrl = 'http://localhost/';
+
                // Passing one into beginAuthentication(), and an immediate FAIL
                $primary = $this->getMockForAbstractClass( AbstractPrimaryAuthenticationProvider::class );
                $this->primaryauthMocks = [ $primary ];
@@ -824,71 +830,29 @@ class AuthManagerTest extends \MediaWikiTestCase {
                $this->assertSame( $req2, $ret->createRequest->createRequest );
                $this->assertEquals( [], $ret->createRequest->maybeLink );
 
-               // Pass into beginAccountCreation(), no createRequest, primary needs reqs
-               $primary = $this->getMockBuilder( AbstractPrimaryAuthenticationProvider::class )
-                       ->setMethods( [ 'testForAccountCreation' ] )
-                       ->getMockForAbstractClass();
+               // Pass into beginAccountCreation(), see that maybeLink and createRequest get copied
+               $primary = $this->getMockForAbstractClass( AbstractPrimaryAuthenticationProvider::class );
                $this->primaryauthMocks = [ $primary ];
                $this->initializeManager( true );
+               $createReq = new CreateFromLoginAuthenticationRequest( $req3, [ $req2 ] );
+               $createReq->returnToUrl = 'http://localhost/';
+               $createReq->username = 'UTDummy';
+               $res = AuthenticationResponse::newUI( [ $req1 ], wfMessage( 'foo' ) );
+               $primary->expects( $this->any() )->method( 'beginPrimaryAccountCreation' )
+                       ->with( $this->anything(), $this->anything(), [ $userReq, $createReq, $req3 ] )
+                       ->will( $this->returnValue( $res ) );
                $primary->expects( $this->any() )->method( 'accountCreationType' )
                        ->will( $this->returnValue( PrimaryAuthenticationProvider::TYPE_CREATE ) );
-               $primary->expects( $this->any() )->method( 'getAuthenticationRequests' )
-                       ->will( $this->returnValue( [ $req1 ] ) );
-               $primary->expects( $this->any() )->method( 'testForAccountCreation' )
-                       ->will( $this->returnValue( StatusValue::newFatal( 'fail' ) ) );
-               $createReq = new CreateFromLoginAuthenticationRequest(
-                       null, [ $req2->getUniqueId() => $req2 ]
-               );
-               $this->logger->setCollect( true );
-               $ret = $this->manager->beginAccountCreation(
-                       $user, [ $userReq, $createReq ], 'http://localhost/'
-               );
-               $this->logger->setCollect( false );
-               $this->assertSame( AuthenticationResponse::UI, $ret->status );
-               $this->assertCount( 4, $ret->neededRequests );
-               $this->assertSame( $req1, $ret->neededRequests[0] );
-               $this->assertInstanceOf( UsernameAuthenticationRequest::class, $ret->neededRequests[1] );
-               $this->assertInstanceOf( UserDataAuthenticationRequest::class, $ret->neededRequests[2] );
-               $this->assertInstanceOf( CreateFromLoginAuthenticationRequest::class, $ret->neededRequests[3] );
-               $this->assertSame( null, $ret->neededRequests[3]->createRequest );
-               $this->assertEquals( [], $ret->neededRequests[3]->maybeLink );
-
-               // Pass into beginAccountCreation(), with createRequest, primary needs reqs
-               $createReq = new CreateFromLoginAuthenticationRequest( $req2, [] );
-               $this->logger->setCollect( true );
-               $ret = $this->manager->beginAccountCreation(
-                       $user, [ $userReq, $createReq ], 'http://localhost/'
-               );
-               $this->logger->setCollect( false );
-               $this->assertSame( AuthenticationResponse::FAIL, $ret->status );
-               $this->assertSame( 'fail', $ret->message->getKey() );
-
-               // Again, with a secondary needing reqs too
-               $secondary = $this->getMockBuilder( AbstractSecondaryAuthenticationProvider::class )
-                       ->getMockForAbstractClass();
-               $this->secondaryauthMocks = [ $secondary ];
-               $this->initializeManager( true );
-               $secondary->expects( $this->any() )->method( 'getAuthenticationRequests' )
-                       ->will( $this->returnValue( [ $req3 ] ) );
-               $createReq = new CreateFromLoginAuthenticationRequest( $req2, [] );
                $this->logger->setCollect( true );
                $ret = $this->manager->beginAccountCreation(
                        $user, [ $userReq, $createReq ], 'http://localhost/'
                );
                $this->logger->setCollect( false );
                $this->assertSame( AuthenticationResponse::UI, $ret->status );
-               $this->assertCount( 4, $ret->neededRequests );
-               $this->assertSame( $req3, $ret->neededRequests[0] );
-               $this->assertInstanceOf( UsernameAuthenticationRequest::class, $ret->neededRequests[1] );
-               $this->assertInstanceOf( UserDataAuthenticationRequest::class, $ret->neededRequests[2] );
-               $this->assertInstanceOf( CreateFromLoginAuthenticationRequest::class, $ret->neededRequests[3] );
-               $this->assertSame( $req2, $ret->neededRequests[3]->createRequest );
-               $this->assertEquals( [], $ret->neededRequests[3]->maybeLink );
-               $this->logger->setCollect( true );
-               $ret = $this->manager->continueAccountCreation( $ret->neededRequests );
-               $this->logger->setCollect( false );
-               $this->assertSame( AuthenticationResponse::FAIL, $ret->status );
-               $this->assertSame( 'fail', $ret->message->getKey() );
+               $state = $this->request->getSession()->getSecret( 'AuthManager::accountCreationState' );
+               $this->assertNotNull( $state );
+               $this->assertEquals( [ $userReq, $createReq, $req3 ], $state['reqs'] );
+               $this->assertEquals( [ $req2 ], $state['maybeLink'] );
        }
 
        /**
@@ -1095,6 +1059,10 @@ class AuthManagerTest extends \MediaWikiTestCase {
                        } else {
                                $this->assertNotNull( $session->getSecret( 'AuthManager::authnState' ),
                                        "Response $i, session state" );
+                               foreach ( $ret->neededRequests as $neededReq ) {
+                                       $this->assertEquals( AuthManager::ACTION_LOGIN, $neededReq->action,
+                                               "Response $i, neededRequest action" );
+                               }
                                $this->assertEquals(
                                        $ret->neededRequests,
                                        $this->manager->getAuthenticationRequests( AuthManager::ACTION_LOGIN_CONTINUE ),
@@ -1150,6 +1118,7 @@ class AuthManagerTest extends \MediaWikiTestCase {
                $restartResponse2->createRequest = new CreateFromLoginAuthenticationRequest(
                        null, [ $req->getUniqueId() => $req ]
                );
+               $restartResponse2->createRequest->action = AuthManager::ACTION_LOGIN;
                $restartResponse2->neededRequests = [ $rememberReq, $restartResponse2->createRequest ];
 
                return [
@@ -2138,6 +2107,10 @@ class AuthManagerTest extends \MediaWikiTestCase {
                                        $this->request->getSession()->getSecret( 'AuthManager::accountCreationState' ),
                                        "Response $i, session state"
                                );
+                               foreach ( $ret->neededRequests as $neededReq ) {
+                                       $this->assertEquals( AuthManager::ACTION_CREATE, $neededReq->action,
+                                               "Response $i, neededRequest action" );
+                               }
                                $this->assertEquals(
                                        $ret->neededRequests,
                                        $this->manager->getAuthenticationRequests( AuthManager::ACTION_CREATE_CONTINUE ),
@@ -3561,6 +3534,10 @@ class AuthManagerTest extends \MediaWikiTestCase {
                                        $this->request->getSession()->getSecret( 'AuthManager::accountLinkState' ),
                                        "Response $i, session state"
                                );
+                               foreach ( $ret->neededRequests as $neededReq ) {
+                                       $this->assertEquals( AuthManager::ACTION_LINK, $neededReq->action,
+                                               "Response $i, neededRequest action" );
+                               }
                                $this->assertEquals(
                                        $ret->neededRequests,
                                        $this->manager->getAuthenticationRequests( AuthManager::ACTION_LINK_CONTINUE ),
index b676d69..44f2743 100644 (file)
@@ -461,14 +461,19 @@ class AuthPluginPrimaryAuthenticationProviderTest extends \MediaWikiTestCase {
         * @param StatusValue $expect
         */
        public function testProviderAllowsAuthenticationDataChange( $type, $allow, $expect ) {
+               $domains = $type instanceof PasswordDomainAuthenticationRequest ? [ 'foo', 'bar' ] : [];
                $plugin = $this->getMock( 'AuthPlugin' );
-               $plugin->expects( $this->any() )->method( 'domainList' )->willReturn( [] );
+               $plugin->expects( $this->any() )->method( 'domainList' )->willReturn( $domains );
                $plugin->expects( $allow === null ? $this->never() : $this->once() )
                        ->method( 'allowPasswordChange' )->will( $this->returnValue( $allow ) );
+               $plugin->expects( $this->any() )->method( 'validDomain' )
+                       ->willReturnCallback( function ( $d ) use ( $domains ) {
+                               return in_array( $d, $domains, true );
+                       } );
                $provider = new AuthPluginPrimaryAuthenticationProvider( $plugin );
 
-               if ( $type === PasswordAuthenticationRequest::class ) {
-                       $req = new $type();
+               if ( is_object( $type ) ) {
+                       $req = $type;
                } else {
                        $req = $this->getMock( $type );
                }
@@ -480,14 +485,28 @@ class AuthPluginPrimaryAuthenticationProviderTest extends \MediaWikiTestCase {
        }
 
        public static function provideProviderAllowsAuthenticationDataChange() {
+               $domains = [ 'foo', 'bar' ];
+               $reqNoDomain = new PasswordDomainAuthenticationRequest( $domains );
+               $reqValidDomain = new PasswordDomainAuthenticationRequest( $domains );
+               $reqValidDomain->domain = 'foo';
+               $reqInvalidDomain = new PasswordDomainAuthenticationRequest( $domains );
+               $reqInvalidDomain->domain = 'invalid';
+
                return [
                        [ AuthenticationRequest::class, null, \StatusValue::newGood( 'ignored' ) ],
-                       [ PasswordAuthenticationRequest::class, true, \StatusValue::newGood() ],
+                       [ new PasswordAuthenticationRequest, true, \StatusValue::newGood() ],
                        [
-                               PasswordAuthenticationRequest::class,
+                               new PasswordAuthenticationRequest,
                                false,
                                \StatusValue::newFatal( 'authmanager-authplugin-setpass-denied' )
                        ],
+                       [ $reqNoDomain, true, \StatusValue::newGood( 'ignored' ) ],
+                       [ $reqValidDomain, true, \StatusValue::newGood() ],
+                       [
+                               $reqInvalidDomain,
+                               true,
+                               \StatusValue::newFatal( 'authmanager-authplugin-setpass-bad-domain' )
+                       ],
                ];
        }
 
index 84a0ea6..cac031c 100644 (file)
@@ -243,14 +243,6 @@ class AuthenticationRequestTest extends \MediaWikiTestCase {
 
                $req1->required = AuthenticationRequest::PRIMARY_REQUIRED;
 
-               $fields = AuthenticationRequest::mergeFieldInfo( [ $req1 ] );
-               $expect = $req1->getFieldInfo();
-               foreach ( $expect as $name => &$options ) {
-                       $options['optional'] = true;
-               }
-               unset( $options );
-               $this->assertEquals( $expect, $fields );
-
                $fields = AuthenticationRequest::mergeFieldInfo( [ $req1, $req2 ] );
                $expect += $req2->getFieldInfo();
                $expect['string1']['optional'] = false;
@@ -258,6 +250,17 @@ class AuthenticationRequestTest extends \MediaWikiTestCase {
                $expect['select']['optional'] = false;
                $expect['select']['options']['bar'] = $msg;
                $this->assertEquals( $expect, $fields );
+
+               $req2->required = AuthenticationRequest::PRIMARY_REQUIRED;
+
+               $fields = AuthenticationRequest::mergeFieldInfo( [ $req1, $req2 ] );
+               $expect = $req1->getFieldInfo() + $req2->getFieldInfo();
+               $expect['string1']['optional'] = false;
+               $expect['string2']['optional'] = true;
+               $expect['string3']['optional'] = true;
+               $expect['select']['optional'] = false;
+               $expect['select']['options']['bar'] = $msg;
+               $this->assertEquals( $expect, $fields );
        }
 
        /**
index 09d046c..580ef6c 100644 (file)
@@ -128,12 +128,27 @@ class ConfirmLinkSecondaryAuthenticationProviderTest extends \MediaWikiTestCase
        }
 
        public function testBeginLinkAttempt() {
+               $badReq = $this->getMockBuilder( AuthenticationRequest::class )
+                       ->setMethods( [ 'getUniqueId' ] )
+                       ->getMockForAbstractClass();
+               $badReq->expects( $this->any() )->method( 'getUniqueId' )
+                       ->will( $this->returnValue( "BadReq" ) );
+
                $user = \User::newFromName( 'UTSysop' );
                $provider = \TestingAccessWrapper::newFromObject(
                        new ConfirmLinkSecondaryAuthenticationProvider
                );
                $request = new \FauxRequest();
-               $manager = new AuthManager( $request, \RequestContext::getMain()->getConfig() );
+               $manager = $this->getMockBuilder( AuthManager::class )
+                       ->setMethods( [ 'allowsAuthenticationDataChange' ] )
+                       ->setConstructorArgs( [ $request, \RequestContext::getMain()->getConfig() ] )
+                       ->getMock();
+               $manager->expects( $this->any() )->method( 'allowsAuthenticationDataChange' )
+                       ->will( $this->returnCallback( function ( $req ) {
+                               return $req->getUniqueId() !== 'BadReq'
+                                       ? \StatusValue::newGood()
+                                       : \StatusValue::newFatal( 'no' );
+                       } ) );
                $provider->setManager( $manager );
 
                $this->assertEquals(
@@ -151,7 +166,7 @@ class ConfirmLinkSecondaryAuthenticationProviderTest extends \MediaWikiTestCase
 
                $reqs = $this->getLinkRequests();
                $request->getSession()->setSecret( 'state', [
-                       'maybeLink' => $reqs
+                       'maybeLink' => $reqs + [ 'BadReq' => $badReq ]
                ] );
                $res = $provider->beginLinkAttempt( $user, 'state' );
                $this->assertInstanceOf( AuthenticationResponse::class, $res );
@@ -160,7 +175,12 @@ class ConfirmLinkSecondaryAuthenticationProviderTest extends \MediaWikiTestCase
                $this->assertCount( 1, $res->neededRequests );
                $req = $res->neededRequests[0];
                $this->assertInstanceOf( ConfirmLinkAuthenticationRequest::class, $req );
-               $this->assertEquals( $reqs, \TestingAccessWrapper::newFromObject( $req )->linkRequests );
+               $expectReqs = $this->getLinkRequests();
+               foreach ( $expectReqs as $r ) {
+                       $r->action = AuthManager::ACTION_CHANGE;
+                       $r->username = $user->getName();
+               }
+               $this->assertEquals( $expectReqs, \TestingAccessWrapper::newFromObject( $req )->linkRequests );
        }
 
        public function testContinueLinkAttempt() {
index fb0613d..d166caa 100644 (file)
@@ -23,4 +23,35 @@ class CreateFromLoginAuthenticationRequestTest extends AuthenticationRequestTest
                        ],
                ];
        }
+
+       /**
+        * @dataProvider provideState
+        */
+       public function testState(
+               $createReq, $maybeLink, $username, $loginState, $createState, $createPrimaryState
+       ) {
+               $req = new CreateFromLoginAuthenticationRequest( $createReq, $maybeLink );
+               $this->assertSame( $username, $req->username );
+               $this->assertSame( $loginState, $req->hasStateForAction( AuthManager::ACTION_LOGIN ) );
+               $this->assertSame( $createState, $req->hasStateForAction( AuthManager::ACTION_CREATE ) );
+               $this->assertFalse( $req->hasStateForAction( AuthManager::ACTION_LINK ) );
+               $this->assertFalse( $req->hasPrimaryStateForAction( AuthManager::ACTION_LOGIN ) );
+               $this->assertSame( $createPrimaryState,
+                       $req->hasPrimaryStateForAction( AuthManager::ACTION_CREATE ) );
+       }
+
+       public static function provideState() {
+               $req1 = new UsernameAuthenticationRequest;
+               $req2 = new UsernameAuthenticationRequest;
+               $req2->username = 'Bob';
+
+               return [
+                       'Nothing' => [ null, [], null, false, false, false ],
+                       'Link, no create' => [ null, [ $req2 ], null, true, true, false ],
+                       'No link, create but no name' => [ $req1, [], null, false, true, true ],
+                       'Link and create but no name' => [ $req1, [ $req2 ], null, true, true, true ],
+                       'No link, create with name' => [ $req2, [], 'Bob', false, true, true ],
+                       'Link and create with name' => [ $req2, [ $req2 ], 'Bob', true, true, true ],
+               ];
+       }
 }
index edee6fc..3548002 100644 (file)
@@ -334,22 +334,23 @@ class LegacyHookPreAuthenticationProviderTest extends \MediaWikiTestCase {
         * @param string|null $failMsg
         */
        public function testTestUserForCreation( $error, $failMsg ) {
+               $testUser = self::getTestUser()->getUser();
+               $provider = $this->getProvider();
+               $options = [ 'flags' => \User::READ_LOCKING, 'creating' => true ];
+
                $this->hook( 'AbortNewAccount', $this->never() );
                $this->hook( 'AbortAutoAccount', $this->once() )
-                       ->will( $this->returnCallback( function ( $user, &$abortError ) use ( $error ) {
+                       ->will( $this->returnCallback( function ( $user, &$abortError ) use ( $testUser, $error ) {
                                $this->assertInstanceOf( 'User', $user );
-                               $this->assertSame( 'UTSysop', $user->getName() );
+                               $this->assertSame( $testUser->getName(), $user->getName() );
                                $abortError = $error;
                                return $error === null;
                        } ) );
-
-               $status = $this->getProvider()->testUserForCreation(
-                       \User::newFromName( 'UTSysop' ), AuthManager::AUTOCREATE_SOURCE_SESSION
+               $status = $provider->testUserForCreation(
+                       $testUser, AuthManager::AUTOCREATE_SOURCE_SESSION, $options
                );
-
                $this->unhook( 'AbortNewAccount' );
                $this->unhook( 'AbortAutoAccount' );
-
                if ( $failMsg === null ) {
                        $this->assertEquals( \StatusValue::newGood(), $status, 'should succeed' );
                } else {
@@ -360,54 +361,11 @@ class LegacyHookPreAuthenticationProviderTest extends \MediaWikiTestCase {
                }
 
                $this->hook( 'AbortAutoAccount', $this->never() );
-               $this->hook( 'AbortNewAccount', $this->once() )
-                       ->will( $this->returnCallback(
-                               function ( $user, &$abortError, &$abortStatus ) use ( $error ) {
-                                       $this->assertInstanceOf( 'User', $user );
-                                       $this->assertSame( 'UTSysop', $user->getName() );
-                                       $abortError = $error;
-                                       return $error === null;
-                               }
-                       ) );
-               $status = $this->getProvider()->testUserForCreation( \User::newFromName( 'UTSysop' ), false );
+               $this->hook( 'AbortNewAccount', $this->never() );
+               $status = $provider->testUserForCreation( $testUser, false, $options );
                $this->unhook( 'AbortNewAccount' );
                $this->unhook( 'AbortAutoAccount' );
-               if ( $failMsg === null ) {
-                       $this->assertEquals( \StatusValue::newGood(), $status, 'should succeed' );
-               } else {
-                       $this->assertInstanceOf( 'StatusValue', $status, 'should fail (type)' );
-                       $this->assertFalse( $status->isOk(), 'should fail (ok)' );
-                       $errors = $status->getErrors();
-                       $msg = $errors[0]['message'];
-                       $this->assertInstanceOf( \Message::class, $msg );
-                       $this->assertEquals(
-                               'createaccount-hook-aborted', $msg->getKey(), 'should fail (message)'
-                       );
-               }
-
-               if ( $error !== false ) {
-                       $this->hook( 'AbortAutoAccount', $this->never() );
-                       $this->hook( 'AbortNewAccount', $this->once() )
-                               ->will( $this->returnCallback(
-                                       function ( $user, &$abortError, &$abortStatus ) use ( $error ) {
-                                               $this->assertInstanceOf( 'User', $user );
-                                               $this->assertSame( 'UTSysop', $user->getName() );
-                                               $abortStatus = $error ? \Status::newFatal( $error ) : \Status::newGood();
-                                               return $error === null;
-                                       }
-                       ) );
-                       $status = $this->getProvider()->testUserForCreation( \User::newFromName( 'UTSysop' ), false );
-                       $this->unhook( 'AbortNewAccount' );
-                       $this->unhook( 'AbortAutoAccount' );
-                       if ( $failMsg === null ) {
-                               $this->assertEquals( \StatusValue::newGood(), $status, 'should succeed' );
-                       } else {
-                               $this->assertInstanceOf( 'StatusValue', $status, 'should fail (type)' );
-                               $this->assertFalse( $status->isOk(), 'should fail (ok)' );
-                               $errors = $status->getErrors();
-                               $this->assertEquals( $failMsg, $errors[0]['message'], 'should fail (message)' );
-                       }
-               }
+               $this->assertEquals( \StatusValue::newGood(), $status, 'should succeed' );
        }
 
        public static function provideTestUserForCreation() {
index 59edede..79c138b 100644 (file)
@@ -216,7 +216,9 @@ class ResetPasswordSecondaryAuthenticationProviderTest extends \MediaWikiTestCas
                $this->assertSame( AuthenticationResponse::UI, $res->status );
                $this->assertEquals( $msg, $res->message );
                $this->assertCount( 2, $res->neededRequests );
-               $this->assertEquals( $passReq, $res->neededRequests[0] );
+               $expectedPassReq = clone $passReq;
+               $expectedPassReq->required = AuthenticationRequest::OPTIONAL;
+               $this->assertEquals( $expectedPassReq, $res->neededRequests[0] );
                $this->assertEquals( $skipReq, $res->neededRequests[1] );
                $this->assertNotNull( $manager->getAuthenticationSessionData( 'reset-pass' ) );
                $this->assertFalse( $passReq->done );
@@ -304,7 +306,9 @@ class ResetPasswordSecondaryAuthenticationProviderTest extends \MediaWikiTestCas
                $this->assertSame( AuthenticationResponse::UI, $res->status );
                $this->assertEquals( $msg, $res->message );
                $this->assertCount( 2, $res->neededRequests );
-               $this->assertEquals( $passReq2, $res->neededRequests[0] );
+               $expectedPassReq = clone $passReq2;
+               $expectedPassReq->required = AuthenticationRequest::OPTIONAL;
+               $this->assertEquals( $expectedPassReq, $res->neededRequests[0] );
                $this->assertEquals( $skipReq, $res->neededRequests[1] );
                $this->assertNotNull( $manager->getAuthenticationSessionData( 'reset-pass' ) );
                $this->assertFalse( $passReq->done );
index a2aef35..d2078d7 100644 (file)
@@ -101,15 +101,15 @@ class CssContentTest extends JavaScriptContentTest {
         */
        public static function provideGetRedirectTarget() {
                // @codingStandardsIgnoreStart Generic.Files.LineLength
-               return array(
-                       array( 'MediaWiki:MonoBook.css', "/* #REDIRECT */@import url(//example.org/w/index.php?title=MediaWiki:MonoBook.css&action=raw&ctype=text/css);" ),
-                       array( 'User:FooBar/common.css', "/* #REDIRECT */@import url(//example.org/w/index.php?title=User:FooBar/common.css&action=raw&ctype=text/css);" ),
-                       array( 'Gadget:FooBaz.css', "/* #REDIRECT */@import url(//example.org/w/index.php?title=Gadget:FooBaz.css&action=raw&ctype=text/css);" ),
+               return [
+                       [ 'MediaWiki:MonoBook.css', "/* #REDIRECT */@import url(//example.org/w/index.php?title=MediaWiki:MonoBook.css&action=raw&ctype=text/css);" ],
+                       [ 'User:FooBar/common.css', "/* #REDIRECT */@import url(//example.org/w/index.php?title=User:FooBar/common.css&action=raw&ctype=text/css);" ],
+                       [ 'Gadget:FooBaz.css', "/* #REDIRECT */@import url(//example.org/w/index.php?title=Gadget:FooBaz.css&action=raw&ctype=text/css);" ],
                        # No #REDIRECT comment
-                       array( null, "@import url(//example.org/w/index.php?title=Gadget:FooBaz.css&action=raw&ctype=text/css);" ),
+                       [ null, "@import url(//example.org/w/index.php?title=Gadget:FooBaz.css&action=raw&ctype=text/css);" ],
                        # Wrong domain
-                       array( null, "/* #REDIRECT */@import url(//example.com/w/index.php?title=Gadget:FooBaz.css&action=raw&ctype=text/css);" ),
-               );
+                       [ null, "/* #REDIRECT */@import url(//example.com/w/index.php?title=Gadget:FooBaz.css&action=raw&ctype=text/css);" ],
+               ];
                // @codingStandardsIgnoreEnd
        }
 
index 492fec6..e8681c7 100644 (file)
@@ -9,4 +9,45 @@ class TextContentHandlerTest extends MediaWikiLangTestCase {
                $this->assertTrue( $handler->supportsDirectEditing(), 'direct editing is supported' );
        }
 
+       /**
+        * @covers SearchEngine::makeSearchFieldMapping
+        * @covers ContentHandler::getFieldsForSearchIndex
+        */
+       public function testFieldsForIndex() {
+               $handler = new TextContentHandler();
+
+               $mockEngine = $this->getMock( 'SearchEngine' );
+
+               $mockEngine->expects( $this->atLeastOnce() )
+                       ->method( 'makeSearchFieldMapping' )
+                       ->willReturnCallback( function ( $name, $type ) {
+                               $mockField =
+                                       $this->getMockBuilder( 'SearchIndexFieldDefinition' )
+                                               ->setConstructorArgs( [ $name, $type ] )
+                                               ->getMock();
+                               $mockField->expects( $this->atLeastOnce() )->method( 'getMapping' )->willReturn( [
+                                               'testData' => 'test',
+                                               'name' => $name,
+                                               'type' => $type,
+                                       ] );
+                               return $mockField;
+                       } );
+
+               /**
+                * @var $mockEngine SearchEngine
+                */
+               $fields = $handler->getFieldsForSearchIndex( $mockEngine );
+               $mappedFields = [];
+               foreach ( $fields as $name => $field ) {
+                       $this->assertInstanceOf( 'SearchIndexField', $field );
+                       /**
+                        * @var $field SearchIndexField
+                        */
+                       $mappedFields[$name] = $field->getMapping( $mockEngine );
+               }
+               $this->assertArrayHasKey( 'language', $mappedFields );
+               $this->assertEquals( 'test', $mappedFields['language']['testData'] );
+               $this->assertEquals( 'language', $mappedFields['language']['name'] );
+       }
+
 }
index 0730529..723f1c3 100644 (file)
@@ -239,12 +239,15 @@ class DatabaseTest extends MediaWikiTestCase {
                $db = $this->db;
 
                $db->setFlag( DBO_TRX );
+               $called = false;
                $flagSet = null;
-               $db->onTransactionIdle( function() use ( $db, &$flagSet ) {
+               $db->onTransactionIdle( function() use ( $db, &$flagSet, &$called ) {
+                       $called = true;
                        $flagSet = $db->getFlag( DBO_TRX );
                } );
                $this->assertFalse( $flagSet, 'DBO_TRX off in callback' );
                $this->assertTrue( $db->getFlag( DBO_TRX ), 'DBO_TRX restored to default' );
+               $this->assertTrue( $called, 'Callback reached' );
 
                $db->clearFlag( DBO_TRX );
                $flagSet = null;
@@ -260,4 +263,30 @@ class DatabaseTest extends MediaWikiTestCase {
                } );
                $this->assertFalse( $db->getFlag( DBO_TRX ), 'DBO_TRX restored to default' );
        }
+
+       public function testTransactionResolution() {
+               $db = $this->db;
+
+               $db->clearFlag( DBO_TRX );
+               $db->begin( __METHOD__ );
+               $called = false;
+               $db->onTransactionResolution( function() use ( $db, &$called ) {
+                       $called = true;
+                       $db->setFlag( DBO_TRX );
+               } );
+               $db->commit( __METHOD__ );
+               $this->assertFalse( $db->getFlag( DBO_TRX ), 'DBO_TRX restored to default' );
+               $this->assertTrue( $called, 'Callback reached' );
+
+               $db->clearFlag( DBO_TRX );
+               $db->begin( __METHOD__ );
+               $called = false;
+               $db->onTransactionResolution( function() use ( $db, &$called ) {
+                       $called = true;
+                       $db->setFlag( DBO_TRX );
+               } );
+               $db->rollback( __METHOD__ );
+               $this->assertFalse( $db->getFlag( DBO_TRX ), 'DBO_TRX restored to default' );
+               $this->assertTrue( $called, 'Callback reached' );
+       }
 }
index e29d207..d6249bb 100644 (file)
@@ -23,9 +23,6 @@ namespace MediaWiki\Logger\Monolog;
 use MediaWikiTestCase;
 use Monolog\Logger;
 
-// not available in the version of phpunit mw uses, so copied into repo
-require_once __DIR__ . '/../../../phpunit/ConsecutiveParametersMatcher.php';
-
 class KafkaHandlerTest extends MediaWikiTestCase {
 
        protected function setUp() {
@@ -58,6 +55,9 @@ class KafkaHandlerTest extends MediaWikiTestCase {
                $produce->expects( $this->once() )
                        ->method( 'setMessages' )
                        ->with( $expect, $this->anything(), $this->anything() );
+               $produce->expects( $this->any() )
+                       ->method( 'send' )
+                       ->will( $this->returnValue( true ) );
 
                $handler = new KafkaHandler( $produce, $options );
                $handler->handle( [
@@ -89,6 +89,9 @@ class KafkaHandlerTest extends MediaWikiTestCase {
                $produce->expects( $this->any() )
                        ->method( 'getAvailablePartitions' )
                        ->will( $this->throwException( new \Kafka\Exception ) );
+               $produce->expects( $this->any() )
+                       ->method( 'send' )
+                       ->will( $this->returnValue( true ) );
 
                if ( $expectException ) {
                        $this->setExpectedException( 'Kafka\Exception' );
@@ -147,6 +150,9 @@ class KafkaHandlerTest extends MediaWikiTestCase {
                        ->will( $this->returnValue( [ 'A' ] ) );
                $mockMethod = $produce->expects( $this->exactly( 2 ) )
                        ->method( 'setMessages' );
+               $produce->expects( $this->any() )
+                       ->method( 'send' )
+                       ->will( $this->returnValue( true ) );
                // evil hax
                \TestingAccessWrapper::newFromObject( $mockMethod )->matcher->parametersMatcher =
                        new \PHPUnit_Framework_MockObject_Matcher_ConsecutiveParameters( [
@@ -181,6 +187,9 @@ class KafkaHandlerTest extends MediaWikiTestCase {
                $produce->expects( $this->once() )
                        ->method( 'setMessages' )
                        ->with( $this->anything(), $this->anything(), [ 'words', 'lines' ] );
+               $produce->expects( $this->any() )
+                       ->method( 'send' )
+                       ->will( $this->returnValue( true ) );
 
                $formatter = $this->getMock( 'Monolog\Formatter\FormatterInterface' );
                $formatter->expects( $this->any() )
index 4aeddc6..af5d3ac 100644 (file)
@@ -1516,7 +1516,7 @@ class FileBackendTest extends MediaWikiTestCase {
                        [ "$base/unittest-cont1/e/a/z/some_file1.txt", true ],
                        [ "$base/unittest-cont2/a/z/some_file2.txt", true ],
                        # Specific to FS backend with no basePath field set
-                       # array( "$base/unittest-cont3/a/z/some_file3.txt", false ),
+                       # [ "$base/unittest-cont3/a/z/some_file3.txt", false ],
                ];
        }
 
index 5e5e921..09d31fc 100644 (file)
@@ -124,7 +124,7 @@ class FakeDatabase extends DatabaseBase {
         *
         * Example:
         * $id = $dbw->nextSequenceValue( 'page_page_id_seq' );
-        * $dbw->insert( 'page', array( 'page_id' => $id ) );
+        * $dbw->insert( 'page', [ 'page_id' => $id ] );
         * $id = $dbw->insertId();
         *
         * @return int
index 266e025..5bc1c8d 100644 (file)
@@ -33,17 +33,26 @@ class WANObjectCacheTest extends MediaWikiTestCase {
         * @param integer $ttl
         */
        public function testSetAndGet( $value, $ttl ) {
+               $curTTL = null;
+               $asOf = null;
                $key = wfRandomString();
+
+               $this->cache->get( $key, $curTTL, [], $asOf );
+               $this->assertNull( $curTTL, "Current TTL is null" );
+               $this->assertNull( $asOf, "Current as-of-time is infinite" );
+
+               $t = microtime( true );
                $this->cache->set( $key, $value, $ttl );
 
-               $curTTL = null;
-               $this->assertEquals( $value, $this->cache->get( $key, $curTTL ) );
+               $this->assertEquals( $value, $this->cache->get( $key, $curTTL, [], $asOf ) );
                if ( is_infinite( $ttl ) || $ttl == 0 ) {
                        $this->assertTrue( is_infinite( $curTTL ), "Current TTL is infinite" );
                } else {
                        $this->assertGreaterThan( 0, $curTTL, "Current TTL > 0" );
                        $this->assertLessThanOrEqual( $ttl, $curTTL, "Current TTL < nominal TTL" );
                }
+               $this->assertGreaterThanOrEqual( $t - 1, $asOf, "As-of-time in range of set() time" );
+               $this->assertLessThanOrEqual( $t + 1, $asOf, "As-of-time in range of set() time" );
        }
 
        public static function provideSetAndGet() {
@@ -97,10 +106,13 @@ class WANObjectCacheTest extends MediaWikiTestCase {
        }
 
        /**
+        * @dataProvider getWithSetCallback_provider
         * @covers WANObjectCache::getWithSetCallback()
         * @covers WANObjectCache::doGetWithSetCallback()
+        * @param array $extOpts
+        * @param bool $versioned
         */
-       public function testGetWithSetCallback() {
+       public function testGetWithSetCallback( array $extOpts, $versioned ) {
                $cache = $this->cache;
 
                $key = wfRandomString();
@@ -116,7 +128,7 @@ class WANObjectCacheTest extends MediaWikiTestCase {
                };
 
                $wasSet = 0;
-               $v = $cache->getWithSetCallback( $key, 30, $func, [ 'lockTSE' => 5 ] );
+               $v = $cache->getWithSetCallback( $key, 30, $func, [ 'lockTSE' => 5 ] + $extOpts );
                $this->assertEquals( $value, $v, "Value returned" );
                $this->assertEquals( 1, $wasSet, "Value regenerated" );
 
@@ -129,15 +141,16 @@ class WANObjectCacheTest extends MediaWikiTestCase {
                $v = $cache->getWithSetCallback( $key, 30, $func, [
                        'lowTTL' => 0,
                        'lockTSE' => 5,
-               ] );
+               ] + $extOpts );
                $this->assertEquals( $value, $v, "Value returned" );
                $this->assertEquals( 0, $wasSet, "Value not regenerated" );
 
                $priorTime = microtime( true );
                usleep( 1 );
                $wasSet = 0;
-               $v = $cache->getWithSetCallback( $key, 30, $func,
-                       [ 'checkKeys' => [ $cKey1, $cKey2 ] ] );
+               $v = $cache->getWithSetCallback(
+                       $key, 30, $func, [ 'checkKeys' => [ $cKey1, $cKey2 ] ] + $extOpts
+               );
                $this->assertEquals( $value, $v, "Value returned" );
                $this->assertEquals( 1, $wasSet, "Value regenerated due to check keys" );
                $t1 = $cache->getCheckKeyTime( $cKey1 );
@@ -147,8 +160,9 @@ class WANObjectCacheTest extends MediaWikiTestCase {
 
                $priorTime = microtime( true );
                $wasSet = 0;
-               $v = $cache->getWithSetCallback( $key, 30, $func,
-                       [ 'checkKeys' => [ $cKey1, $cKey2 ] ] );
+               $v = $cache->getWithSetCallback(
+                       $key, 30, $func, [ 'checkKeys' => [ $cKey1, $cKey2 ] ] + $extOpts
+               );
                $this->assertEquals( $value, $v, "Value returned" );
                $this->assertEquals( 1, $wasSet, "Value regenerated due to still-recent check keys" );
                $t1 = $cache->getCheckKeyTime( $cKey1 );
@@ -158,19 +172,30 @@ class WANObjectCacheTest extends MediaWikiTestCase {
 
                $curTTL = null;
                $v = $cache->get( $key, $curTTL, [ $cKey1, $cKey2 ] );
-               $this->assertEquals( $value, $v, "Value returned" );
+               if ( $versioned ) {
+                       $this->assertEquals( $value, $v[$cache::VFLD_DATA], "Value returned" );
+               } else {
+                       $this->assertEquals( $value, $v, "Value returned" );
+               }
                $this->assertLessThanOrEqual( 0, $curTTL, "Value has current TTL < 0 due to check keys" );
 
                $wasSet = 0;
                $key = wfRandomString();
-               $v = $cache->getWithSetCallback( $key, 30, $func, [ 'pcTTL' => 5 ] );
+               $v = $cache->getWithSetCallback( $key, 30, $func, [ 'pcTTL' => 5 ] + $extOpts );
                $this->assertEquals( $value, $v, "Value returned" );
                $cache->delete( $key );
-               $v = $cache->getWithSetCallback( $key, 30, $func, [ 'pcTTL' => 5 ] );
+               $v = $cache->getWithSetCallback( $key, 30, $func, [ 'pcTTL' => 5 ] + $extOpts );
                $this->assertEquals( $value, $v, "Value still returned after deleted" );
                $this->assertEquals( 1, $wasSet, "Value process cached while deleted" );
        }
 
+       public static function getWithSetCallback_provider() {
+               return [
+                       [ [], false ],
+                       [ [ 'version' => 1 ], true ]
+               ];
+       }
+
        /**
         * @covers WANObjectCache::getWithSetCallback()
         * @covers WANObjectCache::doGetWithSetCallback()
@@ -192,9 +217,23 @@ class WANObjectCacheTest extends MediaWikiTestCase {
 
                // Acquire a lock to verify that getWithSetCallback uses lockTSE properly
                $this->internalCache->lock( $key, 0 );
-               $ret = $cache->getWithSetCallback( $key, 30, $func, [ 'lockTSE' => 5 ] );
+
+               $checkKeys = [ wfRandomString() ]; // new check keys => force misses
+               $ret = $cache->getWithSetCallback( $key, 30, $func,
+                       [ 'lockTSE' => 5, 'checkKeys' => $checkKeys ] );
                $this->assertEquals( $value, $ret );
                $this->assertEquals( 1, $calls, 'Callback was not used' );
+
+               $cache->delete( $key );
+               $ret = $cache->getWithSetCallback( $key, 30, $func,
+                       [ 'lockTSE' => 5, 'checkKeys' => $checkKeys ] ); // should use interim value
+               $this->assertEquals( $value, $ret );
+               $this->assertEquals( 2, $calls, 'Callback was used' );
+
+               $ret = $cache->getWithSetCallback( $key, 30, $func,
+                       [ 'lockTSE' => 5, 'checkKeys' => $checkKeys ] );
+               $this->assertEquals( $value, $ret );
+               $this->assertEquals( 2, $calls, 'Callback was not used; used interim' );
        }
 
        /**
@@ -434,6 +473,71 @@ class WANObjectCacheTest extends MediaWikiTestCase {
                $this->assertGreaterThan( 0, $curTTL, "Existing key has current TTL > 0" );
        }
 
+       /**
+        * @dataProvider getWithSetCallback_versions_provider
+        * @param array $extOpts
+        * @param $versioned
+        */
+       public function testGetWithSetCallback_versions( array $extOpts, $versioned ) {
+               $cache = $this->cache;
+
+               $key = wfRandomString();
+               $value = wfRandomString();
+
+               $wasSet = 0;
+               $func = function( $old, &$ttl ) use ( &$wasSet, $value ) {
+                       ++$wasSet;
+                       return $value;
+               };
+
+               // Set the main key (version N if versioned)
+               $wasSet = 0;
+               $v = $cache->getWithSetCallback( $key, 30, $func, $extOpts );
+               $this->assertEquals( $value, $v, "Value returned" );
+               $this->assertEquals( 1, $wasSet, "Value regenerated" );
+               $cache->getWithSetCallback( $key, 30, $func, $extOpts );
+               $this->assertEquals( 1, $wasSet, "Value not regenerated" );
+               // Set the key for version N+1 (if versioned)
+               if ( $versioned ) {
+                       $verOpts = [ 'version' => $extOpts['version'] + 1 ];
+
+                       $wasSet = 0;
+                       $v = $cache->getWithSetCallback( $key, 30, $func, $verOpts + $extOpts );
+                       $this->assertEquals( $value, $v, "Value returned" );
+                       $this->assertEquals( 1, $wasSet, "Value regenerated" );
+
+                       $wasSet = 0;
+                       $v = $cache->getWithSetCallback( $key, 30, $func, $verOpts + $extOpts );
+                       $this->assertEquals( $value, $v, "Value returned" );
+                       $this->assertEquals( 0, $wasSet, "Value not regenerated" );
+               }
+
+               $wasSet = 0;
+               $cache->getWithSetCallback( $key, 30, $func, $extOpts );
+               $this->assertEquals( 0, $wasSet, "Value not regenerated" );
+
+               $wasSet = 0;
+               $cache->delete( $key );
+               $v = $cache->getWithSetCallback( $key, 30, $func, $extOpts );
+               $this->assertEquals( $value, $v, "Value returned" );
+               $this->assertEquals( 1, $wasSet, "Value regenerated" );
+
+               if ( $versioned ) {
+                       $wasSet = 0;
+                       $verOpts = [ 'version' => $extOpts['version'] + 1 ];
+                       $v = $cache->getWithSetCallback( $key, 30, $func, $verOpts + $extOpts );
+                       $this->assertEquals( $value, $v, "Value returned" );
+                       $this->assertEquals( 1, $wasSet, "Value regenerated" );
+               }
+       }
+
+       public static function getWithSetCallback_versions_provider() {
+               return [
+                       [ [], false ],
+                       [ [ 'version' => 1 ], true ]
+               ];
+       }
+
        /**
         * @covers WANObjectCache::touchCheckKey()
         * @covers WANObjectCache::resetCheckKey()
index 1f7beb3..bf12f80 100644 (file)
@@ -5,7 +5,7 @@ use MediaWiki\Linker\LinkRendererFactory;
 use MediaWiki\MediaWikiServices;
 
 /**
- * @covers LinkRendererFactory
+ * @covers MediaWiki\Linker\LinkRendererFactory
  */
 class LinkRendererFactoryTest extends MediaWikiLangTestCase {
 
index 48949b6..91789c5 100644 (file)
@@ -5,7 +5,7 @@ use MediaWiki\Linker\LinkRendererFactory;
 use MediaWiki\MediaWikiServices;
 
 /**
- * @covers LinkRenderer
+ * @covers MediaWiki\Linker\LinkRenderer
  */
 class LinkRendererTest extends MediaWikiLangTestCase {
 
diff --git a/tests/phpunit/includes/objectcache/RESTBagOStuffTest.php b/tests/phpunit/includes/objectcache/RESTBagOStuffTest.php
new file mode 100644 (file)
index 0000000..ebeb109
--- /dev/null
@@ -0,0 +1,88 @@
+<?php
+/**
+ * @group BagOStuff
+ */
+class RESTBagOStuffTest extends MediaWikiTestCase {
+
+       /**
+        * @var MultiHttpClient
+        */
+       private $client;
+       /**
+        * @var RESTBagOStuff
+        */
+       private $bag;
+
+       public function setUp() {
+               parent::setUp();
+               $this->client =
+                       $this->getMockBuilder( 'MultiHttpClient' )
+                               ->setConstructorArgs( [ [] ] )
+                               ->setMethods( [ 'run' ] )
+                               ->getMock();
+               $this->bag = new RESTBagOStuff( [ 'client' => $this->client, 'url' => 'http://test/rest/' ] );
+       }
+
+       public function testGet() {
+               $this->client->expects( $this->once() )->method( 'run' )->with( [
+                       'method' => 'GET',
+                       'url' => 'http://test/rest/42xyz42'
+                   // list( $rcode, $rdesc, $rhdrs, $rbody, $rerr )
+               ] )->willReturn( [ 200, 'OK', [], 's:8:"somedata";', 0 ] );
+               $result = $this->bag->get( '42xyz42' );
+               $this->assertEquals( 'somedata', $result );
+       }
+
+       public function testGetNotExist() {
+               $this->client->expects( $this->once() )->method( 'run' )->with( [
+                       'method' => 'GET',
+                       'url' => 'http://test/rest/42xyz42'
+                       // list( $rcode, $rdesc, $rhdrs, $rbody, $rerr )
+               ] )->willReturn( [ 404, 'Not found', [], 'Nothing to see here', 0 ] );
+               $result = $this->bag->get( '42xyz42' );
+               $this->assertFalse( $result );
+       }
+
+       public function testGetBadClient() {
+               $this->client->expects( $this->once() )->method( 'run' )->with( [
+                       'method' => 'GET',
+                       'url' => 'http://test/rest/42xyz42'
+                       // list( $rcode, $rdesc, $rhdrs, $rbody, $rerr )
+               ] )->willReturn( [ 0, '', [], '', 'cURL has failed you today' ] );
+               $result = $this->bag->get( '42xyz42' );
+               $this->assertFalse( $result );
+               $this->assertEquals( BagOStuff::ERR_UNREACHABLE, $this->bag->getLastError() );
+       }
+
+       public function testGetBadServer() {
+               $this->client->expects( $this->once() )->method( 'run' )->with( [
+                       'method' => 'GET',
+                       'url' => 'http://test/rest/42xyz42'
+                       // list( $rcode, $rdesc, $rhdrs, $rbody, $rerr )
+               ] )->willReturn( [ 500, 'Too busy', [], 'Server is too busy', '' ] );
+               $result = $this->bag->get( '42xyz42' );
+               $this->assertFalse( $result );
+               $this->assertEquals( BagOStuff::ERR_UNEXPECTED, $this->bag->getLastError() );
+       }
+
+       public function testPut() {
+               $this->client->expects( $this->once() )->method( 'run' )->with( [
+                       'method' => 'PUT',
+                       'url' => 'http://test/rest/42xyz42',
+                   'body' => 's:8:"postdata";'
+                       // list( $rcode, $rdesc, $rhdrs, $rbody, $rerr )
+               ] )->willReturn( [ 200, 'OK', [], 'Done', 0 ] );
+               $result = $this->bag->set( '42xyz42', 'postdata' );
+               $this->assertTrue( $result );
+       }
+
+       public function testDelete() {
+               $this->client->expects( $this->once() )->method( 'run' )->with( [
+                       'method' => 'DELETE',
+                       'url' => 'http://test/rest/42xyz42',
+                       // list( $rcode, $rdesc, $rhdrs, $rbody, $rerr )
+               ] )->willReturn( [ 200, 'OK', [], 'Done', 0 ] );
+               $result = $this->bag->delete( '42xyz42' );
+               $this->assertTrue( $result );
+       }
+}
index c024555..c56626f 100644 (file)
@@ -94,7 +94,7 @@ class NewParserTest extends MediaWikiTestCase {
                $tmpGlobals['wgParserCacheType'] = CACHE_NONE;
                $tmpGlobals['wgCapitalLinks'] = true;
                $tmpGlobals['wgNoFollowLinks'] = true;
-               $tmpGlobals['wgNoFollowDomainExceptions'] = [];
+               $tmpGlobals['wgNoFollowDomainExceptions'] = [ 'no-nofollow.org' ];
                $tmpGlobals['wgExternalLinkTarget'] = false;
                $tmpGlobals['wgThumbnailScriptPath'] = false;
                $tmpGlobals['wgUseImageResize'] = true;
@@ -163,12 +163,8 @@ class NewParserTest extends MediaWikiTestCase {
                $this->djVuSupport = new DjVuSupport();
                // Tidy support
                $this->tidySupport = new TidySupport();
-               $tmpGlobals['wgTidyConfig'] = null;
+               $tmpGlobals['wgTidyConfig'] = $this->tidySupport->getConfig();
                $tmpGlobals['wgUseTidy'] = false;
-               $tmpGlobals['wgDebugTidy'] = false;
-               $tmpGlobals['wgTidyConf'] = $IP . '/includes/tidy/tidy.conf';
-               $tmpGlobals['wgTidyOpts'] = '';
-               $tmpGlobals['wgTidyInternal'] = $this->tidySupport->isInternal();
 
                $this->setMwGlobals( $tmpGlobals );
 
@@ -324,7 +320,21 @@ class NewParserTest extends MediaWikiTestCase {
                        ], $this->db->timestamp( '20010115123500' ), $user );
                }
 
-               # A DjVu file
+               $image = wfLocalFile( Title::makeTitle( NS_FILE, 'Audio.oga' ) );
+               if ( !$this->db->selectField( 'image', '1', [ 'img_name' => $image->getName() ] ) ) {
+                       $image->recordUpload2( '', 'An awesome hitsong ', 'Will it play', [
+                                       'size'        => 12345,
+                                       'width'       => 0,
+                                       'height'      => 0,
+                                       'bits'        => 0,
+                                       'media_type'  => MEDIATYPE_AUDIO,
+                                       'mime'        => 'application/ogg',
+                                       'metadata'    => serialize( [] ),
+                                       'sha1'        => Wikimedia\base_convert( '', 16, 36, 32 ),
+                                       'fileExists'  => true
+                       ], $this->db->timestamp( '20010115123500' ), $user );
+               }
+
                # A DjVu file
                $image = wfLocalFile( Title::makeTitle( NS_FILE, 'LoremIpsum.djvu' ) );
                if ( !$this->db->selectField( 'image', '1', [ 'img_name' => $image->getName() ] ) ) {
@@ -438,7 +448,8 @@ class NewParserTest extends MediaWikiTestCase {
                        'wgMathDirectory' => $uploadDir . '/math',
                        'wgDefaultLanguageVariant' => $variant,
                        'wgLinkHolderBatchSize' => $linkHolderBatchSize,
-                       'wgUseTidy' => isset( $opts['tidy'] ),
+                       'wgUseTidy' => false,
+                       'wgTidyConfig' => isset( $opts['tidy'] ) ? $this->tidySupport->getConfig() : null
                ];
 
                if ( $config ) {
diff --git a/tests/phpunit/includes/phpunit/ConsecutiveParametersMatcher.php b/tests/phpunit/includes/phpunit/ConsecutiveParametersMatcher.php
deleted file mode 100644 (file)
index 8de467f..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-<?php
-// @codingStandardsIgnoreFile
-/*
- * This file is part of the PHPUnit_MockObject package.
- *
- * (c) Sebastian Bergmann <sebastian@phpunit.de>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- * Invocation matcher which looks for sets of specific parameters in the invocations.
- *
- * Checks the parameters of the incoming invocations, the parameter list is
- * checked against the defined constraints in $parameters. If the constraint
- * is met it will return true in matches().
- *
- * It takes a list of match groups and and increases a call index after each invocation.
- * So the first invocation uses the first group of constraints, the second the next and so on.
- */
-class PHPUnit_Framework_MockObject_Matcher_ConsecutiveParameters extends PHPUnit_Framework_MockObject_Matcher_StatelessInvocation
-{
-    /**
-     * @var array
-     */
-    private $_parameterGroups = array();
-
-    /**
-     * @var array
-     */
-    private $_invocations = array();
-
-    /**
-     * @param array $parameterGroups
-     */
-    public function __construct(array $parameterGroups)
-    {
-        foreach ($parameterGroups as $index => $parameters) {
-            foreach ($parameters as $parameter) {
-                if (!($parameter instanceof \PHPUnit_Framework_Constraint)) {
-                    $parameter = new \PHPUnit_Framework_Constraint_IsEqual($parameter);
-                }
-                $this->_parameterGroups[$index][] = $parameter;
-            }
-        }
-    }
-
-    /**
-     * @return string
-     */
-    public function toString()
-    {
-        $text = 'with consecutive parameters';
-
-        return $text;
-    }
-
-    /**
-     * @param  PHPUnit_Framework_MockObject_Invocation $invocation
-     * @return bool
-     */
-    public function matches(PHPUnit_Framework_MockObject_Invocation $invocation)
-    {
-        $this->_invocations[] = $invocation;
-        $callIndex            = count($this->_invocations) - 1;
-        $this->verifyInvocation($invocation, $callIndex);
-
-        return false;
-    }
-
-    public function verify()
-    {
-        foreach ($this->_invocations as $callIndex => $invocation) {
-            $this->verifyInvocation($invocation, $callIndex);
-        }
-    }
-
-    /**
-     * Verify a single invocation
-     *
-     * @param  PHPUnit_Framework_MockObject_Invocation      $invocation
-     * @param  int                                          $callIndex
-     * @throws PHPUnit_Framework_ExpectationFailedException
-     */
-    private function verifyInvocation(PHPUnit_Framework_MockObject_Invocation $invocation, $callIndex)
-    {
-
-        if (isset($this->_parameterGroups[$callIndex])) {
-            $parameters = $this->_parameterGroups[$callIndex];
-        } else {
-          // no parameter assertion for this call index
-            return;
-        }
-
-        if ($invocation === null) {
-            throw new PHPUnit_Framework_ExpectationFailedException(
-                'Mocked method does not exist.'
-            );
-        }
-
-        if (count($invocation->parameters) < count($parameters)) {
-            throw new PHPUnit_Framework_ExpectationFailedException(
-                sprintf(
-                    'Parameter count for invocation %s is too low.',
-                    $invocation->toString()
-                )
-            );
-        }
-
-        foreach ($parameters as $i => $parameter) {
-            $parameter->evaluate(
-                $invocation->parameters[$i],
-                sprintf(
-                    'Parameter %s for invocation #%d %s does not match expected ' .
-                    'value.',
-                    $i,
-                    $callIndex,
-                    $invocation->toString()
-                )
-            );
-        }
-    }
-}
diff --git a/tests/phpunit/includes/phpunit/LICENSE b/tests/phpunit/includes/phpunit/LICENSE
deleted file mode 100644 (file)
index fe178b0..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-PHPUnit
-
-Copyright (c) 2001-2014, Sebastian Bergmann <sebastian@phpunit.de>.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
- * Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in
-   the documentation and/or other materials provided with the
-   distribution.
-
- * Neither the name of Sebastian Bergmann nor the names of his
-   contributors may be used to endorse or promote products derived
-   from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
diff --git a/tests/phpunit/includes/phpunit/README b/tests/phpunit/includes/phpunit/README
deleted file mode 100644 (file)
index 3ec3fd9..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-This directory contains classes duplicated from new versions of phpunit
-that also work in the older php 3.7.37 used by wmf CI servers.
index 4aa4f41..1dfcd82 100644 (file)
@@ -14,7 +14,7 @@ class CoreVersionCheckerTest extends PHPUnit_Framework_TestCase {
 
        public static function provideCheck() {
                return [
-                       // array( $wgVersion, constraint, expected )
+                       // [ $wgVersion, constraint, expected ]
                        [ '1.25alpha', '>= 1.26', false ],
                        [ '1.25.0', '>= 1.26', false ],
                        [ '1.26alpha', '>= 1.26', true ],
index 0120d79..ea86535 100644 (file)
@@ -414,6 +414,26 @@ class ExtensionProcessorTest extends MediaWikiTestCase {
                        ]
                ];
        }
+
+       public function testGlobalSettingsDocumentedInSchema() {
+               global $IP;
+               $globalSettings = TestingAccessWrapper::newFromClass(
+                       ExtensionProcessor::class )->globalSettings;
+
+               $schema = FormatJson::decode(
+                       file_get_contents( "$IP/docs/extension.schema.json" ),
+                       true
+               );
+               $missing = [];
+               foreach ( $globalSettings as $global ) {
+                       if ( !isset( $schema['properties'][$global] ) ) {
+                               $missing[] = $global;
+                       }
+               }
+
+               $this->assertEquals( [], $missing,
+                       "The following global settings are not documented in docs/extension.schema.json" );
+       }
 }
 
 /**
index 90d8e9f..2dec02b 100644 (file)
@@ -226,4 +226,24 @@ class ResourceLoaderFileModuleTest extends ResourceLoaderTestCase {
 
                $this->assertEquals( $rl->getTemplates(), $expected );
        }
+
+       public function testBomConcatenation() {
+               $basePath = __DIR__ . '/../../data/css';
+               $testModule = new ResourceLoaderFileModule( [
+                       'localBasePath' => $basePath,
+                       'styles' => [ 'bom.css' ],
+                       ] );
+               $this->assertEquals(
+                       substr( file_get_contents( "$basePath/bom.css" ), 0, 10 ),
+                       "\xef\xbb\xbf.efbbbf",
+                       'File has leading BOM'
+               );
+
+               $contextLtr = $this->getResourceLoaderContext( 'en', 'ltr' );
+               $this->assertEquals(
+                       $testModule->getStyles( $contextLtr ),
+                       [ 'all' => ".efbbbf_bom_char_at_start_of_file {}\n" ],
+                       'Leading BOM removed when concatenating files'
+               );
+       }
 }
index 72ea495..9b62b82 100644 (file)
@@ -5,7 +5,7 @@ class ResourceLoaderStartUpModuleTest extends ResourceLoaderTestCase {
        // Version hash for a blank file module.
        // Result of ResourceLoader::makeHash(), ResourceLoaderTestModule
        // and ResourceLoaderFileModule::getDefinitionSummary().
-       protected static $blankVersion = 'GqV9IPpY';
+       protected static $blankVersion = '09p30q0';
 
        protected static function expandPlaceholders( $text ) {
                return strtr( $text, [
index 055e982..f084c64 100644 (file)
@@ -50,6 +50,10 @@ class SearchEngineTest extends MediaWikiLangTestCase {
                        return;
                }
 
+               // Reset the search type back to default - some extensions may have
+               // overridden it.
+               $this->setMwGlobals( [ 'wgSearchType' => null ] );
+
                $this->insertPage( 'Not_Main_Page', 'This is not a main page' );
                $this->insertPage(
                        'Talk:Not_Main_Page',
@@ -153,4 +157,49 @@ class SearchEngineTest extends MediaWikiLangTestCase {
                        "Title power search failed" );
        }
 
+       /**
+        * @covers SearchEngine::getSearchIndexFields
+        */
+       public function testSearchIndexFields() {
+               /**
+                * @var $mockEngine SearchEngine
+                */
+               $mockEngine = $this->getMock( 'SearchEngine', [ 'makeSearchFieldMapping' ] );
+
+               $mockFieldBuilder = function ( $name, $type ) {
+                       $mockField =
+                               $this->getMockBuilder( 'SearchIndexFieldDefinition' )->setConstructorArgs( [
+                                       $name,
+                                       $type
+                               ] )->getMock();
+                       $mockField->expects( $this->any() )->method( 'getMapping' )->willReturn( [
+                               'testData' => 'test',
+                               'name' => $name,
+                               'type' => $type,
+                       ] );
+                       return $mockField;
+               };
+
+               $mockEngine->expects( $this->atLeastOnce() )
+                       ->method( 'makeSearchFieldMapping' )
+                       ->willReturnCallback( $mockFieldBuilder );
+
+               // Not using mock since PHPUnit mocks do not work properly with references in params
+               $this->mergeMwGlobalArrayValue( 'wgHooks',
+                       [ 'SearchIndexFields' => [ [ $this, 'hookSearchIndexFields', $mockFieldBuilder ] ] ] );
+
+               $fields = $mockEngine->getSearchIndexFields();
+               $this->assertArrayHasKey( 'language', $fields );
+               $this->assertArrayHasKey( 'category', $fields );
+               $this->assertInstanceOf( 'SearchIndexField', $fields['testField'] );
+
+               $mapping = $fields['testField']->getMapping( $mockEngine );
+               $this->assertArrayHasKey( 'testData', $mapping );
+               $this->assertEquals( 'test', $mapping['testData'] );
+       }
+
+       public function hookSearchIndexFields( $mockFieldBuilder, &$fields, SearchEngine $engine ) {
+               $fields['testField'] = $mockFieldBuilder( "testField", SearchIndexField::INDEX_TYPE_TEXT );
+               return true;
+       }
 }
diff --git a/tests/phpunit/includes/search/SearchIndexFieldTest.php b/tests/phpunit/includes/search/SearchIndexFieldTest.php
new file mode 100644 (file)
index 0000000..ec046a7
--- /dev/null
@@ -0,0 +1,39 @@
+<?php
+
+/**
+ * @group Search
+ * @covers SearchIndexFieldDefinition
+ */
+class SearchIndexFieldTest extends MediaWikiTestCase {
+
+       public function getMergeCases() {
+               return [
+                       [ 0, 'test', 0, 'test', true ],
+                       [ SearchIndexField::INDEX_TYPE_NESTED, 'test',
+                         SearchIndexField::INDEX_TYPE_NESTED, 'test', false ],
+                       [ 0, 'test', 0, 'test2', true ],
+                       [ 0, 'test', 1, 'test', false ],
+               ];
+       }
+
+       /**
+        * @dataProvider getMergeCases
+        */
+       public function testMerge( $t1, $n1, $t2, $n2, $result ) {
+               $field1 = $this->getMockBuilder( 'SearchIndexFieldDefinition' )
+                       ->setMethods( [ 'getMapping' ] )
+                       ->setConstructorArgs( [ $n1, $t1 ] )->getMock();
+               $field2 = $this->getMockBuilder( 'SearchIndexFieldDefinition' )
+                       ->setMethods( [ 'getMapping' ] )
+                       ->setConstructorArgs( [ $n2, $t2 ] )->getMock();
+
+               if ( $result ) {
+                       $this->assertNotFalse( $field1->merge( $field2 ) );
+               } else {
+                       $this->assertFalse( $field1->merge( $field2 ) );
+               }
+
+               $field1->setFlag( 0xFF );
+               $this->assertFalse( $field1->merge( $field2 ) );
+       }
+}
index b35b685..da4b06e 100644 (file)
@@ -22,7 +22,6 @@ class CookieSessionProviderTest extends MediaWikiTestCase {
                        'CookieHttpOnly' => true,
                        'SessionName' => false,
                        'CookieExpiration' => 100,
-                       'ExtendedLoginCookies' => [ 'UserID', 'Token' ],
                        'ExtendedLoginCookieExpiration' => 200,
                ] );
        }
@@ -148,6 +147,14 @@ class CookieSessionProviderTest extends MediaWikiTestCase {
                $this->assertTrue( $provider->persistsSessionId() );
                $this->assertTrue( $provider->canChangeUser() );
 
+               $extendedCookies = [ 'UserID', 'UserName', 'Token' ];
+
+               $this->assertEquals(
+                       $extendedCookies,
+                       \TestingAccessWrapper::newFromObject( $provider )->getExtendedLoginCookies(),
+                       'List of extended cookies (subclasses can add values, but we\'re calling the core one here)'
+               );
+
                $msg = $provider->whyNoSession();
                $this->assertInstanceOf( 'Message', $msg );
                $this->assertSame( 'sessionprovider-nocookies', $msg->getKey() );
@@ -506,10 +513,10 @@ class CookieSessionProviderTest extends MediaWikiTestCase {
                        'httpOnly' => $config->get( 'CookieHttpOnly' ),
                        'raw' => false,
                ];
+
+               $normalExpiry = $config->get( 'CookieExpiration' );
                $extendedExpiry = $config->get( 'ExtendedLoginCookieExpiration' );
                $extendedExpiry = (int)( $extendedExpiry === null ? 0 : $extendedExpiry );
-               $this->assertEquals( [ 'UserID', 'Token' ], $config->get( 'ExtendedLoginCookies' ),
-                       'sanity check' );
                $expect = [
                        'MySessionName' => [
                                'value' => (string)$sessionId,
@@ -517,10 +524,11 @@ class CookieSessionProviderTest extends MediaWikiTestCase {
                        ] + $defaults,
                        'xUserID' => [
                                'value' => (string)$user->getId(),
-                               'expire' => $extendedExpiry,
+                               'expire' => $remember ? $extendedExpiry : $normalExpiry,
                        ] + $defaults,
                        'xUserName' => [
                                'value' => $user->getName(),
+                               'expire' => $remember ? $extendedExpiry : $normalExpiry
                        ] + $defaults,
                        'xToken' => [
                                'value' => $remember ? $user->getToken() : '',
@@ -807,12 +815,20 @@ class CookieSessionProviderTest extends MediaWikiTestCase {
                $provider->setConfig( $config );
                $provider->setManager( SessionManager::singleton() );
 
-               $this->assertSame( 200, $provider->getLoginCookieExpiration( 'Token' ) );
-               $this->assertSame( 100, $provider->getLoginCookieExpiration( 'User' ) );
+               // First cookie is an extended cookie, remember me true
+               $this->assertSame( 200, $provider->getLoginCookieExpiration( 'Token', true ) );
+               $this->assertSame( 100, $provider->getLoginCookieExpiration( 'User', true ) );
+
+               // First cookie is an extended cookie, remember me false
+               $this->assertSame( 100, $provider->getLoginCookieExpiration( 'UserID', false ) );
+               $this->assertSame( 100, $provider->getLoginCookieExpiration( 'User', false ) );
 
                $config->set( 'ExtendedLoginCookieExpiration', null );
 
-               $this->assertSame( 100, $provider->getLoginCookieExpiration( 'Token' ) );
-               $this->assertSame( 100, $provider->getLoginCookieExpiration( 'User' ) );
+               $this->assertSame( 100, $provider->getLoginCookieExpiration( 'Token', true ) );
+               $this->assertSame( 100, $provider->getLoginCookieExpiration( 'User', true ) );
+
+               $this->assertSame( 100, $provider->getLoginCookieExpiration( 'Token', false ) );
+               $this->assertSame( 100, $provider->getLoginCookieExpiration( 'User', false ) );
        }
 }
index ce0f1b0..799a97b 100644 (file)
@@ -173,14 +173,6 @@ class PHPSessionHandlerTest extends MediaWikiTestCase {
                        $this->assertSame( $expect, $_SESSION );
                }
 
-               // Test expiry
-               session_write_close();
-               ini_set( 'session.gc_divisor', 1 );
-               ini_set( 'session.gc_probability', 1 );
-               sleep( 3 );
-               session_start();
-               $this->assertSame( [], $_SESSION );
-
                // Re-fill the session, then test that session_destroy() works.
                $_SESSION['AuthenticationSessionTest'] = $rand;
                session_write_close();
index 3f67b2b..64cdbaa 100644 (file)
@@ -29,36 +29,15 @@ use MediaWiki\Site\MediaWikiPageNameNormalizer;
  */
 class MediaWikiPageNameNormalizerTest extends PHPUnit_Framework_TestCase {
 
-       protected function setUp() {
-               parent::setUp();
-
-               static $connectivity = null;
-
-               if ( $connectivity === null ) {
-                       // Check whether we have (reasonable fast) connectivity
-                       $res = Http::get(
-                               'https://www.wikidata.org/w/api.php?action=query&meta=siteinfo&format=json',
-                               [ 'timeout' => 3 ],
-                               __METHOD__
-                       );
-
-                       if ( $res === false || strpos( $res, '"sitename":"Wikidata"' ) === false ) {
-                               $connectivity = false;
-                       } else {
-                               $connectivity = true;
-                       }
-               }
-
-               if ( !$connectivity ) {
-                       $this->markTestSkipped( 'MediaWikiPageNameNormalizerTest needs internet connectivity.' );
-               }
-       }
-
        /**
         * @dataProvider normalizePageTitleProvider
         */
-       public function testNormalizePageTitle( $expected, $pageName ) {
-               $normalizer = new MediaWikiPageNameNormalizer();
+       public function testNormalizePageTitle( $expected, $pageName, $getResponse ) {
+               MediaWikiPageNameNormalizerTestMockHttp::$response = $getResponse;
+
+               $normalizer = new MediaWikiPageNameNormalizer(
+                       new MediaWikiPageNameNormalizerTestMockHttp()
+               );
 
                $this->assertSame(
                        $expected,
@@ -67,19 +46,70 @@ class MediaWikiPageNameNormalizerTest extends PHPUnit_Framework_TestCase {
        }
 
        public function normalizePageTitleProvider() {
-               // Note: This makes (very conservative) assumptions about pages on Wikidata
-               // existing or not.
+               // Response are taken from wikidata and kkwiki using the following API request
+               // api.php?action=query&prop=info&redirects=1&converttitles=1&format=json&titles=…
                return [
                        'universe (Q1)' => [
-                               'Q1', 'Q1'
+                               'Q1',
+                               'Q1',
+                               '{"batchcomplete":"","query":{"pages":{"129":{"pageid":129,"ns":0,'
+                               . '"title":"Q1","contentmodel":"wikibase-item","pagelanguage":"en",'
+                               . '"pagelanguagehtmlcode":"en","pagelanguagedir":"ltr",'
+                               . '"touched":"2016-06-23T05:11:21Z","lastrevid":350004448,"length":58001}}}}'
                        ],
                        'Q404 redirects to Q395' => [
-                               'Q395', 'Q404'
+                               'Q395',
+                               'Q404',
+                               '{"batchcomplete":"","query":{"redirects":[{"from":"Q404","to":"Q395"}],"pages"'
+                               . ':{"601":{"pageid":601,"ns":0,"title":"Q395","contentmodel":"wikibase-item",'
+                               . '"pagelanguage":"en","pagelanguagehtmlcode":"en","pagelanguagedir":"ltr",'
+                               . '"touched":"2016-06-23T08:00:20Z","lastrevid":350021914,"length":60108}}}}'
+                       ],
+                       'D converted to Д (Latin to Cyrillic) (taken from kkwiki)' => [
+                               'Д',
+                               'D',
+                               '{"batchcomplete":"","query":{"converted":[{"from":"D","to":"\u0414"}],'
+                               . '"pages":{"510541":{"pageid":510541,"ns":0,"title":"\u0414",'
+                               . '"contentmodel":"wikitext","pagelanguage":"kk","pagelanguagehtmlcode":"kk",'
+                               . '"pagelanguagedir":"ltr","touched":"2015-11-22T09:16:18Z",'
+                               . '"lastrevid":2373618,"length":3501}}}}'
                        ],
                        'there is no Q0' => [
-                               false, 'Q0'
-                       ]
+                               false,
+                               'Q0',
+                               '{"batchcomplete":"","query":{"pages":{"-1":{"ns":0,"title":"Q0",'
+                               . '"missing":"","contentmodel":"wikibase-item","pagelanguage":"en",'
+                               . '"pagelanguagehtmlcode":"en","pagelanguagedir":"ltr"}}}}'
+                       ],
+                       'invalid title' => [
+                               false,
+                               '{{',
+                               '{"batchcomplete":"","query":{"pages":{"-1":{"title":"{{",'
+                               . '"invalidreason":"The requested page title contains invalid '
+                               . 'characters: \"{\".","invalid":""}}}}'
+                       ],
+                       'error on get' => [ false, 'ABC', false ]
                ];
        }
 
 }
+
+/**
+ * @private
+ * @see Http
+ */
+class MediaWikiPageNameNormalizerTestMockHttp extends Http {
+
+       /**
+        * @var mixed
+        */
+       public static $response;
+
+       public static function get( $url, $options = [], $caller = __METHOD__ ) {
+               PHPUnit_Framework_Assert::assertInternalType( 'string', $url );
+               PHPUnit_Framework_Assert::assertInternalType( 'array', $options );
+               PHPUnit_Framework_Assert::assertInternalType( 'string', $caller );
+
+               return self::$response;
+       }
+}
index 4ea9686..3fa8a9f 100644 (file)
@@ -29,10 +29,10 @@ class SpecialSearchTest extends MediaWikiTestCase {
                        $this->newUserWithSearchNS( $userOptions )
                );
                /*
-               $context->setRequest( new FauxRequest( array(
+               $context->setRequest( new FauxRequest( [
                        'ns5'=>true,
                        'ns6'=>true,
-               ) ));
+               ] ));
                 */
                $context->setRequest( new FauxRequest( $requested ) );
                $search = new SpecialSearch();
diff --git a/tests/phpunit/includes/tidy/BalancerTest.php b/tests/phpunit/includes/tidy/BalancerTest.php
new file mode 100644 (file)
index 0000000..7b94e40
--- /dev/null
@@ -0,0 +1,148 @@
+<?php
+
+class BalancerTest extends MediaWikiTestCase {
+       private $balancer;
+
+       /**
+        * Anything that needs to happen before your tests should go here.
+        */
+       protected function setUp() {
+               // Be sure to do call the parent setup and teardown functions.
+               // This makes sure that all the various cleanup and restorations
+               // happen as they should (including the restoration for setMwGlobals).
+               parent::setUp();
+               $this->balancer = new MediaWiki\Tidy\Balancer( [
+                       'strict' => false, /* not strict */
+                       'allowedHtmlElements' => null, /* no sanitization */
+                       'tidyCompat' => false, /* standard parser */
+               ] );
+       }
+
+       /**
+        * Anything cleanup you need to do should go here.
+        */
+       protected function tearDown() {
+               parent::tearDown();
+       }
+
+       /**
+        * @covers Balancer::balance
+        * @dataProvider provideBalancerTests
+        */
+       public function testBalancer( $description, $input, $expected ) {
+               $output = $this->balancer->balance( $input );
+
+               // Ignore self-closing tags
+               $output = preg_replace( '/\s*\/>/', '>', $output );
+
+               $this->assertEquals( $expected, $output, $description );
+       }
+
+       public static function provideBalancerTests() {
+               // Get the tests from html5lib-tests.json
+               $json = json_decode( file_get_contents(
+                       __DIR__ . '/html5lib-tests.json'
+               ), true );
+               // Munge this slightly into the format phpunit expects
+               // for providers, and filter out HTML constructs which
+               // the balancer doesn't support.
+               $tests = [];
+               $start = '<html><head></head><body>';
+               $end = '</body></html>';
+               foreach ( $json as $filename => $cases ) {
+                       foreach ( $cases as $case ) {
+                               $html = $case['document']['html'];
+                               if (
+                                       substr( $html, 0, strlen( $start ) ) !== $start ||
+                                       substr( $html, -strlen( $end ) ) !== $end
+                               ) {
+                                       // Skip tests which involve stuff in the <head> or
+                                       // weird doctypes.
+                                       continue;
+                               }
+                               // We used to do this:
+                               //   $html = substr( $html, strlen( $start ), -strlen( $end ) );
+                               // But now we use a different field in the test case,
+                               // which reports how domino would parse this case in a
+                               // no-quirks <body> context.  (The original test case may
+                               // have had a different context, or relied on quirks mode.)
+                               $html = $case['document']['noQuirksBodyHtml'];
+                               // Normalize case of SVG attributes.
+                               $html = str_replace( 'foreignObject', 'foreignobject', $html );
+
+                               if ( isset( $case['document']['props']['comment'] ) ) {
+                                       // Skip tests which include HTML comments, which
+                                       // the balancer requires to have been stripped.
+                                       continue;
+                               }
+                               if ( strpos( $case['data'], '<![CDATA[' ) !== false ) {
+                                       // Skip tests involving <![CDATA[ ]]> quoting.
+                                       continue;
+                               }
+                               if ( stripos( $case['data'], '<!DOCTYPE' ) !== false ) {
+                                       // Skip tests involving doctypes.
+                                       continue;
+                               }
+                               if ( preg_match( ',</?(html|head|body|frame|plaintext)>|<rdar:,i', $case['data'] ) ) {
+                                       // Skip tests involving some literal tags, which are
+                                       // unsupported but don't show up in the expected output.
+                                       continue;
+                               }
+                               if (
+                                       isset( $case['document']['props']['tags']['form'] ) ||
+                                       isset( $case['document']['props']['tags']['iframe'] ) ||
+                                       isset( $case['document']['props']['tags']['noembed'] ) ||
+                                       isset( $case['document']['props']['tags']['noscript'] ) ||
+                                       isset( $case['document']['props']['tags']['script'] ) ||
+                                       isset( $case['document']['props']['tags']['select'] ) ||
+                                       isset( $case['document']['props']['tags']['svg script'] ) ||
+                                       isset( $case['document']['props']['tags']['svg title'] ) ||
+                                       isset( $case['document']['props']['tags']['textarea'] ) ||
+                                       isset( $case['document']['props']['tags']['title'] ) ||
+                                       isset( $case['document']['props']['tags']['xmp'] )
+                               ) {
+                                       // Skip tests with unsupported tags which *do* show
+                                       // up in the expected output.
+                                       continue;
+                               }
+                               if (
+                                       $filename === 'entities01.dat' ||
+                                       $filename === 'entities02.dat' ||
+                                       preg_match( '/&([a-z]+|#x[0-9A-F]+);/i', $case['data'] ) ||
+                                       preg_match( '/^(&|&#|&#X|&#x|&#45|&x-test|&AMP)$/', $case['data'] )
+                               ) {
+                                       // Skip tests involving entity encoding.
+                                       continue;
+                               }
+                               if (
+                                       isset( $case['document']['props']['tagWithLt'] ) ||
+                                       isset( $case['document']['props']['attrWithFunnyChar'] ) ||
+                                       preg_match( ':^(</b test|<di|<foo bar=qux/>)$:', $case['data'] ) ||
+                                       preg_match( ':</p<p>:', $case['data'] )
+                               ) {
+                                       // Skip tests with funny tag or attribute names,
+                                       // which are really tests of the HTML tokenizer, not
+                                       // the tree builder.
+                                       continue;
+                               }
+                               if (
+                                       stripos( $case['data'], 'encoding=" text/html "' ) !== false
+                               ) {
+                                       // The Sanitizer normalizes whitespace in attribute
+                                       // values, which makes this test case invalid.
+                                       continue;
+                               }
+                               if ( $filename === 'plain-text-unsafe.dat' ) {
+                                       // Skip tests with ASCII null, etc.
+                                       continue;
+                               }
+                               $tests[] = [
+                                       $filename, # use better description?
+                                       $case['data'],
+                                       $html
+                               ];
+                       }
+               }
+               return $tests;
+       }
+}
diff --git a/tests/phpunit/includes/tidy/html5lib-tests.json b/tests/phpunit/includes/tidy/html5lib-tests.json
new file mode 100644 (file)
index 0000000..beb3659
--- /dev/null
@@ -0,0 +1,78905 @@
+{
+  "adoption01.dat": [
+    {
+      "data": "<a><p></a></p>",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,10): adoption-agency-1.3"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "a": true,
+            "p": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "a"
+                  },
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "a"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><a></a><p><a></a></p></body></html>",
+        "noQuirksBodyHtml": "<a></a><p><a></a></p>"
+      }
+    },
+    {
+      "data": "<a>1<p>2</a>3</p>",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,12): adoption-agency-1.3"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "a": true,
+            "p": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "a",
+                    "children": [
+                      {
+                        "text": "1"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "a",
+                        "children": [
+                          {
+                            "text": "2"
+                          }
+                        ]
+                      },
+                      {
+                        "text": "3"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><a>1</a><p><a>2</a>3</p></body></html>",
+        "noQuirksBodyHtml": "<a>1</a><p><a>2</a>3</p>"
+      }
+    },
+    {
+      "data": "<a>1<button>2</a>3</button>",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,17): adoption-agency-1.3"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "a": true,
+            "button": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "a",
+                    "children": [
+                      {
+                        "text": "1"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "button",
+                    "children": [
+                      {
+                        "tag": "a",
+                        "children": [
+                          {
+                            "text": "2"
+                          }
+                        ]
+                      },
+                      {
+                        "text": "3"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><a>1</a><button><a>2</a>3</button></body></html>",
+        "noQuirksBodyHtml": "<a>1</a><button><a>2</a>3</button>"
+      }
+    },
+    {
+      "data": "<a>1<b>2</a>3</b>",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,12): adoption-agency-1.3"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "a": true,
+            "b": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "a",
+                    "children": [
+                      {
+                        "text": "1"
+                      },
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "text": "2"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "b",
+                    "children": [
+                      {
+                        "text": "3"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><a>1<b>2</b></a><b>3</b></body></html>",
+        "noQuirksBodyHtml": "<a>1<b>2</b></a><b>3</b>"
+      }
+    },
+    {
+      "data": "<a>1<div>2<div>3</a>4</div>5</div>",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,20): adoption-agency-1.3",
+        "(1,20): adoption-agency-1.3"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "a": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "a",
+                    "children": [
+                      {
+                        "text": "1"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "tag": "a",
+                        "children": [
+                          {
+                            "text": "2"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "div",
+                        "children": [
+                          {
+                            "tag": "a",
+                            "children": [
+                              {
+                                "text": "3"
+                              }
+                            ]
+                          },
+                          {
+                            "text": "4"
+                          }
+                        ]
+                      },
+                      {
+                        "text": "5"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><a>1</a><div><a>2</a><div><a>3</a>4</div>5</div></body></html>",
+        "noQuirksBodyHtml": "<a>1</a><div><a>2</a><div><a>3</a>4</div>5</div>"
+      }
+    },
+    {
+      "data": "<table><a>1<p>2</a>3</p>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,10): unexpected-start-tag-implies-table-voodoo",
+        "(1,11): unexpected-character-implies-table-voodoo",
+        "(1,14): unexpected-start-tag-implies-table-voodoo",
+        "(1,15): unexpected-character-implies-table-voodoo",
+        "(1,19): unexpected-end-tag-implies-table-voodoo",
+        "(1,19): adoption-agency-1.3",
+        "(1,20): unexpected-character-implies-table-voodoo",
+        "(1,24): unexpected-end-tag-implies-table-voodoo",
+        "(1,24): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "a": true,
+            "p": true,
+            "table": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "a",
+                    "children": [
+                      {
+                        "text": "1"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "a",
+                        "children": [
+                          {
+                            "text": "2"
+                          }
+                        ]
+                      },
+                      {
+                        "text": "3"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "table"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><a>1</a><p><a>2</a>3</p><table></table></body></html>",
+        "noQuirksBodyHtml": "<a>1</a><p><a>2</a>3</p><table></table>"
+      }
+    },
+    {
+      "data": "<b><b><a><p></a>",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,16): adoption-agency-1.3",
+        "(1,16): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "b": true,
+            "a": true,
+            "p": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "b",
+                    "children": [
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "tag": "a"
+                          },
+                          {
+                            "tag": "p",
+                            "children": [
+                              {
+                                "tag": "a"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><b><b><a></a><p><a></a></p></b></b></body></html>",
+        "noQuirksBodyHtml": "<b><b><a></a><p><a></a></p></b></b>"
+      }
+    },
+    {
+      "data": "<b><a><b><p></a>",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,16): adoption-agency-1.3",
+        "(1,16): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "b": true,
+            "a": true,
+            "p": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "b",
+                    "children": [
+                      {
+                        "tag": "a",
+                        "children": [
+                          {
+                            "tag": "b"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "tag": "p",
+                            "children": [
+                              {
+                                "tag": "a"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><b><a><b></b></a><b><p><a></a></p></b></b></body></html>",
+        "noQuirksBodyHtml": "<b><a><b></b></a><b><p><a></a></p></b></b>"
+      }
+    },
+    {
+      "data": "<a><b><b><p></a>",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,16): adoption-agency-1.3",
+        "(1,16): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "a": true,
+            "b": true,
+            "p": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "a",
+                    "children": [
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "tag": "b"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "b",
+                    "children": [
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "tag": "p",
+                            "children": [
+                              {
+                                "tag": "a"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><a><b><b></b></b></a><b><b><p><a></a></p></b></b></body></html>",
+        "noQuirksBodyHtml": "<a><b><b></b></b></a><b><b><p><a></a></p></b></b>"
+      }
+    },
+    {
+      "data": "<p>1<s id=\"A\">2<b id=\"B\">3</p>4</s>5</b>",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,30): unexpected-end-tag",
+        "(1,35): adoption-agency-1.3"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "s": true,
+            "b": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "text": "1"
+                      },
+                      {
+                        "tag": "s",
+                        "attrs": [
+                          {
+                            "name": "id",
+                            "value": "A"
+                          }
+                        ],
+                        "children": [
+                          {
+                            "text": "2"
+                          },
+                          {
+                            "tag": "b",
+                            "attrs": [
+                              {
+                                "name": "id",
+                                "value": "B"
+                              }
+                            ],
+                            "children": [
+                              {
+                                "text": "3"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "s",
+                    "attrs": [
+                      {
+                        "name": "id",
+                        "value": "A"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "tag": "b",
+                        "attrs": [
+                          {
+                            "name": "id",
+                            "value": "B"
+                          }
+                        ],
+                        "children": [
+                          {
+                            "text": "4"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "b",
+                    "attrs": [
+                      {
+                        "name": "id",
+                        "value": "B"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "5"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><p>1<s id=\"A\">2<b id=\"B\">3</b></s></p><s id=\"A\"><b id=\"B\">4</b></s><b id=\"B\">5</b></body></html>",
+        "noQuirksBodyHtml": "<p>1<s id=\"A\">2<b id=\"B\">3</b></s></p><s id=\"A\"><b id=\"B\">4</b></s><b id=\"B\">5</b>"
+      }
+    },
+    {
+      "data": "<table><a>1<td>2</td>3</table>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,10): unexpected-start-tag-implies-table-voodoo",
+        "(1,11): unexpected-character-implies-table-voodoo",
+        "(1,15): unexpected-cell-in-table-body",
+        "(1,30): unexpected-implied-end-tag-in-table-view"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "a": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "a",
+                    "children": [
+                      {
+                        "text": "1"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "a",
+                    "children": [
+                      {
+                        "text": "3"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td",
+                                "children": [
+                                  {
+                                    "text": "2"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><a>1</a><a>3</a><table><tbody><tr><td>2</td></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<a>1</a><a>3</a><table><tbody><tr><td>2</td></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<table>A<td>B</td>C</table>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,8): unexpected-character-implies-table-voodoo",
+        "(1,12): unexpected-cell-in-table-body",
+        "(1,22): unexpected-character-implies-table-voodoo"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "AC"
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td",
+                                "children": [
+                                  {
+                                    "text": "B"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>AC<table><tbody><tr><td>B</td></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "AC<table><tbody><tr><td>B</td></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<a><svg><tr><input></a>",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,23): unexpected-end-tag",
+        "(1,23): adoption-agency-1.3"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "a": true,
+            "svg svg": true,
+            "svg tr": true,
+            "svg input": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "a",
+                    "children": [
+                      {
+                        "tag": "svg",
+                        "ns": "http://www.w3.org/2000/svg",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "ns": "http://www.w3.org/2000/svg",
+                            "children": [
+                              {
+                                "tag": "input",
+                                "ns": "http://www.w3.org/2000/svg"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><a><svg><tr><input></input></tr></svg></a></body></html>",
+        "noQuirksBodyHtml": "<a><svg><tr><input></input></tr></svg></a>"
+      }
+    },
+    {
+      "data": "<div><a><b><div><div><div><div><div><div><div><div><div><div></a>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,65): adoption-agency-1.3",
+        "(1,65): adoption-agency-1.3",
+        "(1,65): adoption-agency-1.3",
+        "(1,65): adoption-agency-1.3",
+        "(1,65): adoption-agency-1.3",
+        "(1,65): adoption-agency-1.3",
+        "(1,65): adoption-agency-1.3",
+        "(1,65): adoption-agency-1.3",
+        "(1,65): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true,
+            "a": true,
+            "b": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "tag": "a",
+                        "children": [
+                          {
+                            "tag": "b"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "tag": "div",
+                            "children": [
+                              {
+                                "tag": "a"
+                              },
+                              {
+                                "tag": "div",
+                                "children": [
+                                  {
+                                    "tag": "a"
+                                  },
+                                  {
+                                    "tag": "div",
+                                    "children": [
+                                      {
+                                        "tag": "a"
+                                      },
+                                      {
+                                        "tag": "div",
+                                        "children": [
+                                          {
+                                            "tag": "a"
+                                          },
+                                          {
+                                            "tag": "div",
+                                            "children": [
+                                              {
+                                                "tag": "a"
+                                              },
+                                              {
+                                                "tag": "div",
+                                                "children": [
+                                                  {
+                                                    "tag": "a"
+                                                  },
+                                                  {
+                                                    "tag": "div",
+                                                    "children": [
+                                                      {
+                                                        "tag": "a"
+                                                      },
+                                                      {
+                                                        "tag": "div",
+                                                        "children": [
+                                                          {
+                                                            "tag": "a",
+                                                            "children": [
+                                                              {
+                                                                "tag": "div",
+                                                                "children": [
+                                                                  {
+                                                                    "tag": "div"
+                                                                  }
+                                                                ]
+                                                              }
+                                                            ]
+                                                          }
+                                                        ]
+                                                      }
+                                                    ]
+                                                  }
+                                                ]
+                                              }
+                                            ]
+                                          }
+                                        ]
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div><a><b></b></a><b><div><a></a><div><a></a><div><a></a><div><a></a><div><a></a><div><a></a><div><a></a><div><a><div><div></div></div></a></div></div></div></div></div></div></div></div></b></div></body></html>",
+        "noQuirksBodyHtml": "<div><a><b></b></a><b><div><a></a><div><a></a><div><a></a><div><a></a><div><a></a><div><a></a><div><a></a><div><a><div><div></div></div></a></div></div></div></div></div></div></div></div></b></div>"
+      }
+    },
+    {
+      "data": "<div><a><b><u><i><code><div></a>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,32): adoption-agency-1.3",
+        "(1,32): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true,
+            "a": true,
+            "b": true,
+            "u": true,
+            "i": true,
+            "code": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "tag": "a",
+                        "children": [
+                          {
+                            "tag": "b",
+                            "children": [
+                              {
+                                "tag": "u",
+                                "children": [
+                                  {
+                                    "tag": "i",
+                                    "children": [
+                                      {
+                                        "tag": "code"
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "u",
+                        "children": [
+                          {
+                            "tag": "i",
+                            "children": [
+                              {
+                                "tag": "code",
+                                "children": [
+                                  {
+                                    "tag": "div",
+                                    "children": [
+                                      {
+                                        "tag": "a"
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div><a><b><u><i><code></code></i></u></b></a><u><i><code><div><a></a></div></code></i></u></div></body></html>",
+        "noQuirksBodyHtml": "<div><a><b><u><i><code></code></i></u></b></a><u><i><code><div><a></a></div></code></i></u></div>"
+      }
+    },
+    {
+      "data": "<b><b><b><b>x</b></b></b></b>y",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "b": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "b",
+                    "children": [
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "tag": "b",
+                            "children": [
+                              {
+                                "tag": "b",
+                                "children": [
+                                  {
+                                    "text": "x"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "text": "y"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><b><b><b><b>x</b></b></b></b>y</body></html>",
+        "noQuirksBodyHtml": "<b><b><b><b>x</b></b></b></b>y"
+      }
+    },
+    {
+      "data": "<p><b><b><b><b><p>x",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,18): unexpected-end-tag",
+        "(1,19): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "b": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "tag": "b",
+                            "children": [
+                              {
+                                "tag": "b",
+                                "children": [
+                                  {
+                                    "tag": "b"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "tag": "b",
+                            "children": [
+                              {
+                                "tag": "b",
+                                "children": [
+                                  {
+                                    "text": "x"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><p><b><b><b><b></b></b></b></b></p><p><b><b><b>x</b></b></b></p></body></html>",
+        "noQuirksBodyHtml": "<p><b><b><b><b></b></b></b></b></p><p><b><b><b>x</b></b></b></p>"
+      }
+    }
+  ],
+  "adoption02.dat": [
+    {
+      "data": "<b>1<i>2<p>3</b>4",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,16): adoption-agency-1.3",
+        "(1,17): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "b": true,
+            "i": true,
+            "p": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "b",
+                    "children": [
+                      {
+                        "text": "1"
+                      },
+                      {
+                        "tag": "i",
+                        "children": [
+                          {
+                            "text": "2"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "i",
+                    "children": [
+                      {
+                        "tag": "p",
+                        "children": [
+                          {
+                            "tag": "b",
+                            "children": [
+                              {
+                                "text": "3"
+                              }
+                            ]
+                          },
+                          {
+                            "text": "4"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><b>1<i>2</i></b><i><p><b>3</b>4</p></i></body></html>",
+        "noQuirksBodyHtml": "<b>1<i>2</i></b><i><p><b>3</b>4</p></i>"
+      }
+    },
+    {
+      "data": "<a><div><style></style><address><a>",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,35): unexpected-start-tag-implies-end-tag",
+        "(1,35): adoption-agency-1.3",
+        "(1,35): adoption-agency-1.3",
+        "(1,35): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "a": true,
+            "div": true,
+            "style": true,
+            "address": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "a"
+                  },
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "tag": "a",
+                        "children": [
+                          {
+                            "tag": "style"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "address",
+                        "children": [
+                          {
+                            "tag": "a"
+                          },
+                          {
+                            "tag": "a"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><a></a><div><a><style></style></a><address><a></a><a></a></address></div></body></html>",
+        "noQuirksBodyHtml": "<a></a><div><a><style></style></a><address><a></a><a></a></address></div>"
+      }
+    }
+  ],
+  "comments01.dat": [
+    {
+      "data": "FOO<!-- BAR -->BAZ",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO"
+                  },
+                  {
+                    "comment": " BAR "
+                  },
+                  {
+                    "text": "BAZ"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO<!-- BAR -->BAZ</body></html>",
+        "noQuirksBodyHtml": "FOO<!-- BAR -->BAZ"
+      }
+    },
+    {
+      "data": "FOO<!-- BAR --!>BAZ",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,15): unexpected-bang-after-double-dash-in-comment"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO"
+                  },
+                  {
+                    "comment": " BAR "
+                  },
+                  {
+                    "text": "BAZ"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO<!-- BAR -->BAZ</body></html>",
+        "noQuirksBodyHtml": "FOO<!-- BAR -->BAZ"
+      }
+    },
+    {
+      "data": "FOO<!-- BAR --   >BAZ",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,15): unexpected-char-in-comment",
+        "(1,21): eof-in-comment"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO"
+                  },
+                  {
+                    "comment": " BAR --   >BAZ"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO<!-- BAR --   >BAZ--></body></html>",
+        "noQuirksBodyHtml": "FOO<!-- BAR --   >BAZ-->"
+      }
+    },
+    {
+      "data": "FOO<!-- BAR -- <QUX> -- MUX -->BAZ",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,15): unexpected-char-in-comment",
+        "(1,24): unexpected-char-in-comment"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO"
+                  },
+                  {
+                    "comment": " BAR -- <QUX> -- MUX "
+                  },
+                  {
+                    "text": "BAZ"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO<!-- BAR -- <QUX> -- MUX -->BAZ</body></html>",
+        "noQuirksBodyHtml": "FOO<!-- BAR -- <QUX> -- MUX -->BAZ"
+      }
+    },
+    {
+      "data": "FOO<!-- BAR -- <QUX> -- MUX --!>BAZ",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,15): unexpected-char-in-comment",
+        "(1,24): unexpected-char-in-comment",
+        "(1,31): unexpected-bang-after-double-dash-in-comment"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO"
+                  },
+                  {
+                    "comment": " BAR -- <QUX> -- MUX "
+                  },
+                  {
+                    "text": "BAZ"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO<!-- BAR -- <QUX> -- MUX -->BAZ</body></html>",
+        "noQuirksBodyHtml": "FOO<!-- BAR -- <QUX> -- MUX -->BAZ"
+      }
+    },
+    {
+      "data": "FOO<!-- BAR -- <QUX> -- MUX -- >BAZ",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,15): unexpected-char-in-comment",
+        "(1,24): unexpected-char-in-comment",
+        "(1,31): unexpected-char-in-comment",
+        "(1,35): eof-in-comment"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO"
+                  },
+                  {
+                    "comment": " BAR -- <QUX> -- MUX -- >BAZ"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO<!-- BAR -- <QUX> -- MUX -- >BAZ--></body></html>",
+        "noQuirksBodyHtml": "FOO<!-- BAR -- <QUX> -- MUX -- >BAZ-->"
+      }
+    },
+    {
+      "data": "FOO<!---->BAZ",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO"
+                  },
+                  {
+                    "comment": ""
+                  },
+                  {
+                    "text": "BAZ"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO<!---->BAZ</body></html>",
+        "noQuirksBodyHtml": "FOO<!---->BAZ"
+      }
+    },
+    {
+      "data": "FOO<!--->BAZ",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,9): incorrect-comment"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO"
+                  },
+                  {
+                    "comment": ""
+                  },
+                  {
+                    "text": "BAZ"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO<!---->BAZ</body></html>",
+        "noQuirksBodyHtml": "FOO<!---->BAZ"
+      }
+    },
+    {
+      "data": "FOO<!-->BAZ",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,8): incorrect-comment"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO"
+                  },
+                  {
+                    "comment": ""
+                  },
+                  {
+                    "text": "BAZ"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO<!---->BAZ</body></html>",
+        "noQuirksBodyHtml": "FOO<!---->BAZ"
+      }
+    },
+    {
+      "data": "<?xml version=\"1.0\">Hi",
+      "errors": [
+        "(1,1): expected-tag-name-but-got-question-mark",
+        "(1,22): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "comment": "?xml version=\"1.0\""
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "Hi"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!--?xml version=\"1.0\"--><html><head></head><body>Hi</body></html>",
+        "noQuirksBodyHtml": "<!--?xml version=\"1.0\"-->Hi"
+      }
+    },
+    {
+      "data": "<?xml version=\"1.0\">",
+      "errors": [
+        "(1,1): expected-tag-name-but-got-question-mark",
+        "(1,20): expected-doctype-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "comment": "?xml version=\"1.0\""
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!--?xml version=\"1.0\"--><html><head></head><body></body></html>",
+        "noQuirksBodyHtml": "<!--?xml version=\"1.0\"-->"
+      }
+    },
+    {
+      "data": "<?xml version",
+      "errors": [
+        "(1,1): expected-tag-name-but-got-question-mark",
+        "(1,13): expected-doctype-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "comment": "?xml version"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!--?xml version--><html><head></head><body></body></html>",
+        "noQuirksBodyHtml": "<!--?xml version-->"
+      }
+    },
+    {
+      "data": "FOO<!----->BAZ",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,10): unexpected-dash-after-double-dash-in-comment"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO"
+                  },
+                  {
+                    "comment": "-"
+                  },
+                  {
+                    "text": "BAZ"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO<!----->BAZ</body></html>",
+        "noQuirksBodyHtml": "FOO<!----->BAZ"
+      }
+    },
+    {
+      "data": "<html><!-- comment --><title>Comment before head</title>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "title": true,
+            "body": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "comment": " comment "
+              },
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "title",
+                    "children": [
+                      {
+                        "text": "Comment before head"
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><!-- comment --><head><title>Comment before head</title></head><body></body></html>",
+        "noQuirksBodyHtml": "<!-- comment --><title>Comment before head</title>"
+      }
+    }
+  ],
+  "doctype01.dat": [
+    {
+      "data": "<!DOCTYPE html>Hello",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "Hello"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body>Hello</body></html>",
+        "noQuirksBodyHtml": "Hello"
+      }
+    },
+    {
+      "data": "<!dOctYpE HtMl>Hello",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "Hello"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body>Hello</body></html>",
+        "noQuirksBodyHtml": "Hello"
+      }
+    },
+    {
+      "data": "<!DOCTYPEhtml>Hello",
+      "errors": [
+        "(1,9): need-space-after-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "Hello"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body>Hello</body></html>",
+        "noQuirksBodyHtml": "Hello"
+      }
+    },
+    {
+      "data": "<!DOCTYPE>Hello",
+      "errors": [
+        "(1,9): need-space-after-doctype",
+        "(1,10): expected-doctype-name-but-got-right-bracket",
+        "(1,10): unknown-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": ""
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "Hello"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE ><html><head></head><body>Hello</body></html>",
+        "noQuirksBodyHtml": "Hello"
+      }
+    },
+    {
+      "data": "<!DOCTYPE >Hello",
+      "errors": [
+        "(1,11): expected-doctype-name-but-got-right-bracket",
+        "(1,11): unknown-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": ""
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "Hello"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE ><html><head></head><body>Hello</body></html>",
+        "noQuirksBodyHtml": "Hello"
+      }
+    },
+    {
+      "data": "<!DOCTYPE potato>Hello",
+      "errors": [
+        "(1,17): unknown-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "potato"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "Hello"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+        "noQuirksBodyHtml": "Hello"
+      }
+    },
+    {
+      "data": "<!DOCTYPE potato >Hello",
+      "errors": [
+        "(1,18): unknown-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "potato"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "Hello"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+        "noQuirksBodyHtml": "Hello"
+      }
+    },
+    {
+      "data": "<!DOCTYPE potato taco>Hello",
+      "errors": [
+        "(1,17): expected-space-or-right-bracket-in-doctype",
+        "(1,22): unknown-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "potato"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "Hello"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+        "noQuirksBodyHtml": "Hello"
+      }
+    },
+    {
+      "data": "<!DOCTYPE potato taco \"ddd>Hello",
+      "errors": [
+        "(1,17): expected-space-or-right-bracket-in-doctype",
+        "(1,27): unknown-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "potato"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "Hello"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+        "noQuirksBodyHtml": "Hello"
+      }
+    },
+    {
+      "data": "<!DOCTYPE potato sYstEM>Hello",
+      "errors": [
+        "(1,24): unexpected-char-in-doctype",
+        "(1,24): unknown-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "potato"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "Hello"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+        "noQuirksBodyHtml": "Hello"
+      }
+    },
+    {
+      "data": "<!DOCTYPE potato sYstEM    >Hello",
+      "errors": [
+        "(1,28): unexpected-char-in-doctype",
+        "(1,28): unknown-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "potato"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "Hello"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+        "noQuirksBodyHtml": "Hello"
+      }
+    },
+    {
+      "data": "<!DOCTYPE   potato       sYstEM  ggg>Hello",
+      "errors": [
+        "(1,34): unexpected-char-in-doctype",
+        "(1,37): unknown-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "potato"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "Hello"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+        "noQuirksBodyHtml": "Hello"
+      }
+    },
+    {
+      "data": "<!DOCTYPE potato SYSTEM taco  >Hello",
+      "errors": [
+        "(1,25): unexpected-char-in-doctype",
+        "(1,31): unknown-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "potato"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "Hello"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+        "noQuirksBodyHtml": "Hello"
+      }
+    },
+    {
+      "data": "<!DOCTYPE potato SYSTEM 'taco\"'>Hello",
+      "errors": [
+        "(1,32): unknown-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "potato \"\" \"taco\"\""
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "Hello"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+        "noQuirksBodyHtml": "Hello"
+      }
+    },
+    {
+      "data": "<!DOCTYPE potato SYSTEM \"taco\">Hello",
+      "errors": [
+        "(1,31): unknown-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "potato \"\" \"taco\""
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "Hello"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+        "noQuirksBodyHtml": "Hello"
+      }
+    },
+    {
+      "data": "<!DOCTYPE potato SYSTEM \"tai'co\">Hello",
+      "errors": [
+        "(1,33): unknown-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "potato \"\" \"tai'co\""
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "Hello"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+        "noQuirksBodyHtml": "Hello"
+      }
+    },
+    {
+      "data": "<!DOCTYPE potato SYSTEMtaco \"ddd\">Hello",
+      "errors": [
+        "(1,24): unexpected-char-in-doctype",
+        "(1,34): unknown-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "potato"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "Hello"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+        "noQuirksBodyHtml": "Hello"
+      }
+    },
+    {
+      "data": "<!DOCTYPE potato grass SYSTEM taco>Hello",
+      "errors": [
+        "(1,17): expected-space-or-right-bracket-in-doctype",
+        "(1,35): unknown-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "potato"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "Hello"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+        "noQuirksBodyHtml": "Hello"
+      }
+    },
+    {
+      "data": "<!DOCTYPE potato pUbLIc>Hello",
+      "errors": [
+        "(1,24): unexpected-end-of-doctype",
+        "(1,24): unknown-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "potato"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "Hello"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+        "noQuirksBodyHtml": "Hello"
+      }
+    },
+    {
+      "data": "<!DOCTYPE potato pUbLIc >Hello",
+      "errors": [
+        "(1,25): unexpected-end-of-doctype",
+        "(1,25): unknown-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "potato"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "Hello"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+        "noQuirksBodyHtml": "Hello"
+      }
+    },
+    {
+      "data": "<!DOCTYPE potato pUbLIcgoof>Hello",
+      "errors": [
+        "(1,24): unexpected-char-in-doctype",
+        "(1,28): unknown-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "potato"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "Hello"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+        "noQuirksBodyHtml": "Hello"
+      }
+    },
+    {
+      "data": "<!DOCTYPE potato PUBLIC goof>Hello",
+      "errors": [
+        "(1,25): unexpected-char-in-doctype",
+        "(1,29): unknown-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "potato"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "Hello"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+        "noQuirksBodyHtml": "Hello"
+      }
+    },
+    {
+      "data": "<!DOCTYPE potato PUBLIC \"go'of\">Hello",
+      "errors": [
+        "(1,32): unknown-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "potato \"go'of\" \"\""
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "Hello"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+        "noQuirksBodyHtml": "Hello"
+      }
+    },
+    {
+      "data": "<!DOCTYPE potato PUBLIC 'go'of'>Hello",
+      "errors": [
+        "(1,29): unexpected-char-in-doctype",
+        "(1,32): unknown-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "potato \"go\" \"\""
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "Hello"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+        "noQuirksBodyHtml": "Hello"
+      }
+    },
+    {
+      "data": "<!DOCTYPE potato PUBLIC 'go:hh   of' >Hello",
+      "errors": [
+        "(1,38): unknown-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "potato \"go:hh   of\" \"\""
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "Hello"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+        "noQuirksBodyHtml": "Hello"
+      }
+    },
+    {
+      "data": "<!DOCTYPE potato PUBLIC \"W3C-//dfdf\" SYSTEM ggg>Hello",
+      "errors": [
+        "(1,38): unexpected-char-in-doctype",
+        "(1,48): unknown-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "potato \"W3C-//dfdf\" \"\""
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "Hello"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE potato><html><head></head><body>Hello</body></html>",
+        "noQuirksBodyHtml": "Hello"
+      }
+    },
+    {
+      "data": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\"\n   \"http://www.w3.org/TR/html4/strict.dtd\">Hello",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\""
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "Hello"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body>Hello</body></html>",
+        "noQuirksBodyHtml": "Hello"
+      }
+    },
+    {
+      "data": "<!DOCTYPE ...>Hello",
+      "errors": [
+        "(1,14): unknown-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "..."
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "Hello"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE ...><html><head></head><body>Hello</body></html>",
+        "noQuirksBodyHtml": "Hello"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">",
+      "errors": [
+        "(2,58): unknown-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\""
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Frameset//EN\"\n\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd\">",
+      "errors": [
+        "(2,54): unknown-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html \"-//W3C//DTD XHTML 1.0 Frameset//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd\""
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<!DOCTYPE root-element [SYSTEM OR PUBLIC FPI] \"uri\" [ \n<!-- internal declarations -->\n]>",
+      "errors": [
+        "(1,23): expected-space-or-right-bracket-in-doctype",
+        "(2,30): unknown-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true,
+          "escaped": true
+        },
+        "tree": [
+          {
+            "doctype": "root-element"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "]>",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE root-element><html><head></head><body>]&gt;</body></html>",
+        "noQuirksBodyHtml": "\n]&gt;"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html PUBLIC\n  \"-//WAPFORUM//DTD XHTML Mobile 1.0//EN\"\n    \"http://www.wapforum.org/DTD/xhtml-mobile10.dtd\">",
+      "errors": [
+        "(3,53): unknown-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html \"-//WAPFORUM//DTD XHTML Mobile 1.0//EN\" \"http://www.wapforum.org/DTD/xhtml-mobile10.dtd\""
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<!DOCTYPE HTML SYSTEM \"http://www.w3.org/DTD/HTML4-strict.dtd\"><body><b>Mine!</b></body>",
+      "errors": [
+        "(1,63): unknown-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "b": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html \"\" \"http://www.w3.org/DTD/HTML4-strict.dtd\""
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "b",
+                    "children": [
+                      {
+                        "text": "Mine!"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><b>Mine!</b></body></html>",
+        "noQuirksBodyHtml": "<b>Mine!</b>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\"\"http://www.w3.org/TR/html4/strict.dtd\">",
+      "errors": [
+        "(1,50): unexpected-char-in-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\""
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\"'http://www.w3.org/TR/html4/strict.dtd'>",
+      "errors": [
+        "(1,50): unexpected-char-in-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\""
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<!DOCTYPE HTML PUBLIC\"-//W3C//DTD HTML 4.01//EN\"'http://www.w3.org/TR/html4/strict.dtd'>",
+      "errors": [
+        "(1,21): unexpected-char-in-doctype",
+        "(1,49): unexpected-char-in-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\""
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<!DOCTYPE HTML PUBLIC'-//W3C//DTD HTML 4.01//EN''http://www.w3.org/TR/html4/strict.dtd'>",
+      "errors": [
+        "(1,21): unexpected-char-in-doctype",
+        "(1,49): unexpected-char-in-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\""
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    }
+  ],
+  "domjs-unsafe.dat": [
+    {
+      "data": "<svg><![CDATA[foo\nbar]]>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(2,6): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "text": "foo\nbar"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg>foo\nbar</svg></body></html>",
+        "noQuirksBodyHtml": "<svg>foo\nbar</svg>"
+      }
+    },
+    {
+      "data": "<svg><![CDATA[foo\rbar]]>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(2,6): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "text": "foo\nbar"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg>foo\nbar</svg></body></html>",
+        "noQuirksBodyHtml": "<svg>foo\nbar</svg>"
+      }
+    },
+    {
+      "data": "<svg><![CDATA[foo\r\nbar]]>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(2,6): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "text": "foo\nbar"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg>foo\nbar</svg></body></html>",
+        "noQuirksBodyHtml": "<svg>foo\nbar</svg>"
+      }
+    },
+    {
+      "data": "<script>a='\u0000'</script>",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,12): invalid-codepoint"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "a='�'",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script>a='�'</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script>a='�'</script>"
+      }
+    },
+    {
+      "data": "<script type=\"data\"><!--\u0000</script>",
+      "errors": [
+        "(1,20): expected-doctype-but-got-start-tag",
+        "(1,25): invalid-codepoint"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "attrs": [
+                      {
+                        "name": "type",
+                        "value": "data"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "<!--�",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script type=\"data\"><!--�</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script type=\"data\"><!--�</script>"
+      }
+    },
+    {
+      "data": "<script type=\"data\"><!--foo\u0000</script>",
+      "errors": [
+        "(1,20): expected-doctype-but-got-start-tag",
+        "(1,28): invalid-codepoint"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "attrs": [
+                      {
+                        "name": "type",
+                        "value": "data"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "<!--foo�",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script type=\"data\"><!--foo�</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script type=\"data\"><!--foo�</script>"
+      }
+    },
+    {
+      "data": "<script type=\"data\"><!-- foo-\u0000</script>",
+      "errors": [
+        "(1,20): expected-doctype-but-got-start-tag",
+        "(1,30): invalid-codepoint"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "attrs": [
+                      {
+                        "name": "type",
+                        "value": "data"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "<!-- foo-�",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script type=\"data\"><!-- foo-�</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script type=\"data\"><!-- foo-�</script>"
+      }
+    },
+    {
+      "data": "<script type=\"data\"><!-- foo--\u0000</script>",
+      "errors": [
+        "(1,20): expected-doctype-but-got-start-tag",
+        "(1,31): invalid-codepoint"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "attrs": [
+                      {
+                        "name": "type",
+                        "value": "data"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "<!-- foo--�",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script type=\"data\"><!-- foo--�</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script type=\"data\"><!-- foo--�</script>"
+      }
+    },
+    {
+      "data": "<script type=\"data\"><!-- foo-",
+      "errors": [
+        "(1,20): expected-doctype-but-got-start-tag",
+        "(1,29): expected-script-data-but-got-eof",
+        "(1,29): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "attrs": [
+                      {
+                        "name": "type",
+                        "value": "data"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "<!-- foo-",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script type=\"data\"><!-- foo-</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script type=\"data\"><!-- foo-</script>"
+      }
+    },
+    {
+      "data": "<script type=\"data\"><!-- foo-<</script>",
+      "errors": [
+        "(1,20): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "attrs": [
+                      {
+                        "name": "type",
+                        "value": "data"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "<!-- foo-<",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script type=\"data\"><!-- foo-<</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script type=\"data\"><!-- foo-<</script>"
+      }
+    },
+    {
+      "data": "<script type=\"data\"><!-- foo-<S",
+      "errors": [
+        "(1,20): expected-doctype-but-got-start-tag",
+        "(1,31): expected-script-data-but-got-eof",
+        "(1,31): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "attrs": [
+                      {
+                        "name": "type",
+                        "value": "data"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "<!-- foo-<S",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script type=\"data\"><!-- foo-<S</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script type=\"data\"><!-- foo-<S</script>"
+      }
+    },
+    {
+      "data": "<script type=\"data\"><!-- foo-</SCRIPT>",
+      "errors": [
+        "(1,20): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "attrs": [
+                      {
+                        "name": "type",
+                        "value": "data"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "<!-- foo-",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script type=\"data\"><!-- foo-</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script type=\"data\"><!-- foo-</script>"
+      }
+    },
+    {
+      "data": "<script type=\"data\"><!--<p></script>",
+      "errors": [
+        "(1,20): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "attrs": [
+                      {
+                        "name": "type",
+                        "value": "data"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "<!--<p>",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script type=\"data\"><!--<p></script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script type=\"data\"><!--<p></script>"
+      }
+    },
+    {
+      "data": "<script type=\"data\"><!--<script></script></script>",
+      "errors": [
+        "(1,20): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "attrs": [
+                      {
+                        "name": "type",
+                        "value": "data"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "<!--<script></script>",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script type=\"data\"><!--<script></script></script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script type=\"data\"><!--<script></script></script>"
+      }
+    },
+    {
+      "data": "<script type=\"data\"><!--<script>\u0000</script></script>",
+      "errors": [
+        "(1,20): expected-doctype-but-got-start-tag",
+        "(1,33): invalid-codepoint"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "attrs": [
+                      {
+                        "name": "type",
+                        "value": "data"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "<!--<script>�</script>",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script type=\"data\"><!--<script>�</script></script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script type=\"data\"><!--<script>�</script></script>"
+      }
+    },
+    {
+      "data": "<script type=\"data\"><!--<script>-\u0000</script></script>",
+      "errors": [
+        "(1,20): expected-doctype-but-got-start-tag",
+        "(1,34): invalid-codepoint"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "attrs": [
+                      {
+                        "name": "type",
+                        "value": "data"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "<!--<script>-�</script>",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script type=\"data\"><!--<script>-�</script></script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script type=\"data\"><!--<script>-�</script></script>"
+      }
+    },
+    {
+      "data": "<script type=\"data\"><!--<script>--\u0000</script></script>",
+      "errors": [
+        "(1,20): expected-doctype-but-got-start-tag",
+        "(1,35): invalid-codepoint"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "attrs": [
+                      {
+                        "name": "type",
+                        "value": "data"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "<!--<script>--�</script>",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script type=\"data\"><!--<script>--�</script></script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script type=\"data\"><!--<script>--�</script></script>"
+      }
+    },
+    {
+      "data": "<script type=\"data\"><!--<script>---</script></script>",
+      "errors": [
+        "(1,20): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "attrs": [
+                      {
+                        "name": "type",
+                        "value": "data"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "<!--<script>---</script>",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script type=\"data\"><!--<script>---</script></script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script type=\"data\"><!--<script>---</script></script>"
+      }
+    },
+    {
+      "data": "<script type=\"data\"><!--<script></scrip></SCRIPT></script>",
+      "errors": [
+        "(1,20): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "attrs": [
+                      {
+                        "name": "type",
+                        "value": "data"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "<!--<script></scrip></SCRIPT>",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script type=\"data\"><!--<script></scrip></SCRIPT></script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script type=\"data\"><!--<script></scrip></SCRIPT></script>"
+      }
+    },
+    {
+      "data": "<script type=\"data\"><!--<script></scrip </SCRIPT></script>",
+      "errors": [
+        "(1,20): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "attrs": [
+                      {
+                        "name": "type",
+                        "value": "data"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "<!--<script></scrip </SCRIPT>",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script type=\"data\"><!--<script></scrip </SCRIPT></script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script type=\"data\"><!--<script></scrip </SCRIPT></script>"
+      }
+    },
+    {
+      "data": "<script type=\"data\"><!--<script></scrip/</SCRIPT></script>",
+      "errors": [
+        "(1,20): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "attrs": [
+                      {
+                        "name": "type",
+                        "value": "data"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "<!--<script></scrip/</SCRIPT>",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script type=\"data\"><!--<script></scrip/</SCRIPT></script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script type=\"data\"><!--<script></scrip/</SCRIPT></script>"
+      }
+    },
+    {
+      "data": "<script type=\"data\"></scrip/></script>",
+      "errors": [
+        "(1,20): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "attrs": [
+                      {
+                        "name": "type",
+                        "value": "data"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "</scrip/>",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script type=\"data\"></scrip/></script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script type=\"data\"></scrip/></script>"
+      }
+    },
+    {
+      "data": "<script type=\"data\"></scrip ></script>",
+      "errors": [
+        "(1,20): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "attrs": [
+                      {
+                        "name": "type",
+                        "value": "data"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "</scrip >",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script type=\"data\"></scrip ></script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script type=\"data\"></scrip ></script>"
+      }
+    },
+    {
+      "data": "<script type=\"data\"><!--</scrip></script>",
+      "errors": [
+        "(1,20): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "attrs": [
+                      {
+                        "name": "type",
+                        "value": "data"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "<!--</scrip>",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script type=\"data\"><!--</scrip></script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script type=\"data\"><!--</scrip></script>"
+      }
+    },
+    {
+      "data": "<script type=\"data\"><!--</scrip </script>",
+      "errors": [
+        "(1,20): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "attrs": [
+                      {
+                        "name": "type",
+                        "value": "data"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "<!--</scrip ",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script type=\"data\"><!--</scrip </script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script type=\"data\"><!--</scrip </script>"
+      }
+    },
+    {
+      "data": "<script type=\"data\"><!--</scrip/</script>",
+      "errors": [
+        "(1,20): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "attrs": [
+                      {
+                        "name": "type",
+                        "value": "data"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "<!--</scrip/",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script type=\"data\"><!--</scrip/</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script type=\"data\"><!--</scrip/</script>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><!DOCTYPE html>",
+      "errors": [
+        "(1,30): unexpected-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<html><!DOCTYPE html>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,21): unexpected-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<html><head><!DOCTYPE html></head>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,27): unexpected-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<html><head></head><!DOCTYPE html>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,34): unexpected-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<body></body><!DOCTYPE html>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,28): unexpected-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<table><!DOCTYPE html></table>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,22): unexpected-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table></table></body></html>",
+        "noQuirksBodyHtml": "<table></table>"
+      }
+    },
+    {
+      "data": "<select><!DOCTYPE html></select>",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,23): unexpected-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><select></select></body></html>",
+        "noQuirksBodyHtml": "<select></select>"
+      }
+    },
+    {
+      "data": "<table><colgroup><!DOCTYPE html></colgroup></table>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,32): unexpected-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "colgroup": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "colgroup"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><colgroup></colgroup></table></body></html>",
+        "noQuirksBodyHtml": "<table><colgroup></colgroup></table>"
+      }
+    },
+    {
+      "data": "<table><colgroup><!--test--></colgroup></table>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "colgroup": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "colgroup",
+                        "children": [
+                          {
+                            "comment": "test"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><colgroup><!--test--></colgroup></table></body></html>",
+        "noQuirksBodyHtml": "<table><colgroup><!--test--></colgroup></table>"
+      }
+    },
+    {
+      "data": "<table><colgroup><html></colgroup></table>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,23): non-html-root"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "colgroup": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "colgroup"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><colgroup></colgroup></table></body></html>",
+        "noQuirksBodyHtml": "<table><colgroup></colgroup></table>"
+      }
+    },
+    {
+      "data": "<table><colgroup> foo</colgroup></table>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,32): foster-parenting-character-in-table",
+        "(1,32): foster-parenting-character-in-table",
+        "(1,32): foster-parenting-character-in-table",
+        "(1,32): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "colgroup": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "foo"
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "colgroup",
+                        "children": [
+                          {
+                            "text": " "
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>foo<table><colgroup> </colgroup></table></body></html>",
+        "noQuirksBodyHtml": "foo<table><colgroup> </colgroup></table>"
+      }
+    },
+    {
+      "data": "<select><!--test--></select>",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select",
+                    "children": [
+                      {
+                        "comment": "test"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><select><!--test--></select></body></html>",
+        "noQuirksBodyHtml": "<select><!--test--></select>"
+      }
+    },
+    {
+      "data": "<select><html></select>",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,14): non-html-root"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><select></select></body></html>",
+        "noQuirksBodyHtml": "<select></select>"
+      }
+    },
+    {
+      "data": "<frameset><html></frameset>",
+      "errors": [
+        "(1,10): expected-doctype-but-got-start-tag",
+        "(1,16): non-html-root"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><frameset></frameset></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<frameset></frameset><html>",
+      "errors": [
+        "(1,10): expected-doctype-but-got-start-tag",
+        "(1,27): non-html-root"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><frameset></frameset></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<frameset></frameset><!DOCTYPE html>",
+      "errors": [
+        "(1,10): expected-doctype-but-got-start-tag",
+        "(1,36): unexpected-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><frameset></frameset></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<html><body></body></html><!DOCTYPE html>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,41): unexpected-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<svg><!DOCTYPE html></svg>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,20): unexpected-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg></svg></body></html>",
+        "noQuirksBodyHtml": "<svg></svg>"
+      }
+    },
+    {
+      "data": "<svg><font></font></svg>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true,
+            "svg font": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "tag": "font",
+                        "ns": "http://www.w3.org/2000/svg"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg><font></font></svg></body></html>",
+        "noQuirksBodyHtml": "<svg><font></font></svg>"
+      }
+    },
+    {
+      "data": "<svg><font id=foo></font></svg>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true,
+            "svg font": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "tag": "font",
+                        "ns": "http://www.w3.org/2000/svg",
+                        "attrs": [
+                          {
+                            "name": "id",
+                            "value": "foo"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg><font id=\"foo\"></font></svg></body></html>",
+        "noQuirksBodyHtml": "<svg><font id=\"foo\"></font></svg>"
+      }
+    },
+    {
+      "data": "<svg><font size=4></font></svg>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,18): unexpected-html-element-in-foreign-content",
+        "(1,31): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true,
+            "font": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg"
+                  },
+                  {
+                    "tag": "font",
+                    "attrs": [
+                      {
+                        "name": "size",
+                        "value": "4"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg></svg><font size=\"4\"></font></body></html>",
+        "noQuirksBodyHtml": "<svg><font size=\"4\"></font></svg>"
+      }
+    },
+    {
+      "data": "<svg><font color=red></font></svg>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,21): unexpected-html-element-in-foreign-content",
+        "(1,34): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true,
+            "font": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg"
+                  },
+                  {
+                    "tag": "font",
+                    "attrs": [
+                      {
+                        "name": "color",
+                        "value": "red"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg></svg><font color=\"red\"></font></body></html>",
+        "noQuirksBodyHtml": "<svg><font color=\"red\"></font></svg>"
+      }
+    },
+    {
+      "data": "<svg><font font=sans></font></svg>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true,
+            "svg font": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "tag": "font",
+                        "ns": "http://www.w3.org/2000/svg",
+                        "attrs": [
+                          {
+                            "name": "font",
+                            "value": "sans"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg><font font=\"sans\"></font></svg></body></html>",
+        "noQuirksBodyHtml": "<svg><font font=\"sans\"></font></svg>"
+      }
+    }
+  ],
+  "entities01.dat": [
+    {
+      "data": "FOO&gt;BAR",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO>BAR",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO&gt;BAR</body></html>",
+        "noQuirksBodyHtml": "FOO&gt;BAR"
+      }
+    },
+    {
+      "data": "FOO&gtBAR",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,6): named-entity-without-semicolon"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO>BAR",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO&gt;BAR</body></html>",
+        "noQuirksBodyHtml": "FOO&gt;BAR"
+      }
+    },
+    {
+      "data": "FOO&gt BAR",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,6): named-entity-without-semicolon"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO> BAR",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO&gt; BAR</body></html>",
+        "noQuirksBodyHtml": "FOO&gt; BAR"
+      }
+    },
+    {
+      "data": "FOO&gt;;;BAR",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO>;;BAR",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO&gt;;;BAR</body></html>",
+        "noQuirksBodyHtml": "FOO&gt;;;BAR"
+      }
+    },
+    {
+      "data": "I'm &notit; I tell you",
+      "errors": [
+        "(1,4): expected-doctype-but-got-chars",
+        "(1,9): named-entity-without-semicolon"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "I'm ¬it; I tell you"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>I'm ¬it; I tell you</body></html>",
+        "noQuirksBodyHtml": "I'm ¬it; I tell you"
+      }
+    },
+    {
+      "data": "I'm &notin; I tell you",
+      "errors": [
+        "(1,4): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "I'm ∉ I tell you"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>I'm ∉ I tell you</body></html>",
+        "noQuirksBodyHtml": "I'm ∉ I tell you"
+      }
+    },
+    {
+      "data": "FOO& BAR",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO& BAR",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO&amp; BAR</body></html>",
+        "noQuirksBodyHtml": "FOO&amp; BAR"
+      }
+    },
+    {
+      "data": "FOO&<BAR>",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,9): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "bar": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO&",
+                    "escaped": true
+                  },
+                  {
+                    "tag": "bar"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO&amp;<bar></bar></body></html>",
+        "noQuirksBodyHtml": "FOO&amp;<bar></bar>"
+      }
+    },
+    {
+      "data": "FOO&&&&gt;BAR",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO&&&>BAR",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO&amp;&amp;&amp;&gt;BAR</body></html>",
+        "noQuirksBodyHtml": "FOO&amp;&amp;&amp;&gt;BAR"
+      }
+    },
+    {
+      "data": "FOO&#41;BAR",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO)BAR"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO)BAR</body></html>",
+        "noQuirksBodyHtml": "FOO)BAR"
+      }
+    },
+    {
+      "data": "FOO&#x41;BAR",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOOABAR"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOOABAR</body></html>",
+        "noQuirksBodyHtml": "FOOABAR"
+      }
+    },
+    {
+      "data": "FOO&#X41;BAR",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOOABAR"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOOABAR</body></html>",
+        "noQuirksBodyHtml": "FOOABAR"
+      }
+    },
+    {
+      "data": "FOO&#BAR",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,5): expected-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO&#BAR",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO&amp;#BAR</body></html>",
+        "noQuirksBodyHtml": "FOO&amp;#BAR"
+      }
+    },
+    {
+      "data": "FOO&#ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,5): expected-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO&#ZOO",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO&amp;#ZOO</body></html>",
+        "noQuirksBodyHtml": "FOO&amp;#ZOO"
+      }
+    },
+    {
+      "data": "FOO&#xBAR",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,7): expected-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOOºR"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOOºR</body></html>",
+        "noQuirksBodyHtml": "FOOºR"
+      }
+    },
+    {
+      "data": "FOO&#xZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,6): expected-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO&#xZOO",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO&amp;#xZOO</body></html>",
+        "noQuirksBodyHtml": "FOO&amp;#xZOO"
+      }
+    },
+    {
+      "data": "FOO&#XZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,6): expected-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO&#XZOO",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO&amp;#XZOO</body></html>",
+        "noQuirksBodyHtml": "FOO&amp;#XZOO"
+      }
+    },
+    {
+      "data": "FOO&#41BAR",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,7): numeric-entity-without-semicolon"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO)BAR"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO)BAR</body></html>",
+        "noQuirksBodyHtml": "FOO)BAR"
+      }
+    },
+    {
+      "data": "FOO&#x41BAR",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,10): numeric-entity-without-semicolon"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO䆺R"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO䆺R</body></html>",
+        "noQuirksBodyHtml": "FOO䆺R"
+      }
+    },
+    {
+      "data": "FOO&#x41ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,8): numeric-entity-without-semicolon"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOOAZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOOAZOO</body></html>",
+        "noQuirksBodyHtml": "FOOAZOO"
+      }
+    },
+    {
+      "data": "FOO&#x0000;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,11): illegal-codepoint-for-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO�ZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO�ZOO</body></html>",
+        "noQuirksBodyHtml": "FOO�ZOO"
+      }
+    },
+    {
+      "data": "FOO&#x0078;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOOxZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOOxZOO</body></html>",
+        "noQuirksBodyHtml": "FOOxZOO"
+      }
+    },
+    {
+      "data": "FOO&#x0079;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOOyZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOOyZOO</body></html>",
+        "noQuirksBodyHtml": "FOOyZOO"
+      }
+    },
+    {
+      "data": "FOO&#x0080;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,11): illegal-codepoint-for-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO€ZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO€ZOO</body></html>",
+        "noQuirksBodyHtml": "FOO€ZOO"
+      }
+    },
+    {
+      "data": "FOO&#x0081;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,11): illegal-codepoint-for-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO\81ZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO\81ZOO</body></html>",
+        "noQuirksBodyHtml": "FOO\81ZOO"
+      }
+    },
+    {
+      "data": "FOO&#x0082;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,11): illegal-codepoint-for-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO‚ZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO‚ZOO</body></html>",
+        "noQuirksBodyHtml": "FOO‚ZOO"
+      }
+    },
+    {
+      "data": "FOO&#x0083;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,11): illegal-codepoint-for-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOOƒZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOOƒZOO</body></html>",
+        "noQuirksBodyHtml": "FOOƒZOO"
+      }
+    },
+    {
+      "data": "FOO&#x0084;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,11): illegal-codepoint-for-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO„ZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO„ZOO</body></html>",
+        "noQuirksBodyHtml": "FOO„ZOO"
+      }
+    },
+    {
+      "data": "FOO&#x0085;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,11): illegal-codepoint-for-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO…ZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO…ZOO</body></html>",
+        "noQuirksBodyHtml": "FOO…ZOO"
+      }
+    },
+    {
+      "data": "FOO&#x0086;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,11): illegal-codepoint-for-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO†ZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO†ZOO</body></html>",
+        "noQuirksBodyHtml": "FOO†ZOO"
+      }
+    },
+    {
+      "data": "FOO&#x0087;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,11): illegal-codepoint-for-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO‡ZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO‡ZOO</body></html>",
+        "noQuirksBodyHtml": "FOO‡ZOO"
+      }
+    },
+    {
+      "data": "FOO&#x0088;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,11): illegal-codepoint-for-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOOˆZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOOˆZOO</body></html>",
+        "noQuirksBodyHtml": "FOOˆZOO"
+      }
+    },
+    {
+      "data": "FOO&#x0089;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,11): illegal-codepoint-for-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO‰ZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO‰ZOO</body></html>",
+        "noQuirksBodyHtml": "FOO‰ZOO"
+      }
+    },
+    {
+      "data": "FOO&#x008A;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,11): illegal-codepoint-for-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOOŠZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOOŠZOO</body></html>",
+        "noQuirksBodyHtml": "FOOŠZOO"
+      }
+    },
+    {
+      "data": "FOO&#x008B;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,11): illegal-codepoint-for-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO‹ZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO‹ZOO</body></html>",
+        "noQuirksBodyHtml": "FOO‹ZOO"
+      }
+    },
+    {
+      "data": "FOO&#x008C;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,11): illegal-codepoint-for-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOOŒZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOOŒZOO</body></html>",
+        "noQuirksBodyHtml": "FOOŒZOO"
+      }
+    },
+    {
+      "data": "FOO&#x008D;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,11): illegal-codepoint-for-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO\8dZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO\8dZOO</body></html>",
+        "noQuirksBodyHtml": "FOO\8dZOO"
+      }
+    },
+    {
+      "data": "FOO&#x008E;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,11): illegal-codepoint-for-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOOŽZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOOŽZOO</body></html>",
+        "noQuirksBodyHtml": "FOOŽZOO"
+      }
+    },
+    {
+      "data": "FOO&#x008F;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,11): illegal-codepoint-for-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO\8fZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO\8fZOO</body></html>",
+        "noQuirksBodyHtml": "FOO\8fZOO"
+      }
+    },
+    {
+      "data": "FOO&#x0090;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,11): illegal-codepoint-for-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO\90ZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO\90ZOO</body></html>",
+        "noQuirksBodyHtml": "FOO\90ZOO"
+      }
+    },
+    {
+      "data": "FOO&#x0091;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,11): illegal-codepoint-for-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO‘ZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO‘ZOO</body></html>",
+        "noQuirksBodyHtml": "FOO‘ZOO"
+      }
+    },
+    {
+      "data": "FOO&#x0092;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,11): illegal-codepoint-for-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO’ZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO’ZOO</body></html>",
+        "noQuirksBodyHtml": "FOO’ZOO"
+      }
+    },
+    {
+      "data": "FOO&#x0093;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,11): illegal-codepoint-for-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO“ZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO“ZOO</body></html>",
+        "noQuirksBodyHtml": "FOO“ZOO"
+      }
+    },
+    {
+      "data": "FOO&#x0094;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,11): illegal-codepoint-for-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO”ZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO”ZOO</body></html>",
+        "noQuirksBodyHtml": "FOO”ZOO"
+      }
+    },
+    {
+      "data": "FOO&#x0095;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,11): illegal-codepoint-for-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO•ZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO•ZOO</body></html>",
+        "noQuirksBodyHtml": "FOO•ZOO"
+      }
+    },
+    {
+      "data": "FOO&#x0096;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,11): illegal-codepoint-for-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO–ZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO–ZOO</body></html>",
+        "noQuirksBodyHtml": "FOO–ZOO"
+      }
+    },
+    {
+      "data": "FOO&#x0097;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,11): illegal-codepoint-for-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO—ZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO—ZOO</body></html>",
+        "noQuirksBodyHtml": "FOO—ZOO"
+      }
+    },
+    {
+      "data": "FOO&#x0098;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,11): illegal-codepoint-for-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO˜ZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO˜ZOO</body></html>",
+        "noQuirksBodyHtml": "FOO˜ZOO"
+      }
+    },
+    {
+      "data": "FOO&#x0099;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,11): illegal-codepoint-for-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO™ZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO™ZOO</body></html>",
+        "noQuirksBodyHtml": "FOO™ZOO"
+      }
+    },
+    {
+      "data": "FOO&#x009A;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,11): illegal-codepoint-for-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOOšZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOOšZOO</body></html>",
+        "noQuirksBodyHtml": "FOOšZOO"
+      }
+    },
+    {
+      "data": "FOO&#x009B;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,11): illegal-codepoint-for-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO›ZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO›ZOO</body></html>",
+        "noQuirksBodyHtml": "FOO›ZOO"
+      }
+    },
+    {
+      "data": "FOO&#x009C;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,11): illegal-codepoint-for-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOOœZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOOœZOO</body></html>",
+        "noQuirksBodyHtml": "FOOœZOO"
+      }
+    },
+    {
+      "data": "FOO&#x009D;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,11): illegal-codepoint-for-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO\9dZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO\9dZOO</body></html>",
+        "noQuirksBodyHtml": "FOO\9dZOO"
+      }
+    },
+    {
+      "data": "FOO&#x009E;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,11): illegal-codepoint-for-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOOžZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOOžZOO</body></html>",
+        "noQuirksBodyHtml": "FOOžZOO"
+      }
+    },
+    {
+      "data": "FOO&#x009F;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,11): illegal-codepoint-for-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOOŸZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOOŸZOO</body></html>",
+        "noQuirksBodyHtml": "FOOŸZOO"
+      }
+    },
+    {
+      "data": "FOO&#x00A0;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO ZOO",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO&nbsp;ZOO</body></html>",
+        "noQuirksBodyHtml": "FOO&nbsp;ZOO"
+      }
+    },
+    {
+      "data": "FOO&#xD7FF;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO퟿ZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO퟿ZOO</body></html>",
+        "noQuirksBodyHtml": "FOO퟿ZOO"
+      }
+    },
+    {
+      "data": "FOO&#xD800;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,11): illegal-codepoint-for-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO�ZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO�ZOO</body></html>",
+        "noQuirksBodyHtml": "FOO�ZOO"
+      }
+    },
+    {
+      "data": "FOO&#xD801;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,11): illegal-codepoint-for-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO�ZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO�ZOO</body></html>",
+        "noQuirksBodyHtml": "FOO�ZOO"
+      }
+    },
+    {
+      "data": "FOO&#xDFFE;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,11): illegal-codepoint-for-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO�ZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO�ZOO</body></html>",
+        "noQuirksBodyHtml": "FOO�ZOO"
+      }
+    },
+    {
+      "data": "FOO&#xDFFF;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,11): illegal-codepoint-for-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO�ZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO�ZOO</body></html>",
+        "noQuirksBodyHtml": "FOO�ZOO"
+      }
+    },
+    {
+      "data": "FOO&#xE000;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOOZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOOZOO</body></html>",
+        "noQuirksBodyHtml": "FOOZOO"
+      }
+    },
+    {
+      "data": "FOO&#x10FFFE;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,13): illegal-codepoint-for-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO􏿾ZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO􏿾ZOO</body></html>",
+        "noQuirksBodyHtml": "FOO􏿾ZOO"
+      }
+    },
+    {
+      "data": "FOO&#x1087D4;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO􈟔ZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO􈟔ZOO</body></html>",
+        "noQuirksBodyHtml": "FOO􈟔ZOO"
+      }
+    },
+    {
+      "data": "FOO&#x10FFFF;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,13): illegal-codepoint-for-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO􏿿ZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO􏿿ZOO</body></html>",
+        "noQuirksBodyHtml": "FOO􏿿ZOO"
+      }
+    },
+    {
+      "data": "FOO&#x110000;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,13): illegal-codepoint-for-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO�ZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO�ZOO</body></html>",
+        "noQuirksBodyHtml": "FOO�ZOO"
+      }
+    },
+    {
+      "data": "FOO&#xFFFFFF;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,13): illegal-codepoint-for-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO�ZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO�ZOO</body></html>",
+        "noQuirksBodyHtml": "FOO�ZOO"
+      }
+    },
+    {
+      "data": "FOO&#11111111111",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,13): illegal-codepoint-for-numeric-entity",
+        "(1,13): eof-in-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO�"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO�</body></html>",
+        "noQuirksBodyHtml": "FOO�"
+      }
+    },
+    {
+      "data": "FOO&#1111111111",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,13): illegal-codepoint-for-numeric-entity",
+        "(1,13): eof-in-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO�"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO�</body></html>",
+        "noQuirksBodyHtml": "FOO�"
+      }
+    },
+    {
+      "data": "FOO&#111111111111",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,13): illegal-codepoint-for-numeric-entity",
+        "(1,13): eof-in-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO�"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO�</body></html>",
+        "noQuirksBodyHtml": "FOO�"
+      }
+    },
+    {
+      "data": "FOO&#11111111111ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,13): illegal-codepoint-for-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO�ZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO�ZOO</body></html>",
+        "noQuirksBodyHtml": "FOO�ZOO"
+      }
+    },
+    {
+      "data": "FOO&#1111111111ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,13): illegal-codepoint-for-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO�ZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO�ZOO</body></html>",
+        "noQuirksBodyHtml": "FOO�ZOO"
+      }
+    },
+    {
+      "data": "FOO&#111111111111ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,13): illegal-codepoint-for-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO�ZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO�ZOO</body></html>",
+        "noQuirksBodyHtml": "FOO�ZOO"
+      }
+    }
+  ],
+  "entities02.dat": [
+    {
+      "data": "<div bar=\"ZZ&gt;YY\"></div>",
+      "errors": [
+        "(1,20): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "attrs": [
+                      {
+                        "name": "bar",
+                        "value": "ZZ>YY"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div bar=\"ZZ>YY\"></div></body></html>",
+        "noQuirksBodyHtml": "<div bar=\"ZZ>YY\"></div>"
+      }
+    },
+    {
+      "data": "<div bar=\"ZZ&\"></div>",
+      "errors": [
+        "(1,15): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "attrs": [
+                      {
+                        "name": "bar",
+                        "value": "ZZ&",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div bar=\"ZZ&amp;\"></div></body></html>",
+        "noQuirksBodyHtml": "<div bar=\"ZZ&amp;\"></div>"
+      }
+    },
+    {
+      "data": "<div bar='ZZ&'></div>",
+      "errors": [
+        "(1,15): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "attrs": [
+                      {
+                        "name": "bar",
+                        "value": "ZZ&",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div bar=\"ZZ&amp;\"></div></body></html>",
+        "noQuirksBodyHtml": "<div bar=\"ZZ&amp;\"></div>"
+      }
+    },
+    {
+      "data": "<div bar=ZZ&></div>",
+      "errors": [
+        "(1,13): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "attrs": [
+                      {
+                        "name": "bar",
+                        "value": "ZZ&",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div bar=\"ZZ&amp;\"></div></body></html>",
+        "noQuirksBodyHtml": "<div bar=\"ZZ&amp;\"></div>"
+      }
+    },
+    {
+      "data": "<div bar=\"ZZ&gt=YY\"></div>",
+      "errors": [
+        "(1,15): named-entity-without-semicolon",
+        "(1,20): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "attrs": [
+                      {
+                        "name": "bar",
+                        "value": "ZZ&gt=YY",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div bar=\"ZZ&amp;gt=YY\"></div></body></html>",
+        "noQuirksBodyHtml": "<div bar=\"ZZ&amp;gt=YY\"></div>"
+      }
+    },
+    {
+      "data": "<div bar=\"ZZ&gt0YY\"></div>",
+      "errors": [
+        "(1,20): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "attrs": [
+                      {
+                        "name": "bar",
+                        "value": "ZZ&gt0YY",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div bar=\"ZZ&amp;gt0YY\"></div></body></html>",
+        "noQuirksBodyHtml": "<div bar=\"ZZ&amp;gt0YY\"></div>"
+      }
+    },
+    {
+      "data": "<div bar=\"ZZ&gt9YY\"></div>",
+      "errors": [
+        "(1,20): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "attrs": [
+                      {
+                        "name": "bar",
+                        "value": "ZZ&gt9YY",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div bar=\"ZZ&amp;gt9YY\"></div></body></html>",
+        "noQuirksBodyHtml": "<div bar=\"ZZ&amp;gt9YY\"></div>"
+      }
+    },
+    {
+      "data": "<div bar=\"ZZ&gtaYY\"></div>",
+      "errors": [
+        "(1,20): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "attrs": [
+                      {
+                        "name": "bar",
+                        "value": "ZZ&gtaYY",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div bar=\"ZZ&amp;gtaYY\"></div></body></html>",
+        "noQuirksBodyHtml": "<div bar=\"ZZ&amp;gtaYY\"></div>"
+      }
+    },
+    {
+      "data": "<div bar=\"ZZ&gtZYY\"></div>",
+      "errors": [
+        "(1,20): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "attrs": [
+                      {
+                        "name": "bar",
+                        "value": "ZZ&gtZYY",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div bar=\"ZZ&amp;gtZYY\"></div></body></html>",
+        "noQuirksBodyHtml": "<div bar=\"ZZ&amp;gtZYY\"></div>"
+      }
+    },
+    {
+      "data": "<div bar=\"ZZ&gt YY\"></div>",
+      "errors": [
+        "(1,15): named-entity-without-semicolon",
+        "(1,20): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "attrs": [
+                      {
+                        "name": "bar",
+                        "value": "ZZ> YY"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div bar=\"ZZ> YY\"></div></body></html>",
+        "noQuirksBodyHtml": "<div bar=\"ZZ> YY\"></div>"
+      }
+    },
+    {
+      "data": "<div bar=\"ZZ&gt\"></div>",
+      "errors": [
+        "(1,15): named-entity-without-semicolon",
+        "(1,17): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "attrs": [
+                      {
+                        "name": "bar",
+                        "value": "ZZ>"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div bar=\"ZZ>\"></div></body></html>",
+        "noQuirksBodyHtml": "<div bar=\"ZZ>\"></div>"
+      }
+    },
+    {
+      "data": "<div bar='ZZ&gt'></div>",
+      "errors": [
+        "(1,15): named-entity-without-semicolon",
+        "(1,17): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "attrs": [
+                      {
+                        "name": "bar",
+                        "value": "ZZ>"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div bar=\"ZZ>\"></div></body></html>",
+        "noQuirksBodyHtml": "<div bar=\"ZZ>\"></div>"
+      }
+    },
+    {
+      "data": "<div bar=ZZ&gt></div>",
+      "errors": [
+        "(1,14): named-entity-without-semicolon",
+        "(1,15): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "attrs": [
+                      {
+                        "name": "bar",
+                        "value": "ZZ>"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div bar=\"ZZ>\"></div></body></html>",
+        "noQuirksBodyHtml": "<div bar=\"ZZ>\"></div>"
+      }
+    },
+    {
+      "data": "<div bar=\"ZZ&pound_id=23\"></div>",
+      "errors": [
+        "(1,18): named-entity-without-semicolon",
+        "(1,26): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "attrs": [
+                      {
+                        "name": "bar",
+                        "value": "ZZ£_id=23"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div bar=\"ZZ£_id=23\"></div></body></html>",
+        "noQuirksBodyHtml": "<div bar=\"ZZ£_id=23\"></div>"
+      }
+    },
+    {
+      "data": "<div bar=\"ZZ&prod_id=23\"></div>",
+      "errors": [
+        "(1,25): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "attrs": [
+                      {
+                        "name": "bar",
+                        "value": "ZZ&prod_id=23",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div bar=\"ZZ&amp;prod_id=23\"></div></body></html>",
+        "noQuirksBodyHtml": "<div bar=\"ZZ&amp;prod_id=23\"></div>"
+      }
+    },
+    {
+      "data": "<div bar=\"ZZ&pound;_id=23\"></div>",
+      "errors": [
+        "(1,27): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "attrs": [
+                      {
+                        "name": "bar",
+                        "value": "ZZ£_id=23"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div bar=\"ZZ£_id=23\"></div></body></html>",
+        "noQuirksBodyHtml": "<div bar=\"ZZ£_id=23\"></div>"
+      }
+    },
+    {
+      "data": "<div bar=\"ZZ&prod;_id=23\"></div>",
+      "errors": [
+        "(1,26): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "attrs": [
+                      {
+                        "name": "bar",
+                        "value": "ZZ∏_id=23"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div bar=\"ZZ∏_id=23\"></div></body></html>",
+        "noQuirksBodyHtml": "<div bar=\"ZZ∏_id=23\"></div>"
+      }
+    },
+    {
+      "data": "<div bar=\"ZZ&pound=23\"></div>",
+      "errors": [
+        "(1,18): named-entity-without-semicolon",
+        "(1,23): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "attrs": [
+                      {
+                        "name": "bar",
+                        "value": "ZZ&pound=23",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div bar=\"ZZ&amp;pound=23\"></div></body></html>",
+        "noQuirksBodyHtml": "<div bar=\"ZZ&amp;pound=23\"></div>"
+      }
+    },
+    {
+      "data": "<div bar=\"ZZ&prod=23\"></div>",
+      "errors": [
+        "(1,22): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "attrs": [
+                      {
+                        "name": "bar",
+                        "value": "ZZ&prod=23",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div bar=\"ZZ&amp;prod=23\"></div></body></html>",
+        "noQuirksBodyHtml": "<div bar=\"ZZ&amp;prod=23\"></div>"
+      }
+    },
+    {
+      "data": "<div>ZZ&pound_id=23</div>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,13): named-entity-without-semicolon"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "text": "ZZ£_id=23"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div>ZZ£_id=23</div></body></html>",
+        "noQuirksBodyHtml": "<div>ZZ£_id=23</div>"
+      }
+    },
+    {
+      "data": "<div>ZZ&prod_id=23</div>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "text": "ZZ&prod_id=23",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div>ZZ&amp;prod_id=23</div></body></html>",
+        "noQuirksBodyHtml": "<div>ZZ&amp;prod_id=23</div>"
+      }
+    },
+    {
+      "data": "<div>ZZ&pound;_id=23</div>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "text": "ZZ£_id=23"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div>ZZ£_id=23</div></body></html>",
+        "noQuirksBodyHtml": "<div>ZZ£_id=23</div>"
+      }
+    },
+    {
+      "data": "<div>ZZ&prod;_id=23</div>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "text": "ZZ∏_id=23"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div>ZZ∏_id=23</div></body></html>",
+        "noQuirksBodyHtml": "<div>ZZ∏_id=23</div>"
+      }
+    },
+    {
+      "data": "<div>ZZ&pound=23</div>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,13): named-entity-without-semicolon"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "text": "ZZ£=23"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div>ZZ£=23</div></body></html>",
+        "noQuirksBodyHtml": "<div>ZZ£=23</div>"
+      }
+    },
+    {
+      "data": "<div>ZZ&prod=23</div>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "text": "ZZ&prod=23",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div>ZZ&amp;prod=23</div></body></html>",
+        "noQuirksBodyHtml": "<div>ZZ&amp;prod=23</div>"
+      }
+    },
+    {
+      "data": "<div>ZZ&AElig=</div>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "text": "ZZÆ="
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div>ZZÆ=</div></body></html>",
+        "noQuirksBodyHtml": "<div>ZZÆ=</div>"
+      }
+    }
+  ],
+  "foreign-fragment.dat": [
+    {
+      "data": "<nobr>X",
+      "errors": [
+        "6: HTML start tag “nobr” in a foreign namespace context.",
+        "7: End of file seen and there were open elements.",
+        "6: Unclosed element “nobr”."
+      ],
+      "fragment": {
+        "name": "path",
+        "ns": "http://www.w3.org/2000/svg"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "svg nobr": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "nobr",
+            "ns": "http://www.w3.org/2000/svg",
+            "children": [
+              {
+                "text": "X"
+              }
+            ]
+          }
+        ],
+        "html": "<nobr>X</nobr>",
+        "noQuirksBodyHtml": "<nobr>X</nobr>"
+      }
+    },
+    {
+      "data": "<font color></font>X",
+      "errors": [
+        "12: HTML start tag “font” in a foreign namespace context."
+      ],
+      "fragment": {
+        "name": "path",
+        "ns": "http://www.w3.org/2000/svg"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "svg font": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "font",
+            "ns": "http://www.w3.org/2000/svg",
+            "attrs": [
+              {
+                "name": "color",
+                "value": ""
+              }
+            ]
+          },
+          {
+            "text": "X"
+          }
+        ],
+        "html": "<font color=\"\"></font>X",
+        "noQuirksBodyHtml": "<font color=\"\"></font>X"
+      }
+    },
+    {
+      "data": "<font></font>X",
+      "errors": [],
+      "fragment": {
+        "name": "path",
+        "ns": "http://www.w3.org/2000/svg"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "svg font": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "font",
+            "ns": "http://www.w3.org/2000/svg"
+          },
+          {
+            "text": "X"
+          }
+        ],
+        "html": "<font></font>X",
+        "noQuirksBodyHtml": "<font></font>X"
+      }
+    },
+    {
+      "data": "<g></path>X",
+      "errors": [
+        "10: End tag “path” did not match the name of the current open element (“g”).",
+        "11: End of file seen and there were open elements.",
+        "3: Unclosed element “g”."
+      ],
+      "fragment": {
+        "name": "path",
+        "ns": "http://www.w3.org/2000/svg"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "svg g": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "g",
+            "ns": "http://www.w3.org/2000/svg",
+            "children": [
+              {
+                "text": "X"
+              }
+            ]
+          }
+        ],
+        "html": "<g>X</g>",
+        "noQuirksBodyHtml": "<g>X</g>"
+      }
+    },
+    {
+      "data": "</path>X",
+      "errors": [
+        "5: Stray end tag “path”."
+      ],
+      "fragment": {
+        "name": "path",
+        "ns": "http://www.w3.org/2000/svg"
+      },
+      "document": {
+        "props": {
+          "tags": {}
+        },
+        "tree": [
+          {
+            "text": "X"
+          }
+        ],
+        "html": "X",
+        "noQuirksBodyHtml": "X"
+      }
+    },
+    {
+      "data": "</foreignObject>X",
+      "errors": [
+        "5: Stray end tag “foreignobject”."
+      ],
+      "fragment": {
+        "name": "foreignObject",
+        "ns": "http://www.w3.org/2000/svg"
+      },
+      "document": {
+        "props": {
+          "tags": {}
+        },
+        "tree": [
+          {
+            "text": "X"
+          }
+        ],
+        "html": "X",
+        "noQuirksBodyHtml": "X"
+      }
+    },
+    {
+      "data": "</desc>X",
+      "errors": [
+        "5: Stray end tag “desc”."
+      ],
+      "fragment": {
+        "name": "desc",
+        "ns": "http://www.w3.org/2000/svg"
+      },
+      "document": {
+        "props": {
+          "tags": {}
+        },
+        "tree": [
+          {
+            "text": "X"
+          }
+        ],
+        "html": "X",
+        "noQuirksBodyHtml": "X"
+      }
+    },
+    {
+      "data": "</title>X",
+      "errors": [
+        "5: Stray end tag “title”."
+      ],
+      "fragment": {
+        "name": "title",
+        "ns": "http://www.w3.org/2000/svg"
+      },
+      "document": {
+        "props": {
+          "tags": {}
+        },
+        "tree": [
+          {
+            "text": "X"
+          }
+        ],
+        "html": "X",
+        "noQuirksBodyHtml": "X"
+      }
+    },
+    {
+      "data": "</svg>X",
+      "errors": [
+        "5: Stray end tag “svg”."
+      ],
+      "fragment": {
+        "name": "svg",
+        "ns": "http://www.w3.org/2000/svg"
+      },
+      "document": {
+        "props": {
+          "tags": {}
+        },
+        "tree": [
+          {
+            "text": "X"
+          }
+        ],
+        "html": "X",
+        "noQuirksBodyHtml": "X"
+      }
+    },
+    {
+      "data": "</mfenced>X",
+      "errors": [
+        "5: Stray end tag “mfenced”."
+      ],
+      "fragment": {
+        "name": "mfenced",
+        "ns": "http://www.w3.org/1998/Math/MathML"
+      },
+      "document": {
+        "props": {
+          "tags": {}
+        },
+        "tree": [
+          {
+            "text": "X"
+          }
+        ],
+        "html": "X",
+        "noQuirksBodyHtml": "X"
+      }
+    },
+    {
+      "data": "</malignmark>X",
+      "errors": [
+        "5: Stray end tag “malignmark”."
+      ],
+      "fragment": {
+        "name": "malignmark",
+        "ns": "http://www.w3.org/1998/Math/MathML"
+      },
+      "document": {
+        "props": {
+          "tags": {}
+        },
+        "tree": [
+          {
+            "text": "X"
+          }
+        ],
+        "html": "X",
+        "noQuirksBodyHtml": "X"
+      }
+    },
+    {
+      "data": "</math>X",
+      "errors": [
+        "5: Stray end tag “math”."
+      ],
+      "fragment": {
+        "name": "math",
+        "ns": "http://www.w3.org/1998/Math/MathML"
+      },
+      "document": {
+        "props": {
+          "tags": {}
+        },
+        "tree": [
+          {
+            "text": "X"
+          }
+        ],
+        "html": "X",
+        "noQuirksBodyHtml": "X"
+      }
+    },
+    {
+      "data": "</annotation-xml>X",
+      "errors": [
+        "5: Stray end tag “annotation-xml”."
+      ],
+      "fragment": {
+        "name": "annotation-xml",
+        "ns": "http://www.w3.org/1998/Math/MathML"
+      },
+      "document": {
+        "props": {
+          "tags": {}
+        },
+        "tree": [
+          {
+            "text": "X"
+          }
+        ],
+        "html": "X",
+        "noQuirksBodyHtml": "X"
+      }
+    },
+    {
+      "data": "</mtext>X",
+      "errors": [
+        "5: Stray end tag “mtext”."
+      ],
+      "fragment": {
+        "name": "mtext",
+        "ns": "http://www.w3.org/1998/Math/MathML"
+      },
+      "document": {
+        "props": {
+          "tags": {}
+        },
+        "tree": [
+          {
+            "text": "X"
+          }
+        ],
+        "html": "X",
+        "noQuirksBodyHtml": "X"
+      }
+    },
+    {
+      "data": "</mi>X",
+      "errors": [
+        "5: Stray end tag “mi”."
+      ],
+      "fragment": {
+        "name": "mi",
+        "ns": "http://www.w3.org/1998/Math/MathML"
+      },
+      "document": {
+        "props": {
+          "tags": {}
+        },
+        "tree": [
+          {
+            "text": "X"
+          }
+        ],
+        "html": "X",
+        "noQuirksBodyHtml": "X"
+      }
+    },
+    {
+      "data": "</mo>X",
+      "errors": [
+        "5: Stray end tag “mo”."
+      ],
+      "fragment": {
+        "name": "mo",
+        "ns": "http://www.w3.org/1998/Math/MathML"
+      },
+      "document": {
+        "props": {
+          "tags": {}
+        },
+        "tree": [
+          {
+            "text": "X"
+          }
+        ],
+        "html": "X",
+        "noQuirksBodyHtml": "X"
+      }
+    },
+    {
+      "data": "</mn>X",
+      "errors": [
+        "5: Stray end tag “mn”."
+      ],
+      "fragment": {
+        "name": "mn",
+        "ns": "http://www.w3.org/1998/Math/MathML"
+      },
+      "document": {
+        "props": {
+          "tags": {}
+        },
+        "tree": [
+          {
+            "text": "X"
+          }
+        ],
+        "html": "X",
+        "noQuirksBodyHtml": "X"
+      }
+    },
+    {
+      "data": "</ms>X",
+      "errors": [
+        "5: Stray end tag “ms”."
+      ],
+      "fragment": {
+        "name": "ms",
+        "ns": "http://www.w3.org/1998/Math/MathML"
+      },
+      "document": {
+        "props": {
+          "tags": {}
+        },
+        "tree": [
+          {
+            "text": "X"
+          }
+        ],
+        "html": "X",
+        "noQuirksBodyHtml": "X"
+      }
+    },
+    {
+      "data": "<b></b><mglyph/><i></i><malignmark/><u></u><ms/>X",
+      "errors": [
+        "51: Self-closing syntax (“/>”) used on a non-void HTML element. Ignoring the slash and treating as a start tag.",
+        "52: End of file seen and there were open elements.",
+        "51: Unclosed element “ms”."
+      ],
+      "fragment": {
+        "name": "ms",
+        "ns": "http://www.w3.org/1998/Math/MathML"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "b": true,
+            "math mglyph": true,
+            "i": true,
+            "math malignmark": true,
+            "u": true,
+            "ms": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "b"
+          },
+          {
+            "tag": "mglyph",
+            "ns": "http://www.w3.org/1998/Math/MathML"
+          },
+          {
+            "tag": "i"
+          },
+          {
+            "tag": "malignmark",
+            "ns": "http://www.w3.org/1998/Math/MathML"
+          },
+          {
+            "tag": "u"
+          },
+          {
+            "tag": "ms",
+            "children": [
+              {
+                "text": "X"
+              }
+            ]
+          }
+        ],
+        "html": "<b></b><mglyph></mglyph><i></i><malignmark></malignmark><u></u><ms>X</ms>",
+        "noQuirksBodyHtml": "<b></b><mglyph><i></i><malignmark><u></u><ms>X</ms></malignmark></mglyph>"
+      }
+    },
+    {
+      "data": "<malignmark></malignmark>",
+      "errors": [],
+      "fragment": {
+        "name": "ms",
+        "ns": "http://www.w3.org/1998/Math/MathML"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "math malignmark": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "malignmark",
+            "ns": "http://www.w3.org/1998/Math/MathML"
+          }
+        ],
+        "html": "<malignmark></malignmark>",
+        "noQuirksBodyHtml": "<malignmark></malignmark>"
+      }
+    },
+    {
+      "data": "<div></div>",
+      "errors": [],
+      "fragment": {
+        "name": "ms",
+        "ns": "http://www.w3.org/1998/Math/MathML"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "div"
+          }
+        ],
+        "html": "<div></div>",
+        "noQuirksBodyHtml": "<div></div>"
+      }
+    },
+    {
+      "data": "<figure></figure>",
+      "errors": [],
+      "fragment": {
+        "name": "ms",
+        "ns": "http://www.w3.org/1998/Math/MathML"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "figure": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "figure"
+          }
+        ],
+        "html": "<figure></figure>",
+        "noQuirksBodyHtml": "<figure></figure>"
+      }
+    },
+    {
+      "data": "<b></b><mglyph/><i></i><malignmark/><u></u><mn/>X",
+      "errors": [
+        "51: Self-closing syntax (“/>”) used on a non-void HTML element. Ignoring the slash and treating as a start tag.",
+        "52: End of file seen and there were open elements.",
+        "51: Unclosed element “mn”."
+      ],
+      "fragment": {
+        "name": "mn",
+        "ns": "http://www.w3.org/1998/Math/MathML"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "b": true,
+            "math mglyph": true,
+            "i": true,
+            "math malignmark": true,
+            "u": true,
+            "mn": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "b"
+          },
+          {
+            "tag": "mglyph",
+            "ns": "http://www.w3.org/1998/Math/MathML"
+          },
+          {
+            "tag": "i"
+          },
+          {
+            "tag": "malignmark",
+            "ns": "http://www.w3.org/1998/Math/MathML"
+          },
+          {
+            "tag": "u"
+          },
+          {
+            "tag": "mn",
+            "children": [
+              {
+                "text": "X"
+              }
+            ]
+          }
+        ],
+        "html": "<b></b><mglyph></mglyph><i></i><malignmark></malignmark><u></u><mn>X</mn>",
+        "noQuirksBodyHtml": "<b></b><mglyph><i></i><malignmark><u></u><mn>X</mn></malignmark></mglyph>"
+      }
+    },
+    {
+      "data": "<malignmark></malignmark>",
+      "errors": [],
+      "fragment": {
+        "name": "mn",
+        "ns": "http://www.w3.org/1998/Math/MathML"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "math malignmark": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "malignmark",
+            "ns": "http://www.w3.org/1998/Math/MathML"
+          }
+        ],
+        "html": "<malignmark></malignmark>",
+        "noQuirksBodyHtml": "<malignmark></malignmark>"
+      }
+    },
+    {
+      "data": "<div></div>",
+      "errors": [],
+      "fragment": {
+        "name": "mn",
+        "ns": "http://www.w3.org/1998/Math/MathML"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "div"
+          }
+        ],
+        "html": "<div></div>",
+        "noQuirksBodyHtml": "<div></div>"
+      }
+    },
+    {
+      "data": "<figure></figure>",
+      "errors": [],
+      "fragment": {
+        "name": "mn",
+        "ns": "http://www.w3.org/1998/Math/MathML"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "figure": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "figure"
+          }
+        ],
+        "html": "<figure></figure>",
+        "noQuirksBodyHtml": "<figure></figure>"
+      }
+    },
+    {
+      "data": "<b></b><mglyph/><i></i><malignmark/><u></u><mo/>X",
+      "errors": [
+        "51: Self-closing syntax (“/>”) used on a non-void HTML element. Ignoring the slash and treating as a start tag.",
+        "52: End of file seen and there were open elements.",
+        "51: Unclosed element “mo”."
+      ],
+      "fragment": {
+        "name": "mo",
+        "ns": "http://www.w3.org/1998/Math/MathML"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "b": true,
+            "math mglyph": true,
+            "i": true,
+            "math malignmark": true,
+            "u": true,
+            "mo": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "b"
+          },
+          {
+            "tag": "mglyph",
+            "ns": "http://www.w3.org/1998/Math/MathML"
+          },
+          {
+            "tag": "i"
+          },
+          {
+            "tag": "malignmark",
+            "ns": "http://www.w3.org/1998/Math/MathML"
+          },
+          {
+            "tag": "u"
+          },
+          {
+            "tag": "mo",
+            "children": [
+              {
+                "text": "X"
+              }
+            ]
+          }
+        ],
+        "html": "<b></b><mglyph></mglyph><i></i><malignmark></malignmark><u></u><mo>X</mo>",
+        "noQuirksBodyHtml": "<b></b><mglyph><i></i><malignmark><u></u><mo>X</mo></malignmark></mglyph>"
+      }
+    },
+    {
+      "data": "<malignmark></malignmark>",
+      "errors": [],
+      "fragment": {
+        "name": "mo",
+        "ns": "http://www.w3.org/1998/Math/MathML"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "math malignmark": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "malignmark",
+            "ns": "http://www.w3.org/1998/Math/MathML"
+          }
+        ],
+        "html": "<malignmark></malignmark>",
+        "noQuirksBodyHtml": "<malignmark></malignmark>"
+      }
+    },
+    {
+      "data": "<div></div>",
+      "errors": [],
+      "fragment": {
+        "name": "mo",
+        "ns": "http://www.w3.org/1998/Math/MathML"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "div"
+          }
+        ],
+        "html": "<div></div>",
+        "noQuirksBodyHtml": "<div></div>"
+      }
+    },
+    {
+      "data": "<figure></figure>",
+      "errors": [],
+      "fragment": {
+        "name": "mo",
+        "ns": "http://www.w3.org/1998/Math/MathML"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "figure": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "figure"
+          }
+        ],
+        "html": "<figure></figure>",
+        "noQuirksBodyHtml": "<figure></figure>"
+      }
+    },
+    {
+      "data": "<b></b><mglyph/><i></i><malignmark/><u></u><mi/>X",
+      "errors": [
+        "51: Self-closing syntax (“/>”) used on a non-void HTML element. Ignoring the slash and treating as a start tag.",
+        "52: End of file seen and there were open elements.",
+        "51: Unclosed element “mi”."
+      ],
+      "fragment": {
+        "name": "mi",
+        "ns": "http://www.w3.org/1998/Math/MathML"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "b": true,
+            "math mglyph": true,
+            "i": true,
+            "math malignmark": true,
+            "u": true,
+            "mi": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "b"
+          },
+          {
+            "tag": "mglyph",
+            "ns": "http://www.w3.org/1998/Math/MathML"
+          },
+          {
+            "tag": "i"
+          },
+          {
+            "tag": "malignmark",
+            "ns": "http://www.w3.org/1998/Math/MathML"
+          },
+          {
+            "tag": "u"
+          },
+          {
+            "tag": "mi",
+            "children": [
+              {
+                "text": "X"
+              }
+            ]
+          }
+        ],
+        "html": "<b></b><mglyph></mglyph><i></i><malignmark></malignmark><u></u><mi>X</mi>",
+        "noQuirksBodyHtml": "<b></b><mglyph><i></i><malignmark><u></u><mi>X</mi></malignmark></mglyph>"
+      }
+    },
+    {
+      "data": "<malignmark></malignmark>",
+      "errors": [],
+      "fragment": {
+        "name": "mi",
+        "ns": "http://www.w3.org/1998/Math/MathML"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "math malignmark": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "malignmark",
+            "ns": "http://www.w3.org/1998/Math/MathML"
+          }
+        ],
+        "html": "<malignmark></malignmark>",
+        "noQuirksBodyHtml": "<malignmark></malignmark>"
+      }
+    },
+    {
+      "data": "<div></div>",
+      "errors": [],
+      "fragment": {
+        "name": "mi",
+        "ns": "http://www.w3.org/1998/Math/MathML"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "div"
+          }
+        ],
+        "html": "<div></div>",
+        "noQuirksBodyHtml": "<div></div>"
+      }
+    },
+    {
+      "data": "<figure></figure>",
+      "errors": [],
+      "fragment": {
+        "name": "mi",
+        "ns": "http://www.w3.org/1998/Math/MathML"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "figure": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "figure"
+          }
+        ],
+        "html": "<figure></figure>",
+        "noQuirksBodyHtml": "<figure></figure>"
+      }
+    },
+    {
+      "data": "<b></b><mglyph/><i></i><malignmark/><u></u><mtext/>X",
+      "errors": [
+        "51: Self-closing syntax (“/>”) used on a non-void HTML element. Ignoring the slash and treating as a start tag.",
+        "52: End of file seen and there were open elements.",
+        "51: Unclosed element “mtext”."
+      ],
+      "fragment": {
+        "name": "mtext",
+        "ns": "http://www.w3.org/1998/Math/MathML"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "b": true,
+            "math mglyph": true,
+            "i": true,
+            "math malignmark": true,
+            "u": true,
+            "mtext": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "b"
+          },
+          {
+            "tag": "mglyph",
+            "ns": "http://www.w3.org/1998/Math/MathML"
+          },
+          {
+            "tag": "i"
+          },
+          {
+            "tag": "malignmark",
+            "ns": "http://www.w3.org/1998/Math/MathML"
+          },
+          {
+            "tag": "u"
+          },
+          {
+            "tag": "mtext",
+            "children": [
+              {
+                "text": "X"
+              }
+            ]
+          }
+        ],
+        "html": "<b></b><mglyph></mglyph><i></i><malignmark></malignmark><u></u><mtext>X</mtext>",
+        "noQuirksBodyHtml": "<b></b><mglyph><i></i><malignmark><u></u><mtext>X</mtext></malignmark></mglyph>"
+      }
+    },
+    {
+      "data": "<malignmark></malignmark>",
+      "errors": [],
+      "fragment": {
+        "name": "mtext",
+        "ns": "http://www.w3.org/1998/Math/MathML"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "math malignmark": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "malignmark",
+            "ns": "http://www.w3.org/1998/Math/MathML"
+          }
+        ],
+        "html": "<malignmark></malignmark>",
+        "noQuirksBodyHtml": "<malignmark></malignmark>"
+      }
+    },
+    {
+      "data": "<div></div>",
+      "errors": [],
+      "fragment": {
+        "name": "mtext",
+        "ns": "http://www.w3.org/1998/Math/MathML"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "div"
+          }
+        ],
+        "html": "<div></div>",
+        "noQuirksBodyHtml": "<div></div>"
+      }
+    },
+    {
+      "data": "<figure></figure>",
+      "errors": [],
+      "fragment": {
+        "name": "mtext",
+        "ns": "http://www.w3.org/1998/Math/MathML"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "figure": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "figure"
+          }
+        ],
+        "html": "<figure></figure>",
+        "noQuirksBodyHtml": "<figure></figure>"
+      }
+    },
+    {
+      "data": "<div></div>",
+      "errors": [
+        "5: HTML start tag “div” in a foreign namespace context."
+      ],
+      "fragment": {
+        "name": "annotation-xml",
+        "ns": "http://www.w3.org/1998/Math/MathML"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "math div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "div",
+            "ns": "http://www.w3.org/1998/Math/MathML"
+          }
+        ],
+        "html": "<div></div>",
+        "noQuirksBodyHtml": "<div></div>"
+      }
+    },
+    {
+      "data": "<figure></figure>",
+      "errors": [],
+      "fragment": {
+        "name": "annotation-xml",
+        "ns": "http://www.w3.org/1998/Math/MathML"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "math figure": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "figure",
+            "ns": "http://www.w3.org/1998/Math/MathML"
+          }
+        ],
+        "html": "<figure></figure>",
+        "noQuirksBodyHtml": "<figure></figure>"
+      }
+    },
+    {
+      "data": "<div></div>",
+      "errors": [
+        "5: HTML start tag “div” in a foreign namespace context."
+      ],
+      "fragment": {
+        "name": "math",
+        "ns": "http://www.w3.org/1998/Math/MathML"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "math div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "div",
+            "ns": "http://www.w3.org/1998/Math/MathML"
+          }
+        ],
+        "html": "<div></div>",
+        "noQuirksBodyHtml": "<div></div>"
+      }
+    },
+    {
+      "data": "<figure></figure>",
+      "errors": [],
+      "fragment": {
+        "name": "math",
+        "ns": "http://www.w3.org/1998/Math/MathML"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "math figure": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "figure",
+            "ns": "http://www.w3.org/1998/Math/MathML"
+          }
+        ],
+        "html": "<figure></figure>",
+        "noQuirksBodyHtml": "<figure></figure>"
+      }
+    },
+    {
+      "data": "<div></div>",
+      "errors": [],
+      "fragment": {
+        "name": "foreignObject",
+        "ns": "http://www.w3.org/2000/svg"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "div"
+          }
+        ],
+        "html": "<div></div>",
+        "noQuirksBodyHtml": "<div></div>"
+      }
+    },
+    {
+      "data": "<figure></figure>",
+      "errors": [],
+      "fragment": {
+        "name": "foreignObject",
+        "ns": "http://www.w3.org/2000/svg"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "figure": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "figure"
+          }
+        ],
+        "html": "<figure></figure>",
+        "noQuirksBodyHtml": "<figure></figure>"
+      }
+    },
+    {
+      "data": "<div></div>",
+      "errors": [],
+      "fragment": {
+        "name": "title",
+        "ns": "http://www.w3.org/2000/svg"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "div"
+          }
+        ],
+        "html": "<div></div>",
+        "noQuirksBodyHtml": "<div></div>"
+      }
+    },
+    {
+      "data": "<figure></figure>",
+      "errors": [],
+      "fragment": {
+        "name": "title",
+        "ns": "http://www.w3.org/2000/svg"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "figure": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "figure"
+          }
+        ],
+        "html": "<figure></figure>",
+        "noQuirksBodyHtml": "<figure></figure>"
+      }
+    },
+    {
+      "data": "<figure></figure>",
+      "errors": [],
+      "fragment": {
+        "name": "desc",
+        "ns": "http://www.w3.org/2000/svg"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "figure": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "figure"
+          }
+        ],
+        "html": "<figure></figure>",
+        "noQuirksBodyHtml": "<figure></figure>"
+      }
+    },
+    {
+      "data": "<div><h1>X</h1></div>",
+      "errors": [
+        "5: HTML start tag “div” in a foreign namespace context.",
+        "9: HTML start tag “h1” in a foreign namespace context."
+      ],
+      "fragment": {
+        "name": "svg",
+        "ns": "http://www.w3.org/2000/svg"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "svg div": true,
+            "svg h1": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "div",
+            "ns": "http://www.w3.org/2000/svg",
+            "children": [
+              {
+                "tag": "h1",
+                "ns": "http://www.w3.org/2000/svg",
+                "children": [
+                  {
+                    "text": "X"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<div><h1>X</h1></div>",
+        "noQuirksBodyHtml": "<div><h1>X</h1></div>"
+      }
+    },
+    {
+      "data": "<div></div>",
+      "errors": [
+        "5: HTML start tag “div” in a foreign namespace context."
+      ],
+      "fragment": {
+        "name": "svg",
+        "ns": "http://www.w3.org/2000/svg"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "svg div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "div",
+            "ns": "http://www.w3.org/2000/svg"
+          }
+        ],
+        "html": "<div></div>",
+        "noQuirksBodyHtml": "<div></div>"
+      }
+    },
+    {
+      "data": "<div></div>",
+      "errors": [],
+      "fragment": {
+        "name": "desc",
+        "ns": "http://www.w3.org/2000/svg"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "div"
+          }
+        ],
+        "html": "<div></div>",
+        "noQuirksBodyHtml": "<div></div>"
+      }
+    },
+    {
+      "data": "<figure></figure>",
+      "errors": [],
+      "fragment": {
+        "name": "desc",
+        "ns": "http://www.w3.org/2000/svg"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "figure": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "figure"
+          }
+        ],
+        "html": "<figure></figure>",
+        "noQuirksBodyHtml": "<figure></figure>"
+      }
+    },
+    {
+      "data": "<plaintext><foo>",
+      "errors": [
+        "16: End of file seen and there were open elements.",
+        "11: Unclosed element “plaintext”."
+      ],
+      "fragment": {
+        "name": "desc",
+        "ns": "http://www.w3.org/2000/svg"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "plaintext": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "plaintext",
+            "children": [
+              {
+                "text": "<foo>",
+                "no_escape": true
+              }
+            ]
+          }
+        ],
+        "html": "<plaintext><foo></plaintext>",
+        "noQuirksBodyHtml": "<plaintext><foo></plaintext>"
+      }
+    },
+    {
+      "data": "<frameset>X",
+      "errors": [
+        "6: Stray start tag “frameset”."
+      ],
+      "fragment": {
+        "name": "desc",
+        "ns": "http://www.w3.org/2000/svg"
+      },
+      "document": {
+        "props": {
+          "tags": {}
+        },
+        "tree": [
+          {
+            "text": "X"
+          }
+        ],
+        "html": "X",
+        "noQuirksBodyHtml": "X"
+      }
+    },
+    {
+      "data": "<head>X",
+      "errors": [
+        "6: Stray start tag “head”."
+      ],
+      "fragment": {
+        "name": "desc",
+        "ns": "http://www.w3.org/2000/svg"
+      },
+      "document": {
+        "props": {
+          "tags": {}
+        },
+        "tree": [
+          {
+            "text": "X"
+          }
+        ],
+        "html": "X",
+        "noQuirksBodyHtml": "X"
+      }
+    },
+    {
+      "data": "<body>X",
+      "errors": [
+        "6: Stray start tag “body”."
+      ],
+      "fragment": {
+        "name": "desc",
+        "ns": "http://www.w3.org/2000/svg"
+      },
+      "document": {
+        "props": {
+          "tags": {}
+        },
+        "tree": [
+          {
+            "text": "X"
+          }
+        ],
+        "html": "X",
+        "noQuirksBodyHtml": "X"
+      }
+    },
+    {
+      "data": "<html>X",
+      "errors": [
+        "6: Stray start tag “html”."
+      ],
+      "fragment": {
+        "name": "desc",
+        "ns": "http://www.w3.org/2000/svg"
+      },
+      "document": {
+        "props": {
+          "tags": {}
+        },
+        "tree": [
+          {
+            "text": "X"
+          }
+        ],
+        "html": "X",
+        "noQuirksBodyHtml": "X"
+      }
+    },
+    {
+      "data": "<html class=\"foo\">X",
+      "errors": [
+        "6: Stray start tag “html”."
+      ],
+      "fragment": {
+        "name": "desc",
+        "ns": "http://www.w3.org/2000/svg"
+      },
+      "document": {
+        "props": {
+          "tags": {}
+        },
+        "tree": [
+          {
+            "text": "X"
+          }
+        ],
+        "html": "X",
+        "noQuirksBodyHtml": "X"
+      }
+    },
+    {
+      "data": "<body class=\"foo\">X",
+      "errors": [
+        "6: Stray start tag “body”."
+      ],
+      "fragment": {
+        "name": "desc",
+        "ns": "http://www.w3.org/2000/svg"
+      },
+      "document": {
+        "props": {
+          "tags": {}
+        },
+        "tree": [
+          {
+            "text": "X"
+          }
+        ],
+        "html": "X",
+        "noQuirksBodyHtml": "X"
+      }
+    }
+  ],
+  "html5test-com.dat": [
+    {
+      "data": "<div<div>",
+      "errors": [
+        "(1,9): expected-doctype-but-got-start-tag",
+        "(1,9): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div<div": true
+          },
+          "tagWithLt": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div<div"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div<div></div<div></body></html>",
+        "noQuirksBodyHtml": "<div<div></div<div>"
+      }
+    },
+    {
+      "data": "<div foo<bar=''>",
+      "errors": [
+        "(1,9): invalid-character-in-attribute-name",
+        "(1,16): expected-doctype-but-got-start-tag",
+        "(1,16): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true
+          },
+          "attrWithFunnyChar": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "attrs": [
+                      {
+                        "name": "foo<bar",
+                        "value": ""
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div foo<bar=\"\"></div></body></html>",
+        "noQuirksBodyHtml": "<div foo<bar=\"\"></div>"
+      }
+    },
+    {
+      "data": "<div foo=`bar`>",
+      "errors": [
+        "(1,10): equals-in-unquoted-attribute-value",
+        "(1,14): unexpected-character-in-unquoted-attribute-value",
+        "(1,15): expected-doctype-but-got-start-tag",
+        "(1,15): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "attrs": [
+                      {
+                        "name": "foo",
+                        "value": "`bar`"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div foo=\"`bar`\"></div></body></html>",
+        "noQuirksBodyHtml": "<div foo=\"`bar`\"></div>"
+      }
+    },
+    {
+      "data": "<div \\\"foo=''>",
+      "errors": [
+        "(1,7): invalid-character-in-attribute-name",
+        "(1,14): expected-doctype-but-got-start-tag",
+        "(1,14): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true
+          },
+          "attrWithFunnyChar": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "attrs": [
+                      {
+                        "name": "\\\"foo",
+                        "value": ""
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div \\\"foo=\"\"></div></body></html>",
+        "noQuirksBodyHtml": "<div \\\"foo=\"\"></div>"
+      }
+    },
+    {
+      "data": "<a href='\\nbar'></a>",
+      "errors": [
+        "(1,16): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "a": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "a",
+                    "attrs": [
+                      {
+                        "name": "href",
+                        "value": "\\nbar"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><a href=\"\\nbar\"></a></body></html>",
+        "noQuirksBodyHtml": "<a href=\"\\nbar\"></a>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "&lang;&rang;",
+      "errors": [
+        "(1,6): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "⟨⟩"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>⟨⟩</body></html>",
+        "noQuirksBodyHtml": "⟨⟩"
+      }
+    },
+    {
+      "data": "&apos;",
+      "errors": [
+        "(1,6): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "'"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>'</body></html>",
+        "noQuirksBodyHtml": "'"
+      }
+    },
+    {
+      "data": "&ImaginaryI;",
+      "errors": [
+        "(1,12): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "ⅈ"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>ⅈ</body></html>",
+        "noQuirksBodyHtml": "ⅈ"
+      }
+    },
+    {
+      "data": "&Kopf;",
+      "errors": [
+        "(1,6): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "𝕂"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>𝕂</body></html>",
+        "noQuirksBodyHtml": "𝕂"
+      }
+    },
+    {
+      "data": "&notinva;",
+      "errors": [
+        "(1,9): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "∉"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>∉</body></html>",
+        "noQuirksBodyHtml": "∉"
+      }
+    },
+    {
+      "data": "<?import namespace=\"foo\" implementation=\"#bar\">",
+      "errors": [
+        "(1,1): expected-tag-name-but-got-question-mark",
+        "(1,47): expected-doctype-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "comment": "?import namespace=\"foo\" implementation=\"#bar\""
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!--?import namespace=\"foo\" implementation=\"#bar\"--><html><head></head><body></body></html>",
+        "noQuirksBodyHtml": "<!--?import namespace=\"foo\" implementation=\"#bar\"-->"
+      }
+    },
+    {
+      "data": "<!--foo--bar-->",
+      "errors": [
+        "(1,10): unexpected-char-in-comment",
+        "(1,15): expected-doctype-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "comment": "foo--bar"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!--foo--bar--><html><head></head><body></body></html>",
+        "noQuirksBodyHtml": "<!--foo--bar-->"
+      }
+    },
+    {
+      "data": "<![CDATA[x]]>",
+      "errors": [
+        "(1,2): expected-dashes-or-doctype",
+        "(1,13): expected-doctype-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "comment": "[CDATA[x]]"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!--[CDATA[x]]--><html><head></head><body></body></html>",
+        "noQuirksBodyHtml": "<!--[CDATA[x]]-->"
+      }
+    },
+    {
+      "data": "<textarea><!--</textarea>--></textarea>",
+      "errors": [
+        "(1,10): expected-doctype-but-got-start-tag",
+        "(1,39): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "textarea": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "textarea",
+                    "children": [
+                      {
+                        "text": "<!--",
+                        "escaped": true
+                      }
+                    ]
+                  },
+                  {
+                    "text": "-->",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><textarea>&lt;!--</textarea>--&gt;</body></html>",
+        "noQuirksBodyHtml": "<textarea>&lt;!--</textarea>--&gt;"
+      }
+    },
+    {
+      "data": "<textarea><!--</textarea>-->",
+      "errors": [
+        "(1,10): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "textarea": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "textarea",
+                    "children": [
+                      {
+                        "text": "<!--",
+                        "escaped": true
+                      }
+                    ]
+                  },
+                  {
+                    "text": "-->",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><textarea>&lt;!--</textarea>--&gt;</body></html>",
+        "noQuirksBodyHtml": "<textarea>&lt;!--</textarea>--&gt;"
+      }
+    },
+    {
+      "data": "<style><!--</style>--></style>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,30): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "style": true,
+            "body": true
+          },
+          "no_escape": true,
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "style",
+                    "children": [
+                      {
+                        "text": "<!--",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "-->",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><style><!--</style></head><body>--&gt;</body></html>",
+        "noQuirksBodyHtml": "<style><!--</style>--&gt;"
+      }
+    },
+    {
+      "data": "<style><!--</style>-->",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "style": true,
+            "body": true
+          },
+          "no_escape": true,
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "style",
+                    "children": [
+                      {
+                        "text": "<!--",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "-->",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><style><!--</style></head><body>--&gt;</body></html>",
+        "noQuirksBodyHtml": "<style><!--</style>--&gt;"
+      }
+    },
+    {
+      "data": "<ul><li>A </li> <li>B</li></ul>",
+      "errors": [
+        "(1,4): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "ul": true,
+            "li": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "ul",
+                    "children": [
+                      {
+                        "tag": "li",
+                        "children": [
+                          {
+                            "text": "A "
+                          }
+                        ]
+                      },
+                      {
+                        "text": " "
+                      },
+                      {
+                        "tag": "li",
+                        "children": [
+                          {
+                            "text": "B"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><ul><li>A </li> <li>B</li></ul></body></html>",
+        "noQuirksBodyHtml": "<ul><li>A </li> <li>B</li></ul>"
+      }
+    },
+    {
+      "data": "<table><form><input type=hidden><input></form><div></div></table>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,13): unexpected-form-in-table",
+        "(1,32): unexpected-hidden-input-in-table",
+        "(1,39): unexpected-start-tag-implies-table-voodoo",
+        "(1,46): unexpected-end-tag-implies-table-voodoo",
+        "(1,46): unexpected-end-tag",
+        "(1,51): unexpected-start-tag-implies-table-voodoo",
+        "(1,57): unexpected-end-tag-implies-table-voodoo"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "input": true,
+            "div": true,
+            "table": true,
+            "form": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "input"
+                  },
+                  {
+                    "tag": "div"
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "form"
+                      },
+                      {
+                        "tag": "input",
+                        "attrs": [
+                          {
+                            "name": "type",
+                            "value": "hidden"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><input><div></div><table><form></form><input type=\"hidden\"></table></body></html>",
+        "noQuirksBodyHtml": "<input><div></div><table><form></form><input type=\"hidden\"></table>"
+      }
+    },
+    {
+      "data": "<i>A<b>B<p></i>C</b>D",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,15): adoption-agency-1.3",
+        "(1,20): adoption-agency-1.3"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "i": true,
+            "b": true,
+            "p": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "i",
+                    "children": [
+                      {
+                        "text": "A"
+                      },
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "text": "B"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "b"
+                  },
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "tag": "i"
+                          },
+                          {
+                            "text": "C"
+                          }
+                        ]
+                      },
+                      {
+                        "text": "D"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><i>A<b>B</b></i><b></b><p><b><i></i>C</b>D</p></body></html>",
+        "noQuirksBodyHtml": "<i>A<b>B</b></i><b></b><p><b><i></i>C</b>D</p>"
+      }
+    },
+    {
+      "data": "<div></div>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div></div></body></html>",
+        "noQuirksBodyHtml": "<div></div>"
+      }
+    },
+    {
+      "data": "<svg></svg>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg></svg></body></html>",
+        "noQuirksBodyHtml": "<svg></svg>"
+      }
+    },
+    {
+      "data": "<math></math>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><math></math></body></html>",
+        "noQuirksBodyHtml": "<math></math>"
+      }
+    }
+  ],
+  "inbody01.dat": [
+    {
+      "data": "<button>1</foo>",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,15): unexpected-end-tag",
+        "(1,15): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "button": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "button",
+                    "children": [
+                      {
+                        "text": "1"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><button>1</button></body></html>",
+        "noQuirksBodyHtml": "<button>1</button>"
+      }
+    },
+    {
+      "data": "<foo>1<p>2</foo>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,16): unexpected-end-tag",
+        "(1,16): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "foo": true,
+            "p": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "foo",
+                    "children": [
+                      {
+                        "text": "1"
+                      },
+                      {
+                        "tag": "p",
+                        "children": [
+                          {
+                            "text": "2"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><foo>1<p>2</p></foo></body></html>",
+        "noQuirksBodyHtml": "<foo>1<p>2</p></foo>"
+      }
+    },
+    {
+      "data": "<dd>1</foo>",
+      "errors": [
+        "(1,4): expected-doctype-but-got-start-tag",
+        "(1,11): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "dd": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "dd",
+                    "children": [
+                      {
+                        "text": "1"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><dd>1</dd></body></html>",
+        "noQuirksBodyHtml": "<dd>1</dd>"
+      }
+    },
+    {
+      "data": "<foo>1<dd>2</foo>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,17): unexpected-end-tag",
+        "(1,17): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "foo": true,
+            "dd": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "foo",
+                    "children": [
+                      {
+                        "text": "1"
+                      },
+                      {
+                        "tag": "dd",
+                        "children": [
+                          {
+                            "text": "2"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><foo>1<dd>2</dd></foo></body></html>",
+        "noQuirksBodyHtml": "<foo>1<dd>2</dd></foo>"
+      }
+    }
+  ],
+  "isindex.dat": [
+    {
+      "data": "<isindex>",
+      "errors": [
+        "(1,9): expected-doctype-but-got-start-tag",
+        "(1,9): deprecated-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "form": true,
+            "hr": true,
+            "label": true,
+            "input": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "form",
+                    "children": [
+                      {
+                        "tag": "hr"
+                      },
+                      {
+                        "tag": "label",
+                        "children": [
+                          {
+                            "text": "This is a searchable index. Enter search keywords: "
+                          },
+                          {
+                            "tag": "input",
+                            "attrs": [
+                              {
+                                "name": "name",
+                                "value": "isindex"
+                              }
+                            ]
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "hr"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><form><hr><label>This is a searchable index. Enter search keywords: <input name=\"isindex\"></label><hr></form></body></html>",
+        "noQuirksBodyHtml": "<form><hr><label>This is a searchable index. Enter search keywords: <input name=\"isindex\"></label><hr></form>"
+      }
+    },
+    {
+      "data": "<isindex name=\"A\" action=\"B\" prompt=\"C\" foo=\"D\">",
+      "errors": [
+        "(1,48): expected-doctype-but-got-start-tag",
+        "(1,48): deprecated-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "form": true,
+            "hr": true,
+            "label": true,
+            "input": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "form",
+                    "attrs": [
+                      {
+                        "name": "action",
+                        "value": "B"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "tag": "hr"
+                      },
+                      {
+                        "tag": "label",
+                        "children": [
+                          {
+                            "text": "C"
+                          },
+                          {
+                            "tag": "input",
+                            "attrs": [
+                              {
+                                "name": "foo",
+                                "value": "D"
+                              },
+                              {
+                                "name": "name",
+                                "value": "isindex"
+                              }
+                            ]
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "hr"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><form action=\"B\"><hr><label>C<input name=\"isindex\" foo=\"D\"></label><hr></form></body></html>",
+        "noQuirksBodyHtml": "<form action=\"B\"><hr><label>C<input name=\"isindex\" foo=\"D\"></label><hr></form>"
+      }
+    },
+    {
+      "data": "<form><isindex>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,15): deprecated-tag",
+        "(1,15): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "form": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "form"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><form></form></body></html>",
+        "noQuirksBodyHtml": "<form></form>"
+      }
+    }
+  ],
+  "main-element.dat": [
+    {
+      "data": "<!doctype html><p>foo<main>bar<p>baz",
+      "errors": [
+        "(1,36): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "main": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "text": "foo"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "main",
+                    "children": [
+                      {
+                        "text": "bar"
+                      },
+                      {
+                        "tag": "p",
+                        "children": [
+                          {
+                            "text": "baz"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p>foo</p><main>bar<p>baz</p></main></body></html>",
+        "noQuirksBodyHtml": "<p>foo</p><main>bar<p>baz</p></main>"
+      }
+    },
+    {
+      "data": "<!doctype html><main><p>foo</main>bar",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "main": true,
+            "p": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "main",
+                    "children": [
+                      {
+                        "tag": "p",
+                        "children": [
+                          {
+                            "text": "foo"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "text": "bar"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><main><p>foo</p></main>bar</body></html>",
+        "noQuirksBodyHtml": "<main><p>foo</p></main>bar"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html>xxx<svg><x><g><a><main><b>",
+      "errors": [
+        " * (1,42) unexpected HTML-like start tag token in foreign content",
+        " * (1,42) unexpected end of file"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true,
+            "svg x": true,
+            "svg g": true,
+            "svg a": true,
+            "svg main": true,
+            "b": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "xxx"
+                  },
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "tag": "x",
+                        "ns": "http://www.w3.org/2000/svg",
+                        "children": [
+                          {
+                            "tag": "g",
+                            "ns": "http://www.w3.org/2000/svg",
+                            "children": [
+                              {
+                                "tag": "a",
+                                "ns": "http://www.w3.org/2000/svg",
+                                "children": [
+                                  {
+                                    "tag": "main",
+                                    "ns": "http://www.w3.org/2000/svg"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "b"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body>xxx<svg><x><g><a><main></main></a></g></x></svg><b></b></body></html>",
+        "noQuirksBodyHtml": "xxx<svg><x><g><a><main><b></b></main></a></g></x></svg>"
+      }
+    }
+  ],
+  "math.dat": [
+    {
+      "data": "<math><tr><td><mo><tr>",
+      "errors": [],
+      "fragment": {
+        "name": "td"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "math math": true,
+            "math tr": true,
+            "math td": true,
+            "math mo": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "math",
+            "ns": "http://www.w3.org/1998/Math/MathML",
+            "children": [
+              {
+                "tag": "tr",
+                "ns": "http://www.w3.org/1998/Math/MathML",
+                "children": [
+                  {
+                    "tag": "td",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "mo",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<math><tr><td><mo></mo></td></tr></math>",
+        "noQuirksBodyHtml": "<math><tr><td><mo></mo></td></tr></math>"
+      }
+    },
+    {
+      "data": "<math><tr><td><mo><tr>",
+      "errors": [],
+      "fragment": {
+        "name": "tr"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "math math": true,
+            "math tr": true,
+            "math td": true,
+            "math mo": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "math",
+            "ns": "http://www.w3.org/1998/Math/MathML",
+            "children": [
+              {
+                "tag": "tr",
+                "ns": "http://www.w3.org/1998/Math/MathML",
+                "children": [
+                  {
+                    "tag": "td",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "mo",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<math><tr><td><mo></mo></td></tr></math>",
+        "noQuirksBodyHtml": "<math><tr><td><mo></mo></td></tr></math>"
+      }
+    },
+    {
+      "data": "<math><thead><mo><tbody>",
+      "errors": [],
+      "fragment": {
+        "name": "thead"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "math math": true,
+            "math thead": true,
+            "math mo": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "math",
+            "ns": "http://www.w3.org/1998/Math/MathML",
+            "children": [
+              {
+                "tag": "thead",
+                "ns": "http://www.w3.org/1998/Math/MathML",
+                "children": [
+                  {
+                    "tag": "mo",
+                    "ns": "http://www.w3.org/1998/Math/MathML"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<math><thead><mo></mo></thead></math>",
+        "noQuirksBodyHtml": "<math><thead><mo></mo></thead></math>"
+      }
+    },
+    {
+      "data": "<math><tfoot><mo><tbody>",
+      "errors": [],
+      "fragment": {
+        "name": "tfoot"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "math math": true,
+            "math tfoot": true,
+            "math mo": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "math",
+            "ns": "http://www.w3.org/1998/Math/MathML",
+            "children": [
+              {
+                "tag": "tfoot",
+                "ns": "http://www.w3.org/1998/Math/MathML",
+                "children": [
+                  {
+                    "tag": "mo",
+                    "ns": "http://www.w3.org/1998/Math/MathML"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<math><tfoot><mo></mo></tfoot></math>",
+        "noQuirksBodyHtml": "<math><tfoot><mo></mo></tfoot></math>"
+      }
+    },
+    {
+      "data": "<math><tbody><mo><tfoot>",
+      "errors": [],
+      "fragment": {
+        "name": "tbody"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "math math": true,
+            "math tbody": true,
+            "math mo": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "math",
+            "ns": "http://www.w3.org/1998/Math/MathML",
+            "children": [
+              {
+                "tag": "tbody",
+                "ns": "http://www.w3.org/1998/Math/MathML",
+                "children": [
+                  {
+                    "tag": "mo",
+                    "ns": "http://www.w3.org/1998/Math/MathML"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<math><tbody><mo></mo></tbody></math>",
+        "noQuirksBodyHtml": "<math><tbody><mo></mo></tbody></math>"
+      }
+    },
+    {
+      "data": "<math><tbody><mo></table>",
+      "errors": [],
+      "fragment": {
+        "name": "tbody"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "math math": true,
+            "math tbody": true,
+            "math mo": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "math",
+            "ns": "http://www.w3.org/1998/Math/MathML",
+            "children": [
+              {
+                "tag": "tbody",
+                "ns": "http://www.w3.org/1998/Math/MathML",
+                "children": [
+                  {
+                    "tag": "mo",
+                    "ns": "http://www.w3.org/1998/Math/MathML"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<math><tbody><mo></mo></tbody></math>",
+        "noQuirksBodyHtml": "<math><tbody><mo></mo></tbody></math>"
+      }
+    },
+    {
+      "data": "<math><thead><mo></table>",
+      "errors": [],
+      "fragment": {
+        "name": "tbody"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "math math": true,
+            "math thead": true,
+            "math mo": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "math",
+            "ns": "http://www.w3.org/1998/Math/MathML",
+            "children": [
+              {
+                "tag": "thead",
+                "ns": "http://www.w3.org/1998/Math/MathML",
+                "children": [
+                  {
+                    "tag": "mo",
+                    "ns": "http://www.w3.org/1998/Math/MathML"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<math><thead><mo></mo></thead></math>",
+        "noQuirksBodyHtml": "<math><thead><mo></mo></thead></math>"
+      }
+    },
+    {
+      "data": "<math><tfoot><mo></table>",
+      "errors": [],
+      "fragment": {
+        "name": "tbody"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "math math": true,
+            "math tfoot": true,
+            "math mo": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "math",
+            "ns": "http://www.w3.org/1998/Math/MathML",
+            "children": [
+              {
+                "tag": "tfoot",
+                "ns": "http://www.w3.org/1998/Math/MathML",
+                "children": [
+                  {
+                    "tag": "mo",
+                    "ns": "http://www.w3.org/1998/Math/MathML"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<math><tfoot><mo></mo></tfoot></math>",
+        "noQuirksBodyHtml": "<math><tfoot><mo></mo></tfoot></math>"
+      }
+    }
+  ],
+  "namespace-sensitivity.dat": [
+    {
+      "data": "<body><table><tr><td><svg><td><foreignObject><span></td>Foo",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true,
+            "svg svg": true,
+            "svg td": true,
+            "svg foreignObject": true,
+            "span": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "Foo"
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td",
+                                "children": [
+                                  {
+                                    "tag": "svg",
+                                    "ns": "http://www.w3.org/2000/svg",
+                                    "children": [
+                                      {
+                                        "tag": "td",
+                                        "ns": "http://www.w3.org/2000/svg",
+                                        "children": [
+                                          {
+                                            "tag": "foreignObject",
+                                            "ns": "http://www.w3.org/2000/svg",
+                                            "children": [
+                                              {
+                                                "tag": "span"
+                                              }
+                                            ]
+                                          }
+                                        ]
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>Foo<table><tbody><tr><td><svg><td><foreignObject><span></span></foreignObject></td></svg></td></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "Foo<table><tbody><tr><td><svg><td><foreignObject><span></span></foreignObject></td></svg></td></tr></tbody></table>"
+      }
+    }
+  ],
+  "pending-spec-changes-plain-text-unsafe.dat": [
+    {
+      "data": "<body><table>\u0000filler\u0000text\u0000",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,14): invalid-codepoint",
+        "(1,14): invalid-codepoint-in-table-text",
+        "(1,21): invalid-codepoint",
+        "(1,21): invalid-codepoint-in-table-text",
+        "(1,26): invalid-codepoint",
+        "(1,26): invalid-codepoint-in-table-text",
+        "(1,26): foster-parenting-character-in-table",
+        "(1,26): foster-parenting-character-in-table",
+        "(1,26): foster-parenting-character-in-table",
+        "(1,26): foster-parenting-character-in-table",
+        "(1,26): foster-parenting-character-in-table",
+        "(1,26): foster-parenting-character-in-table",
+        "(1,26): foster-parenting-character-in-table",
+        "(1,26): foster-parenting-character-in-table",
+        "(1,26): foster-parenting-character-in-table",
+        "(1,26): foster-parenting-character-in-table",
+        "(1,26): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "fillertext"
+                  },
+                  {
+                    "tag": "table"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>fillertext<table></table></body></html>",
+        "noQuirksBodyHtml": "fillertext<table></table>"
+      }
+    }
+  ],
+  "pending-spec-changes.dat": [
+    {
+      "data": "<input type=\"hidden\"><frameset>",
+      "errors": [
+        "(1,21): expected-doctype-but-got-start-tag",
+        "(1,31): unexpected-start-tag",
+        "(1,31): eof-in-frameset"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><frameset></frameset></html>",
+        "noQuirksBodyHtml": "<input type=\"hidden\">"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><table><caption><svg>foo</table>bar",
+      "errors": [
+        "(1,47): unexpected-end-tag",
+        "(1,47): end-table-tag-in-caption"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "caption": true,
+            "svg svg": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "caption",
+                        "children": [
+                          {
+                            "tag": "svg",
+                            "ns": "http://www.w3.org/2000/svg",
+                            "children": [
+                              {
+                                "text": "foo"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "text": "bar"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><table><caption><svg>foo</svg></caption></table>bar</body></html>",
+        "noQuirksBodyHtml": "<table><caption><svg>foo</svg></caption></table>bar"
+      }
+    },
+    {
+      "data": "<table><tr><td><svg><desc><td></desc><circle>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,30): unexpected-cell-end-tag",
+        "(1,37): unexpected-end-tag",
+        "(1,45): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true,
+            "svg svg": true,
+            "svg desc": true,
+            "circle": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td",
+                                "children": [
+                                  {
+                                    "tag": "svg",
+                                    "ns": "http://www.w3.org/2000/svg",
+                                    "children": [
+                                      {
+                                        "tag": "desc",
+                                        "ns": "http://www.w3.org/2000/svg"
+                                      }
+                                    ]
+                                  }
+                                ]
+                              },
+                              {
+                                "tag": "td",
+                                "children": [
+                                  {
+                                    "tag": "circle"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><tbody><tr><td><svg><desc></desc></svg></td><td><circle></circle></td></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<table><tbody><tr><td><svg><desc></desc></svg></td><td><circle></circle></td></tr></tbody></table>"
+      }
+    }
+  ],
+  "plain-text-unsafe.dat": [
+    {
+      "data": "FOO&#x000D;ZOO",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,11): illegal-codepoint-for-numeric-entity"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO\rZOO"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO\rZOO</body></html>",
+        "noQuirksBodyHtml": "FOO\rZOO"
+      }
+    },
+    {
+      "data": "<html>\u0000<frameset></frameset>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,7): invalid-codepoint",
+        "(1,7): invalid-codepoint-in-body",
+        "(1,17): unexpected-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><frameset></frameset></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<html> \u0000 <frameset></frameset>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,8): invalid-codepoint",
+        "(1,8): invalid-codepoint-in-body",
+        "(1,19): unexpected-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><frameset></frameset></html>",
+        "noQuirksBodyHtml": "  "
+      }
+    },
+    {
+      "data": "<html>a\u0000a<frameset></frameset>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,8): invalid-codepoint",
+        "(1,8): invalid-codepoint-in-body",
+        "(1,19): unexpected-start-tag",
+        "(1,30): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "aa"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>aa</body></html>",
+        "noQuirksBodyHtml": "aa"
+      }
+    },
+    {
+      "data": "<html>\u0000\u0000<frameset></frameset>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,7): invalid-codepoint",
+        "(1,7): invalid-codepoint-in-body",
+        "(1,8): invalid-codepoint",
+        "(1,8): invalid-codepoint-in-body",
+        "(1,18): unexpected-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><frameset></frameset></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<html>\u0000\n <frameset></frameset>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,7): invalid-codepoint",
+        "(1,7): invalid-codepoint-in-body",
+        "(2,11): unexpected-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><frameset></frameset></html>",
+        "noQuirksBodyHtml": "\n "
+      }
+    },
+    {
+      "data": "<html><select>\u0000",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,15): invalid-codepoint",
+        "(1,15): invalid-codepoint-in-select",
+        "(1,15): eof-in-select"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><select></select></body></html>",
+        "noQuirksBodyHtml": "<select></select>"
+      }
+    },
+    {
+      "data": "\u0000",
+      "errors": [
+        "(1,1): invalid-codepoint",
+        "(1,1): expected-doctype-but-got-chars",
+        "(1,1): invalid-codepoint-in-body"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<body>\u0000",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,7): invalid-codepoint",
+        "(1,7): invalid-codepoint-in-body"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<plaintext>\u0000filler\u0000text\u0000",
+      "errors": [
+        "(1,11): expected-doctype-but-got-start-tag",
+        "(1,12): invalid-codepoint",
+        "(1,19): invalid-codepoint",
+        "(1,24): invalid-codepoint",
+        "(1,24): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "plaintext": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "plaintext",
+                    "children": [
+                      {
+                        "text": "�filler�text�",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><plaintext>�filler�text�</plaintext></body></html>",
+        "noQuirksBodyHtml": "<plaintext>�filler�text�</plaintext>"
+      }
+    },
+    {
+      "data": "<svg><![CDATA[\u0000filler\u0000text\u0000]]>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,30): invalid-codepoint",
+        "(1,30): invalid-codepoint",
+        "(1,30): invalid-codepoint",
+        "(1,30): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "text": "�filler�text�"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg>�filler�text�</svg></body></html>",
+        "noQuirksBodyHtml": "<svg>�filler�text�</svg>"
+      }
+    },
+    {
+      "data": "<body><!\u0000>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,8): expected-dashes-or-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "comment": "�"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><!--�--></body></html>",
+        "noQuirksBodyHtml": "<!--�-->"
+      }
+    },
+    {
+      "data": "<body><!\u0000filler\u0000text>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,8): expected-dashes-or-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "comment": "�filler�text"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><!--�filler�text--></body></html>",
+        "noQuirksBodyHtml": "<!--�filler�text-->"
+      }
+    },
+    {
+      "data": "<body><svg><foreignObject>\u0000filler\u0000text",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,27): invalid-codepoint",
+        "(1,27): invalid-codepoint-in-body",
+        "(1,34): invalid-codepoint",
+        "(1,34): invalid-codepoint-in-body",
+        "(1,38): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true,
+            "svg foreignObject": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "tag": "foreignObject",
+                        "ns": "http://www.w3.org/2000/svg",
+                        "children": [
+                          {
+                            "text": "fillertext"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg><foreignObject>fillertext</foreignObject></svg></body></html>",
+        "noQuirksBodyHtml": "<svg><foreignObject>fillertext</foreignObject></svg>"
+      }
+    },
+    {
+      "data": "<svg>\u0000filler\u0000text",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,6): invalid-codepoint",
+        "(1,6): invalid-codepoint-in-foreign-content",
+        "(1,13): invalid-codepoint",
+        "(1,13): invalid-codepoint-in-foreign-content",
+        "(1,17): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "text": "�filler�text"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg>�filler�text</svg></body></html>",
+        "noQuirksBodyHtml": "<svg>�filler�text</svg>"
+      }
+    },
+    {
+      "data": "<svg>\u0000<frameset>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,6): invalid-codepoint",
+        "(1,6): invalid-codepoint-in-foreign-content",
+        "(1,16): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true,
+            "svg frameset": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "text": "�"
+                      },
+                      {
+                        "tag": "frameset",
+                        "ns": "http://www.w3.org/2000/svg"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg>�<frameset></frameset></svg></body></html>",
+        "noQuirksBodyHtml": "<svg>�<frameset></frameset></svg>"
+      }
+    },
+    {
+      "data": "<svg>\u0000 <frameset>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,6): invalid-codepoint",
+        "(1,6): invalid-codepoint-in-foreign-content",
+        "(1,17): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true,
+            "svg frameset": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "text": "� "
+                      },
+                      {
+                        "tag": "frameset",
+                        "ns": "http://www.w3.org/2000/svg"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg>� <frameset></frameset></svg></body></html>",
+        "noQuirksBodyHtml": "<svg>� <frameset></frameset></svg>"
+      }
+    },
+    {
+      "data": "<svg>\u0000a<frameset>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,6): invalid-codepoint",
+        "(1,6): invalid-codepoint-in-foreign-content",
+        "(1,17): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true,
+            "svg frameset": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "text": "�a"
+                      },
+                      {
+                        "tag": "frameset",
+                        "ns": "http://www.w3.org/2000/svg"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg>�a<frameset></frameset></svg></body></html>",
+        "noQuirksBodyHtml": "<svg>�a<frameset></frameset></svg>"
+      }
+    },
+    {
+      "data": "<svg>\u0000</svg><frameset>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,6): invalid-codepoint",
+        "(1,6): invalid-codepoint-in-foreign-content",
+        "(1,22): unexpected-start-tag",
+        "(1,22): eof-in-frameset"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><frameset></frameset></html>",
+        "noQuirksBodyHtml": "<svg>�</svg>"
+      }
+    },
+    {
+      "data": "<svg>\u0000 </svg><frameset>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,6): invalid-codepoint",
+        "(1,6): invalid-codepoint-in-foreign-content",
+        "(1,23): unexpected-start-tag",
+        "(1,23): eof-in-frameset"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><frameset></frameset></html>",
+        "noQuirksBodyHtml": "<svg>� </svg>"
+      }
+    },
+    {
+      "data": "<svg>\u0000a</svg><frameset>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,6): invalid-codepoint",
+        "(1,6): invalid-codepoint-in-foreign-content",
+        "(1,23): unexpected-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "text": "�a"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg>�a</svg></body></html>",
+        "noQuirksBodyHtml": "<svg>�a</svg>"
+      }
+    },
+    {
+      "data": "<svg><path></path></svg><frameset>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,34): unexpected-start-tag",
+        "(1,34): eof-in-frameset"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><frameset></frameset></html>",
+        "noQuirksBodyHtml": "<svg><path></path></svg>"
+      }
+    },
+    {
+      "data": "<svg><p><frameset>",
+      "errors": [
+        "(1, 5) expected-doctype-but-got-start-tag",
+        "(1, 8) unexpected-html-element-in-foreign-content",
+        "(1, 18) unexpected-start-tag",
+        "(1, 18) eof-in-frameset"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><frameset></frameset></html>",
+        "noQuirksBodyHtml": "<svg><p><frameset></frameset></p></svg>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><pre>\r\n\r\nA</pre>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "pre": true
+          },
+          "doctype": true,
+          "extraNL": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "pre",
+                    "children": [
+                      {
+                        "text": "\nA",
+                        "extraNL": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><pre>\n\nA</pre></body></html>",
+        "noQuirksBodyHtml": "<pre>\n\nA</pre>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><pre>\r\rA</pre>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "pre": true
+          },
+          "doctype": true,
+          "extraNL": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "pre",
+                    "children": [
+                      {
+                        "text": "\nA",
+                        "extraNL": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><pre>\n\nA</pre></body></html>",
+        "noQuirksBodyHtml": "<pre>\n\nA</pre>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><pre>\rA</pre>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "pre": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "pre",
+                    "children": [
+                      {
+                        "text": "A"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><pre>A</pre></body></html>",
+        "noQuirksBodyHtml": "<pre>A</pre>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><table><tr><td><math><mtext>\u0000a",
+      "errors": [
+        "(1,44): invalid-codepoint",
+        "(1,44): invalid-codepoint-in-body",
+        "(1,45): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true,
+            "math math": true,
+            "math mtext": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td",
+                                "children": [
+                                  {
+                                    "tag": "math",
+                                    "ns": "http://www.w3.org/1998/Math/MathML",
+                                    "children": [
+                                      {
+                                        "tag": "mtext",
+                                        "ns": "http://www.w3.org/1998/Math/MathML",
+                                        "children": [
+                                          {
+                                            "text": "a"
+                                          }
+                                        ]
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><math><mtext>a</mtext></math></td></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<table><tbody><tr><td><math><mtext>a</mtext></math></td></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><table><tr><td><svg><foreignObject>\u0000a",
+      "errors": [
+        "(1,51): invalid-codepoint",
+        "(1,51): invalid-codepoint-in-body",
+        "(1,52): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true,
+            "svg svg": true,
+            "svg foreignObject": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td",
+                                "children": [
+                                  {
+                                    "tag": "svg",
+                                    "ns": "http://www.w3.org/2000/svg",
+                                    "children": [
+                                      {
+                                        "tag": "foreignObject",
+                                        "ns": "http://www.w3.org/2000/svg",
+                                        "children": [
+                                          {
+                                            "text": "a"
+                                          }
+                                        ]
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><svg><foreignObject>a</foreignObject></svg></td></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<table><tbody><tr><td><svg><foreignObject>a</foreignObject></svg></td></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><math><mi>a\u0000b",
+      "errors": [
+        "(1,27): invalid-codepoint",
+        "(1,27): invalid-codepoint-in-body",
+        "(1,28): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "math mi": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "mi",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "children": [
+                          {
+                            "text": "ab"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><math><mi>ab</mi></math></body></html>",
+        "noQuirksBodyHtml": "<math><mi>ab</mi></math>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><math><mo>a\u0000b",
+      "errors": [
+        "(1,27): invalid-codepoint",
+        "(1,27): invalid-codepoint-in-body",
+        "(1,28): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "math mo": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "mo",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "children": [
+                          {
+                            "text": "ab"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><math><mo>ab</mo></math></body></html>",
+        "noQuirksBodyHtml": "<math><mo>ab</mo></math>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><math><mn>a\u0000b",
+      "errors": [
+        "(1,27): invalid-codepoint",
+        "(1,27): invalid-codepoint-in-body",
+        "(1,28): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "math mn": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "mn",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "children": [
+                          {
+                            "text": "ab"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><math><mn>ab</mn></math></body></html>",
+        "noQuirksBodyHtml": "<math><mn>ab</mn></math>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><math><ms>a\u0000b",
+      "errors": [
+        "(1,27): invalid-codepoint",
+        "(1,27): invalid-codepoint-in-body",
+        "(1,28): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "math ms": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "ms",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "children": [
+                          {
+                            "text": "ab"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><math><ms>ab</ms></math></body></html>",
+        "noQuirksBodyHtml": "<math><ms>ab</ms></math>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><math><mtext>a\u0000b",
+      "errors": [
+        "(1,30): invalid-codepoint",
+        "(1,30): invalid-codepoint-in-body",
+        "(1,31): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "math mtext": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "mtext",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "children": [
+                          {
+                            "text": "ab"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><math><mtext>ab</mtext></math></body></html>",
+        "noQuirksBodyHtml": "<math><mtext>ab</mtext></math>"
+      }
+    }
+  ],
+  "ruby.dat": [
+    {
+      "data": "<html><ruby>a<rb>b<rb></ruby></html>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "ruby": true,
+            "rb": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "ruby",
+                    "children": [
+                      {
+                        "text": "a"
+                      },
+                      {
+                        "tag": "rb",
+                        "children": [
+                          {
+                            "text": "b"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "rb"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><ruby>a<rb>b</rb><rb></rb></ruby></body></html>",
+        "noQuirksBodyHtml": "<ruby>a<rb>b</rb><rb></rb></ruby>"
+      }
+    },
+    {
+      "data": "<html><ruby>a<rb>b<rt></ruby></html>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "ruby": true,
+            "rb": true,
+            "rt": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "ruby",
+                    "children": [
+                      {
+                        "text": "a"
+                      },
+                      {
+                        "tag": "rb",
+                        "children": [
+                          {
+                            "text": "b"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "rt"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><ruby>a<rb>b</rb><rt></rt></ruby></body></html>",
+        "noQuirksBodyHtml": "<ruby>a<rb>b</rb><rt></rt></ruby>"
+      }
+    },
+    {
+      "data": "<html><ruby>a<rb>b<rtc></ruby></html>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "ruby": true,
+            "rb": true,
+            "rtc": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "ruby",
+                    "children": [
+                      {
+                        "text": "a"
+                      },
+                      {
+                        "tag": "rb",
+                        "children": [
+                          {
+                            "text": "b"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "rtc"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><ruby>a<rb>b</rb><rtc></rtc></ruby></body></html>",
+        "noQuirksBodyHtml": "<ruby>a<rb>b</rb><rtc></rtc></ruby>"
+      }
+    },
+    {
+      "data": "<html><ruby>a<rb>b<rp></ruby></html>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "ruby": true,
+            "rb": true,
+            "rp": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "ruby",
+                    "children": [
+                      {
+                        "text": "a"
+                      },
+                      {
+                        "tag": "rb",
+                        "children": [
+                          {
+                            "text": "b"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "rp"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><ruby>a<rb>b</rb><rp></rp></ruby></body></html>",
+        "noQuirksBodyHtml": "<ruby>a<rb>b</rb><rp></rp></ruby>"
+      }
+    },
+    {
+      "data": "<html><ruby>a<rb>b<span></ruby></html>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "ruby": true,
+            "rb": true,
+            "span": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "ruby",
+                    "children": [
+                      {
+                        "text": "a"
+                      },
+                      {
+                        "tag": "rb",
+                        "children": [
+                          {
+                            "text": "b"
+                          },
+                          {
+                            "tag": "span"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><ruby>a<rb>b<span></span></rb></ruby></body></html>",
+        "noQuirksBodyHtml": "<ruby>a<rb>b<span></span></rb></ruby>"
+      }
+    },
+    {
+      "data": "<html><ruby>a<rt>b<rb></ruby></html>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "ruby": true,
+            "rt": true,
+            "rb": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "ruby",
+                    "children": [
+                      {
+                        "text": "a"
+                      },
+                      {
+                        "tag": "rt",
+                        "children": [
+                          {
+                            "text": "b"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "rb"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><ruby>a<rt>b</rt><rb></rb></ruby></body></html>",
+        "noQuirksBodyHtml": "<ruby>a<rt>b</rt><rb></rb></ruby>"
+      }
+    },
+    {
+      "data": "<html><ruby>a<rt>b<rt></ruby></html>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "ruby": true,
+            "rt": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "ruby",
+                    "children": [
+                      {
+                        "text": "a"
+                      },
+                      {
+                        "tag": "rt",
+                        "children": [
+                          {
+                            "text": "b"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "rt"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><ruby>a<rt>b</rt><rt></rt></ruby></body></html>",
+        "noQuirksBodyHtml": "<ruby>a<rt>b</rt><rt></rt></ruby>"
+      }
+    },
+    {
+      "data": "<html><ruby>a<rt>b<rtc></ruby></html>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "ruby": true,
+            "rt": true,
+            "rtc": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "ruby",
+                    "children": [
+                      {
+                        "text": "a"
+                      },
+                      {
+                        "tag": "rt",
+                        "children": [
+                          {
+                            "text": "b"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "rtc"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><ruby>a<rt>b</rt><rtc></rtc></ruby></body></html>",
+        "noQuirksBodyHtml": "<ruby>a<rt>b</rt><rtc></rtc></ruby>"
+      }
+    },
+    {
+      "data": "<html><ruby>a<rt>b<rp></ruby></html>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "ruby": true,
+            "rt": true,
+            "rp": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "ruby",
+                    "children": [
+                      {
+                        "text": "a"
+                      },
+                      {
+                        "tag": "rt",
+                        "children": [
+                          {
+                            "text": "b"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "rp"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><ruby>a<rt>b</rt><rp></rp></ruby></body></html>",
+        "noQuirksBodyHtml": "<ruby>a<rt>b</rt><rp></rp></ruby>"
+      }
+    },
+    {
+      "data": "<html><ruby>a<rt>b<span></ruby></html>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "ruby": true,
+            "rt": true,
+            "span": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "ruby",
+                    "children": [
+                      {
+                        "text": "a"
+                      },
+                      {
+                        "tag": "rt",
+                        "children": [
+                          {
+                            "text": "b"
+                          },
+                          {
+                            "tag": "span"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><ruby>a<rt>b<span></span></rt></ruby></body></html>",
+        "noQuirksBodyHtml": "<ruby>a<rt>b<span></span></rt></ruby>"
+      }
+    },
+    {
+      "data": "<html><ruby>a<rtc>b<rb></ruby></html>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "ruby": true,
+            "rtc": true,
+            "rb": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "ruby",
+                    "children": [
+                      {
+                        "text": "a"
+                      },
+                      {
+                        "tag": "rtc",
+                        "children": [
+                          {
+                            "text": "b"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "rb"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><ruby>a<rtc>b</rtc><rb></rb></ruby></body></html>",
+        "noQuirksBodyHtml": "<ruby>a<rtc>b</rtc><rb></rb></ruby>"
+      }
+    },
+    {
+      "data": "<html><ruby>a<rtc>b<rt>c<rt>d</ruby></html>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "ruby": true,
+            "rtc": true,
+            "rt": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "ruby",
+                    "children": [
+                      {
+                        "text": "a"
+                      },
+                      {
+                        "tag": "rtc",
+                        "children": [
+                          {
+                            "text": "b"
+                          },
+                          {
+                            "tag": "rt",
+                            "children": [
+                              {
+                                "text": "c"
+                              }
+                            ]
+                          },
+                          {
+                            "tag": "rt",
+                            "children": [
+                              {
+                                "text": "d"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><ruby>a<rtc>b<rt>c</rt><rt>d</rt></rtc></ruby></body></html>",
+        "noQuirksBodyHtml": "<ruby>a<rtc>b<rt>c</rt><rt>d</rt></rtc></ruby>"
+      }
+    },
+    {
+      "data": "<html><ruby>a<rtc>b<rtc></ruby></html>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "ruby": true,
+            "rtc": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "ruby",
+                    "children": [
+                      {
+                        "text": "a"
+                      },
+                      {
+                        "tag": "rtc",
+                        "children": [
+                          {
+                            "text": "b"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "rtc"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><ruby>a<rtc>b</rtc><rtc></rtc></ruby></body></html>",
+        "noQuirksBodyHtml": "<ruby>a<rtc>b</rtc><rtc></rtc></ruby>"
+      }
+    },
+    {
+      "data": "<html><ruby>a<rtc>b<rp></ruby></html>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "ruby": true,
+            "rtc": true,
+            "rp": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "ruby",
+                    "children": [
+                      {
+                        "text": "a"
+                      },
+                      {
+                        "tag": "rtc",
+                        "children": [
+                          {
+                            "text": "b"
+                          },
+                          {
+                            "tag": "rp"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><ruby>a<rtc>b<rp></rp></rtc></ruby></body></html>",
+        "noQuirksBodyHtml": "<ruby>a<rtc>b<rp></rp></rtc></ruby>"
+      }
+    },
+    {
+      "data": "<html><ruby>a<rtc>b<span></ruby></html>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "ruby": true,
+            "rtc": true,
+            "span": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "ruby",
+                    "children": [
+                      {
+                        "text": "a"
+                      },
+                      {
+                        "tag": "rtc",
+                        "children": [
+                          {
+                            "text": "b"
+                          },
+                          {
+                            "tag": "span"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><ruby>a<rtc>b<span></span></rtc></ruby></body></html>",
+        "noQuirksBodyHtml": "<ruby>a<rtc>b<span></span></rtc></ruby>"
+      }
+    },
+    {
+      "data": "<html><ruby>a<rp>b<rb></ruby></html>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "ruby": true,
+            "rp": true,
+            "rb": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "ruby",
+                    "children": [
+                      {
+                        "text": "a"
+                      },
+                      {
+                        "tag": "rp",
+                        "children": [
+                          {
+                            "text": "b"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "rb"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><ruby>a<rp>b</rp><rb></rb></ruby></body></html>",
+        "noQuirksBodyHtml": "<ruby>a<rp>b</rp><rb></rb></ruby>"
+      }
+    },
+    {
+      "data": "<html><ruby>a<rp>b<rt></ruby></html>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "ruby": true,
+            "rp": true,
+            "rt": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "ruby",
+                    "children": [
+                      {
+                        "text": "a"
+                      },
+                      {
+                        "tag": "rp",
+                        "children": [
+                          {
+                            "text": "b"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "rt"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><ruby>a<rp>b</rp><rt></rt></ruby></body></html>",
+        "noQuirksBodyHtml": "<ruby>a<rp>b</rp><rt></rt></ruby>"
+      }
+    },
+    {
+      "data": "<html><ruby>a<rp>b<rtc></ruby></html>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "ruby": true,
+            "rp": true,
+            "rtc": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "ruby",
+                    "children": [
+                      {
+                        "text": "a"
+                      },
+                      {
+                        "tag": "rp",
+                        "children": [
+                          {
+                            "text": "b"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "rtc"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><ruby>a<rp>b</rp><rtc></rtc></ruby></body></html>",
+        "noQuirksBodyHtml": "<ruby>a<rp>b</rp><rtc></rtc></ruby>"
+      }
+    },
+    {
+      "data": "<html><ruby>a<rp>b<rp></ruby></html>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "ruby": true,
+            "rp": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "ruby",
+                    "children": [
+                      {
+                        "text": "a"
+                      },
+                      {
+                        "tag": "rp",
+                        "children": [
+                          {
+                            "text": "b"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "rp"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><ruby>a<rp>b</rp><rp></rp></ruby></body></html>",
+        "noQuirksBodyHtml": "<ruby>a<rp>b</rp><rp></rp></ruby>"
+      }
+    },
+    {
+      "data": "<html><ruby>a<rp>b<span></ruby></html>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "ruby": true,
+            "rp": true,
+            "span": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "ruby",
+                    "children": [
+                      {
+                        "text": "a"
+                      },
+                      {
+                        "tag": "rp",
+                        "children": [
+                          {
+                            "text": "b"
+                          },
+                          {
+                            "tag": "span"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><ruby>a<rp>b<span></span></rp></ruby></body></html>",
+        "noQuirksBodyHtml": "<ruby>a<rp>b<span></span></rp></ruby>"
+      }
+    },
+    {
+      "data": "<html><ruby><rtc><ruby>a<rb>b<rt></ruby></ruby></html>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "ruby": true,
+            "rtc": true,
+            "rb": true,
+            "rt": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "ruby",
+                    "children": [
+                      {
+                        "tag": "rtc",
+                        "children": [
+                          {
+                            "tag": "ruby",
+                            "children": [
+                              {
+                                "text": "a"
+                              },
+                              {
+                                "tag": "rb",
+                                "children": [
+                                  {
+                                    "text": "b"
+                                  }
+                                ]
+                              },
+                              {
+                                "tag": "rt"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><ruby><rtc><ruby>a<rb>b</rb><rt></rt></ruby></rtc></ruby></body></html>",
+        "noQuirksBodyHtml": "<ruby><rtc><ruby>a<rb>b</rb><rt></rt></ruby></rtc></ruby>"
+      }
+    }
+  ],
+  "scriptdata01.dat": [
+    {
+      "data": "FOO<script>'Hello'</script>BAR",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "script": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO"
+                  },
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "'Hello'",
+                        "no_escape": true
+                      }
+                    ]
+                  },
+                  {
+                    "text": "BAR"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO<script>'Hello'</script>BAR</body></html>",
+        "noQuirksBodyHtml": "FOO<script>'Hello'</script>BAR"
+      }
+    },
+    {
+      "data": "FOO<script></script>BAR",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "script": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO"
+                  },
+                  {
+                    "tag": "script"
+                  },
+                  {
+                    "text": "BAR"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO<script></script>BAR</body></html>",
+        "noQuirksBodyHtml": "FOO<script></script>BAR"
+      }
+    },
+    {
+      "data": "FOO<script></script >BAR",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "script": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO"
+                  },
+                  {
+                    "tag": "script"
+                  },
+                  {
+                    "text": "BAR"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO<script></script>BAR</body></html>",
+        "noQuirksBodyHtml": "FOO<script></script>BAR"
+      }
+    },
+    {
+      "data": "FOO<script></script/>BAR",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,21): self-closing-flag-on-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "script": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO"
+                  },
+                  {
+                    "tag": "script"
+                  },
+                  {
+                    "text": "BAR"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO<script></script>BAR</body></html>",
+        "noQuirksBodyHtml": "FOO<script></script>BAR"
+      }
+    },
+    {
+      "data": "FOO<script></script/ >BAR",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,20): unexpected-character-after-solidus-in-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "script": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO"
+                  },
+                  {
+                    "tag": "script"
+                  },
+                  {
+                    "text": "BAR"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO<script></script>BAR</body></html>",
+        "noQuirksBodyHtml": "FOO<script></script>BAR"
+      }
+    },
+    {
+      "data": "FOO<script type=\"text/plain\"></scriptx>BAR",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,42): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "script": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO"
+                  },
+                  {
+                    "tag": "script",
+                    "attrs": [
+                      {
+                        "name": "type",
+                        "value": "text/plain"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "</scriptx>BAR",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO<script type=\"text/plain\"></scriptx>BAR</script></body></html>",
+        "noQuirksBodyHtml": "FOO<script type=\"text/plain\"></scriptx>BAR</script>"
+      }
+    },
+    {
+      "data": "FOO<script></script foo=\">\" dd>BAR",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,31): attributes-in-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "script": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO"
+                  },
+                  {
+                    "tag": "script"
+                  },
+                  {
+                    "text": "BAR"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO<script></script>BAR</body></html>",
+        "noQuirksBodyHtml": "FOO<script></script>BAR"
+      }
+    },
+    {
+      "data": "FOO<script>'<'</script>BAR",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "script": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO"
+                  },
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "'<'",
+                        "no_escape": true
+                      }
+                    ]
+                  },
+                  {
+                    "text": "BAR"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO<script>'<'</script>BAR</body></html>",
+        "noQuirksBodyHtml": "FOO<script>'<'</script>BAR"
+      }
+    },
+    {
+      "data": "FOO<script>'<!'</script>BAR",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "script": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO"
+                  },
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "'<!'",
+                        "no_escape": true
+                      }
+                    ]
+                  },
+                  {
+                    "text": "BAR"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO<script>'<!'</script>BAR</body></html>",
+        "noQuirksBodyHtml": "FOO<script>'<!'</script>BAR"
+      }
+    },
+    {
+      "data": "FOO<script>'<!-'</script>BAR",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "script": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO"
+                  },
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "'<!-'",
+                        "no_escape": true
+                      }
+                    ]
+                  },
+                  {
+                    "text": "BAR"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO<script>'<!-'</script>BAR</body></html>",
+        "noQuirksBodyHtml": "FOO<script>'<!-'</script>BAR"
+      }
+    },
+    {
+      "data": "FOO<script>'<!--'</script>BAR",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "script": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO"
+                  },
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "'<!--'",
+                        "no_escape": true
+                      }
+                    ]
+                  },
+                  {
+                    "text": "BAR"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO<script>'<!--'</script>BAR</body></html>",
+        "noQuirksBodyHtml": "FOO<script>'<!--'</script>BAR"
+      }
+    },
+    {
+      "data": "FOO<script>'<!---'</script>BAR",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "script": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO"
+                  },
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "'<!---'",
+                        "no_escape": true
+                      }
+                    ]
+                  },
+                  {
+                    "text": "BAR"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO<script>'<!---'</script>BAR</body></html>",
+        "noQuirksBodyHtml": "FOO<script>'<!---'</script>BAR"
+      }
+    },
+    {
+      "data": "FOO<script>'<!-->'</script>BAR",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "script": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO"
+                  },
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "'<!-->'",
+                        "no_escape": true
+                      }
+                    ]
+                  },
+                  {
+                    "text": "BAR"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO<script>'<!-->'</script>BAR</body></html>",
+        "noQuirksBodyHtml": "FOO<script>'<!-->'</script>BAR"
+      }
+    },
+    {
+      "data": "FOO<script>'<!-->'</script>BAR",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "script": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO"
+                  },
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "'<!-->'",
+                        "no_escape": true
+                      }
+                    ]
+                  },
+                  {
+                    "text": "BAR"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO<script>'<!-->'</script>BAR</body></html>",
+        "noQuirksBodyHtml": "FOO<script>'<!-->'</script>BAR"
+      }
+    },
+    {
+      "data": "FOO<script>'<!-- potato'</script>BAR",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "script": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO"
+                  },
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "'<!-- potato'",
+                        "no_escape": true
+                      }
+                    ]
+                  },
+                  {
+                    "text": "BAR"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO<script>'<!-- potato'</script>BAR</body></html>",
+        "noQuirksBodyHtml": "FOO<script>'<!-- potato'</script>BAR"
+      }
+    },
+    {
+      "data": "FOO<script>'<!-- <sCrIpt'</script>BAR",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "script": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO"
+                  },
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "'<!-- <sCrIpt'",
+                        "no_escape": true
+                      }
+                    ]
+                  },
+                  {
+                    "text": "BAR"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO<script>'<!-- <sCrIpt'</script>BAR</body></html>",
+        "noQuirksBodyHtml": "FOO<script>'<!-- <sCrIpt'</script>BAR"
+      }
+    },
+    {
+      "data": "FOO<script type=\"text/plain\">'<!-- <sCrIpt>'</script>BAR",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,56): expected-script-data-but-got-eof",
+        "(1,56): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "script": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO"
+                  },
+                  {
+                    "tag": "script",
+                    "attrs": [
+                      {
+                        "name": "type",
+                        "value": "text/plain"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "'<!-- <sCrIpt>'</script>BAR",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO<script type=\"text/plain\">'<!-- <sCrIpt>'</script>BAR</script></body></html>",
+        "noQuirksBodyHtml": "FOO<script type=\"text/plain\">'<!-- <sCrIpt>'</script>BAR</script>"
+      }
+    },
+    {
+      "data": "FOO<script type=\"text/plain\">'<!-- <sCrIpt> -'</script>BAR",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,58): expected-script-data-but-got-eof",
+        "(1,58): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "script": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO"
+                  },
+                  {
+                    "tag": "script",
+                    "attrs": [
+                      {
+                        "name": "type",
+                        "value": "text/plain"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "'<!-- <sCrIpt> -'</script>BAR",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO<script type=\"text/plain\">'<!-- <sCrIpt> -'</script>BAR</script></body></html>",
+        "noQuirksBodyHtml": "FOO<script type=\"text/plain\">'<!-- <sCrIpt> -'</script>BAR</script>"
+      }
+    },
+    {
+      "data": "FOO<script type=\"text/plain\">'<!-- <sCrIpt> --'</script>BAR",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,59): expected-script-data-but-got-eof",
+        "(1,59): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "script": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO"
+                  },
+                  {
+                    "tag": "script",
+                    "attrs": [
+                      {
+                        "name": "type",
+                        "value": "text/plain"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "'<!-- <sCrIpt> --'</script>BAR",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO<script type=\"text/plain\">'<!-- <sCrIpt> --'</script>BAR</script></body></html>",
+        "noQuirksBodyHtml": "FOO<script type=\"text/plain\">'<!-- <sCrIpt> --'</script>BAR</script>"
+      }
+    },
+    {
+      "data": "FOO<script>'<!-- <sCrIpt> -->'</script>BAR",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "script": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO"
+                  },
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "'<!-- <sCrIpt> -->'",
+                        "no_escape": true
+                      }
+                    ]
+                  },
+                  {
+                    "text": "BAR"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO<script>'<!-- <sCrIpt> -->'</script>BAR</body></html>",
+        "noQuirksBodyHtml": "FOO<script>'<!-- <sCrIpt> -->'</script>BAR"
+      }
+    },
+    {
+      "data": "FOO<script type=\"text/plain\">'<!-- <sCrIpt> --!>'</script>BAR",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,61): expected-script-data-but-got-eof",
+        "(1,61): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "script": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO"
+                  },
+                  {
+                    "tag": "script",
+                    "attrs": [
+                      {
+                        "name": "type",
+                        "value": "text/plain"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "'<!-- <sCrIpt> --!>'</script>BAR",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO<script type=\"text/plain\">'<!-- <sCrIpt> --!>'</script>BAR</script></body></html>",
+        "noQuirksBodyHtml": "FOO<script type=\"text/plain\">'<!-- <sCrIpt> --!>'</script>BAR</script>"
+      }
+    },
+    {
+      "data": "FOO<script type=\"text/plain\">'<!-- <sCrIpt> -- >'</script>BAR",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,61): expected-script-data-but-got-eof",
+        "(1,61): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "script": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO"
+                  },
+                  {
+                    "tag": "script",
+                    "attrs": [
+                      {
+                        "name": "type",
+                        "value": "text/plain"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "'<!-- <sCrIpt> -- >'</script>BAR",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO<script type=\"text/plain\">'<!-- <sCrIpt> -- >'</script>BAR</script></body></html>",
+        "noQuirksBodyHtml": "FOO<script type=\"text/plain\">'<!-- <sCrIpt> -- >'</script>BAR</script>"
+      }
+    },
+    {
+      "data": "FOO<script type=\"text/plain\">'<!-- <sCrIpt '</script>BAR",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,56): expected-script-data-but-got-eof",
+        "(1,56): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "script": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO"
+                  },
+                  {
+                    "tag": "script",
+                    "attrs": [
+                      {
+                        "name": "type",
+                        "value": "text/plain"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "'<!-- <sCrIpt '</script>BAR",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO<script type=\"text/plain\">'<!-- <sCrIpt '</script>BAR</script></body></html>",
+        "noQuirksBodyHtml": "FOO<script type=\"text/plain\">'<!-- <sCrIpt '</script>BAR</script>"
+      }
+    },
+    {
+      "data": "FOO<script type=\"text/plain\">'<!-- <sCrIpt/'</script>BAR",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars",
+        "(1,56): expected-script-data-but-got-eof",
+        "(1,56): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "script": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO"
+                  },
+                  {
+                    "tag": "script",
+                    "attrs": [
+                      {
+                        "name": "type",
+                        "value": "text/plain"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "'<!-- <sCrIpt/'</script>BAR",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO<script type=\"text/plain\">'<!-- <sCrIpt/'</script>BAR</script></body></html>",
+        "noQuirksBodyHtml": "FOO<script type=\"text/plain\">'<!-- <sCrIpt/'</script>BAR</script>"
+      }
+    },
+    {
+      "data": "FOO<script type=\"text/plain\">'<!-- <sCrIpt\\'</script>BAR",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "script": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO"
+                  },
+                  {
+                    "tag": "script",
+                    "attrs": [
+                      {
+                        "name": "type",
+                        "value": "text/plain"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "'<!-- <sCrIpt\\'",
+                        "no_escape": true
+                      }
+                    ]
+                  },
+                  {
+                    "text": "BAR"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO<script type=\"text/plain\">'<!-- <sCrIpt\\'</script>BAR</body></html>",
+        "noQuirksBodyHtml": "FOO<script type=\"text/plain\">'<!-- <sCrIpt\\'</script>BAR"
+      }
+    },
+    {
+      "data": "FOO<script type=\"text/plain\">'<!-- <sCrIpt/'</script>BAR</script>QUX",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "script": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO"
+                  },
+                  {
+                    "tag": "script",
+                    "attrs": [
+                      {
+                        "name": "type",
+                        "value": "text/plain"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "'<!-- <sCrIpt/'</script>BAR",
+                        "no_escape": true
+                      }
+                    ]
+                  },
+                  {
+                    "text": "QUX"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO<script type=\"text/plain\">'<!-- <sCrIpt/'</script>BAR</script>QUX</body></html>",
+        "noQuirksBodyHtml": "FOO<script type=\"text/plain\">'<!-- <sCrIpt/'</script>BAR</script>QUX"
+      }
+    },
+    {
+      "data": "FOO<script><!--<script>-></script>--></script>QUX",
+      "errors": [
+        "(1,3): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "script": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "FOO"
+                  },
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script>-></script>-->",
+                        "no_escape": true
+                      }
+                    ]
+                  },
+                  {
+                    "text": "QUX"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>FOO<script><!--<script>-></script>--></script>QUX</body></html>",
+        "noQuirksBodyHtml": "FOO<script><!--<script>-></script>--></script>QUX"
+      }
+    }
+  ],
+  "tables01.dat": [
+    {
+      "data": "<table><th>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,11): unexpected-cell-in-table-body",
+        "(1,11): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "th": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "th"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><tbody><tr><th></th></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<table><tbody><tr><th></th></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<table><td>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,11): unexpected-cell-in-table-body",
+        "(1,11): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><tbody><tr><td></td></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<table><tbody><tr><td></td></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<table><col foo='bar'>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,22): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "colgroup": true,
+            "col": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "colgroup",
+                        "children": [
+                          {
+                            "tag": "col",
+                            "attrs": [
+                              {
+                                "name": "foo",
+                                "value": "bar"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><colgroup><col foo=\"bar\"></colgroup></table></body></html>",
+        "noQuirksBodyHtml": "<table><colgroup><col foo=\"bar\"></colgroup></table>"
+      }
+    },
+    {
+      "data": "<table><colgroup></html>foo",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,24): unexpected-end-tag",
+        "(1,27): foster-parenting-character-in-table",
+        "(1,27): foster-parenting-character-in-table",
+        "(1,27): foster-parenting-character-in-table",
+        "(1,27): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "colgroup": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "foo"
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "colgroup"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>foo<table><colgroup></colgroup></table></body></html>",
+        "noQuirksBodyHtml": "foo<table><colgroup></colgroup></table>"
+      }
+    },
+    {
+      "data": "<table></table><p>foo",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "p": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table"
+                  },
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "text": "foo"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table></table><p>foo</p></body></html>",
+        "noQuirksBodyHtml": "<table></table><p>foo</p>"
+      }
+    },
+    {
+      "data": "<table></body></caption></col></colgroup></html></tbody></td></tfoot></th></thead></tr><td>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,14): unexpected-end-tag",
+        "(1,24): unexpected-end-tag",
+        "(1,30): unexpected-end-tag",
+        "(1,41): unexpected-end-tag",
+        "(1,48): unexpected-end-tag",
+        "(1,56): unexpected-end-tag",
+        "(1,61): unexpected-end-tag",
+        "(1,69): unexpected-end-tag",
+        "(1,74): unexpected-end-tag",
+        "(1,82): unexpected-end-tag",
+        "(1,87): unexpected-end-tag",
+        "(1,91): unexpected-cell-in-table-body",
+        "(1,91): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><tbody><tr><td></td></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<table><tbody><tr><td></td></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<table><select><option>3</select></table>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,15): unexpected-start-tag-implies-table-voodoo"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true,
+            "option": true,
+            "table": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select",
+                    "children": [
+                      {
+                        "tag": "option",
+                        "children": [
+                          {
+                            "text": "3"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "table"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><select><option>3</option></select><table></table></body></html>",
+        "noQuirksBodyHtml": "<select><option>3</option></select><table></table>"
+      }
+    },
+    {
+      "data": "<table><select><table></table></select></table>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,15): unexpected-start-tag-implies-table-voodoo",
+        "(1,22): unexpected-table-element-start-tag-in-select-in-table",
+        "(1,22): unexpected-start-tag-implies-end-tag",
+        "(1,39): unexpected-end-tag",
+        "(1,47): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true,
+            "table": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select"
+                  },
+                  {
+                    "tag": "table"
+                  },
+                  {
+                    "tag": "table"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><select></select><table></table><table></table></body></html>",
+        "noQuirksBodyHtml": "<select></select><table></table><table></table>"
+      }
+    },
+    {
+      "data": "<table><select></table>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,15): unexpected-start-tag-implies-table-voodoo",
+        "(1,23): unexpected-table-element-end-tag-in-select-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true,
+            "table": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select"
+                  },
+                  {
+                    "tag": "table"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><select></select><table></table></body></html>",
+        "noQuirksBodyHtml": "<select></select><table></table>"
+      }
+    },
+    {
+      "data": "<table><select><option>A<tr><td>B</td></tr></table>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,15): unexpected-start-tag-implies-table-voodoo",
+        "(1,28): unexpected-table-element-start-tag-in-select-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true,
+            "option": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select",
+                    "children": [
+                      {
+                        "tag": "option",
+                        "children": [
+                          {
+                            "text": "A"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td",
+                                "children": [
+                                  {
+                                    "text": "B"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><select><option>A</option></select><table><tbody><tr><td>B</td></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<select><option>A</option></select><table><tbody><tr><td>B</td></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<table><td></body></caption></col></colgroup></html>foo",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,11): unexpected-cell-in-table-body",
+        "(1,18): unexpected-end-tag",
+        "(1,28): unexpected-end-tag",
+        "(1,34): unexpected-end-tag",
+        "(1,45): unexpected-end-tag",
+        "(1,52): unexpected-end-tag",
+        "(1,55): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td",
+                                "children": [
+                                  {
+                                    "text": "foo"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><tbody><tr><td>foo</td></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<table><tbody><tr><td>foo</td></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<table><td>A</table>B",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,11): unexpected-cell-in-table-body"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td",
+                                "children": [
+                                  {
+                                    "text": "A"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "text": "B"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><tbody><tr><td>A</td></tr></tbody></table>B</body></html>",
+        "noQuirksBodyHtml": "<table><tbody><tr><td>A</td></tr></tbody></table>B"
+      }
+    },
+    {
+      "data": "<table><tr><caption>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,20): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "caption": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "caption"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><tbody><tr></tr></tbody><caption></caption></table></body></html>",
+        "noQuirksBodyHtml": "<table><tbody><tr></tr></tbody><caption></caption></table>"
+      }
+    },
+    {
+      "data": "<table><tr></body></caption></col></colgroup></html></td></th><td>foo",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,18): unexpected-end-tag-in-table-row",
+        "(1,28): unexpected-end-tag-in-table-row",
+        "(1,34): unexpected-end-tag-in-table-row",
+        "(1,45): unexpected-end-tag-in-table-row",
+        "(1,52): unexpected-end-tag-in-table-row",
+        "(1,57): unexpected-end-tag-in-table-row",
+        "(1,62): unexpected-end-tag-in-table-row",
+        "(1,69): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td",
+                                "children": [
+                                  {
+                                    "text": "foo"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><tbody><tr><td>foo</td></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<table><tbody><tr><td>foo</td></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<table><td><tr>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,11): unexpected-cell-in-table-body",
+        "(1,15): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td"
+                              }
+                            ]
+                          },
+                          {
+                            "tag": "tr"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><tbody><tr><td></td></tr><tr></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<table><tbody><tr><td></td></tr><tr></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<table><td><button><td>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,11): unexpected-cell-in-table-body",
+        "(1,23): unexpected-cell-end-tag",
+        "(1,23): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true,
+            "button": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td",
+                                "children": [
+                                  {
+                                    "tag": "button"
+                                  }
+                                ]
+                              },
+                              {
+                                "tag": "td"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><tbody><tr><td><button></button></td><td></td></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<table><tbody><tr><td><button></button></td><td></td></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<table><tr><td><svg><desc><td>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,30): unexpected-cell-end-tag",
+        "(1,30): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true,
+            "svg svg": true,
+            "svg desc": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td",
+                                "children": [
+                                  {
+                                    "tag": "svg",
+                                    "ns": "http://www.w3.org/2000/svg",
+                                    "children": [
+                                      {
+                                        "tag": "desc",
+                                        "ns": "http://www.w3.org/2000/svg"
+                                      }
+                                    ]
+                                  }
+                                ]
+                              },
+                              {
+                                "tag": "td"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><tbody><tr><td><svg><desc></desc></svg></td><td></td></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<table><tbody><tr><td><svg><desc></desc></svg></td><td></td></tr></tbody></table>"
+      }
+    }
+  ],
+  "template.dat": [
+    {
+      "data": "<body><template>Hello</template>",
+      "errors": [
+        "no doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "template": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "text": "Hello"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><template>Hello</template></body></html>",
+        "noQuirksBodyHtml": "<template>Hello</template>"
+      }
+    },
+    {
+      "data": "<template>Hello</template>",
+      "errors": [
+        "no doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "template": true,
+            "body": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "text": "Hello"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><template>Hello</template></head><body></body></html>",
+        "noQuirksBodyHtml": "<template>Hello</template>"
+      }
+    },
+    {
+      "data": "<template></template><div></div>",
+      "errors": [
+        "no doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "template": true,
+            "body": true,
+            "div": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><template></template></head><body><div></div></body></html>",
+        "noQuirksBodyHtml": "<template></template><div></div>"
+      }
+    },
+    {
+      "data": "<html><template>Hello</template>",
+      "errors": [
+        "no doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "template": true,
+            "body": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "text": "Hello"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><template>Hello</template></head><body></body></html>",
+        "noQuirksBodyHtml": "<template>Hello</template>"
+      }
+    },
+    {
+      "data": "<head><template><div></div></template></head>",
+      "errors": [
+        "no doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "template": true,
+            "div": true,
+            "body": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "div"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><template><div></div></template></head><body></body></html>",
+        "noQuirksBodyHtml": "<template><div></div></template>"
+      }
+    },
+    {
+      "data": "<div><template><div><span></template><b>",
+      "errors": [
+        " * (1,6) missing DOCTYPE",
+        " * (1,38) mismatched template end tag",
+        " * (1,41) unexpected end of file"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true,
+            "template": true,
+            "span": true,
+            "b": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "tag": "template",
+                        "children": [
+                          {
+                            "content": true,
+                            "children": [
+                              {
+                                "tag": "div",
+                                "children": [
+                                  {
+                                    "tag": "span"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "b"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div><template><div><span></span></div></template><b></b></div></body></html>",
+        "noQuirksBodyHtml": "<div><template><div><span></span></div></template><b></b></div>"
+      }
+    },
+    {
+      "data": "<div><template></div>Hello",
+      "errors": [
+        " * (1,6) missing DOCTYPE",
+        " * (1,22) unexpected token in template",
+        " * (1,27) unexpected end of file in template",
+        " * (1,27) unexpected end of file"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true,
+            "template": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "tag": "template",
+                        "children": [
+                          {
+                            "content": true,
+                            "children": [
+                              {
+                                "text": "Hello"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div><template>Hello</template></div></body></html>",
+        "noQuirksBodyHtml": "<div><template>Hello</template></div>"
+      }
+    },
+    {
+      "data": "<div></template></div>",
+      "errors": [
+        " * (1,6) missing DOCTYPE",
+        " * (1,17) unexpected template end tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div></div></body></html>",
+        "noQuirksBodyHtml": "<div></div>"
+      }
+    },
+    {
+      "data": "<table><template></template></table>",
+      "errors": [
+        "no doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "template": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "template",
+                        "children": [
+                          {
+                            "content": true
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><template></template></table></body></html>",
+        "noQuirksBodyHtml": "<table><template></template></table>"
+      }
+    },
+    {
+      "data": "<table><template></template></div>",
+      "errors": [
+        " * (1,8) missing DOCTYPE",
+        " * (1,35) unexpected token in table - foster parenting",
+        " * (1,35) unexpected end tag",
+        " * (1,35) unexpected end of file"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "template": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "template",
+                        "children": [
+                          {
+                            "content": true
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><template></template></table></body></html>",
+        "noQuirksBodyHtml": "<table><template></template></table>"
+      }
+    },
+    {
+      "data": "<table><div><template></template></div>",
+      "errors": [
+        " * (1,8) missing DOCTYPE",
+        " * (1,13) unexpected token in table - foster parenting",
+        " * (1,40) unexpected token in table - foster parenting",
+        " * (1,40) unexpected end of file"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true,
+            "template": true,
+            "table": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "tag": "template",
+                        "children": [
+                          {
+                            "content": true
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "table"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div><template></template></div><table></table></body></html>",
+        "noQuirksBodyHtml": "<div><template></template></div><table></table>"
+      }
+    },
+    {
+      "data": "<table><template></template><div></div>",
+      "errors": [
+        "no doctype",
+        "bad div in table",
+        "bad /div in table",
+        "eof in table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true,
+            "table": true,
+            "template": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div"
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "template",
+                        "children": [
+                          {
+                            "content": true
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div></div><table><template></template></table></body></html>",
+        "noQuirksBodyHtml": "<div></div><table><template></template></table>"
+      }
+    },
+    {
+      "data": "<table>   <template></template></table>",
+      "errors": [
+        "no doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "template": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "text": "   "
+                      },
+                      {
+                        "tag": "template",
+                        "children": [
+                          {
+                            "content": true
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table>   <template></template></table></body></html>",
+        "noQuirksBodyHtml": "<table>   <template></template></table>"
+      }
+    },
+    {
+      "data": "<table><tbody><template></template></tbody>",
+      "errors": [
+        "no doctype",
+        "eof in table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "template": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "template",
+                            "children": [
+                              {
+                                "content": true
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><tbody><template></template></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<table><tbody><template></template></tbody></table>"
+      }
+    },
+    {
+      "data": "<table><tbody><template></tbody></template>",
+      "errors": [
+        "no doctype",
+        "bad /tbody",
+        "eof in table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "template": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "template",
+                            "children": [
+                              {
+                                "content": true
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><tbody><template></template></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<table><tbody><template></template></tbody></table>"
+      }
+    },
+    {
+      "data": "<table><tbody><template></template></tbody></table>",
+      "errors": [
+        "no doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "template": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "template",
+                            "children": [
+                              {
+                                "content": true
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><tbody><template></template></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<table><tbody><template></template></tbody></table>"
+      }
+    },
+    {
+      "data": "<table><thead><template></template></thead>",
+      "errors": [
+        "no doctype",
+        "eof in table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "thead": true,
+            "template": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "thead",
+                        "children": [
+                          {
+                            "tag": "template",
+                            "children": [
+                              {
+                                "content": true
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><thead><template></template></thead></table></body></html>",
+        "noQuirksBodyHtml": "<table><thead><template></template></thead></table>"
+      }
+    },
+    {
+      "data": "<table><tfoot><template></template></tfoot>",
+      "errors": [
+        "no doctype",
+        "eof in table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tfoot": true,
+            "template": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tfoot",
+                        "children": [
+                          {
+                            "tag": "template",
+                            "children": [
+                              {
+                                "content": true
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><tfoot><template></template></tfoot></table></body></html>",
+        "noQuirksBodyHtml": "<table><tfoot><template></template></tfoot></table>"
+      }
+    },
+    {
+      "data": "<select><template></template></select>",
+      "errors": [
+        "no doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true,
+            "template": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select",
+                    "children": [
+                      {
+                        "tag": "template",
+                        "children": [
+                          {
+                            "content": true
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><select><template></template></select></body></html>",
+        "noQuirksBodyHtml": "<select><template></template></select>"
+      }
+    },
+    {
+      "data": "<select><template><option></option></template></select>",
+      "errors": [
+        "no doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true,
+            "template": true,
+            "option": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select",
+                    "children": [
+                      {
+                        "tag": "template",
+                        "children": [
+                          {
+                            "content": true,
+                            "children": [
+                              {
+                                "tag": "option"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><select><template><option></option></template></select></body></html>",
+        "noQuirksBodyHtml": "<select><template><option></option></template></select>"
+      }
+    },
+    {
+      "data": "<template><option></option></select><option></option></template>",
+      "errors": [
+        "no doctype",
+        "bad /select"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "template": true,
+            "option": true,
+            "body": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "option"
+                          },
+                          {
+                            "tag": "option"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><template><option></option><option></option></template></head><body></body></html>",
+        "noQuirksBodyHtml": "<template><option></option><option></option></template>"
+      }
+    },
+    {
+      "data": "<select><template></template><option></select>",
+      "errors": [
+        "no doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true,
+            "template": true,
+            "option": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select",
+                    "children": [
+                      {
+                        "tag": "template",
+                        "children": [
+                          {
+                            "content": true
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "option"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><select><template></template><option></option></select></body></html>",
+        "noQuirksBodyHtml": "<select><template></template><option></option></select>"
+      }
+    },
+    {
+      "data": "<select><option><template></template></select>",
+      "errors": [
+        "no doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true,
+            "option": true,
+            "template": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select",
+                    "children": [
+                      {
+                        "tag": "option",
+                        "children": [
+                          {
+                            "tag": "template",
+                            "children": [
+                              {
+                                "content": true
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><select><option><template></template></option></select></body></html>",
+        "noQuirksBodyHtml": "<select><option><template></template></option></select>"
+      }
+    },
+    {
+      "data": "<select><template>",
+      "errors": [
+        "no doctype",
+        "eof in template",
+        "eof in select"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true,
+            "template": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select",
+                    "children": [
+                      {
+                        "tag": "template",
+                        "children": [
+                          {
+                            "content": true
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><select><template></template></select></body></html>",
+        "noQuirksBodyHtml": "<select><template></template></select>"
+      }
+    },
+    {
+      "data": "<select><option></option><template>",
+      "errors": [
+        "no doctype",
+        "eof in template",
+        "eof in select"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true,
+            "option": true,
+            "template": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select",
+                    "children": [
+                      {
+                        "tag": "option"
+                      },
+                      {
+                        "tag": "template",
+                        "children": [
+                          {
+                            "content": true
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><select><option></option><template></template></select></body></html>",
+        "noQuirksBodyHtml": "<select><option></option><template></template></select>"
+      }
+    },
+    {
+      "data": "<select><option></option><template><option>",
+      "errors": [
+        "no doctype",
+        "eof in template",
+        "eof in select"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true,
+            "option": true,
+            "template": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select",
+                    "children": [
+                      {
+                        "tag": "option"
+                      },
+                      {
+                        "tag": "template",
+                        "children": [
+                          {
+                            "content": true,
+                            "children": [
+                              {
+                                "tag": "option"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><select><option></option><template><option></option></template></select></body></html>",
+        "noQuirksBodyHtml": "<select><option></option><template><option></option></template></select>"
+      }
+    },
+    {
+      "data": "<table><thead><template><td></template></table>",
+      "errors": [
+        " * (1,8) missing DOCTYPE"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "thead": true,
+            "template": true,
+            "td": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "thead",
+                        "children": [
+                          {
+                            "tag": "template",
+                            "children": [
+                              {
+                                "content": true,
+                                "children": [
+                                  {
+                                    "tag": "td"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><thead><template><td></td></template></thead></table></body></html>",
+        "noQuirksBodyHtml": "<table><thead><template><td></td></template></thead></table>"
+      }
+    },
+    {
+      "data": "<table><template><thead></template></table>",
+      "errors": [
+        "no doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "template": true,
+            "thead": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "template",
+                        "children": [
+                          {
+                            "content": true,
+                            "children": [
+                              {
+                                "tag": "thead"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><template><thead></thead></template></table></body></html>",
+        "noQuirksBodyHtml": "<table><template><thead></thead></template></table>"
+      }
+    },
+    {
+      "data": "<body><table><template><td></tr><div></template></table>",
+      "errors": [
+        "no doctype",
+        "bad </tr>",
+        "missing </div>"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "template": true,
+            "td": true,
+            "div": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "template",
+                        "children": [
+                          {
+                            "content": true,
+                            "children": [
+                              {
+                                "tag": "td",
+                                "children": [
+                                  {
+                                    "tag": "div"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><template><td><div></div></td></template></table></body></html>",
+        "noQuirksBodyHtml": "<table><template><td><div></div></td></template></table>"
+      }
+    },
+    {
+      "data": "<table><template><thead></template></thead></table>",
+      "errors": [
+        "no doctype",
+        "bad /thead after /template"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "template": true,
+            "thead": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "template",
+                        "children": [
+                          {
+                            "content": true,
+                            "children": [
+                              {
+                                "tag": "thead"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><template><thead></thead></template></table></body></html>",
+        "noQuirksBodyHtml": "<table><template><thead></thead></template></table>"
+      }
+    },
+    {
+      "data": "<table><thead><template><tr></template></table>",
+      "errors": [
+        "no doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "thead": true,
+            "template": true,
+            "tr": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "thead",
+                        "children": [
+                          {
+                            "tag": "template",
+                            "children": [
+                              {
+                                "content": true,
+                                "children": [
+                                  {
+                                    "tag": "tr"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><thead><template><tr></tr></template></thead></table></body></html>",
+        "noQuirksBodyHtml": "<table><thead><template><tr></tr></template></thead></table>"
+      }
+    },
+    {
+      "data": "<table><template><tr></template></table>",
+      "errors": [
+        "no doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "template": true,
+            "tr": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "template",
+                        "children": [
+                          {
+                            "content": true,
+                            "children": [
+                              {
+                                "tag": "tr"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><template><tr></tr></template></table></body></html>",
+        "noQuirksBodyHtml": "<table><template><tr></tr></template></table>"
+      }
+    },
+    {
+      "data": "<table><tr><template><td>",
+      "errors": [
+        "no doctype",
+        "eof in template",
+        "eof in table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "template": true,
+            "td": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "template",
+                                "children": [
+                                  {
+                                    "content": true,
+                                    "children": [
+                                      {
+                                        "tag": "td"
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><tbody><tr><template><td></td></template></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<table><tbody><tr><template><td></td></template></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<table><template><tr><template><td></template></tr></template></table>",
+      "errors": [
+        "no doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "template": true,
+            "tr": true,
+            "td": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "template",
+                        "children": [
+                          {
+                            "content": true,
+                            "children": [
+                              {
+                                "tag": "tr",
+                                "children": [
+                                  {
+                                    "tag": "template",
+                                    "children": [
+                                      {
+                                        "content": true,
+                                        "children": [
+                                          {
+                                            "tag": "td"
+                                          }
+                                        ]
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><template><tr><template><td></td></template></tr></template></table></body></html>",
+        "noQuirksBodyHtml": "<table><template><tr><template><td></td></template></tr></template></table>"
+      }
+    },
+    {
+      "data": "<table><template><tr><template><td></td></template></tr></template></table>",
+      "errors": [
+        "no doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "template": true,
+            "tr": true,
+            "td": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "template",
+                        "children": [
+                          {
+                            "content": true,
+                            "children": [
+                              {
+                                "tag": "tr",
+                                "children": [
+                                  {
+                                    "tag": "template",
+                                    "children": [
+                                      {
+                                        "content": true,
+                                        "children": [
+                                          {
+                                            "tag": "td"
+                                          }
+                                        ]
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><template><tr><template><td></td></template></tr></template></table></body></html>",
+        "noQuirksBodyHtml": "<table><template><tr><template><td></td></template></tr></template></table>"
+      }
+    },
+    {
+      "data": "<table><template><td></template>",
+      "errors": [
+        "no doctype",
+        "eof in table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "template": true,
+            "td": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "template",
+                        "children": [
+                          {
+                            "content": true,
+                            "children": [
+                              {
+                                "tag": "td"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><template><td></td></template></table></body></html>",
+        "noQuirksBodyHtml": "<table><template><td></td></template></table>"
+      }
+    },
+    {
+      "data": "<body><template><td></td></template>",
+      "errors": [
+        "no doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "template": true,
+            "td": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "td"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><template><td></td></template></body></html>",
+        "noQuirksBodyHtml": "<template><td></td></template>"
+      }
+    },
+    {
+      "data": "<body><template><template><tr></tr></template><td></td></template>",
+      "errors": [
+        "no doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "template": true,
+            "tr": true,
+            "td": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "template",
+                            "children": [
+                              {
+                                "content": true,
+                                "children": [
+                                  {
+                                    "tag": "tr"
+                                  }
+                                ]
+                              }
+                            ]
+                          },
+                          {
+                            "tag": "td"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><template><template><tr></tr></template><td></td></template></body></html>",
+        "noQuirksBodyHtml": "<template><template><tr></tr></template><td></td></template>"
+      }
+    },
+    {
+      "data": "<table><colgroup><template><col>",
+      "errors": [
+        "no doctype",
+        "eof in template",
+        "eof in table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "colgroup": true,
+            "template": true,
+            "col": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "colgroup",
+                        "children": [
+                          {
+                            "tag": "template",
+                            "children": [
+                              {
+                                "content": true,
+                                "children": [
+                                  {
+                                    "tag": "col"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><colgroup><template><col></template></colgroup></table></body></html>",
+        "noQuirksBodyHtml": "<table><colgroup><template><col></template></colgroup></table>"
+      }
+    },
+    {
+      "data": "<frameset><template><frame></frame></template></frameset>",
+      "errors": [
+        " * (1,11) missing DOCTYPE",
+        " * (1,21) unexpected start tag token",
+        " * (1,36) unexpected end tag token",
+        " * (1,47) unexpected end tag token"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true,
+            "frame": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset",
+                "children": [
+                  {
+                    "tag": "frame"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><frameset><frame></frameset></html>",
+        "noQuirksBodyHtml": "<template></template>"
+      }
+    },
+    {
+      "data": "<template><frame></frame></frameset><frame></frame></template>",
+      "errors": [
+        " * (1,11) missing DOCTYPE",
+        " * (1,18) unexpected start tag",
+        " * (1,26) unexpected end tag",
+        " * (1,37) unexpected end tag",
+        " * (1,44) unexpected start tag",
+        " * (1,52) unexpected end tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "template": true,
+            "body": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><template></template></head><body></body></html>",
+        "noQuirksBodyHtml": "<template></template>"
+      }
+    },
+    {
+      "data": "<template><div><frameset><span></span></div><span></span></template>",
+      "errors": [
+        "no doctype",
+        "bad frameset"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "template": true,
+            "div": true,
+            "span": true,
+            "body": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "div",
+                            "children": [
+                              {
+                                "tag": "span"
+                              }
+                            ]
+                          },
+                          {
+                            "tag": "span"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><template><div><span></span></div><span></span></template></head><body></body></html>",
+        "noQuirksBodyHtml": "<template><div><span></span></div><span></span></template>"
+      }
+    },
+    {
+      "data": "<body><template><div><frameset><span></span></div><span></span></template></body>",
+      "errors": [
+        "no doctype",
+        "bad frameset"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "template": true,
+            "div": true,
+            "span": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "div",
+                            "children": [
+                              {
+                                "tag": "span"
+                              }
+                            ]
+                          },
+                          {
+                            "tag": "span"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><template><div><span></span></div><span></span></template></body></html>",
+        "noQuirksBodyHtml": "<template><div><span></span></div><span></span></template>"
+      }
+    },
+    {
+      "data": "<body><template><script>var i = 1;</script><td></td></template>",
+      "errors": [
+        "no doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "template": true,
+            "script": true,
+            "td": true
+          },
+          "template": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "script",
+                            "children": [
+                              {
+                                "text": "var i = 1;",
+                                "no_escape": true
+                              }
+                            ]
+                          },
+                          {
+                            "tag": "td"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><template><script>var i = 1;</script><td></td></template></body></html>",
+        "noQuirksBodyHtml": "<template><script>var i = 1;</script><td></td></template>"
+      }
+    },
+    {
+      "data": "<body><template><tr><div></div></tr></template>",
+      "errors": [
+        "no doctype",
+        "foster-parented div",
+        "foster-parented /div"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "template": true,
+            "tr": true,
+            "div": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "tr"
+                          },
+                          {
+                            "tag": "div"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><template><tr></tr><div></div></template></body></html>",
+        "noQuirksBodyHtml": "<template><tr></tr><div></div></template>"
+      }
+    },
+    {
+      "data": "<body><template><tr></tr><td></td></template>",
+      "errors": [
+        "no doctype",
+        "unexpected <td>"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "template": true,
+            "tr": true,
+            "td": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "tr"
+                          },
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><template><tr></tr><tr><td></td></tr></template></body></html>",
+        "noQuirksBodyHtml": "<template><tr></tr><tr><td></td></tr></template>"
+      }
+    },
+    {
+      "data": "<body><template><td></td></tr><td></td></template>",
+      "errors": [
+        "no doctype",
+        "bad </tr>"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "template": true,
+            "td": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "td"
+                          },
+                          {
+                            "tag": "td"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><template><td></td><td></td></template></body></html>",
+        "noQuirksBodyHtml": "<template><td></td><td></td></template>"
+      }
+    },
+    {
+      "data": "<body><template><td></td><tbody><td></td></template>",
+      "errors": [
+        "no doctype",
+        "bad <tbody>"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "template": true,
+            "td": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "td"
+                          },
+                          {
+                            "tag": "td"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><template><td></td><td></td></template></body></html>",
+        "noQuirksBodyHtml": "<template><td></td><td></td></template>"
+      }
+    },
+    {
+      "data": "<body><template><td></td><caption></caption><td></td></template>",
+      "errors": [
+        " * (1,7) missing DOCTYPE",
+        " * (1,35) unexpected start tag in table row",
+        " * (1,45) unexpected end tag in table row"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "template": true,
+            "td": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "td"
+                          },
+                          {
+                            "tag": "td"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><template><td></td><td></td></template></body></html>",
+        "noQuirksBodyHtml": "<template><td></td><td></td></template>"
+      }
+    },
+    {
+      "data": "<body><template><td></td><colgroup></caption><td></td></template>",
+      "errors": [
+        " * (1,7) missing DOCTYPE",
+        " * (1,36) unexpected start tag in table row",
+        " * (1,46) unexpected end tag in table row"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "template": true,
+            "td": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "td"
+                          },
+                          {
+                            "tag": "td"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><template><td></td><td></td></template></body></html>",
+        "noQuirksBodyHtml": "<template><td></td><td></td></template>"
+      }
+    },
+    {
+      "data": "<body><template><td></td></table><td></td></template>",
+      "errors": [
+        "no doctype",
+        "bad </table>"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "template": true,
+            "td": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "td"
+                          },
+                          {
+                            "tag": "td"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><template><td></td><td></td></template></body></html>",
+        "noQuirksBodyHtml": "<template><td></td><td></td></template>"
+      }
+    },
+    {
+      "data": "<body><template><tr></tr><tbody><tr></tr></template>",
+      "errors": [
+        "no doctype",
+        "bad <tbody>"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "template": true,
+            "tr": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "tr"
+                          },
+                          {
+                            "tag": "tr"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><template><tr></tr><tr></tr></template></body></html>",
+        "noQuirksBodyHtml": "<template><tr></tr><tr></tr></template>"
+      }
+    },
+    {
+      "data": "<body><template><tr></tr><caption><tr></tr></template>",
+      "errors": [
+        "no doctype",
+        "bad <caption>"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "template": true,
+            "tr": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "tr"
+                          },
+                          {
+                            "tag": "tr"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><template><tr></tr><tr></tr></template></body></html>",
+        "noQuirksBodyHtml": "<template><tr></tr><tr></tr></template>"
+      }
+    },
+    {
+      "data": "<body><template><tr></tr></table><tr></tr></template>",
+      "errors": [
+        "no doctype",
+        "bad </table>"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "template": true,
+            "tr": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "tr"
+                          },
+                          {
+                            "tag": "tr"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><template><tr></tr><tr></tr></template></body></html>",
+        "noQuirksBodyHtml": "<template><tr></tr><tr></tr></template>"
+      }
+    },
+    {
+      "data": "<body><template><thead></thead><caption></caption><tbody></tbody></template>",
+      "errors": [
+        "no doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "template": true,
+            "thead": true,
+            "caption": true,
+            "tbody": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "thead"
+                          },
+                          {
+                            "tag": "caption"
+                          },
+                          {
+                            "tag": "tbody"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><template><thead></thead><caption></caption><tbody></tbody></template></body></html>",
+        "noQuirksBodyHtml": "<template><thead></thead><caption></caption><tbody></tbody></template>"
+      }
+    },
+    {
+      "data": "<body><template><thead></thead></table><tbody></tbody></template></body>",
+      "errors": [
+        "no doctype",
+        "bad </table>"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "template": true,
+            "thead": true,
+            "tbody": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "thead"
+                          },
+                          {
+                            "tag": "tbody"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><template><thead></thead><tbody></tbody></template></body></html>",
+        "noQuirksBodyHtml": "<template><thead></thead><tbody></tbody></template>"
+      }
+    },
+    {
+      "data": "<body><template><div><tr></tr></div></template>",
+      "errors": [
+        "no doctype",
+        "bad tr",
+        "bad /tr"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "template": true,
+            "div": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "div"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><template><div></div></template></body></html>",
+        "noQuirksBodyHtml": "<template><div></div></template>"
+      }
+    },
+    {
+      "data": "<body><template><em>Hello</em></template>",
+      "errors": [
+        "no doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "template": true,
+            "em": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "em",
+                            "children": [
+                              {
+                                "text": "Hello"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><template><em>Hello</em></template></body></html>",
+        "noQuirksBodyHtml": "<template><em>Hello</em></template>"
+      }
+    },
+    {
+      "data": "<body><template><!--comment--></template>",
+      "errors": [
+        "no doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "template": true
+          },
+          "template": true,
+          "comment": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "comment": "comment"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><template><!--comment--></template></body></html>",
+        "noQuirksBodyHtml": "<template><!--comment--></template>"
+      }
+    },
+    {
+      "data": "<body><template><style></style><td></td></template>",
+      "errors": [
+        "no doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "template": true,
+            "style": true,
+            "td": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "style"
+                          },
+                          {
+                            "tag": "td"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><template><style></style><td></td></template></body></html>",
+        "noQuirksBodyHtml": "<template><style></style><td></td></template>"
+      }
+    },
+    {
+      "data": "<body><template><meta><td></td></template>",
+      "errors": [
+        "no doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "template": true,
+            "meta": true,
+            "td": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "meta"
+                          },
+                          {
+                            "tag": "td"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><template><meta><td></td></template></body></html>",
+        "noQuirksBodyHtml": "<template><meta><td></td></template>"
+      }
+    },
+    {
+      "data": "<body><template><link><td></td></template>",
+      "errors": [
+        "no doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "template": true,
+            "link": true,
+            "td": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "link"
+                          },
+                          {
+                            "tag": "td"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><template><link><td></td></template></body></html>",
+        "noQuirksBodyHtml": "<template><link><td></td></template>"
+      }
+    },
+    {
+      "data": "<body><template><template><tr></tr></template><td></td></template>",
+      "errors": [
+        "no doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "template": true,
+            "tr": true,
+            "td": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "template",
+                            "children": [
+                              {
+                                "content": true,
+                                "children": [
+                                  {
+                                    "tag": "tr"
+                                  }
+                                ]
+                              }
+                            ]
+                          },
+                          {
+                            "tag": "td"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><template><template><tr></tr></template><td></td></template></body></html>",
+        "noQuirksBodyHtml": "<template><template><tr></tr></template><td></td></template>"
+      }
+    },
+    {
+      "data": "<body><table><colgroup><template><col></col></template></colgroup></table></body>",
+      "errors": [
+        "no doctype",
+        "bad /col"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "colgroup": true,
+            "template": true,
+            "col": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "colgroup",
+                        "children": [
+                          {
+                            "tag": "template",
+                            "children": [
+                              {
+                                "content": true,
+                                "children": [
+                                  {
+                                    "tag": "col"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><colgroup><template><col></template></colgroup></table></body></html>",
+        "noQuirksBodyHtml": "<table><colgroup><template><col></template></colgroup></table>"
+      }
+    },
+    {
+      "data": "<body a=b><template><div></div><body c=d><div></div></body></template></body>",
+      "errors": [
+        "no doctype",
+        "bad <body>",
+        "bad </body>"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "template": true,
+            "div": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "attrs": [
+                  {
+                    "name": "a",
+                    "value": "b"
+                  }
+                ],
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "div"
+                          },
+                          {
+                            "tag": "div"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body a=\"b\"><template><div></div><div></div></template></body></html>",
+        "noQuirksBodyHtml": "<template><div></div><div></div></template>"
+      }
+    },
+    {
+      "data": "<html a=b><template><div><html b=c><span></template>",
+      "errors": [
+        "no doctype",
+        "bad <html>",
+        "missing end tags in template"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "template": true,
+            "div": true,
+            "span": true,
+            "body": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "attrs": [
+              {
+                "name": "a",
+                "value": "b"
+              }
+            ],
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "div",
+                            "children": [
+                              {
+                                "tag": "span"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html a=\"b\"><head><template><div><span></span></div></template></head><body></body></html>",
+        "noQuirksBodyHtml": "<template><div><span></span></div></template>"
+      }
+    },
+    {
+      "data": "<html a=b><template><col></col><html b=c><col></col></template>",
+      "errors": [
+        "no doctype",
+        "bad /col",
+        "bad html",
+        "bad /col"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "template": true,
+            "col": true,
+            "body": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "attrs": [
+              {
+                "name": "a",
+                "value": "b"
+              }
+            ],
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "col"
+                          },
+                          {
+                            "tag": "col"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html a=\"b\"><head><template><col><col></template></head><body></body></html>",
+        "noQuirksBodyHtml": "<template><col><col></template>"
+      }
+    },
+    {
+      "data": "<html a=b><template><frame></frame><html b=c><frame></frame></template>",
+      "errors": [
+        "no doctype",
+        "bad frame",
+        "bad /frame",
+        "bad html",
+        "bad frame",
+        "bad /frame"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "template": true,
+            "body": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "attrs": [
+              {
+                "name": "a",
+                "value": "b"
+              }
+            ],
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html a=\"b\"><head><template></template></head><body></body></html>",
+        "noQuirksBodyHtml": "<template></template>"
+      }
+    },
+    {
+      "data": "<body><template><tr></tr><template></template><td></td></template>",
+      "errors": [
+        "no doctype",
+        "unexpected <td>"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "template": true,
+            "tr": true,
+            "td": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "tr"
+                          },
+                          {
+                            "tag": "template",
+                            "children": [
+                              {
+                                "content": true
+                              }
+                            ]
+                          },
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><template><tr></tr><template></template><tr><td></td></tr></template></body></html>",
+        "noQuirksBodyHtml": "<template><tr></tr><template></template><tr><td></td></tr></template>"
+      }
+    },
+    {
+      "data": "<body><template><thead></thead><template><tr></tr></template><tr></tr><tfoot></tfoot></template>",
+      "errors": [
+        "no doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "template": true,
+            "thead": true,
+            "tr": true,
+            "tbody": true,
+            "tfoot": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "thead"
+                          },
+                          {
+                            "tag": "template",
+                            "children": [
+                              {
+                                "content": true,
+                                "children": [
+                                  {
+                                    "tag": "tr"
+                                  }
+                                ]
+                              }
+                            ]
+                          },
+                          {
+                            "tag": "tbody",
+                            "children": [
+                              {
+                                "tag": "tr"
+                              }
+                            ]
+                          },
+                          {
+                            "tag": "tfoot"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><template><thead></thead><template><tr></tr></template><tbody><tr></tr></tbody><tfoot></tfoot></template></body></html>",
+        "noQuirksBodyHtml": "<template><thead></thead><template><tr></tr></template><tbody><tr></tr></tbody><tfoot></tfoot></template>"
+      }
+    },
+    {
+      "data": "<body><template><template><b><template></template></template>text</template>",
+      "errors": [
+        "no doctype",
+        "missing </b>"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "template": true,
+            "b": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "template",
+                            "children": [
+                              {
+                                "content": true,
+                                "children": [
+                                  {
+                                    "tag": "b",
+                                    "children": [
+                                      {
+                                        "tag": "template",
+                                        "children": [
+                                          {
+                                            "content": true
+                                          }
+                                        ]
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          },
+                          {
+                            "text": "text"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><template><template><b><template></template></b></template>text</template></body></html>",
+        "noQuirksBodyHtml": "<template><template><b><template></template></b></template>text</template>"
+      }
+    },
+    {
+      "data": "<body><template><col><colgroup>",
+      "errors": [
+        "no doctype",
+        "bad colgroup",
+        "eof in template"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "template": true,
+            "col": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "col"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><template><col></template></body></html>",
+        "noQuirksBodyHtml": "<template><col></template>"
+      }
+    },
+    {
+      "data": "<body><template><col></colgroup>",
+      "errors": [
+        "no doctype",
+        "bogus /colgroup",
+        "eof in template"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "template": true,
+            "col": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "col"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><template><col></template></body></html>",
+        "noQuirksBodyHtml": "<template><col></template>"
+      }
+    },
+    {
+      "data": "<body><template><col><colgroup></template></body>",
+      "errors": [
+        "no doctype",
+        "bad colgroup"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "template": true,
+            "col": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "col"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><template><col></template></body></html>",
+        "noQuirksBodyHtml": "<template><col></template>"
+      }
+    },
+    {
+      "data": "<body><template><col><div>",
+      "errors": [
+        " * (1,7) missing DOCTYPE",
+        " * (1,27) unexpected token",
+        " * (1,27) unexpected end of file in template"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "template": true,
+            "col": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "col"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><template><col></template></body></html>",
+        "noQuirksBodyHtml": "<template><col></template>"
+      }
+    },
+    {
+      "data": "<body><template><col></div>",
+      "errors": [
+        "no doctype",
+        "bad /div",
+        "eof in template"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "template": true,
+            "col": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "col"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><template><col></template></body></html>",
+        "noQuirksBodyHtml": "<template><col></template>"
+      }
+    },
+    {
+      "data": "<body><template><col>Hello",
+      "errors": [
+        "no doctype",
+        "unexpected text",
+        "eof in template"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "template": true,
+            "col": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "col"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><template><col></template></body></html>",
+        "noQuirksBodyHtml": "<template><col></template>"
+      }
+    },
+    {
+      "data": "<body><template><i><menu>Foo</i>",
+      "errors": [
+        "no doctype",
+        "mising /menu",
+        "eof in template"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "template": true,
+            "i": true,
+            "menu": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "i"
+                          },
+                          {
+                            "tag": "menu",
+                            "children": [
+                              {
+                                "tag": "i",
+                                "children": [
+                                  {
+                                    "text": "Foo"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><template><i></i><menu><i>Foo</i></menu></template></body></html>",
+        "noQuirksBodyHtml": "<template><i></i><menu><i>Foo</i></menu></template>"
+      }
+    },
+    {
+      "data": "<body><template></div><div>Foo</div><template></template><tr></tr>",
+      "errors": [
+        "no doctype",
+        "bogus /div",
+        "bogus tr",
+        "bogus /tr",
+        "eof in template"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "template": true,
+            "div": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "div",
+                            "children": [
+                              {
+                                "text": "Foo"
+                              }
+                            ]
+                          },
+                          {
+                            "tag": "template",
+                            "children": [
+                              {
+                                "content": true
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><template><div>Foo</div><template></template></template></body></html>",
+        "noQuirksBodyHtml": "<template><div>Foo</div><template></template></template>"
+      }
+    },
+    {
+      "data": "<body><div><template></div><tr><td>Foo</td></tr></template>",
+      "errors": [
+        " * (1,7) missing DOCTYPE",
+        " * (1,28) unexpected token in template",
+        " * (1,60) unexpected end of file"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true,
+            "template": true,
+            "tr": true,
+            "td": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "tag": "template",
+                        "children": [
+                          {
+                            "content": true,
+                            "children": [
+                              {
+                                "tag": "tr",
+                                "children": [
+                                  {
+                                    "tag": "td",
+                                    "children": [
+                                      {
+                                        "text": "Foo"
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div><template><tr><td>Foo</td></tr></template></div></body></html>",
+        "noQuirksBodyHtml": "<div><template><tr><td>Foo</td></tr></template></div>"
+      }
+    },
+    {
+      "data": "<template></figcaption><sub><table></table>",
+      "errors": [
+        "no doctype",
+        "bad /figcaption",
+        "eof in template"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "template": true,
+            "sub": true,
+            "table": true,
+            "body": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "sub",
+                            "children": [
+                              {
+                                "tag": "table"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><template><sub><table></table></sub></template></head><body></body></html>",
+        "noQuirksBodyHtml": "<template><sub><table></table></sub></template>"
+      }
+    },
+    {
+      "data": "<template><template>",
+      "errors": [
+        "no doctype",
+        "eof in template",
+        "eof in template"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "template": true,
+            "body": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "template",
+                            "children": [
+                              {
+                                "content": true
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><template><template></template></template></head><body></body></html>",
+        "noQuirksBodyHtml": "<template><template></template></template>"
+      }
+    },
+    {
+      "data": "<template><div>",
+      "errors": [
+        "no doctype",
+        "eof in template"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "template": true,
+            "div": true,
+            "body": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "div"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><template><div></div></template></head><body></body></html>",
+        "noQuirksBodyHtml": "<template><div></div></template>"
+      }
+    },
+    {
+      "data": "<template><template><div>",
+      "errors": [
+        "no doctype",
+        "eof in template",
+        "eof in template"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "template": true,
+            "div": true,
+            "body": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "template",
+                            "children": [
+                              {
+                                "content": true,
+                                "children": [
+                                  {
+                                    "tag": "div"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><template><template><div></div></template></template></head><body></body></html>",
+        "noQuirksBodyHtml": "<template><template><div></div></template></template>"
+      }
+    },
+    {
+      "data": "<template><template><table>",
+      "errors": [
+        "no doctype",
+        "eof in template",
+        "eof in template"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "template": true,
+            "table": true,
+            "body": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "template",
+                            "children": [
+                              {
+                                "content": true,
+                                "children": [
+                                  {
+                                    "tag": "table"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><template><template><table></table></template></template></head><body></body></html>",
+        "noQuirksBodyHtml": "<template><template><table></table></template></template>"
+      }
+    },
+    {
+      "data": "<template><template><tbody>",
+      "errors": [
+        "no doctype",
+        "eof in template",
+        "eof in template"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "template": true,
+            "tbody": true,
+            "body": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "template",
+                            "children": [
+                              {
+                                "content": true,
+                                "children": [
+                                  {
+                                    "tag": "tbody"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><template><template><tbody></tbody></template></template></head><body></body></html>",
+        "noQuirksBodyHtml": "<template><template><tbody></tbody></template></template>"
+      }
+    },
+    {
+      "data": "<template><template><tr>",
+      "errors": [
+        "no doctype",
+        "eof in template",
+        "eof in template"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "template": true,
+            "tr": true,
+            "body": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "template",
+                            "children": [
+                              {
+                                "content": true,
+                                "children": [
+                                  {
+                                    "tag": "tr"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><template><template><tr></tr></template></template></head><body></body></html>",
+        "noQuirksBodyHtml": "<template><template><tr></tr></template></template>"
+      }
+    },
+    {
+      "data": "<template><template><td>",
+      "errors": [
+        "no doctype",
+        "eof in template",
+        "eof in template"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "template": true,
+            "td": true,
+            "body": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "template",
+                            "children": [
+                              {
+                                "content": true,
+                                "children": [
+                                  {
+                                    "tag": "td"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><template><template><td></td></template></template></head><body></body></html>",
+        "noQuirksBodyHtml": "<template><template><td></td></template></template>"
+      }
+    },
+    {
+      "data": "<template><template><caption>",
+      "errors": [
+        "no doctype",
+        "eof in template",
+        "eof in template"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "template": true,
+            "caption": true,
+            "body": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "template",
+                            "children": [
+                              {
+                                "content": true,
+                                "children": [
+                                  {
+                                    "tag": "caption"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><template><template><caption></caption></template></template></head><body></body></html>",
+        "noQuirksBodyHtml": "<template><template><caption></caption></template></template>"
+      }
+    },
+    {
+      "data": "<template><template><colgroup>",
+      "errors": [
+        "no doctype",
+        "eof in template",
+        "eof in template"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "template": true,
+            "colgroup": true,
+            "body": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "template",
+                            "children": [
+                              {
+                                "content": true,
+                                "children": [
+                                  {
+                                    "tag": "colgroup"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><template><template><colgroup></colgroup></template></template></head><body></body></html>",
+        "noQuirksBodyHtml": "<template><template><colgroup></colgroup></template></template>"
+      }
+    },
+    {
+      "data": "<template><template><col>",
+      "errors": [
+        "no doctype",
+        "eof in template",
+        "eof in template"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "template": true,
+            "col": true,
+            "body": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "template",
+                            "children": [
+                              {
+                                "content": true,
+                                "children": [
+                                  {
+                                    "tag": "col"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><template><template><col></template></template></head><body></body></html>",
+        "noQuirksBodyHtml": "<template><template><col></template></template>"
+      }
+    },
+    {
+      "data": "<template><template><tbody><select>",
+      "errors": [
+        " * (1,11) missing DOCTYPE",
+        " * (1,36) unexpected token in table - foster parenting",
+        " * (1,36) unexpected end of file in template",
+        " * (1,36) unexpected end of file in template"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "template": true,
+            "tbody": true,
+            "select": true,
+            "body": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "template",
+                            "children": [
+                              {
+                                "content": true,
+                                "children": [
+                                  {
+                                    "tag": "tbody"
+                                  },
+                                  {
+                                    "tag": "select"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><template><template><tbody></tbody><select></select></template></template></head><body></body></html>",
+        "noQuirksBodyHtml": "<template><template><tbody></tbody><select></select></template></template>"
+      }
+    },
+    {
+      "data": "<template><template><table>Foo",
+      "errors": [
+        "no doctype",
+        "foster-parenting text F",
+        "foster-parenting text o",
+        "foster-parenting text o",
+        "eof",
+        "eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "template": true,
+            "table": true,
+            "body": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "template",
+                            "children": [
+                              {
+                                "content": true,
+                                "children": [
+                                  {
+                                    "text": "Foo"
+                                  },
+                                  {
+                                    "tag": "table"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><template><template>Foo<table></table></template></template></head><body></body></html>",
+        "noQuirksBodyHtml": "<template><template>Foo<table></table></template></template>"
+      }
+    },
+    {
+      "data": "<template><template><frame>",
+      "errors": [
+        "no doctype",
+        "bad tag",
+        "eof",
+        "eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "template": true,
+            "body": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "template",
+                            "children": [
+                              {
+                                "content": true
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><template><template></template></template></head><body></body></html>",
+        "noQuirksBodyHtml": "<template><template></template></template>"
+      }
+    },
+    {
+      "data": "<template><template><script>var i",
+      "errors": [
+        "no doctype",
+        "eof in script",
+        "eof in template",
+        "eof in template"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "template": true,
+            "script": true,
+            "body": true
+          },
+          "template": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "template",
+                            "children": [
+                              {
+                                "content": true,
+                                "children": [
+                                  {
+                                    "tag": "script",
+                                    "children": [
+                                      {
+                                        "text": "var i",
+                                        "no_escape": true
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><template><template><script>var i</script></template></template></head><body></body></html>",
+        "noQuirksBodyHtml": "<template><template><script>var i</script></template></template>"
+      }
+    },
+    {
+      "data": "<template><template><style>var i",
+      "errors": [
+        "no doctype",
+        "eof in style",
+        "eof in template",
+        "eof in template"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "template": true,
+            "style": true,
+            "body": true
+          },
+          "template": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "template",
+                            "children": [
+                              {
+                                "content": true,
+                                "children": [
+                                  {
+                                    "tag": "style",
+                                    "children": [
+                                      {
+                                        "text": "var i",
+                                        "no_escape": true
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><template><template><style>var i</style></template></template></head><body></body></html>",
+        "noQuirksBodyHtml": "<template><template><style>var i</style></template></template>"
+      }
+    },
+    {
+      "data": "<template><table></template><body><span>Foo",
+      "errors": [
+        "no doctype",
+        "missing /table",
+        "bad eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "template": true,
+            "table": true,
+            "body": true,
+            "span": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "table"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "span",
+                    "children": [
+                      {
+                        "text": "Foo"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><template><table></table></template></head><body><span>Foo</span></body></html>",
+        "noQuirksBodyHtml": "<template><table></table></template><span>Foo</span>"
+      }
+    },
+    {
+      "data": "<template><td></template><body><span>Foo",
+      "errors": [
+        "no doctype",
+        "bad eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "template": true,
+            "td": true,
+            "body": true,
+            "span": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "td"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "span",
+                    "children": [
+                      {
+                        "text": "Foo"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><template><td></td></template></head><body><span>Foo</span></body></html>",
+        "noQuirksBodyHtml": "<template><td></td></template><span>Foo</span>"
+      }
+    },
+    {
+      "data": "<template><object></template><body><span>Foo",
+      "errors": [
+        "no doctype",
+        "missing /object",
+        "bad eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "template": true,
+            "object": true,
+            "body": true,
+            "span": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "object"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "span",
+                    "children": [
+                      {
+                        "text": "Foo"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><template><object></object></template></head><body><span>Foo</span></body></html>",
+        "noQuirksBodyHtml": "<template><object></object></template><span>Foo</span>"
+      }
+    },
+    {
+      "data": "<template><svg><template>",
+      "errors": [
+        "no doctype",
+        "eof in template"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "template": true,
+            "svg svg": true,
+            "svg template": true,
+            "body": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "svg",
+                            "ns": "http://www.w3.org/2000/svg",
+                            "children": [
+                              {
+                                "tag": "template",
+                                "ns": "http://www.w3.org/2000/svg"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><template><svg><template></template></svg></template></head><body></body></html>",
+        "noQuirksBodyHtml": "<template><svg><template></template></svg></template>"
+      }
+    },
+    {
+      "data": "<template><svg><foo><template><foreignObject><div></template><div>",
+      "errors": [
+        "no doctype",
+        "ugly template closure",
+        "bad eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "template": true,
+            "svg svg": true,
+            "svg foo": true,
+            "svg template": true,
+            "svg foreignObject": true,
+            "div": true,
+            "body": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "svg",
+                            "ns": "http://www.w3.org/2000/svg",
+                            "children": [
+                              {
+                                "tag": "foo",
+                                "ns": "http://www.w3.org/2000/svg",
+                                "children": [
+                                  {
+                                    "tag": "template",
+                                    "ns": "http://www.w3.org/2000/svg",
+                                    "children": [
+                                      {
+                                        "tag": "foreignObject",
+                                        "ns": "http://www.w3.org/2000/svg",
+                                        "children": [
+                                          {
+                                            "tag": "div"
+                                          }
+                                        ]
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><template><svg><foo><template><foreignObject><div></div></foreignObject></template></foo></svg></template></head><body><div></div></body></html>",
+        "noQuirksBodyHtml": "<template><svg><foo><template><foreignObject><div></div></foreignObject></template></foo></svg></template><div></div>"
+      }
+    },
+    {
+      "data": "<dummy><template><span></dummy>",
+      "errors": [
+        "no doctype",
+        "bad end tag </dummy>",
+        "eof in template",
+        "eof in dummy"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "dummy": true,
+            "template": true,
+            "span": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "dummy",
+                    "children": [
+                      {
+                        "tag": "template",
+                        "children": [
+                          {
+                            "content": true,
+                            "children": [
+                              {
+                                "tag": "span"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><dummy><template><span></span></template></dummy></body></html>",
+        "noQuirksBodyHtml": "<dummy><template><span></span></template></dummy>"
+      }
+    },
+    {
+      "data": "<body><table><tr><td><select><template>Foo</template><caption>A</table>",
+      "errors": [
+        "no doctype",
+        "(1,62): unexpected-caption-in-select-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true,
+            "select": true,
+            "template": true,
+            "caption": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td",
+                                "children": [
+                                  {
+                                    "tag": "select",
+                                    "children": [
+                                      {
+                                        "tag": "template",
+                                        "children": [
+                                          {
+                                            "content": true,
+                                            "children": [
+                                              {
+                                                "text": "Foo"
+                                              }
+                                            ]
+                                          }
+                                        ]
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "caption",
+                        "children": [
+                          {
+                            "text": "A"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><tbody><tr><td><select><template>Foo</template></select></td></tr></tbody><caption>A</caption></table></body></html>",
+        "noQuirksBodyHtml": "<table><tbody><tr><td><select><template>Foo</template></select></td></tr></tbody><caption>A</caption></table>"
+      }
+    },
+    {
+      "data": "<body></body><template>",
+      "errors": [
+        "no doctype",
+        "(1,23): template-after-body",
+        "(1,24): eof-in-template"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "template": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><template></template></body></html>",
+        "noQuirksBodyHtml": "<template></template>"
+      }
+    },
+    {
+      "data": "<head></head><template>",
+      "errors": [
+        "no doctype",
+        "(1,23): template-after-head",
+        "(1,24): eof-in-template"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "template": true,
+            "body": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><template></template></head><body></body></html>",
+        "noQuirksBodyHtml": "<template></template>"
+      }
+    },
+    {
+      "data": "<head></head><template>Foo</template>",
+      "errors": [
+        "no doctype",
+        "(1,23): template-after-head"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "template": true,
+            "body": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "text": "Foo"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><template>Foo</template></head><body></body></html>",
+        "noQuirksBodyHtml": "<template>Foo</template>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE HTML><dummy><table><template><table><template><table><script>",
+      "errors": [
+        "eof script",
+        "eof template",
+        "eof template",
+        "eof table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "dummy": true,
+            "table": true,
+            "template": true,
+            "script": true
+          },
+          "doctype": true,
+          "template": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "dummy",
+                    "children": [
+                      {
+                        "tag": "table",
+                        "children": [
+                          {
+                            "tag": "template",
+                            "children": [
+                              {
+                                "content": true,
+                                "children": [
+                                  {
+                                    "tag": "table",
+                                    "children": [
+                                      {
+                                        "tag": "template",
+                                        "children": [
+                                          {
+                                            "content": true,
+                                            "children": [
+                                              {
+                                                "tag": "table",
+                                                "children": [
+                                                  {
+                                                    "tag": "script"
+                                                  }
+                                                ]
+                                              }
+                                            ]
+                                          }
+                                        ]
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><dummy><table><template><table><template><table><script></script></table></template></table></template></table></dummy></body></html>",
+        "noQuirksBodyHtml": "<dummy><table><template><table><template><table><script></script></table></template></table></template></table></dummy>"
+      }
+    },
+    {
+      "data": "<template><a><table><a>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "template": true,
+            "a": true,
+            "table": true,
+            "body": true
+          },
+          "template": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "template",
+                    "children": [
+                      {
+                        "content": true,
+                        "children": [
+                          {
+                            "tag": "a",
+                            "children": [
+                              {
+                                "tag": "a"
+                              },
+                              {
+                                "tag": "table"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><template><a><a></a><table></table></a></template></head><body></body></html>",
+        "noQuirksBodyHtml": "<template><a><a></a><table></table></a></template>"
+      }
+    }
+  ],
+  "tests1.dat": [
+    {
+      "data": "Test",
+      "errors": [
+        "(1,0): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "Test"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>Test</body></html>",
+        "noQuirksBodyHtml": "Test"
+      }
+    },
+    {
+      "data": "<p>One<p>Two",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "text": "One"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "text": "Two"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><p>One</p><p>Two</p></body></html>",
+        "noQuirksBodyHtml": "<p>One</p><p>Two</p>"
+      }
+    },
+    {
+      "data": "Line1<br>Line2<br>Line3<br>Line4",
+      "errors": [
+        "(1,0): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "br": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "Line1"
+                  },
+                  {
+                    "tag": "br"
+                  },
+                  {
+                    "text": "Line2"
+                  },
+                  {
+                    "tag": "br"
+                  },
+                  {
+                    "text": "Line3"
+                  },
+                  {
+                    "tag": "br"
+                  },
+                  {
+                    "text": "Line4"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>Line1<br>Line2<br>Line3<br>Line4</body></html>",
+        "noQuirksBodyHtml": "Line1<br>Line2<br>Line3<br>Line4"
+      }
+    },
+    {
+      "data": "<html>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<head>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<body>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<html><head>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<html><head></head>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<html><head></head><body>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<html><head></head><body></body>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<html><head><body></body></html>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<html><head></body></html>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<html><head><body></html>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<html><body></html>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<body></html>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<head></html>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "</head>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "</body>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-end-tag element."
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "</html>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-end-tag element."
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<b><table><td><i></table>",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,14): unexpected-cell-in-table-body",
+        "(1,25): unexpected-cell-end-tag",
+        "(1,25): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "b": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true,
+            "i": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "b",
+                    "children": [
+                      {
+                        "tag": "table",
+                        "children": [
+                          {
+                            "tag": "tbody",
+                            "children": [
+                              {
+                                "tag": "tr",
+                                "children": [
+                                  {
+                                    "tag": "td",
+                                    "children": [
+                                      {
+                                        "tag": "i"
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><b><table><tbody><tr><td><i></i></td></tr></tbody></table></b></body></html>",
+        "noQuirksBodyHtml": "<b><table><tbody><tr><td><i></i></td></tr></tbody></table></b>"
+      }
+    },
+    {
+      "data": "<b><table><td></b><i></table>X",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,14): unexpected-cell-in-table-body",
+        "(1,18): unexpected-end-tag",
+        "(1,29): unexpected-cell-end-tag",
+        "(1,30): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "b": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true,
+            "i": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "b",
+                    "children": [
+                      {
+                        "tag": "table",
+                        "children": [
+                          {
+                            "tag": "tbody",
+                            "children": [
+                              {
+                                "tag": "tr",
+                                "children": [
+                                  {
+                                    "tag": "td",
+                                    "children": [
+                                      {
+                                        "tag": "i"
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      },
+                      {
+                        "text": "X"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><b><table><tbody><tr><td><i></i></td></tr></tbody></table>X</b></body></html>",
+        "noQuirksBodyHtml": "<b><table><tbody><tr><td><i></i></td></tr></tbody></table>X</b>"
+      }
+    },
+    {
+      "data": "<h1>Hello<h2>World",
+      "errors": [
+        "(1,4): expected-doctype-but-got-start-tag",
+        "(1,13): unexpected-start-tag",
+        "(1,18): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "h1": true,
+            "h2": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "h1",
+                    "children": [
+                      {
+                        "text": "Hello"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "h2",
+                    "children": [
+                      {
+                        "text": "World"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><h1>Hello</h1><h2>World</h2></body></html>",
+        "noQuirksBodyHtml": "<h1>Hello</h1><h2>World</h2>"
+      }
+    },
+    {
+      "data": "<a><p>X<a>Y</a>Z</p></a>",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,10): unexpected-start-tag-implies-end-tag",
+        "(1,10): adoption-agency-1.3",
+        "(1,24): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "a": true,
+            "p": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "a"
+                  },
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "a",
+                        "children": [
+                          {
+                            "text": "X"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "a",
+                        "children": [
+                          {
+                            "text": "Y"
+                          }
+                        ]
+                      },
+                      {
+                        "text": "Z"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><a></a><p><a>X</a><a>Y</a>Z</p></body></html>",
+        "noQuirksBodyHtml": "<a></a><p><a>X</a><a>Y</a>Z</p>"
+      }
+    },
+    {
+      "data": "<b><button>foo</b>bar",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,18): adoption-agency-1.3",
+        "(1,21): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "b": true,
+            "button": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "b"
+                  },
+                  {
+                    "tag": "button",
+                    "children": [
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "text": "foo"
+                          }
+                        ]
+                      },
+                      {
+                        "text": "bar"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><b></b><button><b>foo</b>bar</button></body></html>",
+        "noQuirksBodyHtml": "<b></b><button><b>foo</b>bar</button>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><span><button>foo</span>bar",
+      "errors": [
+        "(1,39): unexpected-end-tag",
+        "(1,42): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "span": true,
+            "button": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "span",
+                    "children": [
+                      {
+                        "tag": "button",
+                        "children": [
+                          {
+                            "text": "foobar"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><span><button>foobar</button></span></body></html>",
+        "noQuirksBodyHtml": "<span><button>foobar</button></span>"
+      }
+    },
+    {
+      "data": "<p><b><div><marquee></p></b></div>X",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,11): unexpected-end-tag",
+        "(1,24): unexpected-end-tag",
+        "(1,28): unexpected-end-tag",
+        "(1,34): end-tag-too-early",
+        "(1,35): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "b": true,
+            "div": true,
+            "marquee": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "b"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "tag": "marquee",
+                            "children": [
+                              {
+                                "tag": "p"
+                              },
+                              {
+                                "text": "X"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><p><b></b></p><div><b><marquee><p></p>X</marquee></b></div></body></html>",
+        "noQuirksBodyHtml": "<p><b></b></p><div><b><marquee><p></p>X</marquee></b></div>"
+      }
+    },
+    {
+      "data": "<script><div></script></div><title><p></title><p><p>",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,28): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "title": true,
+            "body": true,
+            "p": true
+          },
+          "no_escape": true,
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<div>",
+                        "no_escape": true
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "title",
+                    "children": [
+                      {
+                        "text": "<p>",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p"
+                  },
+                  {
+                    "tag": "p"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><div></script><title>&lt;p&gt;</title></head><body><p></p><p></p></body></html>",
+        "noQuirksBodyHtml": "<script><div></script><title>&lt;p&gt;</title><p></p><p></p>"
+      }
+    },
+    {
+      "data": "<!--><div>--<!-->",
+      "errors": [
+        "(1,5): incorrect-comment",
+        "(1,10): expected-doctype-but-got-start-tag",
+        "(1,17): incorrect-comment",
+        "(1,17): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "comment": ""
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "text": "--"
+                      },
+                      {
+                        "comment": ""
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!----><html><head></head><body><div>--<!----></div></body></html>",
+        "noQuirksBodyHtml": "<!----><div>--<!----></div>"
+      }
+    },
+    {
+      "data": "<p><hr></p>",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,11): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "hr": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p"
+                  },
+                  {
+                    "tag": "hr"
+                  },
+                  {
+                    "tag": "p"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><p></p><hr><p></p></body></html>",
+        "noQuirksBodyHtml": "<p></p><hr><p></p>"
+      }
+    },
+    {
+      "data": "<select><b><option><select><option></b></select>X",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,11): unexpected-start-tag-in-select",
+        "(1,27): unexpected-select-in-select",
+        "(1,39): unexpected-end-tag",
+        "(1,48): unexpected-end-tag",
+        "(1,49): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true,
+            "option": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select",
+                    "children": [
+                      {
+                        "tag": "option"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "option",
+                    "children": [
+                      {
+                        "text": "X"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><select><option></option></select><option>X</option></body></html>",
+        "noQuirksBodyHtml": "<select><option></option></select><option>X</option>"
+      }
+    },
+    {
+      "data": "<a><table><td><a><table></table><a></tr><a></table><b>X</b>C<a>Y",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,14): unexpected-cell-in-table-body",
+        "(1,35): unexpected-start-tag-implies-end-tag",
+        "(1,40): unexpected-cell-end-tag",
+        "(1,43): unexpected-start-tag-implies-table-voodoo",
+        "(1,43): unexpected-start-tag-implies-end-tag",
+        "(1,43): unexpected-end-tag",
+        "(1,63): unexpected-start-tag-implies-end-tag",
+        "(1,64): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "a": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true,
+            "b": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "a",
+                    "children": [
+                      {
+                        "tag": "a"
+                      },
+                      {
+                        "tag": "table",
+                        "children": [
+                          {
+                            "tag": "tbody",
+                            "children": [
+                              {
+                                "tag": "tr",
+                                "children": [
+                                  {
+                                    "tag": "td",
+                                    "children": [
+                                      {
+                                        "tag": "a",
+                                        "children": [
+                                          {
+                                            "tag": "table"
+                                          }
+                                        ]
+                                      },
+                                      {
+                                        "tag": "a"
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "a",
+                    "children": [
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "text": "X"
+                          }
+                        ]
+                      },
+                      {
+                        "text": "C"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "a",
+                    "children": [
+                      {
+                        "text": "Y"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><a><a></a><table><tbody><tr><td><a><table></table></a><a></a></td></tr></tbody></table></a><a><b>X</b>C</a><a>Y</a></body></html>",
+        "noQuirksBodyHtml": "<a><a></a><table><tbody><tr><td><a><table></table></a><a></a></td></tr></tbody></table></a><a><b>X</b>C</a><a>Y</a>"
+      }
+    },
+    {
+      "data": "<a X>0<b>1<a Y>2",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,15): unexpected-start-tag-implies-end-tag",
+        "(1,15): adoption-agency-1.3",
+        "(1,16): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "a": true,
+            "b": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "a",
+                    "attrs": [
+                      {
+                        "name": "x",
+                        "value": ""
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "0"
+                      },
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "text": "1"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "b",
+                    "children": [
+                      {
+                        "tag": "a",
+                        "attrs": [
+                          {
+                            "name": "y",
+                            "value": ""
+                          }
+                        ],
+                        "children": [
+                          {
+                            "text": "2"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><a x=\"\">0<b>1</b></a><b><a y=\"\">2</a></b></body></html>",
+        "noQuirksBodyHtml": "<a x=\"\">0<b>1</b></a><b><a y=\"\">2</a></b>"
+      }
+    },
+    {
+      "data": "<!-----><font><div>hello<table>excite!<b>me!<th><i>please!</tr><!--X-->",
+      "errors": [
+        "(1,7): unexpected-dash-after-double-dash-in-comment",
+        "(1,14): expected-doctype-but-got-start-tag",
+        "(1,41): unexpected-start-tag-implies-table-voodoo",
+        "(1,48): foster-parenting-character-in-table",
+        "(1,48): foster-parenting-character-in-table",
+        "(1,48): foster-parenting-character-in-table",
+        "(1,48): foster-parenting-character-in-table",
+        "(1,48): foster-parenting-character-in-table",
+        "(1,48): foster-parenting-character-in-table",
+        "(1,48): foster-parenting-character-in-table",
+        "(1,48): foster-parenting-character-in-table",
+        "(1,48): foster-parenting-character-in-table",
+        "(1,48): foster-parenting-character-in-table",
+        "(1,48): unexpected-cell-in-table-body",
+        "(1,63): unexpected-cell-end-tag",
+        "(1,71): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "font": true,
+            "div": true,
+            "b": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "th": true,
+            "i": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "comment": "-"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "font",
+                    "children": [
+                      {
+                        "tag": "div",
+                        "children": [
+                          {
+                            "text": "helloexcite!"
+                          },
+                          {
+                            "tag": "b",
+                            "children": [
+                              {
+                                "text": "me!"
+                              }
+                            ]
+                          },
+                          {
+                            "tag": "table",
+                            "children": [
+                              {
+                                "tag": "tbody",
+                                "children": [
+                                  {
+                                    "tag": "tr",
+                                    "children": [
+                                      {
+                                        "tag": "th",
+                                        "children": [
+                                          {
+                                            "tag": "i",
+                                            "children": [
+                                              {
+                                                "text": "please!"
+                                              }
+                                            ]
+                                          }
+                                        ]
+                                      }
+                                    ]
+                                  },
+                                  {
+                                    "comment": "X"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!-----><html><head></head><body><font><div>helloexcite!<b>me!</b><table><tbody><tr><th><i>please!</i></th></tr><!--X--></tbody></table></div></font></body></html>",
+        "noQuirksBodyHtml": "<!-----><font><div>helloexcite!<b>me!</b><table><tbody><tr><th><i>please!</i></th></tr><!--X--></tbody></table></div></font>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><li>hello<li>world<ul>how<li>do</ul>you</body><!--do-->",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "li": true,
+            "ul": true
+          },
+          "doctype": true,
+          "comment": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "li",
+                    "children": [
+                      {
+                        "text": "hello"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "li",
+                    "children": [
+                      {
+                        "text": "world"
+                      },
+                      {
+                        "tag": "ul",
+                        "children": [
+                          {
+                            "text": "how"
+                          },
+                          {
+                            "tag": "li",
+                            "children": [
+                              {
+                                "text": "do"
+                              }
+                            ]
+                          }
+                        ]
+                      },
+                      {
+                        "text": "you"
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "comment": "do"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><li>hello</li><li>world<ul>how<li>do</li></ul>you</li></body><!--do--></html>",
+        "noQuirksBodyHtml": "<li>hello</li><li>world<ul>how<li>do</li></ul>you<!--do--></li>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html>A<option>B<optgroup>C<select>D</option>E",
+      "errors": [
+        "(1,54): unexpected-end-tag-in-select",
+        "(1,55): eof-in-select"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "option": true,
+            "optgroup": true,
+            "select": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "A"
+                  },
+                  {
+                    "tag": "option",
+                    "children": [
+                      {
+                        "text": "B"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "optgroup",
+                    "children": [
+                      {
+                        "text": "C"
+                      },
+                      {
+                        "tag": "select",
+                        "children": [
+                          {
+                            "text": "DE"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body>A<option>B</option><optgroup>C<select>DE</select></optgroup></body></html>",
+        "noQuirksBodyHtml": "A<option>B</option><optgroup>C<select>DE</select></optgroup>"
+      }
+    },
+    {
+      "data": "<",
+      "errors": [
+        "(1,1): expected-tag-name",
+        "(1,1): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "<",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>&lt;</body></html>",
+        "noQuirksBodyHtml": "&lt;"
+      }
+    },
+    {
+      "data": "<#",
+      "errors": [
+        "(1,1): expected-tag-name",
+        "(1,1): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "<#",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>&lt;#</body></html>",
+        "noQuirksBodyHtml": "&lt;#"
+      }
+    },
+    {
+      "data": "</",
+      "errors": [
+        "(1,2): expected-closing-tag-but-got-eof",
+        "(1,2): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "</",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>&lt;/</body></html>",
+        "noQuirksBodyHtml": "&lt;/"
+      }
+    },
+    {
+      "data": "</#",
+      "errors": [
+        "(1,2): expected-closing-tag-but-got-char",
+        "(1,3): expected-doctype-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "comment": "#"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!--#--><html><head></head><body></body></html>",
+        "noQuirksBodyHtml": "<!--#-->"
+      }
+    },
+    {
+      "data": "<?",
+      "errors": [
+        "(1,1): expected-tag-name-but-got-question-mark",
+        "(1,2): expected-doctype-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "comment": "?"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!--?--><html><head></head><body></body></html>",
+        "noQuirksBodyHtml": "<!--?-->"
+      }
+    },
+    {
+      "data": "<?#",
+      "errors": [
+        "(1,1): expected-tag-name-but-got-question-mark",
+        "(1,3): expected-doctype-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "comment": "?#"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!--?#--><html><head></head><body></body></html>",
+        "noQuirksBodyHtml": "<!--?#-->"
+      }
+    },
+    {
+      "data": "<!",
+      "errors": [
+        "(1,2): expected-dashes-or-doctype",
+        "(1,2): expected-doctype-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "comment": ""
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!----><html><head></head><body></body></html>",
+        "noQuirksBodyHtml": "<!---->"
+      }
+    },
+    {
+      "data": "<!#",
+      "errors": [
+        "(1,2): expected-dashes-or-doctype",
+        "(1,3): expected-doctype-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "comment": "#"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!--#--><html><head></head><body></body></html>",
+        "noQuirksBodyHtml": "<!--#-->"
+      }
+    },
+    {
+      "data": "<?COMMENT?>",
+      "errors": [
+        "(1,1): expected-tag-name-but-got-question-mark",
+        "(1,11): expected-doctype-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "comment": "?COMMENT?"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!--?COMMENT?--><html><head></head><body></body></html>",
+        "noQuirksBodyHtml": "<!--?COMMENT?-->"
+      }
+    },
+    {
+      "data": "<!COMMENT>",
+      "errors": [
+        "(1,2): expected-dashes-or-doctype",
+        "(1,10): expected-doctype-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "comment": "COMMENT"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!--COMMENT--><html><head></head><body></body></html>",
+        "noQuirksBodyHtml": "<!--COMMENT-->"
+      }
+    },
+    {
+      "data": "</ COMMENT >",
+      "errors": [
+        "(1,2): expected-closing-tag-but-got-char",
+        "(1,12): expected-doctype-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "comment": " COMMENT "
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!-- COMMENT --><html><head></head><body></body></html>",
+        "noQuirksBodyHtml": "<!-- COMMENT -->"
+      }
+    },
+    {
+      "data": "<?COM--MENT?>",
+      "errors": [
+        "(1,1): expected-tag-name-but-got-question-mark",
+        "(1,13): expected-doctype-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "comment": "?COM--MENT?"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!--?COM--MENT?--><html><head></head><body></body></html>",
+        "noQuirksBodyHtml": "<!--?COM--MENT?-->"
+      }
+    },
+    {
+      "data": "<!COM--MENT>",
+      "errors": [
+        "(1,2): expected-dashes-or-doctype",
+        "(1,12): expected-doctype-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "comment": "COM--MENT"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!--COM--MENT--><html><head></head><body></body></html>",
+        "noQuirksBodyHtml": "<!--COM--MENT-->"
+      }
+    },
+    {
+      "data": "</ COM--MENT >",
+      "errors": [
+        "(1,2): expected-closing-tag-but-got-char",
+        "(1,14): expected-doctype-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "comment": " COM--MENT "
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!-- COM--MENT --><html><head></head><body></body></html>",
+        "noQuirksBodyHtml": "<!-- COM--MENT -->"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><style> EOF",
+      "errors": [
+        "(1,26): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "style": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "style",
+                    "children": [
+                      {
+                        "text": " EOF",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><style> EOF</style></head><body></body></html>",
+        "noQuirksBodyHtml": "<style> EOF</style>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><script> <!-- </script> --> </script> EOF",
+      "errors": [
+        "(1,52): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true,
+          "escaped": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": " <!-- ",
+                        "no_escape": true
+                      }
+                    ]
+                  },
+                  {
+                    "text": " "
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "-->  EOF",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script> <!-- </script> </head><body>--&gt;  EOF</body></html>",
+        "noQuirksBodyHtml": "<script> <!-- </script> --&gt;  EOF"
+      }
+    },
+    {
+      "data": "<b><p></b>TEST",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,10): adoption-agency-1.3"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "b": true,
+            "p": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "b"
+                  },
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "b"
+                      },
+                      {
+                        "text": "TEST"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><b></b><p><b></b>TEST</p></body></html>",
+        "noQuirksBodyHtml": "<b></b><p><b></b>TEST</p>"
+      }
+    },
+    {
+      "data": "<p id=a><b><p id=b></b>TEST",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,19): unexpected-end-tag",
+        "(1,23): adoption-agency-1.2"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "b": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "attrs": [
+                      {
+                        "name": "id",
+                        "value": "a"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "tag": "b"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "p",
+                    "attrs": [
+                      {
+                        "name": "id",
+                        "value": "b"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "TEST"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><p id=\"a\"><b></b></p><p id=\"b\">TEST</p></body></html>",
+        "noQuirksBodyHtml": "<p id=\"a\"><b></b></p><p id=\"b\">TEST</p>"
+      }
+    },
+    {
+      "data": "<b id=a><p><b id=b></p></b>TEST",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,23): unexpected-end-tag",
+        "(1,27): adoption-agency-1.2",
+        "(1,31): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "b": true,
+            "p": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "b",
+                    "attrs": [
+                      {
+                        "name": "id",
+                        "value": "a"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "tag": "p",
+                        "children": [
+                          {
+                            "tag": "b",
+                            "attrs": [
+                              {
+                                "name": "id",
+                                "value": "b"
+                              }
+                            ]
+                          }
+                        ]
+                      },
+                      {
+                        "text": "TEST"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><b id=\"a\"><p><b id=\"b\"></b></p>TEST</b></body></html>",
+        "noQuirksBodyHtml": "<b id=\"a\"><p><b id=\"b\"></b></p>TEST</b>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><title>U-test</title><body><div><p>Test<u></p></div></body>",
+      "errors": [
+        "(1,61): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "title": true,
+            "body": true,
+            "div": true,
+            "p": true,
+            "u": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "title",
+                    "children": [
+                      {
+                        "text": "U-test"
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "tag": "p",
+                        "children": [
+                          {
+                            "text": "Test"
+                          },
+                          {
+                            "tag": "u"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><title>U-test</title></head><body><div><p>Test<u></u></p></div></body></html>",
+        "noQuirksBodyHtml": "<title>U-test</title><div><p>Test<u></u></p></div>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><font><table></font></table></font>",
+      "errors": [
+        "(1,35): unexpected-end-tag-implies-table-voodoo",
+        "(1,35): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "font": true,
+            "table": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "font",
+                    "children": [
+                      {
+                        "tag": "table"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><font><table></table></font></body></html>",
+        "noQuirksBodyHtml": "<font><table></table></font>"
+      }
+    },
+    {
+      "data": "<font><p>hello<b>cruel</font>world",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,29): adoption-agency-1.3",
+        "(1,29): adoption-agency-1.3",
+        "(1,34): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "font": true,
+            "p": true,
+            "b": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "font"
+                  },
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "font",
+                        "children": [
+                          {
+                            "text": "hello"
+                          },
+                          {
+                            "tag": "b",
+                            "children": [
+                              {
+                                "text": "cruel"
+                              }
+                            ]
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "text": "world"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><font></font><p><font>hello<b>cruel</b></font><b>world</b></p></body></html>",
+        "noQuirksBodyHtml": "<font></font><p><font>hello<b>cruel</b></font><b>world</b></p>"
+      }
+    },
+    {
+      "data": "<b>Test</i>Test",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,11): unexpected-end-tag",
+        "(1,15): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "b": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "b",
+                    "children": [
+                      {
+                        "text": "TestTest"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><b>TestTest</b></body></html>",
+        "noQuirksBodyHtml": "<b>TestTest</b>"
+      }
+    },
+    {
+      "data": "<b>A<cite>B<div>C",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,17): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "b": true,
+            "cite": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "b",
+                    "children": [
+                      {
+                        "text": "A"
+                      },
+                      {
+                        "tag": "cite",
+                        "children": [
+                          {
+                            "text": "B"
+                          },
+                          {
+                            "tag": "div",
+                            "children": [
+                              {
+                                "text": "C"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><b>A<cite>B<div>C</div></cite></b></body></html>",
+        "noQuirksBodyHtml": "<b>A<cite>B<div>C</div></cite></b>"
+      }
+    },
+    {
+      "data": "<b>A<cite>B<div>C</cite>D",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,24): unexpected-end-tag",
+        "(1,25): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "b": true,
+            "cite": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "b",
+                    "children": [
+                      {
+                        "text": "A"
+                      },
+                      {
+                        "tag": "cite",
+                        "children": [
+                          {
+                            "text": "B"
+                          },
+                          {
+                            "tag": "div",
+                            "children": [
+                              {
+                                "text": "CD"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><b>A<cite>B<div>CD</div></cite></b></body></html>",
+        "noQuirksBodyHtml": "<b>A<cite>B<div>CD</div></cite></b>"
+      }
+    },
+    {
+      "data": "<b>A<cite>B<div>C</b>D",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,21): adoption-agency-1.3",
+        "(1,22): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "b": true,
+            "cite": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "b",
+                    "children": [
+                      {
+                        "text": "A"
+                      },
+                      {
+                        "tag": "cite",
+                        "children": [
+                          {
+                            "text": "B"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "text": "C"
+                          }
+                        ]
+                      },
+                      {
+                        "text": "D"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><b>A<cite>B</cite></b><div><b>C</b>D</div></body></html>",
+        "noQuirksBodyHtml": "<b>A<cite>B</cite></b><div><b>C</b>D</div>"
+      }
+    },
+    {
+      "data": "",
+      "errors": [
+        "(1,0): expected-doctype-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<DIV>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,5): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div></div></body></html>",
+        "noQuirksBodyHtml": "<div></div>"
+      }
+    },
+    {
+      "data": "<DIV> abc",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,9): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "text": " abc"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div> abc</div></body></html>",
+        "noQuirksBodyHtml": "<div> abc</div>"
+      }
+    },
+    {
+      "data": "<DIV> abc <B>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,13): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true,
+            "b": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "text": " abc "
+                      },
+                      {
+                        "tag": "b"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div> abc <b></b></div></body></html>",
+        "noQuirksBodyHtml": "<div> abc <b></b></div>"
+      }
+    },
+    {
+      "data": "<DIV> abc <B> def",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,17): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true,
+            "b": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "text": " abc "
+                      },
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "text": " def"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div> abc <b> def</b></div></body></html>",
+        "noQuirksBodyHtml": "<div> abc <b> def</b></div>"
+      }
+    },
+    {
+      "data": "<DIV> abc <B> def <I>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,21): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true,
+            "b": true,
+            "i": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "text": " abc "
+                      },
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "text": " def "
+                          },
+                          {
+                            "tag": "i"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div> abc <b> def <i></i></b></div></body></html>",
+        "noQuirksBodyHtml": "<div> abc <b> def <i></i></b></div>"
+      }
+    },
+    {
+      "data": "<DIV> abc <B> def <I> ghi",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,25): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true,
+            "b": true,
+            "i": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "text": " abc "
+                      },
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "text": " def "
+                          },
+                          {
+                            "tag": "i",
+                            "children": [
+                              {
+                                "text": " ghi"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div> abc <b> def <i> ghi</i></b></div></body></html>",
+        "noQuirksBodyHtml": "<div> abc <b> def <i> ghi</i></b></div>"
+      }
+    },
+    {
+      "data": "<DIV> abc <B> def <I> ghi <P>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,29): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true,
+            "b": true,
+            "i": true,
+            "p": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "text": " abc "
+                      },
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "text": " def "
+                          },
+                          {
+                            "tag": "i",
+                            "children": [
+                              {
+                                "text": " ghi "
+                              },
+                              {
+                                "tag": "p"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div> abc <b> def <i> ghi <p></p></i></b></div></body></html>",
+        "noQuirksBodyHtml": "<div> abc <b> def <i> ghi <p></p></i></b></div>"
+      }
+    },
+    {
+      "data": "<DIV> abc <B> def <I> ghi <P> jkl",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,33): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true,
+            "b": true,
+            "i": true,
+            "p": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "text": " abc "
+                      },
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "text": " def "
+                          },
+                          {
+                            "tag": "i",
+                            "children": [
+                              {
+                                "text": " ghi "
+                              },
+                              {
+                                "tag": "p",
+                                "children": [
+                                  {
+                                    "text": " jkl"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div> abc <b> def <i> ghi <p> jkl</p></i></b></div></body></html>",
+        "noQuirksBodyHtml": "<div> abc <b> def <i> ghi <p> jkl</p></i></b></div>"
+      }
+    },
+    {
+      "data": "<DIV> abc <B> def <I> ghi <P> jkl </B>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,38): adoption-agency-1.3",
+        "(1,38): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true,
+            "b": true,
+            "i": true,
+            "p": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "text": " abc "
+                      },
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "text": " def "
+                          },
+                          {
+                            "tag": "i",
+                            "children": [
+                              {
+                                "text": " ghi "
+                              }
+                            ]
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "i",
+                        "children": [
+                          {
+                            "tag": "p",
+                            "children": [
+                              {
+                                "tag": "b",
+                                "children": [
+                                  {
+                                    "text": " jkl "
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div> abc <b> def <i> ghi </i></b><i><p><b> jkl </b></p></i></div></body></html>",
+        "noQuirksBodyHtml": "<div> abc <b> def <i> ghi </i></b><i><p><b> jkl </b></p></i></div>"
+      }
+    },
+    {
+      "data": "<DIV> abc <B> def <I> ghi <P> jkl </B> mno",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,38): adoption-agency-1.3",
+        "(1,42): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true,
+            "b": true,
+            "i": true,
+            "p": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "text": " abc "
+                      },
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "text": " def "
+                          },
+                          {
+                            "tag": "i",
+                            "children": [
+                              {
+                                "text": " ghi "
+                              }
+                            ]
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "i",
+                        "children": [
+                          {
+                            "tag": "p",
+                            "children": [
+                              {
+                                "tag": "b",
+                                "children": [
+                                  {
+                                    "text": " jkl "
+                                  }
+                                ]
+                              },
+                              {
+                                "text": " mno"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div> abc <b> def <i> ghi </i></b><i><p><b> jkl </b> mno</p></i></div></body></html>",
+        "noQuirksBodyHtml": "<div> abc <b> def <i> ghi </i></b><i><p><b> jkl </b> mno</p></i></div>"
+      }
+    },
+    {
+      "data": "<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,38): adoption-agency-1.3",
+        "(1,47): adoption-agency-1.3",
+        "(1,47): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true,
+            "b": true,
+            "i": true,
+            "p": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "text": " abc "
+                      },
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "text": " def "
+                          },
+                          {
+                            "tag": "i",
+                            "children": [
+                              {
+                                "text": " ghi "
+                              }
+                            ]
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "i"
+                      },
+                      {
+                        "tag": "p",
+                        "children": [
+                          {
+                            "tag": "i",
+                            "children": [
+                              {
+                                "tag": "b",
+                                "children": [
+                                  {
+                                    "text": " jkl "
+                                  }
+                                ]
+                              },
+                              {
+                                "text": " mno "
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div> abc <b> def <i> ghi </i></b><i></i><p><i><b> jkl </b> mno </i></p></div></body></html>",
+        "noQuirksBodyHtml": "<div> abc <b> def <i> ghi </i></b><i></i><p><i><b> jkl </b> mno </i></p></div>"
+      }
+    },
+    {
+      "data": "<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> pqr",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,38): adoption-agency-1.3",
+        "(1,47): adoption-agency-1.3",
+        "(1,51): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true,
+            "b": true,
+            "i": true,
+            "p": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "text": " abc "
+                      },
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "text": " def "
+                          },
+                          {
+                            "tag": "i",
+                            "children": [
+                              {
+                                "text": " ghi "
+                              }
+                            ]
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "i"
+                      },
+                      {
+                        "tag": "p",
+                        "children": [
+                          {
+                            "tag": "i",
+                            "children": [
+                              {
+                                "tag": "b",
+                                "children": [
+                                  {
+                                    "text": " jkl "
+                                  }
+                                ]
+                              },
+                              {
+                                "text": " mno "
+                              }
+                            ]
+                          },
+                          {
+                            "text": " pqr"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div> abc <b> def <i> ghi </i></b><i></i><p><i><b> jkl </b> mno </i> pqr</p></div></body></html>",
+        "noQuirksBodyHtml": "<div> abc <b> def <i> ghi </i></b><i></i><p><i><b> jkl </b> mno </i> pqr</p></div>"
+      }
+    },
+    {
+      "data": "<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> pqr </P>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,38): adoption-agency-1.3",
+        "(1,47): adoption-agency-1.3",
+        "(1,56): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true,
+            "b": true,
+            "i": true,
+            "p": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "text": " abc "
+                      },
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "text": " def "
+                          },
+                          {
+                            "tag": "i",
+                            "children": [
+                              {
+                                "text": " ghi "
+                              }
+                            ]
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "i"
+                      },
+                      {
+                        "tag": "p",
+                        "children": [
+                          {
+                            "tag": "i",
+                            "children": [
+                              {
+                                "tag": "b",
+                                "children": [
+                                  {
+                                    "text": " jkl "
+                                  }
+                                ]
+                              },
+                              {
+                                "text": " mno "
+                              }
+                            ]
+                          },
+                          {
+                            "text": " pqr "
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div> abc <b> def <i> ghi </i></b><i></i><p><i><b> jkl </b> mno </i> pqr </p></div></body></html>",
+        "noQuirksBodyHtml": "<div> abc <b> def <i> ghi </i></b><i></i><p><i><b> jkl </b> mno </i> pqr </p></div>"
+      }
+    },
+    {
+      "data": "<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> pqr </P> stu",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,38): adoption-agency-1.3",
+        "(1,47): adoption-agency-1.3",
+        "(1,60): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true,
+            "b": true,
+            "i": true,
+            "p": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "text": " abc "
+                      },
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "text": " def "
+                          },
+                          {
+                            "tag": "i",
+                            "children": [
+                              {
+                                "text": " ghi "
+                              }
+                            ]
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "i"
+                      },
+                      {
+                        "tag": "p",
+                        "children": [
+                          {
+                            "tag": "i",
+                            "children": [
+                              {
+                                "tag": "b",
+                                "children": [
+                                  {
+                                    "text": " jkl "
+                                  }
+                                ]
+                              },
+                              {
+                                "text": " mno "
+                              }
+                            ]
+                          },
+                          {
+                            "text": " pqr "
+                          }
+                        ]
+                      },
+                      {
+                        "text": " stu"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div> abc <b> def <i> ghi </i></b><i></i><p><i><b> jkl </b> mno </i> pqr </p> stu</div></body></html>",
+        "noQuirksBodyHtml": "<div> abc <b> def <i> ghi </i></b><i></i><p><i><b> jkl </b> mno </i> pqr </p> stu</div>"
+      }
+    },
+    {
+      "data": "<test attribute---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->",
+      "errors": [
+        "(1,1040): expected-doctype-but-got-start-tag",
+        "(1,1040): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "test": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "test",
+                    "attrs": [
+                      {
+                        "name": "attribute----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------",
+                        "value": ""
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><test attribute----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------=\"\"></test></body></html>",
+        "noQuirksBodyHtml": "<test attribute----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------=\"\"></test>"
+      }
+    },
+    {
+      "data": "<a href=\"blah\">aba<table><a href=\"foo\">br<tr><td></td></tr>x</table>aoe",
+      "errors": [
+        "(1,15): expected-doctype-but-got-start-tag",
+        "(1,39): unexpected-start-tag-implies-table-voodoo",
+        "(1,39): unexpected-start-tag-implies-end-tag",
+        "(1,39): unexpected-end-tag",
+        "(1,45): foster-parenting-character-in-table",
+        "(1,45): foster-parenting-character-in-table",
+        "(1,68): foster-parenting-character-in-table",
+        "(1,71): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "a": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "a",
+                    "attrs": [
+                      {
+                        "name": "href",
+                        "value": "blah"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "aba"
+                      },
+                      {
+                        "tag": "a",
+                        "attrs": [
+                          {
+                            "name": "href",
+                            "value": "foo"
+                          }
+                        ],
+                        "children": [
+                          {
+                            "text": "br"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "a",
+                        "attrs": [
+                          {
+                            "name": "href",
+                            "value": "foo"
+                          }
+                        ],
+                        "children": [
+                          {
+                            "text": "x"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "table",
+                        "children": [
+                          {
+                            "tag": "tbody",
+                            "children": [
+                              {
+                                "tag": "tr",
+                                "children": [
+                                  {
+                                    "tag": "td"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "a",
+                    "attrs": [
+                      {
+                        "name": "href",
+                        "value": "foo"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "aoe"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><a href=\"blah\">aba<a href=\"foo\">br</a><a href=\"foo\">x</a><table><tbody><tr><td></td></tr></tbody></table></a><a href=\"foo\">aoe</a></body></html>",
+        "noQuirksBodyHtml": "<a href=\"blah\">aba<a href=\"foo\">br</a><a href=\"foo\">x</a><table><tbody><tr><td></td></tr></tbody></table></a><a href=\"foo\">aoe</a>"
+      }
+    },
+    {
+      "data": "<a href=\"blah\">aba<table><tr><td><a href=\"foo\">br</td></tr>x</table>aoe",
+      "errors": [
+        "(1,15): expected-doctype-but-got-start-tag",
+        "(1,54): unexpected-cell-end-tag",
+        "(1,68): unexpected text in table",
+        "(1,71): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "a": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "a",
+                    "attrs": [
+                      {
+                        "name": "href",
+                        "value": "blah"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "abax"
+                      },
+                      {
+                        "tag": "table",
+                        "children": [
+                          {
+                            "tag": "tbody",
+                            "children": [
+                              {
+                                "tag": "tr",
+                                "children": [
+                                  {
+                                    "tag": "td",
+                                    "children": [
+                                      {
+                                        "tag": "a",
+                                        "attrs": [
+                                          {
+                                            "name": "href",
+                                            "value": "foo"
+                                          }
+                                        ],
+                                        "children": [
+                                          {
+                                            "text": "br"
+                                          }
+                                        ]
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      },
+                      {
+                        "text": "aoe"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><a href=\"blah\">abax<table><tbody><tr><td><a href=\"foo\">br</a></td></tr></tbody></table>aoe</a></body></html>",
+        "noQuirksBodyHtml": "<a href=\"blah\">abax<table><tbody><tr><td><a href=\"foo\">br</a></td></tr></tbody></table>aoe</a>"
+      }
+    },
+    {
+      "data": "<table><a href=\"blah\">aba<tr><td><a href=\"foo\">br</td></tr>x</table>aoe",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,22): unexpected-start-tag-implies-table-voodoo",
+        "(1,29): foster-parenting-character-in-table",
+        "(1,29): foster-parenting-character-in-table",
+        "(1,29): foster-parenting-character-in-table",
+        "(1,54): unexpected-cell-end-tag",
+        "(1,68): foster-parenting-character-in-table",
+        "(1,71): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "a": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "a",
+                    "attrs": [
+                      {
+                        "name": "href",
+                        "value": "blah"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "aba"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "a",
+                    "attrs": [
+                      {
+                        "name": "href",
+                        "value": "blah"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "x"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td",
+                                "children": [
+                                  {
+                                    "tag": "a",
+                                    "attrs": [
+                                      {
+                                        "name": "href",
+                                        "value": "foo"
+                                      }
+                                    ],
+                                    "children": [
+                                      {
+                                        "text": "br"
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "a",
+                    "attrs": [
+                      {
+                        "name": "href",
+                        "value": "blah"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "aoe"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><a href=\"blah\">aba</a><a href=\"blah\">x</a><table><tbody><tr><td><a href=\"foo\">br</a></td></tr></tbody></table><a href=\"blah\">aoe</a></body></html>",
+        "noQuirksBodyHtml": "<a href=\"blah\">aba</a><a href=\"blah\">x</a><table><tbody><tr><td><a href=\"foo\">br</a></td></tr></tbody></table><a href=\"blah\">aoe</a>"
+      }
+    },
+    {
+      "data": "<a href=a>aa<marquee>aa<a href=b>bb</marquee>aa",
+      "errors": [
+        "(1,10): expected-doctype-but-got-start-tag",
+        "(1,45): end-tag-too-early",
+        "(1,47): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "a": true,
+            "marquee": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "a",
+                    "attrs": [
+                      {
+                        "name": "href",
+                        "value": "a"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "aa"
+                      },
+                      {
+                        "tag": "marquee",
+                        "children": [
+                          {
+                            "text": "aa"
+                          },
+                          {
+                            "tag": "a",
+                            "attrs": [
+                              {
+                                "name": "href",
+                                "value": "b"
+                              }
+                            ],
+                            "children": [
+                              {
+                                "text": "bb"
+                              }
+                            ]
+                          }
+                        ]
+                      },
+                      {
+                        "text": "aa"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><a href=\"a\">aa<marquee>aa<a href=\"b\">bb</a></marquee>aa</a></body></html>",
+        "noQuirksBodyHtml": "<a href=\"a\">aa<marquee>aa<a href=\"b\">bb</a></marquee>aa</a>"
+      }
+    },
+    {
+      "data": "<wbr><strike><code></strike><code><strike></code>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,28): adoption-agency-1.3",
+        "(1,49): adoption-agency-1.3",
+        "(1,49): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "wbr": true,
+            "strike": true,
+            "code": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "wbr"
+                  },
+                  {
+                    "tag": "strike",
+                    "children": [
+                      {
+                        "tag": "code"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "code",
+                    "children": [
+                      {
+                        "tag": "code",
+                        "children": [
+                          {
+                            "tag": "strike"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><wbr><strike><code></code></strike><code><code><strike></strike></code></code></body></html>",
+        "noQuirksBodyHtml": "<wbr><strike><code></code></strike><code><code><strike></strike></code></code>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><spacer>foo",
+      "errors": [
+        "(1,26): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "spacer": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "spacer",
+                    "children": [
+                      {
+                        "text": "foo"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><spacer>foo</spacer></body></html>",
+        "noQuirksBodyHtml": "<spacer>foo</spacer>"
+      }
+    },
+    {
+      "data": "<title><meta></title><link><title><meta></title>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "title": true,
+            "link": true,
+            "body": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "title",
+                    "children": [
+                      {
+                        "text": "<meta>",
+                        "escaped": true
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "link"
+                  },
+                  {
+                    "tag": "title",
+                    "children": [
+                      {
+                        "text": "<meta>",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><title>&lt;meta&gt;</title><link><title>&lt;meta&gt;</title></head><body></body></html>",
+        "noQuirksBodyHtml": "<title>&lt;meta&gt;</title><link><title>&lt;meta&gt;</title>"
+      }
+    },
+    {
+      "data": "<style><!--</style><meta><script>--><link></script>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "style": true,
+            "meta": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "style",
+                    "children": [
+                      {
+                        "text": "<!--",
+                        "no_escape": true
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "meta"
+                  },
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "--><link>",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><style><!--</style><meta><script>--><link></script></head><body></body></html>",
+        "noQuirksBodyHtml": "<style><!--</style><meta><script>--><link></script>"
+      }
+    },
+    {
+      "data": "<head><meta></head><link>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,25): unexpected-start-tag-out-of-my-head"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "meta": true,
+            "link": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "meta"
+                  },
+                  {
+                    "tag": "link"
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><meta><link></head><body></body></html>",
+        "noQuirksBodyHtml": "<meta><link>"
+      }
+    },
+    {
+      "data": "<table><tr><tr><td><td><span><th><span>X</table>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,33): unexpected-cell-end-tag",
+        "(1,48): unexpected-cell-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true,
+            "span": true,
+            "th": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr"
+                          },
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td"
+                              },
+                              {
+                                "tag": "td",
+                                "children": [
+                                  {
+                                    "tag": "span"
+                                  }
+                                ]
+                              },
+                              {
+                                "tag": "th",
+                                "children": [
+                                  {
+                                    "tag": "span",
+                                    "children": [
+                                      {
+                                        "text": "X"
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><tbody><tr></tr><tr><td></td><td><span></span></td><th><span>X</span></th></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<table><tbody><tr></tr><tr><td></td><td><span></span></td><th><span>X</span></th></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<body><body><base><link><meta><title><p></title><body><p></body>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,12): unexpected-start-tag",
+        "(1,54): unexpected-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "base": true,
+            "link": true,
+            "meta": true,
+            "title": true,
+            "p": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "base"
+                  },
+                  {
+                    "tag": "link"
+                  },
+                  {
+                    "tag": "meta"
+                  },
+                  {
+                    "tag": "title",
+                    "children": [
+                      {
+                        "text": "<p>",
+                        "escaped": true
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "p"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><base><link><meta><title>&lt;p&gt;</title><p></p></body></html>",
+        "noQuirksBodyHtml": "<base><link><meta><title>&lt;p&gt;</title><p></p>"
+      }
+    },
+    {
+      "data": "<textarea><p></textarea>",
+      "errors": [
+        "(1,10): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "textarea": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "textarea",
+                    "children": [
+                      {
+                        "text": "<p>",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><textarea>&lt;p&gt;</textarea></body></html>",
+        "noQuirksBodyHtml": "<textarea>&lt;p&gt;</textarea>"
+      }
+    },
+    {
+      "data": "<p><image></p>",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,10): unexpected-start-tag-treated-as"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "img": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "img"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><p><img></p></body></html>",
+        "noQuirksBodyHtml": "<p><img></p>"
+      }
+    },
+    {
+      "data": "<a><table><a></table><p><a><div><a>",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,13): unexpected-start-tag-implies-table-voodoo",
+        "(1,13): unexpected-start-tag-implies-end-tag",
+        "(1,13): adoption-agency-1.3",
+        "(1,27): unexpected-start-tag-implies-end-tag",
+        "(1,27): adoption-agency-1.2",
+        "(1,32): unexpected-end-tag",
+        "(1,35): unexpected-start-tag-implies-end-tag",
+        "(1,35): adoption-agency-1.2",
+        "(1,35): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "a": true,
+            "table": true,
+            "p": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "a",
+                    "children": [
+                      {
+                        "tag": "a"
+                      },
+                      {
+                        "tag": "table"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "a"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "tag": "a"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><a><a></a><table></table></a><p><a></a></p><div><a></a></div></body></html>",
+        "noQuirksBodyHtml": "<a><a></a><table></table></a><p><a></a></p><div><a></a></div>"
+      }
+    },
+    {
+      "data": "<head></p><meta><p>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,10): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "meta": true,
+            "body": true,
+            "p": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "meta"
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><meta></head><body><p></p></body></html>",
+        "noQuirksBodyHtml": "<p></p><meta><p></p>"
+      }
+    },
+    {
+      "data": "<head></html><meta><p>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,19): expected-eof-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "meta": true,
+            "p": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "meta"
+                  },
+                  {
+                    "tag": "p"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><meta><p></p></body></html>",
+        "noQuirksBodyHtml": "<meta><p></p>"
+      }
+    },
+    {
+      "data": "<b><table><td><i></table>",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,14): unexpected-cell-in-table-body",
+        "(1,25): unexpected-cell-end-tag",
+        "(1,25): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "b": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true,
+            "i": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "b",
+                    "children": [
+                      {
+                        "tag": "table",
+                        "children": [
+                          {
+                            "tag": "tbody",
+                            "children": [
+                              {
+                                "tag": "tr",
+                                "children": [
+                                  {
+                                    "tag": "td",
+                                    "children": [
+                                      {
+                                        "tag": "i"
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><b><table><tbody><tr><td><i></i></td></tr></tbody></table></b></body></html>",
+        "noQuirksBodyHtml": "<b><table><tbody><tr><td><i></i></td></tr></tbody></table></b>"
+      }
+    },
+    {
+      "data": "<b><table><td></b><i></table>",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,14): unexpected-cell-in-table-body",
+        "(1,18): unexpected-end-tag",
+        "(1,29): unexpected-cell-end-tag",
+        "(1,29): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "b": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true,
+            "i": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "b",
+                    "children": [
+                      {
+                        "tag": "table",
+                        "children": [
+                          {
+                            "tag": "tbody",
+                            "children": [
+                              {
+                                "tag": "tr",
+                                "children": [
+                                  {
+                                    "tag": "td",
+                                    "children": [
+                                      {
+                                        "tag": "i"
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><b><table><tbody><tr><td><i></i></td></tr></tbody></table></b></body></html>",
+        "noQuirksBodyHtml": "<b><table><tbody><tr><td><i></i></td></tr></tbody></table></b>"
+      }
+    },
+    {
+      "data": "<h1><h2>",
+      "errors": [
+        "(1,4): expected-doctype-but-got-start-tag",
+        "(1,8): unexpected-start-tag",
+        "(1,8): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "h1": true,
+            "h2": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "h1"
+                  },
+                  {
+                    "tag": "h2"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><h1></h1><h2></h2></body></html>",
+        "noQuirksBodyHtml": "<h1></h1><h2></h2>"
+      }
+    },
+    {
+      "data": "<a><p><a></a></p></a>",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,9): unexpected-start-tag-implies-end-tag",
+        "(1,9): adoption-agency-1.3",
+        "(1,21): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "a": true,
+            "p": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "a"
+                  },
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "a"
+                      },
+                      {
+                        "tag": "a"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><a></a><p><a></a><a></a></p></body></html>",
+        "noQuirksBodyHtml": "<a></a><p><a></a><a></a></p>"
+      }
+    },
+    {
+      "data": "<b><button></b></button></b>",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,15): adoption-agency-1.3",
+        "(1,28): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "b": true,
+            "button": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "b"
+                  },
+                  {
+                    "tag": "button",
+                    "children": [
+                      {
+                        "tag": "b"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><b></b><button><b></b></button></body></html>",
+        "noQuirksBodyHtml": "<b></b><button><b></b></button>"
+      }
+    },
+    {
+      "data": "<p><b><div><marquee></p></b></div>",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,11): unexpected-end-tag",
+        "(1,24): unexpected-end-tag",
+        "(1,28): unexpected-end-tag",
+        "(1,34): end-tag-too-early",
+        "(1,34): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "b": true,
+            "div": true,
+            "marquee": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "b"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "tag": "marquee",
+                            "children": [
+                              {
+                                "tag": "p"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><p><b></b></p><div><b><marquee><p></p></marquee></b></div></body></html>",
+        "noQuirksBodyHtml": "<p><b></b></p><div><b><marquee><p></p></marquee></b></div>"
+      }
+    },
+    {
+      "data": "<script></script></div><title></title><p><p>",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,23): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "title": true,
+            "body": true,
+            "p": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script"
+                  },
+                  {
+                    "tag": "title"
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p"
+                  },
+                  {
+                    "tag": "p"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script></script><title></title></head><body><p></p><p></p></body></html>",
+        "noQuirksBodyHtml": "<script></script><title></title><p></p><p></p>"
+      }
+    },
+    {
+      "data": "<p><hr></p>",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,11): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "hr": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p"
+                  },
+                  {
+                    "tag": "hr"
+                  },
+                  {
+                    "tag": "p"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><p></p><hr><p></p></body></html>",
+        "noQuirksBodyHtml": "<p></p><hr><p></p>"
+      }
+    },
+    {
+      "data": "<select><b><option><select><option></b></select>",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,11): unexpected-start-tag-in-select",
+        "(1,27): unexpected-select-in-select",
+        "(1,39): unexpected-end-tag",
+        "(1,48): unexpected-end-tag",
+        "(1,48): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true,
+            "option": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select",
+                    "children": [
+                      {
+                        "tag": "option"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "option"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><select><option></option></select><option></option></body></html>",
+        "noQuirksBodyHtml": "<select><option></option></select><option></option>"
+      }
+    },
+    {
+      "data": "<html><head><title></title><body></body></html>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "title": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "title"
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><title></title></head><body></body></html>",
+        "noQuirksBodyHtml": "<title></title>"
+      }
+    },
+    {
+      "data": "<a><table><td><a><table></table><a></tr><a></table><a>",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,14): unexpected-cell-in-table-body",
+        "(1,35): unexpected-start-tag-implies-end-tag",
+        "(1,40): unexpected-cell-end-tag",
+        "(1,43): unexpected-start-tag-implies-table-voodoo",
+        "(1,43): unexpected-start-tag-implies-end-tag",
+        "(1,43): unexpected-end-tag",
+        "(1,54): unexpected-start-tag-implies-end-tag",
+        "(1,54): adoption-agency-1.2",
+        "(1,54): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "a": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "a",
+                    "children": [
+                      {
+                        "tag": "a"
+                      },
+                      {
+                        "tag": "table",
+                        "children": [
+                          {
+                            "tag": "tbody",
+                            "children": [
+                              {
+                                "tag": "tr",
+                                "children": [
+                                  {
+                                    "tag": "td",
+                                    "children": [
+                                      {
+                                        "tag": "a",
+                                        "children": [
+                                          {
+                                            "tag": "table"
+                                          }
+                                        ]
+                                      },
+                                      {
+                                        "tag": "a"
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "a"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><a><a></a><table><tbody><tr><td><a><table></table></a><a></a></td></tr></tbody></table></a><a></a></body></html>",
+        "noQuirksBodyHtml": "<a><a></a><table><tbody><tr><td><a><table></table></a><a></a></td></tr></tbody></table></a><a></a>"
+      }
+    },
+    {
+      "data": "<ul><li></li><div><li></div><li><li><div><li><address><li><b><em></b><li></ul>",
+      "errors": [
+        "(1,4): expected-doctype-but-got-start-tag",
+        "(1,45): end-tag-too-early",
+        "(1,58): end-tag-too-early",
+        "(1,69): adoption-agency-1.3"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "ul": true,
+            "li": true,
+            "div": true,
+            "address": true,
+            "b": true,
+            "em": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "ul",
+                    "children": [
+                      {
+                        "tag": "li"
+                      },
+                      {
+                        "tag": "div",
+                        "children": [
+                          {
+                            "tag": "li"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "li"
+                      },
+                      {
+                        "tag": "li",
+                        "children": [
+                          {
+                            "tag": "div"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "li",
+                        "children": [
+                          {
+                            "tag": "address"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "li",
+                        "children": [
+                          {
+                            "tag": "b",
+                            "children": [
+                              {
+                                "tag": "em"
+                              }
+                            ]
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "li"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><ul><li></li><div><li></li></div><li></li><li><div></div></li><li><address></address></li><li><b><em></em></b></li><li></li></ul></body></html>",
+        "noQuirksBodyHtml": "<ul><li></li><div><li></li></div><li></li><li><div></div></li><li><address></address></li><li><b><em></em></b></li><li></li></ul>"
+      }
+    },
+    {
+      "data": "<ul><li><ul></li><li>a</li></ul></li></ul>",
+      "errors": [
+        "(1,4): expected-doctype-but-got-start-tag",
+        "(1,17): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "ul": true,
+            "li": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "ul",
+                    "children": [
+                      {
+                        "tag": "li",
+                        "children": [
+                          {
+                            "tag": "ul",
+                            "children": [
+                              {
+                                "tag": "li",
+                                "children": [
+                                  {
+                                    "text": "a"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><ul><li><ul><li>a</li></ul></li></ul></body></html>",
+        "noQuirksBodyHtml": "<ul><li><ul><li>a</li></ul></li></ul>"
+      }
+    },
+    {
+      "data": "<frameset><frame><frameset><frame></frameset><noframes></noframes></frameset>",
+      "errors": [
+        "(1,10): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true,
+            "frame": true,
+            "noframes": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset",
+                "children": [
+                  {
+                    "tag": "frame"
+                  },
+                  {
+                    "tag": "frameset",
+                    "children": [
+                      {
+                        "tag": "frame"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "noframes"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><frameset><frame><frameset><frame></frameset><noframes></noframes></frameset></html>",
+        "noQuirksBodyHtml": "<noframes></noframes>"
+      }
+    },
+    {
+      "data": "<h1><table><td><h3></table><h3></h1>",
+      "errors": [
+        "(1,4): expected-doctype-but-got-start-tag",
+        "(1,15): unexpected-cell-in-table-body",
+        "(1,27): unexpected-cell-end-tag",
+        "(1,31): unexpected-start-tag",
+        "(1,36): end-tag-too-early"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "h1": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true,
+            "h3": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "h1",
+                    "children": [
+                      {
+                        "tag": "table",
+                        "children": [
+                          {
+                            "tag": "tbody",
+                            "children": [
+                              {
+                                "tag": "tr",
+                                "children": [
+                                  {
+                                    "tag": "td",
+                                    "children": [
+                                      {
+                                        "tag": "h3"
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "h3"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><h1><table><tbody><tr><td><h3></h3></td></tr></tbody></table></h1><h3></h3></body></html>",
+        "noQuirksBodyHtml": "<h1><table><tbody><tr><td><h3></h3></td></tr></tbody></table></h1><h3></h3>"
+      }
+    },
+    {
+      "data": "<table><colgroup><col><colgroup><col><col><col><colgroup><col><col><thead><tr><td></table>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "colgroup": true,
+            "col": true,
+            "thead": true,
+            "tr": true,
+            "td": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "colgroup",
+                        "children": [
+                          {
+                            "tag": "col"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "colgroup",
+                        "children": [
+                          {
+                            "tag": "col"
+                          },
+                          {
+                            "tag": "col"
+                          },
+                          {
+                            "tag": "col"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "colgroup",
+                        "children": [
+                          {
+                            "tag": "col"
+                          },
+                          {
+                            "tag": "col"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "thead",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><colgroup><col></colgroup><colgroup><col><col><col></colgroup><colgroup><col><col></colgroup><thead><tr><td></td></tr></thead></table></body></html>",
+        "noQuirksBodyHtml": "<table><colgroup><col></colgroup><colgroup><col><col><col></colgroup><colgroup><col><col></colgroup><thead><tr><td></td></tr></thead></table>"
+      }
+    },
+    {
+      "data": "<table><col><tbody><col><tr><col><td><col></table><col>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,37): unexpected-cell-in-table-body",
+        "(1,55): unexpected-start-tag-ignored"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "colgroup": true,
+            "col": true,
+            "tbody": true,
+            "tr": true,
+            "td": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "colgroup",
+                        "children": [
+                          {
+                            "tag": "col"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "tbody"
+                      },
+                      {
+                        "tag": "colgroup",
+                        "children": [
+                          {
+                            "tag": "col"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "colgroup",
+                        "children": [
+                          {
+                            "tag": "col"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td"
+                              }
+                            ]
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "colgroup",
+                        "children": [
+                          {
+                            "tag": "col"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><colgroup><col></colgroup><tbody></tbody><colgroup><col></colgroup><tbody><tr></tr></tbody><colgroup><col></colgroup><tbody><tr><td></td></tr></tbody><colgroup><col></colgroup></table></body></html>",
+        "noQuirksBodyHtml": "<table><colgroup><col></colgroup><tbody></tbody><colgroup><col></colgroup><tbody><tr></tr></tbody><colgroup><col></colgroup><tbody><tr><td></td></tr></tbody><colgroup><col></colgroup></table>"
+      }
+    },
+    {
+      "data": "<table><colgroup><tbody><colgroup><tr><colgroup><td><colgroup></table><colgroup>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,52): unexpected-cell-in-table-body",
+        "(1,80): unexpected-start-tag-ignored"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "colgroup": true,
+            "tbody": true,
+            "tr": true,
+            "td": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "colgroup"
+                      },
+                      {
+                        "tag": "tbody"
+                      },
+                      {
+                        "tag": "colgroup"
+                      },
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "colgroup"
+                      },
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td"
+                              }
+                            ]
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "colgroup"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><colgroup></colgroup><tbody></tbody><colgroup></colgroup><tbody><tr></tr></tbody><colgroup></colgroup><tbody><tr><td></td></tr></tbody><colgroup></colgroup></table></body></html>",
+        "noQuirksBodyHtml": "<table><colgroup></colgroup><tbody></tbody><colgroup></colgroup><tbody><tr></tr></tbody><colgroup></colgroup><tbody><tr><td></td></tr></tbody><colgroup></colgroup></table>"
+      }
+    },
+    {
+      "data": "</strong></b></em></i></u></strike></s></blink></tt></pre></big></small></font></select></h1></h2></h3></h4></h5></h6></body></br></a></img></title></span></style></script></table></th></td></tr></frame></area></link></param></hr></input></col></base></meta></basefont></bgsound></embed></spacer></p></dd></dt></caption></colgroup></tbody></tfoot></thead></address></blockquote></center></dir></div></dl></fieldset></listing></menu></ol></ul></li></nobr></wbr></form></button></marquee></object></html></frameset></head></iframe></image></isindex></noembed></noframes></noscript></optgroup></option></plaintext></textarea>",
+      "errors": [
+        "(1,9): expected-doctype-but-got-end-tag",
+        "(1,9): unexpected-end-tag-before-html",
+        "(1,13): unexpected-end-tag-before-html",
+        "(1,18): unexpected-end-tag-before-html",
+        "(1,22): unexpected-end-tag-before-html",
+        "(1,26): unexpected-end-tag-before-html",
+        "(1,35): unexpected-end-tag-before-html",
+        "(1,39): unexpected-end-tag-before-html",
+        "(1,47): unexpected-end-tag-before-html",
+        "(1,52): unexpected-end-tag-before-html",
+        "(1,58): unexpected-end-tag-before-html",
+        "(1,64): unexpected-end-tag-before-html",
+        "(1,72): unexpected-end-tag-before-html",
+        "(1,79): unexpected-end-tag-before-html",
+        "(1,88): unexpected-end-tag-before-html",
+        "(1,93): unexpected-end-tag-before-html",
+        "(1,98): unexpected-end-tag-before-html",
+        "(1,103): unexpected-end-tag-before-html",
+        "(1,108): unexpected-end-tag-before-html",
+        "(1,113): unexpected-end-tag-before-html",
+        "(1,118): unexpected-end-tag-before-html",
+        "(1,130): unexpected-end-tag-after-body",
+        "(1,130): unexpected-end-tag-treated-as",
+        "(1,134): unexpected-end-tag",
+        "(1,140): unexpected-end-tag",
+        "(1,148): unexpected-end-tag",
+        "(1,155): unexpected-end-tag",
+        "(1,163): unexpected-end-tag",
+        "(1,172): unexpected-end-tag",
+        "(1,180): unexpected-end-tag",
+        "(1,185): unexpected-end-tag",
+        "(1,190): unexpected-end-tag",
+        "(1,195): unexpected-end-tag",
+        "(1,203): unexpected-end-tag",
+        "(1,210): unexpected-end-tag",
+        "(1,217): unexpected-end-tag",
+        "(1,225): unexpected-end-tag",
+        "(1,230): unexpected-end-tag",
+        "(1,238): unexpected-end-tag",
+        "(1,244): unexpected-end-tag",
+        "(1,251): unexpected-end-tag",
+        "(1,258): unexpected-end-tag",
+        "(1,269): unexpected-end-tag",
+        "(1,279): unexpected-end-tag",
+        "(1,287): unexpected-end-tag",
+        "(1,296): unexpected-end-tag",
+        "(1,300): unexpected-end-tag",
+        "(1,305): unexpected-end-tag",
+        "(1,310): unexpected-end-tag",
+        "(1,320): unexpected-end-tag",
+        "(1,331): unexpected-end-tag",
+        "(1,339): unexpected-end-tag",
+        "(1,347): unexpected-end-tag",
+        "(1,355): unexpected-end-tag",
+        "(1,365): end-tag-too-early",
+        "(1,378): end-tag-too-early",
+        "(1,387): end-tag-too-early",
+        "(1,393): end-tag-too-early",
+        "(1,399): end-tag-too-early",
+        "(1,404): end-tag-too-early",
+        "(1,415): end-tag-too-early",
+        "(1,425): end-tag-too-early",
+        "(1,432): end-tag-too-early",
+        "(1,437): end-tag-too-early",
+        "(1,442): end-tag-too-early",
+        "(1,447): unexpected-end-tag",
+        "(1,454): unexpected-end-tag",
+        "(1,460): unexpected-end-tag",
+        "(1,467): unexpected-end-tag",
+        "(1,476): end-tag-too-early",
+        "(1,486): end-tag-too-early",
+        "(1,495): end-tag-too-early",
+        "(1,513): expected-eof-but-got-end-tag",
+        "(1,513): unexpected-end-tag",
+        "(1,520): unexpected-end-tag",
+        "(1,529): unexpected-end-tag",
+        "(1,537): unexpected-end-tag",
+        "(1,547): unexpected-end-tag",
+        "(1,557): unexpected-end-tag",
+        "(1,568): unexpected-end-tag",
+        "(1,579): unexpected-end-tag",
+        "(1,590): unexpected-end-tag",
+        "(1,599): unexpected-end-tag",
+        "(1,611): unexpected-end-tag",
+        "(1,622): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "br": true,
+            "p": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "br"
+                  },
+                  {
+                    "tag": "p"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><br><p></p></body></html>",
+        "noQuirksBodyHtml": "<br><p></p>"
+      }
+    },
+    {
+      "data": "<table><tr></strong></b></em></i></u></strike></s></blink></tt></pre></big></small></font></select></h1></h2></h3></h4></h5></h6></body></br></a></img></title></span></style></script></table></th></td></tr></frame></area></link></param></hr></input></col></base></meta></basefont></bgsound></embed></spacer></p></dd></dt></caption></colgroup></tbody></tfoot></thead></address></blockquote></center></dir></div></dl></fieldset></listing></menu></ol></ul></li></nobr></wbr></form></button></marquee></object></html></frameset></head></iframe></image></isindex></noembed></noframes></noscript></optgroup></option></plaintext></textarea>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,20): unexpected-end-tag-implies-table-voodoo",
+        "(1,20): unexpected-end-tag",
+        "(1,24): unexpected-end-tag-implies-table-voodoo",
+        "(1,24): unexpected-end-tag",
+        "(1,29): unexpected-end-tag-implies-table-voodoo",
+        "(1,29): unexpected-end-tag",
+        "(1,33): unexpected-end-tag-implies-table-voodoo",
+        "(1,33): unexpected-end-tag",
+        "(1,37): unexpected-end-tag-implies-table-voodoo",
+        "(1,37): unexpected-end-tag",
+        "(1,46): unexpected-end-tag-implies-table-voodoo",
+        "(1,46): unexpected-end-tag",
+        "(1,50): unexpected-end-tag-implies-table-voodoo",
+        "(1,50): unexpected-end-tag",
+        "(1,58): unexpected-end-tag-implies-table-voodoo",
+        "(1,58): unexpected-end-tag",
+        "(1,63): unexpected-end-tag-implies-table-voodoo",
+        "(1,63): unexpected-end-tag",
+        "(1,69): unexpected-end-tag-implies-table-voodoo",
+        "(1,69): end-tag-too-early",
+        "(1,75): unexpected-end-tag-implies-table-voodoo",
+        "(1,75): unexpected-end-tag",
+        "(1,83): unexpected-end-tag-implies-table-voodoo",
+        "(1,83): unexpected-end-tag",
+        "(1,90): unexpected-end-tag-implies-table-voodoo",
+        "(1,90): unexpected-end-tag",
+        "(1,99): unexpected-end-tag-implies-table-voodoo",
+        "(1,99): unexpected-end-tag",
+        "(1,104): unexpected-end-tag-implies-table-voodoo",
+        "(1,104): end-tag-too-early",
+        "(1,109): unexpected-end-tag-implies-table-voodoo",
+        "(1,109): end-tag-too-early",
+        "(1,114): unexpected-end-tag-implies-table-voodoo",
+        "(1,114): end-tag-too-early",
+        "(1,119): unexpected-end-tag-implies-table-voodoo",
+        "(1,119): end-tag-too-early",
+        "(1,124): unexpected-end-tag-implies-table-voodoo",
+        "(1,124): end-tag-too-early",
+        "(1,129): unexpected-end-tag-implies-table-voodoo",
+        "(1,129): end-tag-too-early",
+        "(1,136): unexpected-end-tag-in-table-row",
+        "(1,141): unexpected-end-tag-implies-table-voodoo",
+        "(1,141): unexpected-end-tag-treated-as",
+        "(1,145): unexpected-end-tag-implies-table-voodoo",
+        "(1,145): unexpected-end-tag",
+        "(1,151): unexpected-end-tag-implies-table-voodoo",
+        "(1,151): unexpected-end-tag",
+        "(1,159): unexpected-end-tag-implies-table-voodoo",
+        "(1,159): unexpected-end-tag",
+        "(1,166): unexpected-end-tag-implies-table-voodoo",
+        "(1,166): unexpected-end-tag",
+        "(1,174): unexpected-end-tag-implies-table-voodoo",
+        "(1,174): unexpected-end-tag",
+        "(1,183): unexpected-end-tag-implies-table-voodoo",
+        "(1,183): unexpected-end-tag",
+        "(1,196): unexpected-end-tag",
+        "(1,201): unexpected-end-tag",
+        "(1,206): unexpected-end-tag",
+        "(1,214): unexpected-end-tag",
+        "(1,221): unexpected-end-tag",
+        "(1,228): unexpected-end-tag",
+        "(1,236): unexpected-end-tag",
+        "(1,241): unexpected-end-tag",
+        "(1,249): unexpected-end-tag",
+        "(1,255): unexpected-end-tag",
+        "(1,262): unexpected-end-tag",
+        "(1,269): unexpected-end-tag",
+        "(1,280): unexpected-end-tag",
+        "(1,290): unexpected-end-tag",
+        "(1,298): unexpected-end-tag",
+        "(1,307): unexpected-end-tag",
+        "(1,311): unexpected-end-tag",
+        "(1,316): unexpected-end-tag",
+        "(1,321): unexpected-end-tag",
+        "(1,331): unexpected-end-tag",
+        "(1,342): unexpected-end-tag",
+        "(1,350): unexpected-end-tag",
+        "(1,358): unexpected-end-tag",
+        "(1,366): unexpected-end-tag",
+        "(1,376): end-tag-too-early",
+        "(1,389): end-tag-too-early",
+        "(1,398): end-tag-too-early",
+        "(1,404): end-tag-too-early",
+        "(1,410): end-tag-too-early",
+        "(1,415): end-tag-too-early",
+        "(1,426): end-tag-too-early",
+        "(1,436): end-tag-too-early",
+        "(1,443): end-tag-too-early",
+        "(1,448): end-tag-too-early",
+        "(1,453): end-tag-too-early",
+        "(1,458): unexpected-end-tag",
+        "(1,465): unexpected-end-tag",
+        "(1,471): unexpected-end-tag",
+        "(1,478): unexpected-end-tag",
+        "(1,487): end-tag-too-early",
+        "(1,497): end-tag-too-early",
+        "(1,506): end-tag-too-early",
+        "(1,524): expected-eof-but-got-end-tag",
+        "(1,524): unexpected-end-tag",
+        "(1,531): unexpected-end-tag",
+        "(1,540): unexpected-end-tag",
+        "(1,548): unexpected-end-tag",
+        "(1,558): unexpected-end-tag",
+        "(1,568): unexpected-end-tag",
+        "(1,579): unexpected-end-tag",
+        "(1,590): unexpected-end-tag",
+        "(1,601): unexpected-end-tag",
+        "(1,610): unexpected-end-tag",
+        "(1,622): unexpected-end-tag",
+        "(1,633): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "br": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "p": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "br"
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "p"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><br><table><tbody><tr></tr></tbody></table><p></p></body></html>",
+        "noQuirksBodyHtml": "<br><table><tbody><tr></tr></tbody></table><p></p>"
+      }
+    },
+    {
+      "data": "<frameset>",
+      "errors": [
+        "(1,10): expected-doctype-but-got-start-tag",
+        "(1,10): eof-in-frameset"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><frameset></frameset></html>",
+        "noQuirksBodyHtml": ""
+      }
+    }
+  ],
+  "tests10.dat": [
+    {
+      "data": "<!DOCTYPE html><svg></svg>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><svg></svg></body></html>",
+        "noQuirksBodyHtml": "<svg></svg>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><svg></svg><![CDATA[a]]>",
+      "errors": [
+        "(1,28) expected-dashes-or-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true
+          },
+          "doctype": true,
+          "comment": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg"
+                  },
+                  {
+                    "comment": "[CDATA[a]]"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><svg></svg><!--[CDATA[a]]--></body></html>",
+        "noQuirksBodyHtml": "<svg></svg><!--[CDATA[a]]-->"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><svg></svg>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><svg></svg></body></html>",
+        "noQuirksBodyHtml": "<svg></svg>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><select><svg></svg></select>",
+      "errors": [
+        "(1,34) unexpected-start-tag-in-select",
+        "(1,40) unexpected-end-tag-in-select"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><select></select></body></html>",
+        "noQuirksBodyHtml": "<select></select>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><select><option><svg></svg></option></select>",
+      "errors": [
+        "(1,42) unexpected-start-tag-in-select",
+        "(1,48) unexpected-end-tag-in-select"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true,
+            "option": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select",
+                    "children": [
+                      {
+                        "tag": "option"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><select><option></option></select></body></html>",
+        "noQuirksBodyHtml": "<select><option></option></select>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><table><svg></svg></table>",
+      "errors": [
+        "(1,33) foster-parenting-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true,
+            "table": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg"
+                  },
+                  {
+                    "tag": "table"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><svg></svg><table></table></body></html>",
+        "noQuirksBodyHtml": "<svg></svg><table></table>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><table><svg><g>foo</g></svg></table>",
+      "errors": [
+        "(1,33) foster-parenting-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true,
+            "svg g": true,
+            "table": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "tag": "g",
+                        "ns": "http://www.w3.org/2000/svg",
+                        "children": [
+                          {
+                            "text": "foo"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "table"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><svg><g>foo</g></svg><table></table></body></html>",
+        "noQuirksBodyHtml": "<svg><g>foo</g></svg><table></table>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><table><svg><g>foo</g><g>bar</g></svg></table>",
+      "errors": [
+        "(1,33) foster-parenting-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true,
+            "svg g": true,
+            "table": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "tag": "g",
+                        "ns": "http://www.w3.org/2000/svg",
+                        "children": [
+                          {
+                            "text": "foo"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "g",
+                        "ns": "http://www.w3.org/2000/svg",
+                        "children": [
+                          {
+                            "text": "bar"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "table"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><svg><g>foo</g><g>bar</g></svg><table></table></body></html>",
+        "noQuirksBodyHtml": "<svg><g>foo</g><g>bar</g></svg><table></table>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><table><tbody><svg><g>foo</g><g>bar</g></svg></tbody></table>",
+      "errors": [
+        "(1,40) foster-parenting-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true,
+            "svg g": true,
+            "table": true,
+            "tbody": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "tag": "g",
+                        "ns": "http://www.w3.org/2000/svg",
+                        "children": [
+                          {
+                            "text": "foo"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "g",
+                        "ns": "http://www.w3.org/2000/svg",
+                        "children": [
+                          {
+                            "text": "bar"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><svg><g>foo</g><g>bar</g></svg><table><tbody></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<svg><g>foo</g><g>bar</g></svg><table><tbody></tbody></table>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><table><tbody><tr><svg><g>foo</g><g>bar</g></svg></tr></tbody></table>",
+      "errors": [
+        "(1,44) foster-parenting-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true,
+            "svg g": true,
+            "table": true,
+            "tbody": true,
+            "tr": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "tag": "g",
+                        "ns": "http://www.w3.org/2000/svg",
+                        "children": [
+                          {
+                            "text": "foo"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "g",
+                        "ns": "http://www.w3.org/2000/svg",
+                        "children": [
+                          {
+                            "text": "bar"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><svg><g>foo</g><g>bar</g></svg><table><tbody><tr></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<svg><g>foo</g><g>bar</g></svg><table><tbody><tr></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><table><tbody><tr><td><svg><g>foo</g><g>bar</g></svg></td></tr></tbody></table>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true,
+            "svg svg": true,
+            "svg g": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td",
+                                "children": [
+                                  {
+                                    "tag": "svg",
+                                    "ns": "http://www.w3.org/2000/svg",
+                                    "children": [
+                                      {
+                                        "tag": "g",
+                                        "ns": "http://www.w3.org/2000/svg",
+                                        "children": [
+                                          {
+                                            "text": "foo"
+                                          }
+                                        ]
+                                      },
+                                      {
+                                        "tag": "g",
+                                        "ns": "http://www.w3.org/2000/svg",
+                                        "children": [
+                                          {
+                                            "text": "bar"
+                                          }
+                                        ]
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><svg><g>foo</g><g>bar</g></svg></td></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<table><tbody><tr><td><svg><g>foo</g><g>bar</g></svg></td></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><table><tbody><tr><td><svg><g>foo</g><g>bar</g></svg><p>baz</td></tr></tbody></table>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true,
+            "svg svg": true,
+            "svg g": true,
+            "p": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td",
+                                "children": [
+                                  {
+                                    "tag": "svg",
+                                    "ns": "http://www.w3.org/2000/svg",
+                                    "children": [
+                                      {
+                                        "tag": "g",
+                                        "ns": "http://www.w3.org/2000/svg",
+                                        "children": [
+                                          {
+                                            "text": "foo"
+                                          }
+                                        ]
+                                      },
+                                      {
+                                        "tag": "g",
+                                        "ns": "http://www.w3.org/2000/svg",
+                                        "children": [
+                                          {
+                                            "text": "bar"
+                                          }
+                                        ]
+                                      }
+                                    ]
+                                  },
+                                  {
+                                    "tag": "p",
+                                    "children": [
+                                      {
+                                        "text": "baz"
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><svg><g>foo</g><g>bar</g></svg><p>baz</p></td></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<table><tbody><tr><td><svg><g>foo</g><g>bar</g></svg><p>baz</p></td></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><table><caption><svg><g>foo</g><g>bar</g></svg><p>baz</caption></table>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "caption": true,
+            "svg svg": true,
+            "svg g": true,
+            "p": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "caption",
+                        "children": [
+                          {
+                            "tag": "svg",
+                            "ns": "http://www.w3.org/2000/svg",
+                            "children": [
+                              {
+                                "tag": "g",
+                                "ns": "http://www.w3.org/2000/svg",
+                                "children": [
+                                  {
+                                    "text": "foo"
+                                  }
+                                ]
+                              },
+                              {
+                                "tag": "g",
+                                "ns": "http://www.w3.org/2000/svg",
+                                "children": [
+                                  {
+                                    "text": "bar"
+                                  }
+                                ]
+                              }
+                            ]
+                          },
+                          {
+                            "tag": "p",
+                            "children": [
+                              {
+                                "text": "baz"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><table><caption><svg><g>foo</g><g>bar</g></svg><p>baz</p></caption></table></body></html>",
+        "noQuirksBodyHtml": "<table><caption><svg><g>foo</g><g>bar</g></svg><p>baz</p></caption></table>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><table><caption><svg><g>foo</g><g>bar</g><p>baz</table><p>quux",
+      "errors": [
+        "(1,65) unexpected-html-element-in-foreign-content"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "caption": true,
+            "svg svg": true,
+            "svg g": true,
+            "p": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "caption",
+                        "children": [
+                          {
+                            "tag": "svg",
+                            "ns": "http://www.w3.org/2000/svg",
+                            "children": [
+                              {
+                                "tag": "g",
+                                "ns": "http://www.w3.org/2000/svg",
+                                "children": [
+                                  {
+                                    "text": "foo"
+                                  }
+                                ]
+                              },
+                              {
+                                "tag": "g",
+                                "ns": "http://www.w3.org/2000/svg",
+                                "children": [
+                                  {
+                                    "text": "bar"
+                                  }
+                                ]
+                              }
+                            ]
+                          },
+                          {
+                            "tag": "p",
+                            "children": [
+                              {
+                                "text": "baz"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "text": "quux"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><table><caption><svg><g>foo</g><g>bar</g></svg><p>baz</p></caption></table><p>quux</p></body></html>",
+        "noQuirksBodyHtml": "<table><caption><svg><g>foo</g><g>bar</g><p>baz</p></svg></caption></table><p>quux</p>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><table><caption><svg><g>foo</g><g>bar</g>baz</table><p>quux",
+      "errors": [
+        "(1,73) unexpected-end-tag",
+        "(1,73) expected-one-end-tag-but-got-another"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "caption": true,
+            "svg svg": true,
+            "svg g": true,
+            "p": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "caption",
+                        "children": [
+                          {
+                            "tag": "svg",
+                            "ns": "http://www.w3.org/2000/svg",
+                            "children": [
+                              {
+                                "tag": "g",
+                                "ns": "http://www.w3.org/2000/svg",
+                                "children": [
+                                  {
+                                    "text": "foo"
+                                  }
+                                ]
+                              },
+                              {
+                                "tag": "g",
+                                "ns": "http://www.w3.org/2000/svg",
+                                "children": [
+                                  {
+                                    "text": "bar"
+                                  }
+                                ]
+                              },
+                              {
+                                "text": "baz"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "text": "quux"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><table><caption><svg><g>foo</g><g>bar</g>baz</svg></caption></table><p>quux</p></body></html>",
+        "noQuirksBodyHtml": "<table><caption><svg><g>foo</g><g>bar</g>baz</svg></caption></table><p>quux</p>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><table><colgroup><svg><g>foo</g><g>bar</g><p>baz</table><p>quux",
+      "errors": [
+        "(1,43) foster-parenting-start-tag svg",
+        "(1,66) unexpected HTML-like start tag token in foreign content",
+        "(1,66) foster-parenting-start-tag",
+        "(1,67) foster-parenting-character",
+        "(1,68) foster-parenting-character",
+        "(1,69) foster-parenting-character"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true,
+            "svg g": true,
+            "p": true,
+            "table": true,
+            "colgroup": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "tag": "g",
+                        "ns": "http://www.w3.org/2000/svg",
+                        "children": [
+                          {
+                            "text": "foo"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "g",
+                        "ns": "http://www.w3.org/2000/svg",
+                        "children": [
+                          {
+                            "text": "bar"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "text": "baz"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "colgroup"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "text": "quux"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><svg><g>foo</g><g>bar</g></svg><p>baz</p><table><colgroup></colgroup></table><p>quux</p></body></html>",
+        "noQuirksBodyHtml": "<svg><g>foo</g><g>bar</g><p>baz</p></svg><table><colgroup></colgroup></table><p>quux</p>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><table><tr><td><select><svg><g>foo</g><g>bar</g><p>baz</table><p>quux",
+      "errors": [
+        "(1,49) unexpected-start-tag-in-select",
+        "(1,52) unexpected-start-tag-in-select",
+        "(1,59) unexpected-end-tag-in-select",
+        "(1,62) unexpected-start-tag-in-select",
+        "(1,69) unexpected-end-tag-in-select",
+        "(1,72) unexpected-start-tag-in-select",
+        "(1,83) unexpected-table-element-end-tag-in-select-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true,
+            "select": true,
+            "p": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td",
+                                "children": [
+                                  {
+                                    "tag": "select",
+                                    "children": [
+                                      {
+                                        "text": "foobarbaz"
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "text": "quux"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><select>foobarbaz</select></td></tr></tbody></table><p>quux</p></body></html>",
+        "noQuirksBodyHtml": "<table><tbody><tr><td><select>foobarbaz</select></td></tr></tbody></table><p>quux</p>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><table><select><svg><g>foo</g><g>bar</g><p>baz</table><p>quux",
+      "errors": [
+        "(1,36) unexpected-start-tag-implies-table-voodoo",
+        "(1,41) unexpected-start-tag-in-select",
+        "(1,44) unexpected-start-tag-in-select",
+        "(1,51) unexpected-end-tag-in-select",
+        "(1,54) unexpected-start-tag-in-select",
+        "(1,61) unexpected-end-tag-in-select",
+        "(1,64) unexpected-start-tag-in-select",
+        "(1,75) unexpected-table-element-end-tag-in-select-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true,
+            "table": true,
+            "p": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select",
+                    "children": [
+                      {
+                        "text": "foobarbaz"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "table"
+                  },
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "text": "quux"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><select>foobarbaz</select><table></table><p>quux</p></body></html>",
+        "noQuirksBodyHtml": "<select>foobarbaz</select><table></table><p>quux</p>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body></body></html><svg><g>foo</g><g>bar</g><p>baz",
+      "errors": [
+        "(1,40) expected-eof-but-got-start-tag",
+        "(1,63) unexpected-html-element-in-foreign-content"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true,
+            "svg g": true,
+            "p": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "tag": "g",
+                        "ns": "http://www.w3.org/2000/svg",
+                        "children": [
+                          {
+                            "text": "foo"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "g",
+                        "ns": "http://www.w3.org/2000/svg",
+                        "children": [
+                          {
+                            "text": "bar"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "text": "baz"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><svg><g>foo</g><g>bar</g></svg><p>baz</p></body></html>",
+        "noQuirksBodyHtml": "<svg><g>foo</g><g>bar</g><p>baz</p></svg>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body></body><svg><g>foo</g><g>bar</g><p>baz",
+      "errors": [
+        "(1,33) unexpected-start-tag-after-body",
+        "(1,56) unexpected-html-element-in-foreign-content"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true,
+            "svg g": true,
+            "p": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "tag": "g",
+                        "ns": "http://www.w3.org/2000/svg",
+                        "children": [
+                          {
+                            "text": "foo"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "g",
+                        "ns": "http://www.w3.org/2000/svg",
+                        "children": [
+                          {
+                            "text": "bar"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "text": "baz"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><svg><g>foo</g><g>bar</g></svg><p>baz</p></body></html>",
+        "noQuirksBodyHtml": "<svg><g>foo</g><g>bar</g><p>baz</p></svg>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><frameset><svg><g></g><g></g><p><span>",
+      "errors": [
+        "(1,30) unexpected-start-tag-in-frameset",
+        "(1,33) unexpected-start-tag-in-frameset",
+        "(1,37) unexpected-end-tag-in-frameset",
+        "(1,40) unexpected-start-tag-in-frameset",
+        "(1,44) unexpected-end-tag-in-frameset",
+        "(1,47) unexpected-start-tag-in-frameset",
+        "(1,53) unexpected-start-tag-in-frameset",
+        "(1,53) eof-in-frameset"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
+        "noQuirksBodyHtml": "<svg><g></g><g></g><p><span></span></p></svg>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><frameset></frameset><svg><g></g><g></g><p><span>",
+      "errors": [
+        "(1,41) unexpected-start-tag-after-frameset",
+        "(1,44) unexpected-start-tag-after-frameset",
+        "(1,48) unexpected-end-tag-after-frameset",
+        "(1,51) unexpected-start-tag-after-frameset",
+        "(1,55) unexpected-end-tag-after-frameset",
+        "(1,58) unexpected-start-tag-after-frameset",
+        "(1,64) unexpected-start-tag-after-frameset"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
+        "noQuirksBodyHtml": "<svg><g></g><g></g><p><span></span></p></svg>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body xlink:href=foo><svg xlink:href=foo></svg>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "attrs": [
+                  {
+                    "name": "xlink:href",
+                    "value": "foo"
+                  }
+                ],
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "attrs": [
+                      {
+                        "name": "href",
+                        "ns": "http://www.w3.org/1999/xlink",
+                        "value": "foo"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body xlink:href=\"foo\"><svg xlink:href=\"foo\"></svg></body></html>",
+        "noQuirksBodyHtml": "<svg xlink:href=\"foo\"></svg>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body xlink:href=foo xml:lang=en><svg><g xml:lang=en xlink:href=foo></g></svg>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true,
+            "svg g": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "attrs": [
+                  {
+                    "name": "xlink:href",
+                    "value": "foo"
+                  },
+                  {
+                    "name": "xml:lang",
+                    "value": "en"
+                  }
+                ],
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "tag": "g",
+                        "ns": "http://www.w3.org/2000/svg",
+                        "attrs": [
+                          {
+                            "name": "href",
+                            "ns": "http://www.w3.org/1999/xlink",
+                            "value": "foo"
+                          },
+                          {
+                            "name": "lang",
+                            "ns": "http://www.w3.org/XML/1998/namespace",
+                            "value": "en"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body xlink:href=\"foo\" xml:lang=\"en\"><svg><g xml:lang=\"en\" xlink:href=\"foo\"></g></svg></body></html>",
+        "noQuirksBodyHtml": "<svg><g xml:lang=\"en\" xlink:href=\"foo\"></g></svg>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body xlink:href=foo xml:lang=en><svg><g xml:lang=en xlink:href=foo /></svg>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true,
+            "svg g": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "attrs": [
+                  {
+                    "name": "xlink:href",
+                    "value": "foo"
+                  },
+                  {
+                    "name": "xml:lang",
+                    "value": "en"
+                  }
+                ],
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "tag": "g",
+                        "ns": "http://www.w3.org/2000/svg",
+                        "attrs": [
+                          {
+                            "name": "href",
+                            "ns": "http://www.w3.org/1999/xlink",
+                            "value": "foo"
+                          },
+                          {
+                            "name": "lang",
+                            "ns": "http://www.w3.org/XML/1998/namespace",
+                            "value": "en"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body xlink:href=\"foo\" xml:lang=\"en\"><svg><g xml:lang=\"en\" xlink:href=\"foo\"></g></svg></body></html>",
+        "noQuirksBodyHtml": "<svg><g xml:lang=\"en\" xlink:href=\"foo\"></g></svg>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body xlink:href=foo xml:lang=en><svg><g xml:lang=en xlink:href=foo />bar</svg>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true,
+            "svg g": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "attrs": [
+                  {
+                    "name": "xlink:href",
+                    "value": "foo"
+                  },
+                  {
+                    "name": "xml:lang",
+                    "value": "en"
+                  }
+                ],
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "tag": "g",
+                        "ns": "http://www.w3.org/2000/svg",
+                        "attrs": [
+                          {
+                            "name": "href",
+                            "ns": "http://www.w3.org/1999/xlink",
+                            "value": "foo"
+                          },
+                          {
+                            "name": "lang",
+                            "ns": "http://www.w3.org/XML/1998/namespace",
+                            "value": "en"
+                          }
+                        ]
+                      },
+                      {
+                        "text": "bar"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body xlink:href=\"foo\" xml:lang=\"en\"><svg><g xml:lang=\"en\" xlink:href=\"foo\"></g>bar</svg></body></html>",
+        "noQuirksBodyHtml": "<svg><g xml:lang=\"en\" xlink:href=\"foo\"></g>bar</svg>"
+      }
+    },
+    {
+      "data": "<svg></path>",
+      "errors": [
+        "(1,5) expected-doctype-but-got-start-tag",
+        "(1,12) unexpected-end-tag",
+        "(1,12) unexpected-end-tag",
+        "(1,12) expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg></svg></body></html>",
+        "noQuirksBodyHtml": "<svg></svg>"
+      }
+    },
+    {
+      "data": "<div><svg></div>a",
+      "errors": [
+        "(1,5) expected-doctype-but-got-start-tag",
+        "(1,16) unexpected-end-tag",
+        "(1,16) end-tag-too-early"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true,
+            "svg svg": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "tag": "svg",
+                        "ns": "http://www.w3.org/2000/svg"
+                      }
+                    ]
+                  },
+                  {
+                    "text": "a"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div><svg></svg></div>a</body></html>",
+        "noQuirksBodyHtml": "<div><svg></svg></div>a"
+      }
+    },
+    {
+      "data": "<div><svg><path></div>a",
+      "errors": [
+        "(1,5) expected-doctype-but-got-start-tag",
+        "(1,22) unexpected-end-tag",
+        "(1,22) end-tag-too-early"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true,
+            "svg svg": true,
+            "svg path": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "tag": "svg",
+                        "ns": "http://www.w3.org/2000/svg",
+                        "children": [
+                          {
+                            "tag": "path",
+                            "ns": "http://www.w3.org/2000/svg"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "text": "a"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div><svg><path></path></svg></div>a</body></html>",
+        "noQuirksBodyHtml": "<div><svg><path></path></svg></div>a"
+      }
+    },
+    {
+      "data": "<div><svg><path></svg><path>",
+      "errors": [
+        "(1,5) expected-doctype-but-got-start-tag",
+        "(1,22) unexpected-end-tag",
+        "(1,28) expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true,
+            "svg svg": true,
+            "svg path": true,
+            "path": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "tag": "svg",
+                        "ns": "http://www.w3.org/2000/svg",
+                        "children": [
+                          {
+                            "tag": "path",
+                            "ns": "http://www.w3.org/2000/svg"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "path"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div><svg><path></path></svg><path></path></div></body></html>",
+        "noQuirksBodyHtml": "<div><svg><path></path></svg><path></path></div>"
+      }
+    },
+    {
+      "data": "<div><svg><path><foreignObject><math></div>a",
+      "errors": [
+        "(1,5) expected-doctype-but-got-start-tag",
+        "(1,43) unexpected-end-tag",
+        "(1,43) end-tag-too-early",
+        "(1,44) expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true,
+            "svg svg": true,
+            "svg path": true,
+            "svg foreignObject": true,
+            "math math": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "tag": "svg",
+                        "ns": "http://www.w3.org/2000/svg",
+                        "children": [
+                          {
+                            "tag": "path",
+                            "ns": "http://www.w3.org/2000/svg",
+                            "children": [
+                              {
+                                "tag": "foreignObject",
+                                "ns": "http://www.w3.org/2000/svg",
+                                "children": [
+                                  {
+                                    "tag": "math",
+                                    "ns": "http://www.w3.org/1998/Math/MathML",
+                                    "children": [
+                                      {
+                                        "text": "a"
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div><svg><path><foreignObject><math>a</math></foreignObject></path></svg></div></body></html>",
+        "noQuirksBodyHtml": "<div><svg><path><foreignObject><math>a</math></foreignObject></path></svg></div>"
+      }
+    },
+    {
+      "data": "<div><svg><path><foreignObject><p></div>a",
+      "errors": [
+        "(1,5) expected-doctype-but-got-start-tag",
+        "(1,40) end-tag-too-early",
+        "(1,41) expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true,
+            "svg svg": true,
+            "svg path": true,
+            "svg foreignObject": true,
+            "p": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "tag": "svg",
+                        "ns": "http://www.w3.org/2000/svg",
+                        "children": [
+                          {
+                            "tag": "path",
+                            "ns": "http://www.w3.org/2000/svg",
+                            "children": [
+                              {
+                                "tag": "foreignObject",
+                                "ns": "http://www.w3.org/2000/svg",
+                                "children": [
+                                  {
+                                    "tag": "p",
+                                    "children": [
+                                      {
+                                        "text": "a"
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div><svg><path><foreignObject><p>a</p></foreignObject></path></svg></div></body></html>",
+        "noQuirksBodyHtml": "<div><svg><path><foreignObject><p>a</p></foreignObject></path></svg></div>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><svg><desc><div><svg><ul>a",
+      "errors": [
+        "(1,40) unexpected-html-element-in-foreign-content",
+        "(1,41) expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true,
+            "svg desc": true,
+            "div": true,
+            "ul": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "tag": "desc",
+                        "ns": "http://www.w3.org/2000/svg",
+                        "children": [
+                          {
+                            "tag": "div",
+                            "children": [
+                              {
+                                "tag": "svg",
+                                "ns": "http://www.w3.org/2000/svg"
+                              },
+                              {
+                                "tag": "ul",
+                                "children": [
+                                  {
+                                    "text": "a"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><svg><desc><div><svg></svg><ul>a</ul></div></desc></svg></body></html>",
+        "noQuirksBodyHtml": "<svg><desc><div><svg><ul>a</ul></svg></div></desc></svg>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><svg><desc><svg><ul>a",
+      "errors": [
+        "(1,35) unexpected-html-element-in-foreign-content",
+        "(1,36) expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true,
+            "svg desc": true,
+            "ul": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "tag": "desc",
+                        "ns": "http://www.w3.org/2000/svg",
+                        "children": [
+                          {
+                            "tag": "svg",
+                            "ns": "http://www.w3.org/2000/svg"
+                          },
+                          {
+                            "tag": "ul",
+                            "children": [
+                              {
+                                "text": "a"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><svg><desc><svg></svg><ul>a</ul></desc></svg></body></html>",
+        "noQuirksBodyHtml": "<svg><desc><svg><ul>a</ul></svg></desc></svg>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><p><svg><desc><p>",
+      "errors": [
+        "(1,32) expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "svg svg": true,
+            "svg desc": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "svg",
+                        "ns": "http://www.w3.org/2000/svg",
+                        "children": [
+                          {
+                            "tag": "desc",
+                            "ns": "http://www.w3.org/2000/svg",
+                            "children": [
+                              {
+                                "tag": "p"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p><svg><desc><p></p></desc></svg></p></body></html>",
+        "noQuirksBodyHtml": "<p><svg><desc><p></p></desc></svg></p>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><p><svg><title><p>",
+      "errors": [
+        "(1,33) expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "svg svg": true,
+            "svg title": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "svg",
+                        "ns": "http://www.w3.org/2000/svg",
+                        "children": [
+                          {
+                            "tag": "title",
+                            "ns": "http://www.w3.org/2000/svg",
+                            "children": [
+                              {
+                                "tag": "p"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p><svg><title><p></p></title></svg></p></body></html>",
+        "noQuirksBodyHtml": "<p><svg><title><p></p></title></svg></p>"
+      }
+    },
+    {
+      "data": "<div><svg><path><foreignObject><p></foreignObject><p>",
+      "errors": [
+        "(1,5) expected-doctype-but-got-start-tag",
+        "(1,50) unexpected-end-tag",
+        "(1,53) expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true,
+            "svg svg": true,
+            "svg path": true,
+            "svg foreignObject": true,
+            "p": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "tag": "svg",
+                        "ns": "http://www.w3.org/2000/svg",
+                        "children": [
+                          {
+                            "tag": "path",
+                            "ns": "http://www.w3.org/2000/svg",
+                            "children": [
+                              {
+                                "tag": "foreignObject",
+                                "ns": "http://www.w3.org/2000/svg",
+                                "children": [
+                                  {
+                                    "tag": "p"
+                                  },
+                                  {
+                                    "tag": "p"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div><svg><path><foreignObject><p></p><p></p></foreignObject></path></svg></div></body></html>",
+        "noQuirksBodyHtml": "<div><svg><path><foreignObject><p></p><p></p></foreignObject></path></svg></div>"
+      }
+    },
+    {
+      "data": "<math><mi><div><object><div><span></span></div></object></div></mi><mi>",
+      "errors": [
+        "(1,6) expected-doctype-but-got-start-tag",
+        "(1,71) expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "math mi": true,
+            "div": true,
+            "object": true,
+            "span": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "mi",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "children": [
+                          {
+                            "tag": "div",
+                            "children": [
+                              {
+                                "tag": "object",
+                                "children": [
+                                  {
+                                    "tag": "div",
+                                    "children": [
+                                      {
+                                        "tag": "span"
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "mi",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><math><mi><div><object><div><span></span></div></object></div></mi><mi></mi></math></body></html>",
+        "noQuirksBodyHtml": "<math><mi><div><object><div><span></span></div></object></div></mi><mi></mi></math>"
+      }
+    },
+    {
+      "data": "<math><mi><svg><foreignObject><div><div></div></div></foreignObject></svg></mi><mi>",
+      "errors": [
+        "(1,6) expected-doctype-but-got-start-tag",
+        "(1,83) expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "math mi": true,
+            "svg svg": true,
+            "svg foreignObject": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "mi",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "children": [
+                          {
+                            "tag": "svg",
+                            "ns": "http://www.w3.org/2000/svg",
+                            "children": [
+                              {
+                                "tag": "foreignObject",
+                                "ns": "http://www.w3.org/2000/svg",
+                                "children": [
+                                  {
+                                    "tag": "div",
+                                    "children": [
+                                      {
+                                        "tag": "div"
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "mi",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><math><mi><svg><foreignObject><div><div></div></div></foreignObject></svg></mi><mi></mi></math></body></html>",
+        "noQuirksBodyHtml": "<math><mi><svg><foreignObject><div><div></div></div></foreignObject></svg></mi><mi></mi></math>"
+      }
+    },
+    {
+      "data": "<svg><script></script><path>",
+      "errors": [
+        "(1,5) expected-doctype-but-got-start-tag",
+        "(1,28) expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true,
+            "svg script": true,
+            "svg path": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "tag": "script",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "path",
+                        "ns": "http://www.w3.org/2000/svg"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg><script></script><path></path></svg></body></html>",
+        "noQuirksBodyHtml": "<svg><script></script><path></path></svg>"
+      }
+    },
+    {
+      "data": "<table><svg></svg><tr>",
+      "errors": [
+        "(1,7) expected-doctype-but-got-start-tag",
+        "(1,12) unexpected-start-tag-implies-table-voodoo",
+        "(1,22) eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true,
+            "table": true,
+            "tbody": true,
+            "tr": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg"
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg></svg><table><tbody><tr></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<svg></svg><table><tbody><tr></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<math><mi><mglyph>",
+      "errors": [
+        "(1,6) expected-doctype-but-got-start-tag",
+        "(1,18) expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "math mi": true,
+            "math mglyph": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "mi",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "children": [
+                          {
+                            "tag": "mglyph",
+                            "ns": "http://www.w3.org/1998/Math/MathML"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><math><mi><mglyph></mglyph></mi></math></body></html>",
+        "noQuirksBodyHtml": "<math><mi><mglyph></mglyph></mi></math>"
+      }
+    },
+    {
+      "data": "<math><mi><malignmark>",
+      "errors": [
+        "(1,6) expected-doctype-but-got-start-tag",
+        "(1,22) expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "math mi": true,
+            "math malignmark": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "mi",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "children": [
+                          {
+                            "tag": "malignmark",
+                            "ns": "http://www.w3.org/1998/Math/MathML"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><math><mi><malignmark></malignmark></mi></math></body></html>",
+        "noQuirksBodyHtml": "<math><mi><malignmark></malignmark></mi></math>"
+      }
+    },
+    {
+      "data": "<math><mo><mglyph>",
+      "errors": [
+        "(1,6) expected-doctype-but-got-start-tag",
+        "(1,18) expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "math mo": true,
+            "math mglyph": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "mo",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "children": [
+                          {
+                            "tag": "mglyph",
+                            "ns": "http://www.w3.org/1998/Math/MathML"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><math><mo><mglyph></mglyph></mo></math></body></html>",
+        "noQuirksBodyHtml": "<math><mo><mglyph></mglyph></mo></math>"
+      }
+    },
+    {
+      "data": "<math><mo><malignmark>",
+      "errors": [
+        "(1,6) expected-doctype-but-got-start-tag",
+        "(1,22) expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "math mo": true,
+            "math malignmark": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "mo",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "children": [
+                          {
+                            "tag": "malignmark",
+                            "ns": "http://www.w3.org/1998/Math/MathML"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><math><mo><malignmark></malignmark></mo></math></body></html>",
+        "noQuirksBodyHtml": "<math><mo><malignmark></malignmark></mo></math>"
+      }
+    },
+    {
+      "data": "<math><mn><mglyph>",
+      "errors": [
+        "(1,6) expected-doctype-but-got-start-tag",
+        "(1,18) expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "math mn": true,
+            "math mglyph": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "mn",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "children": [
+                          {
+                            "tag": "mglyph",
+                            "ns": "http://www.w3.org/1998/Math/MathML"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><math><mn><mglyph></mglyph></mn></math></body></html>",
+        "noQuirksBodyHtml": "<math><mn><mglyph></mglyph></mn></math>"
+      }
+    },
+    {
+      "data": "<math><mn><malignmark>",
+      "errors": [
+        "(1,6) expected-doctype-but-got-start-tag",
+        "(1,22) expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "math mn": true,
+            "math malignmark": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "mn",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "children": [
+                          {
+                            "tag": "malignmark",
+                            "ns": "http://www.w3.org/1998/Math/MathML"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><math><mn><malignmark></malignmark></mn></math></body></html>",
+        "noQuirksBodyHtml": "<math><mn><malignmark></malignmark></mn></math>"
+      }
+    },
+    {
+      "data": "<math><ms><mglyph>",
+      "errors": [
+        "(1,6) expected-doctype-but-got-start-tag",
+        "(1,18) expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "math ms": true,
+            "math mglyph": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "ms",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "children": [
+                          {
+                            "tag": "mglyph",
+                            "ns": "http://www.w3.org/1998/Math/MathML"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><math><ms><mglyph></mglyph></ms></math></body></html>",
+        "noQuirksBodyHtml": "<math><ms><mglyph></mglyph></ms></math>"
+      }
+    },
+    {
+      "data": "<math><ms><malignmark>",
+      "errors": [
+        "(1,6) expected-doctype-but-got-start-tag",
+        "(1,22) expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "math ms": true,
+            "math malignmark": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "ms",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "children": [
+                          {
+                            "tag": "malignmark",
+                            "ns": "http://www.w3.org/1998/Math/MathML"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><math><ms><malignmark></malignmark></ms></math></body></html>",
+        "noQuirksBodyHtml": "<math><ms><malignmark></malignmark></ms></math>"
+      }
+    },
+    {
+      "data": "<math><mtext><mglyph>",
+      "errors": [
+        "(1,6) expected-doctype-but-got-start-tag",
+        "(1,21) expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "math mtext": true,
+            "math mglyph": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "mtext",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "children": [
+                          {
+                            "tag": "mglyph",
+                            "ns": "http://www.w3.org/1998/Math/MathML"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><math><mtext><mglyph></mglyph></mtext></math></body></html>",
+        "noQuirksBodyHtml": "<math><mtext><mglyph></mglyph></mtext></math>"
+      }
+    },
+    {
+      "data": "<math><mtext><malignmark>",
+      "errors": [
+        "(1,6) expected-doctype-but-got-start-tag",
+        "(1,25) expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "math mtext": true,
+            "math malignmark": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "mtext",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "children": [
+                          {
+                            "tag": "malignmark",
+                            "ns": "http://www.w3.org/1998/Math/MathML"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><math><mtext><malignmark></malignmark></mtext></math></body></html>",
+        "noQuirksBodyHtml": "<math><mtext><malignmark></malignmark></mtext></math>"
+      }
+    },
+    {
+      "data": "<math><annotation-xml><svg></svg></annotation-xml><mi>",
+      "errors": [
+        "(1,6) expected-doctype-but-got-start-tag",
+        "(1,54) expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "math annotation-xml": true,
+            "svg svg": true,
+            "math mi": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "annotation-xml",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "children": [
+                          {
+                            "tag": "svg",
+                            "ns": "http://www.w3.org/2000/svg"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "mi",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><math><annotation-xml><svg></svg></annotation-xml><mi></mi></math></body></html>",
+        "noQuirksBodyHtml": "<math><annotation-xml><svg></svg></annotation-xml><mi></mi></math>"
+      }
+    },
+    {
+      "data": "<math><annotation-xml><svg><foreignObject><div><math><mi></mi></math><span></span></div></foreignObject><path></path></svg></annotation-xml><mi>",
+      "errors": [
+        "(1,6) expected-doctype-but-got-start-tag",
+        "(1,144) expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "math annotation-xml": true,
+            "svg svg": true,
+            "svg foreignObject": true,
+            "div": true,
+            "math mi": true,
+            "span": true,
+            "svg path": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "annotation-xml",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "children": [
+                          {
+                            "tag": "svg",
+                            "ns": "http://www.w3.org/2000/svg",
+                            "children": [
+                              {
+                                "tag": "foreignObject",
+                                "ns": "http://www.w3.org/2000/svg",
+                                "children": [
+                                  {
+                                    "tag": "div",
+                                    "children": [
+                                      {
+                                        "tag": "math",
+                                        "ns": "http://www.w3.org/1998/Math/MathML",
+                                        "children": [
+                                          {
+                                            "tag": "mi",
+                                            "ns": "http://www.w3.org/1998/Math/MathML"
+                                          }
+                                        ]
+                                      },
+                                      {
+                                        "tag": "span"
+                                      }
+                                    ]
+                                  }
+                                ]
+                              },
+                              {
+                                "tag": "path",
+                                "ns": "http://www.w3.org/2000/svg"
+                              }
+                            ]
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "mi",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><math><annotation-xml><svg><foreignObject><div><math><mi></mi></math><span></span></div></foreignObject><path></path></svg></annotation-xml><mi></mi></math></body></html>",
+        "noQuirksBodyHtml": "<math><annotation-xml><svg><foreignObject><div><math><mi></mi></math><span></span></div></foreignObject><path></path></svg></annotation-xml><mi></mi></math>"
+      }
+    },
+    {
+      "data": "<math><annotation-xml><svg><foreignObject><math><mi><svg></svg></mi><mo></mo></math><span></span></foreignObject><path></path></svg></annotation-xml><mi>",
+      "errors": [
+        "(1,6) expected-doctype-but-got-start-tag",
+        "(1,153) expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "math annotation-xml": true,
+            "svg svg": true,
+            "svg foreignObject": true,
+            "math mi": true,
+            "math mo": true,
+            "span": true,
+            "svg path": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "annotation-xml",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "children": [
+                          {
+                            "tag": "svg",
+                            "ns": "http://www.w3.org/2000/svg",
+                            "children": [
+                              {
+                                "tag": "foreignObject",
+                                "ns": "http://www.w3.org/2000/svg",
+                                "children": [
+                                  {
+                                    "tag": "math",
+                                    "ns": "http://www.w3.org/1998/Math/MathML",
+                                    "children": [
+                                      {
+                                        "tag": "mi",
+                                        "ns": "http://www.w3.org/1998/Math/MathML",
+                                        "children": [
+                                          {
+                                            "tag": "svg",
+                                            "ns": "http://www.w3.org/2000/svg"
+                                          }
+                                        ]
+                                      },
+                                      {
+                                        "tag": "mo",
+                                        "ns": "http://www.w3.org/1998/Math/MathML"
+                                      }
+                                    ]
+                                  },
+                                  {
+                                    "tag": "span"
+                                  }
+                                ]
+                              },
+                              {
+                                "tag": "path",
+                                "ns": "http://www.w3.org/2000/svg"
+                              }
+                            ]
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "mi",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><math><annotation-xml><svg><foreignObject><math><mi><svg></svg></mi><mo></mo></math><span></span></foreignObject><path></path></svg></annotation-xml><mi></mi></math></body></html>",
+        "noQuirksBodyHtml": "<math><annotation-xml><svg><foreignObject><math><mi><svg></svg></mi><mo></mo></math><span></span></foreignObject><path></path></svg></annotation-xml><mi></mi></math>"
+      }
+    }
+  ],
+  "tests11.dat": [
+    {
+      "data": "<!DOCTYPE html><body><svg attributeName='' attributeType='' baseFrequency='' baseProfile='' calcMode='' clipPathUnits='' diffuseConstant='' edgeMode='' filterUnits='' glyphRef='' gradientTransform='' gradientUnits='' kernelMatrix='' kernelUnitLength='' keyPoints='' keySplines='' keyTimes='' lengthAdjust='' limitingConeAngle='' markerHeight='' markerUnits='' markerWidth='' maskContentUnits='' maskUnits='' numOctaves='' pathLength='' patternContentUnits='' patternTransform='' patternUnits='' pointsAtX='' pointsAtY='' pointsAtZ='' preserveAlpha='' preserveAspectRatio='' primitiveUnits='' refX='' refY='' repeatCount='' repeatDur='' requiredExtensions='' requiredFeatures='' specularConstant='' specularExponent='' spreadMethod='' startOffset='' stdDeviation='' stitchTiles='' surfaceScale='' systemLanguage='' tableValues='' targetX='' targetY='' textLength='' viewBox='' viewTarget='' xChannelSelector='' yChannelSelector='' zoomAndPan=''></svg>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "attrs": [
+                      {
+                        "name": "attributeName",
+                        "value": ""
+                      },
+                      {
+                        "name": "attributeType",
+                        "value": ""
+                      },
+                      {
+                        "name": "baseFrequency",
+                        "value": ""
+                      },
+                      {
+                        "name": "baseProfile",
+                        "value": ""
+                      },
+                      {
+                        "name": "calcMode",
+                        "value": ""
+                      },
+                      {
+                        "name": "clipPathUnits",
+                        "value": ""
+                      },
+                      {
+                        "name": "diffuseConstant",
+                        "value": ""
+                      },
+                      {
+                        "name": "edgeMode",
+                        "value": ""
+                      },
+                      {
+                        "name": "filterUnits",
+                        "value": ""
+                      },
+                      {
+                        "name": "glyphRef",
+                        "value": ""
+                      },
+                      {
+                        "name": "gradientTransform",
+                        "value": ""
+                      },
+                      {
+                        "name": "gradientUnits",
+                        "value": ""
+                      },
+                      {
+                        "name": "kernelMatrix",
+                        "value": ""
+                      },
+                      {
+                        "name": "kernelUnitLength",
+                        "value": ""
+                      },
+                      {
+                        "name": "keyPoints",
+                        "value": ""
+                      },
+                      {
+                        "name": "keySplines",
+                        "value": ""
+                      },
+                      {
+                        "name": "keyTimes",
+                        "value": ""
+                      },
+                      {
+                        "name": "lengthAdjust",
+                        "value": ""
+                      },
+                      {
+                        "name": "limitingConeAngle",
+                        "value": ""
+                      },
+                      {
+                        "name": "markerHeight",
+                        "value": ""
+                      },
+                      {
+                        "name": "markerUnits",
+                        "value": ""
+                      },
+                      {
+                        "name": "markerWidth",
+                        "value": ""
+                      },
+                      {
+                        "name": "maskContentUnits",
+                        "value": ""
+                      },
+                      {
+                        "name": "maskUnits",
+                        "value": ""
+                      },
+                      {
+                        "name": "numOctaves",
+                        "value": ""
+                      },
+                      {
+                        "name": "pathLength",
+                        "value": ""
+                      },
+                      {
+                        "name": "patternContentUnits",
+                        "value": ""
+                      },
+                      {
+                        "name": "patternTransform",
+                        "value": ""
+                      },
+                      {
+                        "name": "patternUnits",
+                        "value": ""
+                      },
+                      {
+                        "name": "pointsAtX",
+                        "value": ""
+                      },
+                      {
+                        "name": "pointsAtY",
+                        "value": ""
+                      },
+                      {
+                        "name": "pointsAtZ",
+                        "value": ""
+                      },
+                      {
+                        "name": "preserveAlpha",
+                        "value": ""
+                      },
+                      {
+                        "name": "preserveAspectRatio",
+                        "value": ""
+                      },
+                      {
+                        "name": "primitiveUnits",
+                        "value": ""
+                      },
+                      {
+                        "name": "refX",
+                        "value": ""
+                      },
+                      {
+                        "name": "refY",
+                        "value": ""
+                      },
+                      {
+                        "name": "repeatCount",
+                        "value": ""
+                      },
+                      {
+                        "name": "repeatDur",
+                        "value": ""
+                      },
+                      {
+                        "name": "requiredExtensions",
+                        "value": ""
+                      },
+                      {
+                        "name": "requiredFeatures",
+                        "value": ""
+                      },
+                      {
+                        "name": "specularConstant",
+                        "value": ""
+                      },
+                      {
+                        "name": "specularExponent",
+                        "value": ""
+                      },
+                      {
+                        "name": "spreadMethod",
+                        "value": ""
+                      },
+                      {
+                        "name": "startOffset",
+                        "value": ""
+                      },
+                      {
+                        "name": "stdDeviation",
+                        "value": ""
+                      },
+                      {
+                        "name": "stitchTiles",
+                        "value": ""
+                      },
+                      {
+                        "name": "surfaceScale",
+                        "value": ""
+                      },
+                      {
+                        "name": "systemLanguage",
+                        "value": ""
+                      },
+                      {
+                        "name": "tableValues",
+                        "value": ""
+                      },
+                      {
+                        "name": "targetX",
+                        "value": ""
+                      },
+                      {
+                        "name": "targetY",
+                        "value": ""
+                      },
+                      {
+                        "name": "textLength",
+                        "value": ""
+                      },
+                      {
+                        "name": "viewBox",
+                        "value": ""
+                      },
+                      {
+                        "name": "viewTarget",
+                        "value": ""
+                      },
+                      {
+                        "name": "xChannelSelector",
+                        "value": ""
+                      },
+                      {
+                        "name": "yChannelSelector",
+                        "value": ""
+                      },
+                      {
+                        "name": "zoomAndPan",
+                        "value": ""
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><svg attributeName=\"\" attributeType=\"\" baseFrequency=\"\" baseProfile=\"\" calcMode=\"\" clipPathUnits=\"\" diffuseConstant=\"\" edgeMode=\"\" filterUnits=\"\" glyphRef=\"\" gradientTransform=\"\" gradientUnits=\"\" kernelMatrix=\"\" kernelUnitLength=\"\" keyPoints=\"\" keySplines=\"\" keyTimes=\"\" lengthAdjust=\"\" limitingConeAngle=\"\" markerHeight=\"\" markerUnits=\"\" markerWidth=\"\" maskContentUnits=\"\" maskUnits=\"\" numOctaves=\"\" pathLength=\"\" patternContentUnits=\"\" patternTransform=\"\" patternUnits=\"\" pointsAtX=\"\" pointsAtY=\"\" pointsAtZ=\"\" preserveAlpha=\"\" preserveAspectRatio=\"\" primitiveUnits=\"\" refX=\"\" refY=\"\" repeatCount=\"\" repeatDur=\"\" requiredExtensions=\"\" requiredFeatures=\"\" specularConstant=\"\" specularExponent=\"\" spreadMethod=\"\" startOffset=\"\" stdDeviation=\"\" stitchTiles=\"\" surfaceScale=\"\" systemLanguage=\"\" tableValues=\"\" targetX=\"\" targetY=\"\" textLength=\"\" viewBox=\"\" viewTarget=\"\" xChannelSelector=\"\" yChannelSelector=\"\" zoomAndPan=\"\"></svg></body></html>",
+        "noQuirksBodyHtml": "<svg attributeName=\"\" attributeType=\"\" baseFrequency=\"\" baseProfile=\"\" calcMode=\"\" clipPathUnits=\"\" diffuseConstant=\"\" edgeMode=\"\" filterUnits=\"\" glyphRef=\"\" gradientTransform=\"\" gradientUnits=\"\" kernelMatrix=\"\" kernelUnitLength=\"\" keyPoints=\"\" keySplines=\"\" keyTimes=\"\" lengthAdjust=\"\" limitingConeAngle=\"\" markerHeight=\"\" markerUnits=\"\" markerWidth=\"\" maskContentUnits=\"\" maskUnits=\"\" numOctaves=\"\" pathLength=\"\" patternContentUnits=\"\" patternTransform=\"\" patternUnits=\"\" pointsAtX=\"\" pointsAtY=\"\" pointsAtZ=\"\" preserveAlpha=\"\" preserveAspectRatio=\"\" primitiveUnits=\"\" refX=\"\" refY=\"\" repeatCount=\"\" repeatDur=\"\" requiredExtensions=\"\" requiredFeatures=\"\" specularConstant=\"\" specularExponent=\"\" spreadMethod=\"\" startOffset=\"\" stdDeviation=\"\" stitchTiles=\"\" surfaceScale=\"\" systemLanguage=\"\" tableValues=\"\" targetX=\"\" targetY=\"\" textLength=\"\" viewBox=\"\" viewTarget=\"\" xChannelSelector=\"\" yChannelSelector=\"\" zoomAndPan=\"\"></svg>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><BODY><SVG ATTRIBUTENAME='' ATTRIBUTETYPE='' BASEFREQUENCY='' BASEPROFILE='' CALCMODE='' CLIPPATHUNITS='' DIFFUSECONSTANT='' EDGEMODE='' FILTERUNITS='' GLYPHREF='' GRADIENTTRANSFORM='' GRADIENTUNITS='' KERNELMATRIX='' KERNELUNITLENGTH='' KEYPOINTS='' KEYSPLINES='' KEYTIMES='' LENGTHADJUST='' LIMITINGCONEANGLE='' MARKERHEIGHT='' MARKERUNITS='' MARKERWIDTH='' MASKCONTENTUNITS='' MASKUNITS='' NUMOCTAVES='' PATHLENGTH='' PATTERNCONTENTUNITS='' PATTERNTRANSFORM='' PATTERNUNITS='' POINTSATX='' POINTSATY='' POINTSATZ='' PRESERVEALPHA='' PRESERVEASPECTRATIO='' PRIMITIVEUNITS='' REFX='' REFY='' REPEATCOUNT='' REPEATDUR='' REQUIREDEXTENSIONS='' REQUIREDFEATURES='' SPECULARCONSTANT='' SPECULAREXPONENT='' SPREADMETHOD='' STARTOFFSET='' STDDEVIATION='' STITCHTILES='' SURFACESCALE='' SYSTEMLANGUAGE='' TABLEVALUES='' TARGETX='' TARGETY='' TEXTLENGTH='' VIEWBOX='' VIEWTARGET='' XCHANNELSELECTOR='' YCHANNELSELECTOR='' ZOOMANDPAN=''></SVG>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "attrs": [
+                      {
+                        "name": "attributeName",
+                        "value": ""
+                      },
+                      {
+                        "name": "attributeType",
+                        "value": ""
+                      },
+                      {
+                        "name": "baseFrequency",
+                        "value": ""
+                      },
+                      {
+                        "name": "baseProfile",
+                        "value": ""
+                      },
+                      {
+                        "name": "calcMode",
+                        "value": ""
+                      },
+                      {
+                        "name": "clipPathUnits",
+                        "value": ""
+                      },
+                      {
+                        "name": "diffuseConstant",
+                        "value": ""
+                      },
+                      {
+                        "name": "edgeMode",
+                        "value": ""
+                      },
+                      {
+                        "name": "filterUnits",
+                        "value": ""
+                      },
+                      {
+                        "name": "glyphRef",
+                        "value": ""
+                      },
+                      {
+                        "name": "gradientTransform",
+                        "value": ""
+                      },
+                      {
+                        "name": "gradientUnits",
+                        "value": ""
+                      },
+                      {
+                        "name": "kernelMatrix",
+                        "value": ""
+                      },
+                      {
+                        "name": "kernelUnitLength",
+                        "value": ""
+                      },
+                      {
+                        "name": "keyPoints",
+                        "value": ""
+                      },
+                      {
+                        "name": "keySplines",
+                        "value": ""
+                      },
+                      {
+                        "name": "keyTimes",
+                        "value": ""
+                      },
+                      {
+                        "name": "lengthAdjust",
+                        "value": ""
+                      },
+                      {
+                        "name": "limitingConeAngle",
+                        "value": ""
+                      },
+                      {
+                        "name": "markerHeight",
+                        "value": ""
+                      },
+                      {
+                        "name": "markerUnits",
+                        "value": ""
+                      },
+                      {
+                        "name": "markerWidth",
+                        "value": ""
+                      },
+                      {
+                        "name": "maskContentUnits",
+                        "value": ""
+                      },
+                      {
+                        "name": "maskUnits",
+                        "value": ""
+                      },
+                      {
+                        "name": "numOctaves",
+                        "value": ""
+                      },
+                      {
+                        "name": "pathLength",
+                        "value": ""
+                      },
+                      {
+                        "name": "patternContentUnits",
+                        "value": ""
+                      },
+                      {
+                        "name": "patternTransform",
+                        "value": ""
+                      },
+                      {
+                        "name": "patternUnits",
+                        "value": ""
+                      },
+                      {
+                        "name": "pointsAtX",
+                        "value": ""
+                      },
+                      {
+                        "name": "pointsAtY",
+                        "value": ""
+                      },
+                      {
+                        "name": "pointsAtZ",
+                        "value": ""
+                      },
+                      {
+                        "name": "preserveAlpha",
+                        "value": ""
+                      },
+                      {
+                        "name": "preserveAspectRatio",
+                        "value": ""
+                      },
+                      {
+                        "name": "primitiveUnits",
+                        "value": ""
+                      },
+                      {
+                        "name": "refX",
+                        "value": ""
+                      },
+                      {
+                        "name": "refY",
+                        "value": ""
+                      },
+                      {
+                        "name": "repeatCount",
+                        "value": ""
+                      },
+                      {
+                        "name": "repeatDur",
+                        "value": ""
+                      },
+                      {
+                        "name": "requiredExtensions",
+                        "value": ""
+                      },
+                      {
+                        "name": "requiredFeatures",
+                        "value": ""
+                      },
+                      {
+                        "name": "specularConstant",
+                        "value": ""
+                      },
+                      {
+                        "name": "specularExponent",
+                        "value": ""
+                      },
+                      {
+                        "name": "spreadMethod",
+                        "value": ""
+                      },
+                      {
+                        "name": "startOffset",
+                        "value": ""
+                      },
+                      {
+                        "name": "stdDeviation",
+                        "value": ""
+                      },
+                      {
+                        "name": "stitchTiles",
+                        "value": ""
+                      },
+                      {
+                        "name": "surfaceScale",
+                        "value": ""
+                      },
+                      {
+                        "name": "systemLanguage",
+                        "value": ""
+                      },
+                      {
+                        "name": "tableValues",
+                        "value": ""
+                      },
+                      {
+                        "name": "targetX",
+                        "value": ""
+                      },
+                      {
+                        "name": "targetY",
+                        "value": ""
+                      },
+                      {
+                        "name": "textLength",
+                        "value": ""
+                      },
+                      {
+                        "name": "viewBox",
+                        "value": ""
+                      },
+                      {
+                        "name": "viewTarget",
+                        "value": ""
+                      },
+                      {
+                        "name": "xChannelSelector",
+                        "value": ""
+                      },
+                      {
+                        "name": "yChannelSelector",
+                        "value": ""
+                      },
+                      {
+                        "name": "zoomAndPan",
+                        "value": ""
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><svg attributeName=\"\" attributeType=\"\" baseFrequency=\"\" baseProfile=\"\" calcMode=\"\" clipPathUnits=\"\" diffuseConstant=\"\" edgeMode=\"\" filterUnits=\"\" glyphRef=\"\" gradientTransform=\"\" gradientUnits=\"\" kernelMatrix=\"\" kernelUnitLength=\"\" keyPoints=\"\" keySplines=\"\" keyTimes=\"\" lengthAdjust=\"\" limitingConeAngle=\"\" markerHeight=\"\" markerUnits=\"\" markerWidth=\"\" maskContentUnits=\"\" maskUnits=\"\" numOctaves=\"\" pathLength=\"\" patternContentUnits=\"\" patternTransform=\"\" patternUnits=\"\" pointsAtX=\"\" pointsAtY=\"\" pointsAtZ=\"\" preserveAlpha=\"\" preserveAspectRatio=\"\" primitiveUnits=\"\" refX=\"\" refY=\"\" repeatCount=\"\" repeatDur=\"\" requiredExtensions=\"\" requiredFeatures=\"\" specularConstant=\"\" specularExponent=\"\" spreadMethod=\"\" startOffset=\"\" stdDeviation=\"\" stitchTiles=\"\" surfaceScale=\"\" systemLanguage=\"\" tableValues=\"\" targetX=\"\" targetY=\"\" textLength=\"\" viewBox=\"\" viewTarget=\"\" xChannelSelector=\"\" yChannelSelector=\"\" zoomAndPan=\"\"></svg></body></html>",
+        "noQuirksBodyHtml": "<svg attributeName=\"\" attributeType=\"\" baseFrequency=\"\" baseProfile=\"\" calcMode=\"\" clipPathUnits=\"\" diffuseConstant=\"\" edgeMode=\"\" filterUnits=\"\" glyphRef=\"\" gradientTransform=\"\" gradientUnits=\"\" kernelMatrix=\"\" kernelUnitLength=\"\" keyPoints=\"\" keySplines=\"\" keyTimes=\"\" lengthAdjust=\"\" limitingConeAngle=\"\" markerHeight=\"\" markerUnits=\"\" markerWidth=\"\" maskContentUnits=\"\" maskUnits=\"\" numOctaves=\"\" pathLength=\"\" patternContentUnits=\"\" patternTransform=\"\" patternUnits=\"\" pointsAtX=\"\" pointsAtY=\"\" pointsAtZ=\"\" preserveAlpha=\"\" preserveAspectRatio=\"\" primitiveUnits=\"\" refX=\"\" refY=\"\" repeatCount=\"\" repeatDur=\"\" requiredExtensions=\"\" requiredFeatures=\"\" specularConstant=\"\" specularExponent=\"\" spreadMethod=\"\" startOffset=\"\" stdDeviation=\"\" stitchTiles=\"\" surfaceScale=\"\" systemLanguage=\"\" tableValues=\"\" targetX=\"\" targetY=\"\" textLength=\"\" viewBox=\"\" viewTarget=\"\" xChannelSelector=\"\" yChannelSelector=\"\" zoomAndPan=\"\"></svg>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><svg attributename='' attributetype='' basefrequency='' baseprofile='' calcmode='' clippathunits='' diffuseconstant='' edgemode='' filterunits='' filterres='' glyphref='' gradienttransform='' gradientunits='' kernelmatrix='' kernelunitlength='' keypoints='' keysplines='' keytimes='' lengthadjust='' limitingconeangle='' markerheight='' markerunits='' markerwidth='' maskcontentunits='' maskunits='' numoctaves='' pathlength='' patterncontentunits='' patterntransform='' patternunits='' pointsatx='' pointsaty='' pointsatz='' preservealpha='' preserveaspectratio='' primitiveunits='' refx='' refy='' repeatcount='' repeatdur='' requiredextensions='' requiredfeatures='' specularconstant='' specularexponent='' spreadmethod='' startoffset='' stddeviation='' stitchtiles='' surfacescale='' systemlanguage='' tablevalues='' targetx='' targety='' textlength='' viewbox='' viewtarget='' xchannelselector='' ychannelselector='' zoomandpan=''></svg>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "attrs": [
+                      {
+                        "name": "attributeName",
+                        "value": ""
+                      },
+                      {
+                        "name": "attributeType",
+                        "value": ""
+                      },
+                      {
+                        "name": "baseFrequency",
+                        "value": ""
+                      },
+                      {
+                        "name": "baseProfile",
+                        "value": ""
+                      },
+                      {
+                        "name": "calcMode",
+                        "value": ""
+                      },
+                      {
+                        "name": "clipPathUnits",
+                        "value": ""
+                      },
+                      {
+                        "name": "diffuseConstant",
+                        "value": ""
+                      },
+                      {
+                        "name": "edgeMode",
+                        "value": ""
+                      },
+                      {
+                        "name": "filterUnits",
+                        "value": ""
+                      },
+                      {
+                        "name": "filterres",
+                        "value": ""
+                      },
+                      {
+                        "name": "glyphRef",
+                        "value": ""
+                      },
+                      {
+                        "name": "gradientTransform",
+                        "value": ""
+                      },
+                      {
+                        "name": "gradientUnits",
+                        "value": ""
+                      },
+                      {
+                        "name": "kernelMatrix",
+                        "value": ""
+                      },
+                      {
+                        "name": "kernelUnitLength",
+                        "value": ""
+                      },
+                      {
+                        "name": "keyPoints",
+                        "value": ""
+                      },
+                      {
+                        "name": "keySplines",
+                        "value": ""
+                      },
+                      {
+                        "name": "keyTimes",
+                        "value": ""
+                      },
+                      {
+                        "name": "lengthAdjust",
+                        "value": ""
+                      },
+                      {
+                        "name": "limitingConeAngle",
+                        "value": ""
+                      },
+                      {
+                        "name": "markerHeight",
+                        "value": ""
+                      },
+                      {
+                        "name": "markerUnits",
+                        "value": ""
+                      },
+                      {
+                        "name": "markerWidth",
+                        "value": ""
+                      },
+                      {
+                        "name": "maskContentUnits",
+                        "value": ""
+                      },
+                      {
+                        "name": "maskUnits",
+                        "value": ""
+                      },
+                      {
+                        "name": "numOctaves",
+                        "value": ""
+                      },
+                      {
+                        "name": "pathLength",
+                        "value": ""
+                      },
+                      {
+                        "name": "patternContentUnits",
+                        "value": ""
+                      },
+                      {
+                        "name": "patternTransform",
+                        "value": ""
+                      },
+                      {
+                        "name": "patternUnits",
+                        "value": ""
+                      },
+                      {
+                        "name": "pointsAtX",
+                        "value": ""
+                      },
+                      {
+                        "name": "pointsAtY",
+                        "value": ""
+                      },
+                      {
+                        "name": "pointsAtZ",
+                        "value": ""
+                      },
+                      {
+                        "name": "preserveAlpha",
+                        "value": ""
+                      },
+                      {
+                        "name": "preserveAspectRatio",
+                        "value": ""
+                      },
+                      {
+                        "name": "primitiveUnits",
+                        "value": ""
+                      },
+                      {
+                        "name": "refX",
+                        "value": ""
+                      },
+                      {
+                        "name": "refY",
+                        "value": ""
+                      },
+                      {
+                        "name": "repeatCount",
+                        "value": ""
+                      },
+                      {
+                        "name": "repeatDur",
+                        "value": ""
+                      },
+                      {
+                        "name": "requiredExtensions",
+                        "value": ""
+                      },
+                      {
+                        "name": "requiredFeatures",
+                        "value": ""
+                      },
+                      {
+                        "name": "specularConstant",
+                        "value": ""
+                      },
+                      {
+                        "name": "specularExponent",
+                        "value": ""
+                      },
+                      {
+                        "name": "spreadMethod",
+                        "value": ""
+                      },
+                      {
+                        "name": "startOffset",
+                        "value": ""
+                      },
+                      {
+                        "name": "stdDeviation",
+                        "value": ""
+                      },
+                      {
+                        "name": "stitchTiles",
+                        "value": ""
+                      },
+                      {
+                        "name": "surfaceScale",
+                        "value": ""
+                      },
+                      {
+                        "name": "systemLanguage",
+                        "value": ""
+                      },
+                      {
+                        "name": "tableValues",
+                        "value": ""
+                      },
+                      {
+                        "name": "targetX",
+                        "value": ""
+                      },
+                      {
+                        "name": "targetY",
+                        "value": ""
+                      },
+                      {
+                        "name": "textLength",
+                        "value": ""
+                      },
+                      {
+                        "name": "viewBox",
+                        "value": ""
+                      },
+                      {
+                        "name": "viewTarget",
+                        "value": ""
+                      },
+                      {
+                        "name": "xChannelSelector",
+                        "value": ""
+                      },
+                      {
+                        "name": "yChannelSelector",
+                        "value": ""
+                      },
+                      {
+                        "name": "zoomAndPan",
+                        "value": ""
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><svg attributeName=\"\" attributeType=\"\" baseFrequency=\"\" baseProfile=\"\" calcMode=\"\" clipPathUnits=\"\" diffuseConstant=\"\" edgeMode=\"\" filterUnits=\"\" filterres=\"\" glyphRef=\"\" gradientTransform=\"\" gradientUnits=\"\" kernelMatrix=\"\" kernelUnitLength=\"\" keyPoints=\"\" keySplines=\"\" keyTimes=\"\" lengthAdjust=\"\" limitingConeAngle=\"\" markerHeight=\"\" markerUnits=\"\" markerWidth=\"\" maskContentUnits=\"\" maskUnits=\"\" numOctaves=\"\" pathLength=\"\" patternContentUnits=\"\" patternTransform=\"\" patternUnits=\"\" pointsAtX=\"\" pointsAtY=\"\" pointsAtZ=\"\" preserveAlpha=\"\" preserveAspectRatio=\"\" primitiveUnits=\"\" refX=\"\" refY=\"\" repeatCount=\"\" repeatDur=\"\" requiredExtensions=\"\" requiredFeatures=\"\" specularConstant=\"\" specularExponent=\"\" spreadMethod=\"\" startOffset=\"\" stdDeviation=\"\" stitchTiles=\"\" surfaceScale=\"\" systemLanguage=\"\" tableValues=\"\" targetX=\"\" targetY=\"\" textLength=\"\" viewBox=\"\" viewTarget=\"\" xChannelSelector=\"\" yChannelSelector=\"\" zoomAndPan=\"\"></svg></body></html>",
+        "noQuirksBodyHtml": "<svg attributeName=\"\" attributeType=\"\" baseFrequency=\"\" baseProfile=\"\" calcMode=\"\" clipPathUnits=\"\" diffuseConstant=\"\" edgeMode=\"\" filterUnits=\"\" filterres=\"\" glyphRef=\"\" gradientTransform=\"\" gradientUnits=\"\" kernelMatrix=\"\" kernelUnitLength=\"\" keyPoints=\"\" keySplines=\"\" keyTimes=\"\" lengthAdjust=\"\" limitingConeAngle=\"\" markerHeight=\"\" markerUnits=\"\" markerWidth=\"\" maskContentUnits=\"\" maskUnits=\"\" numOctaves=\"\" pathLength=\"\" patternContentUnits=\"\" patternTransform=\"\" patternUnits=\"\" pointsAtX=\"\" pointsAtY=\"\" pointsAtZ=\"\" preserveAlpha=\"\" preserveAspectRatio=\"\" primitiveUnits=\"\" refX=\"\" refY=\"\" repeatCount=\"\" repeatDur=\"\" requiredExtensions=\"\" requiredFeatures=\"\" specularConstant=\"\" specularExponent=\"\" spreadMethod=\"\" startOffset=\"\" stdDeviation=\"\" stitchTiles=\"\" surfaceScale=\"\" systemLanguage=\"\" tableValues=\"\" targetX=\"\" targetY=\"\" textLength=\"\" viewBox=\"\" viewTarget=\"\" xChannelSelector=\"\" yChannelSelector=\"\" zoomAndPan=\"\"></svg>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><math attributeName='' attributeType='' baseFrequency='' baseProfile='' calcMode='' clipPathUnits='' diffuseConstant='' edgeMode='' filterUnits='' glyphRef='' gradientTransform='' gradientUnits='' kernelMatrix='' kernelUnitLength='' keyPoints='' keySplines='' keyTimes='' lengthAdjust='' limitingConeAngle='' markerHeight='' markerUnits='' markerWidth='' maskContentUnits='' maskUnits='' numOctaves='' pathLength='' patternContentUnits='' patternTransform='' patternUnits='' pointsAtX='' pointsAtY='' pointsAtZ='' preserveAlpha='' preserveAspectRatio='' primitiveUnits='' refX='' refY='' repeatCount='' repeatDur='' requiredExtensions='' requiredFeatures='' specularConstant='' specularExponent='' spreadMethod='' startOffset='' stdDeviation='' stitchTiles='' surfaceScale='' systemLanguage='' tableValues='' targetX='' targetY='' textLength='' viewBox='' viewTarget='' xChannelSelector='' yChannelSelector='' zoomAndPan=''></math>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "attrs": [
+                      {
+                        "name": "attributename",
+                        "value": ""
+                      },
+                      {
+                        "name": "attributetype",
+                        "value": ""
+                      },
+                      {
+                        "name": "basefrequency",
+                        "value": ""
+                      },
+                      {
+                        "name": "baseprofile",
+                        "value": ""
+                      },
+                      {
+                        "name": "calcmode",
+                        "value": ""
+                      },
+                      {
+                        "name": "clippathunits",
+                        "value": ""
+                      },
+                      {
+                        "name": "diffuseconstant",
+                        "value": ""
+                      },
+                      {
+                        "name": "edgemode",
+                        "value": ""
+                      },
+                      {
+                        "name": "filterunits",
+                        "value": ""
+                      },
+                      {
+                        "name": "glyphref",
+                        "value": ""
+                      },
+                      {
+                        "name": "gradienttransform",
+                        "value": ""
+                      },
+                      {
+                        "name": "gradientunits",
+                        "value": ""
+                      },
+                      {
+                        "name": "kernelmatrix",
+                        "value": ""
+                      },
+                      {
+                        "name": "kernelunitlength",
+                        "value": ""
+                      },
+                      {
+                        "name": "keypoints",
+                        "value": ""
+                      },
+                      {
+                        "name": "keysplines",
+                        "value": ""
+                      },
+                      {
+                        "name": "keytimes",
+                        "value": ""
+                      },
+                      {
+                        "name": "lengthadjust",
+                        "value": ""
+                      },
+                      {
+                        "name": "limitingconeangle",
+                        "value": ""
+                      },
+                      {
+                        "name": "markerheight",
+                        "value": ""
+                      },
+                      {
+                        "name": "markerunits",
+                        "value": ""
+                      },
+                      {
+                        "name": "markerwidth",
+                        "value": ""
+                      },
+                      {
+                        "name": "maskcontentunits",
+                        "value": ""
+                      },
+                      {
+                        "name": "maskunits",
+                        "value": ""
+                      },
+                      {
+                        "name": "numoctaves",
+                        "value": ""
+                      },
+                      {
+                        "name": "pathlength",
+                        "value": ""
+                      },
+                      {
+                        "name": "patterncontentunits",
+                        "value": ""
+                      },
+                      {
+                        "name": "patterntransform",
+                        "value": ""
+                      },
+                      {
+                        "name": "patternunits",
+                        "value": ""
+                      },
+                      {
+                        "name": "pointsatx",
+                        "value": ""
+                      },
+                      {
+                        "name": "pointsaty",
+                        "value": ""
+                      },
+                      {
+                        "name": "pointsatz",
+                        "value": ""
+                      },
+                      {
+                        "name": "preservealpha",
+                        "value": ""
+                      },
+                      {
+                        "name": "preserveaspectratio",
+                        "value": ""
+                      },
+                      {
+                        "name": "primitiveunits",
+                        "value": ""
+                      },
+                      {
+                        "name": "refx",
+                        "value": ""
+                      },
+                      {
+                        "name": "refy",
+                        "value": ""
+                      },
+                      {
+                        "name": "repeatcount",
+                        "value": ""
+                      },
+                      {
+                        "name": "repeatdur",
+                        "value": ""
+                      },
+                      {
+                        "name": "requiredextensions",
+                        "value": ""
+                      },
+                      {
+                        "name": "requiredfeatures",
+                        "value": ""
+                      },
+                      {
+                        "name": "specularconstant",
+                        "value": ""
+                      },
+                      {
+                        "name": "specularexponent",
+                        "value": ""
+                      },
+                      {
+                        "name": "spreadmethod",
+                        "value": ""
+                      },
+                      {
+                        "name": "startoffset",
+                        "value": ""
+                      },
+                      {
+                        "name": "stddeviation",
+                        "value": ""
+                      },
+                      {
+                        "name": "stitchtiles",
+                        "value": ""
+                      },
+                      {
+                        "name": "surfacescale",
+                        "value": ""
+                      },
+                      {
+                        "name": "systemlanguage",
+                        "value": ""
+                      },
+                      {
+                        "name": "tablevalues",
+                        "value": ""
+                      },
+                      {
+                        "name": "targetx",
+                        "value": ""
+                      },
+                      {
+                        "name": "targety",
+                        "value": ""
+                      },
+                      {
+                        "name": "textlength",
+                        "value": ""
+                      },
+                      {
+                        "name": "viewbox",
+                        "value": ""
+                      },
+                      {
+                        "name": "viewtarget",
+                        "value": ""
+                      },
+                      {
+                        "name": "xchannelselector",
+                        "value": ""
+                      },
+                      {
+                        "name": "ychannelselector",
+                        "value": ""
+                      },
+                      {
+                        "name": "zoomandpan",
+                        "value": ""
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><math attributename=\"\" attributetype=\"\" basefrequency=\"\" baseprofile=\"\" calcmode=\"\" clippathunits=\"\" diffuseconstant=\"\" edgemode=\"\" filterunits=\"\" glyphref=\"\" gradienttransform=\"\" gradientunits=\"\" kernelmatrix=\"\" kernelunitlength=\"\" keypoints=\"\" keysplines=\"\" keytimes=\"\" lengthadjust=\"\" limitingconeangle=\"\" markerheight=\"\" markerunits=\"\" markerwidth=\"\" maskcontentunits=\"\" maskunits=\"\" numoctaves=\"\" pathlength=\"\" patterncontentunits=\"\" patterntransform=\"\" patternunits=\"\" pointsatx=\"\" pointsaty=\"\" pointsatz=\"\" preservealpha=\"\" preserveaspectratio=\"\" primitiveunits=\"\" refx=\"\" refy=\"\" repeatcount=\"\" repeatdur=\"\" requiredextensions=\"\" requiredfeatures=\"\" specularconstant=\"\" specularexponent=\"\" spreadmethod=\"\" startoffset=\"\" stddeviation=\"\" stitchtiles=\"\" surfacescale=\"\" systemlanguage=\"\" tablevalues=\"\" targetx=\"\" targety=\"\" textlength=\"\" viewbox=\"\" viewtarget=\"\" xchannelselector=\"\" ychannelselector=\"\" zoomandpan=\"\"></math></body></html>",
+        "noQuirksBodyHtml": "<math attributename=\"\" attributetype=\"\" basefrequency=\"\" baseprofile=\"\" calcmode=\"\" clippathunits=\"\" diffuseconstant=\"\" edgemode=\"\" filterunits=\"\" glyphref=\"\" gradienttransform=\"\" gradientunits=\"\" kernelmatrix=\"\" kernelunitlength=\"\" keypoints=\"\" keysplines=\"\" keytimes=\"\" lengthadjust=\"\" limitingconeangle=\"\" markerheight=\"\" markerunits=\"\" markerwidth=\"\" maskcontentunits=\"\" maskunits=\"\" numoctaves=\"\" pathlength=\"\" patterncontentunits=\"\" patterntransform=\"\" patternunits=\"\" pointsatx=\"\" pointsaty=\"\" pointsatz=\"\" preservealpha=\"\" preserveaspectratio=\"\" primitiveunits=\"\" refx=\"\" refy=\"\" repeatcount=\"\" repeatdur=\"\" requiredextensions=\"\" requiredfeatures=\"\" specularconstant=\"\" specularexponent=\"\" spreadmethod=\"\" startoffset=\"\" stddeviation=\"\" stitchtiles=\"\" surfacescale=\"\" systemlanguage=\"\" tablevalues=\"\" targetx=\"\" targety=\"\" textlength=\"\" viewbox=\"\" viewtarget=\"\" xchannelselector=\"\" ychannelselector=\"\" zoomandpan=\"\"></math>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><svg><altGlyph /><altGlyphDef /><altGlyphItem /><animateColor /><animateMotion /><animateTransform /><clipPath /><feBlend /><feColorMatrix /><feComponentTransfer /><feComposite /><feConvolveMatrix /><feDiffuseLighting /><feDisplacementMap /><feDistantLight /><feFlood /><feFuncA /><feFuncB /><feFuncG /><feFuncR /><feGaussianBlur /><feImage /><feMerge /><feMergeNode /><feMorphology /><feOffset /><fePointLight /><feSpecularLighting /><feSpotLight /><feTile /><feTurbulence /><foreignObject /><glyphRef /><linearGradient /><radialGradient /><textPath /></svg>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true,
+            "svg altGlyph": true,
+            "svg altGlyphDef": true,
+            "svg altGlyphItem": true,
+            "svg animateColor": true,
+            "svg animateMotion": true,
+            "svg animateTransform": true,
+            "svg clipPath": true,
+            "svg feBlend": true,
+            "svg feColorMatrix": true,
+            "svg feComponentTransfer": true,
+            "svg feComposite": true,
+            "svg feConvolveMatrix": true,
+            "svg feDiffuseLighting": true,
+            "svg feDisplacementMap": true,
+            "svg feDistantLight": true,
+            "svg feFlood": true,
+            "svg feFuncA": true,
+            "svg feFuncB": true,
+            "svg feFuncG": true,
+            "svg feFuncR": true,
+            "svg feGaussianBlur": true,
+            "svg feImage": true,
+            "svg feMerge": true,
+            "svg feMergeNode": true,
+            "svg feMorphology": true,
+            "svg feOffset": true,
+            "svg fePointLight": true,
+            "svg feSpecularLighting": true,
+            "svg feSpotLight": true,
+            "svg feTile": true,
+            "svg feTurbulence": true,
+            "svg foreignObject": true,
+            "svg glyphRef": true,
+            "svg linearGradient": true,
+            "svg radialGradient": true,
+            "svg textPath": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "tag": "altGlyph",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "altGlyphDef",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "altGlyphItem",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "animateColor",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "animateMotion",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "animateTransform",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "clipPath",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feBlend",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feColorMatrix",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feComponentTransfer",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feComposite",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feConvolveMatrix",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feDiffuseLighting",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feDisplacementMap",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feDistantLight",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feFlood",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feFuncA",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feFuncB",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feFuncG",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feFuncR",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feGaussianBlur",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feImage",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feMerge",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feMergeNode",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feMorphology",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feOffset",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "fePointLight",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feSpecularLighting",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feSpotLight",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feTile",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feTurbulence",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "foreignObject",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "glyphRef",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "linearGradient",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "radialGradient",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "textPath",
+                        "ns": "http://www.w3.org/2000/svg"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><svg><altGlyph></altGlyph><altGlyphDef></altGlyphDef><altGlyphItem></altGlyphItem><animateColor></animateColor><animateMotion></animateMotion><animateTransform></animateTransform><clipPath></clipPath><feBlend></feBlend><feColorMatrix></feColorMatrix><feComponentTransfer></feComponentTransfer><feComposite></feComposite><feConvolveMatrix></feConvolveMatrix><feDiffuseLighting></feDiffuseLighting><feDisplacementMap></feDisplacementMap><feDistantLight></feDistantLight><feFlood></feFlood><feFuncA></feFuncA><feFuncB></feFuncB><feFuncG></feFuncG><feFuncR></feFuncR><feGaussianBlur></feGaussianBlur><feImage></feImage><feMerge></feMerge><feMergeNode></feMergeNode><feMorphology></feMorphology><feOffset></feOffset><fePointLight></fePointLight><feSpecularLighting></feSpecularLighting><feSpotLight></feSpotLight><feTile></feTile><feTurbulence></feTurbulence><foreignObject></foreignObject><glyphRef></glyphRef><linearGradient></linearGradient><radialGradient></radialGradient><textPath></textPath></svg></body></html>",
+        "noQuirksBodyHtml": "<svg><altGlyph></altGlyph><altGlyphDef></altGlyphDef><altGlyphItem></altGlyphItem><animateColor></animateColor><animateMotion></animateMotion><animateTransform></animateTransform><clipPath></clipPath><feBlend></feBlend><feColorMatrix></feColorMatrix><feComponentTransfer></feComponentTransfer><feComposite></feComposite><feConvolveMatrix></feConvolveMatrix><feDiffuseLighting></feDiffuseLighting><feDisplacementMap></feDisplacementMap><feDistantLight></feDistantLight><feFlood></feFlood><feFuncA></feFuncA><feFuncB></feFuncB><feFuncG></feFuncG><feFuncR></feFuncR><feGaussianBlur></feGaussianBlur><feImage></feImage><feMerge></feMerge><feMergeNode></feMergeNode><feMorphology></feMorphology><feOffset></feOffset><fePointLight></fePointLight><feSpecularLighting></feSpecularLighting><feSpotLight></feSpotLight><feTile></feTile><feTurbulence></feTurbulence><foreignObject></foreignObject><glyphRef></glyphRef><linearGradient></linearGradient><radialGradient></radialGradient><textPath></textPath></svg>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><svg><altglyph /><altglyphdef /><altglyphitem /><animatecolor /><animatemotion /><animatetransform /><clippath /><feblend /><fecolormatrix /><fecomponenttransfer /><fecomposite /><feconvolvematrix /><fediffuselighting /><fedisplacementmap /><fedistantlight /><feflood /><fefunca /><fefuncb /><fefuncg /><fefuncr /><fegaussianblur /><feimage /><femerge /><femergenode /><femorphology /><feoffset /><fepointlight /><fespecularlighting /><fespotlight /><fetile /><feturbulence /><foreignobject /><glyphref /><lineargradient /><radialgradient /><textpath /></svg>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true,
+            "svg altGlyph": true,
+            "svg altGlyphDef": true,
+            "svg altGlyphItem": true,
+            "svg animateColor": true,
+            "svg animateMotion": true,
+            "svg animateTransform": true,
+            "svg clipPath": true,
+            "svg feBlend": true,
+            "svg feColorMatrix": true,
+            "svg feComponentTransfer": true,
+            "svg feComposite": true,
+            "svg feConvolveMatrix": true,
+            "svg feDiffuseLighting": true,
+            "svg feDisplacementMap": true,
+            "svg feDistantLight": true,
+            "svg feFlood": true,
+            "svg feFuncA": true,
+            "svg feFuncB": true,
+            "svg feFuncG": true,
+            "svg feFuncR": true,
+            "svg feGaussianBlur": true,
+            "svg feImage": true,
+            "svg feMerge": true,
+            "svg feMergeNode": true,
+            "svg feMorphology": true,
+            "svg feOffset": true,
+            "svg fePointLight": true,
+            "svg feSpecularLighting": true,
+            "svg feSpotLight": true,
+            "svg feTile": true,
+            "svg feTurbulence": true,
+            "svg foreignObject": true,
+            "svg glyphRef": true,
+            "svg linearGradient": true,
+            "svg radialGradient": true,
+            "svg textPath": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "tag": "altGlyph",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "altGlyphDef",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "altGlyphItem",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "animateColor",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "animateMotion",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "animateTransform",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "clipPath",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feBlend",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feColorMatrix",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feComponentTransfer",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feComposite",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feConvolveMatrix",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feDiffuseLighting",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feDisplacementMap",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feDistantLight",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feFlood",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feFuncA",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feFuncB",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feFuncG",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feFuncR",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feGaussianBlur",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feImage",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feMerge",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feMergeNode",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feMorphology",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feOffset",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "fePointLight",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feSpecularLighting",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feSpotLight",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feTile",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feTurbulence",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "foreignObject",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "glyphRef",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "linearGradient",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "radialGradient",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "textPath",
+                        "ns": "http://www.w3.org/2000/svg"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><svg><altGlyph></altGlyph><altGlyphDef></altGlyphDef><altGlyphItem></altGlyphItem><animateColor></animateColor><animateMotion></animateMotion><animateTransform></animateTransform><clipPath></clipPath><feBlend></feBlend><feColorMatrix></feColorMatrix><feComponentTransfer></feComponentTransfer><feComposite></feComposite><feConvolveMatrix></feConvolveMatrix><feDiffuseLighting></feDiffuseLighting><feDisplacementMap></feDisplacementMap><feDistantLight></feDistantLight><feFlood></feFlood><feFuncA></feFuncA><feFuncB></feFuncB><feFuncG></feFuncG><feFuncR></feFuncR><feGaussianBlur></feGaussianBlur><feImage></feImage><feMerge></feMerge><feMergeNode></feMergeNode><feMorphology></feMorphology><feOffset></feOffset><fePointLight></fePointLight><feSpecularLighting></feSpecularLighting><feSpotLight></feSpotLight><feTile></feTile><feTurbulence></feTurbulence><foreignObject></foreignObject><glyphRef></glyphRef><linearGradient></linearGradient><radialGradient></radialGradient><textPath></textPath></svg></body></html>",
+        "noQuirksBodyHtml": "<svg><altGlyph></altGlyph><altGlyphDef></altGlyphDef><altGlyphItem></altGlyphItem><animateColor></animateColor><animateMotion></animateMotion><animateTransform></animateTransform><clipPath></clipPath><feBlend></feBlend><feColorMatrix></feColorMatrix><feComponentTransfer></feComponentTransfer><feComposite></feComposite><feConvolveMatrix></feConvolveMatrix><feDiffuseLighting></feDiffuseLighting><feDisplacementMap></feDisplacementMap><feDistantLight></feDistantLight><feFlood></feFlood><feFuncA></feFuncA><feFuncB></feFuncB><feFuncG></feFuncG><feFuncR></feFuncR><feGaussianBlur></feGaussianBlur><feImage></feImage><feMerge></feMerge><feMergeNode></feMergeNode><feMorphology></feMorphology><feOffset></feOffset><fePointLight></fePointLight><feSpecularLighting></feSpecularLighting><feSpotLight></feSpotLight><feTile></feTile><feTurbulence></feTurbulence><foreignObject></foreignObject><glyphRef></glyphRef><linearGradient></linearGradient><radialGradient></radialGradient><textPath></textPath></svg>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><BODY><SVG><ALTGLYPH /><ALTGLYPHDEF /><ALTGLYPHITEM /><ANIMATECOLOR /><ANIMATEMOTION /><ANIMATETRANSFORM /><CLIPPATH /><FEBLEND /><FECOLORMATRIX /><FECOMPONENTTRANSFER /><FECOMPOSITE /><FECONVOLVEMATRIX /><FEDIFFUSELIGHTING /><FEDISPLACEMENTMAP /><FEDISTANTLIGHT /><FEFLOOD /><FEFUNCA /><FEFUNCB /><FEFUNCG /><FEFUNCR /><FEGAUSSIANBLUR /><FEIMAGE /><FEMERGE /><FEMERGENODE /><FEMORPHOLOGY /><FEOFFSET /><FEPOINTLIGHT /><FESPECULARLIGHTING /><FESPOTLIGHT /><FETILE /><FETURBULENCE /><FOREIGNOBJECT /><GLYPHREF /><LINEARGRADIENT /><RADIALGRADIENT /><TEXTPATH /></SVG>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true,
+            "svg altGlyph": true,
+            "svg altGlyphDef": true,
+            "svg altGlyphItem": true,
+            "svg animateColor": true,
+            "svg animateMotion": true,
+            "svg animateTransform": true,
+            "svg clipPath": true,
+            "svg feBlend": true,
+            "svg feColorMatrix": true,
+            "svg feComponentTransfer": true,
+            "svg feComposite": true,
+            "svg feConvolveMatrix": true,
+            "svg feDiffuseLighting": true,
+            "svg feDisplacementMap": true,
+            "svg feDistantLight": true,
+            "svg feFlood": true,
+            "svg feFuncA": true,
+            "svg feFuncB": true,
+            "svg feFuncG": true,
+            "svg feFuncR": true,
+            "svg feGaussianBlur": true,
+            "svg feImage": true,
+            "svg feMerge": true,
+            "svg feMergeNode": true,
+            "svg feMorphology": true,
+            "svg feOffset": true,
+            "svg fePointLight": true,
+            "svg feSpecularLighting": true,
+            "svg feSpotLight": true,
+            "svg feTile": true,
+            "svg feTurbulence": true,
+            "svg foreignObject": true,
+            "svg glyphRef": true,
+            "svg linearGradient": true,
+            "svg radialGradient": true,
+            "svg textPath": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "tag": "altGlyph",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "altGlyphDef",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "altGlyphItem",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "animateColor",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "animateMotion",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "animateTransform",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "clipPath",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feBlend",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feColorMatrix",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feComponentTransfer",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feComposite",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feConvolveMatrix",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feDiffuseLighting",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feDisplacementMap",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feDistantLight",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feFlood",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feFuncA",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feFuncB",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feFuncG",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feFuncR",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feGaussianBlur",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feImage",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feMerge",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feMergeNode",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feMorphology",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feOffset",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "fePointLight",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feSpecularLighting",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feSpotLight",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feTile",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "feTurbulence",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "foreignObject",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "glyphRef",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "linearGradient",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "radialGradient",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "textPath",
+                        "ns": "http://www.w3.org/2000/svg"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><svg><altGlyph></altGlyph><altGlyphDef></altGlyphDef><altGlyphItem></altGlyphItem><animateColor></animateColor><animateMotion></animateMotion><animateTransform></animateTransform><clipPath></clipPath><feBlend></feBlend><feColorMatrix></feColorMatrix><feComponentTransfer></feComponentTransfer><feComposite></feComposite><feConvolveMatrix></feConvolveMatrix><feDiffuseLighting></feDiffuseLighting><feDisplacementMap></feDisplacementMap><feDistantLight></feDistantLight><feFlood></feFlood><feFuncA></feFuncA><feFuncB></feFuncB><feFuncG></feFuncG><feFuncR></feFuncR><feGaussianBlur></feGaussianBlur><feImage></feImage><feMerge></feMerge><feMergeNode></feMergeNode><feMorphology></feMorphology><feOffset></feOffset><fePointLight></fePointLight><feSpecularLighting></feSpecularLighting><feSpotLight></feSpotLight><feTile></feTile><feTurbulence></feTurbulence><foreignObject></foreignObject><glyphRef></glyphRef><linearGradient></linearGradient><radialGradient></radialGradient><textPath></textPath></svg></body></html>",
+        "noQuirksBodyHtml": "<svg><altGlyph></altGlyph><altGlyphDef></altGlyphDef><altGlyphItem></altGlyphItem><animateColor></animateColor><animateMotion></animateMotion><animateTransform></animateTransform><clipPath></clipPath><feBlend></feBlend><feColorMatrix></feColorMatrix><feComponentTransfer></feComponentTransfer><feComposite></feComposite><feConvolveMatrix></feConvolveMatrix><feDiffuseLighting></feDiffuseLighting><feDisplacementMap></feDisplacementMap><feDistantLight></feDistantLight><feFlood></feFlood><feFuncA></feFuncA><feFuncB></feFuncB><feFuncG></feFuncG><feFuncR></feFuncR><feGaussianBlur></feGaussianBlur><feImage></feImage><feMerge></feMerge><feMergeNode></feMergeNode><feMorphology></feMorphology><feOffset></feOffset><fePointLight></fePointLight><feSpecularLighting></feSpecularLighting><feSpotLight></feSpotLight><feTile></feTile><feTurbulence></feTurbulence><foreignObject></foreignObject><glyphRef></glyphRef><linearGradient></linearGradient><radialGradient></radialGradient><textPath></textPath></svg>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><math><altGlyph /><altGlyphDef /><altGlyphItem /><animateColor /><animateMotion /><animateTransform /><clipPath /><feBlend /><feColorMatrix /><feComponentTransfer /><feComposite /><feConvolveMatrix /><feDiffuseLighting /><feDisplacementMap /><feDistantLight /><feFlood /><feFuncA /><feFuncB /><feFuncG /><feFuncR /><feGaussianBlur /><feImage /><feMerge /><feMergeNode /><feMorphology /><feOffset /><fePointLight /><feSpecularLighting /><feSpotLight /><feTile /><feTurbulence /><foreignObject /><glyphRef /><linearGradient /><radialGradient /><textPath /></math>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "math altglyph": true,
+            "math altglyphdef": true,
+            "math altglyphitem": true,
+            "math animatecolor": true,
+            "math animatemotion": true,
+            "math animatetransform": true,
+            "math clippath": true,
+            "math feblend": true,
+            "math fecolormatrix": true,
+            "math fecomponenttransfer": true,
+            "math fecomposite": true,
+            "math feconvolvematrix": true,
+            "math fediffuselighting": true,
+            "math fedisplacementmap": true,
+            "math fedistantlight": true,
+            "math feflood": true,
+            "math fefunca": true,
+            "math fefuncb": true,
+            "math fefuncg": true,
+            "math fefuncr": true,
+            "math fegaussianblur": true,
+            "math feimage": true,
+            "math femerge": true,
+            "math femergenode": true,
+            "math femorphology": true,
+            "math feoffset": true,
+            "math fepointlight": true,
+            "math fespecularlighting": true,
+            "math fespotlight": true,
+            "math fetile": true,
+            "math feturbulence": true,
+            "math foreignobject": true,
+            "math glyphref": true,
+            "math lineargradient": true,
+            "math radialgradient": true,
+            "math textpath": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "altglyph",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      },
+                      {
+                        "tag": "altglyphdef",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      },
+                      {
+                        "tag": "altglyphitem",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      },
+                      {
+                        "tag": "animatecolor",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      },
+                      {
+                        "tag": "animatemotion",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      },
+                      {
+                        "tag": "animatetransform",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      },
+                      {
+                        "tag": "clippath",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      },
+                      {
+                        "tag": "feblend",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      },
+                      {
+                        "tag": "fecolormatrix",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      },
+                      {
+                        "tag": "fecomponenttransfer",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      },
+                      {
+                        "tag": "fecomposite",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      },
+                      {
+                        "tag": "feconvolvematrix",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      },
+                      {
+                        "tag": "fediffuselighting",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      },
+                      {
+                        "tag": "fedisplacementmap",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      },
+                      {
+                        "tag": "fedistantlight",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      },
+                      {
+                        "tag": "feflood",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      },
+                      {
+                        "tag": "fefunca",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      },
+                      {
+                        "tag": "fefuncb",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      },
+                      {
+                        "tag": "fefuncg",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      },
+                      {
+                        "tag": "fefuncr",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      },
+                      {
+                        "tag": "fegaussianblur",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      },
+                      {
+                        "tag": "feimage",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      },
+                      {
+                        "tag": "femerge",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      },
+                      {
+                        "tag": "femergenode",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      },
+                      {
+                        "tag": "femorphology",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      },
+                      {
+                        "tag": "feoffset",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      },
+                      {
+                        "tag": "fepointlight",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      },
+                      {
+                        "tag": "fespecularlighting",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      },
+                      {
+                        "tag": "fespotlight",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      },
+                      {
+                        "tag": "fetile",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      },
+                      {
+                        "tag": "feturbulence",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      },
+                      {
+                        "tag": "foreignobject",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      },
+                      {
+                        "tag": "glyphref",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      },
+                      {
+                        "tag": "lineargradient",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      },
+                      {
+                        "tag": "radialgradient",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      },
+                      {
+                        "tag": "textpath",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><math><altglyph></altglyph><altglyphdef></altglyphdef><altglyphitem></altglyphitem><animatecolor></animatecolor><animatemotion></animatemotion><animatetransform></animatetransform><clippath></clippath><feblend></feblend><fecolormatrix></fecolormatrix><fecomponenttransfer></fecomponenttransfer><fecomposite></fecomposite><feconvolvematrix></feconvolvematrix><fediffuselighting></fediffuselighting><fedisplacementmap></fedisplacementmap><fedistantlight></fedistantlight><feflood></feflood><fefunca></fefunca><fefuncb></fefuncb><fefuncg></fefuncg><fefuncr></fefuncr><fegaussianblur></fegaussianblur><feimage></feimage><femerge></femerge><femergenode></femergenode><femorphology></femorphology><feoffset></feoffset><fepointlight></fepointlight><fespecularlighting></fespecularlighting><fespotlight></fespotlight><fetile></fetile><feturbulence></feturbulence><foreignobject></foreignobject><glyphref></glyphref><lineargradient></lineargradient><radialgradient></radialgradient><textpath></textpath></math></body></html>",
+        "noQuirksBodyHtml": "<math><altglyph></altglyph><altglyphdef></altglyphdef><altglyphitem></altglyphitem><animatecolor></animatecolor><animatemotion></animatemotion><animatetransform></animatetransform><clippath></clippath><feblend></feblend><fecolormatrix></fecolormatrix><fecomponenttransfer></fecomponenttransfer><fecomposite></fecomposite><feconvolvematrix></feconvolvematrix><fediffuselighting></fediffuselighting><fedisplacementmap></fedisplacementmap><fedistantlight></fedistantlight><feflood></feflood><fefunca></fefunca><fefuncb></fefuncb><fefuncg></fefuncg><fefuncr></fefuncr><fegaussianblur></fegaussianblur><feimage></feimage><femerge></femerge><femergenode></femergenode><femorphology></femorphology><feoffset></feoffset><fepointlight></fepointlight><fespecularlighting></fespecularlighting><fespotlight></fespotlight><fetile></fetile><feturbulence></feturbulence><foreignobject></foreignobject><glyphref></glyphref><lineargradient></lineargradient><radialgradient></radialgradient><textpath></textpath></math>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><svg><solidColor /></svg>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true,
+            "svg solidcolor": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "tag": "solidcolor",
+                        "ns": "http://www.w3.org/2000/svg"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><svg><solidcolor></solidcolor></svg></body></html>",
+        "noQuirksBodyHtml": "<svg><solidcolor></solidcolor></svg>"
+      }
+    }
+  ],
+  "tests12.dat": [
+    {
+      "data": "<!DOCTYPE html><body><p>foo<math><mtext><i>baz</i></mtext><annotation-xml><svg><desc><b>eggs</b></desc><g><foreignObject><P>spam<TABLE><tr><td><img></td></table></foreignObject></g><g>quux</g></svg></annotation-xml></math>bar",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "math math": true,
+            "math mtext": true,
+            "i": true,
+            "math annotation-xml": true,
+            "svg svg": true,
+            "svg desc": true,
+            "b": true,
+            "svg g": true,
+            "svg foreignObject": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true,
+            "img": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "text": "foo"
+                      },
+                      {
+                        "tag": "math",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "children": [
+                          {
+                            "tag": "mtext",
+                            "ns": "http://www.w3.org/1998/Math/MathML",
+                            "children": [
+                              {
+                                "tag": "i",
+                                "children": [
+                                  {
+                                    "text": "baz"
+                                  }
+                                ]
+                              }
+                            ]
+                          },
+                          {
+                            "tag": "annotation-xml",
+                            "ns": "http://www.w3.org/1998/Math/MathML",
+                            "children": [
+                              {
+                                "tag": "svg",
+                                "ns": "http://www.w3.org/2000/svg",
+                                "children": [
+                                  {
+                                    "tag": "desc",
+                                    "ns": "http://www.w3.org/2000/svg",
+                                    "children": [
+                                      {
+                                        "tag": "b",
+                                        "children": [
+                                          {
+                                            "text": "eggs"
+                                          }
+                                        ]
+                                      }
+                                    ]
+                                  },
+                                  {
+                                    "tag": "g",
+                                    "ns": "http://www.w3.org/2000/svg",
+                                    "children": [
+                                      {
+                                        "tag": "foreignObject",
+                                        "ns": "http://www.w3.org/2000/svg",
+                                        "children": [
+                                          {
+                                            "tag": "p",
+                                            "children": [
+                                              {
+                                                "text": "spam"
+                                              }
+                                            ]
+                                          },
+                                          {
+                                            "tag": "table",
+                                            "children": [
+                                              {
+                                                "tag": "tbody",
+                                                "children": [
+                                                  {
+                                                    "tag": "tr",
+                                                    "children": [
+                                                      {
+                                                        "tag": "td",
+                                                        "children": [
+                                                          {
+                                                            "tag": "img"
+                                                          }
+                                                        ]
+                                                      }
+                                                    ]
+                                                  }
+                                                ]
+                                              }
+                                            ]
+                                          }
+                                        ]
+                                      }
+                                    ]
+                                  },
+                                  {
+                                    "tag": "g",
+                                    "ns": "http://www.w3.org/2000/svg",
+                                    "children": [
+                                      {
+                                        "text": "quux"
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      },
+                      {
+                        "text": "bar"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p>foo<math><mtext><i>baz</i></mtext><annotation-xml><svg><desc><b>eggs</b></desc><g><foreignObject><p>spam</p><table><tbody><tr><td><img></td></tr></tbody></table></foreignObject></g><g>quux</g></svg></annotation-xml></math>bar</p></body></html>",
+        "noQuirksBodyHtml": "<p>foo<math><mtext><i>baz</i></mtext><annotation-xml><svg><desc><b>eggs</b></desc><g><foreignObject><p>spam</p><table><tbody><tr><td><img></td></tr></tbody></table></foreignObject></g><g>quux</g></svg></annotation-xml></math>bar</p>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body>foo<math><mtext><i>baz</i></mtext><annotation-xml><svg><desc><b>eggs</b></desc><g><foreignObject><P>spam<TABLE><tr><td><img></td></table></foreignObject></g><g>quux</g></svg></annotation-xml></math>bar",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "math mtext": true,
+            "i": true,
+            "math annotation-xml": true,
+            "svg svg": true,
+            "svg desc": true,
+            "b": true,
+            "svg g": true,
+            "svg foreignObject": true,
+            "p": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true,
+            "img": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "foo"
+                  },
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "mtext",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "children": [
+                          {
+                            "tag": "i",
+                            "children": [
+                              {
+                                "text": "baz"
+                              }
+                            ]
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "annotation-xml",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "children": [
+                          {
+                            "tag": "svg",
+                            "ns": "http://www.w3.org/2000/svg",
+                            "children": [
+                              {
+                                "tag": "desc",
+                                "ns": "http://www.w3.org/2000/svg",
+                                "children": [
+                                  {
+                                    "tag": "b",
+                                    "children": [
+                                      {
+                                        "text": "eggs"
+                                      }
+                                    ]
+                                  }
+                                ]
+                              },
+                              {
+                                "tag": "g",
+                                "ns": "http://www.w3.org/2000/svg",
+                                "children": [
+                                  {
+                                    "tag": "foreignObject",
+                                    "ns": "http://www.w3.org/2000/svg",
+                                    "children": [
+                                      {
+                                        "tag": "p",
+                                        "children": [
+                                          {
+                                            "text": "spam"
+                                          }
+                                        ]
+                                      },
+                                      {
+                                        "tag": "table",
+                                        "children": [
+                                          {
+                                            "tag": "tbody",
+                                            "children": [
+                                              {
+                                                "tag": "tr",
+                                                "children": [
+                                                  {
+                                                    "tag": "td",
+                                                    "children": [
+                                                      {
+                                                        "tag": "img"
+                                                      }
+                                                    ]
+                                                  }
+                                                ]
+                                              }
+                                            ]
+                                          }
+                                        ]
+                                      }
+                                    ]
+                                  }
+                                ]
+                              },
+                              {
+                                "tag": "g",
+                                "ns": "http://www.w3.org/2000/svg",
+                                "children": [
+                                  {
+                                    "text": "quux"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "text": "bar"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body>foo<math><mtext><i>baz</i></mtext><annotation-xml><svg><desc><b>eggs</b></desc><g><foreignObject><p>spam</p><table><tbody><tr><td><img></td></tr></tbody></table></foreignObject></g><g>quux</g></svg></annotation-xml></math>bar</body></html>",
+        "noQuirksBodyHtml": "foo<math><mtext><i>baz</i></mtext><annotation-xml><svg><desc><b>eggs</b></desc><g><foreignObject><p>spam</p><table><tbody><tr><td><img></td></tr></tbody></table></foreignObject></g><g>quux</g></svg></annotation-xml></math>bar"
+      }
+    }
+  ],
+  "tests14.dat": [
+    {
+      "data": "<!DOCTYPE html><html><body><xyz:abc></xyz:abc>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "xyz:abc": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "xyz:abc"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><xyz:abc></xyz:abc></body></html>",
+        "noQuirksBodyHtml": "<xyz:abc></xyz:abc>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><html><body><xyz:abc></xyz:abc><span></span>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "xyz:abc": true,
+            "span": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "xyz:abc"
+                  },
+                  {
+                    "tag": "span"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><xyz:abc></xyz:abc><span></span></body></html>",
+        "noQuirksBodyHtml": "<xyz:abc></xyz:abc><span></span>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><html><html abc:def=gh><xyz:abc></xyz:abc>",
+      "errors": [
+        "(1,38): non-html-root"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "xyz:abc": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "attrs": [
+              {
+                "name": "abc:def",
+                "value": "gh"
+              }
+            ],
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "xyz:abc"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html abc:def=\"gh\"><head></head><body><xyz:abc></xyz:abc></body></html>",
+        "noQuirksBodyHtml": "<xyz:abc></xyz:abc>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><html xml:lang=bar><html xml:lang=foo>",
+      "errors": [
+        "(1,53): non-html-root"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "attrs": [
+              {
+                "name": "xml:lang",
+                "value": "bar"
+              }
+            ],
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html xml:lang=\"bar\"><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><html 123=456>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "attrs": [
+              {
+                "name": "123",
+                "value": "456"
+              }
+            ],
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html 123=\"456\"><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><html 123=456><html 789=012>",
+      "errors": [
+        "(1,43): non-html-root"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "attrs": [
+              {
+                "name": "123",
+                "value": "456"
+              },
+              {
+                "name": "789",
+                "value": "012"
+              }
+            ],
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html 123=\"456\" 789=\"012\"><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><html><body 789=012>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "attrs": [
+                  {
+                    "name": "789",
+                    "value": "012"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body 789=\"012\"></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    }
+  ],
+  "tests15.dat": [
+    {
+      "data": "<!DOCTYPE html><p><b><i><u></p> <p>X",
+      "errors": [
+        "(1,31): unexpected-end-tag",
+        "(1,36): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "b": true,
+            "i": true,
+            "u": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "tag": "i",
+                            "children": [
+                              {
+                                "tag": "u"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "b",
+                    "children": [
+                      {
+                        "tag": "i",
+                        "children": [
+                          {
+                            "tag": "u",
+                            "children": [
+                              {
+                                "text": " "
+                              },
+                              {
+                                "tag": "p",
+                                "children": [
+                                  {
+                                    "text": "X"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p><b><i><u></u></i></b></p><b><i><u> <p>X</p></u></i></b></body></html>",
+        "noQuirksBodyHtml": "<p><b><i><u></u></i></b></p><b><i><u> <p>X</p></u></i></b>"
+      }
+    },
+    {
+      "data": "<p><b><i><u></p>\n<p>X",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,16): unexpected-end-tag",
+        "(2,4): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "b": true,
+            "i": true,
+            "u": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "tag": "i",
+                            "children": [
+                              {
+                                "tag": "u"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "b",
+                    "children": [
+                      {
+                        "tag": "i",
+                        "children": [
+                          {
+                            "tag": "u",
+                            "children": [
+                              {
+                                "text": "\n"
+                              },
+                              {
+                                "tag": "p",
+                                "children": [
+                                  {
+                                    "text": "X"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><p><b><i><u></u></i></b></p><b><i><u>\n<p>X</p></u></i></b></body></html>",
+        "noQuirksBodyHtml": "<p><b><i><u></u></i></b></p><b><i><u>\n<p>X</p></u></i></b>"
+      }
+    },
+    {
+      "data": "<!doctype html></html> <head>",
+      "errors": [
+        "(1,29): expected-eof-but-got-start-tag",
+        "(1,29): unexpected-start-tag-ignored"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": " "
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body> </body></html>",
+        "noQuirksBodyHtml": " "
+      }
+    },
+    {
+      "data": "<!doctype html></body><meta>",
+      "errors": [
+        "(1,28): unexpected-start-tag-after-body"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "meta": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "meta"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><meta></body></html>",
+        "noQuirksBodyHtml": "<meta>"
+      }
+    },
+    {
+      "data": "<html></html><!-- foo -->",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          },
+          {
+            "comment": " foo "
+          }
+        ],
+        "html": "<html><head></head><body></body></html><!-- foo -->",
+        "noQuirksBodyHtml": "<!-- foo -->"
+      }
+    },
+    {
+      "data": "<!doctype html></body><title>X</title>",
+      "errors": [
+        "(1,29): unexpected-start-tag-after-body"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "title": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "title",
+                    "children": [
+                      {
+                        "text": "X"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><title>X</title></body></html>",
+        "noQuirksBodyHtml": "<title>X</title>"
+      }
+    },
+    {
+      "data": "<!doctype html><table> X<meta></table>",
+      "errors": [
+        "(1,23): foster-parenting-character",
+        "(1,24): foster-parenting-character",
+        "(1,30): foster-parenting-start-character"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "meta": true,
+            "table": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": " X"
+                  },
+                  {
+                    "tag": "meta"
+                  },
+                  {
+                    "tag": "table"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body> X<meta><table></table></body></html>",
+        "noQuirksBodyHtml": " X<meta><table></table>"
+      }
+    },
+    {
+      "data": "<!doctype html><table> x</table>",
+      "errors": [
+        "(1,23): foster-parenting-character",
+        "(1,24): foster-parenting-character"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": " x"
+                  },
+                  {
+                    "tag": "table"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body> x<table></table></body></html>",
+        "noQuirksBodyHtml": " x<table></table>"
+      }
+    },
+    {
+      "data": "<!doctype html><table> x </table>",
+      "errors": [
+        "(1,23): foster-parenting-character",
+        "(1,24): foster-parenting-character",
+        "(1,25): foster-parenting-character"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": " x "
+                  },
+                  {
+                    "tag": "table"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body> x <table></table></body></html>",
+        "noQuirksBodyHtml": " x <table></table>"
+      }
+    },
+    {
+      "data": "<!doctype html><table><tr> x</table>",
+      "errors": [
+        "(1,27): foster-parenting-character",
+        "(1,28): foster-parenting-character"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": " x"
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body> x<table><tbody><tr></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": " x<table><tbody><tr></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<!doctype html><table>X<style> <tr>x </style> </table>",
+      "errors": [
+        "(1,23): foster-parenting-character"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "style": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "X"
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "style",
+                        "children": [
+                          {
+                            "text": " <tr>x ",
+                            "no_escape": true
+                          }
+                        ]
+                      },
+                      {
+                        "text": " "
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body>X<table><style> <tr>x </style> </table></body></html>",
+        "noQuirksBodyHtml": "X<table><style> <tr>x </style> </table>"
+      }
+    },
+    {
+      "data": "<!doctype html><div><table><a>foo</a> <tr><td>bar</td> </tr></table></div>",
+      "errors": [
+        "(1,30): foster-parenting-start-tag",
+        "(1,31): foster-parenting-character",
+        "(1,32): foster-parenting-character",
+        "(1,33): foster-parenting-character",
+        "(1,37): foster-parenting-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true,
+            "a": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "tag": "a",
+                        "children": [
+                          {
+                            "text": "foo"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "table",
+                        "children": [
+                          {
+                            "text": " "
+                          },
+                          {
+                            "tag": "tbody",
+                            "children": [
+                              {
+                                "tag": "tr",
+                                "children": [
+                                  {
+                                    "tag": "td",
+                                    "children": [
+                                      {
+                                        "text": "bar"
+                                      }
+                                    ]
+                                  },
+                                  {
+                                    "text": " "
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><div><a>foo</a><table> <tbody><tr><td>bar</td> </tr></tbody></table></div></body></html>",
+        "noQuirksBodyHtml": "<div><a>foo</a><table> <tbody><tr><td>bar</td> </tr></tbody></table></div>"
+      }
+    },
+    {
+      "data": "<frame></frame></frame><frameset><frame><frameset><frame></frameset><noframes></frameset><noframes>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,7): unexpected-start-tag-ignored",
+        "(1,15): unexpected-end-tag",
+        "(1,23): unexpected-end-tag",
+        "(1,33): unexpected-start-tag",
+        "(1,99): expected-named-closing-tag-but-got-eof",
+        "(1,99): eof-in-frameset"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true,
+            "frame": true,
+            "noframes": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset",
+                "children": [
+                  {
+                    "tag": "frame"
+                  },
+                  {
+                    "tag": "frameset",
+                    "children": [
+                      {
+                        "tag": "frame"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "noframes",
+                    "children": [
+                      {
+                        "text": "</frameset><noframes>",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><frameset><frame><frameset><frame></frameset><noframes></frameset><noframes></noframes></frameset></html>",
+        "noQuirksBodyHtml": "<noframes></frameset><noframes></noframes>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><object></html>",
+      "errors": [
+        "(1,30): expected-body-in-scope",
+        "(1,30): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "object": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "object"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><object></object></body></html>",
+        "noQuirksBodyHtml": "<object></object>"
+      }
+    }
+  ],
+  "tests16.dat": [
+    {
+      "data": "<!doctype html><script>",
+      "errors": [
+        "(1,23): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script"
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script></script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script></script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script>a",
+      "errors": [
+        "(1,24): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "a",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script>a</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script>a</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><",
+      "errors": [
+        "(1,24): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script></",
+      "errors": [
+        "(1,25): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "</",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script></</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script></</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script></S",
+      "errors": [
+        "(1,26): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "</S",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script></S</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script></S</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script></SC",
+      "errors": [
+        "(1,27): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "</SC",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script></SC</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script></SC</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script></SCR",
+      "errors": [
+        "(1,28): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "</SCR",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script></SCR</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script></SCR</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script></SCRI",
+      "errors": [
+        "(1,29): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "</SCRI",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script></SCRI</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script></SCRI</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script></SCRIP",
+      "errors": [
+        "(1,30): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "</SCRIP",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script></SCRIP</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script></SCRIP</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script></SCRIPT",
+      "errors": [
+        "(1,31): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "</SCRIPT",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script></SCRIPT</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script></SCRIPT</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script></SCRIPT ",
+      "errors": [
+        "(1,32): expected-attribute-name-but-got-eof",
+        "(1,32): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script"
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script></script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script></script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script></s",
+      "errors": [
+        "(1,26): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "</s",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script></s</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script></s</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script></sc",
+      "errors": [
+        "(1,27): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "</sc",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script></sc</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script></sc</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script></scr",
+      "errors": [
+        "(1,28): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "</scr",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script></scr</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script></scr</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script></scri",
+      "errors": [
+        "(1,29): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "</scri",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script></scri</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script></scri</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script></scrip",
+      "errors": [
+        "(1,30): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "</scrip",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script></scrip</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script></scrip</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script></script",
+      "errors": [
+        "(1,31): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "</script",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script></script</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script></script</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script></script ",
+      "errors": [
+        "(1,32): expected-attribute-name-but-got-eof",
+        "(1,32): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script"
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script></script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script></script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!",
+      "errors": [
+        "(1,25): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!a",
+      "errors": [
+        "(1,26): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!a",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!a</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!a</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!-",
+      "errors": [
+        "(1,26): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!-",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!-</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!-</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!-a",
+      "errors": [
+        "(1,27): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!-a",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!-a</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!-a</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--",
+      "errors": [
+        "(1,27): expected-named-closing-tag-but-got-eof",
+        "(1,27): unexpected-eof-in-text-mode"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--a",
+      "errors": [
+        "(1,28): expected-named-closing-tag-but-got-eof",
+        "(1,28): unexpected-eof-in-text-mode"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--a",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--a</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--a</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--<",
+      "errors": [
+        "(1,28): expected-named-closing-tag-but-got-eof",
+        "(1,28): unexpected-eof-in-text-mode"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--<</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--<a",
+      "errors": [
+        "(1,29): expected-named-closing-tag-but-got-eof",
+        "(1,29): unexpected-eof-in-text-mode"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<a",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--<a</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<a</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--</",
+      "errors": [
+        "(1,29): expected-named-closing-tag-but-got-eof",
+        "(1,29): unexpected-eof-in-text-mode"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--</",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--</</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--</</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--</script",
+      "errors": [
+        "(1,35): expected-named-closing-tag-but-got-eof",
+        "(1,35): unexpected-eof-in-text-mode"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--</script",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--</script</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--</script</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--</script ",
+      "errors": [
+        "(1,36): expected-attribute-name-but-got-eof",
+        "(1,36): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--<s",
+      "errors": [
+        "(1,29): expected-named-closing-tag-but-got-eof",
+        "(1,29): unexpected-eof-in-text-mode"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<s",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--<s</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<s</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--<script",
+      "errors": [
+        "(1,34): expected-named-closing-tag-but-got-eof",
+        "(1,34): unexpected-eof-in-text-mode"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--<script</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--<script ",
+      "errors": [
+        "(1,35): eof-in-script-in-script",
+        "(1,35): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script ",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--<script </script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script </script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--<script <",
+      "errors": [
+        "(1,36): eof-in-script-in-script",
+        "(1,36): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script <",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--<script <</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script <</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--<script <a",
+      "errors": [
+        "(1,37): eof-in-script-in-script",
+        "(1,37): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script <a",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--<script <a</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script <a</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--<script </",
+      "errors": [
+        "(1,37): eof-in-script-in-script",
+        "(1,37): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script </",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--<script </</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script </</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--<script </s",
+      "errors": [
+        "(1,38): eof-in-script-in-script",
+        "(1,38): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script </s",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--<script </s</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script </s</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--<script </script",
+      "errors": [
+        "(1,43): eof-in-script-in-script",
+        "(1,43): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script </script",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--<script </script</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script </script</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--<script </scripta",
+      "errors": [
+        "(1,44): eof-in-script-in-script",
+        "(1,44): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script </scripta",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--<script </scripta</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script </scripta</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--<script </script ",
+      "errors": [
+        "(1,44): expected-named-closing-tag-but-got-eof",
+        "(1,44): unexpected-eof-in-text-mode"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script </script ",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--<script </script </script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script </script </script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--<script </script>",
+      "errors": [
+        "(1,44): expected-named-closing-tag-but-got-eof",
+        "(1,44): unexpected-eof-in-text-mode"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script </script>",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--<script </script></script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script </script></script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--<script </script/",
+      "errors": [
+        "(1,44): expected-named-closing-tag-but-got-eof",
+        "(1,44): unexpected-eof-in-text-mode"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script </script/",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--<script </script/</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script </script/</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--<script </script <",
+      "errors": [
+        "(1,45): expected-named-closing-tag-but-got-eof",
+        "(1,45): unexpected-eof-in-text-mode"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script </script <",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--<script </script <</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script </script <</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--<script </script <a",
+      "errors": [
+        "(1,46): expected-named-closing-tag-but-got-eof",
+        "(1,46): unexpected-eof-in-text-mode"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script </script <a",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--<script </script <a</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script </script <a</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--<script </script </",
+      "errors": [
+        "(1,46): expected-named-closing-tag-but-got-eof",
+        "(1,46): unexpected-eof-in-text-mode"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script </script </",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--<script </script </</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script </script </</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--<script </script </script",
+      "errors": [
+        "(1,52): expected-named-closing-tag-but-got-eof",
+        "(1,52): unexpected-eof-in-text-mode"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script </script </script",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--<script </script </script</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script </script </script</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--<script </script </script ",
+      "errors": [
+        "(1,53): expected-attribute-name-but-got-eof",
+        "(1,53): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script </script ",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--<script </script </script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script </script </script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--<script </script </script/",
+      "errors": [
+        "(1,53): unexpected-EOF-after-solidus-in-tag",
+        "(1,53): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script </script ",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--<script </script </script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script </script </script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--<script </script </script>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script </script ",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--<script </script </script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script </script </script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--<script -",
+      "errors": [
+        "(1,36): eof-in-script-in-script",
+        "(1,36): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script -",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--<script -</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script -</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--<script -a",
+      "errors": [
+        "(1,37): eof-in-script-in-script",
+        "(1,37): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script -a",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--<script -a</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script -a</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--<script -<",
+      "errors": [
+        "(1,37): eof-in-script-in-script",
+        "(1,37): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script -<",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--<script -<</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script -<</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--<script --",
+      "errors": [
+        "(1,37): eof-in-script-in-script",
+        "(1,37): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script --",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--<script --</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script --</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--<script --a",
+      "errors": [
+        "(1,38): eof-in-script-in-script",
+        "(1,38): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script --a",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--<script --a</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script --a</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--<script --<",
+      "errors": [
+        "(1,38): eof-in-script-in-script",
+        "(1,38): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script --<",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--<script --<</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script --<</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--<script -->",
+      "errors": [
+        "(1,38): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script -->",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--<script --></script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script --></script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--<script --><",
+      "errors": [
+        "(1,39): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script --><",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--<script --><</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script --><</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--<script --></",
+      "errors": [
+        "(1,40): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script --></",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--<script --></</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script --></</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--<script --></script",
+      "errors": [
+        "(1,46): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script --></script",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--<script --></script</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script --></script</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--<script --></script ",
+      "errors": [
+        "(1,47): expected-attribute-name-but-got-eof",
+        "(1,47): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script -->",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--<script --></script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script --></script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--<script --></script/",
+      "errors": [
+        "(1,47): unexpected-EOF-after-solidus-in-tag",
+        "(1,47): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script -->",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--<script --></script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script --></script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--<script --></script>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script -->",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--<script --></script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script --></script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--<script><\\/script>--></script>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script><\\/script>-->",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--<script><\\/script>--></script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script><\\/script>--></script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--<script></scr'+'ipt>--></script>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script></scr'+'ipt>-->",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--<script></scr'+'ipt>--></script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script></scr'+'ipt>--></script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--<script></script><script></script></script>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script></script><script></script>",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--<script></script><script></script></script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script></script><script></script></script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--<script></script><script></script>--><!--</script>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script></script><script></script>--><!--",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--<script></script><script></script>--><!--</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script></script><script></script>--><!--</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--<script></script><script></script>-- ></script>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script></script><script></script>-- >",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--<script></script><script></script>-- ></script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script></script><script></script>-- ></script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--<script></script><script></script>- -></script>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script></script><script></script>- ->",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--<script></script><script></script>- -></script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script></script><script></script>- -></script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--<script></script><script></script>- - ></script>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script></script><script></script>- - >",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--<script></script><script></script>- - ></script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script></script><script></script>- - ></script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--<script></script><script></script>-></script>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script></script><script></script>->",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--<script></script><script></script>-></script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script></script><script></script>-></script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--<script>--!></script>X",
+      "errors": [
+        "(1,49): expected-named-closing-tag-but-got-eof",
+        "(1,49): unexpected-EOF-in-text-mode"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script>--!></script>X",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--<script>--!></script>X</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script>--!></script>X</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--<scr'+'ipt></script>--></script>",
+      "errors": [
+        "(1,59): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true,
+          "escaped": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<scr'+'ipt>",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "-->",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--<scr'+'ipt></script></head><body>--&gt;</body></html>",
+        "noQuirksBodyHtml": "<script><!--<scr'+'ipt></script>--&gt;"
+      }
+    },
+    {
+      "data": "<!doctype html><script><!--<script></scr'+'ipt></script>X",
+      "errors": [
+        "(1,57): expected-named-closing-tag-but-got-eof",
+        "(1,57): unexpected-eof-in-text-mode"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script></scr'+'ipt></script>X",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script><!--<script></scr'+'ipt></script>X</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script></scr'+'ipt></script>X</script>"
+      }
+    },
+    {
+      "data": "<!doctype html><style><!--<style></style>--></style>",
+      "errors": [
+        "(1,52): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "style": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true,
+          "escaped": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "style",
+                    "children": [
+                      {
+                        "text": "<!--<style>",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "-->",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><style><!--<style></style></head><body>--&gt;</body></html>",
+        "noQuirksBodyHtml": "<style><!--<style></style>--&gt;"
+      }
+    },
+    {
+      "data": "<!doctype html><style><!--</style>X",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "style": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "style",
+                    "children": [
+                      {
+                        "text": "<!--",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "X"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><style><!--</style></head><body>X</body></html>",
+        "noQuirksBodyHtml": "<style><!--</style>X"
+      }
+    },
+    {
+      "data": "<!doctype html><style><!--...</style>...--></style>",
+      "errors": [
+        "(1,51): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "style": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true,
+          "escaped": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "style",
+                    "children": [
+                      {
+                        "text": "<!--...",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "...-->",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><style><!--...</style></head><body>...--&gt;</body></html>",
+        "noQuirksBodyHtml": "<style><!--...</style>...--&gt;"
+      }
+    },
+    {
+      "data": "<!doctype html><style><!--<br><html xmlns:v=\"urn:schemas-microsoft-com:vml\"><!--[if !mso]><style></style>X",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "style": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "style",
+                    "children": [
+                      {
+                        "text": "<!--<br><html xmlns:v=\"urn:schemas-microsoft-com:vml\"><!--[if !mso]><style>",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "X"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><style><!--<br><html xmlns:v=\"urn:schemas-microsoft-com:vml\"><!--[if !mso]><style></style></head><body>X</body></html>",
+        "noQuirksBodyHtml": "<style><!--<br><html xmlns:v=\"urn:schemas-microsoft-com:vml\"><!--[if !mso]><style></style>X"
+      }
+    },
+    {
+      "data": "<!doctype html><style><!--...<style><!--...--!></style>--></style>",
+      "errors": [
+        "(1,66): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "style": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true,
+          "escaped": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "style",
+                    "children": [
+                      {
+                        "text": "<!--...<style><!--...--!>",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "-->",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><style><!--...<style><!--...--!></style></head><body>--&gt;</body></html>",
+        "noQuirksBodyHtml": "<style><!--...<style><!--...--!></style>--&gt;"
+      }
+    },
+    {
+      "data": "<!doctype html><style><!--...</style><!-- --><style>@import ...</style>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "style": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true,
+          "comment": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "style",
+                    "children": [
+                      {
+                        "text": "<!--...",
+                        "no_escape": true
+                      }
+                    ]
+                  },
+                  {
+                    "comment": " "
+                  },
+                  {
+                    "tag": "style",
+                    "children": [
+                      {
+                        "text": "@import ...",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><style><!--...</style><!-- --><style>@import ...</style></head><body></body></html>",
+        "noQuirksBodyHtml": "<style><!--...</style><!-- --><style>@import ...</style>"
+      }
+    },
+    {
+      "data": "<!doctype html><style>...<style><!--...</style><!-- --></style>",
+      "errors": [
+        "(1,63): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "style": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true,
+          "comment": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "style",
+                    "children": [
+                      {
+                        "text": "...<style><!--...",
+                        "no_escape": true
+                      }
+                    ]
+                  },
+                  {
+                    "comment": " "
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><style>...<style><!--...</style><!-- --></head><body></body></html>",
+        "noQuirksBodyHtml": "<style>...<style><!--...</style><!-- -->"
+      }
+    },
+    {
+      "data": "<!doctype html><style>...<!--[if IE]><style>...</style>X",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "style": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "style",
+                    "children": [
+                      {
+                        "text": "...<!--[if IE]><style>...",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "X"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><style>...<!--[if IE]><style>...</style></head><body>X</body></html>",
+        "noQuirksBodyHtml": "<style>...<!--[if IE]><style>...</style>X"
+      }
+    },
+    {
+      "data": "<!doctype html><title><!--<title></title>--></title>",
+      "errors": [
+        "(1,52): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "title": true,
+            "body": true
+          },
+          "doctype": true,
+          "escaped": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "title",
+                    "children": [
+                      {
+                        "text": "<!--<title>",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "-->",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><title>&lt;!--&lt;title&gt;</title></head><body>--&gt;</body></html>",
+        "noQuirksBodyHtml": "<title>&lt;!--&lt;title&gt;</title>--&gt;"
+      }
+    },
+    {
+      "data": "<!doctype html><title>&lt;/title></title>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "title": true,
+            "body": true
+          },
+          "doctype": true,
+          "escaped": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "title",
+                    "children": [
+                      {
+                        "text": "</title>",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><title>&lt;/title&gt;</title></head><body></body></html>",
+        "noQuirksBodyHtml": "<title>&lt;/title&gt;</title>"
+      }
+    },
+    {
+      "data": "<!doctype html><title>foo/title><link></head><body>X",
+      "errors": [
+        "(1,52): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "title": true,
+            "body": true
+          },
+          "doctype": true,
+          "escaped": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "title",
+                    "children": [
+                      {
+                        "text": "foo/title><link></head><body>X",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><title>foo/title&gt;&lt;link&gt;&lt;/head&gt;&lt;body&gt;X</title></head><body></body></html>",
+        "noQuirksBodyHtml": "<title>foo/title&gt;&lt;link&gt;&lt;/head&gt;&lt;body&gt;X</title>"
+      }
+    },
+    {
+      "data": "<!doctype html><noscript><!--<noscript></noscript>--></noscript>",
+      "errors": [
+        "(1,64): unexpected-end-tag"
+      ],
+      "script": "on",
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "noscript": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true,
+          "escaped": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "noscript",
+                    "children": [
+                      {
+                        "text": "<!--<noscript>",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "-->",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><noscript><!--<noscript></noscript></head><body>--&gt;</body></html>",
+        "noQuirksBodyHtml": "<noscript>&lt;!--&lt;noscript&gt;</noscript>--&gt;"
+      }
+    },
+    {
+      "data": "<!doctype html><noscript><!--<noscript></noscript>--></noscript>",
+      "errors": [],
+      "script": "off",
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "noscript": true,
+            "body": true
+          },
+          "doctype": true,
+          "comment": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "noscript",
+                    "children": [
+                      {
+                        "comment": "<noscript></noscript>"
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><noscript><!--<noscript></noscript>--></noscript></head><body></body></html>",
+        "noQuirksBodyHtml": "<noscript>&lt;!--&lt;noscript&gt;</noscript>--&gt;"
+      }
+    },
+    {
+      "data": "<!doctype html><noscript><!--</noscript>X<noscript>--></noscript>",
+      "errors": [],
+      "script": "on",
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "noscript": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "noscript",
+                    "children": [
+                      {
+                        "text": "<!--",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "X"
+                  },
+                  {
+                    "tag": "noscript",
+                    "children": [
+                      {
+                        "text": "-->",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><noscript><!--</noscript></head><body>X<noscript>--></noscript></body></html>",
+        "noQuirksBodyHtml": "<noscript>&lt;!--</noscript>X<noscript>--&gt;</noscript>"
+      }
+    },
+    {
+      "data": "<!doctype html><noscript><!--</noscript>X<noscript>--></noscript>",
+      "errors": [],
+      "script": "off",
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "noscript": true,
+            "body": true
+          },
+          "doctype": true,
+          "comment": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "noscript",
+                    "children": [
+                      {
+                        "comment": "</noscript>X<noscript>"
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><noscript><!--</noscript>X<noscript>--></noscript></head><body></body></html>",
+        "noQuirksBodyHtml": "<noscript>&lt;!--</noscript>X<noscript>--&gt;</noscript>"
+      }
+    },
+    {
+      "data": "<!doctype html><noscript><iframe></noscript>X",
+      "errors": [],
+      "script": "on",
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "noscript": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "noscript",
+                    "children": [
+                      {
+                        "text": "<iframe>",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "X"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><noscript><iframe></noscript></head><body>X</body></html>",
+        "noQuirksBodyHtml": "<noscript>&lt;iframe&gt;</noscript>X"
+      }
+    },
+    {
+      "data": "<!doctype html><noscript><iframe></noscript>X",
+      "errors": [
+        " * (1,34) unexpected token in head noscript",
+        " * (1,46) unexpected EOF"
+      ],
+      "script": "off",
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "noscript": true,
+            "body": true,
+            "iframe": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "noscript"
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "iframe",
+                    "children": [
+                      {
+                        "text": "</noscript>X",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><noscript></noscript></head><body><iframe></noscript>X</iframe></body></html>",
+        "noQuirksBodyHtml": "<noscript>&lt;iframe&gt;</noscript>X"
+      }
+    },
+    {
+      "data": "<!doctype html><noframes><!--<noframes></noframes>--></noframes>",
+      "errors": [
+        "(1,64): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "noframes": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true,
+          "escaped": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "noframes",
+                    "children": [
+                      {
+                        "text": "<!--<noframes>",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "-->",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><noframes><!--<noframes></noframes></head><body>--&gt;</body></html>",
+        "noQuirksBodyHtml": "<noframes><!--<noframes></noframes>--&gt;"
+      }
+    },
+    {
+      "data": "<!doctype html><noframes><body><script><!--...</script></body></noframes></html>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "noframes": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "noframes",
+                    "children": [
+                      {
+                        "text": "<body><script><!--...</script></body>",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><noframes><body><script><!--...</script></body></noframes></head><body></body></html>",
+        "noQuirksBodyHtml": "<noframes><body><script><!--...</script></body></noframes>"
+      }
+    },
+    {
+      "data": "<!doctype html><textarea><!--<textarea></textarea>--></textarea>",
+      "errors": [
+        "(1,64): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "textarea": true
+          },
+          "doctype": true,
+          "escaped": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "textarea",
+                    "children": [
+                      {
+                        "text": "<!--<textarea>",
+                        "escaped": true
+                      }
+                    ]
+                  },
+                  {
+                    "text": "-->",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><textarea>&lt;!--&lt;textarea&gt;</textarea>--&gt;</body></html>",
+        "noQuirksBodyHtml": "<textarea>&lt;!--&lt;textarea&gt;</textarea>--&gt;"
+      }
+    },
+    {
+      "data": "<!doctype html><textarea>&lt;/textarea></textarea>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "textarea": true
+          },
+          "doctype": true,
+          "escaped": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "textarea",
+                    "children": [
+                      {
+                        "text": "</textarea>",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><textarea>&lt;/textarea&gt;</textarea></body></html>",
+        "noQuirksBodyHtml": "<textarea>&lt;/textarea&gt;</textarea>"
+      }
+    },
+    {
+      "data": "<!doctype html><textarea>&lt;</textarea>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "textarea": true
+          },
+          "doctype": true,
+          "escaped": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "textarea",
+                    "children": [
+                      {
+                        "text": "<",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><textarea>&lt;</textarea></body></html>",
+        "noQuirksBodyHtml": "<textarea>&lt;</textarea>"
+      }
+    },
+    {
+      "data": "<!doctype html><textarea>a&lt;b</textarea>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "textarea": true
+          },
+          "doctype": true,
+          "escaped": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "textarea",
+                    "children": [
+                      {
+                        "text": "a<b",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><textarea>a&lt;b</textarea></body></html>",
+        "noQuirksBodyHtml": "<textarea>a&lt;b</textarea>"
+      }
+    },
+    {
+      "data": "<!doctype html><iframe><!--<iframe></iframe>--></iframe>",
+      "errors": [
+        "(1,56): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "iframe": true
+          },
+          "doctype": true,
+          "no_escape": true,
+          "escaped": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "iframe",
+                    "children": [
+                      {
+                        "text": "<!--<iframe>",
+                        "no_escape": true
+                      }
+                    ]
+                  },
+                  {
+                    "text": "-->",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><iframe><!--<iframe></iframe>--&gt;</body></html>",
+        "noQuirksBodyHtml": "<iframe><!--<iframe></iframe>--&gt;"
+      }
+    },
+    {
+      "data": "<!doctype html><iframe>...<!--X->...<!--/X->...</iframe>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "iframe": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "iframe",
+                    "children": [
+                      {
+                        "text": "...<!--X->...<!--/X->...",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><iframe>...<!--X->...<!--/X->...</iframe></body></html>",
+        "noQuirksBodyHtml": "<iframe>...<!--X->...<!--/X->...</iframe>"
+      }
+    },
+    {
+      "data": "<!doctype html><xmp><!--<xmp></xmp>--></xmp>",
+      "errors": [
+        "(1,44): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "xmp": true
+          },
+          "doctype": true,
+          "no_escape": true,
+          "escaped": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "xmp",
+                    "children": [
+                      {
+                        "text": "<!--<xmp>",
+                        "no_escape": true
+                      }
+                    ]
+                  },
+                  {
+                    "text": "-->",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><xmp><!--<xmp></xmp>--&gt;</body></html>",
+        "noQuirksBodyHtml": "<xmp><!--<xmp></xmp>--&gt;"
+      }
+    },
+    {
+      "data": "<!doctype html><noembed><!--<noembed></noembed>--></noembed>",
+      "errors": [
+        "(1,60): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "noembed": true
+          },
+          "doctype": true,
+          "no_escape": true,
+          "escaped": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "noembed",
+                    "children": [
+                      {
+                        "text": "<!--<noembed>",
+                        "no_escape": true
+                      }
+                    ]
+                  },
+                  {
+                    "text": "-->",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><noembed><!--<noembed></noembed>--&gt;</body></html>",
+        "noQuirksBodyHtml": "<noembed><!--<noembed></noembed>--&gt;"
+      }
+    },
+    {
+      "data": "<script>",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,8): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script"
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script></script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script></script>"
+      }
+    },
+    {
+      "data": "<script>a",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,9): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "a",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script>a</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script>a</script>"
+      }
+    },
+    {
+      "data": "<script><",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,9): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><</script>"
+      }
+    },
+    {
+      "data": "<script></",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,10): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "</",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script></</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script></</script>"
+      }
+    },
+    {
+      "data": "<script></S",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,11): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "</S",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script></S</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script></S</script>"
+      }
+    },
+    {
+      "data": "<script></SC",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,12): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "</SC",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script></SC</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script></SC</script>"
+      }
+    },
+    {
+      "data": "<script></SCR",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,13): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "</SCR",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script></SCR</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script></SCR</script>"
+      }
+    },
+    {
+      "data": "<script></SCRI",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,14): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "</SCRI",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script></SCRI</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script></SCRI</script>"
+      }
+    },
+    {
+      "data": "<script></SCRIP",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,15): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "</SCRIP",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script></SCRIP</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script></SCRIP</script>"
+      }
+    },
+    {
+      "data": "<script></SCRIPT",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,16): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "</SCRIPT",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script></SCRIPT</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script></SCRIPT</script>"
+      }
+    },
+    {
+      "data": "<script></SCRIPT ",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,17): expected-attribute-name-but-got-eof",
+        "(1,17): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script"
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script></script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script></script>"
+      }
+    },
+    {
+      "data": "<script></s",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,11): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "</s",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script></s</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script></s</script>"
+      }
+    },
+    {
+      "data": "<script></sc",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,12): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "</sc",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script></sc</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script></sc</script>"
+      }
+    },
+    {
+      "data": "<script></scr",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,13): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "</scr",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script></scr</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script></scr</script>"
+      }
+    },
+    {
+      "data": "<script></scri",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,14): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "</scri",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script></scri</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script></scri</script>"
+      }
+    },
+    {
+      "data": "<script></scrip",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,15): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "</scrip",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script></scrip</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script></scrip</script>"
+      }
+    },
+    {
+      "data": "<script></script",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,16): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "</script",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script></script</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script></script</script>"
+      }
+    },
+    {
+      "data": "<script></script ",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,17): expected-attribute-name-but-got-eof",
+        "(1,17): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script"
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script></script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script></script>"
+      }
+    },
+    {
+      "data": "<script><!",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,10): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!</script>"
+      }
+    },
+    {
+      "data": "<script><!a",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,11): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!a",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!a</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!a</script>"
+      }
+    },
+    {
+      "data": "<script><!-",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,11): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!-",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!-</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!-</script>"
+      }
+    },
+    {
+      "data": "<script><!-a",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,12): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!-a",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!-a</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!-a</script>"
+      }
+    },
+    {
+      "data": "<script><!--",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,12): expected-named-closing-tag-but-got-eof",
+        "(1,12): unexpected-eof-in-text-mode"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--</script>"
+      }
+    },
+    {
+      "data": "<script><!--a",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,13): expected-named-closing-tag-but-got-eof",
+        "(1,13): unexpected-eof-in-text-mode"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--a",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--a</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--a</script>"
+      }
+    },
+    {
+      "data": "<script><!--<",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,13): expected-named-closing-tag-but-got-eof",
+        "(1,13): unexpected-eof-in-text-mode"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--<</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<</script>"
+      }
+    },
+    {
+      "data": "<script><!--<a",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,14): expected-named-closing-tag-but-got-eof",
+        "(1,14): unexpected-eof-in-text-mode"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<a",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--<a</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<a</script>"
+      }
+    },
+    {
+      "data": "<script><!--</",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,14): expected-named-closing-tag-but-got-eof",
+        "(1,14): unexpected-eof-in-text-mode"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--</",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--</</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--</</script>"
+      }
+    },
+    {
+      "data": "<script><!--</script",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,20): expected-named-closing-tag-but-got-eof",
+        "(1,20): unexpected-eof-in-text-mode"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--</script",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--</script</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--</script</script>"
+      }
+    },
+    {
+      "data": "<script><!--</script ",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,21): expected-attribute-name-but-got-eof",
+        "(1,21): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--</script>"
+      }
+    },
+    {
+      "data": "<script><!--<s",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,14): expected-named-closing-tag-but-got-eof",
+        "(1,14): unexpected-eof-in-text-mode"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<s",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--<s</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<s</script>"
+      }
+    },
+    {
+      "data": "<script><!--<script",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,19): expected-named-closing-tag-but-got-eof",
+        "(1,19): unexpected-eof-in-text-mode"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--<script</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script</script>"
+      }
+    },
+    {
+      "data": "<script><!--<script ",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,20): eof-in-script-in-script",
+        "(1,20): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script ",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--<script </script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script </script>"
+      }
+    },
+    {
+      "data": "<script><!--<script <",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,21): eof-in-script-in-script",
+        "(1,21): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script <",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--<script <</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script <</script>"
+      }
+    },
+    {
+      "data": "<script><!--<script <a",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,22): eof-in-script-in-script",
+        "(1,22): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script <a",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--<script <a</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script <a</script>"
+      }
+    },
+    {
+      "data": "<script><!--<script </",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,22): eof-in-script-in-script",
+        "(1,22): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script </",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--<script </</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script </</script>"
+      }
+    },
+    {
+      "data": "<script><!--<script </s",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,23): eof-in-script-in-script",
+        "(1,23): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script </s",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--<script </s</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script </s</script>"
+      }
+    },
+    {
+      "data": "<script><!--<script </script",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,28): eof-in-script-in-script",
+        "(1,28): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script </script",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--<script </script</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script </script</script>"
+      }
+    },
+    {
+      "data": "<script><!--<script </scripta",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,29): eof-in-script-in-script",
+        "(1,29): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script </scripta",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--<script </scripta</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script </scripta</script>"
+      }
+    },
+    {
+      "data": "<script><!--<script </script ",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,29): expected-named-closing-tag-but-got-eof",
+        "(1,29): unexpected-eof-in-text-mode"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script </script ",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--<script </script </script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script </script </script>"
+      }
+    },
+    {
+      "data": "<script><!--<script </script>",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,29): expected-named-closing-tag-but-got-eof",
+        "(1,29): unexpected-eof-in-text-mode"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script </script>",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--<script </script></script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script </script></script>"
+      }
+    },
+    {
+      "data": "<script><!--<script </script/",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,29): expected-named-closing-tag-but-got-eof",
+        "(1,29): unexpected-eof-in-text-mode"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script </script/",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--<script </script/</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script </script/</script>"
+      }
+    },
+    {
+      "data": "<script><!--<script </script <",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,30): expected-named-closing-tag-but-got-eof",
+        "(1,30): unexpected-eof-in-text-mode"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script </script <",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--<script </script <</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script </script <</script>"
+      }
+    },
+    {
+      "data": "<script><!--<script </script <a",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,31): expected-named-closing-tag-but-got-eof",
+        "(1,31): unexpected-eof-in-text-mode"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script </script <a",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--<script </script <a</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script </script <a</script>"
+      }
+    },
+    {
+      "data": "<script><!--<script </script </",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,31): expected-named-closing-tag-but-got-eof",
+        "(1,31): unexpected-eof-in-text-mode"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script </script </",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--<script </script </</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script </script </</script>"
+      }
+    },
+    {
+      "data": "<script><!--<script </script </script",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,37): expected-named-closing-tag-but-got-eof",
+        "(1,37): unexpected-eof-in-text-mode"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script </script </script",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--<script </script </script</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script </script </script</script>"
+      }
+    },
+    {
+      "data": "<script><!--<script </script </script ",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,38): expected-attribute-name-but-got-eof",
+        "(1,38): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script </script ",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--<script </script </script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script </script </script>"
+      }
+    },
+    {
+      "data": "<script><!--<script </script </script/",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,38): unexpected-EOF-after-solidus-in-tag",
+        "(1,38): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script </script ",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--<script </script </script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script </script </script>"
+      }
+    },
+    {
+      "data": "<script><!--<script </script </script>",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script </script ",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--<script </script </script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script </script </script>"
+      }
+    },
+    {
+      "data": "<script><!--<script -",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,21): eof-in-script-in-script",
+        "(1,21): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script -",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--<script -</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script -</script>"
+      }
+    },
+    {
+      "data": "<script><!--<script -a",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,22): eof-in-script-in-script",
+        "(1,22): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script -a",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--<script -a</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script -a</script>"
+      }
+    },
+    {
+      "data": "<script><!--<script --",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,22): eof-in-script-in-script",
+        "(1,22): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script --",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--<script --</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script --</script>"
+      }
+    },
+    {
+      "data": "<script><!--<script --a",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,23): eof-in-script-in-script",
+        "(1,23): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script --a",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--<script --a</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script --a</script>"
+      }
+    },
+    {
+      "data": "<script><!--<script -->",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,23): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script -->",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--<script --></script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script --></script>"
+      }
+    },
+    {
+      "data": "<script><!--<script --><",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,24): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script --><",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--<script --><</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script --><</script>"
+      }
+    },
+    {
+      "data": "<script><!--<script --></",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,25): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script --></",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--<script --></</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script --></</script>"
+      }
+    },
+    {
+      "data": "<script><!--<script --></script",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,31): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script --></script",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--<script --></script</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script --></script</script>"
+      }
+    },
+    {
+      "data": "<script><!--<script --></script ",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,32): expected-attribute-name-but-got-eof",
+        "(1,32): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script -->",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--<script --></script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script --></script>"
+      }
+    },
+    {
+      "data": "<script><!--<script --></script/",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,32): unexpected-EOF-after-solidus-in-tag",
+        "(1,32): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script -->",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--<script --></script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script --></script>"
+      }
+    },
+    {
+      "data": "<script><!--<script --></script>",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script -->",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--<script --></script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script --></script>"
+      }
+    },
+    {
+      "data": "<script><!--<script><\\/script>--></script>",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script><\\/script>-->",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--<script><\\/script>--></script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script><\\/script>--></script>"
+      }
+    },
+    {
+      "data": "<script><!--<script></scr'+'ipt>--></script>",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script></scr'+'ipt>-->",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--<script></scr'+'ipt>--></script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script></scr'+'ipt>--></script>"
+      }
+    },
+    {
+      "data": "<script><!--<script></script><script></script></script>",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script></script><script></script>",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--<script></script><script></script></script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script></script><script></script></script>"
+      }
+    },
+    {
+      "data": "<script><!--<script></script><script></script>--><!--</script>",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script></script><script></script>--><!--",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--<script></script><script></script>--><!--</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script></script><script></script>--><!--</script>"
+      }
+    },
+    {
+      "data": "<script><!--<script></script><script></script>-- ></script>",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script></script><script></script>-- >",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--<script></script><script></script>-- ></script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script></script><script></script>-- ></script>"
+      }
+    },
+    {
+      "data": "<script><!--<script></script><script></script>- -></script>",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script></script><script></script>- ->",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--<script></script><script></script>- -></script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script></script><script></script>- -></script>"
+      }
+    },
+    {
+      "data": "<script><!--<script></script><script></script>- - ></script>",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script></script><script></script>- - >",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--<script></script><script></script>- - ></script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script></script><script></script>- - ></script>"
+      }
+    },
+    {
+      "data": "<script><!--<script></script><script></script>-></script>",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script></script><script></script>->",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--<script></script><script></script>-></script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script></script><script></script>-></script>"
+      }
+    },
+    {
+      "data": "<script><!--<script>--!></script>X",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,34): expected-named-closing-tag-but-got-eof",
+        "(1,34): unexpected-eof-in-text-mode"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script>--!></script>X",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--<script>--!></script>X</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script>--!></script>X</script>"
+      }
+    },
+    {
+      "data": "<script><!--<scr'+'ipt></script>--></script>",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,44): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true,
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<scr'+'ipt>",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "-->",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--<scr'+'ipt></script></head><body>--&gt;</body></html>",
+        "noQuirksBodyHtml": "<script><!--<scr'+'ipt></script>--&gt;"
+      }
+    },
+    {
+      "data": "<script><!--<script></scr'+'ipt></script>X",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,42): expected-named-closing-tag-but-got-eof",
+        "(1,42): unexpected-eof-in-text-mode"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "<!--<script></scr'+'ipt></script>X",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script><!--<script></scr'+'ipt></script>X</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script><!--<script></scr'+'ipt></script>X</script>"
+      }
+    },
+    {
+      "data": "<style><!--<style></style>--></style>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,37): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "style": true,
+            "body": true
+          },
+          "no_escape": true,
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "style",
+                    "children": [
+                      {
+                        "text": "<!--<style>",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "-->",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><style><!--<style></style></head><body>--&gt;</body></html>",
+        "noQuirksBodyHtml": "<style><!--<style></style>--&gt;"
+      }
+    },
+    {
+      "data": "<style><!--</style>X",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "style": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "style",
+                    "children": [
+                      {
+                        "text": "<!--",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "X"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><style><!--</style></head><body>X</body></html>",
+        "noQuirksBodyHtml": "<style><!--</style>X"
+      }
+    },
+    {
+      "data": "<style><!--...</style>...--></style>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,36): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "style": true,
+            "body": true
+          },
+          "no_escape": true,
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "style",
+                    "children": [
+                      {
+                        "text": "<!--...",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "...-->",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><style><!--...</style></head><body>...--&gt;</body></html>",
+        "noQuirksBodyHtml": "<style><!--...</style>...--&gt;"
+      }
+    },
+    {
+      "data": "<style><!--<br><html xmlns:v=\"urn:schemas-microsoft-com:vml\"><!--[if !mso]><style></style>X",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "style": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "style",
+                    "children": [
+                      {
+                        "text": "<!--<br><html xmlns:v=\"urn:schemas-microsoft-com:vml\"><!--[if !mso]><style>",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "X"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><style><!--<br><html xmlns:v=\"urn:schemas-microsoft-com:vml\"><!--[if !mso]><style></style></head><body>X</body></html>",
+        "noQuirksBodyHtml": "<style><!--<br><html xmlns:v=\"urn:schemas-microsoft-com:vml\"><!--[if !mso]><style></style>X"
+      }
+    },
+    {
+      "data": "<style><!--...<style><!--...--!></style>--></style>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,51): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "style": true,
+            "body": true
+          },
+          "no_escape": true,
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "style",
+                    "children": [
+                      {
+                        "text": "<!--...<style><!--...--!>",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "-->",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><style><!--...<style><!--...--!></style></head><body>--&gt;</body></html>",
+        "noQuirksBodyHtml": "<style><!--...<style><!--...--!></style>--&gt;"
+      }
+    },
+    {
+      "data": "<style><!--...</style><!-- --><style>@import ...</style>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "style": true,
+            "body": true
+          },
+          "no_escape": true,
+          "comment": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "style",
+                    "children": [
+                      {
+                        "text": "<!--...",
+                        "no_escape": true
+                      }
+                    ]
+                  },
+                  {
+                    "comment": " "
+                  },
+                  {
+                    "tag": "style",
+                    "children": [
+                      {
+                        "text": "@import ...",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><style><!--...</style><!-- --><style>@import ...</style></head><body></body></html>",
+        "noQuirksBodyHtml": "<style><!--...</style><!-- --><style>@import ...</style>"
+      }
+    },
+    {
+      "data": "<style>...<style><!--...</style><!-- --></style>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,48): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "style": true,
+            "body": true
+          },
+          "no_escape": true,
+          "comment": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "style",
+                    "children": [
+                      {
+                        "text": "...<style><!--...",
+                        "no_escape": true
+                      }
+                    ]
+                  },
+                  {
+                    "comment": " "
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><style>...<style><!--...</style><!-- --></head><body></body></html>",
+        "noQuirksBodyHtml": "<style>...<style><!--...</style><!-- -->"
+      }
+    },
+    {
+      "data": "<style>...<!--[if IE]><style>...</style>X",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "style": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "style",
+                    "children": [
+                      {
+                        "text": "...<!--[if IE]><style>...",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "X"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><style>...<!--[if IE]><style>...</style></head><body>X</body></html>",
+        "noQuirksBodyHtml": "<style>...<!--[if IE]><style>...</style>X"
+      }
+    },
+    {
+      "data": "<title><!--<title></title>--></title>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,37): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "title": true,
+            "body": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "title",
+                    "children": [
+                      {
+                        "text": "<!--<title>",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "-->",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><title>&lt;!--&lt;title&gt;</title></head><body>--&gt;</body></html>",
+        "noQuirksBodyHtml": "<title>&lt;!--&lt;title&gt;</title>--&gt;"
+      }
+    },
+    {
+      "data": "<title>&lt;/title></title>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "title": true,
+            "body": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "title",
+                    "children": [
+                      {
+                        "text": "</title>",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><title>&lt;/title&gt;</title></head><body></body></html>",
+        "noQuirksBodyHtml": "<title>&lt;/title&gt;</title>"
+      }
+    },
+    {
+      "data": "<title>foo/title><link></head><body>X",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,37): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "title": true,
+            "body": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "title",
+                    "children": [
+                      {
+                        "text": "foo/title><link></head><body>X",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><title>foo/title&gt;&lt;link&gt;&lt;/head&gt;&lt;body&gt;X</title></head><body></body></html>",
+        "noQuirksBodyHtml": "<title>foo/title&gt;&lt;link&gt;&lt;/head&gt;&lt;body&gt;X</title>"
+      }
+    },
+    {
+      "data": "<noscript><!--<noscript></noscript>--></noscript>",
+      "errors": [
+        "(1,10): expected-doctype-but-got-start-tag",
+        "(1,49): unexpected-end-tag"
+      ],
+      "script": "on",
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "noscript": true,
+            "body": true
+          },
+          "no_escape": true,
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "noscript",
+                    "children": [
+                      {
+                        "text": "<!--<noscript>",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "-->",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><noscript><!--<noscript></noscript></head><body>--&gt;</body></html>",
+        "noQuirksBodyHtml": "<noscript>&lt;!--&lt;noscript&gt;</noscript>--&gt;"
+      }
+    },
+    {
+      "data": "<noscript><!--<noscript></noscript>--></noscript>",
+      "errors": [
+        " * (1,11) missing DOCTYPE"
+      ],
+      "script": "off",
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "noscript": true,
+            "body": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "noscript",
+                    "children": [
+                      {
+                        "comment": "<noscript></noscript>"
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><noscript><!--<noscript></noscript>--></noscript></head><body></body></html>",
+        "noQuirksBodyHtml": "<noscript>&lt;!--&lt;noscript&gt;</noscript>--&gt;"
+      }
+    },
+    {
+      "data": "<noscript><!--</noscript>X<noscript>--></noscript>",
+      "errors": [
+        "(1,10): expected-doctype-but-got-start-tag"
+      ],
+      "script": "on",
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "noscript": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "noscript",
+                    "children": [
+                      {
+                        "text": "<!--",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "X"
+                  },
+                  {
+                    "tag": "noscript",
+                    "children": [
+                      {
+                        "text": "-->",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><noscript><!--</noscript></head><body>X<noscript>--></noscript></body></html>",
+        "noQuirksBodyHtml": "<noscript>&lt;!--</noscript>X<noscript>--&gt;</noscript>"
+      }
+    },
+    {
+      "data": "<noscript><!--</noscript>X<noscript>--></noscript>",
+      "errors": [
+        "(1,10): expected-doctype-but-got-start-tag"
+      ],
+      "script": "off",
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "noscript": true,
+            "body": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "noscript",
+                    "children": [
+                      {
+                        "comment": "</noscript>X<noscript>"
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><noscript><!--</noscript>X<noscript>--></noscript></head><body></body></html>",
+        "noQuirksBodyHtml": "<noscript>&lt;!--</noscript>X<noscript>--&gt;</noscript>"
+      }
+    },
+    {
+      "data": "<noscript><iframe></noscript>X",
+      "errors": [
+        "(1,10): expected-doctype-but-got-start-tag"
+      ],
+      "script": "on",
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "noscript": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "noscript",
+                    "children": [
+                      {
+                        "text": "<iframe>",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "X"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><noscript><iframe></noscript></head><body>X</body></html>",
+        "noQuirksBodyHtml": "<noscript>&lt;iframe&gt;</noscript>X"
+      }
+    },
+    {
+      "data": "<noscript><iframe></noscript>X",
+      "errors": [
+        " * (1,11) missing DOCTYPE",
+        " * (1,19) unexpected token in head noscript",
+        " * (1,31) unexpected EOF"
+      ],
+      "script": "off",
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "noscript": true,
+            "body": true,
+            "iframe": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "noscript"
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "iframe",
+                    "children": [
+                      {
+                        "text": "</noscript>X",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><noscript></noscript></head><body><iframe></noscript>X</iframe></body></html>",
+        "noQuirksBodyHtml": "<noscript>&lt;iframe&gt;</noscript>X"
+      }
+    },
+    {
+      "data": "<noframes><!--<noframes></noframes>--></noframes>",
+      "errors": [
+        "(1,10): expected-doctype-but-got-start-tag",
+        "(1,49): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "noframes": true,
+            "body": true
+          },
+          "no_escape": true,
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "noframes",
+                    "children": [
+                      {
+                        "text": "<!--<noframes>",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "-->",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><noframes><!--<noframes></noframes></head><body>--&gt;</body></html>",
+        "noQuirksBodyHtml": "<noframes><!--<noframes></noframes>--&gt;"
+      }
+    },
+    {
+      "data": "<noframes><body><script><!--...</script></body></noframes></html>",
+      "errors": [
+        "(1,10): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "noframes": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "noframes",
+                    "children": [
+                      {
+                        "text": "<body><script><!--...</script></body>",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><noframes><body><script><!--...</script></body></noframes></head><body></body></html>",
+        "noQuirksBodyHtml": "<noframes><body><script><!--...</script></body></noframes>"
+      }
+    },
+    {
+      "data": "<textarea><!--<textarea></textarea>--></textarea>",
+      "errors": [
+        "(1,10): expected-doctype-but-got-start-tag",
+        "(1,49): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "textarea": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "textarea",
+                    "children": [
+                      {
+                        "text": "<!--<textarea>",
+                        "escaped": true
+                      }
+                    ]
+                  },
+                  {
+                    "text": "-->",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><textarea>&lt;!--&lt;textarea&gt;</textarea>--&gt;</body></html>",
+        "noQuirksBodyHtml": "<textarea>&lt;!--&lt;textarea&gt;</textarea>--&gt;"
+      }
+    },
+    {
+      "data": "<textarea>&lt;/textarea></textarea>",
+      "errors": [
+        "(1,10): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "textarea": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "textarea",
+                    "children": [
+                      {
+                        "text": "</textarea>",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><textarea>&lt;/textarea&gt;</textarea></body></html>",
+        "noQuirksBodyHtml": "<textarea>&lt;/textarea&gt;</textarea>"
+      }
+    },
+    {
+      "data": "<iframe><!--<iframe></iframe>--></iframe>",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,41): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "iframe": true
+          },
+          "no_escape": true,
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "iframe",
+                    "children": [
+                      {
+                        "text": "<!--<iframe>",
+                        "no_escape": true
+                      }
+                    ]
+                  },
+                  {
+                    "text": "-->",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><iframe><!--<iframe></iframe>--&gt;</body></html>",
+        "noQuirksBodyHtml": "<iframe><!--<iframe></iframe>--&gt;"
+      }
+    },
+    {
+      "data": "<iframe>...<!--X->...<!--/X->...</iframe>",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "iframe": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "iframe",
+                    "children": [
+                      {
+                        "text": "...<!--X->...<!--/X->...",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><iframe>...<!--X->...<!--/X->...</iframe></body></html>",
+        "noQuirksBodyHtml": "<iframe>...<!--X->...<!--/X->...</iframe>"
+      }
+    },
+    {
+      "data": "<xmp><!--<xmp></xmp>--></xmp>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,29): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "xmp": true
+          },
+          "no_escape": true,
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "xmp",
+                    "children": [
+                      {
+                        "text": "<!--<xmp>",
+                        "no_escape": true
+                      }
+                    ]
+                  },
+                  {
+                    "text": "-->",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><xmp><!--<xmp></xmp>--&gt;</body></html>",
+        "noQuirksBodyHtml": "<xmp><!--<xmp></xmp>--&gt;"
+      }
+    },
+    {
+      "data": "<noembed><!--<noembed></noembed>--></noembed>",
+      "errors": [
+        "(1,9): expected-doctype-but-got-start-tag",
+        "(1,45): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "noembed": true
+          },
+          "no_escape": true,
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "noembed",
+                    "children": [
+                      {
+                        "text": "<!--<noembed>",
+                        "no_escape": true
+                      }
+                    ]
+                  },
+                  {
+                    "text": "-->",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><noembed><!--<noembed></noembed>--&gt;</body></html>",
+        "noQuirksBodyHtml": "<noembed><!--<noembed></noembed>--&gt;"
+      }
+    },
+    {
+      "data": "<!doctype html><table>\n",
+      "errors": [
+        "(2,0): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "text": "\n"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><table>\n</table></body></html>",
+        "noQuirksBodyHtml": "<table>\n</table>"
+      }
+    },
+    {
+      "data": "<!doctype html><table><td><span><font></span><span>",
+      "errors": [
+        "(1,26): unexpected-cell-in-table-body",
+        "(1,45): unexpected-end-tag",
+        "(1,51): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true,
+            "span": true,
+            "font": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td",
+                                "children": [
+                                  {
+                                    "tag": "span",
+                                    "children": [
+                                      {
+                                        "tag": "font"
+                                      }
+                                    ]
+                                  },
+                                  {
+                                    "tag": "font",
+                                    "children": [
+                                      {
+                                        "tag": "span"
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><span><font></font></span><font><span></span></font></td></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<table><tbody><tr><td><span><font></font></span><font><span></span></font></td></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<!doctype html><form><table></form><form></table></form>",
+      "errors": [
+        "(1,35): unexpected-end-tag-implies-table-voodoo",
+        "(1,35): unexpected-end-tag",
+        "(1,41): unexpected-form-in-table",
+        "(1,56): unexpected-end-tag",
+        "(1,56): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "form": true,
+            "table": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "form",
+                    "children": [
+                      {
+                        "tag": "table",
+                        "children": [
+                          {
+                            "tag": "form"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><form><table><form></form></table></form></body></html>",
+        "noQuirksBodyHtml": "<form><table><form></form></table></form>"
+      }
+    }
+  ],
+  "tests17.dat": [
+    {
+      "data": "<!doctype html><table><tbody><select><tr>",
+      "errors": [
+        "(1,37): unexpected-start-tag-implies-table-voodoo",
+        "(1,41): unexpected-table-element-start-tag-in-select-in-table",
+        "(1,41): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true,
+            "table": true,
+            "tbody": true,
+            "tr": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select"
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><select></select><table><tbody><tr></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<select></select><table><tbody><tr></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<!doctype html><table><tr><select><td>",
+      "errors": [
+        "(1,34): unexpected-start-tag-implies-table-voodoo",
+        "(1,38): unexpected-table-element-start-tag-in-select-in-table",
+        "(1,38): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select"
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><select></select><table><tbody><tr><td></td></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<select></select><table><tbody><tr><td></td></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<!doctype html><table><tr><td><select><td>",
+      "errors": [
+        "(1,42): unexpected-table-element-start-tag-in-select-in-table",
+        "(1,42): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true,
+            "select": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td",
+                                "children": [
+                                  {
+                                    "tag": "select"
+                                  }
+                                ]
+                              },
+                              {
+                                "tag": "td"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><select></select></td><td></td></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<table><tbody><tr><td><select></select></td><td></td></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<!doctype html><table><tr><th><select><td>",
+      "errors": [
+        "(1,42): unexpected-table-element-start-tag-in-select-in-table",
+        "(1,42): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "th": true,
+            "select": true,
+            "td": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "th",
+                                "children": [
+                                  {
+                                    "tag": "select"
+                                  }
+                                ]
+                              },
+                              {
+                                "tag": "td"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><th><select></select></th><td></td></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<table><tbody><tr><th><select></select></th><td></td></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<!doctype html><table><caption><select><tr>",
+      "errors": [
+        "(1,43): unexpected-table-element-start-tag-in-select-in-table",
+        "(1,43): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "caption": true,
+            "select": true,
+            "tbody": true,
+            "tr": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "caption",
+                        "children": [
+                          {
+                            "tag": "select"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><table><caption><select></select></caption><tbody><tr></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<table><caption><select></select></caption><tbody><tr></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<!doctype html><select><tr>",
+      "errors": [
+        "(1,27): unexpected-start-tag-in-select",
+        "(1,27): eof-in-select"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><select></select></body></html>",
+        "noQuirksBodyHtml": "<select></select>"
+      }
+    },
+    {
+      "data": "<!doctype html><select><td>",
+      "errors": [
+        "(1,27): unexpected-start-tag-in-select",
+        "(1,27): eof-in-select"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><select></select></body></html>",
+        "noQuirksBodyHtml": "<select></select>"
+      }
+    },
+    {
+      "data": "<!doctype html><select><th>",
+      "errors": [
+        "(1,27): unexpected-start-tag-in-select",
+        "(1,27): eof-in-select"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><select></select></body></html>",
+        "noQuirksBodyHtml": "<select></select>"
+      }
+    },
+    {
+      "data": "<!doctype html><select><tbody>",
+      "errors": [
+        "(1,30): unexpected-start-tag-in-select",
+        "(1,30): eof-in-select"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><select></select></body></html>",
+        "noQuirksBodyHtml": "<select></select>"
+      }
+    },
+    {
+      "data": "<!doctype html><select><thead>",
+      "errors": [
+        "(1,30): unexpected-start-tag-in-select",
+        "(1,30): eof-in-select"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><select></select></body></html>",
+        "noQuirksBodyHtml": "<select></select>"
+      }
+    },
+    {
+      "data": "<!doctype html><select><tfoot>",
+      "errors": [
+        "(1,30): unexpected-start-tag-in-select",
+        "(1,30): eof-in-select"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><select></select></body></html>",
+        "noQuirksBodyHtml": "<select></select>"
+      }
+    },
+    {
+      "data": "<!doctype html><select><caption>",
+      "errors": [
+        "(1,32): unexpected-start-tag-in-select",
+        "(1,32): eof-in-select"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><select></select></body></html>",
+        "noQuirksBodyHtml": "<select></select>"
+      }
+    },
+    {
+      "data": "<!doctype html><table><tr></table>a",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "text": "a"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr></tr></tbody></table>a</body></html>",
+        "noQuirksBodyHtml": "<table><tbody><tr></tr></tbody></table>a"
+      }
+    }
+  ],
+  "tests18.dat": [
+    {
+      "data": "<!doctype html><plaintext></plaintext>",
+      "errors": [
+        "(1,38): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "plaintext": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "plaintext",
+                    "children": [
+                      {
+                        "text": "</plaintext>",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><plaintext></plaintext></plaintext></body></html>",
+        "noQuirksBodyHtml": "<plaintext></plaintext></plaintext>"
+      }
+    },
+    {
+      "data": "<!doctype html><table><plaintext></plaintext>",
+      "errors": [
+        "(1,33): foster-parenting-start-tag",
+        "(1,34): foster-parenting-character",
+        "(1,35): foster-parenting-character",
+        "(1,36): foster-parenting-character",
+        "(1,37): foster-parenting-character",
+        "(1,38): foster-parenting-character",
+        "(1,39): foster-parenting-character",
+        "(1,40): foster-parenting-character",
+        "(1,41): foster-parenting-character",
+        "(1,42): foster-parenting-character",
+        "(1,43): foster-parenting-character",
+        "(1,44): foster-parenting-character",
+        "(1,45): foster-parenting-character",
+        "(1,45): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "plaintext": true,
+            "table": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "plaintext",
+                    "children": [
+                      {
+                        "text": "</plaintext>",
+                        "no_escape": true
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "table"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><plaintext></plaintext></plaintext><table></table></body></html>",
+        "noQuirksBodyHtml": "<plaintext></plaintext></plaintext><table></table>"
+      }
+    },
+    {
+      "data": "<!doctype html><table><tbody><plaintext></plaintext>",
+      "errors": [
+        "(1,40): foster-parenting-start-tag",
+        "(1,41): foster-parenting-character",
+        "(1,41): foster-parenting-character",
+        "(1,41): foster-parenting-character",
+        "(1,41): foster-parenting-character",
+        "(1,41): foster-parenting-character",
+        "(1,41): foster-parenting-character",
+        "(1,41): foster-parenting-character",
+        "(1,41): foster-parenting-character",
+        "(1,41): foster-parenting-character",
+        "(1,41): foster-parenting-character",
+        "(1,41): foster-parenting-character",
+        "(1,41): foster-parenting-character",
+        "(1,52): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "plaintext": true,
+            "table": true,
+            "tbody": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "plaintext",
+                    "children": [
+                      {
+                        "text": "</plaintext>",
+                        "no_escape": true
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><plaintext></plaintext></plaintext><table><tbody></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<plaintext></plaintext></plaintext><table><tbody></tbody></table>"
+      }
+    },
+    {
+      "data": "<!doctype html><table><tbody><tr><plaintext></plaintext>",
+      "errors": [
+        "(1,44): foster-parenting-start-tag",
+        "(1,45): foster-parenting-character",
+        "(1,46): foster-parenting-character",
+        "(1,47): foster-parenting-character",
+        "(1,48): foster-parenting-character",
+        "(1,49): foster-parenting-character",
+        "(1,50): foster-parenting-character",
+        "(1,51): foster-parenting-character",
+        "(1,52): foster-parenting-character",
+        "(1,53): foster-parenting-character",
+        "(1,54): foster-parenting-character",
+        "(1,55): foster-parenting-character",
+        "(1,56): foster-parenting-character",
+        "(1,56): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "plaintext": true,
+            "table": true,
+            "tbody": true,
+            "tr": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "plaintext",
+                    "children": [
+                      {
+                        "text": "</plaintext>",
+                        "no_escape": true
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><plaintext></plaintext></plaintext><table><tbody><tr></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<plaintext></plaintext></plaintext><table><tbody><tr></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<!doctype html><table><td><plaintext></plaintext>",
+      "errors": [
+        "(1,26): unexpected-cell-in-table-body",
+        "(1,49): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true,
+            "plaintext": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td",
+                                "children": [
+                                  {
+                                    "tag": "plaintext",
+                                    "children": [
+                                      {
+                                        "text": "</plaintext>",
+                                        "no_escape": true
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><plaintext></plaintext></plaintext></td></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<table><tbody><tr><td><plaintext></plaintext></plaintext></td></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<!doctype html><table><caption><plaintext></plaintext>",
+      "errors": [
+        "(1,54): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "caption": true,
+            "plaintext": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "caption",
+                        "children": [
+                          {
+                            "tag": "plaintext",
+                            "children": [
+                              {
+                                "text": "</plaintext>",
+                                "no_escape": true
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><table><caption><plaintext></plaintext></plaintext></caption></table></body></html>",
+        "noQuirksBodyHtml": "<table><caption><plaintext></plaintext></plaintext></caption></table>"
+      }
+    },
+    {
+      "data": "<!doctype html><table><tr><style></script></style>abc",
+      "errors": [
+        "(1,51): foster-parenting-character",
+        "(1,52): foster-parenting-character",
+        "(1,53): foster-parenting-character",
+        "(1,53): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "style": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "abc"
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "style",
+                                "children": [
+                                  {
+                                    "text": "</script>",
+                                    "no_escape": true
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body>abc<table><tbody><tr><style></script></style></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "abc<table><tbody><tr><style></script></style></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<!doctype html><table><tr><script></style></script>abc",
+      "errors": [
+        "(1,52): foster-parenting-character",
+        "(1,53): foster-parenting-character",
+        "(1,54): foster-parenting-character",
+        "(1,54): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "script": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "abc"
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "script",
+                                "children": [
+                                  {
+                                    "text": "</style>",
+                                    "no_escape": true
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body>abc<table><tbody><tr><script></style></script></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "abc<table><tbody><tr><script></style></script></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<!doctype html><table><caption><style></script></style>abc",
+      "errors": [
+        "(1,58): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "caption": true,
+            "style": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "caption",
+                        "children": [
+                          {
+                            "tag": "style",
+                            "children": [
+                              {
+                                "text": "</script>",
+                                "no_escape": true
+                              }
+                            ]
+                          },
+                          {
+                            "text": "abc"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><table><caption><style></script></style>abc</caption></table></body></html>",
+        "noQuirksBodyHtml": "<table><caption><style></script></style>abc</caption></table>"
+      }
+    },
+    {
+      "data": "<!doctype html><table><td><style></script></style>abc",
+      "errors": [
+        "(1,26): unexpected-cell-in-table-body",
+        "(1,53): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true,
+            "style": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td",
+                                "children": [
+                                  {
+                                    "tag": "style",
+                                    "children": [
+                                      {
+                                        "text": "</script>",
+                                        "no_escape": true
+                                      }
+                                    ]
+                                  },
+                                  {
+                                    "text": "abc"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><style></script></style>abc</td></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<table><tbody><tr><td><style></script></style>abc</td></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<!doctype html><select><script></style></script>abc",
+      "errors": [
+        "(1,51): eof-in-select"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true,
+            "script": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select",
+                    "children": [
+                      {
+                        "tag": "script",
+                        "children": [
+                          {
+                            "text": "</style>",
+                            "no_escape": true
+                          }
+                        ]
+                      },
+                      {
+                        "text": "abc"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><select><script></style></script>abc</select></body></html>",
+        "noQuirksBodyHtml": "<select><script></style></script>abc</select>"
+      }
+    },
+    {
+      "data": "<!doctype html><table><select><script></style></script>abc",
+      "errors": [
+        "(1,30): unexpected-start-tag-implies-table-voodoo",
+        "(1,58): eof-in-select"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true,
+            "script": true,
+            "table": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select",
+                    "children": [
+                      {
+                        "tag": "script",
+                        "children": [
+                          {
+                            "text": "</style>",
+                            "no_escape": true
+                          }
+                        ]
+                      },
+                      {
+                        "text": "abc"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "table"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><select><script></style></script>abc</select><table></table></body></html>",
+        "noQuirksBodyHtml": "<select><script></style></script>abc</select><table></table>"
+      }
+    },
+    {
+      "data": "<!doctype html><table><tr><select><script></style></script>abc",
+      "errors": [
+        "(1,34): unexpected-start-tag-implies-table-voodoo",
+        "(1,62): eof-in-select"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true,
+            "script": true,
+            "table": true,
+            "tbody": true,
+            "tr": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select",
+                    "children": [
+                      {
+                        "tag": "script",
+                        "children": [
+                          {
+                            "text": "</style>",
+                            "no_escape": true
+                          }
+                        ]
+                      },
+                      {
+                        "text": "abc"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><select><script></style></script>abc</select><table><tbody><tr></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<select><script></style></script>abc</select><table><tbody><tr></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<!doctype html><frameset></frameset><noframes>abc",
+      "errors": [
+        "(1,49): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true,
+            "noframes": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              },
+              {
+                "tag": "noframes",
+                "children": [
+                  {
+                    "text": "abc",
+                    "no_escape": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><frameset></frameset><noframes>abc</noframes></html>",
+        "noQuirksBodyHtml": "<noframes>abc</noframes>"
+      }
+    },
+    {
+      "data": "<!doctype html><frameset></frameset><noframes>abc</noframes><!--abc-->",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true,
+            "noframes": true
+          },
+          "doctype": true,
+          "no_escape": true,
+          "comment": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              },
+              {
+                "tag": "noframes",
+                "children": [
+                  {
+                    "text": "abc",
+                    "no_escape": true
+                  }
+                ]
+              },
+              {
+                "comment": "abc"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><frameset></frameset><noframes>abc</noframes><!--abc--></html>",
+        "noQuirksBodyHtml": "<noframes>abc</noframes><!--abc-->"
+      }
+    },
+    {
+      "data": "<!doctype html><frameset></frameset></html><noframes>abc",
+      "errors": [
+        "(1,56): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true,
+            "noframes": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              },
+              {
+                "tag": "noframes",
+                "children": [
+                  {
+                    "text": "abc",
+                    "no_escape": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><frameset></frameset><noframes>abc</noframes></html>",
+        "noQuirksBodyHtml": "<noframes>abc</noframes>"
+      }
+    },
+    {
+      "data": "<!doctype html><frameset></frameset></html><noframes>abc</noframes><!--abc-->",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true,
+            "noframes": true
+          },
+          "doctype": true,
+          "no_escape": true,
+          "comment": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              },
+              {
+                "tag": "noframes",
+                "children": [
+                  {
+                    "text": "abc",
+                    "no_escape": true
+                  }
+                ]
+              }
+            ]
+          },
+          {
+            "comment": "abc"
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><frameset></frameset><noframes>abc</noframes></html><!--abc-->",
+        "noQuirksBodyHtml": "<noframes>abc</noframes><!--abc-->"
+      }
+    },
+    {
+      "data": "<!doctype html><table><tr></tbody><tfoot>",
+      "errors": [
+        "(1,41): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "tfoot": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "tfoot"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr></tr></tbody><tfoot></tfoot></table></body></html>",
+        "noQuirksBodyHtml": "<table><tbody><tr></tr></tbody><tfoot></tfoot></table>"
+      }
+    },
+    {
+      "data": "<!doctype html><table><td><svg></svg>abc<td>",
+      "errors": [
+        "(1,26): unexpected-cell-in-table-body",
+        "(1,44): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true,
+            "svg svg": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td",
+                                "children": [
+                                  {
+                                    "tag": "svg",
+                                    "ns": "http://www.w3.org/2000/svg"
+                                  },
+                                  {
+                                    "text": "abc"
+                                  }
+                                ]
+                              },
+                              {
+                                "tag": "td"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><svg></svg>abc</td><td></td></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<table><tbody><tr><td><svg></svg>abc</td><td></td></tr></tbody></table>"
+      }
+    }
+  ],
+  "tests19.dat": [
+    {
+      "data": "<!doctype html><math><mn DefinitionUrl=\"foo\">",
+      "errors": [
+        "(1,45): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "math mn": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "mn",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "attrs": [
+                          {
+                            "name": "definitionURL",
+                            "value": "foo"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><math><mn definitionURL=\"foo\"></mn></math></body></html>",
+        "noQuirksBodyHtml": "<math><mn definitionURL=\"foo\"></mn></math>"
+      }
+    },
+    {
+      "data": "<!doctype html><html></p><!--foo-->",
+      "errors": [
+        "(1,25): end-tag-after-implied-root"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true,
+          "comment": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "comment": "foo"
+              },
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><!--foo--><head></head><body></body></html>",
+        "noQuirksBodyHtml": "<p></p><!--foo-->"
+      }
+    },
+    {
+      "data": "<!doctype html><head></head></p><!--foo-->",
+      "errors": [
+        "(1,32): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true,
+          "comment": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "comment": "foo"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><!--foo--><body></body></html>",
+        "noQuirksBodyHtml": "<p></p><!--foo-->"
+      }
+    },
+    {
+      "data": "<!doctype html><body><p><pre>",
+      "errors": [
+        "(1,29): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "pre": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p"
+                  },
+                  {
+                    "tag": "pre"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p></p><pre></pre></body></html>",
+        "noQuirksBodyHtml": "<p></p><pre></pre>"
+      }
+    },
+    {
+      "data": "<!doctype html><body><p><listing>",
+      "errors": [
+        "(1,33): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "listing": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p"
+                  },
+                  {
+                    "tag": "listing"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p></p><listing></listing></body></html>",
+        "noQuirksBodyHtml": "<p></p><listing></listing>"
+      }
+    },
+    {
+      "data": "<!doctype html><p><plaintext>",
+      "errors": [
+        "(1,29): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "plaintext": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p"
+                  },
+                  {
+                    "tag": "plaintext"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p></p><plaintext></plaintext></body></html>",
+        "noQuirksBodyHtml": "<p></p><plaintext></plaintext>"
+      }
+    },
+    {
+      "data": "<!doctype html><p><h1>",
+      "errors": [
+        "(1,22): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "h1": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p"
+                  },
+                  {
+                    "tag": "h1"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p></p><h1></h1></body></html>",
+        "noQuirksBodyHtml": "<p></p><h1></h1>"
+      }
+    },
+    {
+      "data": "<!doctype html><form><isindex>",
+      "errors": [
+        "(1,30): deprecated-tag",
+        "(1,30): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "form": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "form"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><form></form></body></html>",
+        "noQuirksBodyHtml": "<form></form>"
+      }
+    },
+    {
+      "data": "<!doctype html><isindex action=\"POST\">",
+      "errors": [
+        "(1,38): deprecated-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "form": true,
+            "hr": true,
+            "label": true,
+            "input": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "form",
+                    "attrs": [
+                      {
+                        "name": "action",
+                        "value": "POST"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "tag": "hr"
+                      },
+                      {
+                        "tag": "label",
+                        "children": [
+                          {
+                            "text": "This is a searchable index. Enter search keywords: "
+                          },
+                          {
+                            "tag": "input",
+                            "attrs": [
+                              {
+                                "name": "name",
+                                "value": "isindex"
+                              }
+                            ]
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "hr"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><form action=\"POST\"><hr><label>This is a searchable index. Enter search keywords: <input name=\"isindex\"></label><hr></form></body></html>",
+        "noQuirksBodyHtml": "<form action=\"POST\"><hr><label>This is a searchable index. Enter search keywords: <input name=\"isindex\"></label><hr></form>"
+      }
+    },
+    {
+      "data": "<!doctype html><isindex prompt=\"this is isindex\">",
+      "errors": [
+        "(1,49): deprecated-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "form": true,
+            "hr": true,
+            "label": true,
+            "input": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "form",
+                    "children": [
+                      {
+                        "tag": "hr"
+                      },
+                      {
+                        "tag": "label",
+                        "children": [
+                          {
+                            "text": "this is isindex"
+                          },
+                          {
+                            "tag": "input",
+                            "attrs": [
+                              {
+                                "name": "name",
+                                "value": "isindex"
+                              }
+                            ]
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "hr"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><form><hr><label>this is isindex<input name=\"isindex\"></label><hr></form></body></html>",
+        "noQuirksBodyHtml": "<form><hr><label>this is isindex<input name=\"isindex\"></label><hr></form>"
+      }
+    },
+    {
+      "data": "<!doctype html><isindex type=\"hidden\">",
+      "errors": [
+        "(1,38): deprecated-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "form": true,
+            "hr": true,
+            "label": true,
+            "input": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "form",
+                    "children": [
+                      {
+                        "tag": "hr"
+                      },
+                      {
+                        "tag": "label",
+                        "children": [
+                          {
+                            "text": "This is a searchable index. Enter search keywords: "
+                          },
+                          {
+                            "tag": "input",
+                            "attrs": [
+                              {
+                                "name": "name",
+                                "value": "isindex"
+                              },
+                              {
+                                "name": "type",
+                                "value": "hidden"
+                              }
+                            ]
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "hr"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><form><hr><label>This is a searchable index. Enter search keywords: <input name=\"isindex\" type=\"hidden\"></label><hr></form></body></html>",
+        "noQuirksBodyHtml": "<form><hr><label>This is a searchable index. Enter search keywords: <input name=\"isindex\" type=\"hidden\"></label><hr></form>"
+      }
+    },
+    {
+      "data": "<!doctype html><isindex name=\"foo\">",
+      "errors": [
+        "(1,35): deprecated-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "form": true,
+            "hr": true,
+            "label": true,
+            "input": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "form",
+                    "children": [
+                      {
+                        "tag": "hr"
+                      },
+                      {
+                        "tag": "label",
+                        "children": [
+                          {
+                            "text": "This is a searchable index. Enter search keywords: "
+                          },
+                          {
+                            "tag": "input",
+                            "attrs": [
+                              {
+                                "name": "name",
+                                "value": "isindex"
+                              }
+                            ]
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "hr"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><form><hr><label>This is a searchable index. Enter search keywords: <input name=\"isindex\"></label><hr></form></body></html>",
+        "noQuirksBodyHtml": "<form><hr><label>This is a searchable index. Enter search keywords: <input name=\"isindex\"></label><hr></form>"
+      }
+    },
+    {
+      "data": "<!doctype html><ruby><p><rp>",
+      "errors": [
+        "(1,28): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "ruby": true,
+            "p": true,
+            "rp": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "ruby",
+                    "children": [
+                      {
+                        "tag": "p"
+                      },
+                      {
+                        "tag": "rp"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><ruby><p></p><rp></rp></ruby></body></html>",
+        "noQuirksBodyHtml": "<ruby><p></p><rp></rp></ruby>"
+      }
+    },
+    {
+      "data": "<!doctype html><ruby><div><span><rp>",
+      "errors": [
+        "(1,36): XXX-undefined-error",
+        "(1,36): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "ruby": true,
+            "div": true,
+            "span": true,
+            "rp": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "ruby",
+                    "children": [
+                      {
+                        "tag": "div",
+                        "children": [
+                          {
+                            "tag": "span",
+                            "children": [
+                              {
+                                "tag": "rp"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><ruby><div><span><rp></rp></span></div></ruby></body></html>",
+        "noQuirksBodyHtml": "<ruby><div><span><rp></rp></span></div></ruby>"
+      }
+    },
+    {
+      "data": "<!doctype html><ruby><div><p><rp>",
+      "errors": [
+        "(1,33): XXX-undefined-error",
+        "(1,33): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "ruby": true,
+            "div": true,
+            "p": true,
+            "rp": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "ruby",
+                    "children": [
+                      {
+                        "tag": "div",
+                        "children": [
+                          {
+                            "tag": "p"
+                          },
+                          {
+                            "tag": "rp"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><ruby><div><p></p><rp></rp></div></ruby></body></html>",
+        "noQuirksBodyHtml": "<ruby><div><p></p><rp></rp></div></ruby>"
+      }
+    },
+    {
+      "data": "<!doctype html><ruby><p><rt>",
+      "errors": [
+        "(1,28): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "ruby": true,
+            "p": true,
+            "rt": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "ruby",
+                    "children": [
+                      {
+                        "tag": "p"
+                      },
+                      {
+                        "tag": "rt"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><ruby><p></p><rt></rt></ruby></body></html>",
+        "noQuirksBodyHtml": "<ruby><p></p><rt></rt></ruby>"
+      }
+    },
+    {
+      "data": "<!doctype html><ruby><div><span><rt>",
+      "errors": [
+        "(1,36): XXX-undefined-error",
+        "(1,36): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "ruby": true,
+            "div": true,
+            "span": true,
+            "rt": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "ruby",
+                    "children": [
+                      {
+                        "tag": "div",
+                        "children": [
+                          {
+                            "tag": "span",
+                            "children": [
+                              {
+                                "tag": "rt"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><ruby><div><span><rt></rt></span></div></ruby></body></html>",
+        "noQuirksBodyHtml": "<ruby><div><span><rt></rt></span></div></ruby>"
+      }
+    },
+    {
+      "data": "<!doctype html><ruby><div><p><rt>",
+      "errors": [
+        "(1,33): XXX-undefined-error",
+        "(1,33): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "ruby": true,
+            "div": true,
+            "p": true,
+            "rt": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "ruby",
+                    "children": [
+                      {
+                        "tag": "div",
+                        "children": [
+                          {
+                            "tag": "p"
+                          },
+                          {
+                            "tag": "rt"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><ruby><div><p></p><rt></rt></div></ruby></body></html>",
+        "noQuirksBodyHtml": "<ruby><div><p></p><rt></rt></div></ruby>"
+      }
+    },
+    {
+      "data": "<html><ruby>a<rb>b<rt></ruby></html>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "ruby": true,
+            "rb": true,
+            "rt": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "ruby",
+                    "children": [
+                      {
+                        "text": "a"
+                      },
+                      {
+                        "tag": "rb",
+                        "children": [
+                          {
+                            "text": "b"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "rt"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><ruby>a<rb>b</rb><rt></rt></ruby></body></html>",
+        "noQuirksBodyHtml": "<ruby>a<rb>b</rb><rt></rt></ruby>"
+      }
+    },
+    {
+      "data": "<html><ruby>a<rp>b<rt></ruby></html>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "ruby": true,
+            "rp": true,
+            "rt": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "ruby",
+                    "children": [
+                      {
+                        "text": "a"
+                      },
+                      {
+                        "tag": "rp",
+                        "children": [
+                          {
+                            "text": "b"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "rt"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><ruby>a<rp>b</rp><rt></rt></ruby></body></html>",
+        "noQuirksBodyHtml": "<ruby>a<rp>b</rp><rt></rt></ruby>"
+      }
+    },
+    {
+      "data": "<html><ruby>a<rt>b<rt></ruby></html>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "ruby": true,
+            "rt": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "ruby",
+                    "children": [
+                      {
+                        "text": "a"
+                      },
+                      {
+                        "tag": "rt",
+                        "children": [
+                          {
+                            "text": "b"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "rt"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><ruby>a<rt>b</rt><rt></rt></ruby></body></html>",
+        "noQuirksBodyHtml": "<ruby>a<rt>b</rt><rt></rt></ruby>"
+      }
+    },
+    {
+      "data": "<html><ruby>a<rtc>b<rt>c<rb>d</ruby></html>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "ruby": true,
+            "rtc": true,
+            "rt": true,
+            "rb": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "ruby",
+                    "children": [
+                      {
+                        "text": "a"
+                      },
+                      {
+                        "tag": "rtc",
+                        "children": [
+                          {
+                            "text": "b"
+                          },
+                          {
+                            "tag": "rt",
+                            "children": [
+                              {
+                                "text": "c"
+                              }
+                            ]
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "rb",
+                        "children": [
+                          {
+                            "text": "d"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><ruby>a<rtc>b<rt>c</rt></rtc><rb>d</rb></ruby></body></html>",
+        "noQuirksBodyHtml": "<ruby>a<rtc>b<rt>c</rt></rtc><rb>d</rb></ruby>"
+      }
+    },
+    {
+      "data": "<!doctype html><math/><foo>",
+      "errors": [
+        "(1,27): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "foo": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML"
+                  },
+                  {
+                    "tag": "foo"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><math></math><foo></foo></body></html>",
+        "noQuirksBodyHtml": "<math></math><foo></foo>"
+      }
+    },
+    {
+      "data": "<!doctype html><svg/><foo>",
+      "errors": [
+        "(1,26): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true,
+            "foo": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg"
+                  },
+                  {
+                    "tag": "foo"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><svg></svg><foo></foo></body></html>",
+        "noQuirksBodyHtml": "<svg></svg><foo></foo>"
+      }
+    },
+    {
+      "data": "<!doctype html><div></body><!--foo-->",
+      "errors": [
+        "(1,27): expected-one-end-tag-but-got-another"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true
+          },
+          "doctype": true,
+          "comment": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div"
+                  }
+                ]
+              },
+              {
+                "comment": "foo"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><div></div></body><!--foo--></html>",
+        "noQuirksBodyHtml": "<div><!--foo--></div>"
+      }
+    },
+    {
+      "data": "<!doctype html><h1><div><h3><span></h1>foo",
+      "errors": [
+        "(1,39): end-tag-too-early",
+        "(1,42): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "h1": true,
+            "div": true,
+            "h3": true,
+            "span": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "h1",
+                    "children": [
+                      {
+                        "tag": "div",
+                        "children": [
+                          {
+                            "tag": "h3",
+                            "children": [
+                              {
+                                "tag": "span"
+                              }
+                            ]
+                          },
+                          {
+                            "text": "foo"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><h1><div><h3><span></span></h3>foo</div></h1></body></html>",
+        "noQuirksBodyHtml": "<h1><div><h3><span></span></h3>foo</div></h1>"
+      }
+    },
+    {
+      "data": "<!doctype html><p></h3>foo",
+      "errors": [
+        "(1,23): end-tag-too-early"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "text": "foo"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p>foo</p></body></html>",
+        "noQuirksBodyHtml": "<p>foo</p>"
+      }
+    },
+    {
+      "data": "<!doctype html><h3><li>abc</h2>foo",
+      "errors": [
+        "(1,31): end-tag-too-early"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "h3": true,
+            "li": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "h3",
+                    "children": [
+                      {
+                        "tag": "li",
+                        "children": [
+                          {
+                            "text": "abc"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "text": "foo"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><h3><li>abc</li></h3>foo</body></html>",
+        "noQuirksBodyHtml": "<h3><li>abc</li></h3>foo"
+      }
+    },
+    {
+      "data": "<!doctype html><table>abc<!--foo-->",
+      "errors": [
+        "(1,23): foster-parenting-character",
+        "(1,24): foster-parenting-character",
+        "(1,25): foster-parenting-character",
+        "(1,35): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true
+          },
+          "doctype": true,
+          "comment": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "abc"
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "comment": "foo"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body>abc<table><!--foo--></table></body></html>",
+        "noQuirksBodyHtml": "abc<table><!--foo--></table>"
+      }
+    },
+    {
+      "data": "<!doctype html><table>  <!--foo-->",
+      "errors": [
+        "(1,34): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true
+          },
+          "doctype": true,
+          "comment": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "text": "  "
+                      },
+                      {
+                        "comment": "foo"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><table>  <!--foo--></table></body></html>",
+        "noQuirksBodyHtml": "<table>  <!--foo--></table>"
+      }
+    },
+    {
+      "data": "<!doctype html><table> b <!--foo-->",
+      "errors": [
+        "(1,23): foster-parenting-character",
+        "(1,24): foster-parenting-character",
+        "(1,25): foster-parenting-character",
+        "(1,35): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true
+          },
+          "doctype": true,
+          "comment": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": " b "
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "comment": "foo"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body> b <table><!--foo--></table></body></html>",
+        "noQuirksBodyHtml": " b <table><!--foo--></table>"
+      }
+    },
+    {
+      "data": "<!doctype html><select><option><option>",
+      "errors": [
+        "(1,39): eof-in-select"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true,
+            "option": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select",
+                    "children": [
+                      {
+                        "tag": "option"
+                      },
+                      {
+                        "tag": "option"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><select><option></option><option></option></select></body></html>",
+        "noQuirksBodyHtml": "<select><option></option><option></option></select>"
+      }
+    },
+    {
+      "data": "<!doctype html><select><option></optgroup>",
+      "errors": [
+        "(1,42): unexpected-end-tag-in-select",
+        "(1,42): eof-in-select"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true,
+            "option": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select",
+                    "children": [
+                      {
+                        "tag": "option"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><select><option></option></select></body></html>",
+        "noQuirksBodyHtml": "<select><option></option></select>"
+      }
+    },
+    {
+      "data": "<!doctype html><select><option></optgroup>",
+      "errors": [
+        "(1,42): unexpected-end-tag-in-select",
+        "(1,42): eof-in-select"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true,
+            "option": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select",
+                    "children": [
+                      {
+                        "tag": "option"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><select><option></option></select></body></html>",
+        "noQuirksBodyHtml": "<select><option></option></select>"
+      }
+    },
+    {
+      "data": "<!doctype html><dd><optgroup><dd>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "dd": true,
+            "optgroup": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "dd",
+                    "children": [
+                      {
+                        "tag": "optgroup"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "dd"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><dd><optgroup></optgroup></dd><dd></dd></body></html>",
+        "noQuirksBodyHtml": "<dd><optgroup></optgroup></dd><dd></dd>"
+      }
+    },
+    {
+      "data": "<!doctype html><p><math><mi><p><h1>",
+      "errors": [
+        "(1,35): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "math math": true,
+            "math mi": true,
+            "h1": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "math",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "children": [
+                          {
+                            "tag": "mi",
+                            "ns": "http://www.w3.org/1998/Math/MathML",
+                            "children": [
+                              {
+                                "tag": "p"
+                              },
+                              {
+                                "tag": "h1"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p><math><mi><p></p><h1></h1></mi></math></p></body></html>",
+        "noQuirksBodyHtml": "<p><math><mi><p></p><h1></h1></mi></math></p>"
+      }
+    },
+    {
+      "data": "<!doctype html><p><math><mo><p><h1>",
+      "errors": [
+        "(1,35): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "math math": true,
+            "math mo": true,
+            "h1": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "math",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "children": [
+                          {
+                            "tag": "mo",
+                            "ns": "http://www.w3.org/1998/Math/MathML",
+                            "children": [
+                              {
+                                "tag": "p"
+                              },
+                              {
+                                "tag": "h1"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p><math><mo><p></p><h1></h1></mo></math></p></body></html>",
+        "noQuirksBodyHtml": "<p><math><mo><p></p><h1></h1></mo></math></p>"
+      }
+    },
+    {
+      "data": "<!doctype html><p><math><mn><p><h1>",
+      "errors": [
+        "(1,35): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "math math": true,
+            "math mn": true,
+            "h1": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "math",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "children": [
+                          {
+                            "tag": "mn",
+                            "ns": "http://www.w3.org/1998/Math/MathML",
+                            "children": [
+                              {
+                                "tag": "p"
+                              },
+                              {
+                                "tag": "h1"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p><math><mn><p></p><h1></h1></mn></math></p></body></html>",
+        "noQuirksBodyHtml": "<p><math><mn><p></p><h1></h1></mn></math></p>"
+      }
+    },
+    {
+      "data": "<!doctype html><p><math><ms><p><h1>",
+      "errors": [
+        "(1,35): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "math math": true,
+            "math ms": true,
+            "h1": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "math",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "children": [
+                          {
+                            "tag": "ms",
+                            "ns": "http://www.w3.org/1998/Math/MathML",
+                            "children": [
+                              {
+                                "tag": "p"
+                              },
+                              {
+                                "tag": "h1"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p><math><ms><p></p><h1></h1></ms></math></p></body></html>",
+        "noQuirksBodyHtml": "<p><math><ms><p></p><h1></h1></ms></math></p>"
+      }
+    },
+    {
+      "data": "<!doctype html><p><math><mtext><p><h1>",
+      "errors": [
+        "(1,38): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "math math": true,
+            "math mtext": true,
+            "h1": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "math",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "children": [
+                          {
+                            "tag": "mtext",
+                            "ns": "http://www.w3.org/1998/Math/MathML",
+                            "children": [
+                              {
+                                "tag": "p"
+                              },
+                              {
+                                "tag": "h1"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p><math><mtext><p></p><h1></h1></mtext></math></p></body></html>",
+        "noQuirksBodyHtml": "<p><math><mtext><p></p><h1></h1></mtext></math></p>"
+      }
+    },
+    {
+      "data": "<!doctype html><frameset></noframes>",
+      "errors": [
+        "(1,36): unexpected-end-tag-in-frameset",
+        "(1,36): eof-in-frameset"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<!doctype html><html c=d><body></html><html a=b>",
+      "errors": [
+        "(1,48): non-html-root"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "attrs": [
+              {
+                "name": "a",
+                "value": "b"
+              },
+              {
+                "name": "c",
+                "value": "d"
+              }
+            ],
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html c=\"d\" a=\"b\"><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<!doctype html><html c=d><frameset></frameset></html><html a=b>",
+      "errors": [
+        "(1,63): non-html-root"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "attrs": [
+              {
+                "name": "a",
+                "value": "b"
+              },
+              {
+                "name": "c",
+                "value": "d"
+              }
+            ],
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html c=\"d\" a=\"b\"><head></head><frameset></frameset></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<!doctype html><html><frameset></frameset></html><!--foo-->",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true
+          },
+          "doctype": true,
+          "comment": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              }
+            ]
+          },
+          {
+            "comment": "foo"
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html><!--foo-->",
+        "noQuirksBodyHtml": "<!--foo-->"
+      }
+    },
+    {
+      "data": "<!doctype html><html><frameset></frameset></html>  ",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              },
+              {
+                "text": "  "
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><frameset></frameset>  </html>",
+        "noQuirksBodyHtml": "  "
+      }
+    },
+    {
+      "data": "<!doctype html><html><frameset></frameset></html>abc",
+      "errors": [
+        "(1,50): expected-eof-but-got-char",
+        "(1,51): expected-eof-but-got-char",
+        "(1,52): expected-eof-but-got-char"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
+        "noQuirksBodyHtml": "abc"
+      }
+    },
+    {
+      "data": "<!doctype html><html><frameset></frameset></html><p>",
+      "errors": [
+        "(1,52): expected-eof-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
+        "noQuirksBodyHtml": "<p></p>"
+      }
+    },
+    {
+      "data": "<!doctype html><html><frameset></frameset></html></p>",
+      "errors": [
+        "(1,53): expected-eof-but-got-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
+        "noQuirksBodyHtml": "<p></p>"
+      }
+    },
+    {
+      "data": "<html><frameset></frameset></html><!doctype html>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,49): unexpected-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><frameset></frameset></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<!doctype html><body><frameset>",
+      "errors": [
+        "(1,31): unexpected-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<!doctype html><p><frameset><frame>",
+      "errors": [
+        "(1,28): unexpected-start-tag",
+        "(1,35): eof-in-frameset"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true,
+            "frame": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset",
+                "children": [
+                  {
+                    "tag": "frame"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><frameset><frame></frameset></html>",
+        "noQuirksBodyHtml": "<p></p>"
+      }
+    },
+    {
+      "data": "<!doctype html><p>a<frameset>",
+      "errors": [
+        "(1,29): unexpected-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "text": "a"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p>a</p></body></html>",
+        "noQuirksBodyHtml": "<p>a</p>"
+      }
+    },
+    {
+      "data": "<!doctype html><p> <frameset><frame>",
+      "errors": [
+        "(1,29): unexpected-start-tag",
+        "(1,36): eof-in-frameset"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true,
+            "frame": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset",
+                "children": [
+                  {
+                    "tag": "frame"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><frameset><frame></frameset></html>",
+        "noQuirksBodyHtml": "<p> </p>"
+      }
+    },
+    {
+      "data": "<!doctype html><pre><frameset>",
+      "errors": [
+        "(1,30): unexpected-start-tag",
+        "(1,30): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "pre": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "pre"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><pre></pre></body></html>",
+        "noQuirksBodyHtml": "<pre></pre>"
+      }
+    },
+    {
+      "data": "<!doctype html><listing><frameset>",
+      "errors": [
+        "(1,34): unexpected-start-tag",
+        "(1,34): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "listing": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "listing"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><listing></listing></body></html>",
+        "noQuirksBodyHtml": "<listing></listing>"
+      }
+    },
+    {
+      "data": "<!doctype html><li><frameset>",
+      "errors": [
+        "(1,29): unexpected-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "li": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "li"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><li></li></body></html>",
+        "noQuirksBodyHtml": "<li></li>"
+      }
+    },
+    {
+      "data": "<!doctype html><dd><frameset>",
+      "errors": [
+        "(1,29): unexpected-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "dd": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "dd"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><dd></dd></body></html>",
+        "noQuirksBodyHtml": "<dd></dd>"
+      }
+    },
+    {
+      "data": "<!doctype html><dt><frameset>",
+      "errors": [
+        "(1,29): unexpected-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "dt": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "dt"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><dt></dt></body></html>",
+        "noQuirksBodyHtml": "<dt></dt>"
+      }
+    },
+    {
+      "data": "<!doctype html><button><frameset>",
+      "errors": [
+        "(1,33): unexpected-start-tag",
+        "(1,33): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "button": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "button"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><button></button></body></html>",
+        "noQuirksBodyHtml": "<button></button>"
+      }
+    },
+    {
+      "data": "<!doctype html><applet><frameset>",
+      "errors": [
+        "(1,33): unexpected-start-tag",
+        "(1,33): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "applet": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "applet"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><applet></applet></body></html>",
+        "noQuirksBodyHtml": "<applet></applet>"
+      }
+    },
+    {
+      "data": "<!doctype html><marquee><frameset>",
+      "errors": [
+        "(1,34): unexpected-start-tag",
+        "(1,34): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "marquee": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "marquee"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><marquee></marquee></body></html>",
+        "noQuirksBodyHtml": "<marquee></marquee>"
+      }
+    },
+    {
+      "data": "<!doctype html><object><frameset>",
+      "errors": [
+        "(1,33): unexpected-start-tag",
+        "(1,33): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "object": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "object"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><object></object></body></html>",
+        "noQuirksBodyHtml": "<object></object>"
+      }
+    },
+    {
+      "data": "<!doctype html><table><frameset>",
+      "errors": [
+        "(1,32): unexpected-start-tag-implies-table-voodoo",
+        "(1,32): unexpected-start-tag",
+        "(1,32): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><table></table></body></html>",
+        "noQuirksBodyHtml": "<table></table>"
+      }
+    },
+    {
+      "data": "<!doctype html><area><frameset>",
+      "errors": [
+        "(1,31): unexpected-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "area": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "area"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><area></body></html>",
+        "noQuirksBodyHtml": "<area>"
+      }
+    },
+    {
+      "data": "<!doctype html><basefont><frameset>",
+      "errors": [
+        "(1,35): eof-in-frameset"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "basefont": true,
+            "frameset": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "basefont"
+                  }
+                ]
+              },
+              {
+                "tag": "frameset"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><basefont></head><frameset></frameset></html>",
+        "noQuirksBodyHtml": "<basefont>"
+      }
+    },
+    {
+      "data": "<!doctype html><bgsound><frameset>",
+      "errors": [
+        "(1,34): eof-in-frameset"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "bgsound": true,
+            "frameset": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "bgsound"
+                  }
+                ]
+              },
+              {
+                "tag": "frameset"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><bgsound></head><frameset></frameset></html>",
+        "noQuirksBodyHtml": "<bgsound>"
+      }
+    },
+    {
+      "data": "<!doctype html><br><frameset>",
+      "errors": [
+        "(1,29): unexpected-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "br": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "br"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><br></body></html>",
+        "noQuirksBodyHtml": "<br>"
+      }
+    },
+    {
+      "data": "<!doctype html><embed><frameset>",
+      "errors": [
+        "(1,32): unexpected-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "embed": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "embed"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><embed></body></html>",
+        "noQuirksBodyHtml": "<embed>"
+      }
+    },
+    {
+      "data": "<!doctype html><img><frameset>",
+      "errors": [
+        "(1,30): unexpected-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "img": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "img"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><img></body></html>",
+        "noQuirksBodyHtml": "<img>"
+      }
+    },
+    {
+      "data": "<!doctype html><input><frameset>",
+      "errors": [
+        "(1,32): unexpected-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "input": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "input"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><input></body></html>",
+        "noQuirksBodyHtml": "<input>"
+      }
+    },
+    {
+      "data": "<!doctype html><keygen><frameset>",
+      "errors": [
+        "(1,33): unexpected-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "keygen": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "keygen"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><keygen></body></html>",
+        "noQuirksBodyHtml": "<keygen>"
+      }
+    },
+    {
+      "data": "<!doctype html><wbr><frameset>",
+      "errors": [
+        "(1,30): unexpected-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "wbr": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "wbr"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><wbr></body></html>",
+        "noQuirksBodyHtml": "<wbr>"
+      }
+    },
+    {
+      "data": "<!doctype html><hr><frameset>",
+      "errors": [
+        "(1,29): unexpected-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "hr": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "hr"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><hr></body></html>",
+        "noQuirksBodyHtml": "<hr>"
+      }
+    },
+    {
+      "data": "<!doctype html><textarea></textarea><frameset>",
+      "errors": [
+        "(1,46): unexpected-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "textarea": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "textarea"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><textarea></textarea></body></html>",
+        "noQuirksBodyHtml": "<textarea></textarea>"
+      }
+    },
+    {
+      "data": "<!doctype html><xmp></xmp><frameset>",
+      "errors": [
+        "(1,36): unexpected-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "xmp": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "xmp"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><xmp></xmp></body></html>",
+        "noQuirksBodyHtml": "<xmp></xmp>"
+      }
+    },
+    {
+      "data": "<!doctype html><iframe></iframe><frameset>",
+      "errors": [
+        "(1,42): unexpected-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "iframe": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "iframe"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><iframe></iframe></body></html>",
+        "noQuirksBodyHtml": "<iframe></iframe>"
+      }
+    },
+    {
+      "data": "<!doctype html><select></select><frameset>",
+      "errors": [
+        "(1,42): unexpected-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><select></select></body></html>",
+        "noQuirksBodyHtml": "<select></select>"
+      }
+    },
+    {
+      "data": "<!doctype html><svg></svg><frameset><frame>",
+      "errors": [
+        "(1,36): unexpected-start-tag",
+        "(1,43): eof-in-frameset"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true,
+            "frame": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset",
+                "children": [
+                  {
+                    "tag": "frame"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><frameset><frame></frameset></html>",
+        "noQuirksBodyHtml": "<svg></svg>"
+      }
+    },
+    {
+      "data": "<!doctype html><math></math><frameset><frame>",
+      "errors": [
+        "(1,38): unexpected-start-tag",
+        "(1,45): eof-in-frameset"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true,
+            "frame": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset",
+                "children": [
+                  {
+                    "tag": "frame"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><frameset><frame></frameset></html>",
+        "noQuirksBodyHtml": "<math></math>"
+      }
+    },
+    {
+      "data": "<!doctype html><svg><foreignObject><div> <frameset><frame>",
+      "errors": [
+        "(1,51): unexpected-start-tag",
+        "(1,58): eof-in-frameset"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true,
+            "frame": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset",
+                "children": [
+                  {
+                    "tag": "frame"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><frameset><frame></frameset></html>",
+        "noQuirksBodyHtml": "<svg><foreignObject><div> </div></foreignObject></svg>"
+      }
+    },
+    {
+      "data": "<!doctype html><svg>a</svg><frameset><frame>",
+      "errors": [
+        "(1,37): unexpected-start-tag",
+        "(1,44): unexpected-start-tag-ignored"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "text": "a"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><svg>a</svg></body></html>",
+        "noQuirksBodyHtml": "<svg>a</svg>"
+      }
+    },
+    {
+      "data": "<!doctype html><svg> </svg><frameset><frame>",
+      "errors": [
+        "(1,37): unexpected-start-tag",
+        "(1,44): eof-in-frameset"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true,
+            "frame": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset",
+                "children": [
+                  {
+                    "tag": "frame"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><frameset><frame></frameset></html>",
+        "noQuirksBodyHtml": "<svg> </svg>"
+      }
+    },
+    {
+      "data": "<html>aaa<frameset></frameset>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,19): unexpected-start-tag",
+        "(1,30): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "aaa"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>aaa</body></html>",
+        "noQuirksBodyHtml": "aaa"
+      }
+    },
+    {
+      "data": "<html> a <frameset></frameset>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,19): unexpected-start-tag",
+        "(1,30): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "a "
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>a </body></html>",
+        "noQuirksBodyHtml": " a "
+      }
+    },
+    {
+      "data": "<!doctype html><div><frameset>",
+      "errors": [
+        "(1,30): unexpected-start-tag",
+        "(1,30): eof-in-frameset"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
+        "noQuirksBodyHtml": "<div></div>"
+      }
+    },
+    {
+      "data": "<!doctype html><div><body><frameset>",
+      "errors": [
+        "(1,26): unexpected-start-tag",
+        "(1,36): unexpected-start-tag",
+        "(1,36): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><div></div></body></html>",
+        "noQuirksBodyHtml": "<div></div>"
+      }
+    },
+    {
+      "data": "<!doctype html><p><math></p>a",
+      "errors": [
+        "(1,28): unexpected-end-tag",
+        "(1,28): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "math math": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "math",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      }
+                    ]
+                  },
+                  {
+                    "text": "a"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p><math></math></p>a</body></html>",
+        "noQuirksBodyHtml": "<p><math></math></p>a"
+      }
+    },
+    {
+      "data": "<!doctype html><p><math><mn><span></p>a",
+      "errors": [
+        "(1,38): unexpected-end-tag",
+        "(1,39): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "math math": true,
+            "math mn": true,
+            "span": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "math",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "children": [
+                          {
+                            "tag": "mn",
+                            "ns": "http://www.w3.org/1998/Math/MathML",
+                            "children": [
+                              {
+                                "tag": "span",
+                                "children": [
+                                  {
+                                    "tag": "p"
+                                  },
+                                  {
+                                    "text": "a"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p><math><mn><span><p></p>a</span></mn></math></p></body></html>",
+        "noQuirksBodyHtml": "<p><math><mn><span><p></p>a</span></mn></math></p>"
+      }
+    },
+    {
+      "data": "<!doctype html><math></html>",
+      "errors": [
+        "(1,28): unexpected-end-tag",
+        "(1,28): expected-one-end-tag-but-got-another",
+        "(1,28): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><math></math></body></html>",
+        "noQuirksBodyHtml": "<math></math>"
+      }
+    },
+    {
+      "data": "<!doctype html><meta charset=\"ascii\">",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "meta": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "meta",
+                    "attrs": [
+                      {
+                        "name": "charset",
+                        "value": "ascii"
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><meta charset=\"ascii\"></head><body></body></html>",
+        "noQuirksBodyHtml": "<meta charset=\"ascii\">"
+      }
+    },
+    {
+      "data": "<!doctype html><meta http-equiv=\"content-type\" content=\"text/html;charset=ascii\">",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "meta": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "meta",
+                    "attrs": [
+                      {
+                        "name": "content",
+                        "value": "text/html;charset=ascii"
+                      },
+                      {
+                        "name": "http-equiv",
+                        "value": "content-type"
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><meta http-equiv=\"content-type\" content=\"text/html;charset=ascii\"></head><body></body></html>",
+        "noQuirksBodyHtml": "<meta http-equiv=\"content-type\" content=\"text/html;charset=ascii\">"
+      }
+    },
+    {
+      "data": "<!doctype html><head><!--aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa--><meta charset=\"utf8\">",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "meta": true,
+            "body": true
+          },
+          "doctype": true,
+          "comment": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "comment": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+                  },
+                  {
+                    "tag": "meta",
+                    "attrs": [
+                      {
+                        "name": "charset",
+                        "value": "utf8"
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><!--aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa--><meta charset=\"utf8\"></head><body></body></html>",
+        "noQuirksBodyHtml": "<!--aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa--><meta charset=\"utf8\">"
+      }
+    },
+    {
+      "data": "<!doctype html><html a=b><head></head><html c=d>",
+      "errors": [
+        "(1,48): non-html-root"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "attrs": [
+              {
+                "name": "a",
+                "value": "b"
+              },
+              {
+                "name": "c",
+                "value": "d"
+              }
+            ],
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html a=\"b\" c=\"d\"><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<!doctype html><image/>",
+      "errors": [
+        "(1,23): image-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "img": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "img"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><img></body></html>",
+        "noQuirksBodyHtml": "<img>"
+      }
+    },
+    {
+      "data": "<!doctype html>a<i>b<table>c<b>d</i>e</b>f",
+      "errors": [
+        "(1,28): foster-parenting-character",
+        "(1,31): foster-parenting-start-tag",
+        "(1,32): foster-parenting-character",
+        "(1,36): foster-parenting-end-tag",
+        "(1,36): adoption-agency-1.3",
+        "(1,37): foster-parenting-character",
+        "(1,41): foster-parenting-end-tag",
+        "(1,42): foster-parenting-character",
+        "(1,42): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "i": true,
+            "b": true,
+            "table": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "a"
+                  },
+                  {
+                    "tag": "i",
+                    "children": [
+                      {
+                        "text": "bc"
+                      },
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "text": "de"
+                          }
+                        ]
+                      },
+                      {
+                        "text": "f"
+                      },
+                      {
+                        "tag": "table"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body>a<i>bc<b>de</b>f<table></table></i></body></html>",
+        "noQuirksBodyHtml": "a<i>bc<b>de</b>f<table></table></i>"
+      }
+    },
+    {
+      "data": "<!doctype html><table><i>a<b>b<div>c<a>d</i>e</b>f",
+      "errors": [
+        "(1,25): foster-parenting-start-tag",
+        "(1,26): foster-parenting-character",
+        "(1,29): foster-parenting-start-tag",
+        "(1,30): foster-parenting-character",
+        "(1,35): foster-parenting-start-tag",
+        "(1,36): foster-parenting-character",
+        "(1,39): foster-parenting-start-tag",
+        "(1,40): foster-parenting-character",
+        "(1,44): foster-parenting-end-tag",
+        "(1,44): adoption-agency-1.3",
+        "(1,44): adoption-agency-1.3",
+        "(1,45): foster-parenting-character",
+        "(1,49): foster-parenting-end-tag",
+        "(1,49): adoption-agency-1.3",
+        "(1,49): adoption-agency-1.3",
+        "(1,50): foster-parenting-character",
+        "(1,50): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "i": true,
+            "b": true,
+            "div": true,
+            "a": true,
+            "table": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "i",
+                    "children": [
+                      {
+                        "text": "a"
+                      },
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "text": "b"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "b"
+                  },
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "tag": "i",
+                            "children": [
+                              {
+                                "text": "c"
+                              },
+                              {
+                                "tag": "a",
+                                "children": [
+                                  {
+                                    "text": "d"
+                                  }
+                                ]
+                              }
+                            ]
+                          },
+                          {
+                            "tag": "a",
+                            "children": [
+                              {
+                                "text": "e"
+                              }
+                            ]
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "a",
+                        "children": [
+                          {
+                            "text": "f"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "table"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><i>a<b>b</b></i><b></b><div><b><i>c<a>d</a></i><a>e</a></b><a>f</a></div><table></table></body></html>",
+        "noQuirksBodyHtml": "<i>a<b>b</b></i><b></b><div><b><i>c<a>d</a></i><a>e</a></b><a>f</a></div><table></table>"
+      }
+    },
+    {
+      "data": "<!doctype html><i>a<b>b<div>c<a>d</i>e</b>f",
+      "errors": [
+        "(1,37): adoption-agency-1.3",
+        "(1,37): adoption-agency-1.3",
+        "(1,42): adoption-agency-1.3",
+        "(1,42): adoption-agency-1.3",
+        "(1,43): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "i": true,
+            "b": true,
+            "div": true,
+            "a": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "i",
+                    "children": [
+                      {
+                        "text": "a"
+                      },
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "text": "b"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "b"
+                  },
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "tag": "i",
+                            "children": [
+                              {
+                                "text": "c"
+                              },
+                              {
+                                "tag": "a",
+                                "children": [
+                                  {
+                                    "text": "d"
+                                  }
+                                ]
+                              }
+                            ]
+                          },
+                          {
+                            "tag": "a",
+                            "children": [
+                              {
+                                "text": "e"
+                              }
+                            ]
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "a",
+                        "children": [
+                          {
+                            "text": "f"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><i>a<b>b</b></i><b></b><div><b><i>c<a>d</a></i><a>e</a></b><a>f</a></div></body></html>",
+        "noQuirksBodyHtml": "<i>a<b>b</b></i><b></b><div><b><i>c<a>d</a></i><a>e</a></b><a>f</a></div>"
+      }
+    },
+    {
+      "data": "<!doctype html><table><i>a<b>b<div>c</i>",
+      "errors": [
+        "(1,25): foster-parenting-start-tag",
+        "(1,26): foster-parenting-character",
+        "(1,29): foster-parenting-start-tag",
+        "(1,30): foster-parenting-character",
+        "(1,35): foster-parenting-start-tag",
+        "(1,36): foster-parenting-character",
+        "(1,40): foster-parenting-end-tag",
+        "(1,40): adoption-agency-1.3",
+        "(1,40): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "i": true,
+            "b": true,
+            "div": true,
+            "table": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "i",
+                    "children": [
+                      {
+                        "text": "a"
+                      },
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "text": "b"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "b",
+                    "children": [
+                      {
+                        "tag": "div",
+                        "children": [
+                          {
+                            "tag": "i",
+                            "children": [
+                              {
+                                "text": "c"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "table"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><i>a<b>b</b></i><b><div><i>c</i></div></b><table></table></body></html>",
+        "noQuirksBodyHtml": "<i>a<b>b</b></i><b><div><i>c</i></div></b><table></table>"
+      }
+    },
+    {
+      "data": "<!doctype html><table><i>a<b>b<div>c<a>d</i>e</b>f",
+      "errors": [
+        "(1,25): foster-parenting-start-tag",
+        "(1,26): foster-parenting-character",
+        "(1,29): foster-parenting-start-tag",
+        "(1,30): foster-parenting-character",
+        "(1,35): foster-parenting-start-tag",
+        "(1,36): foster-parenting-character",
+        "(1,39): foster-parenting-start-tag",
+        "(1,40): foster-parenting-character",
+        "(1,44): foster-parenting-end-tag",
+        "(1,44): adoption-agency-1.3",
+        "(1,44): adoption-agency-1.3",
+        "(1,45): foster-parenting-character",
+        "(1,49): foster-parenting-end-tag",
+        "(1,44): adoption-agency-1.3",
+        "(1,44): adoption-agency-1.3",
+        "(1,50): foster-parenting-character",
+        "(1,50): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "i": true,
+            "b": true,
+            "div": true,
+            "a": true,
+            "table": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "i",
+                    "children": [
+                      {
+                        "text": "a"
+                      },
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "text": "b"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "b"
+                  },
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "tag": "i",
+                            "children": [
+                              {
+                                "text": "c"
+                              },
+                              {
+                                "tag": "a",
+                                "children": [
+                                  {
+                                    "text": "d"
+                                  }
+                                ]
+                              }
+                            ]
+                          },
+                          {
+                            "tag": "a",
+                            "children": [
+                              {
+                                "text": "e"
+                              }
+                            ]
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "a",
+                        "children": [
+                          {
+                            "text": "f"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "table"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><i>a<b>b</b></i><b></b><div><b><i>c<a>d</a></i><a>e</a></b><a>f</a></div><table></table></body></html>",
+        "noQuirksBodyHtml": "<i>a<b>b</b></i><b></b><div><b><i>c<a>d</a></i><a>e</a></b><a>f</a></div><table></table>"
+      }
+    },
+    {
+      "data": "<!doctype html><table><i>a<div>b<tr>c<b>d</i>e",
+      "errors": [
+        "(1,25): foster-parenting-start-tag",
+        "(1,26): foster-parenting-character",
+        "(1,31): foster-parenting-start-tag",
+        "(1,32): foster-parenting-character",
+        "(1,37): foster-parenting-character",
+        "(1,40): foster-parenting-start-tag",
+        "(1,41): foster-parenting-character",
+        "(1,45): foster-parenting-end-tag",
+        "(1,45): adoption-agency-1.3",
+        "(1,46): foster-parenting-character",
+        "(1,46): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "i": true,
+            "div": true,
+            "b": true,
+            "table": true,
+            "tbody": true,
+            "tr": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "i",
+                    "children": [
+                      {
+                        "text": "a"
+                      },
+                      {
+                        "tag": "div",
+                        "children": [
+                          {
+                            "text": "b"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "i",
+                    "children": [
+                      {
+                        "text": "c"
+                      },
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "text": "d"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "b",
+                    "children": [
+                      {
+                        "text": "e"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><i>a<div>b</div></i><i>c<b>d</b></i><b>e</b><table><tbody><tr></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<i>a<div>b</div></i><i>c<b>d</b></i><b>e</b><table><tbody><tr></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<!doctype html><table><td><table><i>a<div>b<b>c</i>d",
+      "errors": [
+        "(1,26): unexpected-cell-in-table-body",
+        "(1,36): foster-parenting-start-tag",
+        "(1,37): foster-parenting-character",
+        "(1,42): foster-parenting-start-tag",
+        "(1,43): foster-parenting-character",
+        "(1,46): foster-parenting-start-tag",
+        "(1,47): foster-parenting-character",
+        "(1,51): foster-parenting-end-tag",
+        "(1,51): adoption-agency-1.3",
+        "(1,51): adoption-agency-1.3",
+        "(1,52): foster-parenting-character",
+        "(1,52): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true,
+            "i": true,
+            "div": true,
+            "b": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td",
+                                "children": [
+                                  {
+                                    "tag": "i",
+                                    "children": [
+                                      {
+                                        "text": "a"
+                                      }
+                                    ]
+                                  },
+                                  {
+                                    "tag": "div",
+                                    "children": [
+                                      {
+                                        "tag": "i",
+                                        "children": [
+                                          {
+                                            "text": "b"
+                                          },
+                                          {
+                                            "tag": "b",
+                                            "children": [
+                                              {
+                                                "text": "c"
+                                              }
+                                            ]
+                                          }
+                                        ]
+                                      },
+                                      {
+                                        "tag": "b",
+                                        "children": [
+                                          {
+                                            "text": "d"
+                                          }
+                                        ]
+                                      }
+                                    ]
+                                  },
+                                  {
+                                    "tag": "table"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><i>a</i><div><i>b<b>c</b></i><b>d</b></div><table></table></td></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<table><tbody><tr><td><i>a</i><div><i>b<b>c</b></i><b>d</b></div><table></table></td></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<!doctype html><body><bgsound>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "bgsound": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "bgsound"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><bgsound></body></html>",
+        "noQuirksBodyHtml": "<bgsound>"
+      }
+    },
+    {
+      "data": "<!doctype html><body><basefont>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "basefont": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "basefont"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><basefont></body></html>",
+        "noQuirksBodyHtml": "<basefont>"
+      }
+    },
+    {
+      "data": "<!doctype html><a><b></a><basefont>",
+      "errors": [
+        "(1,25): adoption-agency-1.3"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "a": true,
+            "b": true,
+            "basefont": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "a",
+                    "children": [
+                      {
+                        "tag": "b"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "basefont"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><a><b></b></a><basefont></body></html>",
+        "noQuirksBodyHtml": "<a><b></b></a><basefont>"
+      }
+    },
+    {
+      "data": "<!doctype html><a><b></a><bgsound>",
+      "errors": [
+        "(1,25): adoption-agency-1.3"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "a": true,
+            "b": true,
+            "bgsound": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "a",
+                    "children": [
+                      {
+                        "tag": "b"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "bgsound"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><a><b></b></a><bgsound></body></html>",
+        "noQuirksBodyHtml": "<a><b></b></a><bgsound>"
+      }
+    },
+    {
+      "data": "<!doctype html><figcaption><article></figcaption>a",
+      "errors": [
+        "(1,49): end-tag-too-early"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "figcaption": true,
+            "article": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "figcaption",
+                    "children": [
+                      {
+                        "tag": "article"
+                      }
+                    ]
+                  },
+                  {
+                    "text": "a"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><figcaption><article></article></figcaption>a</body></html>",
+        "noQuirksBodyHtml": "<figcaption><article></article></figcaption>a"
+      }
+    },
+    {
+      "data": "<!doctype html><summary><article></summary>a",
+      "errors": [
+        "(1,43): end-tag-too-early"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "summary": true,
+            "article": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "summary",
+                    "children": [
+                      {
+                        "tag": "article"
+                      }
+                    ]
+                  },
+                  {
+                    "text": "a"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><summary><article></article></summary>a</body></html>",
+        "noQuirksBodyHtml": "<summary><article></article></summary>a"
+      }
+    },
+    {
+      "data": "<!doctype html><p><a><plaintext>b",
+      "errors": [
+        "(1,32): unexpected-end-tag",
+        "(1,33): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "a": true,
+            "plaintext": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "a"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "plaintext",
+                    "children": [
+                      {
+                        "tag": "a",
+                        "children": [
+                          {
+                            "text": "b"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p><a></a></p><plaintext><a>b</a></plaintext></body></html>",
+        "noQuirksBodyHtml": "<p><a></a></p><plaintext><a>b</a></plaintext>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><div>a<a></div>b<p>c</p>d",
+      "errors": [
+        "(1,30): end-tag-too-early",
+        "(1,40): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true,
+            "a": true,
+            "p": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "text": "a"
+                      },
+                      {
+                        "tag": "a"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "a",
+                    "children": [
+                      {
+                        "text": "b"
+                      },
+                      {
+                        "tag": "p",
+                        "children": [
+                          {
+                            "text": "c"
+                          }
+                        ]
+                      },
+                      {
+                        "text": "d"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><div>a<a></a></div><a>b<p>c</p>d</a></body></html>",
+        "noQuirksBodyHtml": "<div>a<a></a></div><a>b<p>c</p>d</a>"
+      }
+    }
+  ],
+  "tests2.dat": [
+    {
+      "data": "<!DOCTYPE html>Test",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "Test"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body>Test</body></html>",
+        "noQuirksBodyHtml": "Test"
+      }
+    },
+    {
+      "data": "<textarea>test</div>test",
+      "errors": [
+        "(1,10): expected-doctype-but-got-start-tag",
+        "(1,24): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "textarea": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "textarea",
+                    "children": [
+                      {
+                        "text": "test</div>test",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><textarea>test&lt;/div&gt;test</textarea></body></html>",
+        "noQuirksBodyHtml": "<textarea>test&lt;/div&gt;test</textarea>"
+      }
+    },
+    {
+      "data": "<table><td>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,11): unexpected-cell-in-table-body",
+        "(1,11): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><tbody><tr><td></td></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<table><tbody><tr><td></td></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<table><td>test</tbody></table>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,11): unexpected-cell-in-table-body"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td",
+                                "children": [
+                                  {
+                                    "text": "test"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><tbody><tr><td>test</td></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<table><tbody><tr><td>test</td></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<frame>test",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,7): unexpected-start-tag-ignored"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "test"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>test</body></html>",
+        "noQuirksBodyHtml": "test"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><frameset>test",
+      "errors": [
+        "(1,29): unexpected-char-in-frameset",
+        "(1,29): unexpected-char-in-frameset",
+        "(1,29): unexpected-char-in-frameset",
+        "(1,29): unexpected-char-in-frameset",
+        "(1,29): eof-in-frameset"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
+        "noQuirksBodyHtml": "test"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><frameset> te st",
+      "errors": [
+        "(1,29): unexpected-char-in-frameset",
+        "(1,29): unexpected-char-in-frameset",
+        "(1,29): unexpected-char-in-frameset",
+        "(1,29): unexpected-char-in-frameset",
+        "(1,29): eof-in-frameset"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset",
+                "children": [
+                  {
+                    "text": "  "
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><frameset>  </frameset></html>",
+        "noQuirksBodyHtml": " te st"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><frameset></frameset> te st",
+      "errors": [
+        "(1,29): unexpected-char-after-frameset",
+        "(1,29): unexpected-char-after-frameset",
+        "(1,29): unexpected-char-after-frameset",
+        "(1,29): unexpected-char-after-frameset"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              },
+              {
+                "text": "  "
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><frameset></frameset>  </html>",
+        "noQuirksBodyHtml": " te st"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><frameset><!DOCTYPE html>",
+      "errors": [
+        "(1,40): unexpected-doctype",
+        "(1,40): eof-in-frameset"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><font><p><b>test</font>",
+      "errors": [
+        "(1,38): adoption-agency-1.3",
+        "(1,38): adoption-agency-1.3"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "font": true,
+            "p": true,
+            "b": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "font"
+                  },
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "font",
+                        "children": [
+                          {
+                            "tag": "b",
+                            "children": [
+                              {
+                                "text": "test"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><font></font><p><font><b>test</b></font></p></body></html>",
+        "noQuirksBodyHtml": "<font></font><p><font><b>test</b></font></p>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><dt><div><dd>",
+      "errors": [
+        "(1,28): end-tag-too-early"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "dt": true,
+            "div": true,
+            "dd": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "dt",
+                    "children": [
+                      {
+                        "tag": "div"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "dd"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><dt><div></div></dt><dd></dd></body></html>",
+        "noQuirksBodyHtml": "<dt><div></div></dt><dd></dd>"
+      }
+    },
+    {
+      "data": "<script></x",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,11): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "</x",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script></x</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script></x</script>"
+      }
+    },
+    {
+      "data": "<table><plaintext><td>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,18): unexpected-start-tag-implies-table-voodoo",
+        "(1,22): foster-parenting-character-in-table",
+        "(1,22): foster-parenting-character-in-table",
+        "(1,22): foster-parenting-character-in-table",
+        "(1,22): foster-parenting-character-in-table",
+        "(1,22): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "plaintext": true,
+            "table": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "plaintext",
+                    "children": [
+                      {
+                        "text": "<td>",
+                        "no_escape": true
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "table"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><plaintext><td></plaintext><table></table></body></html>",
+        "noQuirksBodyHtml": "<plaintext><td></plaintext><table></table>"
+      }
+    },
+    {
+      "data": "<plaintext></plaintext>",
+      "errors": [
+        "(1,11): expected-doctype-but-got-start-tag",
+        "(1,23): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "plaintext": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "plaintext",
+                    "children": [
+                      {
+                        "text": "</plaintext>",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><plaintext></plaintext></plaintext></body></html>",
+        "noQuirksBodyHtml": "<plaintext></plaintext></plaintext>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><table><tr>TEST",
+      "errors": [
+        "(1,30): foster-parenting-character-in-table",
+        "(1,30): foster-parenting-character-in-table",
+        "(1,30): foster-parenting-character-in-table",
+        "(1,30): foster-parenting-character-in-table",
+        "(1,30): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "TEST"
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body>TEST<table><tbody><tr></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "TEST<table><tbody><tr></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body t1=1><body t2=2><body t3=3 t4=4>",
+      "errors": [
+        "(1,37): unexpected-start-tag",
+        "(1,53): unexpected-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "attrs": [
+                  {
+                    "name": "t1",
+                    "value": "1"
+                  },
+                  {
+                    "name": "t2",
+                    "value": "2"
+                  },
+                  {
+                    "name": "t3",
+                    "value": "3"
+                  },
+                  {
+                    "name": "t4",
+                    "value": "4"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body t1=\"1\" t2=\"2\" t3=\"3\" t4=\"4\"></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "</b test",
+      "errors": [
+        "(1,8): eof-in-attribute-name",
+        "(1,8): expected-doctype-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<!DOCTYPE html></b test<b &=&amp>X",
+      "errors": [
+        "(1,24): invalid-character-in-attribute-name",
+        "(1,32): named-entity-without-semicolon",
+        "(1,33): attributes-in-end-tag",
+        "(1,33): unexpected-end-tag-before-html"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "X"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body>X</body></html>",
+        "noQuirksBodyHtml": "X"
+      }
+    },
+    {
+      "data": "<!doctypehtml><scrIPt type=text/x-foobar;baz>X</SCRipt",
+      "errors": [
+        "(1,9): need-space-after-doctype",
+        "(1,54): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "attrs": [
+                      {
+                        "name": "type",
+                        "value": "text/x-foobar;baz"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "X</SCRipt",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script type=\"text/x-foobar;baz\">X</SCRipt</script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script type=\"text/x-foobar;baz\">X</SCRipt</script>"
+      }
+    },
+    {
+      "data": "&",
+      "errors": [
+        "(1,1): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "&",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>&amp;</body></html>",
+        "noQuirksBodyHtml": "&amp;"
+      }
+    },
+    {
+      "data": "&#",
+      "errors": [
+        "(1,2): expected-numeric-entity",
+        "(1,2): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "&#",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>&amp;#</body></html>",
+        "noQuirksBodyHtml": "&amp;#"
+      }
+    },
+    {
+      "data": "&#X",
+      "errors": [
+        "(1,3): expected-numeric-entity",
+        "(1,3): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "&#X",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>&amp;#X</body></html>",
+        "noQuirksBodyHtml": "&amp;#X"
+      }
+    },
+    {
+      "data": "&#x",
+      "errors": [
+        "(1,3): expected-numeric-entity",
+        "(1,3): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "&#x",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>&amp;#x</body></html>",
+        "noQuirksBodyHtml": "&amp;#x"
+      }
+    },
+    {
+      "data": "&#45",
+      "errors": [
+        "(1,4): numeric-entity-without-semicolon",
+        "(1,4): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "-"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>-</body></html>",
+        "noQuirksBodyHtml": "-"
+      }
+    },
+    {
+      "data": "&x-test",
+      "errors": [
+        "(1,2): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "&x-test",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>&amp;x-test</body></html>",
+        "noQuirksBodyHtml": "&amp;x-test"
+      }
+    },
+    {
+      "data": "<!doctypehtml><p><li>",
+      "errors": [
+        "(1,9): need-space-after-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "li": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p"
+                  },
+                  {
+                    "tag": "li"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p></p><li></li></body></html>",
+        "noQuirksBodyHtml": "<p></p><li></li>"
+      }
+    },
+    {
+      "data": "<!doctypehtml><p><dt>",
+      "errors": [
+        "(1,9): need-space-after-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "dt": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p"
+                  },
+                  {
+                    "tag": "dt"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p></p><dt></dt></body></html>",
+        "noQuirksBodyHtml": "<p></p><dt></dt>"
+      }
+    },
+    {
+      "data": "<!doctypehtml><p><dd>",
+      "errors": [
+        "(1,9): need-space-after-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "dd": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p"
+                  },
+                  {
+                    "tag": "dd"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p></p><dd></dd></body></html>",
+        "noQuirksBodyHtml": "<p></p><dd></dd>"
+      }
+    },
+    {
+      "data": "<!doctypehtml><p><form>",
+      "errors": [
+        "(1,9): need-space-after-doctype",
+        "(1,23): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "form": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p"
+                  },
+                  {
+                    "tag": "form"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p></p><form></form></body></html>",
+        "noQuirksBodyHtml": "<p></p><form></form>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><p></P>X",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p"
+                  },
+                  {
+                    "text": "X"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p></p>X</body></html>",
+        "noQuirksBodyHtml": "<p></p>X"
+      }
+    },
+    {
+      "data": "&AMP",
+      "errors": [
+        "(1,4): named-entity-without-semicolon",
+        "(1,4): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "&",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>&amp;</body></html>",
+        "noQuirksBodyHtml": "&amp;"
+      }
+    },
+    {
+      "data": "&AMp;",
+      "errors": [
+        "(1,3): expected-named-entity",
+        "(1,3): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "&AMp;",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>&amp;AMp;</body></html>",
+        "noQuirksBodyHtml": "&amp;AMp;"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><html><head></head><body><thisISasillyTESTelementNameToMakeSureCrazyTagNamesArePARSEDcorrectLY>",
+      "errors": [
+        "(1,110): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "thisisasillytestelementnametomakesurecrazytagnamesareparsedcorrectly": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "thisisasillytestelementnametomakesurecrazytagnamesareparsedcorrectly"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><thisisasillytestelementnametomakesurecrazytagnamesareparsedcorrectly></thisisasillytestelementnametomakesurecrazytagnamesareparsedcorrectly></body></html>",
+        "noQuirksBodyHtml": "<thisisasillytestelementnametomakesurecrazytagnamesareparsedcorrectly></thisisasillytestelementnametomakesurecrazytagnamesareparsedcorrectly>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html>X</body>X",
+      "errors": [
+        "(1,24): unexpected-char-after-body"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "XX"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body>XX</body></html>",
+        "noQuirksBodyHtml": "XX"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><!-- X",
+      "errors": [
+        "(1,21): eof-in-comment"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true,
+          "comment": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "comment": " X"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><!-- X--><html><head></head><body></body></html>",
+        "noQuirksBodyHtml": "<!-- X-->"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><table><caption>test TEST</caption><td>test",
+      "errors": [
+        "(1,54): unexpected-cell-in-table-body",
+        "(1,58): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "caption": true,
+            "tbody": true,
+            "tr": true,
+            "td": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "caption",
+                        "children": [
+                          {
+                            "text": "test TEST"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td",
+                                "children": [
+                                  {
+                                    "text": "test"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><table><caption>test TEST</caption><tbody><tr><td>test</td></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<table><caption>test TEST</caption><tbody><tr><td>test</td></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><select><option><optgroup>",
+      "errors": [
+        "(1,41): eof-in-select"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true,
+            "option": true,
+            "optgroup": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select",
+                    "children": [
+                      {
+                        "tag": "option"
+                      },
+                      {
+                        "tag": "optgroup"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><select><option></option><optgroup></optgroup></select></body></html>",
+        "noQuirksBodyHtml": "<select><option></option><optgroup></optgroup></select>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><select><optgroup><option></optgroup><option><select><option>",
+      "errors": [
+        "(1,68): unexpected-select-in-select",
+        "(1,76): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true,
+            "optgroup": true,
+            "option": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select",
+                    "children": [
+                      {
+                        "tag": "optgroup",
+                        "children": [
+                          {
+                            "tag": "option"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "option"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "option"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><select><optgroup><option></option></optgroup><option></option></select><option></option></body></html>",
+        "noQuirksBodyHtml": "<select><optgroup><option></option></optgroup><option></option></select><option></option>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><select><optgroup><option><optgroup>",
+      "errors": [
+        "(1,51): eof-in-select"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true,
+            "optgroup": true,
+            "option": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select",
+                    "children": [
+                      {
+                        "tag": "optgroup",
+                        "children": [
+                          {
+                            "tag": "option"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "optgroup"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><select><optgroup><option></option></optgroup><optgroup></optgroup></select></body></html>",
+        "noQuirksBodyHtml": "<select><optgroup><option></option></optgroup><optgroup></optgroup></select>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><datalist><option>foo</datalist>bar",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "datalist": true,
+            "option": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "datalist",
+                    "children": [
+                      {
+                        "tag": "option",
+                        "children": [
+                          {
+                            "text": "foo"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "text": "bar"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><datalist><option>foo</option></datalist>bar</body></html>",
+        "noQuirksBodyHtml": "<datalist><option>foo</option></datalist>bar"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><font><input><input></font>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "font": true,
+            "input": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "font",
+                    "children": [
+                      {
+                        "tag": "input"
+                      },
+                      {
+                        "tag": "input"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><font><input><input></font></body></html>",
+        "noQuirksBodyHtml": "<font><input><input></font>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><!-- XXX - XXX -->",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true,
+          "comment": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "comment": " XXX - XXX "
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><!-- XXX - XXX --><html><head></head><body></body></html>",
+        "noQuirksBodyHtml": "<!-- XXX - XXX -->"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><!-- XXX - XXX",
+      "errors": [
+        "(1,29): eof-in-comment"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true,
+          "comment": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "comment": " XXX - XXX"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><!-- XXX - XXX--><html><head></head><body></body></html>",
+        "noQuirksBodyHtml": "<!-- XXX - XXX-->"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><!-- XXX - XXX - XXX -->",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true,
+          "comment": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "comment": " XXX - XXX - XXX "
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><!-- XXX - XXX - XXX --><html><head></head><body></body></html>",
+        "noQuirksBodyHtml": "<!-- XXX - XXX - XXX -->"
+      }
+    },
+    {
+      "data": "<isindex test=x name=x>",
+      "errors": [
+        "(1,23): expected-doctype-but-got-start-tag",
+        "(1,23): deprecated-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "form": true,
+            "hr": true,
+            "label": true,
+            "input": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "form",
+                    "children": [
+                      {
+                        "tag": "hr"
+                      },
+                      {
+                        "tag": "label",
+                        "children": [
+                          {
+                            "text": "This is a searchable index. Enter search keywords: "
+                          },
+                          {
+                            "tag": "input",
+                            "attrs": [
+                              {
+                                "name": "name",
+                                "value": "isindex"
+                              },
+                              {
+                                "name": "test",
+                                "value": "x"
+                              }
+                            ]
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "hr"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><form><hr><label>This is a searchable index. Enter search keywords: <input name=\"isindex\" test=\"x\"></label><hr></form></body></html>",
+        "noQuirksBodyHtml": "<form><hr><label>This is a searchable index. Enter search keywords: <input name=\"isindex\" test=\"x\"></label><hr></form>"
+      }
+    },
+    {
+      "data": "test\ntest",
+      "errors": [
+        "(2,4): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "test\ntest"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>test\ntest</body></html>",
+        "noQuirksBodyHtml": "test\ntest"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><title>test</body></title>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "title": true
+          },
+          "doctype": true,
+          "escaped": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "title",
+                    "children": [
+                      {
+                        "text": "test</body>",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><title>test&lt;/body&gt;</title></body></html>",
+        "noQuirksBodyHtml": "<title>test&lt;/body&gt;</title>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><title>X</title><meta name=z><link rel=foo><style>\nx { content:\"</style\" } </style>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "title": true,
+            "meta": true,
+            "link": true,
+            "style": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "title",
+                    "children": [
+                      {
+                        "text": "X"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "meta",
+                    "attrs": [
+                      {
+                        "name": "name",
+                        "value": "z"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "link",
+                    "attrs": [
+                      {
+                        "name": "rel",
+                        "value": "foo"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "style",
+                    "children": [
+                      {
+                        "text": "\nx { content:\"</style\" } ",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><title>X</title><meta name=\"z\"><link rel=\"foo\"><style>\nx { content:\"</style\" } </style></body></html>",
+        "noQuirksBodyHtml": "<title>X</title><meta name=\"z\"><link rel=\"foo\"><style>\nx { content:\"</style\" } </style>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><select><optgroup></optgroup></select>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true,
+            "optgroup": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select",
+                    "children": [
+                      {
+                        "tag": "optgroup"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><select><optgroup></optgroup></select></body></html>",
+        "noQuirksBodyHtml": "<select><optgroup></optgroup></select>"
+      }
+    },
+    {
+      "data": " \n ",
+      "errors": [
+        "(2,1): expected-doctype-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body></body></html>",
+        "noQuirksBodyHtml": " \n "
+      }
+    },
+    {
+      "data": "<!DOCTYPE html>  <html>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+        "noQuirksBodyHtml": "  "
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><script>\n</script>  <title>x</title>  </head>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "title": true,
+            "body": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "\n",
+                        "no_escape": true
+                      }
+                    ]
+                  },
+                  {
+                    "text": "  "
+                  },
+                  {
+                    "tag": "title",
+                    "children": [
+                      {
+                        "text": "x"
+                      }
+                    ]
+                  },
+                  {
+                    "text": "  "
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><script>\n</script>  <title>x</title>  </head><body></body></html>",
+        "noQuirksBodyHtml": "<script>\n</script>  <title>x</title>  "
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><html><body><html id=x>",
+      "errors": [
+        "(1,38): non-html-root"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "attrs": [
+              {
+                "name": "id",
+                "value": "x"
+              }
+            ],
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html id=\"x\"><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<!DOCTYPE html>X</body><html id=\"x\">",
+      "errors": [
+        "(1,36): non-html-root"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "attrs": [
+              {
+                "name": "id",
+                "value": "x"
+              }
+            ],
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "X"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html id=\"x\"><head></head><body>X</body></html>",
+        "noQuirksBodyHtml": "X"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><head><html id=x>",
+      "errors": [
+        "(1,32): non-html-root"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "attrs": [
+              {
+                "name": "id",
+                "value": "x"
+              }
+            ],
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html id=\"x\"><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<!DOCTYPE html>X</html>X",
+      "errors": [
+        "(1,24): expected-eof-but-got-char"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "XX"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body>XX</body></html>",
+        "noQuirksBodyHtml": "XX"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html>X</html> ",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "X "
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body>X </body></html>",
+        "noQuirksBodyHtml": "X "
+      }
+    },
+    {
+      "data": "<!DOCTYPE html>X</html><p>X",
+      "errors": [
+        "(1,26): expected-eof-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "X"
+                  },
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "text": "X"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body>X<p>X</p></body></html>",
+        "noQuirksBodyHtml": "X<p>X</p>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html>X<p/x/y/z>",
+      "errors": [
+        "(1,19): unexpected-character-after-solidus-in-tag",
+        "(1,21): unexpected-character-after-solidus-in-tag",
+        "(1,23): unexpected-character-after-solidus-in-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "X"
+                  },
+                  {
+                    "tag": "p",
+                    "attrs": [
+                      {
+                        "name": "x",
+                        "value": ""
+                      },
+                      {
+                        "name": "y",
+                        "value": ""
+                      },
+                      {
+                        "name": "z",
+                        "value": ""
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body>X<p x=\"\" y=\"\" z=\"\"></p></body></html>",
+        "noQuirksBodyHtml": "X<p x=\"\" y=\"\" z=\"\"></p>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><!--x--",
+      "errors": [
+        "(1,22): eof-in-comment-double-dash"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true,
+          "comment": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "comment": "x"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><!--x--><html><head></head><body></body></html>",
+        "noQuirksBodyHtml": "<!--x-->"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><table><tr><td></p></table>",
+      "errors": [
+        "(1,34): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true,
+            "p": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td",
+                                "children": [
+                                  {
+                                    "tag": "p"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><p></p></td></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<table><tbody><tr><td><p></p></td></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE <!DOCTYPE HTML>><!--<!--x-->-->",
+      "errors": [
+        "(1,20): expected-space-or-right-bracket-in-doctype",
+        "(1,25): unknown-doctype",
+        "(1,35): unexpected-char-in-comment"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true,
+          "escaped": true,
+          "comment": true
+        },
+        "tree": [
+          {
+            "doctype": "<!doctype"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": ">",
+                    "escaped": true
+                  },
+                  {
+                    "comment": "<!--x"
+                  },
+                  {
+                    "text": "-->",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE <!doctype><html><head></head><body>&gt;<!--<!--x-->--&gt;</body></html>",
+        "noQuirksBodyHtml": "&gt;<!--<!--x-->--&gt;"
+      }
+    },
+    {
+      "data": "<!doctype html><div><form></form><div></div></div>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true,
+            "form": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "tag": "form"
+                      },
+                      {
+                        "tag": "div"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><div><form></form><div></div></div></body></html>",
+        "noQuirksBodyHtml": "<div><form></form><div></div></div>"
+      }
+    }
+  ],
+  "tests20.dat": [
+    {
+      "data": "<!doctype html><p><button><button>",
+      "errors": [
+        "(1,34): unexpected-start-tag-implies-end-tag",
+        "(1,34): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "button": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "button"
+                      },
+                      {
+                        "tag": "button"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p><button></button><button></button></p></body></html>",
+        "noQuirksBodyHtml": "<p><button></button><button></button></p>"
+      }
+    },
+    {
+      "data": "<!doctype html><p><button><address>",
+      "errors": [
+        "(1,35): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "button": true,
+            "address": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "button",
+                        "children": [
+                          {
+                            "tag": "address"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p><button><address></address></button></p></body></html>",
+        "noQuirksBodyHtml": "<p><button><address></address></button></p>"
+      }
+    },
+    {
+      "data": "<!doctype html><p><button><blockquote>",
+      "errors": [
+        "(1,38): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "button": true,
+            "blockquote": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "button",
+                        "children": [
+                          {
+                            "tag": "blockquote"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p><button><blockquote></blockquote></button></p></body></html>",
+        "noQuirksBodyHtml": "<p><button><blockquote></blockquote></button></p>"
+      }
+    },
+    {
+      "data": "<!doctype html><p><button><menu>",
+      "errors": [
+        "(1,32): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "button": true,
+            "menu": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "button",
+                        "children": [
+                          {
+                            "tag": "menu"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p><button><menu></menu></button></p></body></html>",
+        "noQuirksBodyHtml": "<p><button><menu></menu></button></p>"
+      }
+    },
+    {
+      "data": "<!doctype html><p><button><p>",
+      "errors": [
+        "(1,29): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "button": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "button",
+                        "children": [
+                          {
+                            "tag": "p"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p><button><p></p></button></p></body></html>",
+        "noQuirksBodyHtml": "<p><button><p></p></button></p>"
+      }
+    },
+    {
+      "data": "<!doctype html><p><button><ul>",
+      "errors": [
+        "(1,30): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "button": true,
+            "ul": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "button",
+                        "children": [
+                          {
+                            "tag": "ul"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p><button><ul></ul></button></p></body></html>",
+        "noQuirksBodyHtml": "<p><button><ul></ul></button></p>"
+      }
+    },
+    {
+      "data": "<!doctype html><p><button><h1>",
+      "errors": [
+        "(1,30): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "button": true,
+            "h1": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "button",
+                        "children": [
+                          {
+                            "tag": "h1"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p><button><h1></h1></button></p></body></html>",
+        "noQuirksBodyHtml": "<p><button><h1></h1></button></p>"
+      }
+    },
+    {
+      "data": "<!doctype html><p><button><h6>",
+      "errors": [
+        "(1,30): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "button": true,
+            "h6": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "button",
+                        "children": [
+                          {
+                            "tag": "h6"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p><button><h6></h6></button></p></body></html>",
+        "noQuirksBodyHtml": "<p><button><h6></h6></button></p>"
+      }
+    },
+    {
+      "data": "<!doctype html><p><button><listing>",
+      "errors": [
+        "(1,35): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "button": true,
+            "listing": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "button",
+                        "children": [
+                          {
+                            "tag": "listing"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p><button><listing></listing></button></p></body></html>",
+        "noQuirksBodyHtml": "<p><button><listing></listing></button></p>"
+      }
+    },
+    {
+      "data": "<!doctype html><p><button><pre>",
+      "errors": [
+        "(1,31): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "button": true,
+            "pre": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "button",
+                        "children": [
+                          {
+                            "tag": "pre"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p><button><pre></pre></button></p></body></html>",
+        "noQuirksBodyHtml": "<p><button><pre></pre></button></p>"
+      }
+    },
+    {
+      "data": "<!doctype html><p><button><form>",
+      "errors": [
+        "(1,32): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "button": true,
+            "form": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "button",
+                        "children": [
+                          {
+                            "tag": "form"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p><button><form></form></button></p></body></html>",
+        "noQuirksBodyHtml": "<p><button><form></form></button></p>"
+      }
+    },
+    {
+      "data": "<!doctype html><p><button><li>",
+      "errors": [
+        "(1,30): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "button": true,
+            "li": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "button",
+                        "children": [
+                          {
+                            "tag": "li"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p><button><li></li></button></p></body></html>",
+        "noQuirksBodyHtml": "<p><button><li></li></button></p>"
+      }
+    },
+    {
+      "data": "<!doctype html><p><button><dd>",
+      "errors": [
+        "(1,30): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "button": true,
+            "dd": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "button",
+                        "children": [
+                          {
+                            "tag": "dd"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p><button><dd></dd></button></p></body></html>",
+        "noQuirksBodyHtml": "<p><button><dd></dd></button></p>"
+      }
+    },
+    {
+      "data": "<!doctype html><p><button><dt>",
+      "errors": [
+        "(1,30): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "button": true,
+            "dt": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "button",
+                        "children": [
+                          {
+                            "tag": "dt"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p><button><dt></dt></button></p></body></html>",
+        "noQuirksBodyHtml": "<p><button><dt></dt></button></p>"
+      }
+    },
+    {
+      "data": "<!doctype html><p><button><plaintext>",
+      "errors": [
+        "(1,37): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "button": true,
+            "plaintext": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "button",
+                        "children": [
+                          {
+                            "tag": "plaintext"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p><button><plaintext></plaintext></button></p></body></html>",
+        "noQuirksBodyHtml": "<p><button><plaintext></plaintext></button></p>"
+      }
+    },
+    {
+      "data": "<!doctype html><p><button><table>",
+      "errors": [
+        "(1,33): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "button": true,
+            "table": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "button",
+                        "children": [
+                          {
+                            "tag": "table"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p><button><table></table></button></p></body></html>",
+        "noQuirksBodyHtml": "<p><button><table></table></button></p>"
+      }
+    },
+    {
+      "data": "<!doctype html><p><button><hr>",
+      "errors": [
+        "(1,30): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "button": true,
+            "hr": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "button",
+                        "children": [
+                          {
+                            "tag": "hr"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p><button><hr></button></p></body></html>",
+        "noQuirksBodyHtml": "<p><button><hr></button></p>"
+      }
+    },
+    {
+      "data": "<!doctype html><p><button><xmp>",
+      "errors": [
+        "(1,31): expected-named-closing-tag-but-got-eof",
+        "(1,31): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "button": true,
+            "xmp": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "button",
+                        "children": [
+                          {
+                            "tag": "xmp"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p><button><xmp></xmp></button></p></body></html>",
+        "noQuirksBodyHtml": "<p><button><xmp></xmp></button></p>"
+      }
+    },
+    {
+      "data": "<!doctype html><p><button></p>",
+      "errors": [
+        "(1,30): unexpected-end-tag",
+        "(1,30): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "button": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "button",
+                        "children": [
+                          {
+                            "tag": "p"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p><button><p></p></button></p></body></html>",
+        "noQuirksBodyHtml": "<p><button><p></p></button></p>"
+      }
+    },
+    {
+      "data": "<!doctype html><address><button></address>a",
+      "errors": [
+        "(1,42): end-tag-too-early"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "address": true,
+            "button": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "address",
+                    "children": [
+                      {
+                        "tag": "button"
+                      }
+                    ]
+                  },
+                  {
+                    "text": "a"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><address><button></button></address>a</body></html>",
+        "noQuirksBodyHtml": "<address><button></button></address>a"
+      }
+    },
+    {
+      "data": "<!doctype html><address><button></address>a",
+      "errors": [
+        "(1,42): end-tag-too-early"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "address": true,
+            "button": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "address",
+                    "children": [
+                      {
+                        "tag": "button"
+                      }
+                    ]
+                  },
+                  {
+                    "text": "a"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><address><button></button></address>a</body></html>",
+        "noQuirksBodyHtml": "<address><button></button></address>a"
+      }
+    },
+    {
+      "data": "<p><table></p>",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,14): unexpected-end-tag-implies-table-voodoo",
+        "(1,14): unexpected-end-tag",
+        "(1,14): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "table": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "p"
+                      },
+                      {
+                        "tag": "table"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><p><p></p><table></table></p></body></html>",
+        "noQuirksBodyHtml": "<p></p><p></p><table></table>"
+      }
+    },
+    {
+      "data": "<!doctype html><svg>",
+      "errors": [
+        "(1,20): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><svg></svg></body></html>",
+        "noQuirksBodyHtml": "<svg></svg>"
+      }
+    },
+    {
+      "data": "<!doctype html><p><figcaption>",
+      "errors": [
+        "(1,30): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "figcaption": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p"
+                  },
+                  {
+                    "tag": "figcaption"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p></p><figcaption></figcaption></body></html>",
+        "noQuirksBodyHtml": "<p></p><figcaption></figcaption>"
+      }
+    },
+    {
+      "data": "<!doctype html><p><summary>",
+      "errors": [
+        "(1,27): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "summary": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p"
+                  },
+                  {
+                    "tag": "summary"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p></p><summary></summary></body></html>",
+        "noQuirksBodyHtml": "<p></p><summary></summary>"
+      }
+    },
+    {
+      "data": "<!doctype html><form><table><form>",
+      "errors": [
+        "(1,34): unexpected-form-in-table",
+        "(1,34): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "form": true,
+            "table": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "form",
+                    "children": [
+                      {
+                        "tag": "table"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><form><table></table></form></body></html>",
+        "noQuirksBodyHtml": "<form><table></table></form>"
+      }
+    },
+    {
+      "data": "<!doctype html><table><form><form>",
+      "errors": [
+        "(1,28): unexpected-form-in-table",
+        "(1,34): unexpected-form-in-table",
+        "(1,34): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "form": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "form"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><table><form></form></table></body></html>",
+        "noQuirksBodyHtml": "<table><form></form></table>"
+      }
+    },
+    {
+      "data": "<!doctype html><table><form></table><form>",
+      "errors": [
+        "(1,28): unexpected-form-in-table",
+        "(1,42): unexpected-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "form": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "form"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><table><form></form></table></body></html>",
+        "noQuirksBodyHtml": "<table><form></form></table>"
+      }
+    },
+    {
+      "data": "<!doctype html><svg><foreignObject><p>",
+      "errors": [
+        "(1,38): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true,
+            "svg foreignObject": true,
+            "p": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "tag": "foreignObject",
+                        "ns": "http://www.w3.org/2000/svg",
+                        "children": [
+                          {
+                            "tag": "p"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><svg><foreignObject><p></p></foreignObject></svg></body></html>",
+        "noQuirksBodyHtml": "<svg><foreignObject><p></p></foreignObject></svg>"
+      }
+    },
+    {
+      "data": "<!doctype html><svg><title>abc",
+      "errors": [
+        "(1,30): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true,
+            "svg title": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "tag": "title",
+                        "ns": "http://www.w3.org/2000/svg",
+                        "children": [
+                          {
+                            "text": "abc"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><svg><title>abc</title></svg></body></html>",
+        "noQuirksBodyHtml": "<svg><title>abc</title></svg>"
+      }
+    },
+    {
+      "data": "<option><span><option>",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,22): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "option": true,
+            "span": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "option",
+                    "children": [
+                      {
+                        "tag": "span",
+                        "children": [
+                          {
+                            "tag": "option"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><option><span><option></option></span></option></body></html>",
+        "noQuirksBodyHtml": "<option><span><option></option></span></option>"
+      }
+    },
+    {
+      "data": "<option><option>",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,16): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "option": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "option"
+                  },
+                  {
+                    "tag": "option"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><option></option><option></option></body></html>",
+        "noQuirksBodyHtml": "<option></option><option></option>"
+      }
+    },
+    {
+      "data": "<math><annotation-xml><div>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,27): unexpected-html-element-in-foreign-content",
+        "(1,27): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "math annotation-xml": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "annotation-xml",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "div"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><math><annotation-xml></annotation-xml></math><div></div></body></html>",
+        "noQuirksBodyHtml": "<math><annotation-xml><div></div></annotation-xml></math>"
+      }
+    },
+    {
+      "data": "<math><annotation-xml encoding=\"application/svg+xml\"><div>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,58): unexpected-html-element-in-foreign-content",
+        "(1,58): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "math annotation-xml": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "annotation-xml",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "attrs": [
+                          {
+                            "name": "encoding",
+                            "value": "application/svg+xml"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "div"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><math><annotation-xml encoding=\"application/svg+xml\"></annotation-xml></math><div></div></body></html>",
+        "noQuirksBodyHtml": "<math><annotation-xml encoding=\"application/svg+xml\"><div></div></annotation-xml></math>"
+      }
+    },
+    {
+      "data": "<math><annotation-xml encoding=\"application/xhtml+xml\"><div>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,60): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "math annotation-xml": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "annotation-xml",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "attrs": [
+                          {
+                            "name": "encoding",
+                            "value": "application/xhtml+xml"
+                          }
+                        ],
+                        "children": [
+                          {
+                            "tag": "div"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><math><annotation-xml encoding=\"application/xhtml+xml\"><div></div></annotation-xml></math></body></html>",
+        "noQuirksBodyHtml": "<math><annotation-xml encoding=\"application/xhtml+xml\"><div></div></annotation-xml></math>"
+      }
+    },
+    {
+      "data": "<math><annotation-xml encoding=\"aPPlication/xhtmL+xMl\"><div>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,60): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "math annotation-xml": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "annotation-xml",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "attrs": [
+                          {
+                            "name": "encoding",
+                            "value": "aPPlication/xhtmL+xMl"
+                          }
+                        ],
+                        "children": [
+                          {
+                            "tag": "div"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><math><annotation-xml encoding=\"aPPlication/xhtmL+xMl\"><div></div></annotation-xml></math></body></html>",
+        "noQuirksBodyHtml": "<math><annotation-xml encoding=\"aPPlication/xhtmL+xMl\"><div></div></annotation-xml></math>"
+      }
+    },
+    {
+      "data": "<math><annotation-xml encoding=\"text/html\"><div>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,48): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "math annotation-xml": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "annotation-xml",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "attrs": [
+                          {
+                            "name": "encoding",
+                            "value": "text/html"
+                          }
+                        ],
+                        "children": [
+                          {
+                            "tag": "div"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><math><annotation-xml encoding=\"text/html\"><div></div></annotation-xml></math></body></html>",
+        "noQuirksBodyHtml": "<math><annotation-xml encoding=\"text/html\"><div></div></annotation-xml></math>"
+      }
+    },
+    {
+      "data": "<math><annotation-xml encoding=\"Text/htmL\"><div>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,48): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "math annotation-xml": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "annotation-xml",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "attrs": [
+                          {
+                            "name": "encoding",
+                            "value": "Text/htmL"
+                          }
+                        ],
+                        "children": [
+                          {
+                            "tag": "div"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><math><annotation-xml encoding=\"Text/htmL\"><div></div></annotation-xml></math></body></html>",
+        "noQuirksBodyHtml": "<math><annotation-xml encoding=\"Text/htmL\"><div></div></annotation-xml></math>"
+      }
+    },
+    {
+      "data": "<math><annotation-xml encoding=\" text/html \"><div>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,50): unexpected-html-element-in-foreign-content",
+        "(1,50): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "math annotation-xml": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "annotation-xml",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "attrs": [
+                          {
+                            "name": "encoding",
+                            "value": " text/html "
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "div"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><math><annotation-xml encoding=\" text/html \"></annotation-xml></math><div></div></body></html>",
+        "noQuirksBodyHtml": "<math><annotation-xml encoding=\" text/html \"><div></div></annotation-xml></math>"
+      }
+    }
+  ],
+  "tests21.dat": [
+    {
+      "data": "<svg><![CDATA[foo]]>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,20): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "text": "foo"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg>foo</svg></body></html>",
+        "noQuirksBodyHtml": "<svg>foo</svg>"
+      }
+    },
+    {
+      "data": "<math><![CDATA[foo]]>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,21): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "text": "foo"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><math>foo</math></body></html>",
+        "noQuirksBodyHtml": "<math>foo</math>"
+      }
+    },
+    {
+      "data": "<div><![CDATA[foo]]>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,7): expected-dashes-or-doctype",
+        "(1,20): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "comment": "[CDATA[foo]]"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div><!--[CDATA[foo]]--></div></body></html>",
+        "noQuirksBodyHtml": "<div><!--[CDATA[foo]]--></div>"
+      }
+    },
+    {
+      "data": "<svg><![CDATA[foo",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,17): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "text": "foo"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg>foo</svg></body></html>",
+        "noQuirksBodyHtml": "<svg>foo</svg>"
+      }
+    },
+    {
+      "data": "<svg><![CDATA[foo",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,17): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "text": "foo"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg>foo</svg></body></html>",
+        "noQuirksBodyHtml": "<svg>foo</svg>"
+      }
+    },
+    {
+      "data": "<svg><![CDATA[",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,14): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg></svg></body></html>",
+        "noQuirksBodyHtml": "<svg></svg>"
+      }
+    },
+    {
+      "data": "<svg><![CDATA[]]>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,17): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg></svg></body></html>",
+        "noQuirksBodyHtml": "<svg></svg>"
+      }
+    },
+    {
+      "data": "<svg><![CDATA[]] >]]>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,21): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "text": "]] >",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg>]] &gt;</svg></body></html>",
+        "noQuirksBodyHtml": "<svg>]] &gt;</svg>"
+      }
+    },
+    {
+      "data": "<svg><![CDATA[]] >]]>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,21): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "text": "]] >",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg>]] &gt;</svg></body></html>",
+        "noQuirksBodyHtml": "<svg>]] &gt;</svg>"
+      }
+    },
+    {
+      "data": "<svg><![CDATA[]]",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,16): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "text": "]]"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg>]]</svg></body></html>",
+        "noQuirksBodyHtml": "<svg>]]</svg>"
+      }
+    },
+    {
+      "data": "<svg><![CDATA[]",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,15): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "text": "]"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg>]</svg></body></html>",
+        "noQuirksBodyHtml": "<svg>]</svg>"
+      }
+    },
+    {
+      "data": "<svg><![CDATA[]>a",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,17): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "text": "]>a",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg>]&gt;a</svg></body></html>",
+        "noQuirksBodyHtml": "<svg>]&gt;a</svg>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><svg><![CDATA[foo]]]>",
+      "errors": [
+        "(1,36): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "text": "foo]"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><svg>foo]</svg></body></html>",
+        "noQuirksBodyHtml": "<svg>foo]</svg>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><svg><![CDATA[foo]]]]>",
+      "errors": [
+        "(1,37): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "text": "foo]]"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><svg>foo]]</svg></body></html>",
+        "noQuirksBodyHtml": "<svg>foo]]</svg>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><svg><![CDATA[foo]]]]]>",
+      "errors": [
+        "(1,38): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "text": "foo]]]"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><svg>foo]]]</svg></body></html>",
+        "noQuirksBodyHtml": "<svg>foo]]]</svg>"
+      }
+    },
+    {
+      "data": "<svg><foreignObject><div><![CDATA[foo]]>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,27): expected-dashes-or-doctype",
+        "(1,40): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true,
+            "svg foreignObject": true,
+            "div": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "tag": "foreignObject",
+                        "ns": "http://www.w3.org/2000/svg",
+                        "children": [
+                          {
+                            "tag": "div",
+                            "children": [
+                              {
+                                "comment": "[CDATA[foo]]"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg><foreignObject><div><!--[CDATA[foo]]--></div></foreignObject></svg></body></html>",
+        "noQuirksBodyHtml": "<svg><foreignObject><div><!--[CDATA[foo]]--></div></foreignObject></svg>"
+      }
+    },
+    {
+      "data": "<svg><![CDATA[<svg>]]>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,22): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "text": "<svg>",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg>&lt;svg&gt;</svg></body></html>",
+        "noQuirksBodyHtml": "<svg>&lt;svg&gt;</svg>"
+      }
+    },
+    {
+      "data": "<svg><![CDATA[</svg>a]]>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,24): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "text": "</svg>a",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg>&lt;/svg&gt;a</svg></body></html>",
+        "noQuirksBodyHtml": "<svg>&lt;/svg&gt;a</svg>"
+      }
+    },
+    {
+      "data": "<svg><![CDATA[<svg>a",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,20): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "text": "<svg>a",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg>&lt;svg&gt;a</svg></body></html>",
+        "noQuirksBodyHtml": "<svg>&lt;svg&gt;a</svg>"
+      }
+    },
+    {
+      "data": "<svg><![CDATA[</svg>a",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,21): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "text": "</svg>a",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg>&lt;/svg&gt;a</svg></body></html>",
+        "noQuirksBodyHtml": "<svg>&lt;/svg&gt;a</svg>"
+      }
+    },
+    {
+      "data": "<svg><![CDATA[<svg>]]><path>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,28): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true,
+            "svg path": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "text": "<svg>",
+                        "escaped": true
+                      },
+                      {
+                        "tag": "path",
+                        "ns": "http://www.w3.org/2000/svg"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg>&lt;svg&gt;<path></path></svg></body></html>",
+        "noQuirksBodyHtml": "<svg>&lt;svg&gt;<path></path></svg>"
+      }
+    },
+    {
+      "data": "<svg><![CDATA[<svg>]]></path>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,29): unexpected-end-tag",
+        "(1,29): unexpected-end-tag",
+        "(1,29): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "text": "<svg>",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg>&lt;svg&gt;</svg></body></html>",
+        "noQuirksBodyHtml": "<svg>&lt;svg&gt;</svg>"
+      }
+    },
+    {
+      "data": "<svg><![CDATA[<svg>]]><!--path-->",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,33): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true
+          },
+          "escaped": true,
+          "comment": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "text": "<svg>",
+                        "escaped": true
+                      },
+                      {
+                        "comment": "path"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg>&lt;svg&gt;<!--path--></svg></body></html>",
+        "noQuirksBodyHtml": "<svg>&lt;svg&gt;<!--path--></svg>"
+      }
+    },
+    {
+      "data": "<svg><![CDATA[<svg>]]>path",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,26): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "text": "<svg>path",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg>&lt;svg&gt;path</svg></body></html>",
+        "noQuirksBodyHtml": "<svg>&lt;svg&gt;path</svg>"
+      }
+    },
+    {
+      "data": "<svg><![CDATA[<!--svg-->]]>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,27): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "text": "<!--svg-->",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg>&lt;!--svg--&gt;</svg></body></html>",
+        "noQuirksBodyHtml": "<svg>&lt;!--svg--&gt;</svg>"
+      }
+    }
+  ],
+  "tests22.dat": [
+    {
+      "data": "<a><b><big><em><strong><div>X</a>",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,33): adoption-agency-1.3",
+        "(1,33): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "a": true,
+            "b": true,
+            "big": true,
+            "em": true,
+            "strong": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "a",
+                    "children": [
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "tag": "big",
+                            "children": [
+                              {
+                                "tag": "em",
+                                "children": [
+                                  {
+                                    "tag": "strong"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "big",
+                    "children": [
+                      {
+                        "tag": "em",
+                        "children": [
+                          {
+                            "tag": "strong",
+                            "children": [
+                              {
+                                "tag": "div",
+                                "children": [
+                                  {
+                                    "tag": "a",
+                                    "children": [
+                                      {
+                                        "text": "X"
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><a><b><big><em><strong></strong></em></big></b></a><big><em><strong><div><a>X</a></div></strong></em></big></body></html>",
+        "noQuirksBodyHtml": "<a><b><big><em><strong></strong></em></big></b></a><big><em><strong><div><a>X</a></div></strong></em></big>"
+      }
+    },
+    {
+      "data": "<a><b><div id=1><div id=2><div id=3><div id=4><div id=5><div id=6><div id=7><div id=8>A</a>",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,91): adoption-agency-1.3",
+        "(1,91): adoption-agency-1.3",
+        "(1,91): adoption-agency-1.3",
+        "(1,91): adoption-agency-1.3",
+        "(1,91): adoption-agency-1.3",
+        "(1,91): adoption-agency-1.3",
+        "(1,91): adoption-agency-1.3",
+        "(1,91): adoption-agency-1.3",
+        "(1,91): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "a": true,
+            "b": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "a",
+                    "children": [
+                      {
+                        "tag": "b"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "b",
+                    "children": [
+                      {
+                        "tag": "div",
+                        "attrs": [
+                          {
+                            "name": "id",
+                            "value": "1"
+                          }
+                        ],
+                        "children": [
+                          {
+                            "tag": "a"
+                          },
+                          {
+                            "tag": "div",
+                            "attrs": [
+                              {
+                                "name": "id",
+                                "value": "2"
+                              }
+                            ],
+                            "children": [
+                              {
+                                "tag": "a"
+                              },
+                              {
+                                "tag": "div",
+                                "attrs": [
+                                  {
+                                    "name": "id",
+                                    "value": "3"
+                                  }
+                                ],
+                                "children": [
+                                  {
+                                    "tag": "a"
+                                  },
+                                  {
+                                    "tag": "div",
+                                    "attrs": [
+                                      {
+                                        "name": "id",
+                                        "value": "4"
+                                      }
+                                    ],
+                                    "children": [
+                                      {
+                                        "tag": "a"
+                                      },
+                                      {
+                                        "tag": "div",
+                                        "attrs": [
+                                          {
+                                            "name": "id",
+                                            "value": "5"
+                                          }
+                                        ],
+                                        "children": [
+                                          {
+                                            "tag": "a"
+                                          },
+                                          {
+                                            "tag": "div",
+                                            "attrs": [
+                                              {
+                                                "name": "id",
+                                                "value": "6"
+                                              }
+                                            ],
+                                            "children": [
+                                              {
+                                                "tag": "a"
+                                              },
+                                              {
+                                                "tag": "div",
+                                                "attrs": [
+                                                  {
+                                                    "name": "id",
+                                                    "value": "7"
+                                                  }
+                                                ],
+                                                "children": [
+                                                  {
+                                                    "tag": "a"
+                                                  },
+                                                  {
+                                                    "tag": "div",
+                                                    "attrs": [
+                                                      {
+                                                        "name": "id",
+                                                        "value": "8"
+                                                      }
+                                                    ],
+                                                    "children": [
+                                                      {
+                                                        "tag": "a",
+                                                        "children": [
+                                                          {
+                                                            "text": "A"
+                                                          }
+                                                        ]
+                                                      }
+                                                    ]
+                                                  }
+                                                ]
+                                              }
+                                            ]
+                                          }
+                                        ]
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><a><b></b></a><b><div id=\"1\"><a></a><div id=\"2\"><a></a><div id=\"3\"><a></a><div id=\"4\"><a></a><div id=\"5\"><a></a><div id=\"6\"><a></a><div id=\"7\"><a></a><div id=\"8\"><a>A</a></div></div></div></div></div></div></div></div></b></body></html>",
+        "noQuirksBodyHtml": "<a><b></b></a><b><div id=\"1\"><a></a><div id=\"2\"><a></a><div id=\"3\"><a></a><div id=\"4\"><a></a><div id=\"5\"><a></a><div id=\"6\"><a></a><div id=\"7\"><a></a><div id=\"8\"><a>A</a></div></div></div></div></div></div></div></div></b>"
+      }
+    },
+    {
+      "data": "<a><b><div id=1><div id=2><div id=3><div id=4><div id=5><div id=6><div id=7><div id=8><div id=9>A</a>",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,101): adoption-agency-1.3",
+        "(1,101): adoption-agency-1.3",
+        "(1,101): adoption-agency-1.3",
+        "(1,101): adoption-agency-1.3",
+        "(1,101): adoption-agency-1.3",
+        "(1,101): adoption-agency-1.3",
+        "(1,101): adoption-agency-1.3",
+        "(1,101): adoption-agency-1.3",
+        "(1,101): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "a": true,
+            "b": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "a",
+                    "children": [
+                      {
+                        "tag": "b"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "b",
+                    "children": [
+                      {
+                        "tag": "div",
+                        "attrs": [
+                          {
+                            "name": "id",
+                            "value": "1"
+                          }
+                        ],
+                        "children": [
+                          {
+                            "tag": "a"
+                          },
+                          {
+                            "tag": "div",
+                            "attrs": [
+                              {
+                                "name": "id",
+                                "value": "2"
+                              }
+                            ],
+                            "children": [
+                              {
+                                "tag": "a"
+                              },
+                              {
+                                "tag": "div",
+                                "attrs": [
+                                  {
+                                    "name": "id",
+                                    "value": "3"
+                                  }
+                                ],
+                                "children": [
+                                  {
+                                    "tag": "a"
+                                  },
+                                  {
+                                    "tag": "div",
+                                    "attrs": [
+                                      {
+                                        "name": "id",
+                                        "value": "4"
+                                      }
+                                    ],
+                                    "children": [
+                                      {
+                                        "tag": "a"
+                                      },
+                                      {
+                                        "tag": "div",
+                                        "attrs": [
+                                          {
+                                            "name": "id",
+                                            "value": "5"
+                                          }
+                                        ],
+                                        "children": [
+                                          {
+                                            "tag": "a"
+                                          },
+                                          {
+                                            "tag": "div",
+                                            "attrs": [
+                                              {
+                                                "name": "id",
+                                                "value": "6"
+                                              }
+                                            ],
+                                            "children": [
+                                              {
+                                                "tag": "a"
+                                              },
+                                              {
+                                                "tag": "div",
+                                                "attrs": [
+                                                  {
+                                                    "name": "id",
+                                                    "value": "7"
+                                                  }
+                                                ],
+                                                "children": [
+                                                  {
+                                                    "tag": "a"
+                                                  },
+                                                  {
+                                                    "tag": "div",
+                                                    "attrs": [
+                                                      {
+                                                        "name": "id",
+                                                        "value": "8"
+                                                      }
+                                                    ],
+                                                    "children": [
+                                                      {
+                                                        "tag": "a",
+                                                        "children": [
+                                                          {
+                                                            "tag": "div",
+                                                            "attrs": [
+                                                              {
+                                                                "name": "id",
+                                                                "value": "9"
+                                                              }
+                                                            ],
+                                                            "children": [
+                                                              {
+                                                                "text": "A"
+                                                              }
+                                                            ]
+                                                          }
+                                                        ]
+                                                      }
+                                                    ]
+                                                  }
+                                                ]
+                                              }
+                                            ]
+                                          }
+                                        ]
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><a><b></b></a><b><div id=\"1\"><a></a><div id=\"2\"><a></a><div id=\"3\"><a></a><div id=\"4\"><a></a><div id=\"5\"><a></a><div id=\"6\"><a></a><div id=\"7\"><a></a><div id=\"8\"><a><div id=\"9\">A</div></a></div></div></div></div></div></div></div></div></b></body></html>",
+        "noQuirksBodyHtml": "<a><b></b></a><b><div id=\"1\"><a></a><div id=\"2\"><a></a><div id=\"3\"><a></a><div id=\"4\"><a></a><div id=\"5\"><a></a><div id=\"6\"><a></a><div id=\"7\"><a></a><div id=\"8\"><a><div id=\"9\">A</div></a></div></div></div></div></div></div></div></div></b>"
+      }
+    },
+    {
+      "data": "<a><b><div id=1><div id=2><div id=3><div id=4><div id=5><div id=6><div id=7><div id=8><div id=9><div id=10>A</a>",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,112): adoption-agency-1.3",
+        "(1,112): adoption-agency-1.3",
+        "(1,112): adoption-agency-1.3",
+        "(1,112): adoption-agency-1.3",
+        "(1,112): adoption-agency-1.3",
+        "(1,112): adoption-agency-1.3",
+        "(1,112): adoption-agency-1.3",
+        "(1,112): adoption-agency-1.3",
+        "(1,112): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "a": true,
+            "b": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "a",
+                    "children": [
+                      {
+                        "tag": "b"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "b",
+                    "children": [
+                      {
+                        "tag": "div",
+                        "attrs": [
+                          {
+                            "name": "id",
+                            "value": "1"
+                          }
+                        ],
+                        "children": [
+                          {
+                            "tag": "a"
+                          },
+                          {
+                            "tag": "div",
+                            "attrs": [
+                              {
+                                "name": "id",
+                                "value": "2"
+                              }
+                            ],
+                            "children": [
+                              {
+                                "tag": "a"
+                              },
+                              {
+                                "tag": "div",
+                                "attrs": [
+                                  {
+                                    "name": "id",
+                                    "value": "3"
+                                  }
+                                ],
+                                "children": [
+                                  {
+                                    "tag": "a"
+                                  },
+                                  {
+                                    "tag": "div",
+                                    "attrs": [
+                                      {
+                                        "name": "id",
+                                        "value": "4"
+                                      }
+                                    ],
+                                    "children": [
+                                      {
+                                        "tag": "a"
+                                      },
+                                      {
+                                        "tag": "div",
+                                        "attrs": [
+                                          {
+                                            "name": "id",
+                                            "value": "5"
+                                          }
+                                        ],
+                                        "children": [
+                                          {
+                                            "tag": "a"
+                                          },
+                                          {
+                                            "tag": "div",
+                                            "attrs": [
+                                              {
+                                                "name": "id",
+                                                "value": "6"
+                                              }
+                                            ],
+                                            "children": [
+                                              {
+                                                "tag": "a"
+                                              },
+                                              {
+                                                "tag": "div",
+                                                "attrs": [
+                                                  {
+                                                    "name": "id",
+                                                    "value": "7"
+                                                  }
+                                                ],
+                                                "children": [
+                                                  {
+                                                    "tag": "a"
+                                                  },
+                                                  {
+                                                    "tag": "div",
+                                                    "attrs": [
+                                                      {
+                                                        "name": "id",
+                                                        "value": "8"
+                                                      }
+                                                    ],
+                                                    "children": [
+                                                      {
+                                                        "tag": "a",
+                                                        "children": [
+                                                          {
+                                                            "tag": "div",
+                                                            "attrs": [
+                                                              {
+                                                                "name": "id",
+                                                                "value": "9"
+                                                              }
+                                                            ],
+                                                            "children": [
+                                                              {
+                                                                "tag": "div",
+                                                                "attrs": [
+                                                                  {
+                                                                    "name": "id",
+                                                                    "value": "10"
+                                                                  }
+                                                                ],
+                                                                "children": [
+                                                                  {
+                                                                    "text": "A"
+                                                                  }
+                                                                ]
+                                                              }
+                                                            ]
+                                                          }
+                                                        ]
+                                                      }
+                                                    ]
+                                                  }
+                                                ]
+                                              }
+                                            ]
+                                          }
+                                        ]
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><a><b></b></a><b><div id=\"1\"><a></a><div id=\"2\"><a></a><div id=\"3\"><a></a><div id=\"4\"><a></a><div id=\"5\"><a></a><div id=\"6\"><a></a><div id=\"7\"><a></a><div id=\"8\"><a><div id=\"9\"><div id=\"10\">A</div></div></a></div></div></div></div></div></div></div></div></b></body></html>",
+        "noQuirksBodyHtml": "<a><b></b></a><b><div id=\"1\"><a></a><div id=\"2\"><a></a><div id=\"3\"><a></a><div id=\"4\"><a></a><div id=\"5\"><a></a><div id=\"6\"><a></a><div id=\"7\"><a></a><div id=\"8\"><a><div id=\"9\"><div id=\"10\">A</div></div></a></div></div></div></div></div></div></div></div></b>"
+      }
+    },
+    {
+      "data": "<cite><b><cite><i><cite><i><cite><i><div>X</b>TEST",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,46): adoption-agency-1.3",
+        "(1,50): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "cite": true,
+            "b": true,
+            "i": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "cite",
+                    "children": [
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "tag": "cite",
+                            "children": [
+                              {
+                                "tag": "i",
+                                "children": [
+                                  {
+                                    "tag": "cite",
+                                    "children": [
+                                      {
+                                        "tag": "i",
+                                        "children": [
+                                          {
+                                            "tag": "cite",
+                                            "children": [
+                                              {
+                                                "tag": "i"
+                                              }
+                                            ]
+                                          }
+                                        ]
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "i",
+                        "children": [
+                          {
+                            "tag": "i",
+                            "children": [
+                              {
+                                "tag": "div",
+                                "children": [
+                                  {
+                                    "tag": "b",
+                                    "children": [
+                                      {
+                                        "text": "X"
+                                      }
+                                    ]
+                                  },
+                                  {
+                                    "text": "TEST"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><cite><b><cite><i><cite><i><cite><i></i></cite></i></cite></i></cite></b><i><i><div><b>X</b>TEST</div></i></i></cite></body></html>",
+        "noQuirksBodyHtml": "<cite><b><cite><i><cite><i><cite><i></i></cite></i></cite></i></cite></b><i><i><div><b>X</b>TEST</div></i></i></cite>"
+      }
+    }
+  ],
+  "tests23.dat": [
+    {
+      "data": "<p><font size=4><font color=red><font size=4><font size=4><font size=4><font size=4><font size=4><font color=red><p>X",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,116): unexpected-end-tag",
+        "(1,117): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "font": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "font",
+                        "attrs": [
+                          {
+                            "name": "size",
+                            "value": "4"
+                          }
+                        ],
+                        "children": [
+                          {
+                            "tag": "font",
+                            "attrs": [
+                              {
+                                "name": "color",
+                                "value": "red"
+                              }
+                            ],
+                            "children": [
+                              {
+                                "tag": "font",
+                                "attrs": [
+                                  {
+                                    "name": "size",
+                                    "value": "4"
+                                  }
+                                ],
+                                "children": [
+                                  {
+                                    "tag": "font",
+                                    "attrs": [
+                                      {
+                                        "name": "size",
+                                        "value": "4"
+                                      }
+                                    ],
+                                    "children": [
+                                      {
+                                        "tag": "font",
+                                        "attrs": [
+                                          {
+                                            "name": "size",
+                                            "value": "4"
+                                          }
+                                        ],
+                                        "children": [
+                                          {
+                                            "tag": "font",
+                                            "attrs": [
+                                              {
+                                                "name": "size",
+                                                "value": "4"
+                                              }
+                                            ],
+                                            "children": [
+                                              {
+                                                "tag": "font",
+                                                "attrs": [
+                                                  {
+                                                    "name": "size",
+                                                    "value": "4"
+                                                  }
+                                                ],
+                                                "children": [
+                                                  {
+                                                    "tag": "font",
+                                                    "attrs": [
+                                                      {
+                                                        "name": "color",
+                                                        "value": "red"
+                                                      }
+                                                    ]
+                                                  }
+                                                ]
+                                              }
+                                            ]
+                                          }
+                                        ]
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "font",
+                        "attrs": [
+                          {
+                            "name": "color",
+                            "value": "red"
+                          }
+                        ],
+                        "children": [
+                          {
+                            "tag": "font",
+                            "attrs": [
+                              {
+                                "name": "size",
+                                "value": "4"
+                              }
+                            ],
+                            "children": [
+                              {
+                                "tag": "font",
+                                "attrs": [
+                                  {
+                                    "name": "size",
+                                    "value": "4"
+                                  }
+                                ],
+                                "children": [
+                                  {
+                                    "tag": "font",
+                                    "attrs": [
+                                      {
+                                        "name": "size",
+                                        "value": "4"
+                                      }
+                                    ],
+                                    "children": [
+                                      {
+                                        "tag": "font",
+                                        "attrs": [
+                                          {
+                                            "name": "color",
+                                            "value": "red"
+                                          }
+                                        ],
+                                        "children": [
+                                          {
+                                            "text": "X"
+                                          }
+                                        ]
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><p><font size=\"4\"><font color=\"red\"><font size=\"4\"><font size=\"4\"><font size=\"4\"><font size=\"4\"><font size=\"4\"><font color=\"red\"></font></font></font></font></font></font></font></font></p><p><font color=\"red\"><font size=\"4\"><font size=\"4\"><font size=\"4\"><font color=\"red\">X</font></font></font></font></font></p></body></html>",
+        "noQuirksBodyHtml": "<p><font size=\"4\"><font color=\"red\"><font size=\"4\"><font size=\"4\"><font size=\"4\"><font size=\"4\"><font size=\"4\"><font color=\"red\"></font></font></font></font></font></font></font></font></p><p><font color=\"red\"><font size=\"4\"><font size=\"4\"><font size=\"4\"><font color=\"red\">X</font></font></font></font></font></p>"
+      }
+    },
+    {
+      "data": "<p><font size=4><font size=4><font size=4><font size=4><p>X",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,58): unexpected-end-tag",
+        "(1,59): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "font": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "font",
+                        "attrs": [
+                          {
+                            "name": "size",
+                            "value": "4"
+                          }
+                        ],
+                        "children": [
+                          {
+                            "tag": "font",
+                            "attrs": [
+                              {
+                                "name": "size",
+                                "value": "4"
+                              }
+                            ],
+                            "children": [
+                              {
+                                "tag": "font",
+                                "attrs": [
+                                  {
+                                    "name": "size",
+                                    "value": "4"
+                                  }
+                                ],
+                                "children": [
+                                  {
+                                    "tag": "font",
+                                    "attrs": [
+                                      {
+                                        "name": "size",
+                                        "value": "4"
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "font",
+                        "attrs": [
+                          {
+                            "name": "size",
+                            "value": "4"
+                          }
+                        ],
+                        "children": [
+                          {
+                            "tag": "font",
+                            "attrs": [
+                              {
+                                "name": "size",
+                                "value": "4"
+                              }
+                            ],
+                            "children": [
+                              {
+                                "tag": "font",
+                                "attrs": [
+                                  {
+                                    "name": "size",
+                                    "value": "4"
+                                  }
+                                ],
+                                "children": [
+                                  {
+                                    "text": "X"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><p><font size=\"4\"><font size=\"4\"><font size=\"4\"><font size=\"4\"></font></font></font></font></p><p><font size=\"4\"><font size=\"4\"><font size=\"4\">X</font></font></font></p></body></html>",
+        "noQuirksBodyHtml": "<p><font size=\"4\"><font size=\"4\"><font size=\"4\"><font size=\"4\"></font></font></font></font></p><p><font size=\"4\"><font size=\"4\"><font size=\"4\">X</font></font></font></p>"
+      }
+    },
+    {
+      "data": "<p><font size=4><font size=4><font size=4><font size=\"5\"><font size=4><p>X",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,73): unexpected-end-tag",
+        "(1,74): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "font": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "font",
+                        "attrs": [
+                          {
+                            "name": "size",
+                            "value": "4"
+                          }
+                        ],
+                        "children": [
+                          {
+                            "tag": "font",
+                            "attrs": [
+                              {
+                                "name": "size",
+                                "value": "4"
+                              }
+                            ],
+                            "children": [
+                              {
+                                "tag": "font",
+                                "attrs": [
+                                  {
+                                    "name": "size",
+                                    "value": "4"
+                                  }
+                                ],
+                                "children": [
+                                  {
+                                    "tag": "font",
+                                    "attrs": [
+                                      {
+                                        "name": "size",
+                                        "value": "5"
+                                      }
+                                    ],
+                                    "children": [
+                                      {
+                                        "tag": "font",
+                                        "attrs": [
+                                          {
+                                            "name": "size",
+                                            "value": "4"
+                                          }
+                                        ]
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "font",
+                        "attrs": [
+                          {
+                            "name": "size",
+                            "value": "4"
+                          }
+                        ],
+                        "children": [
+                          {
+                            "tag": "font",
+                            "attrs": [
+                              {
+                                "name": "size",
+                                "value": "4"
+                              }
+                            ],
+                            "children": [
+                              {
+                                "tag": "font",
+                                "attrs": [
+                                  {
+                                    "name": "size",
+                                    "value": "5"
+                                  }
+                                ],
+                                "children": [
+                                  {
+                                    "tag": "font",
+                                    "attrs": [
+                                      {
+                                        "name": "size",
+                                        "value": "4"
+                                      }
+                                    ],
+                                    "children": [
+                                      {
+                                        "text": "X"
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><p><font size=\"4\"><font size=\"4\"><font size=\"4\"><font size=\"5\"><font size=\"4\"></font></font></font></font></font></p><p><font size=\"4\"><font size=\"4\"><font size=\"5\"><font size=\"4\">X</font></font></font></font></p></body></html>",
+        "noQuirksBodyHtml": "<p><font size=\"4\"><font size=\"4\"><font size=\"4\"><font size=\"5\"><font size=\"4\"></font></font></font></font></font></p><p><font size=\"4\"><font size=\"4\"><font size=\"5\"><font size=\"4\">X</font></font></font></font></p>"
+      }
+    },
+    {
+      "data": "<p><font size=4 id=a><font size=4 id=b><font size=4><font size=4><p>X",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,68): unexpected-end-tag",
+        "(1,69): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "font": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "font",
+                        "attrs": [
+                          {
+                            "name": "id",
+                            "value": "a"
+                          },
+                          {
+                            "name": "size",
+                            "value": "4"
+                          }
+                        ],
+                        "children": [
+                          {
+                            "tag": "font",
+                            "attrs": [
+                              {
+                                "name": "id",
+                                "value": "b"
+                              },
+                              {
+                                "name": "size",
+                                "value": "4"
+                              }
+                            ],
+                            "children": [
+                              {
+                                "tag": "font",
+                                "attrs": [
+                                  {
+                                    "name": "size",
+                                    "value": "4"
+                                  }
+                                ],
+                                "children": [
+                                  {
+                                    "tag": "font",
+                                    "attrs": [
+                                      {
+                                        "name": "size",
+                                        "value": "4"
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "font",
+                        "attrs": [
+                          {
+                            "name": "id",
+                            "value": "a"
+                          },
+                          {
+                            "name": "size",
+                            "value": "4"
+                          }
+                        ],
+                        "children": [
+                          {
+                            "tag": "font",
+                            "attrs": [
+                              {
+                                "name": "id",
+                                "value": "b"
+                              },
+                              {
+                                "name": "size",
+                                "value": "4"
+                              }
+                            ],
+                            "children": [
+                              {
+                                "tag": "font",
+                                "attrs": [
+                                  {
+                                    "name": "size",
+                                    "value": "4"
+                                  }
+                                ],
+                                "children": [
+                                  {
+                                    "tag": "font",
+                                    "attrs": [
+                                      {
+                                        "name": "size",
+                                        "value": "4"
+                                      }
+                                    ],
+                                    "children": [
+                                      {
+                                        "text": "X"
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><p><font size=\"4\" id=\"a\"><font size=\"4\" id=\"b\"><font size=\"4\"><font size=\"4\"></font></font></font></font></p><p><font size=\"4\" id=\"a\"><font size=\"4\" id=\"b\"><font size=\"4\"><font size=\"4\">X</font></font></font></font></p></body></html>",
+        "noQuirksBodyHtml": "<p><font size=\"4\" id=\"a\"><font size=\"4\" id=\"b\"><font size=\"4\"><font size=\"4\"></font></font></font></font></p><p><font size=\"4\" id=\"a\"><font size=\"4\" id=\"b\"><font size=\"4\"><font size=\"4\">X</font></font></font></font></p>"
+      }
+    },
+    {
+      "data": "<p><b id=a><b id=a><b id=a><b><object><b id=a><b id=a>X</object><p>Y",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,64): end-tag-too-early",
+        "(1,67): unexpected-end-tag",
+        "(1,68): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "b": true,
+            "object": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "b",
+                        "attrs": [
+                          {
+                            "name": "id",
+                            "value": "a"
+                          }
+                        ],
+                        "children": [
+                          {
+                            "tag": "b",
+                            "attrs": [
+                              {
+                                "name": "id",
+                                "value": "a"
+                              }
+                            ],
+                            "children": [
+                              {
+                                "tag": "b",
+                                "attrs": [
+                                  {
+                                    "name": "id",
+                                    "value": "a"
+                                  }
+                                ],
+                                "children": [
+                                  {
+                                    "tag": "b",
+                                    "children": [
+                                      {
+                                        "tag": "object",
+                                        "children": [
+                                          {
+                                            "tag": "b",
+                                            "attrs": [
+                                              {
+                                                "name": "id",
+                                                "value": "a"
+                                              }
+                                            ],
+                                            "children": [
+                                              {
+                                                "tag": "b",
+                                                "attrs": [
+                                                  {
+                                                    "name": "id",
+                                                    "value": "a"
+                                                  }
+                                                ],
+                                                "children": [
+                                                  {
+                                                    "text": "X"
+                                                  }
+                                                ]
+                                              }
+                                            ]
+                                          }
+                                        ]
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "b",
+                        "attrs": [
+                          {
+                            "name": "id",
+                            "value": "a"
+                          }
+                        ],
+                        "children": [
+                          {
+                            "tag": "b",
+                            "attrs": [
+                              {
+                                "name": "id",
+                                "value": "a"
+                              }
+                            ],
+                            "children": [
+                              {
+                                "tag": "b",
+                                "attrs": [
+                                  {
+                                    "name": "id",
+                                    "value": "a"
+                                  }
+                                ],
+                                "children": [
+                                  {
+                                    "tag": "b",
+                                    "children": [
+                                      {
+                                        "text": "Y"
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><p><b id=\"a\"><b id=\"a\"><b id=\"a\"><b><object><b id=\"a\"><b id=\"a\">X</b></b></object></b></b></b></b></p><p><b id=\"a\"><b id=\"a\"><b id=\"a\"><b>Y</b></b></b></b></p></body></html>",
+        "noQuirksBodyHtml": "<p><b id=\"a\"><b id=\"a\"><b id=\"a\"><b><object><b id=\"a\"><b id=\"a\">X</b></b></object></b></b></b></b></p><p><b id=\"a\"><b id=\"a\"><b id=\"a\"><b>Y</b></b></b></b></p>"
+      }
+    }
+  ],
+  "tests24.dat": [
+    {
+      "data": "<!DOCTYPE html>&NotEqualTilde;",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "≂̸"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body>≂̸</body></html>",
+        "noQuirksBodyHtml": "≂̸"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html>&NotEqualTilde;A",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "≂̸A"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body>≂̸A</body></html>",
+        "noQuirksBodyHtml": "≂̸A"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html>&ThickSpace;",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "  "
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body>  </body></html>",
+        "noQuirksBodyHtml": "  "
+      }
+    },
+    {
+      "data": "<!DOCTYPE html>&ThickSpace;A",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "  A"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body>  A</body></html>",
+        "noQuirksBodyHtml": "  A"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html>&NotSubset;",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "⊂⃒"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body>⊂⃒</body></html>",
+        "noQuirksBodyHtml": "⊂⃒"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html>&NotSubset;A",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "⊂⃒A"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body>⊂⃒A</body></html>",
+        "noQuirksBodyHtml": "⊂⃒A"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html>&Gopf;",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "𝔾"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body>𝔾</body></html>",
+        "noQuirksBodyHtml": "𝔾"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html>&Gopf;A",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "𝔾A"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body>𝔾A</body></html>",
+        "noQuirksBodyHtml": "𝔾A"
+      }
+    }
+  ],
+  "tests25.dat": [
+    {
+      "data": "<!DOCTYPE html><body><foo>A",
+      "errors": [
+        "(1,27): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "foo": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "foo",
+                    "children": [
+                      {
+                        "text": "A"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><foo>A</foo></body></html>",
+        "noQuirksBodyHtml": "<foo>A</foo>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><area>A",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "area": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "area"
+                  },
+                  {
+                    "text": "A"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><area>A</body></html>",
+        "noQuirksBodyHtml": "<area>A"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><base>A",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "base": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "base"
+                  },
+                  {
+                    "text": "A"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><base>A</body></html>",
+        "noQuirksBodyHtml": "<base>A"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><basefont>A",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "basefont": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "basefont"
+                  },
+                  {
+                    "text": "A"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><basefont>A</body></html>",
+        "noQuirksBodyHtml": "<basefont>A"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><bgsound>A",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "bgsound": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "bgsound"
+                  },
+                  {
+                    "text": "A"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><bgsound>A</body></html>",
+        "noQuirksBodyHtml": "<bgsound>A"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><br>A",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "br": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "br"
+                  },
+                  {
+                    "text": "A"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><br>A</body></html>",
+        "noQuirksBodyHtml": "<br>A"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><col>A",
+      "errors": [
+        "(1,26): unexpected-start-tag-ignored"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "A"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body>A</body></html>",
+        "noQuirksBodyHtml": "A"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><command>A",
+      "errors": [
+        "eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "command": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "command",
+                    "children": [
+                      {
+                        "text": "A"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><command>A</command></body></html>",
+        "noQuirksBodyHtml": "<command>A</command>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><menuitem>A",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "menuitem": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "menuitem"
+                  },
+                  {
+                    "text": "A"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><menuitem>A</body></html>",
+        "noQuirksBodyHtml": "<menuitem>A"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><embed>A",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "embed": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "embed"
+                  },
+                  {
+                    "text": "A"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><embed>A</body></html>",
+        "noQuirksBodyHtml": "<embed>A"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><frame>A",
+      "errors": [
+        "(1,28): unexpected-start-tag-ignored"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "A"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body>A</body></html>",
+        "noQuirksBodyHtml": "A"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><hr>A",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "hr": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "hr"
+                  },
+                  {
+                    "text": "A"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><hr>A</body></html>",
+        "noQuirksBodyHtml": "<hr>A"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><img>A",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "img": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "img"
+                  },
+                  {
+                    "text": "A"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><img>A</body></html>",
+        "noQuirksBodyHtml": "<img>A"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><input>A",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "input": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "input"
+                  },
+                  {
+                    "text": "A"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><input>A</body></html>",
+        "noQuirksBodyHtml": "<input>A"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><keygen>A",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "keygen": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "keygen"
+                  },
+                  {
+                    "text": "A"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><keygen>A</body></html>",
+        "noQuirksBodyHtml": "<keygen>A"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><link>A",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "link": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "link"
+                  },
+                  {
+                    "text": "A"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><link>A</body></html>",
+        "noQuirksBodyHtml": "<link>A"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><meta>A",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "meta": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "meta"
+                  },
+                  {
+                    "text": "A"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><meta>A</body></html>",
+        "noQuirksBodyHtml": "<meta>A"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><param>A",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "param": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "param"
+                  },
+                  {
+                    "text": "A"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><param>A</body></html>",
+        "noQuirksBodyHtml": "<param>A"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><source>A",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "source": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "source"
+                  },
+                  {
+                    "text": "A"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><source>A</body></html>",
+        "noQuirksBodyHtml": "<source>A"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><track>A",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "track": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "track"
+                  },
+                  {
+                    "text": "A"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><track>A</body></html>",
+        "noQuirksBodyHtml": "<track>A"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><wbr>A",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "wbr": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "wbr"
+                  },
+                  {
+                    "text": "A"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><wbr>A</body></html>",
+        "noQuirksBodyHtml": "<wbr>A"
+      }
+    }
+  ],
+  "tests26.dat": [
+    {
+      "data": "<!DOCTYPE html><body><a href='#1'><nobr>1<nobr></a><br><a href='#2'><nobr>2<nobr></a><br><a href='#3'><nobr>3<nobr></a>",
+      "errors": [
+        "(1,47): unexpected-start-tag-implies-end-tag",
+        "(1,51): adoption-agency-1.3",
+        "(1,74): unexpected-start-tag-implies-end-tag",
+        "(1,74): adoption-agency-1.3",
+        "(1,81): unexpected-start-tag-implies-end-tag",
+        "(1,85): adoption-agency-1.3",
+        "(1,108): unexpected-start-tag-implies-end-tag",
+        "(1,108): adoption-agency-1.3",
+        "(1,115): unexpected-start-tag-implies-end-tag",
+        "(1,119): adoption-agency-1.3"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "a": true,
+            "nobr": true,
+            "br": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "a",
+                    "attrs": [
+                      {
+                        "name": "href",
+                        "value": "#1"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "tag": "nobr",
+                        "children": [
+                          {
+                            "text": "1"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "nobr"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "nobr",
+                    "children": [
+                      {
+                        "tag": "br"
+                      },
+                      {
+                        "tag": "a",
+                        "attrs": [
+                          {
+                            "name": "href",
+                            "value": "#2"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "a",
+                    "attrs": [
+                      {
+                        "name": "href",
+                        "value": "#2"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "tag": "nobr",
+                        "children": [
+                          {
+                            "text": "2"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "nobr"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "nobr",
+                    "children": [
+                      {
+                        "tag": "br"
+                      },
+                      {
+                        "tag": "a",
+                        "attrs": [
+                          {
+                            "name": "href",
+                            "value": "#3"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "a",
+                    "attrs": [
+                      {
+                        "name": "href",
+                        "value": "#3"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "tag": "nobr",
+                        "children": [
+                          {
+                            "text": "3"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "nobr"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><a href=\"#1\"><nobr>1</nobr><nobr></nobr></a><nobr><br><a href=\"#2\"></a></nobr><a href=\"#2\"><nobr>2</nobr><nobr></nobr></a><nobr><br><a href=\"#3\"></a></nobr><a href=\"#3\"><nobr>3</nobr><nobr></nobr></a></body></html>",
+        "noQuirksBodyHtml": "<a href=\"#1\"><nobr>1</nobr><nobr></nobr></a><nobr><br><a href=\"#2\"></a></nobr><a href=\"#2\"><nobr>2</nobr><nobr></nobr></a><nobr><br><a href=\"#3\"></a></nobr><a href=\"#3\"><nobr>3</nobr><nobr></nobr></a>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><b><nobr>1<nobr></b><i><nobr>2<nobr></i>3",
+      "errors": [
+        "(1,37): unexpected-start-tag-implies-end-tag",
+        "(1,41): adoption-agency-1.3",
+        "(1,50): unexpected-start-tag-implies-end-tag",
+        "(1,50): adoption-agency-1.3",
+        "(1,57): unexpected-start-tag-implies-end-tag",
+        "(1,61): adoption-agency-1.3",
+        "(1,62): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "b": true,
+            "nobr": true,
+            "i": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "b",
+                    "children": [
+                      {
+                        "tag": "nobr",
+                        "children": [
+                          {
+                            "text": "1"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "nobr"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "nobr",
+                    "children": [
+                      {
+                        "tag": "i"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "i",
+                    "children": [
+                      {
+                        "tag": "nobr",
+                        "children": [
+                          {
+                            "text": "2"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "nobr"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "nobr",
+                    "children": [
+                      {
+                        "text": "3"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><b><nobr>1</nobr><nobr></nobr></b><nobr><i></i></nobr><i><nobr>2</nobr><nobr></nobr></i><nobr>3</nobr></body></html>",
+        "noQuirksBodyHtml": "<b><nobr>1</nobr><nobr></nobr></b><nobr><i></i></nobr><i><nobr>2</nobr><nobr></nobr></i><nobr>3</nobr>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><b><nobr>1<table><nobr></b><i><nobr>2<nobr></i>3",
+      "errors": [
+        "(1,44): foster-parenting-start-tag",
+        "(1,48): foster-parenting-end-tag",
+        "(1,48): adoption-agency-1.3",
+        "(1,51): foster-parenting-start-tag",
+        "(1,57): foster-parenting-start-tag",
+        "(1,57): nobr-already-in-scope",
+        "(1,57): adoption-agency-1.2",
+        "(1,58): foster-parenting-character",
+        "(1,64): foster-parenting-start-tag",
+        "(1,64): nobr-already-in-scope",
+        "(1,68): foster-parenting-end-tag",
+        "(1,68): adoption-agency-1.2",
+        "(1,69): foster-parenting-character",
+        "(1,69): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "b": true,
+            "nobr": true,
+            "i": true,
+            "table": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "b",
+                    "children": [
+                      {
+                        "tag": "nobr",
+                        "children": [
+                          {
+                            "text": "1"
+                          },
+                          {
+                            "tag": "nobr",
+                            "children": [
+                              {
+                                "tag": "i"
+                              }
+                            ]
+                          },
+                          {
+                            "tag": "i",
+                            "children": [
+                              {
+                                "tag": "nobr",
+                                "children": [
+                                  {
+                                    "text": "2"
+                                  }
+                                ]
+                              },
+                              {
+                                "tag": "nobr"
+                              }
+                            ]
+                          },
+                          {
+                            "tag": "nobr",
+                            "children": [
+                              {
+                                "text": "3"
+                              }
+                            ]
+                          },
+                          {
+                            "tag": "table"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><b><nobr>1<nobr><i></i></nobr><i><nobr>2</nobr><nobr></nobr></i><nobr>3</nobr><table></table></nobr></b></body></html>",
+        "noQuirksBodyHtml": "<b><nobr>1<nobr><i></i></nobr><i><nobr>2</nobr><nobr></nobr></i><nobr>3</nobr><table></table></nobr></b>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><b><nobr>1<table><tr><td><nobr></b><i><nobr>2<nobr></i>3",
+      "errors": [
+        "(1,56): unexpected-end-tag",
+        "(1,65): unexpected-start-tag-implies-end-tag",
+        "(1,65): adoption-agency-1.3",
+        "(1,72): unexpected-start-tag-implies-end-tag",
+        "(1,76): adoption-agency-1.3",
+        "(1,77): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "b": true,
+            "nobr": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true,
+            "i": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "b",
+                    "children": [
+                      {
+                        "tag": "nobr",
+                        "children": [
+                          {
+                            "text": "1"
+                          },
+                          {
+                            "tag": "table",
+                            "children": [
+                              {
+                                "tag": "tbody",
+                                "children": [
+                                  {
+                                    "tag": "tr",
+                                    "children": [
+                                      {
+                                        "tag": "td",
+                                        "children": [
+                                          {
+                                            "tag": "nobr",
+                                            "children": [
+                                              {
+                                                "tag": "i"
+                                              }
+                                            ]
+                                          },
+                                          {
+                                            "tag": "i",
+                                            "children": [
+                                              {
+                                                "tag": "nobr",
+                                                "children": [
+                                                  {
+                                                    "text": "2"
+                                                  }
+                                                ]
+                                              },
+                                              {
+                                                "tag": "nobr"
+                                              }
+                                            ]
+                                          },
+                                          {
+                                            "tag": "nobr",
+                                            "children": [
+                                              {
+                                                "text": "3"
+                                              }
+                                            ]
+                                          }
+                                        ]
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><b><nobr>1<table><tbody><tr><td><nobr><i></i></nobr><i><nobr>2</nobr><nobr></nobr></i><nobr>3</nobr></td></tr></tbody></table></nobr></b></body></html>",
+        "noQuirksBodyHtml": "<b><nobr>1<table><tbody><tr><td><nobr><i></i></nobr><i><nobr>2</nobr><nobr></nobr></i><nobr>3</nobr></td></tr></tbody></table></nobr></b>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><b><nobr>1<div><nobr></b><i><nobr>2<nobr></i>3",
+      "errors": [
+        "(1,42): unexpected-start-tag-implies-end-tag",
+        "(1,42): adoption-agency-1.3",
+        "(1,46): adoption-agency-1.3",
+        "(1,46): adoption-agency-1.3",
+        "(1,55): unexpected-start-tag-implies-end-tag",
+        "(1,55): adoption-agency-1.3",
+        "(1,62): unexpected-start-tag-implies-end-tag",
+        "(1,66): adoption-agency-1.3",
+        "(1,67): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "b": true,
+            "nobr": true,
+            "div": true,
+            "i": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "b",
+                    "children": [
+                      {
+                        "tag": "nobr",
+                        "children": [
+                          {
+                            "text": "1"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "tag": "nobr"
+                          },
+                          {
+                            "tag": "nobr"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "nobr",
+                        "children": [
+                          {
+                            "tag": "i"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "i",
+                        "children": [
+                          {
+                            "tag": "nobr",
+                            "children": [
+                              {
+                                "text": "2"
+                              }
+                            ]
+                          },
+                          {
+                            "tag": "nobr"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "nobr",
+                        "children": [
+                          {
+                            "text": "3"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><b><nobr>1</nobr></b><div><b><nobr></nobr><nobr></nobr></b><nobr><i></i></nobr><i><nobr>2</nobr><nobr></nobr></i><nobr>3</nobr></div></body></html>",
+        "noQuirksBodyHtml": "<b><nobr>1</nobr></b><div><b><nobr></nobr><nobr></nobr></b><nobr><i></i></nobr><i><nobr>2</nobr><nobr></nobr></i><nobr>3</nobr></div>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><b><nobr>1<nobr></b><div><i><nobr>2<nobr></i>3",
+      "errors": [
+        "(1,37): unexpected-start-tag-implies-end-tag",
+        "(1,41): adoption-agency-1.3",
+        "(1,55): unexpected-start-tag-implies-end-tag",
+        "(1,55): adoption-agency-1.3",
+        "(1,62): unexpected-start-tag-implies-end-tag",
+        "(1,66): adoption-agency-1.3",
+        "(1,67): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "b": true,
+            "nobr": true,
+            "div": true,
+            "i": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "b",
+                    "children": [
+                      {
+                        "tag": "nobr",
+                        "children": [
+                          {
+                            "text": "1"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "nobr"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "tag": "nobr",
+                        "children": [
+                          {
+                            "tag": "i"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "i",
+                        "children": [
+                          {
+                            "tag": "nobr",
+                            "children": [
+                              {
+                                "text": "2"
+                              }
+                            ]
+                          },
+                          {
+                            "tag": "nobr"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "nobr",
+                        "children": [
+                          {
+                            "text": "3"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><b><nobr>1</nobr><nobr></nobr></b><div><nobr><i></i></nobr><i><nobr>2</nobr><nobr></nobr></i><nobr>3</nobr></div></body></html>",
+        "noQuirksBodyHtml": "<b><nobr>1</nobr><nobr></nobr></b><div><nobr><i></i></nobr><i><nobr>2</nobr><nobr></nobr></i><nobr>3</nobr></div>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><b><nobr>1<nobr><ins></b><i><nobr>",
+      "errors": [
+        "(1,37): unexpected-start-tag-implies-end-tag",
+        "(1,46): adoption-agency-1.3",
+        "(1,55): unexpected-start-tag-implies-end-tag",
+        "(1,55): adoption-agency-1.3",
+        "(1,55): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "b": true,
+            "nobr": true,
+            "ins": true,
+            "i": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "b",
+                    "children": [
+                      {
+                        "tag": "nobr",
+                        "children": [
+                          {
+                            "text": "1"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "nobr",
+                        "children": [
+                          {
+                            "tag": "ins"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "nobr",
+                    "children": [
+                      {
+                        "tag": "i"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "i",
+                    "children": [
+                      {
+                        "tag": "nobr"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><b><nobr>1</nobr><nobr><ins></ins></nobr></b><nobr><i></i></nobr><i><nobr></nobr></i></body></html>",
+        "noQuirksBodyHtml": "<b><nobr>1</nobr><nobr><ins></ins></nobr></b><nobr><i></i></nobr><i><nobr></nobr></i>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><b><nobr>1<ins><nobr></b><i>2",
+      "errors": [
+        "(1,42): unexpected-start-tag-implies-end-tag",
+        "(1,42): adoption-agency-1.3",
+        "(1,46): adoption-agency-1.3",
+        "(1,50): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "b": true,
+            "nobr": true,
+            "ins": true,
+            "i": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "b",
+                    "children": [
+                      {
+                        "tag": "nobr",
+                        "children": [
+                          {
+                            "text": "1"
+                          },
+                          {
+                            "tag": "ins"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "nobr"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "nobr",
+                    "children": [
+                      {
+                        "tag": "i",
+                        "children": [
+                          {
+                            "text": "2"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><b><nobr>1<ins></ins></nobr><nobr></nobr></b><nobr><i>2</i></nobr></body></html>",
+        "noQuirksBodyHtml": "<b><nobr>1<ins></ins></nobr><nobr></nobr></b><nobr><i>2</i></nobr>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><b>1<nobr></b><i><nobr>2</i>",
+      "errors": [
+        "(1,35): adoption-agency-1.3",
+        "(1,44): unexpected-start-tag-implies-end-tag",
+        "(1,44): adoption-agency-1.3",
+        "(1,49): adoption-agency-1.3"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "b": true,
+            "nobr": true,
+            "i": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "b",
+                    "children": [
+                      {
+                        "text": "1"
+                      },
+                      {
+                        "tag": "nobr"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "nobr",
+                    "children": [
+                      {
+                        "tag": "i"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "i",
+                    "children": [
+                      {
+                        "tag": "nobr",
+                        "children": [
+                          {
+                            "text": "2"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><b>1<nobr></nobr></b><nobr><i></i></nobr><i><nobr>2</nobr></i></body></html>",
+        "noQuirksBodyHtml": "<b>1<nobr></nobr></b><nobr><i></i></nobr><i><nobr>2</nobr></i>"
+      }
+    },
+    {
+      "data": "<p><code x</code></p>\n",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,11): invalid-character-in-attribute-name",
+        "(1,12): unexpected-character-after-solidus-in-tag",
+        "(1,21): unexpected-end-tag",
+        "(2,0): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "code": true
+          },
+          "attrWithFunnyChar": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "code",
+                        "attrs": [
+                          {
+                            "name": "code",
+                            "value": ""
+                          },
+                          {
+                            "name": "x<",
+                            "value": ""
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "code",
+                    "attrs": [
+                      {
+                        "name": "code",
+                        "value": ""
+                      },
+                      {
+                        "name": "x<",
+                        "value": ""
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "\n"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><p><code x<=\"\" code=\"\"></code></p><code x<=\"\" code=\"\">\n</code></body></html>",
+        "noQuirksBodyHtml": "<p><code x<=\"\" code=\"\"></code></p><code x<=\"\" code=\"\">\n</code>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><svg><foreignObject><p><i></p>a",
+      "errors": [
+        "(1,45): unexpected-end-tag",
+        "(1,46): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true,
+            "svg foreignObject": true,
+            "p": true,
+            "i": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "tag": "foreignObject",
+                        "ns": "http://www.w3.org/2000/svg",
+                        "children": [
+                          {
+                            "tag": "p",
+                            "children": [
+                              {
+                                "tag": "i"
+                              }
+                            ]
+                          },
+                          {
+                            "tag": "i",
+                            "children": [
+                              {
+                                "text": "a"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><svg><foreignObject><p><i></i></p><i>a</i></foreignObject></svg></body></html>",
+        "noQuirksBodyHtml": "<svg><foreignObject><p><i></i></p><i>a</i></foreignObject></svg>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><table><tr><td><svg><foreignObject><p><i></p>a",
+      "errors": [
+        "(1,60): unexpected-end-tag",
+        "(1,61): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true,
+            "svg svg": true,
+            "svg foreignObject": true,
+            "p": true,
+            "i": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td",
+                                "children": [
+                                  {
+                                    "tag": "svg",
+                                    "ns": "http://www.w3.org/2000/svg",
+                                    "children": [
+                                      {
+                                        "tag": "foreignObject",
+                                        "ns": "http://www.w3.org/2000/svg",
+                                        "children": [
+                                          {
+                                            "tag": "p",
+                                            "children": [
+                                              {
+                                                "tag": "i"
+                                              }
+                                            ]
+                                          },
+                                          {
+                                            "tag": "i",
+                                            "children": [
+                                              {
+                                                "text": "a"
+                                              }
+                                            ]
+                                          }
+                                        ]
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><svg><foreignObject><p><i></i></p><i>a</i></foreignObject></svg></td></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<table><tbody><tr><td><svg><foreignObject><p><i></i></p><i>a</i></foreignObject></svg></td></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><math><mtext><p><i></p>a",
+      "errors": [
+        "(1,38): unexpected-end-tag",
+        "(1,39): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "math mtext": true,
+            "p": true,
+            "i": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "mtext",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "children": [
+                          {
+                            "tag": "p",
+                            "children": [
+                              {
+                                "tag": "i"
+                              }
+                            ]
+                          },
+                          {
+                            "tag": "i",
+                            "children": [
+                              {
+                                "text": "a"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><math><mtext><p><i></i></p><i>a</i></mtext></math></body></html>",
+        "noQuirksBodyHtml": "<math><mtext><p><i></i></p><i>a</i></mtext></math>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><table><tr><td><math><mtext><p><i></p>a",
+      "errors": [
+        "(1,53): unexpected-end-tag",
+        "(1,54): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true,
+            "math math": true,
+            "math mtext": true,
+            "p": true,
+            "i": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td",
+                                "children": [
+                                  {
+                                    "tag": "math",
+                                    "ns": "http://www.w3.org/1998/Math/MathML",
+                                    "children": [
+                                      {
+                                        "tag": "mtext",
+                                        "ns": "http://www.w3.org/1998/Math/MathML",
+                                        "children": [
+                                          {
+                                            "tag": "p",
+                                            "children": [
+                                              {
+                                                "tag": "i"
+                                              }
+                                            ]
+                                          },
+                                          {
+                                            "tag": "i",
+                                            "children": [
+                                              {
+                                                "text": "a"
+                                              }
+                                            ]
+                                          }
+                                        ]
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><math><mtext><p><i></i></p><i>a</i></mtext></math></td></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<table><tbody><tr><td><math><mtext><p><i></i></p><i>a</i></mtext></math></td></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><div><!/div>a",
+      "errors": [
+        "(1,28): expected-dashes-or-doctype",
+        "(1,34): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true
+          },
+          "doctype": true,
+          "comment": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "comment": "/div"
+                      },
+                      {
+                        "text": "a"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><div><!--/div-->a</div></body></html>",
+        "noQuirksBodyHtml": "<div><!--/div-->a</div>"
+      }
+    },
+    {
+      "data": "<button><p><button>",
+      "errors": [
+        "Line 1 Col 8 Unexpected start tag (button). Expected DOCTYPE.",
+        "Line 1 Col 19 Unexpected start tag (button) implies end tag (button).",
+        "Line 1 Col 19 Expected closing tag. Unexpected end of file."
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "button": true,
+            "p": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "button",
+                    "children": [
+                      {
+                        "tag": "p"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "button"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><button><p></p></button><button></button></body></html>",
+        "noQuirksBodyHtml": "<button><p></p></button><button></button>"
+      }
+    }
+  ],
+  "tests3.dat": [
+    {
+      "data": "<head></head><style></style>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,20): unexpected-start-tag-out-of-my-head"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "style": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "style"
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><style></style></head><body></body></html>",
+        "noQuirksBodyHtml": "<style></style>"
+      }
+    },
+    {
+      "data": "<head></head><script></script>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,21): unexpected-start-tag-out-of-my-head"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script"
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script></script></head><body></body></html>",
+        "noQuirksBodyHtml": "<script></script>"
+      }
+    },
+    {
+      "data": "<head></head><!-- --><style></style><!-- --><script></script>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,28): unexpected-start-tag-out-of-my-head",
+        "(1,52): unexpected-start-tag-out-of-my-head"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "style": true,
+            "script": true,
+            "body": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "style"
+                  },
+                  {
+                    "tag": "script"
+                  }
+                ]
+              },
+              {
+                "comment": " "
+              },
+              {
+                "comment": " "
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><style></style><script></script></head><!-- --><!-- --><body></body></html>",
+        "noQuirksBodyHtml": "<!-- --><style></style><!-- --><script></script>"
+      }
+    },
+    {
+      "data": "<head></head><!-- -->x<style></style><!-- --><script></script>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "style": true,
+            "script": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "comment": " "
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "x"
+                  },
+                  {
+                    "tag": "style"
+                  },
+                  {
+                    "comment": " "
+                  },
+                  {
+                    "tag": "script"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><!-- --><body>x<style></style><!-- --><script></script></body></html>",
+        "noQuirksBodyHtml": "<!-- -->x<style></style><!-- --><script></script>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><html><head></head><body><pre>\n</pre></body></html>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "pre": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "pre"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><pre></pre></body></html>",
+        "noQuirksBodyHtml": "<pre></pre>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><html><head></head><body><pre>\nfoo</pre></body></html>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "pre": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "pre",
+                    "children": [
+                      {
+                        "text": "foo"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><pre>foo</pre></body></html>",
+        "noQuirksBodyHtml": "<pre>foo</pre>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><html><head></head><body><pre>\n\nfoo</pre></body></html>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "pre": true
+          },
+          "doctype": true,
+          "extraNL": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "pre",
+                    "children": [
+                      {
+                        "text": "\nfoo",
+                        "extraNL": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><pre>\n\nfoo</pre></body></html>",
+        "noQuirksBodyHtml": "<pre>\n\nfoo</pre>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><html><head></head><body><pre>\nfoo\n</pre></body></html>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "pre": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "pre",
+                    "children": [
+                      {
+                        "text": "foo\n"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><pre>foo\n</pre></body></html>",
+        "noQuirksBodyHtml": "<pre>foo\n</pre>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><html><head></head><body><pre>x</pre><span>\n</span></body></html>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "pre": true,
+            "span": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "pre",
+                    "children": [
+                      {
+                        "text": "x"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "span",
+                    "children": [
+                      {
+                        "text": "\n"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><pre>x</pre><span>\n</span></body></html>",
+        "noQuirksBodyHtml": "<pre>x</pre><span>\n</span>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><html><head></head><body><pre>x\ny</pre></body></html>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "pre": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "pre",
+                    "children": [
+                      {
+                        "text": "x\ny"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><pre>x\ny</pre></body></html>",
+        "noQuirksBodyHtml": "<pre>x\ny</pre>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><html><head></head><body><pre>x<div>\ny</pre></body></html>",
+      "errors": [
+        "(2,7): end-tag-too-early"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "pre": true,
+            "div": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "pre",
+                    "children": [
+                      {
+                        "text": "x"
+                      },
+                      {
+                        "tag": "div",
+                        "children": [
+                          {
+                            "text": "\ny"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><pre>x<div>\ny</div></pre></body></html>",
+        "noQuirksBodyHtml": "<pre>x<div>\ny</div></pre>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><pre>&#x0a;&#x0a;A</pre>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "pre": true
+          },
+          "doctype": true,
+          "extraNL": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "pre",
+                    "children": [
+                      {
+                        "text": "\nA",
+                        "extraNL": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><pre>\n\nA</pre></body></html>",
+        "noQuirksBodyHtml": "<pre>\n\nA</pre>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><HTML><META><HEAD></HEAD></HTML>",
+      "errors": [
+        "(1,33): two-heads-are-not-better-than-one"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "meta": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "meta"
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><meta></head><body></body></html>",
+        "noQuirksBodyHtml": "<meta>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><HTML><HEAD><head></HEAD></HTML>",
+      "errors": [
+        "(1,33): two-heads-are-not-better-than-one"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<textarea>foo<span>bar</span><i>baz",
+      "errors": [
+        "(1,10): expected-doctype-but-got-start-tag",
+        "(1,35): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "textarea": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "textarea",
+                    "children": [
+                      {
+                        "text": "foo<span>bar</span><i>baz",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><textarea>foo&lt;span&gt;bar&lt;/span&gt;&lt;i&gt;baz</textarea></body></html>",
+        "noQuirksBodyHtml": "<textarea>foo&lt;span&gt;bar&lt;/span&gt;&lt;i&gt;baz</textarea>"
+      }
+    },
+    {
+      "data": "<title>foo<span>bar</em><i>baz",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,30): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "title": true,
+            "body": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "title",
+                    "children": [
+                      {
+                        "text": "foo<span>bar</em><i>baz",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><title>foo&lt;span&gt;bar&lt;/em&gt;&lt;i&gt;baz</title></head><body></body></html>",
+        "noQuirksBodyHtml": "<title>foo&lt;span&gt;bar&lt;/em&gt;&lt;i&gt;baz</title>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><textarea>\n</textarea>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "textarea": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "textarea"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><textarea></textarea></body></html>",
+        "noQuirksBodyHtml": "<textarea></textarea>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><textarea>\nfoo</textarea>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "textarea": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "textarea",
+                    "children": [
+                      {
+                        "text": "foo"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><textarea>foo</textarea></body></html>",
+        "noQuirksBodyHtml": "<textarea>foo</textarea>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><textarea>\n\nfoo</textarea>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "textarea": true
+          },
+          "doctype": true,
+          "extraNL": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "textarea",
+                    "children": [
+                      {
+                        "text": "\nfoo",
+                        "extraNL": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><textarea>\n\nfoo</textarea></body></html>",
+        "noQuirksBodyHtml": "<textarea>\n\nfoo</textarea>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><html><head></head><body><ul><li><div><p><li></ul></body></html>",
+      "errors": [
+        "(1,60): end-tag-too-early"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "ul": true,
+            "li": true,
+            "div": true,
+            "p": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "ul",
+                    "children": [
+                      {
+                        "tag": "li",
+                        "children": [
+                          {
+                            "tag": "div",
+                            "children": [
+                              {
+                                "tag": "p"
+                              }
+                            ]
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "li"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><ul><li><div><p></p></div></li><li></li></ul></body></html>",
+        "noQuirksBodyHtml": "<ul><li><div><p></p></div></li><li></li></ul>"
+      }
+    },
+    {
+      "data": "<!doctype html><nobr><nobr><nobr>",
+      "errors": [
+        "(1,27): unexpected-start-tag-implies-end-tag",
+        "(1,33): unexpected-start-tag-implies-end-tag",
+        "(1,33): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "nobr": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "nobr"
+                  },
+                  {
+                    "tag": "nobr"
+                  },
+                  {
+                    "tag": "nobr"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><nobr></nobr><nobr></nobr><nobr></nobr></body></html>",
+        "noQuirksBodyHtml": "<nobr></nobr><nobr></nobr><nobr></nobr>"
+      }
+    },
+    {
+      "data": "<!doctype html><nobr><nobr></nobr><nobr>",
+      "errors": [
+        "(1,27): unexpected-start-tag-implies-end-tag",
+        "(1,40): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "nobr": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "nobr"
+                  },
+                  {
+                    "tag": "nobr"
+                  },
+                  {
+                    "tag": "nobr"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><nobr></nobr><nobr></nobr><nobr></nobr></body></html>",
+        "noQuirksBodyHtml": "<nobr></nobr><nobr></nobr><nobr></nobr>"
+      }
+    },
+    {
+      "data": "<!doctype html><html><body><p><table></table></body></html>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "table": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p"
+                  },
+                  {
+                    "tag": "table"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p></p><table></table></body></html>",
+        "noQuirksBodyHtml": "<p></p><table></table>"
+      }
+    },
+    {
+      "data": "<p><table></table>",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "table": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "table"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><p><table></table></p></body></html>",
+        "noQuirksBodyHtml": "<p></p><table></table>"
+      }
+    }
+  ],
+  "tests4.dat": [
+    {
+      "data": "direct div content",
+      "errors": [],
+      "fragment": {
+        "name": "div"
+      },
+      "document": {
+        "props": {
+          "tags": {}
+        },
+        "tree": [
+          {
+            "text": "direct div content"
+          }
+        ],
+        "html": "direct div content",
+        "noQuirksBodyHtml": "direct div content"
+      }
+    },
+    {
+      "data": "direct textarea content",
+      "errors": [],
+      "fragment": {
+        "name": "textarea"
+      },
+      "document": {
+        "props": {
+          "tags": {}
+        },
+        "tree": [
+          {
+            "text": "direct textarea content"
+          }
+        ],
+        "html": "direct textarea content",
+        "noQuirksBodyHtml": "direct textarea content"
+      }
+    },
+    {
+      "data": "textarea content with <em>pseudo</em> <foo>markup",
+      "errors": [],
+      "fragment": {
+        "name": "textarea"
+      },
+      "document": {
+        "props": {
+          "tags": {},
+          "escaped": true
+        },
+        "tree": [
+          {
+            "text": "textarea content with <em>pseudo</em> <foo>markup",
+            "escaped": true
+          }
+        ],
+        "html": "textarea content with &lt;em&gt;pseudo&lt;/em&gt; &lt;foo&gt;markup",
+        "noQuirksBodyHtml": "textarea content with <em>pseudo</em> <foo>markup</foo>"
+      }
+    },
+    {
+      "data": "this is &#x0043;DATA inside a <style> element",
+      "errors": [],
+      "fragment": {
+        "name": "style"
+      },
+      "document": {
+        "props": {
+          "tags": {},
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "text": "this is &#x0043;DATA inside a <style> element",
+            "no_escape": true
+          }
+        ],
+        "html": "this is &#x0043;DATA inside a <style> element",
+        "noQuirksBodyHtml": "this is CDATA inside a <style> element</style>"
+      }
+    },
+    {
+      "data": "</plaintext>",
+      "errors": [],
+      "fragment": {
+        "name": "plaintext"
+      },
+      "document": {
+        "props": {
+          "tags": {},
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "text": "</plaintext>",
+            "no_escape": true
+          }
+        ],
+        "html": "</plaintext>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "setting html's innerHTML",
+      "errors": [],
+      "fragment": {
+        "name": "html"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "head"
+          },
+          {
+            "tag": "body",
+            "children": [
+              {
+                "text": "setting html's innerHTML"
+              }
+            ]
+          }
+        ],
+        "html": "<head></head><body>setting html's innerHTML</body>",
+        "noQuirksBodyHtml": "setting html's innerHTML"
+      }
+    },
+    {
+      "data": "<title>setting head's innerHTML</title>",
+      "errors": [],
+      "fragment": {
+        "name": "head"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "title": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "title",
+            "children": [
+              {
+                "text": "setting head's innerHTML"
+              }
+            ]
+          }
+        ],
+        "html": "<title>setting head's innerHTML</title>",
+        "noQuirksBodyHtml": "<title>setting head's innerHTML</title>"
+      }
+    }
+  ],
+  "tests5.dat": [
+    {
+      "data": "<style> <!-- </style>x",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "style": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "style",
+                    "children": [
+                      {
+                        "text": " <!-- ",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "x"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><style> <!-- </style></head><body>x</body></html>",
+        "noQuirksBodyHtml": "<style> <!-- </style>x"
+      }
+    },
+    {
+      "data": "<style> <!-- </style> --> </style>x",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,34): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "style": true,
+            "body": true
+          },
+          "no_escape": true,
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "style",
+                    "children": [
+                      {
+                        "text": " <!-- ",
+                        "no_escape": true
+                      }
+                    ]
+                  },
+                  {
+                    "text": " "
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "--> x",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><style> <!-- </style> </head><body>--&gt; x</body></html>",
+        "noQuirksBodyHtml": "<style> <!-- </style> --&gt; x"
+      }
+    },
+    {
+      "data": "<style> <!--> </style>x",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "style": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "style",
+                    "children": [
+                      {
+                        "text": " <!--> ",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "x"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><style> <!--> </style></head><body>x</body></html>",
+        "noQuirksBodyHtml": "<style> <!--> </style>x"
+      }
+    },
+    {
+      "data": "<style> <!---> </style>x",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "style": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "style",
+                    "children": [
+                      {
+                        "text": " <!---> ",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "x"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><style> <!---> </style></head><body>x</body></html>",
+        "noQuirksBodyHtml": "<style> <!---> </style>x"
+      }
+    },
+    {
+      "data": "<iframe> <!---> </iframe>x",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "iframe": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "iframe",
+                    "children": [
+                      {
+                        "text": " <!---> ",
+                        "no_escape": true
+                      }
+                    ]
+                  },
+                  {
+                    "text": "x"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><iframe> <!---> </iframe>x</body></html>",
+        "noQuirksBodyHtml": "<iframe> <!---> </iframe>x"
+      }
+    },
+    {
+      "data": "<iframe> <!--- </iframe>->x</iframe> --> </iframe>x",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,36): unexpected-end-tag",
+        "(1,50): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "iframe": true
+          },
+          "no_escape": true,
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "iframe",
+                    "children": [
+                      {
+                        "text": " <!--- ",
+                        "no_escape": true
+                      }
+                    ]
+                  },
+                  {
+                    "text": "->x --> x",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><iframe> <!--- </iframe>-&gt;x --&gt; x</body></html>",
+        "noQuirksBodyHtml": "<iframe> <!--- </iframe>-&gt;x --&gt; x"
+      }
+    },
+    {
+      "data": "<script> <!-- </script> --> </script>x",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,37): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "script": true,
+            "body": true
+          },
+          "no_escape": true,
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": " <!-- ",
+                        "no_escape": true
+                      }
+                    ]
+                  },
+                  {
+                    "text": " "
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "--> x",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><script> <!-- </script> </head><body>--&gt; x</body></html>",
+        "noQuirksBodyHtml": "<script> <!-- </script> --&gt; x"
+      }
+    },
+    {
+      "data": "<title> <!-- </title> --> </title>x",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,34): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "title": true,
+            "body": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "title",
+                    "children": [
+                      {
+                        "text": " <!-- ",
+                        "escaped": true
+                      }
+                    ]
+                  },
+                  {
+                    "text": " "
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "--> x",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><title> &lt;!-- </title> </head><body>--&gt; x</body></html>",
+        "noQuirksBodyHtml": "<title> &lt;!-- </title> --&gt; x"
+      }
+    },
+    {
+      "data": "<textarea> <!--- </textarea>->x</textarea> --> </textarea>x",
+      "errors": [
+        "(1,10): expected-doctype-but-got-start-tag",
+        "(1,42): unexpected-end-tag",
+        "(1,58): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "textarea": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "textarea",
+                    "children": [
+                      {
+                        "text": " <!--- ",
+                        "escaped": true
+                      }
+                    ]
+                  },
+                  {
+                    "text": "->x --> x",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><textarea> &lt;!--- </textarea>-&gt;x --&gt; x</body></html>",
+        "noQuirksBodyHtml": "<textarea> &lt;!--- </textarea>-&gt;x --&gt; x"
+      }
+    },
+    {
+      "data": "<style> <!</-- </style>x",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "style": true,
+            "body": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "style",
+                    "children": [
+                      {
+                        "text": " <!</-- ",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "x"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><style> <!</-- </style></head><body>x</body></html>",
+        "noQuirksBodyHtml": "<style> <!</-- </style>x"
+      }
+    },
+    {
+      "data": "<p><xmp></xmp>",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "xmp": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p"
+                  },
+                  {
+                    "tag": "xmp"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><p></p><xmp></xmp></body></html>",
+        "noQuirksBodyHtml": "<p></p><xmp></xmp>"
+      }
+    },
+    {
+      "data": "<xmp> <!-- > --> </xmp>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "xmp": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "xmp",
+                    "children": [
+                      {
+                        "text": " <!-- > --> ",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><xmp> <!-- > --> </xmp></body></html>",
+        "noQuirksBodyHtml": "<xmp> <!-- > --> </xmp>"
+      }
+    },
+    {
+      "data": "<title>&amp;</title>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "title": true,
+            "body": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "title",
+                    "children": [
+                      {
+                        "text": "&",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><title>&amp;</title></head><body></body></html>",
+        "noQuirksBodyHtml": "<title>&amp;</title>"
+      }
+    },
+    {
+      "data": "<title><!--&amp;--></title>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "title": true,
+            "body": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "title",
+                    "children": [
+                      {
+                        "text": "<!--&-->",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><title>&lt;!--&amp;--&gt;</title></head><body></body></html>",
+        "noQuirksBodyHtml": "<title>&lt;!--&amp;--&gt;</title>"
+      }
+    },
+    {
+      "data": "<title><!--</title>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "title": true,
+            "body": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "title",
+                    "children": [
+                      {
+                        "text": "<!--",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><title>&lt;!--</title></head><body></body></html>",
+        "noQuirksBodyHtml": "<title>&lt;!--</title>"
+      }
+    },
+    {
+      "data": "<noscript><!--</noscript>--></noscript>",
+      "errors": [
+        "(1,10): expected-doctype-but-got-start-tag",
+        "(1,39): unexpected-end-tag"
+      ],
+      "script": "on",
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "noscript": true,
+            "body": true
+          },
+          "no_escape": true,
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "noscript",
+                    "children": [
+                      {
+                        "text": "<!--",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "-->",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><noscript><!--</noscript></head><body>--&gt;</body></html>",
+        "noQuirksBodyHtml": "<noscript>&lt;!--</noscript>--&gt;"
+      }
+    },
+    {
+      "data": "<noscript><!--</noscript>--></noscript>",
+      "errors": [
+        "(1,10): expected-doctype-but-got-start-tag"
+      ],
+      "script": "off",
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "noscript": true,
+            "body": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "noscript",
+                    "children": [
+                      {
+                        "comment": "</noscript>"
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><noscript><!--</noscript>--></noscript></head><body></body></html>",
+        "noQuirksBodyHtml": "<noscript>&lt;!--</noscript>--&gt;"
+      }
+    }
+  ],
+  "tests6.dat": [
+    {
+      "data": "<!doctype html></head> <head>",
+      "errors": [
+        "(1,29): unexpected-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "text": " "
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head> <body></body></html>",
+        "noQuirksBodyHtml": " "
+      }
+    },
+    {
+      "data": "<!doctype html><form><div></form><div>",
+      "errors": [
+        "(1,33): end-tag-too-early-ignored",
+        "(1,38): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "form": true,
+            "div": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "form",
+                    "children": [
+                      {
+                        "tag": "div",
+                        "children": [
+                          {
+                            "tag": "div"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><form><div><div></div></div></form></body></html>",
+        "noQuirksBodyHtml": "<form><div><div></div></div></form>"
+      }
+    },
+    {
+      "data": "<!doctype html><title>&amp;</title>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "title": true,
+            "body": true
+          },
+          "doctype": true,
+          "escaped": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "title",
+                    "children": [
+                      {
+                        "text": "&",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><title>&amp;</title></head><body></body></html>",
+        "noQuirksBodyHtml": "<title>&amp;</title>"
+      }
+    },
+    {
+      "data": "<!doctype html><title><!--&amp;--></title>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "title": true,
+            "body": true
+          },
+          "doctype": true,
+          "escaped": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "title",
+                    "children": [
+                      {
+                        "text": "<!--&-->",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><title>&lt;!--&amp;--&gt;</title></head><body></body></html>",
+        "noQuirksBodyHtml": "<title>&lt;!--&amp;--&gt;</title>"
+      }
+    },
+    {
+      "data": "<!doctype>",
+      "errors": [
+        "(1,9): need-space-after-doctype",
+        "(1,10): expected-doctype-name-but-got-right-bracket",
+        "(1,10): unknown-doctype"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": ""
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE ><html><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<!---x",
+      "errors": [
+        "(1,6): eof-in-comment",
+        "(1,6): expected-doctype-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "comment": "-x"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!---x--><html><head></head><body></body></html>",
+        "noQuirksBodyHtml": "<!---x-->"
+      }
+    },
+    {
+      "data": "<body>\n<div>",
+      "errors": [
+        "(1,6): unexpected-start-tag",
+        "(2,5): expected-closing-tag-but-got-eof"
+      ],
+      "fragment": {
+        "name": "div"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "text": "\n"
+          },
+          {
+            "tag": "div"
+          }
+        ],
+        "html": "\n<div></div>",
+        "noQuirksBodyHtml": "\n<div></div>"
+      }
+    },
+    {
+      "data": "<frameset></frameset>\nfoo",
+      "errors": [
+        "(1,10): expected-doctype-but-got-start-tag",
+        "(2,1): unexpected-char-after-frameset",
+        "(2,2): unexpected-char-after-frameset",
+        "(2,3): unexpected-char-after-frameset"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              },
+              {
+                "text": "\n"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><frameset></frameset>\n</html>",
+        "noQuirksBodyHtml": "\nfoo"
+      }
+    },
+    {
+      "data": "<frameset></frameset>\n<noframes>",
+      "errors": [
+        "(1,10): expected-doctype-but-got-start-tag",
+        "(2,10): expected-named-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true,
+            "noframes": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              },
+              {
+                "text": "\n"
+              },
+              {
+                "tag": "noframes"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><frameset></frameset>\n<noframes></noframes></html>",
+        "noQuirksBodyHtml": "\n<noframes></noframes>"
+      }
+    },
+    {
+      "data": "<frameset></frameset>\n<div>",
+      "errors": [
+        "(1,10): expected-doctype-but-got-start-tag",
+        "(2,5): unexpected-start-tag-after-frameset"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              },
+              {
+                "text": "\n"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><frameset></frameset>\n</html>",
+        "noQuirksBodyHtml": "\n<div></div>"
+      }
+    },
+    {
+      "data": "<frameset></frameset>\n</html>",
+      "errors": [
+        "(1,10): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              },
+              {
+                "text": "\n"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><frameset></frameset>\n</html>",
+        "noQuirksBodyHtml": "\n"
+      }
+    },
+    {
+      "data": "<frameset></frameset>\n</div>",
+      "errors": [
+        "(1,10): expected-doctype-but-got-start-tag",
+        "(2,6): unexpected-end-tag-after-frameset"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              },
+              {
+                "text": "\n"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><frameset></frameset>\n</html>",
+        "noQuirksBodyHtml": "\n"
+      }
+    },
+    {
+      "data": "<form><form>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,12): unexpected-start-tag",
+        "(1,12): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "form": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "form"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><form></form></body></html>",
+        "noQuirksBodyHtml": "<form></form>"
+      }
+    },
+    {
+      "data": "<button><button>",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,16): unexpected-start-tag-implies-end-tag",
+        "(1,16): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "button": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "button"
+                  },
+                  {
+                    "tag": "button"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><button></button><button></button></body></html>",
+        "noQuirksBodyHtml": "<button></button><button></button>"
+      }
+    },
+    {
+      "data": "<table><tr><td></th>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,20): unexpected-end-tag",
+        "(1,20): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><tbody><tr><td></td></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<table><tbody><tr><td></td></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<table><caption><td>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,20): unexpected-cell-in-table-body",
+        "(1,20): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "caption": true,
+            "tbody": true,
+            "tr": true,
+            "td": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "caption"
+                      },
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><caption></caption><tbody><tr><td></td></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<table><caption></caption><tbody><tr><td></td></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<table><caption><div>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,21): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "caption": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "caption",
+                        "children": [
+                          {
+                            "tag": "div"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><caption><div></div></caption></table></body></html>",
+        "noQuirksBodyHtml": "<table><caption><div></div></caption></table>"
+      }
+    },
+    {
+      "data": "</caption><div>",
+      "errors": [
+        "(1,10): XXX-undefined-error",
+        "(1,15): expected-closing-tag-but-got-eof"
+      ],
+      "fragment": {
+        "name": "caption"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "div"
+          }
+        ],
+        "html": "<div></div>",
+        "noQuirksBodyHtml": "<div></div>"
+      }
+    },
+    {
+      "data": "<table><caption><div></caption>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,31): expected-one-end-tag-but-got-another",
+        "(1,31): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "caption": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "caption",
+                        "children": [
+                          {
+                            "tag": "div"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><caption><div></div></caption></table></body></html>",
+        "noQuirksBodyHtml": "<table><caption><div></div></caption></table>"
+      }
+    },
+    {
+      "data": "<table><caption></table>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "caption": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "caption"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><caption></caption></table></body></html>",
+        "noQuirksBodyHtml": "<table><caption></caption></table>"
+      }
+    },
+    {
+      "data": "</table><div>",
+      "errors": [
+        "(1,8): unexpected-end-tag",
+        "(1,13): expected-closing-tag-but-got-eof"
+      ],
+      "fragment": {
+        "name": "caption"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "div"
+          }
+        ],
+        "html": "<div></div>",
+        "noQuirksBodyHtml": "<div></div>"
+      }
+    },
+    {
+      "data": "<table><caption></body></col></colgroup></html></tbody></td></tfoot></th></thead></tr>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,23): unexpected-end-tag",
+        "(1,29): unexpected-end-tag",
+        "(1,40): unexpected-end-tag",
+        "(1,47): unexpected-end-tag",
+        "(1,55): unexpected-end-tag",
+        "(1,60): unexpected-end-tag",
+        "(1,68): unexpected-end-tag",
+        "(1,73): unexpected-end-tag",
+        "(1,81): unexpected-end-tag",
+        "(1,86): unexpected-end-tag",
+        "(1,86): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "caption": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "caption"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><caption></caption></table></body></html>",
+        "noQuirksBodyHtml": "<table><caption></caption></table>"
+      }
+    },
+    {
+      "data": "<table><caption><div></div>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,27): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "caption": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "caption",
+                        "children": [
+                          {
+                            "tag": "div"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><caption><div></div></caption></table></body></html>",
+        "noQuirksBodyHtml": "<table><caption><div></div></caption></table>"
+      }
+    },
+    {
+      "data": "<table><tr><td></body></caption></col></colgroup></html>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,22): unexpected-end-tag",
+        "(1,32): unexpected-end-tag",
+        "(1,38): unexpected-end-tag",
+        "(1,49): unexpected-end-tag",
+        "(1,56): unexpected-end-tag",
+        "(1,56): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><tbody><tr><td></td></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<table><tbody><tr><td></td></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "</table></tbody></tfoot></thead></tr><div>",
+      "errors": [
+        "(1,8): unexpected-end-tag",
+        "(1,16): unexpected-end-tag",
+        "(1,24): unexpected-end-tag",
+        "(1,32): unexpected-end-tag",
+        "(1,37): unexpected-end-tag",
+        "(1,42): expected-closing-tag-but-got-eof"
+      ],
+      "fragment": {
+        "name": "td"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "div"
+          }
+        ],
+        "html": "<div></div>",
+        "noQuirksBodyHtml": "<div></div>"
+      }
+    },
+    {
+      "data": "<table><colgroup>foo",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,18): foster-parenting-character-in-table",
+        "(1,19): foster-parenting-character-in-table",
+        "(1,20): foster-parenting-character-in-table",
+        "(1,20): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "colgroup": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "foo"
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "colgroup"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>foo<table><colgroup></colgroup></table></body></html>",
+        "noQuirksBodyHtml": "foo<table><colgroup></colgroup></table>"
+      }
+    },
+    {
+      "data": "foo<col>",
+      "errors": [
+        "(1,1): unexpected-character-in-colgroup",
+        "(1,2): unexpected-character-in-colgroup",
+        "(1,3): unexpected-character-in-colgroup"
+      ],
+      "fragment": {
+        "name": "colgroup"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "col": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "col"
+          }
+        ],
+        "html": "<col>",
+        "noQuirksBodyHtml": "foo"
+      }
+    },
+    {
+      "data": "<table><colgroup></col>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,23): no-end-tag",
+        "(1,23): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "colgroup": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "colgroup"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><colgroup></colgroup></table></body></html>",
+        "noQuirksBodyHtml": "<table><colgroup></colgroup></table>"
+      }
+    },
+    {
+      "data": "<frameset><div>",
+      "errors": [
+        "(1,10): expected-doctype-but-got-start-tag",
+        "(1,15): unexpected-start-tag-in-frameset",
+        "(1,15): eof-in-frameset"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><frameset></frameset></html>",
+        "noQuirksBodyHtml": "<div></div>"
+      }
+    },
+    {
+      "data": "</frameset><frame>",
+      "errors": [
+        "(1,11): unexpected-frameset-in-frameset-innerhtml"
+      ],
+      "fragment": {
+        "name": "frameset"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "frame": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "frame"
+          }
+        ],
+        "html": "<frame>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<frameset></div>",
+      "errors": [
+        "(1,10): expected-doctype-but-got-start-tag",
+        "(1,16): unexpected-end-tag-in-frameset",
+        "(1,16): eof-in-frameset"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><frameset></frameset></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "</body><div>",
+      "errors": [
+        "(1,7): unexpected-close-tag",
+        "(1,12): expected-closing-tag-but-got-eof"
+      ],
+      "fragment": {
+        "name": "body"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "div"
+          }
+        ],
+        "html": "<div></div>",
+        "noQuirksBodyHtml": "<div></div>"
+      }
+    },
+    {
+      "data": "<table><tr><div>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,16): unexpected-start-tag-implies-table-voodoo",
+        "(1,16): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true,
+            "table": true,
+            "tbody": true,
+            "tr": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div"
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div></div><table><tbody><tr></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<div></div><table><tbody><tr></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "</tr><td>",
+      "errors": [
+        "(1,5): unexpected-end-tag"
+      ],
+      "fragment": {
+        "name": "tr"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "td": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "td"
+          }
+        ],
+        "html": "<td></td>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "</tbody></tfoot></thead><td>",
+      "errors": [
+        "(1,8): unexpected-end-tag",
+        "(1,16): unexpected-end-tag",
+        "(1,24): unexpected-end-tag"
+      ],
+      "fragment": {
+        "name": "tr"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "td": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "td"
+          }
+        ],
+        "html": "<td></td>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<table><tr><div><td>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,16): foster-parenting-start-tag",
+        "(1,20): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div"
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div></div><table><tbody><tr><td></td></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<div></div><table><tbody><tr><td></td></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<caption><col><colgroup><tbody><tfoot><thead><tr>",
+      "errors": [
+        "(1,9): unexpected-start-tag",
+        "(1,14): unexpected-start-tag",
+        "(1,24): unexpected-start-tag",
+        "(1,31): unexpected-start-tag",
+        "(1,38): unexpected-start-tag",
+        "(1,45): unexpected-start-tag"
+      ],
+      "fragment": {
+        "name": "tbody"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "tr": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "tr"
+          }
+        ],
+        "html": "<tr></tr>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<table><tbody></thead>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,22): unexpected-end-tag-in-table-body",
+        "(1,22): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><tbody></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<table><tbody></tbody></table>"
+      }
+    },
+    {
+      "data": "</table><tr>",
+      "errors": [
+        "(1,8): unexpected-end-tag"
+      ],
+      "fragment": {
+        "name": "tbody"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "tr": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "tr"
+          }
+        ],
+        "html": "<tr></tr>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<table><tbody></body></caption></col></colgroup></html></td></th></tr>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,21): unexpected-end-tag-in-table-body",
+        "(1,31): unexpected-end-tag-in-table-body",
+        "(1,37): unexpected-end-tag-in-table-body",
+        "(1,48): unexpected-end-tag-in-table-body",
+        "(1,55): unexpected-end-tag-in-table-body",
+        "(1,60): unexpected-end-tag-in-table-body",
+        "(1,65): unexpected-end-tag-in-table-body",
+        "(1,70): unexpected-end-tag-in-table-body",
+        "(1,70): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><tbody></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<table><tbody></tbody></table>"
+      }
+    },
+    {
+      "data": "<table><tbody></div>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,20): unexpected-end-tag-implies-table-voodoo",
+        "(1,20): end-tag-too-early",
+        "(1,20): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><tbody></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<table><tbody></tbody></table>"
+      }
+    },
+    {
+      "data": "<table><table>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,14): unexpected-start-tag-implies-end-tag",
+        "(1,14): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table"
+                  },
+                  {
+                    "tag": "table"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table></table><table></table></body></html>",
+        "noQuirksBodyHtml": "<table></table><table></table>"
+      }
+    },
+    {
+      "data": "<table></body></caption></col></colgroup></html></tbody></td></tfoot></th></thead></tr>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,14): unexpected-end-tag",
+        "(1,24): unexpected-end-tag",
+        "(1,30): unexpected-end-tag",
+        "(1,41): unexpected-end-tag",
+        "(1,48): unexpected-end-tag",
+        "(1,56): unexpected-end-tag",
+        "(1,61): unexpected-end-tag",
+        "(1,69): unexpected-end-tag",
+        "(1,74): unexpected-end-tag",
+        "(1,82): unexpected-end-tag",
+        "(1,87): unexpected-end-tag",
+        "(1,87): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table></table></body></html>",
+        "noQuirksBodyHtml": "<table></table>"
+      }
+    },
+    {
+      "data": "</table><tr>",
+      "errors": [
+        "(1,8): unexpected-end-tag"
+      ],
+      "fragment": {
+        "name": "table"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "tbody": true,
+            "tr": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "tbody",
+            "children": [
+              {
+                "tag": "tr"
+              }
+            ]
+          }
+        ],
+        "html": "<tbody><tr></tr></tbody>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<body></body></html>",
+      "errors": [
+        "(1,20): unexpected-end-tag-after-body-innerhtml"
+      ],
+      "fragment": {
+        "name": "html"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "head"
+          },
+          {
+            "tag": "body"
+          }
+        ],
+        "html": "<head></head><body></body>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<html><frameset></frameset></html> ",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              },
+              {
+                "text": " "
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><frameset></frameset> </html>",
+        "noQuirksBodyHtml": " "
+      }
+    },
+    {
+      "data": "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01//EN\"><html></html>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html \"-//W3C//DTD HTML 4.01//EN\" \"\""
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<param><frameset></frameset>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,17): unexpected-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><frameset></frameset></html>",
+        "noQuirksBodyHtml": "<param>"
+      }
+    },
+    {
+      "data": "<source><frameset></frameset>",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,18): unexpected-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><frameset></frameset></html>",
+        "noQuirksBodyHtml": "<source>"
+      }
+    },
+    {
+      "data": "<track><frameset></frameset>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,17): unexpected-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><frameset></frameset></html>",
+        "noQuirksBodyHtml": "<track>"
+      }
+    },
+    {
+      "data": "</html><frameset></frameset>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-end-tag",
+        "(1,17): expected-eof-but-got-start-tag",
+        "(1,17): unexpected-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><frameset></frameset></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "</body><frameset></frameset>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-end-tag",
+        "(1,17): unexpected-start-tag-after-body",
+        "(1,17): unexpected-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><frameset></frameset></html>",
+        "noQuirksBodyHtml": ""
+      }
+    }
+  ],
+  "tests7.dat": [
+    {
+      "data": "<!doctype html><body><title>X</title>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "title": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "title",
+                    "children": [
+                      {
+                        "text": "X"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><title>X</title></body></html>",
+        "noQuirksBodyHtml": "<title>X</title>"
+      }
+    },
+    {
+      "data": "<!doctype html><table><title>X</title></table>",
+      "errors": [
+        "(1,29): unexpected-start-tag-implies-table-voodoo"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "title": true,
+            "table": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "title",
+                    "children": [
+                      {
+                        "text": "X"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "table"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><title>X</title><table></table></body></html>",
+        "noQuirksBodyHtml": "<title>X</title><table></table>"
+      }
+    },
+    {
+      "data": "<!doctype html><head></head><title>X</title>",
+      "errors": [
+        "(1,35): unexpected-start-tag-out-of-my-head"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "title": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "title",
+                    "children": [
+                      {
+                        "text": "X"
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><title>X</title></head><body></body></html>",
+        "noQuirksBodyHtml": "<title>X</title>"
+      }
+    },
+    {
+      "data": "<!doctype html></head><title>X</title>",
+      "errors": [
+        "(1,29): unexpected-start-tag-out-of-my-head"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "title": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "title",
+                    "children": [
+                      {
+                        "text": "X"
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head><title>X</title></head><body></body></html>",
+        "noQuirksBodyHtml": "<title>X</title>"
+      }
+    },
+    {
+      "data": "<!doctype html><table><meta></table>",
+      "errors": [
+        "(1,28): unexpected-start-tag-implies-table-voodoo"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "meta": true,
+            "table": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "meta"
+                  },
+                  {
+                    "tag": "table"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><meta><table></table></body></html>",
+        "noQuirksBodyHtml": "<meta><table></table>"
+      }
+    },
+    {
+      "data": "<!doctype html><table>X<tr><td><table> <meta></table></table>",
+      "errors": [
+        "unexpected text in table",
+        "(1,45): unexpected-start-tag-implies-table-voodoo"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true,
+            "meta": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "X"
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td",
+                                "children": [
+                                  {
+                                    "tag": "meta"
+                                  },
+                                  {
+                                    "tag": "table",
+                                    "children": [
+                                      {
+                                        "text": " "
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body>X<table><tbody><tr><td><meta><table> </table></td></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "X<table><tbody><tr><td><meta><table> </table></td></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<!doctype html><html> <head>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+        "noQuirksBodyHtml": " "
+      }
+    },
+    {
+      "data": "<!doctype html> <head>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+        "noQuirksBodyHtml": " "
+      }
+    },
+    {
+      "data": "<!doctype html><table><style> <tr>x </style> </table>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "style": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "style",
+                        "children": [
+                          {
+                            "text": " <tr>x ",
+                            "no_escape": true
+                          }
+                        ]
+                      },
+                      {
+                        "text": " "
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><table><style> <tr>x </style> </table></body></html>",
+        "noQuirksBodyHtml": "<table><style> <tr>x </style> </table>"
+      }
+    },
+    {
+      "data": "<!doctype html><table><TBODY><script> <tr>x </script> </table>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "script": true
+          },
+          "doctype": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "script",
+                            "children": [
+                              {
+                                "text": " <tr>x ",
+                                "no_escape": true
+                              }
+                            ]
+                          },
+                          {
+                            "text": " "
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><table><tbody><script> <tr>x </script> </tbody></table></body></html>",
+        "noQuirksBodyHtml": "<table><tbody><script> <tr>x </script> </tbody></table>"
+      }
+    },
+    {
+      "data": "<!doctype html><p><applet><p>X</p></applet>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "applet": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "applet",
+                        "children": [
+                          {
+                            "tag": "p",
+                            "children": [
+                              {
+                                "text": "X"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p><applet><p>X</p></applet></p></body></html>",
+        "noQuirksBodyHtml": "<p><applet><p>X</p></applet></p>"
+      }
+    },
+    {
+      "data": "<!doctype html><p><object type=\"application/x-non-existant-plugin\"><p>X</p></object>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "object": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "object",
+                        "attrs": [
+                          {
+                            "name": "type",
+                            "value": "application/x-non-existant-plugin"
+                          }
+                        ],
+                        "children": [
+                          {
+                            "tag": "p",
+                            "children": [
+                              {
+                                "text": "X"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><p><object type=\"application/x-non-existant-plugin\"><p>X</p></object></p></body></html>",
+        "noQuirksBodyHtml": "<p><object type=\"application/x-non-existant-plugin\"><p>X</p></object></p>"
+      }
+    },
+    {
+      "data": "<!doctype html><listing>\nX</listing>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "listing": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "listing",
+                    "children": [
+                      {
+                        "text": "X"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><listing>X</listing></body></html>",
+        "noQuirksBodyHtml": "<listing>X</listing>"
+      }
+    },
+    {
+      "data": "<!doctype html><select><input>X",
+      "errors": [
+        "(1,30): unexpected-input-in-select"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true,
+            "input": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select"
+                  },
+                  {
+                    "tag": "input"
+                  },
+                  {
+                    "text": "X"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><select></select><input>X</body></html>",
+        "noQuirksBodyHtml": "<select></select><input>X"
+      }
+    },
+    {
+      "data": "<!doctype html><select><select>X",
+      "errors": [
+        "(1,31): unexpected-select-in-select"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select"
+                  },
+                  {
+                    "text": "X"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><select></select>X</body></html>",
+        "noQuirksBodyHtml": "<select></select>X"
+      }
+    },
+    {
+      "data": "<!doctype html><table><input type=hidDEN></table>",
+      "errors": [
+        "(1,41): unexpected-hidden-input-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "input": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "input",
+                        "attrs": [
+                          {
+                            "name": "type",
+                            "value": "hidDEN"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><table><input type=\"hidDEN\"></table></body></html>",
+        "noQuirksBodyHtml": "<table><input type=\"hidDEN\"></table>"
+      }
+    },
+    {
+      "data": "<!doctype html><table>X<input type=hidDEN></table>",
+      "errors": [
+        "(1,23): foster-parenting-character",
+        "(1,42): unexpected-hidden-input-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "input": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "X"
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "input",
+                        "attrs": [
+                          {
+                            "name": "type",
+                            "value": "hidDEN"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body>X<table><input type=\"hidDEN\"></table></body></html>",
+        "noQuirksBodyHtml": "X<table><input type=\"hidDEN\"></table>"
+      }
+    },
+    {
+      "data": "<!doctype html><table>  <input type=hidDEN></table>",
+      "errors": [
+        "(1,43): unexpected-hidden-input-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "input": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "text": "  "
+                      },
+                      {
+                        "tag": "input",
+                        "attrs": [
+                          {
+                            "name": "type",
+                            "value": "hidDEN"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><table>  <input type=\"hidDEN\"></table></body></html>",
+        "noQuirksBodyHtml": "<table>  <input type=\"hidDEN\"></table>"
+      }
+    },
+    {
+      "data": "<!doctype html><table>  <input type='hidDEN'></table>",
+      "errors": [
+        "(1,45): unexpected-hidden-input-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "input": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "text": "  "
+                      },
+                      {
+                        "tag": "input",
+                        "attrs": [
+                          {
+                            "name": "type",
+                            "value": "hidDEN"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><table>  <input type=\"hidDEN\"></table></body></html>",
+        "noQuirksBodyHtml": "<table>  <input type=\"hidDEN\"></table>"
+      }
+    },
+    {
+      "data": "<!doctype html><table><input type=\" hidden\"><input type=hidDEN></table>",
+      "errors": [
+        "(1,44): unexpected-start-tag-implies-table-voodoo",
+        "(1,63): unexpected-hidden-input-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "input": true,
+            "table": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "input",
+                    "attrs": [
+                      {
+                        "name": "type",
+                        "value": " hidden"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "input",
+                        "attrs": [
+                          {
+                            "name": "type",
+                            "value": "hidDEN"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><input type=\" hidden\"><table><input type=\"hidDEN\"></table></body></html>",
+        "noQuirksBodyHtml": "<input type=\" hidden\"><table><input type=\"hidDEN\"></table>"
+      }
+    },
+    {
+      "data": "<!doctype html><table><select>X<tr>",
+      "errors": [
+        "(1,30): unexpected-start-tag-implies-table-voodoo",
+        "(1,35): unexpected-table-element-start-tag-in-select-in-table",
+        "(1,35): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true,
+            "table": true,
+            "tbody": true,
+            "tr": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select",
+                    "children": [
+                      {
+                        "text": "X"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><select>X</select><table><tbody><tr></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<select>X</select><table><tbody><tr></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<!doctype html><select>X</select>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select",
+                    "children": [
+                      {
+                        "text": "X"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><select>X</select></body></html>",
+        "noQuirksBodyHtml": "<select>X</select>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE hTmL><html></html>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<!DOCTYPE HTML><html></html>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<body>X</body></body>",
+      "errors": [
+        "(1,21): unexpected-end-tag-after-body"
+      ],
+      "fragment": {
+        "name": "html"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "head"
+          },
+          {
+            "tag": "body",
+            "children": [
+              {
+                "text": "X"
+              }
+            ]
+          }
+        ],
+        "html": "<head></head><body>X</body>",
+        "noQuirksBodyHtml": "X"
+      }
+    },
+    {
+      "data": "<div><p>a</x> b",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,13): unexpected-end-tag",
+        "(1,15): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true,
+            "p": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "tag": "p",
+                        "children": [
+                          {
+                            "text": "a b"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div><p>a b</p></div></body></html>",
+        "noQuirksBodyHtml": "<div><p>a b</p></div>"
+      }
+    },
+    {
+      "data": "<table><tr><td><code></code> </table>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true,
+            "code": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td",
+                                "children": [
+                                  {
+                                    "tag": "code"
+                                  },
+                                  {
+                                    "text": " "
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><tbody><tr><td><code></code> </td></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<table><tbody><tr><td><code></code> </td></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<table><b><tr><td>aaa</td></tr>bbb</table>ccc",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,10): foster-parenting-start-tag",
+        "(1,32): foster-parenting-character",
+        "(1,33): foster-parenting-character",
+        "(1,34): foster-parenting-character",
+        "(1,45): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "b": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "b"
+                  },
+                  {
+                    "tag": "b",
+                    "children": [
+                      {
+                        "text": "bbb"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td",
+                                "children": [
+                                  {
+                                    "text": "aaa"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "b",
+                    "children": [
+                      {
+                        "text": "ccc"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><b></b><b>bbb</b><table><tbody><tr><td>aaa</td></tr></tbody></table><b>ccc</b></body></html>",
+        "noQuirksBodyHtml": "<b></b><b>bbb</b><table><tbody><tr><td>aaa</td></tr></tbody></table><b>ccc</b>"
+      }
+    },
+    {
+      "data": "A<table><tr> B</tr> B</table>",
+      "errors": [
+        "(1,1): expected-doctype-but-got-chars",
+        "(1,13): foster-parenting-character",
+        "(1,14): foster-parenting-character",
+        "(1,20): foster-parenting-character",
+        "(1,21): foster-parenting-character"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "A B B"
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>A B B<table><tbody><tr></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "A B B<table><tbody><tr></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "A<table><tr> B</tr> </em>C</table>",
+      "errors": [
+        "(1,1): expected-doctype-but-got-chars",
+        "(1,13): foster-parenting-character",
+        "(1,14): foster-parenting-character",
+        "(1,20): foster-parenting-character",
+        "(1,25): unexpected-end-tag",
+        "(1,26): foster-parenting-character"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "A BC"
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr"
+                          },
+                          {
+                            "text": " "
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>A BC<table><tbody><tr></tr> </tbody></table></body></html>",
+        "noQuirksBodyHtml": "A BC<table><tbody><tr></tr> </tbody></table>"
+      }
+    },
+    {
+      "data": "<select><keygen>",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,16): unexpected-input-in-select"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true,
+            "keygen": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select"
+                  },
+                  {
+                    "tag": "keygen"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><select></select><keygen></body></html>",
+        "noQuirksBodyHtml": "<select></select><keygen>"
+      }
+    }
+  ],
+  "tests8.dat": [
+    {
+      "data": "<div>\n<div></div>\n</span>x",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(3,7): unexpected-end-tag",
+        "(3,8): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "text": "\n"
+                      },
+                      {
+                        "tag": "div"
+                      },
+                      {
+                        "text": "\nx"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div>\n<div></div>\nx</div></body></html>",
+        "noQuirksBodyHtml": "<div>\n<div></div>\nx</div>"
+      }
+    },
+    {
+      "data": "<div>x<div></div>\n</span>x",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(2,7): unexpected-end-tag",
+        "(2,8): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "text": "x"
+                      },
+                      {
+                        "tag": "div"
+                      },
+                      {
+                        "text": "\nx"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div>x<div></div>\nx</div></body></html>",
+        "noQuirksBodyHtml": "<div>x<div></div>\nx</div>"
+      }
+    },
+    {
+      "data": "<div>x<div></div>x</span>x",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,25): unexpected-end-tag",
+        "(1,26): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "text": "x"
+                      },
+                      {
+                        "tag": "div"
+                      },
+                      {
+                        "text": "xx"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div>x<div></div>xx</div></body></html>",
+        "noQuirksBodyHtml": "<div>x<div></div>xx</div>"
+      }
+    },
+    {
+      "data": "<div>x<div></div>y</span>z",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,25): unexpected-end-tag",
+        "(1,26): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "text": "x"
+                      },
+                      {
+                        "tag": "div"
+                      },
+                      {
+                        "text": "yz"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div>x<div></div>yz</div></body></html>",
+        "noQuirksBodyHtml": "<div>x<div></div>yz</div>"
+      }
+    },
+    {
+      "data": "<table><div>x<div></div>x</span>x",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,12): foster-parenting-start-tag",
+        "(1,13): foster-parenting-character",
+        "(1,18): foster-parenting-start-tag",
+        "(1,24): foster-parenting-end-tag",
+        "(1,25): foster-parenting-start-tag",
+        "(1,32): foster-parenting-end-tag",
+        "(1,32): unexpected-end-tag",
+        "(1,33): foster-parenting-character",
+        "(1,33): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true,
+            "table": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "text": "x"
+                      },
+                      {
+                        "tag": "div"
+                      },
+                      {
+                        "text": "xx"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "table"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div>x<div></div>xx</div><table></table></body></html>",
+        "noQuirksBodyHtml": "<div>x<div></div>xx</div><table></table>"
+      }
+    },
+    {
+      "data": "x<table>x",
+      "errors": [
+        "(1,1): expected-doctype-but-got-chars",
+        "(1,9): foster-parenting-character",
+        "(1,9): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "xx"
+                  },
+                  {
+                    "tag": "table"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>xx<table></table></body></html>",
+        "noQuirksBodyHtml": "xx<table></table>"
+      }
+    },
+    {
+      "data": "x<table><table>x",
+      "errors": [
+        "(1,1): expected-doctype-but-got-chars",
+        "(1,15): unexpected-start-tag-implies-end-tag",
+        "(1,16): foster-parenting-character",
+        "(1,16): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "x"
+                  },
+                  {
+                    "tag": "table"
+                  },
+                  {
+                    "text": "x"
+                  },
+                  {
+                    "tag": "table"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>x<table></table>x<table></table></body></html>",
+        "noQuirksBodyHtml": "x<table></table>x<table></table>"
+      }
+    },
+    {
+      "data": "<b>a<div></div><div></b>y",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,24): adoption-agency-1.3",
+        "(1,25): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "b": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "b",
+                    "children": [
+                      {
+                        "text": "a"
+                      },
+                      {
+                        "tag": "div"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "tag": "b"
+                      },
+                      {
+                        "text": "y"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><b>a<div></div></b><div><b></b>y</div></body></html>",
+        "noQuirksBodyHtml": "<b>a<div></div></b><div><b></b>y</div>"
+      }
+    },
+    {
+      "data": "<a><div><p></a>",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,15): adoption-agency-1.3",
+        "(1,15): adoption-agency-1.3",
+        "(1,15): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "a": true,
+            "div": true,
+            "p": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "a"
+                  },
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "tag": "a"
+                      },
+                      {
+                        "tag": "p",
+                        "children": [
+                          {
+                            "tag": "a"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><a></a><div><a></a><p><a></a></p></div></body></html>",
+        "noQuirksBodyHtml": "<a></a><div><a></a><p><a></a></p></div>"
+      }
+    }
+  ],
+  "tests9.dat": [
+    {
+      "data": "<!DOCTYPE html><math></math>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><math></math></body></html>",
+        "noQuirksBodyHtml": "<math></math>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><math></math>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><math></math></body></html>",
+        "noQuirksBodyHtml": "<math></math>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><math><mi>",
+      "errors": [
+        "(1,25) expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "math mi": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "mi",
+                        "ns": "http://www.w3.org/1998/Math/MathML"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><math><mi></mi></math></body></html>",
+        "noQuirksBodyHtml": "<math><mi></mi></math>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><math><annotation-xml><svg><u>",
+      "errors": [
+        "(1,45) unexpected-html-element-in-foreign-content",
+        "(1,45) expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "math annotation-xml": true,
+            "svg svg": true,
+            "u": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "annotation-xml",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "children": [
+                          {
+                            "tag": "svg",
+                            "ns": "http://www.w3.org/2000/svg"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "u"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><math><annotation-xml><svg></svg></annotation-xml></math><u></u></body></html>",
+        "noQuirksBodyHtml": "<math><annotation-xml><svg><u></u></svg></annotation-xml></math>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><select><math></math></select>",
+      "errors": [
+        "(1,35) unexpected-start-tag-in-select",
+        "(1,42) unexpected-end-tag-in-select"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><select></select></body></html>",
+        "noQuirksBodyHtml": "<select></select>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><select><option><math></math></option></select>",
+      "errors": [
+        "(1,43) unexpected-start-tag-in-select",
+        "(1,50) unexpected-end-tag-in-select"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true,
+            "option": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select",
+                    "children": [
+                      {
+                        "tag": "option"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><select><option></option></select></body></html>",
+        "noQuirksBodyHtml": "<select><option></option></select>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><table><math></math></table>",
+      "errors": [
+        "(1,34) unexpected-start-tag-implies-table-voodoo"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "table": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML"
+                  },
+                  {
+                    "tag": "table"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><math></math><table></table></body></html>",
+        "noQuirksBodyHtml": "<math></math><table></table>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><table><math><mi>foo</mi></math></table>",
+      "errors": [
+        "(1,34) foster-parenting-start-token",
+        "(1,39) foster-parenting-character",
+        "(1,40) foster-parenting-character",
+        "(1,41) foster-parenting-character"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "math mi": true,
+            "table": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "mi",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "children": [
+                          {
+                            "text": "foo"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "table"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><math><mi>foo</mi></math><table></table></body></html>",
+        "noQuirksBodyHtml": "<math><mi>foo</mi></math><table></table>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><table><math><mi>foo</mi><mi>bar</mi></math></table>",
+      "errors": [
+        "(1,34) foster-parenting-start-tag",
+        "(1,39) foster-parenting-character",
+        "(1,40) foster-parenting-character",
+        "(1,41) foster-parenting-character",
+        "(1,51) foster-parenting-character",
+        "(1,52) foster-parenting-character",
+        "(1,53) foster-parenting-character"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "math mi": true,
+            "table": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "mi",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "children": [
+                          {
+                            "text": "foo"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "mi",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "children": [
+                          {
+                            "text": "bar"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "table"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><math><mi>foo</mi><mi>bar</mi></math><table></table></body></html>",
+        "noQuirksBodyHtml": "<math><mi>foo</mi><mi>bar</mi></math><table></table>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><table><tbody><math><mi>foo</mi><mi>bar</mi></math></tbody></table>",
+      "errors": [
+        "(1,41) foster-parenting-start-tag",
+        "(1,46) foster-parenting-character",
+        "(1,47) foster-parenting-character",
+        "(1,48) foster-parenting-character",
+        "(1,58) foster-parenting-character",
+        "(1,59) foster-parenting-character",
+        "(1,60) foster-parenting-character"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "math mi": true,
+            "table": true,
+            "tbody": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "mi",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "children": [
+                          {
+                            "text": "foo"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "mi",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "children": [
+                          {
+                            "text": "bar"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><math><mi>foo</mi><mi>bar</mi></math><table><tbody></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<math><mi>foo</mi><mi>bar</mi></math><table><tbody></tbody></table>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><table><tbody><tr><math><mi>foo</mi><mi>bar</mi></math></tr></tbody></table>",
+      "errors": [
+        "(1,45) foster-parenting-start-tag",
+        "(1,50) foster-parenting-character",
+        "(1,51) foster-parenting-character",
+        "(1,52) foster-parenting-character",
+        "(1,62) foster-parenting-character",
+        "(1,63) foster-parenting-character",
+        "(1,64) foster-parenting-character"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "math mi": true,
+            "table": true,
+            "tbody": true,
+            "tr": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "mi",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "children": [
+                          {
+                            "text": "foo"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "mi",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "children": [
+                          {
+                            "text": "bar"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><math><mi>foo</mi><mi>bar</mi></math><table><tbody><tr></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<math><mi>foo</mi><mi>bar</mi></math><table><tbody><tr></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><table><tbody><tr><td><math><mi>foo</mi><mi>bar</mi></math></td></tr></tbody></table>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true,
+            "math math": true,
+            "math mi": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td",
+                                "children": [
+                                  {
+                                    "tag": "math",
+                                    "ns": "http://www.w3.org/1998/Math/MathML",
+                                    "children": [
+                                      {
+                                        "tag": "mi",
+                                        "ns": "http://www.w3.org/1998/Math/MathML",
+                                        "children": [
+                                          {
+                                            "text": "foo"
+                                          }
+                                        ]
+                                      },
+                                      {
+                                        "tag": "mi",
+                                        "ns": "http://www.w3.org/1998/Math/MathML",
+                                        "children": [
+                                          {
+                                            "text": "bar"
+                                          }
+                                        ]
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><math><mi>foo</mi><mi>bar</mi></math></td></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<table><tbody><tr><td><math><mi>foo</mi><mi>bar</mi></math></td></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><table><tbody><tr><td><math><mi>foo</mi><mi>bar</mi></math><p>baz</td></tr></tbody></table>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true,
+            "math math": true,
+            "math mi": true,
+            "p": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td",
+                                "children": [
+                                  {
+                                    "tag": "math",
+                                    "ns": "http://www.w3.org/1998/Math/MathML",
+                                    "children": [
+                                      {
+                                        "tag": "mi",
+                                        "ns": "http://www.w3.org/1998/Math/MathML",
+                                        "children": [
+                                          {
+                                            "text": "foo"
+                                          }
+                                        ]
+                                      },
+                                      {
+                                        "tag": "mi",
+                                        "ns": "http://www.w3.org/1998/Math/MathML",
+                                        "children": [
+                                          {
+                                            "text": "bar"
+                                          }
+                                        ]
+                                      }
+                                    ]
+                                  },
+                                  {
+                                    "tag": "p",
+                                    "children": [
+                                      {
+                                        "text": "baz"
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><math><mi>foo</mi><mi>bar</mi></math><p>baz</p></td></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<table><tbody><tr><td><math><mi>foo</mi><mi>bar</mi></math><p>baz</p></td></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><table><caption><math><mi>foo</mi><mi>bar</mi></math><p>baz</caption></table>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "caption": true,
+            "math math": true,
+            "math mi": true,
+            "p": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "caption",
+                        "children": [
+                          {
+                            "tag": "math",
+                            "ns": "http://www.w3.org/1998/Math/MathML",
+                            "children": [
+                              {
+                                "tag": "mi",
+                                "ns": "http://www.w3.org/1998/Math/MathML",
+                                "children": [
+                                  {
+                                    "text": "foo"
+                                  }
+                                ]
+                              },
+                              {
+                                "tag": "mi",
+                                "ns": "http://www.w3.org/1998/Math/MathML",
+                                "children": [
+                                  {
+                                    "text": "bar"
+                                  }
+                                ]
+                              }
+                            ]
+                          },
+                          {
+                            "tag": "p",
+                            "children": [
+                              {
+                                "text": "baz"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><table><caption><math><mi>foo</mi><mi>bar</mi></math><p>baz</p></caption></table></body></html>",
+        "noQuirksBodyHtml": "<table><caption><math><mi>foo</mi><mi>bar</mi></math><p>baz</p></caption></table>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><table><caption><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux",
+      "errors": [
+        "(1,70) unexpected-html-element-in-foreign-content"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "caption": true,
+            "math math": true,
+            "math mi": true,
+            "p": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "caption",
+                        "children": [
+                          {
+                            "tag": "math",
+                            "ns": "http://www.w3.org/1998/Math/MathML",
+                            "children": [
+                              {
+                                "tag": "mi",
+                                "ns": "http://www.w3.org/1998/Math/MathML",
+                                "children": [
+                                  {
+                                    "text": "foo"
+                                  }
+                                ]
+                              },
+                              {
+                                "tag": "mi",
+                                "ns": "http://www.w3.org/1998/Math/MathML",
+                                "children": [
+                                  {
+                                    "text": "bar"
+                                  }
+                                ]
+                              }
+                            ]
+                          },
+                          {
+                            "tag": "p",
+                            "children": [
+                              {
+                                "text": "baz"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "text": "quux"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><table><caption><math><mi>foo</mi><mi>bar</mi></math><p>baz</p></caption></table><p>quux</p></body></html>",
+        "noQuirksBodyHtml": "<table><caption><math><mi>foo</mi><mi>bar</mi><p>baz</p></math></caption></table><p>quux</p>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><table><caption><math><mi>foo</mi><mi>bar</mi>baz</table><p>quux",
+      "errors": [
+        "(1,78) unexpected-end-tag",
+        "(1,78) expected-one-end-tag-but-got-another"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "caption": true,
+            "math math": true,
+            "math mi": true,
+            "p": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "caption",
+                        "children": [
+                          {
+                            "tag": "math",
+                            "ns": "http://www.w3.org/1998/Math/MathML",
+                            "children": [
+                              {
+                                "tag": "mi",
+                                "ns": "http://www.w3.org/1998/Math/MathML",
+                                "children": [
+                                  {
+                                    "text": "foo"
+                                  }
+                                ]
+                              },
+                              {
+                                "tag": "mi",
+                                "ns": "http://www.w3.org/1998/Math/MathML",
+                                "children": [
+                                  {
+                                    "text": "bar"
+                                  }
+                                ]
+                              },
+                              {
+                                "text": "baz"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "text": "quux"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><table><caption><math><mi>foo</mi><mi>bar</mi>baz</math></caption></table><p>quux</p></body></html>",
+        "noQuirksBodyHtml": "<table><caption><math><mi>foo</mi><mi>bar</mi>baz</math></caption></table><p>quux</p>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><table><colgroup><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux",
+      "errors": [
+        "(1,44) foster-parenting-start-tag",
+        "(1,49) foster-parenting-character",
+        "(1,50) foster-parenting-character",
+        "(1,51) foster-parenting-character",
+        "(1,61) foster-parenting-character",
+        "(1,62) foster-parenting-character",
+        "(1,63) foster-parenting-character",
+        "(1,71) unexpected-html-element-in-foreign-content",
+        "(1,71) foster-parenting-start-tag",
+        "(1,63) foster-parenting-character",
+        "(1,63) foster-parenting-character",
+        "(1,63) foster-parenting-character"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "math mi": true,
+            "p": true,
+            "table": true,
+            "colgroup": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "mi",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "children": [
+                          {
+                            "text": "foo"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "mi",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "children": [
+                          {
+                            "text": "bar"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "text": "baz"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "colgroup"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "text": "quux"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><math><mi>foo</mi><mi>bar</mi></math><p>baz</p><table><colgroup></colgroup></table><p>quux</p></body></html>",
+        "noQuirksBodyHtml": "<math><mi>foo</mi><mi>bar</mi><p>baz</p></math><table><colgroup></colgroup></table><p>quux</p>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><table><tr><td><select><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux",
+      "errors": [
+        "(1,50) unexpected-start-tag-in-select",
+        "(1,54) unexpected-start-tag-in-select",
+        "(1,62) unexpected-end-tag-in-select",
+        "(1,66) unexpected-start-tag-in-select",
+        "(1,74) unexpected-end-tag-in-select",
+        "(1,77) unexpected-start-tag-in-select",
+        "(1,88) unexpected-table-element-end-tag-in-select-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true,
+            "select": true,
+            "p": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td",
+                                "children": [
+                                  {
+                                    "tag": "select",
+                                    "children": [
+                                      {
+                                        "text": "foobarbaz"
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "text": "quux"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><table><tbody><tr><td><select>foobarbaz</select></td></tr></tbody></table><p>quux</p></body></html>",
+        "noQuirksBodyHtml": "<table><tbody><tr><td><select>foobarbaz</select></td></tr></tbody></table><p>quux</p>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body><table><select><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux",
+      "errors": [
+        "(1,36) unexpected-start-tag-implies-table-voodoo",
+        "(1,42) unexpected-start-tag-in-select",
+        "(1,46) unexpected-start-tag-in-select",
+        "(1,54) unexpected-end-tag-in-select",
+        "(1,58) unexpected-start-tag-in-select",
+        "(1,66) unexpected-end-tag-in-select",
+        "(1,69) unexpected-start-tag-in-select",
+        "(1,80) unexpected-table-element-end-tag-in-select-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true,
+            "table": true,
+            "p": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select",
+                    "children": [
+                      {
+                        "text": "foobarbaz"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "table"
+                  },
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "text": "quux"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><select>foobarbaz</select><table></table><p>quux</p></body></html>",
+        "noQuirksBodyHtml": "<select>foobarbaz</select><table></table><p>quux</p>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body></body></html><math><mi>foo</mi><mi>bar</mi><p>baz",
+      "errors": [
+        "(1,41) expected-eof-but-got-start-tag",
+        "(1,68) unexpected-html-element-in-foreign-content"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "math mi": true,
+            "p": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "mi",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "children": [
+                          {
+                            "text": "foo"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "mi",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "children": [
+                          {
+                            "text": "bar"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "text": "baz"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><math><mi>foo</mi><mi>bar</mi></math><p>baz</p></body></html>",
+        "noQuirksBodyHtml": "<math><mi>foo</mi><mi>bar</mi><p>baz</p></math>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body></body><math><mi>foo</mi><mi>bar</mi><p>baz",
+      "errors": [
+        "(1,34) unexpected-start-tag-after-body",
+        "(1,61) unexpected-html-element-in-foreign-content"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "math mi": true,
+            "p": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "mi",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "children": [
+                          {
+                            "text": "foo"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "mi",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "children": [
+                          {
+                            "text": "bar"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "text": "baz"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><math><mi>foo</mi><mi>bar</mi></math><p>baz</p></body></html>",
+        "noQuirksBodyHtml": "<math><mi>foo</mi><mi>bar</mi><p>baz</p></math>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><frameset><math><mi></mi><mi></mi><p><span>",
+      "errors": [
+        "(1,31) unexpected-start-tag-in-frameset",
+        "(1,35) unexpected-start-tag-in-frameset",
+        "(1,40) unexpected-end-tag-in-frameset",
+        "(1,44) unexpected-start-tag-in-frameset",
+        "(1,49) unexpected-end-tag-in-frameset",
+        "(1,52) unexpected-start-tag-in-frameset",
+        "(1,58) unexpected-start-tag-in-frameset",
+        "(1,58) eof-in-frameset"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
+        "noQuirksBodyHtml": "<math><mi></mi><mi></mi><p><span></span></p></math>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><frameset></frameset><math><mi></mi><mi></mi><p><span>",
+      "errors": [
+        "(1,42) unexpected-start-tag-after-frameset",
+        "(1,46) unexpected-start-tag-after-frameset",
+        "(1,51) unexpected-end-tag-after-frameset",
+        "(1,55) unexpected-start-tag-after-frameset",
+        "(1,60) unexpected-end-tag-after-frameset",
+        "(1,63) unexpected-start-tag-after-frameset",
+        "(1,69) unexpected-start-tag-after-frameset"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
+        "noQuirksBodyHtml": "<math><mi></mi><mi></mi><p><span></span></p></math>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body xlink:href=foo><math xlink:href=foo></math>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "attrs": [
+                  {
+                    "name": "xlink:href",
+                    "value": "foo"
+                  }
+                ],
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "attrs": [
+                      {
+                        "name": "href",
+                        "ns": "http://www.w3.org/1999/xlink",
+                        "value": "foo"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body xlink:href=\"foo\"><math xlink:href=\"foo\"></math></body></html>",
+        "noQuirksBodyHtml": "<math xlink:href=\"foo\"></math>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body xlink:href=foo xml:lang=en><math><mi xml:lang=en xlink:href=foo></mi></math>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "math mi": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "attrs": [
+                  {
+                    "name": "xlink:href",
+                    "value": "foo"
+                  },
+                  {
+                    "name": "xml:lang",
+                    "value": "en"
+                  }
+                ],
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "mi",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "attrs": [
+                          {
+                            "name": "href",
+                            "ns": "http://www.w3.org/1999/xlink",
+                            "value": "foo"
+                          },
+                          {
+                            "name": "lang",
+                            "ns": "http://www.w3.org/XML/1998/namespace",
+                            "value": "en"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body xlink:href=\"foo\" xml:lang=\"en\"><math><mi xml:lang=\"en\" xlink:href=\"foo\"></mi></math></body></html>",
+        "noQuirksBodyHtml": "<math><mi xml:lang=\"en\" xlink:href=\"foo\"></mi></math>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body xlink:href=foo xml:lang=en><math><mi xml:lang=en xlink:href=foo /></math>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "math mi": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "attrs": [
+                  {
+                    "name": "xlink:href",
+                    "value": "foo"
+                  },
+                  {
+                    "name": "xml:lang",
+                    "value": "en"
+                  }
+                ],
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "mi",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "attrs": [
+                          {
+                            "name": "href",
+                            "ns": "http://www.w3.org/1999/xlink",
+                            "value": "foo"
+                          },
+                          {
+                            "name": "lang",
+                            "ns": "http://www.w3.org/XML/1998/namespace",
+                            "value": "en"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body xlink:href=\"foo\" xml:lang=\"en\"><math><mi xml:lang=\"en\" xlink:href=\"foo\"></mi></math></body></html>",
+        "noQuirksBodyHtml": "<math><mi xml:lang=\"en\" xlink:href=\"foo\"></mi></math>"
+      }
+    },
+    {
+      "data": "<!DOCTYPE html><body xlink:href=foo xml:lang=en><math><mi xml:lang=en xlink:href=foo />bar</math>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "math mi": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "attrs": [
+                  {
+                    "name": "xlink:href",
+                    "value": "foo"
+                  },
+                  {
+                    "name": "xml:lang",
+                    "value": "en"
+                  }
+                ],
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "mi",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "attrs": [
+                          {
+                            "name": "href",
+                            "ns": "http://www.w3.org/1999/xlink",
+                            "value": "foo"
+                          },
+                          {
+                            "name": "lang",
+                            "ns": "http://www.w3.org/XML/1998/namespace",
+                            "value": "en"
+                          }
+                        ]
+                      },
+                      {
+                        "text": "bar"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body xlink:href=\"foo\" xml:lang=\"en\"><math><mi xml:lang=\"en\" xlink:href=\"foo\"></mi>bar</math></body></html>",
+        "noQuirksBodyHtml": "<math><mi xml:lang=\"en\" xlink:href=\"foo\"></mi>bar</math>"
+      }
+    }
+  ],
+  "tests_innerHTML_1.dat": [
+    {
+      "data": "<body><span>",
+      "errors": [
+        "(1,6): unexpected-start-tag",
+        "(1,12): expected-closing-tag-but-got-eof"
+      ],
+      "fragment": {
+        "name": "body"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "span": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "span"
+          }
+        ],
+        "html": "<span></span>",
+        "noQuirksBodyHtml": "<span></span>"
+      }
+    },
+    {
+      "data": "<span><body>",
+      "errors": [
+        "(1,12): unexpected-start-tag",
+        "(1,12): expected-closing-tag-but-got-eof"
+      ],
+      "fragment": {
+        "name": "body"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "span": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "span"
+          }
+        ],
+        "html": "<span></span>",
+        "noQuirksBodyHtml": "<span></span>"
+      }
+    },
+    {
+      "data": "<span><body>",
+      "errors": [
+        "(1,12): unexpected-start-tag",
+        "(1,12): expected-closing-tag-but-got-eof"
+      ],
+      "fragment": {
+        "name": "div"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "span": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "span"
+          }
+        ],
+        "html": "<span></span>",
+        "noQuirksBodyHtml": "<span></span>"
+      }
+    },
+    {
+      "data": "<body><span>",
+      "errors": [
+        "(1,12): expected-closing-tag-but-got-eof"
+      ],
+      "fragment": {
+        "name": "html"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "head": true,
+            "body": true,
+            "span": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "head"
+          },
+          {
+            "tag": "body",
+            "children": [
+              {
+                "tag": "span"
+              }
+            ]
+          }
+        ],
+        "html": "<head></head><body><span></span></body>",
+        "noQuirksBodyHtml": "<span></span>"
+      }
+    },
+    {
+      "data": "<frameset><span>",
+      "errors": [
+        "(1,10): unexpected-start-tag",
+        "(1,16): expected-closing-tag-but-got-eof"
+      ],
+      "fragment": {
+        "name": "body"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "span": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "span"
+          }
+        ],
+        "html": "<span></span>",
+        "noQuirksBodyHtml": "<span></span>"
+      }
+    },
+    {
+      "data": "<span><frameset>",
+      "errors": [
+        "(1,16): unexpected-start-tag",
+        "(1,16): expected-closing-tag-but-got-eof"
+      ],
+      "fragment": {
+        "name": "body"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "span": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "span"
+          }
+        ],
+        "html": "<span></span>",
+        "noQuirksBodyHtml": "<span></span>"
+      }
+    },
+    {
+      "data": "<span><frameset>",
+      "errors": [
+        "(1,16): unexpected-start-tag",
+        "(1,16): expected-closing-tag-but-got-eof"
+      ],
+      "fragment": {
+        "name": "div"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "span": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "span"
+          }
+        ],
+        "html": "<span></span>",
+        "noQuirksBodyHtml": "<span></span>"
+      }
+    },
+    {
+      "data": "<frameset><span>",
+      "errors": [
+        "(1,16): unexpected-start-tag-in-frameset",
+        "(1,16): eof-in-frameset"
+      ],
+      "fragment": {
+        "name": "html"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "head": true,
+            "frameset": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "head"
+          },
+          {
+            "tag": "frameset"
+          }
+        ],
+        "html": "<head></head><frameset></frameset>",
+        "noQuirksBodyHtml": "<span></span>"
+      }
+    },
+    {
+      "data": "<table><tr>",
+      "errors": [
+        "(1,7): unexpected-start-tag"
+      ],
+      "fragment": {
+        "name": "table"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "tbody": true,
+            "tr": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "tbody",
+            "children": [
+              {
+                "tag": "tr"
+              }
+            ]
+          }
+        ],
+        "html": "<tbody><tr></tr></tbody>",
+        "noQuirksBodyHtml": "<table><tbody><tr></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "</table><tr>",
+      "errors": [
+        "(1,8): unexpected-end-tag"
+      ],
+      "fragment": {
+        "name": "table"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "tbody": true,
+            "tr": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "tbody",
+            "children": [
+              {
+                "tag": "tr"
+              }
+            ]
+          }
+        ],
+        "html": "<tbody><tr></tr></tbody>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<a>",
+      "errors": [
+        "(1,3): unexpected-start-tag-implies-table-voodoo",
+        "(1,3): eof-in-table"
+      ],
+      "fragment": {
+        "name": "table"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "a": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "a"
+          }
+        ],
+        "html": "<a></a>",
+        "noQuirksBodyHtml": "<a></a>"
+      }
+    },
+    {
+      "data": "<a>",
+      "errors": [
+        "(1,3): unexpected-start-tag-implies-table-voodoo",
+        "(1,3): eof-in-table"
+      ],
+      "fragment": {
+        "name": "table"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "a": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "a"
+          }
+        ],
+        "html": "<a></a>",
+        "noQuirksBodyHtml": "<a></a>"
+      }
+    },
+    {
+      "data": "<a><caption>a",
+      "errors": [
+        "(1,3): unexpected-start-tag-implies-table-voodoo",
+        "(1,13): expected-closing-tag-but-got-eof"
+      ],
+      "fragment": {
+        "name": "table"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "a": true,
+            "caption": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "a"
+          },
+          {
+            "tag": "caption",
+            "children": [
+              {
+                "text": "a"
+              }
+            ]
+          }
+        ],
+        "html": "<a></a><caption>a</caption>",
+        "noQuirksBodyHtml": "<a>a</a>"
+      }
+    },
+    {
+      "data": "<a><colgroup><col>",
+      "errors": [
+        "(1,3): foster-parenting-start-token",
+        "(1,18): expected-closing-tag-but-got-eof"
+      ],
+      "fragment": {
+        "name": "table"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "a": true,
+            "colgroup": true,
+            "col": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "a"
+          },
+          {
+            "tag": "colgroup",
+            "children": [
+              {
+                "tag": "col"
+              }
+            ]
+          }
+        ],
+        "html": "<a></a><colgroup><col></colgroup>",
+        "noQuirksBodyHtml": "<a></a>"
+      }
+    },
+    {
+      "data": "<a><tbody><tr>",
+      "errors": [
+        "(1,3): foster-parenting-start-tag"
+      ],
+      "fragment": {
+        "name": "table"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "a": true,
+            "tbody": true,
+            "tr": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "a"
+          },
+          {
+            "tag": "tbody",
+            "children": [
+              {
+                "tag": "tr"
+              }
+            ]
+          }
+        ],
+        "html": "<a></a><tbody><tr></tr></tbody>",
+        "noQuirksBodyHtml": "<a></a>"
+      }
+    },
+    {
+      "data": "<a><tfoot><tr>",
+      "errors": [
+        "(1,3): foster-parenting-start-tag"
+      ],
+      "fragment": {
+        "name": "table"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "a": true,
+            "tfoot": true,
+            "tr": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "a"
+          },
+          {
+            "tag": "tfoot",
+            "children": [
+              {
+                "tag": "tr"
+              }
+            ]
+          }
+        ],
+        "html": "<a></a><tfoot><tr></tr></tfoot>",
+        "noQuirksBodyHtml": "<a></a>"
+      }
+    },
+    {
+      "data": "<a><thead><tr>",
+      "errors": [
+        "(1,3): foster-parenting-start-tag"
+      ],
+      "fragment": {
+        "name": "table"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "a": true,
+            "thead": true,
+            "tr": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "a"
+          },
+          {
+            "tag": "thead",
+            "children": [
+              {
+                "tag": "tr"
+              }
+            ]
+          }
+        ],
+        "html": "<a></a><thead><tr></tr></thead>",
+        "noQuirksBodyHtml": "<a></a>"
+      }
+    },
+    {
+      "data": "<a><tr>",
+      "errors": [
+        "(1,3): foster-parenting-start-tag"
+      ],
+      "fragment": {
+        "name": "table"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "a": true,
+            "tbody": true,
+            "tr": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "a"
+          },
+          {
+            "tag": "tbody",
+            "children": [
+              {
+                "tag": "tr"
+              }
+            ]
+          }
+        ],
+        "html": "<a></a><tbody><tr></tr></tbody>",
+        "noQuirksBodyHtml": "<a></a>"
+      }
+    },
+    {
+      "data": "<a><th>",
+      "errors": [
+        "(1,3): unexpected-start-tag-implies-table-voodoo",
+        "(1,7): unexpected-cell-in-table-body"
+      ],
+      "fragment": {
+        "name": "table"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "a": true,
+            "tbody": true,
+            "tr": true,
+            "th": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "a"
+          },
+          {
+            "tag": "tbody",
+            "children": [
+              {
+                "tag": "tr",
+                "children": [
+                  {
+                    "tag": "th"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<a></a><tbody><tr><th></th></tr></tbody>",
+        "noQuirksBodyHtml": "<a></a>"
+      }
+    },
+    {
+      "data": "<a><td>",
+      "errors": [
+        "(1,3): unexpected-start-tag-implies-table-voodoo",
+        "(1,7): unexpected-cell-in-table-body"
+      ],
+      "fragment": {
+        "name": "table"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "a": true,
+            "tbody": true,
+            "tr": true,
+            "td": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "a"
+          },
+          {
+            "tag": "tbody",
+            "children": [
+              {
+                "tag": "tr",
+                "children": [
+                  {
+                    "tag": "td"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<a></a><tbody><tr><td></td></tr></tbody>",
+        "noQuirksBodyHtml": "<a></a>"
+      }
+    },
+    {
+      "data": "<table></table><tbody>",
+      "errors": [
+        "(1,22): unexpected-start-tag"
+      ],
+      "fragment": {
+        "name": "caption"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "table": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "table"
+          }
+        ],
+        "html": "<table></table>",
+        "noQuirksBodyHtml": "<table></table>"
+      }
+    },
+    {
+      "data": "</table><span>",
+      "errors": [
+        "(1,8): unexpected-end-tag",
+        "(1,14): expected-closing-tag-but-got-eof"
+      ],
+      "fragment": {
+        "name": "caption"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "span": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "span"
+          }
+        ],
+        "html": "<span></span>",
+        "noQuirksBodyHtml": "<span></span>"
+      }
+    },
+    {
+      "data": "<span></table>",
+      "errors": [
+        "(1,14): unexpected-end-tag",
+        "(1,14): expected-closing-tag-but-got-eof"
+      ],
+      "fragment": {
+        "name": "caption"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "span": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "span"
+          }
+        ],
+        "html": "<span></span>",
+        "noQuirksBodyHtml": "<span></span>"
+      }
+    },
+    {
+      "data": "</caption><span>",
+      "errors": [
+        "(1,10): XXX-undefined-error",
+        "(1,16): expected-closing-tag-but-got-eof"
+      ],
+      "fragment": {
+        "name": "caption"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "span": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "span"
+          }
+        ],
+        "html": "<span></span>",
+        "noQuirksBodyHtml": "<span></span>"
+      }
+    },
+    {
+      "data": "<span></caption><span>",
+      "errors": [
+        "(1,16): XXX-undefined-error",
+        "(1,22): expected-closing-tag-but-got-eof"
+      ],
+      "fragment": {
+        "name": "caption"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "span": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "span",
+            "children": [
+              {
+                "tag": "span"
+              }
+            ]
+          }
+        ],
+        "html": "<span><span></span></span>",
+        "noQuirksBodyHtml": "<span><span></span></span>"
+      }
+    },
+    {
+      "data": "<span><caption><span>",
+      "errors": [
+        "(1,15): unexpected-start-tag",
+        "(1,21): expected-closing-tag-but-got-eof"
+      ],
+      "fragment": {
+        "name": "caption"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "span": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "span",
+            "children": [
+              {
+                "tag": "span"
+              }
+            ]
+          }
+        ],
+        "html": "<span><span></span></span>",
+        "noQuirksBodyHtml": "<span><span></span></span>"
+      }
+    },
+    {
+      "data": "<span><col><span>",
+      "errors": [
+        "(1,11): unexpected-start-tag",
+        "(1,17): expected-closing-tag-but-got-eof"
+      ],
+      "fragment": {
+        "name": "caption"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "span": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "span",
+            "children": [
+              {
+                "tag": "span"
+              }
+            ]
+          }
+        ],
+        "html": "<span><span></span></span>",
+        "noQuirksBodyHtml": "<span><span></span></span>"
+      }
+    },
+    {
+      "data": "<span><colgroup><span>",
+      "errors": [
+        "(1,16): unexpected-start-tag",
+        "(1,22): expected-closing-tag-but-got-eof"
+      ],
+      "fragment": {
+        "name": "caption"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "span": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "span",
+            "children": [
+              {
+                "tag": "span"
+              }
+            ]
+          }
+        ],
+        "html": "<span><span></span></span>",
+        "noQuirksBodyHtml": "<span><span></span></span>"
+      }
+    },
+    {
+      "data": "<span><html><span>",
+      "errors": [
+        "(1,12): non-html-root",
+        "(1,18): expected-closing-tag-but-got-eof"
+      ],
+      "fragment": {
+        "name": "caption"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "span": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "span",
+            "children": [
+              {
+                "tag": "span"
+              }
+            ]
+          }
+        ],
+        "html": "<span><span></span></span>",
+        "noQuirksBodyHtml": "<span><span></span></span>"
+      }
+    },
+    {
+      "data": "<span><tbody><span>",
+      "errors": [
+        "(1,13): unexpected-start-tag",
+        "(1,19): expected-closing-tag-but-got-eof"
+      ],
+      "fragment": {
+        "name": "caption"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "span": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "span",
+            "children": [
+              {
+                "tag": "span"
+              }
+            ]
+          }
+        ],
+        "html": "<span><span></span></span>",
+        "noQuirksBodyHtml": "<span><span></span></span>"
+      }
+    },
+    {
+      "data": "<span><td><span>",
+      "errors": [
+        "(1,10): unexpected-start-tag",
+        "(1,16): expected-closing-tag-but-got-eof"
+      ],
+      "fragment": {
+        "name": "caption"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "span": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "span",
+            "children": [
+              {
+                "tag": "span"
+              }
+            ]
+          }
+        ],
+        "html": "<span><span></span></span>",
+        "noQuirksBodyHtml": "<span><span></span></span>"
+      }
+    },
+    {
+      "data": "<span><tfoot><span>",
+      "errors": [
+        "(1,13): unexpected-start-tag",
+        "(1,19): expected-closing-tag-but-got-eof"
+      ],
+      "fragment": {
+        "name": "caption"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "span": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "span",
+            "children": [
+              {
+                "tag": "span"
+              }
+            ]
+          }
+        ],
+        "html": "<span><span></span></span>",
+        "noQuirksBodyHtml": "<span><span></span></span>"
+      }
+    },
+    {
+      "data": "<span><thead><span>",
+      "errors": [
+        "(1,13): unexpected-start-tag",
+        "(1,19): expected-closing-tag-but-got-eof"
+      ],
+      "fragment": {
+        "name": "caption"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "span": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "span",
+            "children": [
+              {
+                "tag": "span"
+              }
+            ]
+          }
+        ],
+        "html": "<span><span></span></span>",
+        "noQuirksBodyHtml": "<span><span></span></span>"
+      }
+    },
+    {
+      "data": "<span><th><span>",
+      "errors": [
+        "(1,10): unexpected-start-tag",
+        "(1,16): expected-closing-tag-but-got-eof"
+      ],
+      "fragment": {
+        "name": "caption"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "span": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "span",
+            "children": [
+              {
+                "tag": "span"
+              }
+            ]
+          }
+        ],
+        "html": "<span><span></span></span>",
+        "noQuirksBodyHtml": "<span><span></span></span>"
+      }
+    },
+    {
+      "data": "<span><tr><span>",
+      "errors": [
+        "(1,10): unexpected-start-tag",
+        "(1,16): expected-closing-tag-but-got-eof"
+      ],
+      "fragment": {
+        "name": "caption"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "span": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "span",
+            "children": [
+              {
+                "tag": "span"
+              }
+            ]
+          }
+        ],
+        "html": "<span><span></span></span>",
+        "noQuirksBodyHtml": "<span><span></span></span>"
+      }
+    },
+    {
+      "data": "<span></table><span>",
+      "errors": [
+        "(1,14): unexpected-end-tag",
+        "(1,20): expected-closing-tag-but-got-eof"
+      ],
+      "fragment": {
+        "name": "caption"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "span": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "span",
+            "children": [
+              {
+                "tag": "span"
+              }
+            ]
+          }
+        ],
+        "html": "<span><span></span></span>",
+        "noQuirksBodyHtml": "<span><span></span></span>"
+      }
+    },
+    {
+      "data": "</colgroup><col>",
+      "errors": [
+        "(1,11): XXX-undefined-error"
+      ],
+      "fragment": {
+        "name": "colgroup"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "col": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "col"
+          }
+        ],
+        "html": "<col>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<a><col>",
+      "errors": [
+        "(1,3): XXX-undefined-error"
+      ],
+      "fragment": {
+        "name": "colgroup"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "col": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "col"
+          }
+        ],
+        "html": "<col>",
+        "noQuirksBodyHtml": "<a></a>"
+      }
+    },
+    {
+      "data": "<caption><a>",
+      "errors": [
+        "(1,9): XXX-undefined-error",
+        "(1,12): unexpected-start-tag-implies-table-voodoo",
+        "(1,12): eof-in-table"
+      ],
+      "fragment": {
+        "name": "tbody"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "a": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "a"
+          }
+        ],
+        "html": "<a></a>",
+        "noQuirksBodyHtml": "<a></a>"
+      }
+    },
+    {
+      "data": "<col><a>",
+      "errors": [
+        "(1,5): XXX-undefined-error",
+        "(1,8): unexpected-start-tag-implies-table-voodoo",
+        "(1,8): eof-in-table"
+      ],
+      "fragment": {
+        "name": "tbody"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "a": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "a"
+          }
+        ],
+        "html": "<a></a>",
+        "noQuirksBodyHtml": "<a></a>"
+      }
+    },
+    {
+      "data": "<colgroup><a>",
+      "errors": [
+        "(1,10): XXX-undefined-error",
+        "(1,13): unexpected-start-tag-implies-table-voodoo",
+        "(1,13): eof-in-table"
+      ],
+      "fragment": {
+        "name": "tbody"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "a": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "a"
+          }
+        ],
+        "html": "<a></a>",
+        "noQuirksBodyHtml": "<a></a>"
+      }
+    },
+    {
+      "data": "<tbody><a>",
+      "errors": [
+        "(1,7): XXX-undefined-error",
+        "(1,10): unexpected-start-tag-implies-table-voodoo",
+        "(1,10): eof-in-table"
+      ],
+      "fragment": {
+        "name": "tbody"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "a": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "a"
+          }
+        ],
+        "html": "<a></a>",
+        "noQuirksBodyHtml": "<a></a>"
+      }
+    },
+    {
+      "data": "<tfoot><a>",
+      "errors": [
+        "(1,7): XXX-undefined-error",
+        "(1,10): unexpected-start-tag-implies-table-voodoo",
+        "(1,10): eof-in-table"
+      ],
+      "fragment": {
+        "name": "tbody"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "a": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "a"
+          }
+        ],
+        "html": "<a></a>",
+        "noQuirksBodyHtml": "<a></a>"
+      }
+    },
+    {
+      "data": "<thead><a>",
+      "errors": [
+        "(1,7): XXX-undefined-error",
+        "(1,10): unexpected-start-tag-implies-table-voodoo",
+        "(1,10): eof-in-table"
+      ],
+      "fragment": {
+        "name": "tbody"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "a": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "a"
+          }
+        ],
+        "html": "<a></a>",
+        "noQuirksBodyHtml": "<a></a>"
+      }
+    },
+    {
+      "data": "</table><a>",
+      "errors": [
+        "(1,8): XXX-undefined-error",
+        "(1,11): unexpected-start-tag-implies-table-voodoo",
+        "(1,11): eof-in-table"
+      ],
+      "fragment": {
+        "name": "tbody"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "a": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "a"
+          }
+        ],
+        "html": "<a></a>",
+        "noQuirksBodyHtml": "<a></a>"
+      }
+    },
+    {
+      "data": "<a><tr>",
+      "errors": [
+        "(1,3): unexpected-start-tag-implies-table-voodoo"
+      ],
+      "fragment": {
+        "name": "tbody"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "a": true,
+            "tr": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "a"
+          },
+          {
+            "tag": "tr"
+          }
+        ],
+        "html": "<a></a><tr></tr>",
+        "noQuirksBodyHtml": "<a></a>"
+      }
+    },
+    {
+      "data": "<a><td>",
+      "errors": [
+        "(1,3): unexpected-start-tag-implies-table-voodoo",
+        "(1,7): unexpected-cell-in-table-body"
+      ],
+      "fragment": {
+        "name": "tbody"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "a": true,
+            "tr": true,
+            "td": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "a"
+          },
+          {
+            "tag": "tr",
+            "children": [
+              {
+                "tag": "td"
+              }
+            ]
+          }
+        ],
+        "html": "<a></a><tr><td></td></tr>",
+        "noQuirksBodyHtml": "<a></a>"
+      }
+    },
+    {
+      "data": "<a><td>",
+      "errors": [
+        "(1,3): unexpected-start-tag-implies-table-voodoo",
+        "(1,7): unexpected-cell-in-table-body"
+      ],
+      "fragment": {
+        "name": "tbody"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "a": true,
+            "tr": true,
+            "td": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "a"
+          },
+          {
+            "tag": "tr",
+            "children": [
+              {
+                "tag": "td"
+              }
+            ]
+          }
+        ],
+        "html": "<a></a><tr><td></td></tr>",
+        "noQuirksBodyHtml": "<a></a>"
+      }
+    },
+    {
+      "data": "<a><td>",
+      "errors": [
+        "(1,3): unexpected-start-tag-implies-table-voodoo",
+        "(1,7): unexpected-cell-in-table-body"
+      ],
+      "fragment": {
+        "name": "tbody"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "a": true,
+            "tr": true,
+            "td": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "a"
+          },
+          {
+            "tag": "tr",
+            "children": [
+              {
+                "tag": "td"
+              }
+            ]
+          }
+        ],
+        "html": "<a></a><tr><td></td></tr>",
+        "noQuirksBodyHtml": "<a></a>"
+      }
+    },
+    {
+      "data": "<td><table><tbody><a><tr>",
+      "errors": [
+        "(1,4): unexpected-cell-in-table-body",
+        "(1,21): unexpected-start-tag-implies-table-voodoo",
+        "(1,25): eof-in-table"
+      ],
+      "fragment": {
+        "name": "tbody"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "tr": true,
+            "td": true,
+            "a": true,
+            "table": true,
+            "tbody": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "tr",
+            "children": [
+              {
+                "tag": "td",
+                "children": [
+                  {
+                    "tag": "a"
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<tr><td><a></a><table><tbody><tr></tr></tbody></table></td></tr>",
+        "noQuirksBodyHtml": "<a></a><table><tbody><tr></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "</tr><td>",
+      "errors": [
+        "(1,5): XXX-undefined-error"
+      ],
+      "fragment": {
+        "name": "tr"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "td": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "td"
+          }
+        ],
+        "html": "<td></td>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<td><table><a><tr></tr><tr>",
+      "errors": [
+        "(1,14): unexpected-start-tag-implies-table-voodoo",
+        "(1,27): eof-in-table"
+      ],
+      "fragment": {
+        "name": "tr"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "td": true,
+            "a": true,
+            "table": true,
+            "tbody": true,
+            "tr": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "td",
+            "children": [
+              {
+                "tag": "a"
+              },
+              {
+                "tag": "table",
+                "children": [
+                  {
+                    "tag": "tbody",
+                    "children": [
+                      {
+                        "tag": "tr"
+                      },
+                      {
+                        "tag": "tr"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<td><a></a><table><tbody><tr></tr><tr></tr></tbody></table></td>",
+        "noQuirksBodyHtml": "<a></a><table><tbody><tr></tr><tr></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<caption><td>",
+      "errors": [
+        "(1,9): XXX-undefined-error"
+      ],
+      "fragment": {
+        "name": "tr"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "td": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "td"
+          }
+        ],
+        "html": "<td></td>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<col><td>",
+      "errors": [
+        "(1,5): XXX-undefined-error"
+      ],
+      "fragment": {
+        "name": "tr"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "td": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "td"
+          }
+        ],
+        "html": "<td></td>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<colgroup><td>",
+      "errors": [
+        "(1,10): XXX-undefined-error"
+      ],
+      "fragment": {
+        "name": "tr"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "td": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "td"
+          }
+        ],
+        "html": "<td></td>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<tbody><td>",
+      "errors": [
+        "(1,7): XXX-undefined-error"
+      ],
+      "fragment": {
+        "name": "tr"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "td": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "td"
+          }
+        ],
+        "html": "<td></td>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<tfoot><td>",
+      "errors": [
+        "(1,7): XXX-undefined-error"
+      ],
+      "fragment": {
+        "name": "tr"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "td": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "td"
+          }
+        ],
+        "html": "<td></td>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<thead><td>",
+      "errors": [
+        "(1,7): XXX-undefined-error"
+      ],
+      "fragment": {
+        "name": "tr"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "td": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "td"
+          }
+        ],
+        "html": "<td></td>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<tr><td>",
+      "errors": [
+        "(1,4): XXX-undefined-error"
+      ],
+      "fragment": {
+        "name": "tr"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "td": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "td"
+          }
+        ],
+        "html": "<td></td>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "</table><td>",
+      "errors": [
+        "(1,8): XXX-undefined-error"
+      ],
+      "fragment": {
+        "name": "tr"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "td": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "td"
+          }
+        ],
+        "html": "<td></td>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<td><table></table><td>",
+      "errors": [],
+      "fragment": {
+        "name": "tr"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "td": true,
+            "table": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "td",
+            "children": [
+              {
+                "tag": "table"
+              }
+            ]
+          },
+          {
+            "tag": "td"
+          }
+        ],
+        "html": "<td><table></table></td><td></td>",
+        "noQuirksBodyHtml": "<table></table>"
+      }
+    },
+    {
+      "data": "<td><table></table><td>",
+      "errors": [],
+      "fragment": {
+        "name": "tr"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "td": true,
+            "table": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "td",
+            "children": [
+              {
+                "tag": "table"
+              }
+            ]
+          },
+          {
+            "tag": "td"
+          }
+        ],
+        "html": "<td><table></table></td><td></td>",
+        "noQuirksBodyHtml": "<table></table>"
+      }
+    },
+    {
+      "data": "<caption><a>",
+      "errors": [
+        "(1,9): XXX-undefined-error",
+        "(1,12): expected-closing-tag-but-got-eof"
+      ],
+      "fragment": {
+        "name": "td"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "a": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "a"
+          }
+        ],
+        "html": "<a></a>",
+        "noQuirksBodyHtml": "<a></a>"
+      }
+    },
+    {
+      "data": "<col><a>",
+      "errors": [
+        "(1,5): XXX-undefined-error",
+        "(1,8): expected-closing-tag-but-got-eof"
+      ],
+      "fragment": {
+        "name": "td"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "a": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "a"
+          }
+        ],
+        "html": "<a></a>",
+        "noQuirksBodyHtml": "<a></a>"
+      }
+    },
+    {
+      "data": "<colgroup><a>",
+      "errors": [
+        "(1,10): XXX-undefined-error",
+        "(1,13): expected-closing-tag-but-got-eof"
+      ],
+      "fragment": {
+        "name": "td"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "a": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "a"
+          }
+        ],
+        "html": "<a></a>",
+        "noQuirksBodyHtml": "<a></a>"
+      }
+    },
+    {
+      "data": "<tbody><a>",
+      "errors": [
+        "(1,7): XXX-undefined-error",
+        "(1,10): expected-closing-tag-but-got-eof"
+      ],
+      "fragment": {
+        "name": "td"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "a": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "a"
+          }
+        ],
+        "html": "<a></a>",
+        "noQuirksBodyHtml": "<a></a>"
+      }
+    },
+    {
+      "data": "<tfoot><a>",
+      "errors": [
+        "(1,7): XXX-undefined-error",
+        "(1,10): expected-closing-tag-but-got-eof"
+      ],
+      "fragment": {
+        "name": "td"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "a": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "a"
+          }
+        ],
+        "html": "<a></a>",
+        "noQuirksBodyHtml": "<a></a>"
+      }
+    },
+    {
+      "data": "<th><a>",
+      "errors": [
+        "(1,4): XXX-undefined-error",
+        "(1,7): expected-closing-tag-but-got-eof"
+      ],
+      "fragment": {
+        "name": "td"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "a": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "a"
+          }
+        ],
+        "html": "<a></a>",
+        "noQuirksBodyHtml": "<a></a>"
+      }
+    },
+    {
+      "data": "<thead><a>",
+      "errors": [
+        "(1,7): XXX-undefined-error",
+        "(1,10): expected-closing-tag-but-got-eof"
+      ],
+      "fragment": {
+        "name": "td"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "a": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "a"
+          }
+        ],
+        "html": "<a></a>",
+        "noQuirksBodyHtml": "<a></a>"
+      }
+    },
+    {
+      "data": "<tr><a>",
+      "errors": [
+        "(1,4): XXX-undefined-error",
+        "(1,7): expected-closing-tag-but-got-eof"
+      ],
+      "fragment": {
+        "name": "td"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "a": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "a"
+          }
+        ],
+        "html": "<a></a>",
+        "noQuirksBodyHtml": "<a></a>"
+      }
+    },
+    {
+      "data": "</table><a>",
+      "errors": [
+        "(1,8): XXX-undefined-error",
+        "(1,11): expected-closing-tag-but-got-eof"
+      ],
+      "fragment": {
+        "name": "td"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "a": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "a"
+          }
+        ],
+        "html": "<a></a>",
+        "noQuirksBodyHtml": "<a></a>"
+      }
+    },
+    {
+      "data": "</tbody><a>",
+      "errors": [
+        "(1,8): XXX-undefined-error",
+        "(1,11): expected-closing-tag-but-got-eof"
+      ],
+      "fragment": {
+        "name": "td"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "a": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "a"
+          }
+        ],
+        "html": "<a></a>",
+        "noQuirksBodyHtml": "<a></a>"
+      }
+    },
+    {
+      "data": "</td><a>",
+      "errors": [
+        "(1,5): unexpected-end-tag",
+        "(1,8): expected-closing-tag-but-got-eof"
+      ],
+      "fragment": {
+        "name": "td"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "a": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "a"
+          }
+        ],
+        "html": "<a></a>",
+        "noQuirksBodyHtml": "<a></a>"
+      }
+    },
+    {
+      "data": "</tfoot><a>",
+      "errors": [
+        "(1,8): XXX-undefined-error",
+        "(1,11): expected-closing-tag-but-got-eof"
+      ],
+      "fragment": {
+        "name": "td"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "a": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "a"
+          }
+        ],
+        "html": "<a></a>",
+        "noQuirksBodyHtml": "<a></a>"
+      }
+    },
+    {
+      "data": "</thead><a>",
+      "errors": [
+        "(1,8): XXX-undefined-error",
+        "(1,11): expected-closing-tag-but-got-eof"
+      ],
+      "fragment": {
+        "name": "td"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "a": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "a"
+          }
+        ],
+        "html": "<a></a>",
+        "noQuirksBodyHtml": "<a></a>"
+      }
+    },
+    {
+      "data": "</th><a>",
+      "errors": [
+        "(1,5): unexpected-end-tag",
+        "(1,8): expected-closing-tag-but-got-eof"
+      ],
+      "fragment": {
+        "name": "td"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "a": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "a"
+          }
+        ],
+        "html": "<a></a>",
+        "noQuirksBodyHtml": "<a></a>"
+      }
+    },
+    {
+      "data": "</tr><a>",
+      "errors": [
+        "(1,5): XXX-undefined-error",
+        "(1,8): expected-closing-tag-but-got-eof"
+      ],
+      "fragment": {
+        "name": "td"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "a": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "a"
+          }
+        ],
+        "html": "<a></a>",
+        "noQuirksBodyHtml": "<a></a>"
+      }
+    },
+    {
+      "data": "<table><td><td>",
+      "errors": [
+        "(1,11): unexpected-cell-in-table-body",
+        "(1,15): expected-closing-tag-but-got-eof"
+      ],
+      "fragment": {
+        "name": "td"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "table",
+            "children": [
+              {
+                "tag": "tbody",
+                "children": [
+                  {
+                    "tag": "tr",
+                    "children": [
+                      {
+                        "tag": "td"
+                      },
+                      {
+                        "tag": "td"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<table><tbody><tr><td></td><td></td></tr></tbody></table>",
+        "noQuirksBodyHtml": "<table><tbody><tr><td></td><td></td></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "</select><option>",
+      "errors": [
+        "(1,9): XXX-undefined-error",
+        "(1,17): eof-in-select"
+      ],
+      "fragment": {
+        "name": "select"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "option": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "option"
+          }
+        ],
+        "html": "<option></option>",
+        "noQuirksBodyHtml": "<option></option>"
+      }
+    },
+    {
+      "data": "<input><option>",
+      "errors": [
+        "(1,7): unexpected-input-in-select",
+        "(1,15): eof-in-select"
+      ],
+      "fragment": {
+        "name": "select"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "option": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "option"
+          }
+        ],
+        "html": "<option></option>",
+        "noQuirksBodyHtml": "<input><option></option>"
+      }
+    },
+    {
+      "data": "<keygen><option>",
+      "errors": [
+        "(1,8): unexpected-input-in-select",
+        "(1,16): eof-in-select"
+      ],
+      "fragment": {
+        "name": "select"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "option": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "option"
+          }
+        ],
+        "html": "<option></option>",
+        "noQuirksBodyHtml": "<keygen><option></option>"
+      }
+    },
+    {
+      "data": "<textarea><option>",
+      "errors": [
+        "(1,10): unexpected-input-in-select",
+        "(1,18): eof-in-select"
+      ],
+      "fragment": {
+        "name": "select"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "option": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "option"
+          }
+        ],
+        "html": "<option></option>",
+        "noQuirksBodyHtml": "<textarea>&lt;option&gt;</textarea>"
+      }
+    },
+    {
+      "data": "</html><!--abc-->",
+      "errors": [
+        "(1,7): unexpected-end-tag-after-body-innerhtml"
+      ],
+      "fragment": {
+        "name": "html"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "head": true,
+            "body": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "tag": "head"
+          },
+          {
+            "tag": "body"
+          },
+          {
+            "comment": "abc"
+          }
+        ],
+        "html": "<head></head><body></body><!--abc-->",
+        "noQuirksBodyHtml": "<!--abc-->"
+      }
+    },
+    {
+      "data": "</frameset><frame>",
+      "errors": [
+        "(1,11): unexpected-frameset-in-frameset-innerhtml"
+      ],
+      "fragment": {
+        "name": "frameset"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "frame": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "frame"
+          }
+        ],
+        "html": "<frame>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "",
+      "errors": [],
+      "fragment": {
+        "name": "html"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "head"
+          },
+          {
+            "tag": "body"
+          }
+        ],
+        "html": "<head></head><body></body>",
+        "noQuirksBodyHtml": ""
+      }
+    }
+  ],
+  "tricky01.dat": [
+    {
+      "data": "<b><p>Bold </b> Not bold</p>\nAlso not bold.",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,15): adoption-agency-1.3"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "b": true,
+            "p": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "b"
+                  },
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "text": "Bold "
+                          }
+                        ]
+                      },
+                      {
+                        "text": " Not bold"
+                      }
+                    ]
+                  },
+                  {
+                    "text": "\nAlso not bold."
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><b></b><p><b>Bold </b> Not bold</p>\nAlso not bold.</body></html>",
+        "noQuirksBodyHtml": "<b></b><p><b>Bold </b> Not bold</p>\nAlso not bold."
+      }
+    },
+    {
+      "data": "<html>\n<font color=red><i>Italic and Red<p>Italic and Red </font> Just italic.</p> Italic only.</i> Plain\n<p>I should not be red. <font color=red>Red. <i>Italic and red.</p>\n<p>Italic and red. </i> Red.</font> I should not be red.</p>\n<b>Bold <i>Bold and italic</b> Only Italic </i> Plain",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(2,58): adoption-agency-1.3",
+        "(3,67): unexpected-end-tag",
+        "(4,23): adoption-agency-1.3",
+        "(4,35): adoption-agency-1.3",
+        "(5,30): adoption-agency-1.3"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "font": true,
+            "i": true,
+            "p": true,
+            "b": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "font",
+                    "attrs": [
+                      {
+                        "name": "color",
+                        "value": "red"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "tag": "i",
+                        "children": [
+                          {
+                            "text": "Italic and Red"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "i",
+                    "children": [
+                      {
+                        "tag": "p",
+                        "children": [
+                          {
+                            "tag": "font",
+                            "attrs": [
+                              {
+                                "name": "color",
+                                "value": "red"
+                              }
+                            ],
+                            "children": [
+                              {
+                                "text": "Italic and Red "
+                              }
+                            ]
+                          },
+                          {
+                            "text": " Just italic."
+                          }
+                        ]
+                      },
+                      {
+                        "text": " Italic only."
+                      }
+                    ]
+                  },
+                  {
+                    "text": " Plain\n"
+                  },
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "text": "I should not be red. "
+                      },
+                      {
+                        "tag": "font",
+                        "attrs": [
+                          {
+                            "name": "color",
+                            "value": "red"
+                          }
+                        ],
+                        "children": [
+                          {
+                            "text": "Red. "
+                          },
+                          {
+                            "tag": "i",
+                            "children": [
+                              {
+                                "text": "Italic and red."
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "font",
+                    "attrs": [
+                      {
+                        "name": "color",
+                        "value": "red"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "tag": "i",
+                        "children": [
+                          {
+                            "text": "\n"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "font",
+                        "attrs": [
+                          {
+                            "name": "color",
+                            "value": "red"
+                          }
+                        ],
+                        "children": [
+                          {
+                            "tag": "i",
+                            "children": [
+                              {
+                                "text": "Italic and red. "
+                              }
+                            ]
+                          },
+                          {
+                            "text": " Red."
+                          }
+                        ]
+                      },
+                      {
+                        "text": " I should not be red."
+                      }
+                    ]
+                  },
+                  {
+                    "text": "\n"
+                  },
+                  {
+                    "tag": "b",
+                    "children": [
+                      {
+                        "text": "Bold "
+                      },
+                      {
+                        "tag": "i",
+                        "children": [
+                          {
+                            "text": "Bold and italic"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "i",
+                    "children": [
+                      {
+                        "text": " Only Italic "
+                      }
+                    ]
+                  },
+                  {
+                    "text": " Plain"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><font color=\"red\"><i>Italic and Red</i></font><i><p><font color=\"red\">Italic and Red </font> Just italic.</p> Italic only.</i> Plain\n<p>I should not be red. <font color=\"red\">Red. <i>Italic and red.</i></font></p><font color=\"red\"><i>\n</i></font><p><font color=\"red\"><i>Italic and red. </i> Red.</font> I should not be red.</p>\n<b>Bold <i>Bold and italic</i></b><i> Only Italic </i> Plain</body></html>",
+        "noQuirksBodyHtml": "\n<font color=\"red\"><i>Italic and Red</i></font><i><p><font color=\"red\">Italic and Red </font> Just italic.</p> Italic only.</i> Plain\n<p>I should not be red. <font color=\"red\">Red. <i>Italic and red.</i></font></p><font color=\"red\"><i>\n</i></font><p><font color=\"red\"><i>Italic and red. </i> Red.</font> I should not be red.</p>\n<b>Bold <i>Bold and italic</i></b><i> Only Italic </i> Plain"
+      }
+    },
+    {
+      "data": "<html><body>\n<p><font size=\"7\">First paragraph.</p>\n<p>Second paragraph.</p></font>\n<b><p><i>Bold and Italic</b> Italic</p>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(2,38): unexpected-end-tag",
+        "(4,28): adoption-agency-1.3",
+        "(4,28): adoption-agency-1.3",
+        "(4,39): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "font": true,
+            "b": true,
+            "i": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "\n"
+                  },
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "font",
+                        "attrs": [
+                          {
+                            "name": "size",
+                            "value": "7"
+                          }
+                        ],
+                        "children": [
+                          {
+                            "text": "First paragraph."
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "font",
+                    "attrs": [
+                      {
+                        "name": "size",
+                        "value": "7"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "\n"
+                      },
+                      {
+                        "tag": "p",
+                        "children": [
+                          {
+                            "text": "Second paragraph."
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "text": "\n"
+                  },
+                  {
+                    "tag": "b"
+                  },
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "tag": "i",
+                            "children": [
+                              {
+                                "text": "Bold and Italic"
+                              }
+                            ]
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "i",
+                        "children": [
+                          {
+                            "text": " Italic"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>\n<p><font size=\"7\">First paragraph.</font></p><font size=\"7\">\n<p>Second paragraph.</p></font>\n<b></b><p><b><i>Bold and Italic</i></b><i> Italic</i></p></body></html>",
+        "noQuirksBodyHtml": "\n<p><font size=\"7\">First paragraph.</font></p><font size=\"7\">\n<p>Second paragraph.</p></font>\n<b></b><p><b><i>Bold and Italic</i></b><i> Italic</i></p>"
+      }
+    },
+    {
+      "data": "<html>\n<dl>\n<dt><b>Boo\n<dd>Goo?\n</dl>\n</html>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(4,4): end-tag-too-early",
+        "(5,5): end-tag-too-early",
+        "(6,7): expected-one-end-tag-but-got-another"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "dl": true,
+            "dt": true,
+            "b": true,
+            "dd": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "dl",
+                    "children": [
+                      {
+                        "text": "\n"
+                      },
+                      {
+                        "tag": "dt",
+                        "children": [
+                          {
+                            "tag": "b",
+                            "children": [
+                              {
+                                "text": "Boo\n"
+                              }
+                            ]
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "dd",
+                        "children": [
+                          {
+                            "tag": "b",
+                            "children": [
+                              {
+                                "text": "Goo?\n"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "b",
+                    "children": [
+                      {
+                        "text": "\n"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><dl>\n<dt><b>Boo\n</b></dt><dd><b>Goo?\n</b></dd></dl><b>\n</b></body></html>",
+        "noQuirksBodyHtml": "\n<dl>\n<dt><b>Boo\n</b></dt><dd><b>Goo?\n</b></dd></dl><b>\n</b>"
+      }
+    },
+    {
+      "data": "<html><body>\n<label><a><div>Hello<div>World</div></a></label>  \n</body></html>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(2,40): adoption-agency-1.3",
+        "(2,48): unexpected-end-tag",
+        "(3,7): expected-one-end-tag-but-got-another"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "label": true,
+            "a": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "\n"
+                  },
+                  {
+                    "tag": "label",
+                    "children": [
+                      {
+                        "tag": "a"
+                      },
+                      {
+                        "tag": "div",
+                        "children": [
+                          {
+                            "tag": "a",
+                            "children": [
+                              {
+                                "text": "Hello"
+                              },
+                              {
+                                "tag": "div",
+                                "children": [
+                                  {
+                                    "text": "World"
+                                  }
+                                ]
+                              }
+                            ]
+                          },
+                          {
+                            "text": "  \n"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>\n<label><a></a><div><a>Hello<div>World</div></a>  \n</div></label></body></html>",
+        "noQuirksBodyHtml": "\n<label><a></a><div><a>Hello<div>World</div></a>  \n</div></label>"
+      }
+    },
+    {
+      "data": "<table><center> <font>a</center> <img> <tr><td> </td> </tr> </table>",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,15): foster-parenting-start-tag",
+        "(1,16): foster-parenting-character",
+        "(1,22): foster-parenting-start-tag",
+        "(1,23): foster-parenting-character",
+        "(1,32): foster-parenting-end-tag",
+        "(1,32): end-tag-too-early",
+        "(1,33): foster-parenting-character",
+        "(1,38): foster-parenting-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "center": true,
+            "font": true,
+            "img": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "center",
+                    "children": [
+                      {
+                        "text": " "
+                      },
+                      {
+                        "tag": "font",
+                        "children": [
+                          {
+                            "text": "a"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "font",
+                    "children": [
+                      {
+                        "tag": "img"
+                      },
+                      {
+                        "text": " "
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "text": " "
+                      },
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td",
+                                "children": [
+                                  {
+                                    "text": " "
+                                  }
+                                ]
+                              },
+                              {
+                                "text": " "
+                              }
+                            ]
+                          },
+                          {
+                            "text": " "
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><center> <font>a</font></center><font><img> </font><table> <tbody><tr><td> </td> </tr> </tbody></table></body></html>",
+        "noQuirksBodyHtml": "<center> <font>a</font></center><font><img> </font><table> <tbody><tr><td> </td> </tr> </tbody></table>"
+      }
+    },
+    {
+      "data": "<table><tr><p><a><p>You should see this text.",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,14): unexpected-start-tag-implies-table-voodoo",
+        "(1,17): unexpected-start-tag-implies-table-voodoo",
+        "(1,20): unexpected-start-tag-implies-table-voodoo",
+        "(1,20): closing-non-current-p-element",
+        "(1,21): foster-parenting-character",
+        "(1,22): foster-parenting-character",
+        "(1,23): foster-parenting-character",
+        "(1,24): foster-parenting-character",
+        "(1,25): foster-parenting-character",
+        "(1,26): foster-parenting-character",
+        "(1,27): foster-parenting-character",
+        "(1,28): foster-parenting-character",
+        "(1,29): foster-parenting-character",
+        "(1,30): foster-parenting-character",
+        "(1,31): foster-parenting-character",
+        "(1,32): foster-parenting-character",
+        "(1,33): foster-parenting-character",
+        "(1,34): foster-parenting-character",
+        "(1,35): foster-parenting-character",
+        "(1,36): foster-parenting-character",
+        "(1,37): foster-parenting-character",
+        "(1,38): foster-parenting-character",
+        "(1,39): foster-parenting-character",
+        "(1,40): foster-parenting-character",
+        "(1,41): foster-parenting-character",
+        "(1,42): foster-parenting-character",
+        "(1,43): foster-parenting-character",
+        "(1,44): foster-parenting-character",
+        "(1,45): foster-parenting-character",
+        "(1,45): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "a": true,
+            "table": true,
+            "tbody": true,
+            "tr": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "a"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "a",
+                        "children": [
+                          {
+                            "text": "You should see this text."
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><p><a></a></p><p><a>You should see this text.</a></p><table><tbody><tr></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<p><a></a></p><p><a>You should see this text.</a></p><table><tbody><tr></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<TABLE>\n<TR>\n<CENTER><CENTER><TD></TD></TR><TR>\n<FONT>\n<TABLE><tr></tr></TABLE>\n</P>\n<a></font><font></a>\nThis page contains an insanely badly-nested tag sequence.",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(3,8): unexpected-start-tag-implies-table-voodoo",
+        "(3,16): unexpected-start-tag-implies-table-voodoo",
+        "(4,6): unexpected-start-tag-implies-table-voodoo",
+        "(4,6): unexpected character token in table (the newline)",
+        "(5,7): unexpected-start-tag-implies-end-tag",
+        "(6,4): unexpected p end tag",
+        "(7,10): adoption-agency-1.3",
+        "(7,20): adoption-agency-1.3",
+        "(8,57): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "center": true,
+            "font": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true,
+            "p": true,
+            "a": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "center",
+                    "children": [
+                      {
+                        "tag": "center"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "font",
+                    "children": [
+                      {
+                        "text": "\n"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "text": "\n"
+                      },
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "text": "\n"
+                              },
+                              {
+                                "tag": "td"
+                              }
+                            ]
+                          },
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "text": "\n"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "font",
+                    "children": [
+                      {
+                        "text": "\n"
+                      },
+                      {
+                        "tag": "p"
+                      },
+                      {
+                        "text": "\n"
+                      },
+                      {
+                        "tag": "a"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "a",
+                    "children": [
+                      {
+                        "tag": "font"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "font",
+                    "children": [
+                      {
+                        "text": "\nThis page contains an insanely badly-nested tag sequence."
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><center><center></center></center><font>\n</font><table>\n<tbody><tr>\n<td></td></tr><tr>\n</tr></tbody></table><table><tbody><tr></tr></tbody></table><font>\n<p></p>\n<a></a></font><a><font></font></a><font>\nThis page contains an insanely badly-nested tag sequence.</font></body></html>",
+        "noQuirksBodyHtml": "<center><center></center></center><font>\n</font><table>\n<tbody><tr>\n<td></td></tr><tr>\n</tr></tbody></table><table><tbody><tr></tr></tbody></table><font>\n<p></p>\n<a></a></font><a><font></font></a><font>\nThis page contains an insanely badly-nested tag sequence.</font>"
+      }
+    },
+    {
+      "data": "<html>\n<body>\n<b><nobr><div>This text is in a div inside a nobr</nobr>More text that should not be in the nobr, i.e., the\nnobr should have closed the div inside it implicitly. </b><pre>A pre tag outside everything else.</pre>\n</body>\n</html>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(3,56): adoption-agency-1.3",
+        "(4,58): adoption-agency-1.3",
+        "(5,7): expected-one-end-tag-but-got-another"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "b": true,
+            "nobr": true,
+            "div": true,
+            "pre": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "\n"
+                  },
+                  {
+                    "tag": "b",
+                    "children": [
+                      {
+                        "tag": "nobr"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "tag": "nobr",
+                            "children": [
+                              {
+                                "text": "This text is in a div inside a nobr"
+                              }
+                            ]
+                          },
+                          {
+                            "text": "More text that should not be in the nobr, i.e., the\nnobr should have closed the div inside it implicitly. "
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "pre",
+                        "children": [
+                          {
+                            "text": "A pre tag outside everything else."
+                          }
+                        ]
+                      },
+                      {
+                        "text": "\n\n"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>\n<b><nobr></nobr></b><div><b><nobr>This text is in a div inside a nobr</nobr>More text that should not be in the nobr, i.e., the\nnobr should have closed the div inside it implicitly. </b><pre>A pre tag outside everything else.</pre>\n\n</div></body></html>",
+        "noQuirksBodyHtml": "\n\n<b><nobr></nobr></b><div><b><nobr>This text is in a div inside a nobr</nobr>More text that should not be in the nobr, i.e., the\nnobr should have closed the div inside it implicitly. </b><pre>A pre tag outside everything else.</pre>\n\n</div>"
+      }
+    }
+  ],
+  "webkit01.dat": [
+    {
+      "data": "Test",
+      "errors": [
+        "(1,4): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "Test"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>Test</body></html>",
+        "noQuirksBodyHtml": "Test"
+      }
+    },
+    {
+      "data": "<div></div>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div></div></body></html>",
+        "noQuirksBodyHtml": "<div></div>"
+      }
+    },
+    {
+      "data": "<div>Test</div>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "text": "Test"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div>Test</div></body></html>",
+        "noQuirksBodyHtml": "<div>Test</div>"
+      }
+    },
+    {
+      "data": "<di",
+      "errors": [
+        "(1,3): eof-in-tag-name",
+        "(1,3): expected-doctype-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<div>Hello</div>\n<script>\nconsole.log(\"PASS\");\n</script>\n<div>Bye</div>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true,
+            "script": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "text": "Hello"
+                      }
+                    ]
+                  },
+                  {
+                    "text": "\n"
+                  },
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "\nconsole.log(\"PASS\");\n",
+                        "no_escape": true
+                      }
+                    ]
+                  },
+                  {
+                    "text": "\n"
+                  },
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "text": "Bye"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div>Hello</div>\n<script>\nconsole.log(\"PASS\");\n</script>\n<div>Bye</div></body></html>",
+        "noQuirksBodyHtml": "<div>Hello</div>\n<script>\nconsole.log(\"PASS\");\n</script>\n<div>Bye</div>"
+      }
+    },
+    {
+      "data": "<div foo=\"bar\">Hello</div>",
+      "errors": [
+        "(1,15): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "attrs": [
+                      {
+                        "name": "foo",
+                        "value": "bar"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "text": "Hello"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div foo=\"bar\">Hello</div></body></html>",
+        "noQuirksBodyHtml": "<div foo=\"bar\">Hello</div>"
+      }
+    },
+    {
+      "data": "<div>Hello</div>\n<script>\nconsole.log(\"FOO<span>BAR</span>BAZ\");\n</script>\n<div>Bye</div>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true,
+            "script": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "text": "Hello"
+                      }
+                    ]
+                  },
+                  {
+                    "text": "\n"
+                  },
+                  {
+                    "tag": "script",
+                    "children": [
+                      {
+                        "text": "\nconsole.log(\"FOO<span>BAR</span>BAZ\");\n",
+                        "no_escape": true
+                      }
+                    ]
+                  },
+                  {
+                    "text": "\n"
+                  },
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "text": "Bye"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div>Hello</div>\n<script>\nconsole.log(\"FOO<span>BAR</span>BAZ\");\n</script>\n<div>Bye</div></body></html>",
+        "noQuirksBodyHtml": "<div>Hello</div>\n<script>\nconsole.log(\"FOO<span>BAR</span>BAZ\");\n</script>\n<div>Bye</div>"
+      }
+    },
+    {
+      "data": "<foo bar=\"baz\"></foo><potato quack=\"duck\"></potato>",
+      "errors": [
+        "(1,15): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "foo": true,
+            "potato": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "foo",
+                    "attrs": [
+                      {
+                        "name": "bar",
+                        "value": "baz"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "potato",
+                    "attrs": [
+                      {
+                        "name": "quack",
+                        "value": "duck"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><foo bar=\"baz\"></foo><potato quack=\"duck\"></potato></body></html>",
+        "noQuirksBodyHtml": "<foo bar=\"baz\"></foo><potato quack=\"duck\"></potato>"
+      }
+    },
+    {
+      "data": "<foo bar=\"baz\"><potato quack=\"duck\"></potato></foo>",
+      "errors": [
+        "(1,15): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "foo": true,
+            "potato": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "foo",
+                    "attrs": [
+                      {
+                        "name": "bar",
+                        "value": "baz"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "tag": "potato",
+                        "attrs": [
+                          {
+                            "name": "quack",
+                            "value": "duck"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><foo bar=\"baz\"><potato quack=\"duck\"></potato></foo></body></html>",
+        "noQuirksBodyHtml": "<foo bar=\"baz\"><potato quack=\"duck\"></potato></foo>"
+      }
+    },
+    {
+      "data": "<foo></foo bar=\"baz\"><potato></potato quack=\"duck\">",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,21): attributes-in-end-tag",
+        "(1,51): attributes-in-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "foo": true,
+            "potato": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "foo"
+                  },
+                  {
+                    "tag": "potato"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><foo></foo><potato></potato></body></html>",
+        "noQuirksBodyHtml": "<foo></foo><potato></potato>"
+      }
+    },
+    {
+      "data": "</ tttt>",
+      "errors": [
+        "(1,2): expected-closing-tag-but-got-char",
+        "(1,8): expected-doctype-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "comment": " tttt"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<!-- tttt--><html><head></head><body></body></html>",
+        "noQuirksBodyHtml": "<!-- tttt-->"
+      }
+    },
+    {
+      "data": "<div FOO ><img><img></div>",
+      "errors": [
+        "(1,10): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true,
+            "img": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "attrs": [
+                      {
+                        "name": "foo",
+                        "value": ""
+                      }
+                    ],
+                    "children": [
+                      {
+                        "tag": "img"
+                      },
+                      {
+                        "tag": "img"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div foo=\"\"><img><img></div></body></html>",
+        "noQuirksBodyHtml": "<div foo=\"\"><img><img></div>"
+      }
+    },
+    {
+      "data": "<p>Test</p<p>Test2</p>",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,13): unexpected-end-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "text": "TestTest2"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><p>TestTest2</p></body></html>",
+        "noQuirksBodyHtml": "<p>TestTest2</p>"
+      }
+    },
+    {
+      "data": "<rdar://problem/6869687>",
+      "errors": [
+        "(1,7): unexpected-character-after-solidus-in-tag",
+        "(1,8): unexpected-character-after-solidus-in-tag",
+        "(1,16): unexpected-character-after-solidus-in-tag",
+        "(1,24): expected-doctype-but-got-start-tag",
+        "(1,24): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "rdar:": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "rdar:",
+                    "attrs": [
+                      {
+                        "name": "6869687",
+                        "value": ""
+                      },
+                      {
+                        "name": "problem",
+                        "value": ""
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><rdar: problem=\"\" 6869687=\"\"></rdar:></body></html>",
+        "noQuirksBodyHtml": "<rdar: problem=\"\" 6869687=\"\"></rdar:>"
+      }
+    },
+    {
+      "data": "<A>test< /A>",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,8): expected-tag-name",
+        "(1,12): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "a": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "a",
+                    "children": [
+                      {
+                        "text": "test< /A>",
+                        "escaped": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><a>test&lt; /A&gt;</a></body></html>",
+        "noQuirksBodyHtml": "<a>test&lt; /A&gt;</a>"
+      }
+    },
+    {
+      "data": "&lt;",
+      "errors": [
+        "(1,4): expected-doctype-but-got-chars"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "escaped": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "<",
+                    "escaped": true
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>&lt;</body></html>",
+        "noQuirksBodyHtml": "&lt;"
+      }
+    },
+    {
+      "data": "<body foo='bar'><body foo='baz' yo='mama'>",
+      "errors": [
+        "(1,16): expected-doctype-but-got-start-tag",
+        "(1,42): unexpected-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "attrs": [
+                  {
+                    "name": "foo",
+                    "value": "bar"
+                  },
+                  {
+                    "name": "yo",
+                    "value": "mama"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body foo=\"bar\" yo=\"mama\"></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<body></br foo=\"bar\"></body>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,21): attributes-in-end-tag",
+        "(1,21): unexpected-end-tag-treated-as"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "br": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "br"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><br></body></html>",
+        "noQuirksBodyHtml": "<br>"
+      }
+    },
+    {
+      "data": "<bdy><br foo=\"bar\"></body>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,26): expected-one-end-tag-but-got-another"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "bdy": true,
+            "br": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "bdy",
+                    "children": [
+                      {
+                        "tag": "br",
+                        "attrs": [
+                          {
+                            "name": "foo",
+                            "value": "bar"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><bdy><br foo=\"bar\"></bdy></body></html>",
+        "noQuirksBodyHtml": "<bdy><br foo=\"bar\"></bdy>"
+      }
+    },
+    {
+      "data": "<body></body></br foo=\"bar\">",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,28): attributes-in-end-tag",
+        "(1,28): unexpected-end-tag-after-body",
+        "(1,28): unexpected-end-tag-treated-as"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "br": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "br"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><br></body></html>",
+        "noQuirksBodyHtml": "<br>"
+      }
+    },
+    {
+      "data": "<bdy></body><br foo=\"bar\">",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,12): expected-one-end-tag-but-got-another",
+        "(1,26): unexpected-start-tag-after-body",
+        "(1,26): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "bdy": true,
+            "br": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "bdy",
+                    "children": [
+                      {
+                        "tag": "br",
+                        "attrs": [
+                          {
+                            "name": "foo",
+                            "value": "bar"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><bdy><br foo=\"bar\"></bdy></body></html>",
+        "noQuirksBodyHtml": "<bdy><br foo=\"bar\"></bdy>"
+      }
+    },
+    {
+      "data": "<html><body></body></html><!-- Hi there -->",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          },
+          {
+            "comment": " Hi there "
+          }
+        ],
+        "html": "<html><head></head><body></body></html><!-- Hi there -->",
+        "noQuirksBodyHtml": "<!-- Hi there -->"
+      }
+    },
+    {
+      "data": "<html><body></body></html>x<!-- Hi there -->",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,27): expected-eof-but-got-char"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "x"
+                  },
+                  {
+                    "comment": " Hi there "
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>x<!-- Hi there --></body></html>",
+        "noQuirksBodyHtml": "x<!-- Hi there -->"
+      }
+    },
+    {
+      "data": "<html><body></body></html>x<!-- Hi there --></html><!-- Again -->",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,27): expected-eof-but-got-char"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "x"
+                  },
+                  {
+                    "comment": " Hi there "
+                  }
+                ]
+              }
+            ]
+          },
+          {
+            "comment": " Again "
+          }
+        ],
+        "html": "<html><head></head><body>x<!-- Hi there --></body></html><!-- Again -->",
+        "noQuirksBodyHtml": "x<!-- Hi there --><!-- Again -->"
+      }
+    },
+    {
+      "data": "<html><body></body></html>x<!-- Hi there --></body></html><!-- Again -->",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,27): expected-eof-but-got-char"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          },
+          "comment": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "x"
+                  },
+                  {
+                    "comment": " Hi there "
+                  }
+                ]
+              }
+            ]
+          },
+          {
+            "comment": " Again "
+          }
+        ],
+        "html": "<html><head></head><body>x<!-- Hi there --></body></html><!-- Again -->",
+        "noQuirksBodyHtml": "x<!-- Hi there --><!-- Again -->"
+      }
+    },
+    {
+      "data": "<html><body><ruby><div><rp>xx</rp></div></ruby></body></html>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,27): XXX-undefined-error"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "ruby": true,
+            "div": true,
+            "rp": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "ruby",
+                    "children": [
+                      {
+                        "tag": "div",
+                        "children": [
+                          {
+                            "tag": "rp",
+                            "children": [
+                              {
+                                "text": "xx"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><ruby><div><rp>xx</rp></div></ruby></body></html>",
+        "noQuirksBodyHtml": "<ruby><div><rp>xx</rp></div></ruby>"
+      }
+    },
+    {
+      "data": "<html><body><ruby><div><rt>xx</rt></div></ruby></body></html>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,27): XXX-undefined-error"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "ruby": true,
+            "div": true,
+            "rt": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "ruby",
+                    "children": [
+                      {
+                        "tag": "div",
+                        "children": [
+                          {
+                            "tag": "rt",
+                            "children": [
+                              {
+                                "text": "xx"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><ruby><div><rt>xx</rt></div></ruby></body></html>",
+        "noQuirksBodyHtml": "<ruby><div><rt>xx</rt></div></ruby>"
+      }
+    },
+    {
+      "data": "<html><frameset><!--1--><noframes>A</noframes><!--2--></frameset><!--3--><noframes>B</noframes><!--4--></html><!--5--><noframes>C</noframes><!--6-->",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true,
+            "noframes": true
+          },
+          "comment": true,
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset",
+                "children": [
+                  {
+                    "comment": "1"
+                  },
+                  {
+                    "tag": "noframes",
+                    "children": [
+                      {
+                        "text": "A",
+                        "no_escape": true
+                      }
+                    ]
+                  },
+                  {
+                    "comment": "2"
+                  }
+                ]
+              },
+              {
+                "comment": "3"
+              },
+              {
+                "tag": "noframes",
+                "children": [
+                  {
+                    "text": "B",
+                    "no_escape": true
+                  }
+                ]
+              },
+              {
+                "comment": "4"
+              },
+              {
+                "tag": "noframes",
+                "children": [
+                  {
+                    "text": "C",
+                    "no_escape": true
+                  }
+                ]
+              }
+            ]
+          },
+          {
+            "comment": "5"
+          },
+          {
+            "comment": "6"
+          }
+        ],
+        "html": "<html><head></head><frameset><!--1--><noframes>A</noframes><!--2--></frameset><!--3--><noframes>B</noframes><!--4--><noframes>C</noframes></html><!--5--><!--6-->",
+        "noQuirksBodyHtml": "<!--1--><noframes>A</noframes><!--2--><!--3--><noframes>B</noframes><!--4--><!--5--><noframes>C</noframes><!--6-->"
+      }
+    },
+    {
+      "data": "<select><option>A<select><option>B<select><option>C<select><option>D<select><option>E<select><option>F<select><option>G<select>",
+      "errors": [
+        "(1,8): expected-doctype-but-got-start-tag",
+        "(1,25): unexpected-select-in-select",
+        "(1,59): unexpected-select-in-select",
+        "(1,93): unexpected-select-in-select",
+        "(1,127): unexpected-select-in-select",
+        "(1,127): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "select": true,
+            "option": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "select",
+                    "children": [
+                      {
+                        "tag": "option",
+                        "children": [
+                          {
+                            "text": "A"
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "option",
+                    "children": [
+                      {
+                        "text": "B"
+                      },
+                      {
+                        "tag": "select",
+                        "children": [
+                          {
+                            "tag": "option",
+                            "children": [
+                              {
+                                "text": "C"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "option",
+                    "children": [
+                      {
+                        "text": "D"
+                      },
+                      {
+                        "tag": "select",
+                        "children": [
+                          {
+                            "tag": "option",
+                            "children": [
+                              {
+                                "text": "E"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "option",
+                    "children": [
+                      {
+                        "text": "F"
+                      },
+                      {
+                        "tag": "select",
+                        "children": [
+                          {
+                            "tag": "option",
+                            "children": [
+                              {
+                                "text": "G"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><select><option>A</option></select><option>B<select><option>C</option></select></option><option>D<select><option>E</option></select></option><option>F<select><option>G</option></select></option></body></html>",
+        "noQuirksBodyHtml": "<select><option>A</option></select><option>B<select><option>C</option></select></option><option>D<select><option>E</option></select></option><option>F<select><option>G</option></select></option>"
+      }
+    },
+    {
+      "data": "<dd><dd><dt><dt><dd><li><li>",
+      "errors": [
+        "(1,4): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "dd": true,
+            "dt": true,
+            "li": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "dd"
+                  },
+                  {
+                    "tag": "dd"
+                  },
+                  {
+                    "tag": "dt"
+                  },
+                  {
+                    "tag": "dt"
+                  },
+                  {
+                    "tag": "dd",
+                    "children": [
+                      {
+                        "tag": "li"
+                      },
+                      {
+                        "tag": "li"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><dd></dd><dd></dd><dt></dt><dt></dt><dd><li></li><li></li></dd></body></html>",
+        "noQuirksBodyHtml": "<dd></dd><dd></dd><dt></dt><dt></dt><dd><li></li><li></li></dd>"
+      }
+    },
+    {
+      "data": "<div><b></div><div><nobr>a<nobr>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,14): end-tag-too-early",
+        "(1,32): unexpected-start-tag-implies-end-tag",
+        "(1,32): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true,
+            "b": true,
+            "nobr": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "tag": "b"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "tag": "b",
+                        "children": [
+                          {
+                            "tag": "nobr",
+                            "children": [
+                              {
+                                "text": "a"
+                              }
+                            ]
+                          },
+                          {
+                            "tag": "nobr"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div><b></b></div><div><b><nobr>a</nobr><nobr></nobr></b></div></body></html>",
+        "noQuirksBodyHtml": "<div><b></b></div><div><b><nobr>a</nobr><nobr></nobr></b></div>"
+      }
+    },
+    {
+      "data": "<head></head>\n<body></body>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "text": "\n"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head>\n<body></body></html>",
+        "noQuirksBodyHtml": "\n"
+      }
+    },
+    {
+      "data": "<head></head> <style></style>ddd",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,21): unexpected-start-tag-out-of-my-head"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "style": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head",
+                "children": [
+                  {
+                    "tag": "style"
+                  }
+                ]
+              },
+              {
+                "text": " "
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "ddd"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head><style></style></head> <body>ddd</body></html>",
+        "noQuirksBodyHtml": " <style></style>ddd"
+      }
+    },
+    {
+      "data": "<kbd><table></kbd><col><select><tr>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,18): unexpected-end-tag-implies-table-voodoo",
+        "(1,18): unexpected-end-tag",
+        "(1,31): unexpected-start-tag-implies-table-voodoo",
+        "(1,35): unexpected-table-element-start-tag-in-select-in-table",
+        "(1,35): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "kbd": true,
+            "select": true,
+            "table": true,
+            "colgroup": true,
+            "col": true,
+            "tbody": true,
+            "tr": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "kbd",
+                    "children": [
+                      {
+                        "tag": "select"
+                      },
+                      {
+                        "tag": "table",
+                        "children": [
+                          {
+                            "tag": "colgroup",
+                            "children": [
+                              {
+                                "tag": "col"
+                              }
+                            ]
+                          },
+                          {
+                            "tag": "tbody",
+                            "children": [
+                              {
+                                "tag": "tr"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><kbd><select></select><table><colgroup><col></colgroup><tbody><tr></tr></tbody></table></kbd></body></html>",
+        "noQuirksBodyHtml": "<kbd><select></select><table><colgroup><col></colgroup><tbody><tr></tr></tbody></table></kbd>"
+      }
+    },
+    {
+      "data": "<kbd><table></kbd><col><select><tr></table><div>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,18): unexpected-end-tag-implies-table-voodoo",
+        "(1,18): unexpected-end-tag",
+        "(1,31): unexpected-start-tag-implies-table-voodoo",
+        "(1,35): unexpected-table-element-start-tag-in-select-in-table",
+        "(1,48): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "kbd": true,
+            "select": true,
+            "table": true,
+            "colgroup": true,
+            "col": true,
+            "tbody": true,
+            "tr": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "kbd",
+                    "children": [
+                      {
+                        "tag": "select"
+                      },
+                      {
+                        "tag": "table",
+                        "children": [
+                          {
+                            "tag": "colgroup",
+                            "children": [
+                              {
+                                "tag": "col"
+                              }
+                            ]
+                          },
+                          {
+                            "tag": "tbody",
+                            "children": [
+                              {
+                                "tag": "tr"
+                              }
+                            ]
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "div"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><kbd><select></select><table><colgroup><col></colgroup><tbody><tr></tr></tbody></table><div></div></kbd></body></html>",
+        "noQuirksBodyHtml": "<kbd><select></select><table><colgroup><col></colgroup><tbody><tr></tr></tbody></table><div></div></kbd>"
+      }
+    },
+    {
+      "data": "<a><li><style></style><title></title></a>",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,41): adoption-agency-1.3"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "a": true,
+            "li": true,
+            "style": true,
+            "title": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "a"
+                  },
+                  {
+                    "tag": "li",
+                    "children": [
+                      {
+                        "tag": "a",
+                        "children": [
+                          {
+                            "tag": "style"
+                          },
+                          {
+                            "tag": "title"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><a></a><li><a><style></style><title></title></a></li></body></html>",
+        "noQuirksBodyHtml": "<a></a><li><a><style></style><title></title></a></li>"
+      }
+    },
+    {
+      "data": "<font></p><p><meta><title></title></font>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,10): unexpected-end-tag",
+        "(1,41): adoption-agency-1.3"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "font": true,
+            "p": true,
+            "meta": true,
+            "title": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "font",
+                    "children": [
+                      {
+                        "tag": "p"
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "p",
+                    "children": [
+                      {
+                        "tag": "font",
+                        "children": [
+                          {
+                            "tag": "meta"
+                          },
+                          {
+                            "tag": "title"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><font><p></p></font><p><font><meta><title></title></font></p></body></html>",
+        "noQuirksBodyHtml": "<font><p></p></font><p><font><meta><title></title></font></p>"
+      }
+    },
+    {
+      "data": "<a><center><title></title><a>",
+      "errors": [
+        "(1,3): expected-doctype-but-got-start-tag",
+        "(1,29): unexpected-start-tag-implies-end-tag",
+        "(1,29): adoption-agency-1.3",
+        "(1,29): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "a": true,
+            "center": true,
+            "title": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "a"
+                  },
+                  {
+                    "tag": "center",
+                    "children": [
+                      {
+                        "tag": "a",
+                        "children": [
+                          {
+                            "tag": "title"
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "a"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><a></a><center><a><title></title></a><a></a></center></body></html>",
+        "noQuirksBodyHtml": "<a></a><center><a><title></title></a><a></a></center>"
+      }
+    },
+    {
+      "data": "<svg><title><div>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,17): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true,
+            "svg title": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "tag": "title",
+                        "ns": "http://www.w3.org/2000/svg",
+                        "children": [
+                          {
+                            "tag": "div"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg><title><div></div></title></svg></body></html>",
+        "noQuirksBodyHtml": "<svg><title><div></div></title></svg>"
+      }
+    },
+    {
+      "data": "<svg><title><rect><div>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,23): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true,
+            "svg title": true,
+            "rect": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "tag": "title",
+                        "ns": "http://www.w3.org/2000/svg",
+                        "children": [
+                          {
+                            "tag": "rect",
+                            "children": [
+                              {
+                                "tag": "div"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg><title><rect><div></div></rect></title></svg></body></html>",
+        "noQuirksBodyHtml": "<svg><title><rect><div></div></rect></title></svg>"
+      }
+    },
+    {
+      "data": "<svg><title><svg><div>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,22): unexpected-html-element-in-foreign-content",
+        "(1,22): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true,
+            "svg title": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "tag": "title",
+                        "ns": "http://www.w3.org/2000/svg",
+                        "children": [
+                          {
+                            "tag": "svg",
+                            "ns": "http://www.w3.org/2000/svg"
+                          },
+                          {
+                            "tag": "div"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg><title><svg></svg><div></div></title></svg></body></html>",
+        "noQuirksBodyHtml": "<svg><title><svg><div></div></svg></title></svg>"
+      }
+    },
+    {
+      "data": "<img <=\"\" FAIL>",
+      "errors": [
+        "(1,6): invalid-character-in-attribute-name",
+        "(1,15): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "img": true
+          },
+          "attrWithFunnyChar": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "img",
+                    "attrs": [
+                      {
+                        "name": "<",
+                        "value": ""
+                      },
+                      {
+                        "name": "fail",
+                        "value": ""
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><img <=\"\" fail=\"\"></body></html>",
+        "noQuirksBodyHtml": "<img <=\"\" fail=\"\">"
+      }
+    },
+    {
+      "data": "<ul><li><div id='foo'/>A</li><li>B<div>C</div></li></ul>",
+      "errors": [
+        "(1,4): expected-doctype-but-got-start-tag",
+        "(1,23): non-void-element-with-trailing-solidus",
+        "(1,29): end-tag-too-early"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "ul": true,
+            "li": true,
+            "div": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "ul",
+                    "children": [
+                      {
+                        "tag": "li",
+                        "children": [
+                          {
+                            "tag": "div",
+                            "attrs": [
+                              {
+                                "name": "id",
+                                "value": "foo"
+                              }
+                            ],
+                            "children": [
+                              {
+                                "text": "A"
+                              }
+                            ]
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "li",
+                        "children": [
+                          {
+                            "text": "B"
+                          },
+                          {
+                            "tag": "div",
+                            "children": [
+                              {
+                                "text": "C"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><ul><li><div id=\"foo\">A</div></li><li>B<div>C</div></li></ul></body></html>",
+        "noQuirksBodyHtml": "<ul><li><div id=\"foo\">A</div></li><li>B<div>C</div></li></ul>"
+      }
+    },
+    {
+      "data": "<svg><em><desc></em>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,9): unexpected-html-element-in-foreign-content",
+        "(1,20): adoption-agency-1.3"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true,
+            "em": true,
+            "desc": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg"
+                  },
+                  {
+                    "tag": "em",
+                    "children": [
+                      {
+                        "tag": "desc"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg></svg><em><desc></desc></em></body></html>",
+        "noQuirksBodyHtml": "<svg><em><desc></desc></em></svg>"
+      }
+    },
+    {
+      "data": "<table><tr><td><svg><desc><td></desc><circle>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true,
+            "svg svg": true,
+            "svg desc": true,
+            "circle": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td",
+                                "children": [
+                                  {
+                                    "tag": "svg",
+                                    "ns": "http://www.w3.org/2000/svg",
+                                    "children": [
+                                      {
+                                        "tag": "desc",
+                                        "ns": "http://www.w3.org/2000/svg"
+                                      }
+                                    ]
+                                  }
+                                ]
+                              },
+                              {
+                                "tag": "td",
+                                "children": [
+                                  {
+                                    "tag": "circle"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><tbody><tr><td><svg><desc></desc></svg></td><td><circle></circle></td></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<table><tbody><tr><td><svg><desc></desc></svg></td><td><circle></circle></td></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<svg><tfoot></mi><td>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag",
+        "(1,17): unexpected-end-tag",
+        "(1,17): unexpected-end-tag",
+        "(1,21): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true,
+            "svg tfoot": true,
+            "svg td": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "tag": "tfoot",
+                        "ns": "http://www.w3.org/2000/svg",
+                        "children": [
+                          {
+                            "tag": "td",
+                            "ns": "http://www.w3.org/2000/svg"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg><tfoot><td></td></tfoot></svg></body></html>",
+        "noQuirksBodyHtml": "<svg><tfoot><td></td></tfoot></svg>"
+      }
+    },
+    {
+      "data": "<math><mrow><mrow><mn>1</mn></mrow><mi>a</mi></mrow></math>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "math math": true,
+            "math mrow": true,
+            "math mn": true,
+            "math mi": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "math",
+                    "ns": "http://www.w3.org/1998/Math/MathML",
+                    "children": [
+                      {
+                        "tag": "mrow",
+                        "ns": "http://www.w3.org/1998/Math/MathML",
+                        "children": [
+                          {
+                            "tag": "mrow",
+                            "ns": "http://www.w3.org/1998/Math/MathML",
+                            "children": [
+                              {
+                                "tag": "mn",
+                                "ns": "http://www.w3.org/1998/Math/MathML",
+                                "children": [
+                                  {
+                                    "text": "1"
+                                  }
+                                ]
+                              }
+                            ]
+                          },
+                          {
+                            "tag": "mi",
+                            "ns": "http://www.w3.org/1998/Math/MathML",
+                            "children": [
+                              {
+                                "text": "a"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><math><mrow><mrow><mn>1</mn></mrow><mi>a</mi></mrow></math></body></html>",
+        "noQuirksBodyHtml": "<math><mrow><mrow><mn>1</mn></mrow><mi>a</mi></mrow></math>"
+      }
+    },
+    {
+      "data": "<!doctype html><input type=\"hidden\"><frameset>",
+      "errors": [
+        "(1,46): unexpected-start-tag",
+        "(1,46): eof-in-frameset"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "frameset": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "frameset"
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><frameset></frameset></html>",
+        "noQuirksBodyHtml": "<input type=\"hidden\">"
+      }
+    },
+    {
+      "data": "<!doctype html><input type=\"button\"><frameset>",
+      "errors": [
+        "(1,46): unexpected-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "input": true
+          },
+          "doctype": true
+        },
+        "tree": [
+          {
+            "doctype": "html"
+          },
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "input",
+                    "attrs": [
+                      {
+                        "name": "type",
+                        "value": "button"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<!DOCTYPE html><html><head></head><body><input type=\"button\"></body></html>",
+        "noQuirksBodyHtml": "<input type=\"button\">"
+      }
+    }
+  ],
+  "webkit02.dat": [
+    {
+      "data": "<foo bar=qux/>",
+      "errors": [
+        "(1,14): expected-doctype-but-got-start-tag",
+        "(1,14): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "foo": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "foo",
+                    "attrs": [
+                      {
+                        "name": "bar",
+                        "value": "qux/"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><foo bar=\"qux/\"></foo></body></html>",
+        "noQuirksBodyHtml": "<foo bar=\"qux/\"></foo>"
+      }
+    },
+    {
+      "data": "<p id=\"status\"><noscript><strong>A</strong></noscript><span>B</span></p>",
+      "errors": [
+        "(1,15): expected-doctype-but-got-start-tag"
+      ],
+      "script": "on",
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "noscript": true,
+            "span": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "attrs": [
+                      {
+                        "name": "id",
+                        "value": "status"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "tag": "noscript",
+                        "children": [
+                          {
+                            "text": "<strong>A</strong>",
+                            "no_escape": true
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "span",
+                        "children": [
+                          {
+                            "text": "B"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><p id=\"status\"><noscript><strong>A</strong></noscript><span>B</span></p></body></html>",
+        "noQuirksBodyHtml": "<p id=\"status\"><noscript>&lt;strong&gt;A&lt;/strong&gt;</noscript><span>B</span></p>"
+      }
+    },
+    {
+      "data": "<p id=\"status\"><noscript><strong>A</strong></noscript><span>B</span></p>",
+      "errors": [
+        "(1,15): expected-doctype-but-got-start-tag"
+      ],
+      "script": "off",
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "p": true,
+            "noscript": true,
+            "strong": true,
+            "span": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "p",
+                    "attrs": [
+                      {
+                        "name": "id",
+                        "value": "status"
+                      }
+                    ],
+                    "children": [
+                      {
+                        "tag": "noscript",
+                        "children": [
+                          {
+                            "tag": "strong",
+                            "children": [
+                              {
+                                "text": "A"
+                              }
+                            ]
+                          }
+                        ]
+                      },
+                      {
+                        "tag": "span",
+                        "children": [
+                          {
+                            "text": "B"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><p id=\"status\"><noscript><strong>A</strong></noscript><span>B</span></p></body></html>",
+        "noQuirksBodyHtml": "<p id=\"status\"><noscript>&lt;strong&gt;A&lt;/strong&gt;</noscript><span>B</span></p>"
+      }
+    },
+    {
+      "data": "<div><sarcasm><div></div></sarcasm></div>",
+      "errors": [
+        "(1,5): expected-doctype-but-got-start-tag"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "div": true,
+            "sarcasm": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "div",
+                    "children": [
+                      {
+                        "tag": "sarcasm",
+                        "children": [
+                          {
+                            "tag": "div"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><div><sarcasm><div></div></sarcasm></div></body></html>",
+        "noQuirksBodyHtml": "<div><sarcasm><div></div></sarcasm></div>"
+      }
+    },
+    {
+      "data": "<html><body><img src=\"\" border=\"0\" alt=\"><div>A</div></body></html>",
+      "errors": [
+        "(1,6): expected-doctype-but-got-start-tag",
+        "(1,67): eof-in-attribute-value-double-quote"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body"
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body></body></html>",
+        "noQuirksBodyHtml": ""
+      }
+    },
+    {
+      "data": "<table><td></tbody>A",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,11): unexpected-cell-in-table-body",
+        "(1,20): foster-parenting-character",
+        "(1,20): eof-in-table"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "text": "A"
+                  },
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body>A<table><tbody><tr><td></td></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "A<table><tbody><tr><td></td></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<table><td></thead>A",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,11): unexpected-cell-in-table-body",
+        "(1,19): XXX-undefined-error",
+        "(1,20): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td",
+                                "children": [
+                                  {
+                                    "text": "A"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><tbody><tr><td>A</td></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<table><tbody><tr><td>A</td></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<table><td></tfoot>A",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,11): unexpected-cell-in-table-body",
+        "(1,19): XXX-undefined-error",
+        "(1,20): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "tbody": true,
+            "tr": true,
+            "td": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "tbody",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td",
+                                "children": [
+                                  {
+                                    "text": "A"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><tbody><tr><td>A</td></tr></tbody></table></body></html>",
+        "noQuirksBodyHtml": "<table><tbody><tr><td>A</td></tr></tbody></table>"
+      }
+    },
+    {
+      "data": "<table><thead><td></tbody>A",
+      "errors": [
+        "(1,7): expected-doctype-but-got-start-tag",
+        "(1,18): unexpected-cell-in-table-body",
+        "(1,26): XXX-undefined-error",
+        "(1,27): expected-closing-tag-but-got-eof"
+      ],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "table": true,
+            "thead": true,
+            "tr": true,
+            "td": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "table",
+                    "children": [
+                      {
+                        "tag": "thead",
+                        "children": [
+                          {
+                            "tag": "tr",
+                            "children": [
+                              {
+                                "tag": "td",
+                                "children": [
+                                  {
+                                    "text": "A"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><table><thead><tr><td>A</td></tr></thead></table></body></html>",
+        "noQuirksBodyHtml": "<table><thead><tr><td>A</td></tr></thead></table>"
+      }
+    },
+    {
+      "data": "<legend>test</legend>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "legend": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "legend",
+                    "children": [
+                      {
+                        "text": "test"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><legend>test</legend></body></html>",
+        "noQuirksBodyHtml": "<legend>test</legend>"
+      }
+    },
+    {
+      "data": "<table><input>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "input": true,
+            "table": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "input"
+                  },
+                  {
+                    "tag": "table"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><input><table></table></body></html>",
+        "noQuirksBodyHtml": "<input><table></table>"
+      }
+    },
+    {
+      "data": "<b><em><foo><foo><aside></b>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "b": true,
+            "em": true,
+            "foo": true,
+            "aside": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "b",
+                    "children": [
+                      {
+                        "tag": "em",
+                        "children": [
+                          {
+                            "tag": "foo",
+                            "children": [
+                              {
+                                "tag": "foo"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "em",
+                    "children": [
+                      {
+                        "tag": "aside",
+                        "children": [
+                          {
+                            "tag": "b"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><b><em><foo><foo></foo></foo></em></b><em><aside><b></b></aside></em></body></html>",
+        "noQuirksBodyHtml": "<b><em><foo><foo></foo></foo></em></b><em><aside><b></b></aside></em>"
+      }
+    },
+    {
+      "data": "<b><em><foo><foo><aside></b></em>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "b": true,
+            "em": true,
+            "foo": true,
+            "aside": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "b",
+                    "children": [
+                      {
+                        "tag": "em",
+                        "children": [
+                          {
+                            "tag": "foo",
+                            "children": [
+                              {
+                                "tag": "foo"
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "em"
+                  },
+                  {
+                    "tag": "aside",
+                    "children": [
+                      {
+                        "tag": "em",
+                        "children": [
+                          {
+                            "tag": "b"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><b><em><foo><foo></foo></foo></em></b><em></em><aside><em><b></b></em></aside></body></html>",
+        "noQuirksBodyHtml": "<b><em><foo><foo></foo></foo></em></b><em></em><aside><em><b></b></em></aside>"
+      }
+    },
+    {
+      "data": "<b><em><foo><foo><foo><aside></b>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "b": true,
+            "em": true,
+            "foo": true,
+            "aside": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "b",
+                    "children": [
+                      {
+                        "tag": "em",
+                        "children": [
+                          {
+                            "tag": "foo",
+                            "children": [
+                              {
+                                "tag": "foo",
+                                "children": [
+                                  {
+                                    "tag": "foo"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "aside",
+                    "children": [
+                      {
+                        "tag": "b"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><b><em><foo><foo><foo></foo></foo></foo></em></b><aside><b></b></aside></body></html>",
+        "noQuirksBodyHtml": "<b><em><foo><foo><foo></foo></foo></foo></em></b><aside><b></b></aside>"
+      }
+    },
+    {
+      "data": "<b><em><foo><foo><foo><aside></b></em>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "b": true,
+            "em": true,
+            "foo": true,
+            "aside": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "b",
+                    "children": [
+                      {
+                        "tag": "em",
+                        "children": [
+                          {
+                            "tag": "foo",
+                            "children": [
+                              {
+                                "tag": "foo",
+                                "children": [
+                                  {
+                                    "tag": "foo"
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  },
+                  {
+                    "tag": "aside",
+                    "children": [
+                      {
+                        "tag": "b"
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><b><em><foo><foo><foo></foo></foo></foo></em></b><aside><b></b></aside></body></html>",
+        "noQuirksBodyHtml": "<b><em><foo><foo><foo></foo></foo></foo></em></b><aside><b></b></aside>"
+      }
+    },
+    {
+      "data": "<b><em><foo><foo><foo><foo><foo><foo><foo><foo><foo><foo><aside></b></em>",
+      "errors": [],
+      "fragment": {
+        "name": "div"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "b": true,
+            "em": true,
+            "foo": true,
+            "aside": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "b",
+            "children": [
+              {
+                "tag": "em",
+                "children": [
+                  {
+                    "tag": "foo",
+                    "children": [
+                      {
+                        "tag": "foo",
+                        "children": [
+                          {
+                            "tag": "foo",
+                            "children": [
+                              {
+                                "tag": "foo",
+                                "children": [
+                                  {
+                                    "tag": "foo",
+                                    "children": [
+                                      {
+                                        "tag": "foo",
+                                        "children": [
+                                          {
+                                            "tag": "foo",
+                                            "children": [
+                                              {
+                                                "tag": "foo",
+                                                "children": [
+                                                  {
+                                                    "tag": "foo",
+                                                    "children": [
+                                                      {
+                                                        "tag": "foo"
+                                                      }
+                                                    ]
+                                                  }
+                                                ]
+                                              }
+                                            ]
+                                          }
+                                        ]
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          },
+          {
+            "tag": "aside",
+            "children": [
+              {
+                "tag": "b"
+              }
+            ]
+          }
+        ],
+        "html": "<b><em><foo><foo><foo><foo><foo><foo><foo><foo><foo><foo></foo></foo></foo></foo></foo></foo></foo></foo></foo></foo></em></b><aside><b></b></aside>",
+        "noQuirksBodyHtml": "<b><em><foo><foo><foo><foo><foo><foo><foo><foo><foo><foo></foo></foo></foo></foo></foo></foo></foo></foo></foo></foo></em></b><aside><b></b></aside>"
+      }
+    },
+    {
+      "data": "<b><em><foo><foob><foob><foob><foob><fooc><fooc><fooc><fooc><food><aside></b></em>",
+      "errors": [],
+      "fragment": {
+        "name": "div"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "b": true,
+            "em": true,
+            "foo": true,
+            "foob": true,
+            "fooc": true,
+            "food": true,
+            "aside": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "b",
+            "children": [
+              {
+                "tag": "em",
+                "children": [
+                  {
+                    "tag": "foo",
+                    "children": [
+                      {
+                        "tag": "foob",
+                        "children": [
+                          {
+                            "tag": "foob",
+                            "children": [
+                              {
+                                "tag": "foob",
+                                "children": [
+                                  {
+                                    "tag": "foob",
+                                    "children": [
+                                      {
+                                        "tag": "fooc",
+                                        "children": [
+                                          {
+                                            "tag": "fooc",
+                                            "children": [
+                                              {
+                                                "tag": "fooc",
+                                                "children": [
+                                                  {
+                                                    "tag": "fooc",
+                                                    "children": [
+                                                      {
+                                                        "tag": "food"
+                                                      }
+                                                    ]
+                                                  }
+                                                ]
+                                              }
+                                            ]
+                                          }
+                                        ]
+                                      }
+                                    ]
+                                  }
+                                ]
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          },
+          {
+            "tag": "aside",
+            "children": [
+              {
+                "tag": "b"
+              }
+            ]
+          }
+        ],
+        "html": "<b><em><foo><foob><foob><foob><foob><fooc><fooc><fooc><fooc><food></food></fooc></fooc></fooc></fooc></foob></foob></foob></foob></foo></em></b><aside><b></b></aside>",
+        "noQuirksBodyHtml": "<b><em><foo><foob><foob><foob><foob><fooc><fooc><fooc><fooc><food></food></fooc></fooc></fooc></fooc></foob></foob></foob></foob></foo></em></b><aside><b></b></aside>"
+      }
+    },
+    {
+      "data": "<isindex action=\"x\">",
+      "errors": [],
+      "fragment": {
+        "name": "table"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "form": true,
+            "hr": true,
+            "label": true,
+            "input": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "form",
+            "attrs": [
+              {
+                "name": "action",
+                "value": "x"
+              }
+            ],
+            "children": [
+              {
+                "tag": "hr"
+              },
+              {
+                "tag": "label",
+                "children": [
+                  {
+                    "text": "This is a searchable index. Enter search keywords: "
+                  },
+                  {
+                    "tag": "input",
+                    "attrs": [
+                      {
+                        "name": "name",
+                        "value": "isindex"
+                      }
+                    ]
+                  }
+                ]
+              },
+              {
+                "tag": "hr"
+              }
+            ]
+          }
+        ],
+        "html": "<form action=\"x\"><hr><label>This is a searchable index. Enter search keywords: <input name=\"isindex\"></label><hr></form>",
+        "noQuirksBodyHtml": "<form action=\"x\"><hr><label>This is a searchable index. Enter search keywords: <input name=\"isindex\"></label><hr></form>"
+      }
+    },
+    {
+      "data": "<option><XH<optgroup></optgroup>",
+      "errors": [],
+      "fragment": {
+        "name": "select"
+      },
+      "document": {
+        "props": {
+          "tags": {
+            "option": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "option"
+          }
+        ],
+        "html": "<option></option>",
+        "noQuirksBodyHtml": "<option><xh<optgroup></xh<optgroup></option>"
+      }
+    },
+    {
+      "data": "<svg><foreignObject><div>foo</div><plaintext></foreignObject></svg><div>bar</div>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true,
+            "svg foreignObject": true,
+            "div": true,
+            "plaintext": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "tag": "foreignObject",
+                        "ns": "http://www.w3.org/2000/svg",
+                        "children": [
+                          {
+                            "tag": "div",
+                            "children": [
+                              {
+                                "text": "foo"
+                              }
+                            ]
+                          },
+                          {
+                            "tag": "plaintext",
+                            "children": [
+                              {
+                                "text": "</foreignObject></svg><div>bar</div>",
+                                "no_escape": true
+                              }
+                            ]
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg><foreignObject><div>foo</div><plaintext></foreignObject></svg><div>bar</div></plaintext></foreignObject></svg></body></html>",
+        "noQuirksBodyHtml": "<svg><foreignObject><div>foo</div><plaintext></foreignObject></svg><div>bar</div></plaintext></foreignObject></svg>"
+      }
+    },
+    {
+      "data": "<svg><foreignObject></foreignObject><title></svg>foo",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "svg svg": true,
+            "svg foreignObject": true,
+            "svg title": true
+          }
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "svg",
+                    "ns": "http://www.w3.org/2000/svg",
+                    "children": [
+                      {
+                        "tag": "foreignObject",
+                        "ns": "http://www.w3.org/2000/svg"
+                      },
+                      {
+                        "tag": "title",
+                        "ns": "http://www.w3.org/2000/svg"
+                      }
+                    ]
+                  },
+                  {
+                    "text": "foo"
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><svg><foreignObject></foreignObject><title></title></svg>foo</body></html>",
+        "noQuirksBodyHtml": "<svg><foreignObject></foreignObject><title></title></svg>foo"
+      }
+    },
+    {
+      "data": "</foreignObject><plaintext><div>foo</div>",
+      "errors": [],
+      "document": {
+        "props": {
+          "tags": {
+            "html": true,
+            "head": true,
+            "body": true,
+            "plaintext": true
+          },
+          "no_escape": true
+        },
+        "tree": [
+          {
+            "tag": "html",
+            "children": [
+              {
+                "tag": "head"
+              },
+              {
+                "tag": "body",
+                "children": [
+                  {
+                    "tag": "plaintext",
+                    "children": [
+                      {
+                        "text": "<div>foo</div>",
+                        "no_escape": true
+                      }
+                    ]
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        "html": "<html><head></head><body><plaintext><div>foo</div></plaintext></body></html>",
+        "noQuirksBodyHtml": "<plaintext><div>foo</div></plaintext>"
+      }
+    }
+  ]
+}
diff --git a/tests/phpunit/includes/title/MediaWikiPageLinkRendererTest.php b/tests/phpunit/includes/title/MediaWikiPageLinkRendererTest.php
deleted file mode 100644 (file)
index c79471d..0000000
+++ /dev/null
@@ -1,168 +0,0 @@
-<?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
- *
- * @file
- * @author Daniel Kinzler
- */
-
-/**
- * @covers MediaWikiPageLinkRenderer
- *
- * @group Title
- * @group Database
- */
-class MediaWikiPageLinkRendererTest extends MediaWikiTestCase {
-
-       protected function setUp() {
-               parent::setUp();
-
-               $this->setMwGlobals( [
-                       'wgContLang' => Language::factory( 'en' ),
-               ] );
-       }
-
-       /**
-        * Returns a mock GenderCache that will return "female" always.
-        *
-        * @return GenderCache
-        */
-       private function getGenderCache() {
-               $genderCache = $this->getMockBuilder( 'GenderCache' )
-                       ->disableOriginalConstructor()
-                       ->getMock();
-
-               $genderCache->expects( $this->any() )
-                       ->method( 'getGenderOf' )
-                       ->will( $this->returnValue( 'female' ) );
-
-               return $genderCache;
-       }
-
-       public static function provideGetPageUrl() {
-               return [
-                       [
-                               new TitleValue( NS_MAIN, 'Foo_Bar' ),
-                               [],
-                               '/Foo_Bar'
-                       ],
-                       [
-                               new TitleValue( NS_USER, 'Hansi_Maier', 'stuff' ),
-                               [ 'foo' => 'bar' ],
-                               '/User:Hansi_Maier?foo=bar#stuff'
-                       ],
-               ];
-       }
-
-       /**
-        * @dataProvider provideGetPageUrl
-        */
-       public function testGetPageUrl( TitleValue $title, $params, $url ) {
-               // NOTE: was of Feb 2014, MediaWikiPageLinkRenderer *ignores* the
-               // WikitextTitleFormatter we pass here, and relies on the Linker
-               // class for generating the link! This may break the test e.g.
-               // of Linker uses a different language for the namespace names.
-
-               $lang = Language::factory( 'en' );
-
-               $formatter = new MediaWikiTitleCodec( $lang, $this->getGenderCache() );
-               $renderer = new MediaWikiPageLinkRenderer( $formatter, '/' );
-               $actual = $renderer->getPageUrl( $title, $params );
-
-               $this->assertEquals( $url, $actual );
-       }
-
-       public static function provideRenderHtmlLink() {
-               return [
-                       [
-                               new TitleValue( NS_MAIN, 'Foo_Bar' ),
-                               'Foo Bar',
-                               '!<a .*href=".*?Foo_Bar.*?".*?>Foo Bar</a>!'
-                       ],
-                       [
-                               // NOTE: Linker doesn't include fragments in "broken" links
-                               // NOTE: once this no longer uses Linker, we will get "2" instead of "User" for the namespace.
-                               new TitleValue( NS_USER, 'Hansi_Maier', 'stuff' ),
-                               'Hansi Maier\'s Stuff',
-                               '!<a .*href=".*?User:Hansi_Maier.*?>Hansi Maier\'s Stuff</a>!'
-                       ],
-                       [
-                               // NOTE: Linker doesn't include fragments in "broken" links
-                               // NOTE: once this no longer uses Linker, we will get "2" instead of "User" for the namespace.
-                               new TitleValue( NS_USER, 'Hansi_Maier', 'stuff' ),
-                               null,
-                               '!<a .*href=".*?User:Hansi_Maier.*?>User:Hansi Maier#stuff</a>!'
-                       ],
-               ];
-       }
-
-       /**
-        * @dataProvider provideRenderHtmlLink
-        */
-       public function testRenderHtmlLink( TitleValue $title, $text, $pattern ) {
-               // NOTE: was of Feb 2014, MediaWikiPageLinkRenderer *ignores* the
-               // WikitextTitleFormatter we pass here, and relies on the Linker
-               // class for generating the link! This may break the test e.g.
-               // of Linker uses a different language for the namespace names.
-
-               $lang = Language::factory( 'en' );
-
-               $formatter = new MediaWikiTitleCodec( $lang, $this->getGenderCache() );
-               $renderer = new MediaWikiPageLinkRenderer( $formatter );
-               $actual = $renderer->renderHtmlLink( $title, $text );
-
-               $this->assertRegExp( $pattern, $actual );
-       }
-
-       public static function provideRenderWikitextLink() {
-               return [
-                       [
-                               new TitleValue( NS_MAIN, 'Foo_Bar' ),
-                               'Foo Bar',
-                               '[[:0:Foo Bar|Foo Bar]]'
-                       ],
-                       [
-                               new TitleValue( NS_USER, 'Hansi_Maier', 'stuff' ),
-                               'Hansi Maier\'s Stuff',
-                               '[[:2:Hansi Maier#stuff|Hansi Maier&#39;s Stuff]]'
-                       ],
-                       [
-                               new TitleValue( NS_USER, 'Hansi_Maier', 'stuff' ),
-                               null,
-                               '[[:2:Hansi Maier#stuff|2:Hansi Maier#stuff]]'
-                       ],
-               ];
-       }
-
-       /**
-        * @dataProvider provideRenderWikitextLink
-        */
-       public function testRenderWikitextLink( TitleValue $title, $text, $expected ) {
-               $formatter = $this->getMock( 'TitleFormatter' );
-               $formatter->expects( $this->any() )
-                       ->method( 'getFullText' )
-                       ->will( $this->returnCallback(
-                               function ( TitleValue $title ) {
-                                       return str_replace( '_', ' ', "$title" );
-                               }
-                       ) );
-
-               $renderer = new MediaWikiPageLinkRenderer( $formatter, '/' );
-               $actual = $renderer->renderWikitextLink( $title, $text );
-
-               $this->assertEquals( $expected, $actual );
-       }
-}
index 4d914e4..e7ac940 100644 (file)
@@ -355,9 +355,9 @@ class MediaWikiTitleCodecTest extends MediaWikiTestCase {
                        // XML/HTML character entity references
                        // Note: Commented out because they are not marked invalid by the PHP test as
                        // Title::newFromText runs Sanitizer::decodeCharReferencesAndNormalize first.
-                       // array( 'A &eacute; B' ),
-                       // array( 'A &#233; B' ),
-                       // array( 'A &#x00E9; B' ),
+                       // [ 'A &eacute; B' ],
+                       // [ 'A &#233; B' ],
+                       // [ 'A &#x00E9; B' ],
                        // Subject of NS_TALK does not roundtrip to NS_MAIN
                        [ 'Talk:File:Example.svg' ],
                        // Directory navigation
index e0b57a7..9b25505 100644 (file)
@@ -7,7 +7,7 @@
  */
 class UploadStashTest extends MediaWikiTestCase {
        /**
-        * @var array Array of UploadStashTestUser
+        * @var TestUser[] Array of UploadStashTestUser
         */
        public static $users;
 
@@ -55,7 +55,7 @@ class UploadStashTest extends MediaWikiTestCase {
         * @todo give this test a real name explaining what is being tested here
         */
        public function testBug29408() {
-               $this->setMwGlobals( 'wgUser', self::$users['uploader']->user );
+               $this->setMwGlobals( 'wgUser', self::$users['uploader']->getUser() );
 
                $repo = RepoGroup::singleton()->getLocalRepo();
                $stash = new UploadStash( $repo );
index 1ef5082..cfd5f78 100644 (file)
@@ -290,7 +290,7 @@ class BotPasswordTest extends MediaWikiTestCase {
 
                // Wrong password
                $status = BotPassword::login(
-                       "{$this->testUserName}@BotPassword", $this->testUser->password, new FauxRequest );
+                       "{$this->testUserName}@BotPassword", $this->testUser->getPassword(), new FauxRequest );
                $this->assertEquals( Status::newFatal( 'wrongpassword' ), $status );
 
                // Success!
index 9e41a4e..e2e6492 100644 (file)
@@ -638,6 +638,24 @@ class LanguageTest extends LanguageClassesTestCase {
                );
        }
 
+       /**
+        * sprintfDate should only calculate a TTL if the caller is going to use it.
+        * @covers Language::sprintfDate
+        */
+       public function testSprintfDateNoTtlIfNotNeeded() {
+               $noTtl = 'unused'; // Value used to represent that the caller didn't pass a variable in.
+               $ttl = null;
+               $this->getLang()->sprintfDate( 'YmdHis', wfTimestampNow(), null, $noTtl );
+               $this->getLang()->sprintfDate( 'YmdHis', wfTimestampNow(), null, $ttl );
+
+               $this->assertSame(
+                       'unused',
+                       $noTtl,
+                       'If the caller does not set the $ttl variable, do not compute it.'
+               );
+               $this->assertInternalType( 'int', $ttl, 'TTL should have been computed.' );
+       }
+
        public static function provideSprintfDateSamples() {
                return [
                        [
index ac83d4e..1d55ab8 100644 (file)
@@ -25,6 +25,26 @@ abstract class DumpTestCase extends MediaWikiLangTestCase {
         */
        protected $xml = null;
 
+       /** @var bool|null Whether the 'gzip' utility is available */
+       protected static $hasGzip = null;
+
+       /**
+        * Skip the test if 'gzip' is not in $PATH.
+        *
+        * @return bool
+        */
+       protected function checkHasGzip() {
+               if ( self::$hasGzip === null ) {
+                       self::$hasGzip = ( Installer::locateExecutableInDefaultPaths( 'gzip' ) !== false );
+               }
+
+               if ( !self::$hasGzip ) {
+                       $this->markTestSkipped( "Skip test, requires the gzip utility in PATH" );
+               }
+
+               return self::$hasGzip;
+       }
+
        /**
         * Adds a revision to a page, while returning the resuting revision's id
         *
index b110e21..99992fe 100644 (file)
@@ -76,18 +76,30 @@ class MockOggHandler extends OggHandlerTMH {
        }
 
        function getLength( $file ) {
+               if ( $this->isAudio( $file ) ) {
+                       return 0.99875;
+               }
                return 4.3666666666667;
        }
 
        function getBitRate( $file ) {
+               if ( $this->isAudio( $file ) ) {
+                       return 41107;
+               }
                return 590013;
        }
 
        function getWebType( $file ) {
+               if ( $this->isAudio( $file ) ) {
+                       return "audio/ogg; codecs=\"vorbis\"";
+               }
                return "video/ogg; codecs=\"theora\"";
        }
 
        function getFramerate( $file ) {
+               if ( $this->isAudio( $file ) ) {
+                       return 0;
+               }
                return 30;
        }
 }
index d13da60..baaa66b 100755 (executable)
@@ -75,7 +75,7 @@ class PHPUnitMaintClass extends Maintenance {
                global $wgLanguageConverterCacheType, $wgUseDatabaseMessages;
                global $wgLocaltimezone, $wgLocalisationCacheConf;
                global $wgDevelopmentWarnings;
-               global $wgSessionProviders;
+               global $wgSessionProviders, $wgSessionPbkdf2Iterations;
                global $wgJobTypeConf;
                global $wgAuthManagerConfig, $wgAuth, $wgDisableAuthManager;
 
@@ -125,6 +125,9 @@ class PHPUnitMaintClass extends Maintenance {
                        ],
                ];
 
+               // Single-iteration PBKDF2 session secret derivation, for speed.
+               $wgSessionPbkdf2Iterations = 1;
+
                // Generic AuthManager configuration for testing
                $wgAuthManagerConfig = [
                        'preauth' => [],
index 5c65c1e..6446416 100644 (file)
@@ -40,7 +40,7 @@ class ResourcesTest extends MediaWikiTestCase {
                $data = self::getAllModules();
                foreach ( $data['modules'] as $moduleName => $module ) {
                        $version = $module->getVersionHash( $data['context'] );
-                       $this->assertEquals( 8, strlen( $version ), "$moduleName must use ResourceLoader::makeHash" );
+                       $this->assertEquals( 7, strlen( $version ), "$moduleName must use ResourceLoader::makeHash" );
                }
        }
 
index a2d76e0..95f28c8 100644 (file)
@@ -84,6 +84,7 @@ return [
                        'tests/qunit/suites/resources/mediawiki/mediawiki.viewport.test.js',
                        'tests/qunit/suites/resources/mediawiki.api/mediawiki.api.test.js',
                        'tests/qunit/suites/resources/mediawiki.api/mediawiki.api.category.test.js',
+                       'tests/qunit/suites/resources/mediawiki.api/mediawiki.api.edit.test.js',
                        'tests/qunit/suites/resources/mediawiki.api/mediawiki.api.messages.test.js',
                        'tests/qunit/suites/resources/mediawiki.api/mediawiki.api.options.test.js',
                        'tests/qunit/suites/resources/mediawiki.api/mediawiki.api.parse.test.js',
index 1091d09..79f37dc 100644 (file)
@@ -1,5 +1,4 @@
 /*global CompletenessTest, sinon */
-/*jshint evil: true */
 ( function ( $, mw, QUnit ) {
        'use strict';
 
diff --git a/tests/qunit/suites/resources/mediawiki.api/mediawiki.api.edit.test.js b/tests/qunit/suites/resources/mediawiki.api/mediawiki.api.edit.test.js
new file mode 100644 (file)
index 0000000..f83f66c
--- /dev/null
@@ -0,0 +1,153 @@
+( function ( mw, $ ) {
+       QUnit.module( 'mediawiki.api.edit', QUnit.newMwEnvironment( {
+               setup: function () {
+                       this.server = this.sandbox.useFakeServer();
+                       this.server.respondImmediately = true;
+               }
+       } ) );
+
+       QUnit.test( 'edit( title, transform String )', function ( assert ) {
+               this.server.respond( function ( req ) {
+                       if ( /query.+titles=Sandbox/.test( req.url ) ) {
+                               req.respond( 200, { 'Content-Type': 'application/json' }, JSON.stringify( {
+                                       curtimestamp: '2016-01-02T12:00:00Z',
+                                       query: {
+                                               pages: [ {
+                                                       pageid: 1,
+                                                       ns: 0,
+                                                       title:  'Sandbox',
+                                                       revisions: [ {
+                                                               timestamp: '2016-01-01T12:00:00Z',
+                                                               contentformat: 'text/x-wiki',
+                                                               contentmodel: 'wikitext',
+                                                               content: 'Sand.'
+                                                       } ]
+                                               } ]
+                                       }
+                               } ) );
+                       }
+                       if ( /edit.+basetimestamp=2016-01-01.+starttimestamp=2016-01-02.+text=Box%2E/.test( req.requestBody ) ) {
+                               req.respond( 200, { 'Content-Type': 'application/json' }, JSON.stringify( {
+                                       edit: {
+                                               result: 'Success',
+                                               oldrevid: 11,
+                                               newrevid: 13,
+                                               newtimestamp: '2016-01-03T12:00:00Z'
+                                       }
+                               } ) );
+                       }
+               } );
+
+               return new mw.Api()
+                       .edit( 'Sandbox', function ( revision ) {
+                               return revision.content.replace( 'Sand', 'Box' );
+                       } )
+                       .then( function ( edit ) {
+                               assert.equal( edit.newrevid, 13 );
+                       } );
+       } );
+
+       QUnit.test( 'edit( title, transform Promise )', function ( assert ) {
+               this.server.respond( function ( req ) {
+                       if ( /query.+titles=Async/.test( req.url ) ) {
+                               req.respond( 200, { 'Content-Type': 'application/json' }, JSON.stringify( {
+                                       curtimestamp: '2016-02-02T12:00:00Z',
+                                       query: {
+                                               pages: [ {
+                                                       pageid: 4,
+                                                       ns: 0,
+                                                       title:  'Async',
+                                                       revisions: [ {
+                                                               timestamp: '2016-02-01T12:00:00Z',
+                                                               contentformat: 'text/x-wiki',
+                                                               contentmodel: 'wikitext',
+                                                               content: 'Async.'
+                                                       } ]
+                                               } ]
+                                       }
+                               } ) );
+                       }
+                       if ( /edit.+basetimestamp=2016-02-01.+starttimestamp=2016-02-02.+text=Promise%2E/.test( req.requestBody ) ) {
+                               req.respond( 200, { 'Content-Type': 'application/json' }, JSON.stringify( {
+                                       edit: {
+                                               result: 'Success',
+                                               oldrevid: 21,
+                                               newrevid: 23,
+                                               newtimestamp: '2016-02-03T12:00:00Z'
+                                       }
+                               } ) );
+                       }
+               } );
+
+               return new mw.Api()
+                       .edit( 'Async', function ( revision ) {
+                               return $.Deferred().resolve( revision.content.replace( 'Async', 'Promise' ) );
+                       } )
+                       .then( function ( edit ) {
+                               assert.equal( edit.newrevid, 23 );
+                       } );
+       } );
+
+       QUnit.test( 'edit( title, transform Object )', function ( assert ) {
+               this.server.respond( function ( req ) {
+                       if ( /query.+titles=Param/.test( req.url ) ) {
+                               req.respond( 200, { 'Content-Type': 'application/json' }, JSON.stringify( {
+                                       curtimestamp: '2016-03-02T12:00:00Z',
+                                       query: {
+                                               pages: [ {
+                                                       pageid: 3,
+                                                       ns: 0,
+                                                       title:  'Param',
+                                                       revisions: [ {
+                                                               timestamp: '2016-03-01T12:00:00Z',
+                                                               contentformat: 'text/x-wiki',
+                                                               contentmodel: 'wikitext',
+                                                               content: '...'
+                                                       } ]
+                                               } ]
+                                       }
+                               } ) );
+                       }
+                       if ( /edit.+basetimestamp=2016-03-01.+starttimestamp=2016-03-02.+text=Content&summary=Sum/.test( req.requestBody ) ) {
+                               req.respond( 200, { 'Content-Type': 'application/json' }, JSON.stringify( {
+                                       edit: {
+                                               result: 'Success',
+                                               oldrevid: 31,
+                                               newrevid: 33,
+                                               newtimestamp: '2016-03-03T12:00:00Z'
+                                       }
+                               } ) );
+                       }
+               } );
+
+               return new mw.Api()
+                       .edit( 'Param', function () {
+                               return { text: 'Content', summary: 'Sum' };
+                       } )
+                       .then( function ( edit ) {
+                               assert.equal( edit.newrevid, 33 );
+                       } );
+       } );
+
+       QUnit.test( 'create( title, content )', function ( assert ) {
+               this.server.respond( function ( req ) {
+                       if ( /edit.+text=Sand/.test( req.requestBody ) ) {
+                               req.respond( 200, { 'Content-Type': 'application/json' }, JSON.stringify( {
+                                       edit: {
+                                               'new': true,
+                                               result: 'Success',
+                                               newrevid: 41,
+                                               newtimestamp: '2016-04-01T12:00:00Z'
+                                       }
+                               } ) );
+                       }
+               } );
+
+               return new mw.Api()
+                       .create( 'Sandbox', { summary: 'Load sand particles.' }, 'Sand.' )
+                       .then( function ( page ) {
+                               assert.equal( page.newrevid, 41 );
+                       } );
+       } );
+
+}( mediaWiki, jQuery ) );
index aa68bb2..7133039 100644 (file)
@@ -1,6 +1,6 @@
 ( function ( mw, $ ) {
        var formatText, formatParse, formatnumTests, specialCharactersPageName, expectedListUsers,
-               expectedListUsersSitename, expectedEntrypoints,
+               expectedListUsersSitename, expectedLinkPagenamee, expectedEntrypoints,
                mwLanguageCache = {},
                hasOwn = Object.hasOwnProperty;
 
@@ -16,6 +16,8 @@
                        this.parserDefaults = mw.jqueryMsg.getParserDefaults();
                        mw.jqueryMsg.setParserDefaults( {
                                magic: {
+                                       PAGENAME: '2 + 2',
+                                       PAGENAMEE: mw.util.wikiUrlencode( '2 + 2' ),
                                        SITENAME: 'Wiki'
                                }
                        } );
@@ -25,6 +27,7 @@
                        expectedListUsers = '注册<a title="Special:ListUsers" href="/wiki/Special:ListUsers">用户</a>';
                        expectedListUsersSitename = '注册<a title="Special:ListUsers" href="/wiki/Special:ListUsers">用户' +
                                'Wiki</a>';
+                       expectedLinkPagenamee = '<a href="https://example.org/wiki/Foo?bar=baz#val/2_%2B_2">Test</a>';
 
                        expectedEntrypoints = '<a href="https://www.mediawiki.org/wiki/Manual:index.php">index.php</a>';
 
@@ -77,6 +80,7 @@
 
                        'jquerymsg-test-statistics-users': '注册[[Special:ListUsers|用户]]',
                        'jquerymsg-test-statistics-users-sitename': '注册[[Special:ListUsers|用户{{SITENAME}}]]',
+                       'jquerymsg-test-link-pagenamee': '[https://example.org/wiki/Foo?bar=baz#val/{{PAGENAMEE}} Test]',
 
                        'jquerymsg-test-version-entrypoints-index-php': '[https://www.mediawiki.org/wiki/Manual:index.php index.php]',
 
                process( tasks );
        } );
 
-       QUnit.test( 'Links', 14, function ( assert ) {
+       QUnit.test( 'Links', 15, function ( assert ) {
                var testCases,
                        expectedDisambiguationsText,
                        expectedMultipleBars,
                        'Piped wikilink with parser function in the text'
                );
 
+               assert.htmlEqual(
+                       formatParse( 'jquerymsg-test-link-pagenamee' ),
+                       expectedLinkPagenamee,
+                       'External link with parser function in the URL'
+               );
+
                testCases = [
                        [
                                'extlink-html-full',
index d04e0fc..1369406 100644 (file)
@@ -837,30 +837,60 @@ class DjVuSupport {
  * Initialize and detect the tidy support
  */
 class TidySupport {
-       private $internalTidy;
-       private $externalTidy;
+       private $enabled;
+       private $config;
 
        /**
         * Determine if there is a usable tidy.
         */
-       public function __construct() {
-               global $wgTidyBin;
-
-               $this->internalTidy = extension_loaded( 'tidy' ) &&
-                       class_exists( 'tidy' ) && !wfIsHHVM();
-
-               $this->externalTidy = is_executable( $wgTidyBin ) ||
-                       Installer::locateExecutableInDefaultPaths( [ $wgTidyBin ] )
-                       !== false;
-       }
-
-       /**
-        * Returns true if we should use internal tidy.
-        *
-        * @return bool
-        */
-       public function isInternal() {
-               return $this->internalTidy;
+       public function __construct( $useConfiguration = false ) {
+               global $IP, $wgUseTidy, $wgTidyBin, $wgTidyInternal, $wgTidyConfig,
+                       $wgTidyConf, $wgTidyOpts;
+
+               $this->enabled = true;
+               if ( $useConfiguration ) {
+                       if ( $wgTidyConfig !== null ) {
+                               $this->config = $wgTidyConfig;
+                       } elseif ( $wgUseTidy ) {
+                               $this->config = [
+                                       'tidyConfigFile' => $wgTidyConf,
+                                       'debugComment' => false,
+                                       'tidyBin' => $wgTidyBin,
+                                       'tidyCommandLine' => $wgTidyOpts
+                               ];
+                               if ( $wgTidyInternal ) {
+                                       $this->config['driver'] = wfIsHHVM() ? 'RaggettInternalHHVM' : 'RaggettInternalPHP';
+                               } else {
+                                       $this->config['driver'] = 'RaggettExternal';
+                               }
+                       } else {
+                               $this->enabled = false;
+                       }
+               } else {
+                       $this->config = [
+                               'tidyConfigFile' => "$IP/includes/tidy/tidy.conf",
+                               'tidyCommandLine' => '',
+                       ];
+                       if ( extension_loaded( 'tidy' ) && class_exists( 'tidy' ) ) {
+                               $this->config['driver'] = wfIsHHVM() ? 'RaggettInternalHHVM' : 'RaggettInternalPHP';
+                       } else {
+                               if ( is_executable( $wgTidyBin ) ) {
+                                       $this->config['driver'] = 'RaggettExternal';
+                                       $this->config['tidyBin'] = $wgTidyBin;
+                               } else {
+                                       $path = Installer::locateExecutableInDefaultPaths( $wgTidyBin );
+                                       if ( $path !== false ) {
+                                               $this->config['driver'] = 'RaggettExternal';
+                                               $this->config['tidyBin'] = $wgTidyBin;
+                                       } else {
+                                               $this->enabled = false;
+                                       }
+                               }
+                       }
+               }
+               if ( !$this->enabled ) {
+                       $this->config = [ 'driver' => 'disabled' ];
+               }
        }
 
        /**
@@ -869,6 +899,10 @@ class TidySupport {
         * @return bool
         */
        public function isEnabled() {
-               return $this->internalTidy || $this->externalTidy;
+               return $this->enabled;
+       }
+
+       public function getConfig() {
+               return $this->config;
        }
 }